[6a3a178] | 1 | (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
---|
| 2 | module.exports = {
|
---|
| 3 | VERSION: '%KARMA_VERSION%',
|
---|
| 4 | KARMA_URL_ROOT: '%KARMA_URL_ROOT%',
|
---|
| 5 | KARMA_PROXY_PATH: '%KARMA_PROXY_PATH%',
|
---|
| 6 | BROWSER_SOCKET_TIMEOUT: '%BROWSER_SOCKET_TIMEOUT%',
|
---|
| 7 | CONTEXT_URL: 'context.html'
|
---|
| 8 | }
|
---|
| 9 |
|
---|
| 10 | },{}],2:[function(require,module,exports){
|
---|
| 11 | var stringify = require('../common/stringify')
|
---|
| 12 | var constant = require('./constants')
|
---|
| 13 | var util = require('../common/util')
|
---|
| 14 |
|
---|
| 15 | function Karma (updater, socket, iframe, opener, navigator, location, document) {
|
---|
| 16 | this.updater = updater
|
---|
| 17 | var startEmitted = false
|
---|
| 18 | var self = this
|
---|
| 19 | var queryParams = util.parseQueryParams(location.search)
|
---|
| 20 | var browserId = queryParams.id || util.generateId('manual-')
|
---|
| 21 | var displayName = queryParams.displayName
|
---|
| 22 | var returnUrl = queryParams['return_url' + ''] || null
|
---|
| 23 |
|
---|
| 24 | var resultsBufferLimit = 50
|
---|
| 25 | var resultsBuffer = []
|
---|
| 26 |
|
---|
| 27 | // This is a no-op if not running with a Trusted Types CSP policy, and
|
---|
| 28 | // lets tests declare that they trust the way that karma creates and handles
|
---|
| 29 | // URLs.
|
---|
| 30 | //
|
---|
| 31 | // More info about the proposed Trusted Types standard at
|
---|
| 32 | // https://github.com/WICG/trusted-types
|
---|
| 33 | var policy = {
|
---|
| 34 | createURL: function (s) {
|
---|
| 35 | return s
|
---|
| 36 | },
|
---|
| 37 | createScriptURL: function (s) {
|
---|
| 38 | return s
|
---|
| 39 | }
|
---|
| 40 | }
|
---|
| 41 | var trustedTypes = window.trustedTypes || window.TrustedTypes
|
---|
| 42 | if (trustedTypes) {
|
---|
| 43 | policy = trustedTypes.createPolicy('karma', policy)
|
---|
| 44 | if (!policy.createURL) {
|
---|
| 45 | // Install createURL for newer browsers. Only browsers that implement an
|
---|
| 46 | // old version of the spec require createURL.
|
---|
| 47 | // Should be safe to delete all reference to createURL by
|
---|
| 48 | // February 2020.
|
---|
| 49 | // https://github.com/WICG/trusted-types/pull/204
|
---|
| 50 | policy.createURL = function (s) { return s }
|
---|
| 51 | }
|
---|
| 52 | }
|
---|
| 53 |
|
---|
| 54 | // To start we will signal the server that we are not reconnecting. If the socket loses
|
---|
| 55 | // connection and was able to reconnect to the Karma server we will get a
|
---|
| 56 | // second 'connect' event. There we will pass 'true' and that will be passed to the
|
---|
| 57 | // Karma server then, so that Karma can differentiate between a socket client
|
---|
| 58 | // econnect and a full browser reconnect.
|
---|
| 59 | var socketReconnect = false
|
---|
| 60 |
|
---|
| 61 | this.VERSION = constant.VERSION
|
---|
| 62 | this.config = {}
|
---|
| 63 |
|
---|
| 64 | // Expose for testing purposes as there is no global socket.io
|
---|
| 65 | // registry anymore.
|
---|
| 66 | this.socket = socket
|
---|
| 67 |
|
---|
| 68 | // Set up postMessage bindings for current window
|
---|
| 69 | // DEV: These are to allow windows in separate processes execute local tasks
|
---|
| 70 | // Electron is one of these environments
|
---|
| 71 | if (window.addEventListener) {
|
---|
| 72 | window.addEventListener('message', function handleMessage (evt) {
|
---|
| 73 | // Resolve the origin of our message
|
---|
| 74 | var origin = evt.origin || evt.originalEvent.origin
|
---|
| 75 |
|
---|
| 76 | // If the message isn't from our host, then reject it
|
---|
| 77 | if (origin !== window.location.origin) {
|
---|
| 78 | return
|
---|
| 79 | }
|
---|
| 80 |
|
---|
| 81 | // Take action based on the message type
|
---|
| 82 | var method = evt.data.__karmaMethod
|
---|
| 83 | if (method) {
|
---|
| 84 | if (!self[method]) {
|
---|
| 85 | self.error('Received `postMessage` for "' + method + '" but the method doesn\'t exist')
|
---|
| 86 | return
|
---|
| 87 | }
|
---|
| 88 | self[method].apply(self, evt.data.__karmaArguments)
|
---|
| 89 | }
|
---|
| 90 | }, false)
|
---|
| 91 | }
|
---|
| 92 |
|
---|
| 93 | var childWindow = null
|
---|
| 94 | function navigateContextTo (url) {
|
---|
| 95 | if (self.config.useIframe === false) {
|
---|
| 96 | // run in new window
|
---|
| 97 | if (self.config.runInParent === false) {
|
---|
| 98 | // If there is a window already open, then close it
|
---|
| 99 | // DEV: In some environments (e.g. Electron), we don't have setter access for location
|
---|
| 100 | if (childWindow !== null && childWindow.closed !== true) {
|
---|
| 101 | // The onbeforeunload listener was added by context to catch
|
---|
| 102 | // unexpected navigations while running tests.
|
---|
| 103 | childWindow.onbeforeunload = undefined
|
---|
| 104 | childWindow.close()
|
---|
| 105 | }
|
---|
| 106 | childWindow = opener(url)
|
---|
| 107 | // run context on parent element (client_with_context)
|
---|
| 108 | // using window.__karma__.scriptUrls to get the html element strings and load them dynamically
|
---|
| 109 | } else if (url !== 'about:blank') {
|
---|
| 110 | var loadScript = function (idx) {
|
---|
| 111 | if (idx < window.__karma__.scriptUrls.length) {
|
---|
| 112 | var parser = new DOMParser()
|
---|
| 113 | // Revert escaped characters with special roles in HTML before parsing
|
---|
| 114 | var string = window.__karma__.scriptUrls[idx]
|
---|
| 115 | .replace(/\\x3C/g, '<')
|
---|
| 116 | .replace(/\\x3E/g, '>')
|
---|
| 117 | var doc = parser.parseFromString(string, 'text/html')
|
---|
| 118 | var ele = doc.head.firstChild || doc.body.firstChild
|
---|
| 119 | // script elements created by DomParser are marked as unexecutable,
|
---|
| 120 | // create a new script element manually and copy necessary properties
|
---|
| 121 | // so it is executable
|
---|
| 122 | if (ele.tagName && ele.tagName.toLowerCase() === 'script') {
|
---|
| 123 | var tmp = ele
|
---|
| 124 | ele = document.createElement('script')
|
---|
| 125 | ele.src = policy.createScriptURL(tmp.src)
|
---|
| 126 | ele.crossOrigin = tmp.crossOrigin
|
---|
| 127 | }
|
---|
| 128 | ele.onload = function () {
|
---|
| 129 | loadScript(idx + 1)
|
---|
| 130 | }
|
---|
| 131 | document.body.appendChild(ele)
|
---|
| 132 | } else {
|
---|
| 133 | window.__karma__.loaded()
|
---|
| 134 | }
|
---|
| 135 | }
|
---|
| 136 | loadScript(0)
|
---|
| 137 | }
|
---|
| 138 | // run in iframe
|
---|
| 139 | } else {
|
---|
| 140 | // The onbeforeunload listener was added by the context to catch
|
---|
| 141 | // unexpected navigations while running tests.
|
---|
| 142 | iframe.contentWindow.onbeforeunload = undefined
|
---|
| 143 | iframe.src = policy.createURL(url)
|
---|
| 144 | }
|
---|
| 145 | }
|
---|
| 146 |
|
---|
| 147 | this.log = function (type, args) {
|
---|
| 148 | var values = []
|
---|
| 149 |
|
---|
| 150 | for (var i = 0; i < args.length; i++) {
|
---|
| 151 | values.push(this.stringify(args[i], 3))
|
---|
| 152 | }
|
---|
| 153 |
|
---|
| 154 | this.info({ log: values.join(', '), type: type })
|
---|
| 155 | }
|
---|
| 156 |
|
---|
| 157 | this.stringify = stringify
|
---|
| 158 |
|
---|
| 159 | function getLocation (url, lineno, colno) {
|
---|
| 160 | var location = ''
|
---|
| 161 |
|
---|
| 162 | if (url !== undefined) {
|
---|
| 163 | location += url
|
---|
| 164 | }
|
---|
| 165 |
|
---|
| 166 | if (lineno !== undefined) {
|
---|
| 167 | location += ':' + lineno
|
---|
| 168 | }
|
---|
| 169 |
|
---|
| 170 | if (colno !== undefined) {
|
---|
| 171 | location += ':' + colno
|
---|
| 172 | }
|
---|
| 173 |
|
---|
| 174 | return location
|
---|
| 175 | }
|
---|
| 176 |
|
---|
| 177 | // error during js file loading (most likely syntax error)
|
---|
| 178 | // we are not going to execute at all. `window.onerror` callback.
|
---|
| 179 | this.error = function (messageOrEvent, source, lineno, colno, error) {
|
---|
| 180 | var message
|
---|
| 181 | if (typeof messageOrEvent === 'string') {
|
---|
| 182 | message = messageOrEvent
|
---|
| 183 |
|
---|
| 184 | var location = getLocation(source, lineno, colno)
|
---|
| 185 | if (location !== '') {
|
---|
| 186 | message += '\nat ' + location
|
---|
| 187 | }
|
---|
| 188 | if (error && error.stack) {
|
---|
| 189 | message += '\n\n' + error.stack
|
---|
| 190 | }
|
---|
| 191 | } else {
|
---|
| 192 | // create an object with the string representation of the message to
|
---|
| 193 | // ensure all its content is properly transferred to the console log
|
---|
| 194 | message = { message: messageOrEvent, str: messageOrEvent.toString() }
|
---|
| 195 | }
|
---|
| 196 |
|
---|
| 197 | socket.emit('karma_error', message)
|
---|
| 198 | self.updater.updateTestStatus('karma_error ' + message)
|
---|
| 199 | this.complete()
|
---|
| 200 | return false
|
---|
| 201 | }
|
---|
| 202 |
|
---|
| 203 | this.result = function (originalResult) {
|
---|
| 204 | var convertedResult = {}
|
---|
| 205 |
|
---|
| 206 | // Convert all array-like objects to real arrays.
|
---|
| 207 | for (var propertyName in originalResult) {
|
---|
| 208 | if (Object.prototype.hasOwnProperty.call(originalResult, propertyName)) {
|
---|
| 209 | var propertyValue = originalResult[propertyName]
|
---|
| 210 |
|
---|
| 211 | if (Object.prototype.toString.call(propertyValue) === '[object Array]') {
|
---|
| 212 | convertedResult[propertyName] = Array.prototype.slice.call(propertyValue)
|
---|
| 213 | } else {
|
---|
| 214 | convertedResult[propertyName] = propertyValue
|
---|
| 215 | }
|
---|
| 216 | }
|
---|
| 217 | }
|
---|
| 218 |
|
---|
| 219 | if (!startEmitted) {
|
---|
| 220 | socket.emit('start', { total: null })
|
---|
| 221 | self.updater.updateTestStatus('start')
|
---|
| 222 | startEmitted = true
|
---|
| 223 | }
|
---|
| 224 |
|
---|
| 225 | if (resultsBufferLimit === 1) {
|
---|
| 226 | self.updater.updateTestStatus('result')
|
---|
| 227 | return socket.emit('result', convertedResult)
|
---|
| 228 | }
|
---|
| 229 |
|
---|
| 230 | resultsBuffer.push(convertedResult)
|
---|
| 231 |
|
---|
| 232 | if (resultsBuffer.length === resultsBufferLimit) {
|
---|
| 233 | socket.emit('result', resultsBuffer)
|
---|
| 234 | self.updater.updateTestStatus('result')
|
---|
| 235 | resultsBuffer = []
|
---|
| 236 | }
|
---|
| 237 | }
|
---|
| 238 |
|
---|
| 239 | this.complete = function (result) {
|
---|
| 240 | if (resultsBuffer.length) {
|
---|
| 241 | socket.emit('result', resultsBuffer)
|
---|
| 242 | resultsBuffer = []
|
---|
| 243 | }
|
---|
| 244 |
|
---|
[e29cc2e] | 245 | socket.emit('complete', result || {})
|
---|
| 246 | if (this.config.clearContext) {
|
---|
| 247 | navigateContextTo('about:blank')
|
---|
| 248 | } else {
|
---|
| 249 | self.updater.updateTestStatus('complete')
|
---|
| 250 | }
|
---|
| 251 | if (returnUrl) {
|
---|
| 252 | location.href = returnUrl
|
---|
| 253 | }
|
---|
[6a3a178] | 254 | }
|
---|
| 255 |
|
---|
| 256 | this.info = function (info) {
|
---|
| 257 | // TODO(vojta): introduce special API for this
|
---|
| 258 | if (!startEmitted && util.isDefined(info.total)) {
|
---|
| 259 | socket.emit('start', info)
|
---|
| 260 | startEmitted = true
|
---|
| 261 | } else {
|
---|
| 262 | socket.emit('info', info)
|
---|
| 263 | }
|
---|
| 264 | }
|
---|
| 265 |
|
---|
| 266 | socket.on('execute', function (cfg) {
|
---|
| 267 | self.updater.updateTestStatus('execute')
|
---|
| 268 | // reset startEmitted and reload the iframe
|
---|
| 269 | startEmitted = false
|
---|
| 270 | self.config = cfg
|
---|
| 271 |
|
---|
| 272 | navigateContextTo(constant.CONTEXT_URL)
|
---|
| 273 |
|
---|
| 274 | if (self.config.clientDisplayNone) {
|
---|
| 275 | [].forEach.call(document.querySelectorAll('#banner, #browsers'), function (el) {
|
---|
| 276 | el.style.display = 'none'
|
---|
| 277 | })
|
---|
| 278 | }
|
---|
| 279 |
|
---|
| 280 | // clear the console before run
|
---|
| 281 | // works only on FF (Safari, Chrome do not allow to clear console from js source)
|
---|
| 282 | if (window.console && window.console.clear) {
|
---|
| 283 | window.console.clear()
|
---|
| 284 | }
|
---|
| 285 | })
|
---|
| 286 | socket.on('stop', function () {
|
---|
| 287 | this.complete()
|
---|
| 288 | }.bind(this))
|
---|
| 289 |
|
---|
| 290 | // Report the browser name and Id. Note that this event can also fire if the connection has
|
---|
| 291 | // been temporarily lost, but the socket reconnected automatically. Read more in the docs:
|
---|
| 292 | // https://socket.io/docs/client-api/#Event-%E2%80%98connect%E2%80%99
|
---|
| 293 | socket.on('connect', function () {
|
---|
| 294 | socket.io.engine.on('upgrade', function () {
|
---|
| 295 | resultsBufferLimit = 1
|
---|
| 296 | // Flush any results which were buffered before the upgrade to WebSocket protocol.
|
---|
| 297 | if (resultsBuffer.length > 0) {
|
---|
| 298 | socket.emit('result', resultsBuffer)
|
---|
| 299 | resultsBuffer = []
|
---|
| 300 | }
|
---|
| 301 | })
|
---|
| 302 | var info = {
|
---|
| 303 | name: navigator.userAgent,
|
---|
| 304 | id: browserId,
|
---|
| 305 | isSocketReconnect: socketReconnect
|
---|
| 306 | }
|
---|
| 307 | if (displayName) {
|
---|
| 308 | info.displayName = displayName
|
---|
| 309 | }
|
---|
| 310 | socket.emit('register', info)
|
---|
| 311 | socketReconnect = true
|
---|
| 312 | })
|
---|
| 313 | }
|
---|
| 314 |
|
---|
| 315 | module.exports = Karma
|
---|
| 316 |
|
---|
| 317 | },{"../common/stringify":5,"../common/util":6,"./constants":1}],3:[function(require,module,exports){
|
---|
| 318 | /* global io */
|
---|
| 319 | /* eslint-disable no-new */
|
---|
| 320 |
|
---|
| 321 | var Karma = require('./karma')
|
---|
| 322 | var StatusUpdater = require('./updater')
|
---|
| 323 | var util = require('../common/util')
|
---|
| 324 | var constants = require('./constants')
|
---|
| 325 |
|
---|
| 326 | var KARMA_URL_ROOT = constants.KARMA_URL_ROOT
|
---|
| 327 | var KARMA_PROXY_PATH = constants.KARMA_PROXY_PATH
|
---|
| 328 | var BROWSER_SOCKET_TIMEOUT = constants.BROWSER_SOCKET_TIMEOUT
|
---|
| 329 |
|
---|
| 330 | // Connect to the server using socket.io https://socket.io/
|
---|
| 331 | var socket = io(location.host, {
|
---|
| 332 | reconnectionDelay: 500,
|
---|
| 333 | reconnectionDelayMax: Infinity,
|
---|
| 334 | timeout: BROWSER_SOCKET_TIMEOUT,
|
---|
| 335 | path: KARMA_PROXY_PATH + KARMA_URL_ROOT.substr(1) + 'socket.io',
|
---|
[e29cc2e] | 336 | 'sync disconnect on unload': true,
|
---|
| 337 | useNativeTimers: true
|
---|
[6a3a178] | 338 | })
|
---|
| 339 |
|
---|
| 340 | // instantiate the updater of the view
|
---|
| 341 | var updater = new StatusUpdater(socket, util.elm('title'), util.elm('banner'), util.elm('browsers'))
|
---|
| 342 | window.karma = new Karma(updater, socket, util.elm('context'), window.open,
|
---|
| 343 | window.navigator, window.location, window.document)
|
---|
| 344 |
|
---|
| 345 | },{"../common/util":6,"./constants":1,"./karma":2,"./updater":4}],4:[function(require,module,exports){
|
---|
| 346 | var VERSION = require('./constants').VERSION
|
---|
| 347 |
|
---|
| 348 | function StatusUpdater (socket, titleElement, bannerElement, browsersElement) {
|
---|
| 349 | function updateBrowsersInfo (browsers) {
|
---|
| 350 | if (!browsersElement) {
|
---|
| 351 | return
|
---|
| 352 | }
|
---|
| 353 | var status
|
---|
| 354 |
|
---|
| 355 | // clear browsersElement
|
---|
| 356 | while (browsersElement.firstChild) {
|
---|
| 357 | browsersElement.removeChild(browsersElement.firstChild)
|
---|
| 358 | }
|
---|
| 359 |
|
---|
| 360 | for (var i = 0; i < browsers.length; i++) {
|
---|
| 361 | status = browsers[i].isConnected ? 'idle' : 'executing'
|
---|
| 362 | var li = document.createElement('li')
|
---|
| 363 | li.setAttribute('class', status)
|
---|
| 364 | li.textContent = browsers[i].name + ' is ' + status
|
---|
| 365 | browsersElement.appendChild(li)
|
---|
| 366 | }
|
---|
| 367 | }
|
---|
| 368 |
|
---|
| 369 | var connectionText = 'never-connected'
|
---|
| 370 | var testText = 'loading'
|
---|
| 371 | var pingText = ''
|
---|
| 372 |
|
---|
| 373 | function updateBanner () {
|
---|
| 374 | if (!titleElement || !bannerElement) {
|
---|
| 375 | return
|
---|
| 376 | }
|
---|
| 377 | titleElement.textContent = 'Karma v ' + VERSION + ' - ' + connectionText + '; test: ' + testText + '; ' + pingText
|
---|
| 378 | bannerElement.className = connectionText === 'connected' ? 'online' : 'offline'
|
---|
| 379 | }
|
---|
| 380 |
|
---|
| 381 | function updateConnectionStatus (connectionStatus) {
|
---|
| 382 | connectionText = connectionStatus || connectionText
|
---|
| 383 | updateBanner()
|
---|
| 384 | }
|
---|
| 385 | function updateTestStatus (testStatus) {
|
---|
| 386 | testText = testStatus || testText
|
---|
| 387 | updateBanner()
|
---|
| 388 | }
|
---|
| 389 | function updatePingStatus (pingStatus) {
|
---|
| 390 | pingText = pingStatus || pingText
|
---|
| 391 | updateBanner()
|
---|
| 392 | }
|
---|
| 393 |
|
---|
| 394 | socket.on('connect', function () {
|
---|
| 395 | updateConnectionStatus('connected')
|
---|
| 396 | })
|
---|
| 397 | socket.on('disconnect', function () {
|
---|
| 398 | updateConnectionStatus('disconnected')
|
---|
| 399 | })
|
---|
| 400 | socket.on('reconnecting', function (sec) {
|
---|
| 401 | updateConnectionStatus('reconnecting in ' + sec + ' seconds')
|
---|
| 402 | })
|
---|
| 403 | socket.on('reconnect', function () {
|
---|
| 404 | updateConnectionStatus('reconnected')
|
---|
| 405 | })
|
---|
| 406 | socket.on('reconnect_failed', function () {
|
---|
| 407 | updateConnectionStatus('reconnect_failed')
|
---|
| 408 | })
|
---|
| 409 |
|
---|
| 410 | socket.on('info', updateBrowsersInfo)
|
---|
| 411 | socket.on('disconnect', function () {
|
---|
| 412 | updateBrowsersInfo([])
|
---|
| 413 | })
|
---|
| 414 |
|
---|
| 415 | socket.on('ping', function () {
|
---|
| 416 | updatePingStatus('ping...')
|
---|
| 417 | })
|
---|
| 418 | socket.on('pong', function (latency) {
|
---|
| 419 | updatePingStatus('ping ' + latency + 'ms')
|
---|
| 420 | })
|
---|
| 421 |
|
---|
| 422 | return { updateTestStatus: updateTestStatus }
|
---|
| 423 | }
|
---|
| 424 |
|
---|
| 425 | module.exports = StatusUpdater
|
---|
| 426 |
|
---|
| 427 | },{"./constants":1}],5:[function(require,module,exports){
|
---|
| 428 | var serialize = null
|
---|
| 429 | try {
|
---|
| 430 | serialize = require('dom-serialize')
|
---|
| 431 | } catch (e) {
|
---|
| 432 | // Ignore failure on IE8
|
---|
| 433 | }
|
---|
| 434 |
|
---|
| 435 | var instanceOf = require('./util').instanceOf
|
---|
| 436 |
|
---|
| 437 | function isNode (obj) {
|
---|
| 438 | return (obj.tagName || obj.nodeName) && obj.nodeType
|
---|
| 439 | }
|
---|
| 440 |
|
---|
| 441 | function stringify (obj, depth) {
|
---|
| 442 | if (depth === 0) {
|
---|
| 443 | return '...'
|
---|
| 444 | }
|
---|
| 445 |
|
---|
| 446 | if (obj === null) {
|
---|
| 447 | return 'null'
|
---|
| 448 | }
|
---|
| 449 |
|
---|
| 450 | switch (typeof obj) {
|
---|
| 451 | case 'symbol':
|
---|
| 452 | return obj.toString()
|
---|
| 453 | case 'string':
|
---|
| 454 | return "'" + obj + "'"
|
---|
| 455 | case 'undefined':
|
---|
| 456 | return 'undefined'
|
---|
| 457 | case 'function':
|
---|
| 458 | try {
|
---|
| 459 | // function abc(a, b, c) { /* code goes here */ }
|
---|
| 460 | // -> function abc(a, b, c) { ... }
|
---|
| 461 | return obj.toString().replace(/\{[\s\S]*\}/, '{ ... }')
|
---|
| 462 | } catch (err) {
|
---|
| 463 | if (err instanceof TypeError) {
|
---|
| 464 | // Support older browsers
|
---|
| 465 | return 'function ' + (obj.name || '') + '() { ... }'
|
---|
| 466 | } else {
|
---|
| 467 | throw err
|
---|
| 468 | }
|
---|
| 469 | }
|
---|
| 470 | case 'boolean':
|
---|
| 471 | return obj ? 'true' : 'false'
|
---|
| 472 | case 'object':
|
---|
| 473 | var strs = []
|
---|
| 474 | if (instanceOf(obj, 'Array')) {
|
---|
| 475 | strs.push('[')
|
---|
| 476 | for (var i = 0, ii = obj.length; i < ii; i++) {
|
---|
| 477 | if (i) {
|
---|
| 478 | strs.push(', ')
|
---|
| 479 | }
|
---|
| 480 | strs.push(stringify(obj[i], depth - 1))
|
---|
| 481 | }
|
---|
| 482 | strs.push(']')
|
---|
| 483 | } else if (instanceOf(obj, 'Date')) {
|
---|
| 484 | return obj.toString()
|
---|
| 485 | } else if (instanceOf(obj, 'Text')) {
|
---|
| 486 | return obj.nodeValue
|
---|
| 487 | } else if (instanceOf(obj, 'Comment')) {
|
---|
| 488 | return '<!--' + obj.nodeValue + '-->'
|
---|
| 489 | } else if (obj.outerHTML) {
|
---|
| 490 | return obj.outerHTML
|
---|
| 491 | } else if (isNode(obj)) {
|
---|
| 492 | if (serialize) {
|
---|
| 493 | return serialize(obj)
|
---|
| 494 | } else {
|
---|
| 495 | return 'Skipping stringify, no support for dom-serialize'
|
---|
| 496 | }
|
---|
| 497 | } else if (instanceOf(obj, 'Error')) {
|
---|
| 498 | return obj.toString() + '\n' + obj.stack
|
---|
| 499 | } else {
|
---|
| 500 | var constructor = 'Object'
|
---|
| 501 | if (obj.constructor && typeof obj.constructor === 'function') {
|
---|
| 502 | constructor = obj.constructor.name
|
---|
| 503 | }
|
---|
| 504 |
|
---|
| 505 | strs.push(constructor)
|
---|
| 506 | strs.push('{')
|
---|
| 507 | var first = true
|
---|
| 508 | for (var key in obj) {
|
---|
| 509 | if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
---|
| 510 | if (first) {
|
---|
| 511 | first = false
|
---|
| 512 | } else {
|
---|
| 513 | strs.push(', ')
|
---|
| 514 | }
|
---|
| 515 |
|
---|
| 516 | strs.push(key + ': ' + stringify(obj[key], depth - 1))
|
---|
| 517 | }
|
---|
| 518 | }
|
---|
| 519 | strs.push('}')
|
---|
| 520 | }
|
---|
| 521 | return strs.join('')
|
---|
| 522 | default:
|
---|
| 523 | return obj
|
---|
| 524 | }
|
---|
| 525 | }
|
---|
| 526 |
|
---|
| 527 | module.exports = stringify
|
---|
| 528 |
|
---|
| 529 | },{"./util":6,"dom-serialize":8}],6:[function(require,module,exports){
|
---|
| 530 | exports.instanceOf = function (value, constructorName) {
|
---|
| 531 | return Object.prototype.toString.apply(value) === '[object ' + constructorName + ']'
|
---|
| 532 | }
|
---|
| 533 |
|
---|
| 534 | exports.elm = function (id) {
|
---|
| 535 | return document.getElementById(id)
|
---|
| 536 | }
|
---|
| 537 |
|
---|
| 538 | exports.generateId = function (prefix) {
|
---|
| 539 | return prefix + Math.floor(Math.random() * 10000)
|
---|
| 540 | }
|
---|
| 541 |
|
---|
| 542 | exports.isUndefined = function (value) {
|
---|
| 543 | return typeof value === 'undefined'
|
---|
| 544 | }
|
---|
| 545 |
|
---|
| 546 | exports.isDefined = function (value) {
|
---|
| 547 | return !exports.isUndefined(value)
|
---|
| 548 | }
|
---|
| 549 |
|
---|
| 550 | exports.parseQueryParams = function (locationSearch) {
|
---|
| 551 | var params = {}
|
---|
| 552 | var pairs = locationSearch.substr(1).split('&')
|
---|
| 553 | var keyValue
|
---|
| 554 |
|
---|
| 555 | for (var i = 0; i < pairs.length; i++) {
|
---|
| 556 | keyValue = pairs[i].split('=')
|
---|
| 557 | params[decodeURIComponent(keyValue[0])] = decodeURIComponent(keyValue[1])
|
---|
| 558 | }
|
---|
| 559 |
|
---|
| 560 | return params
|
---|
| 561 | }
|
---|
| 562 |
|
---|
| 563 | },{}],7:[function(require,module,exports){
|
---|
| 564 | (function (global){
|
---|
| 565 |
|
---|
| 566 | var NativeCustomEvent = global.CustomEvent;
|
---|
| 567 |
|
---|
| 568 | function useNative () {
|
---|
| 569 | try {
|
---|
| 570 | var p = new NativeCustomEvent('cat', { detail: { foo: 'bar' } });
|
---|
| 571 | return 'cat' === p.type && 'bar' === p.detail.foo;
|
---|
| 572 | } catch (e) {
|
---|
| 573 | }
|
---|
| 574 | return false;
|
---|
| 575 | }
|
---|
| 576 |
|
---|
| 577 | /**
|
---|
| 578 | * Cross-browser `CustomEvent` constructor.
|
---|
| 579 | *
|
---|
| 580 | * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.CustomEvent
|
---|
| 581 | *
|
---|
| 582 | * @public
|
---|
| 583 | */
|
---|
| 584 |
|
---|
| 585 | module.exports = useNative() ? NativeCustomEvent :
|
---|
| 586 |
|
---|
| 587 | // IE >= 9
|
---|
| 588 | 'undefined' !== typeof document && 'function' === typeof document.createEvent ? function CustomEvent (type, params) {
|
---|
| 589 | var e = document.createEvent('CustomEvent');
|
---|
| 590 | if (params) {
|
---|
| 591 | e.initCustomEvent(type, params.bubbles, params.cancelable, params.detail);
|
---|
| 592 | } else {
|
---|
| 593 | e.initCustomEvent(type, false, false, void 0);
|
---|
| 594 | }
|
---|
| 595 | return e;
|
---|
| 596 | } :
|
---|
| 597 |
|
---|
| 598 | // IE <= 8
|
---|
| 599 | function CustomEvent (type, params) {
|
---|
| 600 | var e = document.createEventObject();
|
---|
| 601 | e.type = type;
|
---|
| 602 | if (params) {
|
---|
| 603 | e.bubbles = Boolean(params.bubbles);
|
---|
| 604 | e.cancelable = Boolean(params.cancelable);
|
---|
| 605 | e.detail = params.detail;
|
---|
| 606 | } else {
|
---|
| 607 | e.bubbles = false;
|
---|
| 608 | e.cancelable = false;
|
---|
| 609 | e.detail = void 0;
|
---|
| 610 | }
|
---|
| 611 | return e;
|
---|
| 612 | }
|
---|
| 613 |
|
---|
| 614 | }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
---|
| 615 | },{}],8:[function(require,module,exports){
|
---|
| 616 |
|
---|
| 617 | /**
|
---|
| 618 | * Module dependencies.
|
---|
| 619 | */
|
---|
| 620 |
|
---|
| 621 | var extend = require('extend');
|
---|
| 622 | var encode = require('ent/encode');
|
---|
| 623 | var CustomEvent = require('custom-event');
|
---|
| 624 | var voidElements = require('void-elements');
|
---|
| 625 |
|
---|
| 626 | /**
|
---|
| 627 | * Module exports.
|
---|
| 628 | */
|
---|
| 629 |
|
---|
| 630 | exports = module.exports = serialize;
|
---|
| 631 | exports.serializeElement = serializeElement;
|
---|
| 632 | exports.serializeAttribute = serializeAttribute;
|
---|
| 633 | exports.serializeText = serializeText;
|
---|
| 634 | exports.serializeComment = serializeComment;
|
---|
| 635 | exports.serializeDocument = serializeDocument;
|
---|
| 636 | exports.serializeDoctype = serializeDoctype;
|
---|
| 637 | exports.serializeDocumentFragment = serializeDocumentFragment;
|
---|
| 638 | exports.serializeNodeList = serializeNodeList;
|
---|
| 639 |
|
---|
| 640 | /**
|
---|
| 641 | * Serializes any DOM node. Returns a string.
|
---|
| 642 | *
|
---|
| 643 | * @param {Node} node - DOM Node to serialize
|
---|
| 644 | * @param {String} [context] - optional arbitrary "context" string to use (useful for event listeners)
|
---|
| 645 | * @param {Function} [fn] - optional callback function to use in the "serialize" event for this call
|
---|
| 646 | * @param {EventTarget} [eventTarget] - optional EventTarget instance to emit the "serialize" event on (defaults to `node`)
|
---|
| 647 | * return {String}
|
---|
| 648 | * @public
|
---|
| 649 | */
|
---|
| 650 |
|
---|
| 651 | function serialize (node, context, fn, eventTarget) {
|
---|
| 652 | if (!node) return '';
|
---|
| 653 | if ('function' === typeof context) {
|
---|
| 654 | fn = context;
|
---|
| 655 | context = null;
|
---|
| 656 | }
|
---|
| 657 | if (!context) context = null;
|
---|
| 658 |
|
---|
| 659 | var rtn;
|
---|
| 660 | var nodeType = node.nodeType;
|
---|
| 661 |
|
---|
| 662 | if (!nodeType && 'number' === typeof node.length) {
|
---|
| 663 | // assume it's a NodeList or Array of Nodes
|
---|
| 664 | rtn = exports.serializeNodeList(node, context, fn);
|
---|
| 665 | } else {
|
---|
| 666 |
|
---|
| 667 | if ('function' === typeof fn) {
|
---|
| 668 | // one-time "serialize" event listener
|
---|
| 669 | node.addEventListener('serialize', fn, false);
|
---|
| 670 | }
|
---|
| 671 |
|
---|
| 672 | // emit a custom "serialize" event on `node`, in case there
|
---|
| 673 | // are event listeners for custom serialization of this node
|
---|
| 674 | var e = new CustomEvent('serialize', {
|
---|
| 675 | bubbles: true,
|
---|
| 676 | cancelable: true,
|
---|
| 677 | detail: {
|
---|
| 678 | serialize: null,
|
---|
| 679 | context: context
|
---|
| 680 | }
|
---|
| 681 | });
|
---|
| 682 |
|
---|
| 683 | e.serializeTarget = node;
|
---|
| 684 |
|
---|
| 685 | var target = eventTarget || node;
|
---|
| 686 | var cancelled = !target.dispatchEvent(e);
|
---|
| 687 |
|
---|
| 688 | // `e.detail.serialize` can be set to a:
|
---|
| 689 | // String - returned directly
|
---|
| 690 | // Node - goes through serializer logic instead of `node`
|
---|
| 691 | // Anything else - get Stringified first, and then returned directly
|
---|
| 692 | var s = e.detail.serialize;
|
---|
| 693 | if (s != null) {
|
---|
| 694 | if ('string' === typeof s) {
|
---|
| 695 | rtn = s;
|
---|
| 696 | } else if ('number' === typeof s.nodeType) {
|
---|
| 697 | // make it go through the serialization logic
|
---|
| 698 | rtn = serialize(s, context, null, target);
|
---|
| 699 | } else {
|
---|
| 700 | rtn = String(s);
|
---|
| 701 | }
|
---|
| 702 | } else if (!cancelled) {
|
---|
| 703 | // default serialization logic
|
---|
| 704 | switch (nodeType) {
|
---|
| 705 | case 1 /* element */:
|
---|
| 706 | rtn = exports.serializeElement(node, context, eventTarget);
|
---|
| 707 | break;
|
---|
| 708 | case 2 /* attribute */:
|
---|
| 709 | rtn = exports.serializeAttribute(node);
|
---|
| 710 | break;
|
---|
| 711 | case 3 /* text */:
|
---|
| 712 | rtn = exports.serializeText(node);
|
---|
| 713 | break;
|
---|
| 714 | case 8 /* comment */:
|
---|
| 715 | rtn = exports.serializeComment(node);
|
---|
| 716 | break;
|
---|
| 717 | case 9 /* document */:
|
---|
| 718 | rtn = exports.serializeDocument(node, context, eventTarget);
|
---|
| 719 | break;
|
---|
| 720 | case 10 /* doctype */:
|
---|
| 721 | rtn = exports.serializeDoctype(node);
|
---|
| 722 | break;
|
---|
| 723 | case 11 /* document fragment */:
|
---|
| 724 | rtn = exports.serializeDocumentFragment(node, context, eventTarget);
|
---|
| 725 | break;
|
---|
| 726 | }
|
---|
| 727 | }
|
---|
| 728 |
|
---|
| 729 | if ('function' === typeof fn) {
|
---|
| 730 | node.removeEventListener('serialize', fn, false);
|
---|
| 731 | }
|
---|
| 732 | }
|
---|
| 733 |
|
---|
| 734 | return rtn || '';
|
---|
| 735 | }
|
---|
| 736 |
|
---|
| 737 | /**
|
---|
| 738 | * Serialize an Attribute node.
|
---|
| 739 | */
|
---|
| 740 |
|
---|
| 741 | function serializeAttribute (node, opts) {
|
---|
| 742 | return node.name + '="' + encode(node.value, extend({
|
---|
| 743 | named: true
|
---|
| 744 | }, opts)) + '"';
|
---|
| 745 | }
|
---|
| 746 |
|
---|
| 747 | /**
|
---|
| 748 | * Serialize a DOM element.
|
---|
| 749 | */
|
---|
| 750 |
|
---|
| 751 | function serializeElement (node, context, eventTarget) {
|
---|
| 752 | var c, i, l;
|
---|
| 753 | var name = node.nodeName.toLowerCase();
|
---|
| 754 |
|
---|
| 755 | // opening tag
|
---|
| 756 | var r = '<' + name;
|
---|
| 757 |
|
---|
| 758 | // attributes
|
---|
| 759 | for (i = 0, c = node.attributes, l = c.length; i < l; i++) {
|
---|
| 760 | r += ' ' + exports.serializeAttribute(c[i]);
|
---|
| 761 | }
|
---|
| 762 |
|
---|
| 763 | r += '>';
|
---|
| 764 |
|
---|
| 765 | // child nodes
|
---|
| 766 | r += exports.serializeNodeList(node.childNodes, context, null, eventTarget);
|
---|
| 767 |
|
---|
| 768 | // closing tag, only for non-void elements
|
---|
| 769 | if (!voidElements[name]) {
|
---|
| 770 | r += '</' + name + '>';
|
---|
| 771 | }
|
---|
| 772 |
|
---|
| 773 | return r;
|
---|
| 774 | }
|
---|
| 775 |
|
---|
| 776 | /**
|
---|
| 777 | * Serialize a text node.
|
---|
| 778 | */
|
---|
| 779 |
|
---|
| 780 | function serializeText (node, opts) {
|
---|
| 781 | return encode(node.nodeValue, extend({
|
---|
| 782 | named: true,
|
---|
| 783 | special: { '<': true, '>': true, '&': true }
|
---|
| 784 | }, opts));
|
---|
| 785 | }
|
---|
| 786 |
|
---|
| 787 | /**
|
---|
| 788 | * Serialize a comment node.
|
---|
| 789 | */
|
---|
| 790 |
|
---|
| 791 | function serializeComment (node) {
|
---|
| 792 | return '<!--' + node.nodeValue + '-->';
|
---|
| 793 | }
|
---|
| 794 |
|
---|
| 795 | /**
|
---|
| 796 | * Serialize a Document node.
|
---|
| 797 | */
|
---|
| 798 |
|
---|
| 799 | function serializeDocument (node, context, eventTarget) {
|
---|
| 800 | return exports.serializeNodeList(node.childNodes, context, null, eventTarget);
|
---|
| 801 | }
|
---|
| 802 |
|
---|
| 803 | /**
|
---|
| 804 | * Serialize a DOCTYPE node.
|
---|
| 805 | * See: http://stackoverflow.com/a/10162353
|
---|
| 806 | */
|
---|
| 807 |
|
---|
| 808 | function serializeDoctype (node) {
|
---|
| 809 | var r = '<!DOCTYPE ' + node.name;
|
---|
| 810 |
|
---|
| 811 | if (node.publicId) {
|
---|
| 812 | r += ' PUBLIC "' + node.publicId + '"';
|
---|
| 813 | }
|
---|
| 814 |
|
---|
| 815 | if (!node.publicId && node.systemId) {
|
---|
| 816 | r += ' SYSTEM';
|
---|
| 817 | }
|
---|
| 818 |
|
---|
| 819 | if (node.systemId) {
|
---|
| 820 | r += ' "' + node.systemId + '"';
|
---|
| 821 | }
|
---|
| 822 |
|
---|
| 823 | r += '>';
|
---|
| 824 | return r;
|
---|
| 825 | }
|
---|
| 826 |
|
---|
| 827 | /**
|
---|
| 828 | * Serialize a DocumentFragment instance.
|
---|
| 829 | */
|
---|
| 830 |
|
---|
| 831 | function serializeDocumentFragment (node, context, eventTarget) {
|
---|
| 832 | return exports.serializeNodeList(node.childNodes, context, null, eventTarget);
|
---|
| 833 | }
|
---|
| 834 |
|
---|
| 835 | /**
|
---|
| 836 | * Serialize a NodeList/Array of nodes.
|
---|
| 837 | */
|
---|
| 838 |
|
---|
| 839 | function serializeNodeList (list, context, fn, eventTarget) {
|
---|
| 840 | var r = '';
|
---|
| 841 | for (var i = 0, l = list.length; i < l; i++) {
|
---|
| 842 | r += serialize(list[i], context, fn, eventTarget);
|
---|
| 843 | }
|
---|
| 844 | return r;
|
---|
| 845 | }
|
---|
| 846 |
|
---|
| 847 | },{"custom-event":7,"ent/encode":9,"extend":11,"void-elements":13}],9:[function(require,module,exports){
|
---|
| 848 | var punycode = require('punycode');
|
---|
| 849 | var revEntities = require('./reversed.json');
|
---|
| 850 |
|
---|
| 851 | module.exports = encode;
|
---|
| 852 |
|
---|
| 853 | function encode (str, opts) {
|
---|
| 854 | if (typeof str !== 'string') {
|
---|
| 855 | throw new TypeError('Expected a String');
|
---|
| 856 | }
|
---|
| 857 | if (!opts) opts = {};
|
---|
| 858 |
|
---|
| 859 | var numeric = true;
|
---|
| 860 | if (opts.named) numeric = false;
|
---|
| 861 | if (opts.numeric !== undefined) numeric = opts.numeric;
|
---|
| 862 |
|
---|
| 863 | var special = opts.special || {
|
---|
| 864 | '"': true, "'": true,
|
---|
| 865 | '<': true, '>': true,
|
---|
| 866 | '&': true
|
---|
| 867 | };
|
---|
| 868 |
|
---|
| 869 | var codePoints = punycode.ucs2.decode(str);
|
---|
| 870 | var chars = [];
|
---|
| 871 | for (var i = 0; i < codePoints.length; i++) {
|
---|
| 872 | var cc = codePoints[i];
|
---|
| 873 | var c = punycode.ucs2.encode([ cc ]);
|
---|
| 874 | var e = revEntities[cc];
|
---|
| 875 | if (e && (cc >= 127 || special[c]) && !numeric) {
|
---|
| 876 | chars.push('&' + (/;$/.test(e) ? e : e + ';'));
|
---|
| 877 | }
|
---|
| 878 | else if (cc < 32 || cc >= 127 || special[c]) {
|
---|
| 879 | chars.push('&#' + cc + ';');
|
---|
| 880 | }
|
---|
| 881 | else {
|
---|
| 882 | chars.push(c);
|
---|
| 883 | }
|
---|
| 884 | }
|
---|
| 885 | return chars.join('');
|
---|
| 886 | }
|
---|
| 887 |
|
---|
| 888 | },{"./reversed.json":10,"punycode":12}],10:[function(require,module,exports){
|
---|
| 889 | module.exports={
|
---|
| 890 | "9": "Tab;",
|
---|
| 891 | "10": "NewLine;",
|
---|
| 892 | "33": "excl;",
|
---|
| 893 | "34": "quot;",
|
---|
| 894 | "35": "num;",
|
---|
| 895 | "36": "dollar;",
|
---|
| 896 | "37": "percnt;",
|
---|
| 897 | "38": "amp;",
|
---|
| 898 | "39": "apos;",
|
---|
| 899 | "40": "lpar;",
|
---|
| 900 | "41": "rpar;",
|
---|
| 901 | "42": "midast;",
|
---|
| 902 | "43": "plus;",
|
---|
| 903 | "44": "comma;",
|
---|
| 904 | "46": "period;",
|
---|
| 905 | "47": "sol;",
|
---|
| 906 | "58": "colon;",
|
---|
| 907 | "59": "semi;",
|
---|
| 908 | "60": "lt;",
|
---|
| 909 | "61": "equals;",
|
---|
| 910 | "62": "gt;",
|
---|
| 911 | "63": "quest;",
|
---|
| 912 | "64": "commat;",
|
---|
| 913 | "91": "lsqb;",
|
---|
| 914 | "92": "bsol;",
|
---|
| 915 | "93": "rsqb;",
|
---|
| 916 | "94": "Hat;",
|
---|
| 917 | "95": "UnderBar;",
|
---|
| 918 | "96": "grave;",
|
---|
| 919 | "123": "lcub;",
|
---|
| 920 | "124": "VerticalLine;",
|
---|
| 921 | "125": "rcub;",
|
---|
| 922 | "160": "NonBreakingSpace;",
|
---|
| 923 | "161": "iexcl;",
|
---|
| 924 | "162": "cent;",
|
---|
| 925 | "163": "pound;",
|
---|
| 926 | "164": "curren;",
|
---|
| 927 | "165": "yen;",
|
---|
| 928 | "166": "brvbar;",
|
---|
| 929 | "167": "sect;",
|
---|
| 930 | "168": "uml;",
|
---|
| 931 | "169": "copy;",
|
---|
| 932 | "170": "ordf;",
|
---|
| 933 | "171": "laquo;",
|
---|
| 934 | "172": "not;",
|
---|
| 935 | "173": "shy;",
|
---|
| 936 | "174": "reg;",
|
---|
| 937 | "175": "strns;",
|
---|
| 938 | "176": "deg;",
|
---|
| 939 | "177": "pm;",
|
---|
| 940 | "178": "sup2;",
|
---|
| 941 | "179": "sup3;",
|
---|
| 942 | "180": "DiacriticalAcute;",
|
---|
| 943 | "181": "micro;",
|
---|
| 944 | "182": "para;",
|
---|
| 945 | "183": "middot;",
|
---|
| 946 | "184": "Cedilla;",
|
---|
| 947 | "185": "sup1;",
|
---|
| 948 | "186": "ordm;",
|
---|
| 949 | "187": "raquo;",
|
---|
| 950 | "188": "frac14;",
|
---|
| 951 | "189": "half;",
|
---|
| 952 | "190": "frac34;",
|
---|
| 953 | "191": "iquest;",
|
---|
| 954 | "192": "Agrave;",
|
---|
| 955 | "193": "Aacute;",
|
---|
| 956 | "194": "Acirc;",
|
---|
| 957 | "195": "Atilde;",
|
---|
| 958 | "196": "Auml;",
|
---|
| 959 | "197": "Aring;",
|
---|
| 960 | "198": "AElig;",
|
---|
| 961 | "199": "Ccedil;",
|
---|
| 962 | "200": "Egrave;",
|
---|
| 963 | "201": "Eacute;",
|
---|
| 964 | "202": "Ecirc;",
|
---|
| 965 | "203": "Euml;",
|
---|
| 966 | "204": "Igrave;",
|
---|
| 967 | "205": "Iacute;",
|
---|
| 968 | "206": "Icirc;",
|
---|
| 969 | "207": "Iuml;",
|
---|
| 970 | "208": "ETH;",
|
---|
| 971 | "209": "Ntilde;",
|
---|
| 972 | "210": "Ograve;",
|
---|
| 973 | "211": "Oacute;",
|
---|
| 974 | "212": "Ocirc;",
|
---|
| 975 | "213": "Otilde;",
|
---|
| 976 | "214": "Ouml;",
|
---|
| 977 | "215": "times;",
|
---|
| 978 | "216": "Oslash;",
|
---|
| 979 | "217": "Ugrave;",
|
---|
| 980 | "218": "Uacute;",
|
---|
| 981 | "219": "Ucirc;",
|
---|
| 982 | "220": "Uuml;",
|
---|
| 983 | "221": "Yacute;",
|
---|
| 984 | "222": "THORN;",
|
---|
| 985 | "223": "szlig;",
|
---|
| 986 | "224": "agrave;",
|
---|
| 987 | "225": "aacute;",
|
---|
| 988 | "226": "acirc;",
|
---|
| 989 | "227": "atilde;",
|
---|
| 990 | "228": "auml;",
|
---|
| 991 | "229": "aring;",
|
---|
| 992 | "230": "aelig;",
|
---|
| 993 | "231": "ccedil;",
|
---|
| 994 | "232": "egrave;",
|
---|
| 995 | "233": "eacute;",
|
---|
| 996 | "234": "ecirc;",
|
---|
| 997 | "235": "euml;",
|
---|
| 998 | "236": "igrave;",
|
---|
| 999 | "237": "iacute;",
|
---|
| 1000 | "238": "icirc;",
|
---|
| 1001 | "239": "iuml;",
|
---|
| 1002 | "240": "eth;",
|
---|
| 1003 | "241": "ntilde;",
|
---|
| 1004 | "242": "ograve;",
|
---|
| 1005 | "243": "oacute;",
|
---|
| 1006 | "244": "ocirc;",
|
---|
| 1007 | "245": "otilde;",
|
---|
| 1008 | "246": "ouml;",
|
---|
| 1009 | "247": "divide;",
|
---|
| 1010 | "248": "oslash;",
|
---|
| 1011 | "249": "ugrave;",
|
---|
| 1012 | "250": "uacute;",
|
---|
| 1013 | "251": "ucirc;",
|
---|
| 1014 | "252": "uuml;",
|
---|
| 1015 | "253": "yacute;",
|
---|
| 1016 | "254": "thorn;",
|
---|
| 1017 | "255": "yuml;",
|
---|
| 1018 | "256": "Amacr;",
|
---|
| 1019 | "257": "amacr;",
|
---|
| 1020 | "258": "Abreve;",
|
---|
| 1021 | "259": "abreve;",
|
---|
| 1022 | "260": "Aogon;",
|
---|
| 1023 | "261": "aogon;",
|
---|
| 1024 | "262": "Cacute;",
|
---|
| 1025 | "263": "cacute;",
|
---|
| 1026 | "264": "Ccirc;",
|
---|
| 1027 | "265": "ccirc;",
|
---|
| 1028 | "266": "Cdot;",
|
---|
| 1029 | "267": "cdot;",
|
---|
| 1030 | "268": "Ccaron;",
|
---|
| 1031 | "269": "ccaron;",
|
---|
| 1032 | "270": "Dcaron;",
|
---|
| 1033 | "271": "dcaron;",
|
---|
| 1034 | "272": "Dstrok;",
|
---|
| 1035 | "273": "dstrok;",
|
---|
| 1036 | "274": "Emacr;",
|
---|
| 1037 | "275": "emacr;",
|
---|
| 1038 | "278": "Edot;",
|
---|
| 1039 | "279": "edot;",
|
---|
| 1040 | "280": "Eogon;",
|
---|
| 1041 | "281": "eogon;",
|
---|
| 1042 | "282": "Ecaron;",
|
---|
| 1043 | "283": "ecaron;",
|
---|
| 1044 | "284": "Gcirc;",
|
---|
| 1045 | "285": "gcirc;",
|
---|
| 1046 | "286": "Gbreve;",
|
---|
| 1047 | "287": "gbreve;",
|
---|
| 1048 | "288": "Gdot;",
|
---|
| 1049 | "289": "gdot;",
|
---|
| 1050 | "290": "Gcedil;",
|
---|
| 1051 | "292": "Hcirc;",
|
---|
| 1052 | "293": "hcirc;",
|
---|
| 1053 | "294": "Hstrok;",
|
---|
| 1054 | "295": "hstrok;",
|
---|
| 1055 | "296": "Itilde;",
|
---|
| 1056 | "297": "itilde;",
|
---|
| 1057 | "298": "Imacr;",
|
---|
| 1058 | "299": "imacr;",
|
---|
| 1059 | "302": "Iogon;",
|
---|
| 1060 | "303": "iogon;",
|
---|
| 1061 | "304": "Idot;",
|
---|
| 1062 | "305": "inodot;",
|
---|
| 1063 | "306": "IJlig;",
|
---|
| 1064 | "307": "ijlig;",
|
---|
| 1065 | "308": "Jcirc;",
|
---|
| 1066 | "309": "jcirc;",
|
---|
| 1067 | "310": "Kcedil;",
|
---|
| 1068 | "311": "kcedil;",
|
---|
| 1069 | "312": "kgreen;",
|
---|
| 1070 | "313": "Lacute;",
|
---|
| 1071 | "314": "lacute;",
|
---|
| 1072 | "315": "Lcedil;",
|
---|
| 1073 | "316": "lcedil;",
|
---|
| 1074 | "317": "Lcaron;",
|
---|
| 1075 | "318": "lcaron;",
|
---|
| 1076 | "319": "Lmidot;",
|
---|
| 1077 | "320": "lmidot;",
|
---|
| 1078 | "321": "Lstrok;",
|
---|
| 1079 | "322": "lstrok;",
|
---|
| 1080 | "323": "Nacute;",
|
---|
| 1081 | "324": "nacute;",
|
---|
| 1082 | "325": "Ncedil;",
|
---|
| 1083 | "326": "ncedil;",
|
---|
| 1084 | "327": "Ncaron;",
|
---|
| 1085 | "328": "ncaron;",
|
---|
| 1086 | "329": "napos;",
|
---|
| 1087 | "330": "ENG;",
|
---|
| 1088 | "331": "eng;",
|
---|
| 1089 | "332": "Omacr;",
|
---|
| 1090 | "333": "omacr;",
|
---|
| 1091 | "336": "Odblac;",
|
---|
| 1092 | "337": "odblac;",
|
---|
| 1093 | "338": "OElig;",
|
---|
| 1094 | "339": "oelig;",
|
---|
| 1095 | "340": "Racute;",
|
---|
| 1096 | "341": "racute;",
|
---|
| 1097 | "342": "Rcedil;",
|
---|
| 1098 | "343": "rcedil;",
|
---|
| 1099 | "344": "Rcaron;",
|
---|
| 1100 | "345": "rcaron;",
|
---|
| 1101 | "346": "Sacute;",
|
---|
| 1102 | "347": "sacute;",
|
---|
| 1103 | "348": "Scirc;",
|
---|
| 1104 | "349": "scirc;",
|
---|
| 1105 | "350": "Scedil;",
|
---|
| 1106 | "351": "scedil;",
|
---|
| 1107 | "352": "Scaron;",
|
---|
| 1108 | "353": "scaron;",
|
---|
| 1109 | "354": "Tcedil;",
|
---|
| 1110 | "355": "tcedil;",
|
---|
| 1111 | "356": "Tcaron;",
|
---|
| 1112 | "357": "tcaron;",
|
---|
| 1113 | "358": "Tstrok;",
|
---|
| 1114 | "359": "tstrok;",
|
---|
| 1115 | "360": "Utilde;",
|
---|
| 1116 | "361": "utilde;",
|
---|
| 1117 | "362": "Umacr;",
|
---|
| 1118 | "363": "umacr;",
|
---|
| 1119 | "364": "Ubreve;",
|
---|
| 1120 | "365": "ubreve;",
|
---|
| 1121 | "366": "Uring;",
|
---|
| 1122 | "367": "uring;",
|
---|
| 1123 | "368": "Udblac;",
|
---|
| 1124 | "369": "udblac;",
|
---|
| 1125 | "370": "Uogon;",
|
---|
| 1126 | "371": "uogon;",
|
---|
| 1127 | "372": "Wcirc;",
|
---|
| 1128 | "373": "wcirc;",
|
---|
| 1129 | "374": "Ycirc;",
|
---|
| 1130 | "375": "ycirc;",
|
---|
| 1131 | "376": "Yuml;",
|
---|
| 1132 | "377": "Zacute;",
|
---|
| 1133 | "378": "zacute;",
|
---|
| 1134 | "379": "Zdot;",
|
---|
| 1135 | "380": "zdot;",
|
---|
| 1136 | "381": "Zcaron;",
|
---|
| 1137 | "382": "zcaron;",
|
---|
| 1138 | "402": "fnof;",
|
---|
| 1139 | "437": "imped;",
|
---|
| 1140 | "501": "gacute;",
|
---|
| 1141 | "567": "jmath;",
|
---|
| 1142 | "710": "circ;",
|
---|
| 1143 | "711": "Hacek;",
|
---|
| 1144 | "728": "breve;",
|
---|
| 1145 | "729": "dot;",
|
---|
| 1146 | "730": "ring;",
|
---|
| 1147 | "731": "ogon;",
|
---|
| 1148 | "732": "tilde;",
|
---|
| 1149 | "733": "DiacriticalDoubleAcute;",
|
---|
| 1150 | "785": "DownBreve;",
|
---|
| 1151 | "913": "Alpha;",
|
---|
| 1152 | "914": "Beta;",
|
---|
| 1153 | "915": "Gamma;",
|
---|
| 1154 | "916": "Delta;",
|
---|
| 1155 | "917": "Epsilon;",
|
---|
| 1156 | "918": "Zeta;",
|
---|
| 1157 | "919": "Eta;",
|
---|
| 1158 | "920": "Theta;",
|
---|
| 1159 | "921": "Iota;",
|
---|
| 1160 | "922": "Kappa;",
|
---|
| 1161 | "923": "Lambda;",
|
---|
| 1162 | "924": "Mu;",
|
---|
| 1163 | "925": "Nu;",
|
---|
| 1164 | "926": "Xi;",
|
---|
| 1165 | "927": "Omicron;",
|
---|
| 1166 | "928": "Pi;",
|
---|
| 1167 | "929": "Rho;",
|
---|
| 1168 | "931": "Sigma;",
|
---|
| 1169 | "932": "Tau;",
|
---|
| 1170 | "933": "Upsilon;",
|
---|
| 1171 | "934": "Phi;",
|
---|
| 1172 | "935": "Chi;",
|
---|
| 1173 | "936": "Psi;",
|
---|
| 1174 | "937": "Omega;",
|
---|
| 1175 | "945": "alpha;",
|
---|
| 1176 | "946": "beta;",
|
---|
| 1177 | "947": "gamma;",
|
---|
| 1178 | "948": "delta;",
|
---|
| 1179 | "949": "epsilon;",
|
---|
| 1180 | "950": "zeta;",
|
---|
| 1181 | "951": "eta;",
|
---|
| 1182 | "952": "theta;",
|
---|
| 1183 | "953": "iota;",
|
---|
| 1184 | "954": "kappa;",
|
---|
| 1185 | "955": "lambda;",
|
---|
| 1186 | "956": "mu;",
|
---|
| 1187 | "957": "nu;",
|
---|
| 1188 | "958": "xi;",
|
---|
| 1189 | "959": "omicron;",
|
---|
| 1190 | "960": "pi;",
|
---|
| 1191 | "961": "rho;",
|
---|
| 1192 | "962": "varsigma;",
|
---|
| 1193 | "963": "sigma;",
|
---|
| 1194 | "964": "tau;",
|
---|
| 1195 | "965": "upsilon;",
|
---|
| 1196 | "966": "phi;",
|
---|
| 1197 | "967": "chi;",
|
---|
| 1198 | "968": "psi;",
|
---|
| 1199 | "969": "omega;",
|
---|
| 1200 | "977": "vartheta;",
|
---|
| 1201 | "978": "upsih;",
|
---|
| 1202 | "981": "varphi;",
|
---|
| 1203 | "982": "varpi;",
|
---|
| 1204 | "988": "Gammad;",
|
---|
| 1205 | "989": "gammad;",
|
---|
| 1206 | "1008": "varkappa;",
|
---|
| 1207 | "1009": "varrho;",
|
---|
| 1208 | "1013": "varepsilon;",
|
---|
| 1209 | "1014": "bepsi;",
|
---|
| 1210 | "1025": "IOcy;",
|
---|
| 1211 | "1026": "DJcy;",
|
---|
| 1212 | "1027": "GJcy;",
|
---|
| 1213 | "1028": "Jukcy;",
|
---|
| 1214 | "1029": "DScy;",
|
---|
| 1215 | "1030": "Iukcy;",
|
---|
| 1216 | "1031": "YIcy;",
|
---|
| 1217 | "1032": "Jsercy;",
|
---|
| 1218 | "1033": "LJcy;",
|
---|
| 1219 | "1034": "NJcy;",
|
---|
| 1220 | "1035": "TSHcy;",
|
---|
| 1221 | "1036": "KJcy;",
|
---|
| 1222 | "1038": "Ubrcy;",
|
---|
| 1223 | "1039": "DZcy;",
|
---|
| 1224 | "1040": "Acy;",
|
---|
| 1225 | "1041": "Bcy;",
|
---|
| 1226 | "1042": "Vcy;",
|
---|
| 1227 | "1043": "Gcy;",
|
---|
| 1228 | "1044": "Dcy;",
|
---|
| 1229 | "1045": "IEcy;",
|
---|
| 1230 | "1046": "ZHcy;",
|
---|
| 1231 | "1047": "Zcy;",
|
---|
| 1232 | "1048": "Icy;",
|
---|
| 1233 | "1049": "Jcy;",
|
---|
| 1234 | "1050": "Kcy;",
|
---|
| 1235 | "1051": "Lcy;",
|
---|
| 1236 | "1052": "Mcy;",
|
---|
| 1237 | "1053": "Ncy;",
|
---|
| 1238 | "1054": "Ocy;",
|
---|
| 1239 | "1055": "Pcy;",
|
---|
| 1240 | "1056": "Rcy;",
|
---|
| 1241 | "1057": "Scy;",
|
---|
| 1242 | "1058": "Tcy;",
|
---|
| 1243 | "1059": "Ucy;",
|
---|
| 1244 | "1060": "Fcy;",
|
---|
| 1245 | "1061": "KHcy;",
|
---|
| 1246 | "1062": "TScy;",
|
---|
| 1247 | "1063": "CHcy;",
|
---|
| 1248 | "1064": "SHcy;",
|
---|
| 1249 | "1065": "SHCHcy;",
|
---|
| 1250 | "1066": "HARDcy;",
|
---|
| 1251 | "1067": "Ycy;",
|
---|
| 1252 | "1068": "SOFTcy;",
|
---|
| 1253 | "1069": "Ecy;",
|
---|
| 1254 | "1070": "YUcy;",
|
---|
| 1255 | "1071": "YAcy;",
|
---|
| 1256 | "1072": "acy;",
|
---|
| 1257 | "1073": "bcy;",
|
---|
| 1258 | "1074": "vcy;",
|
---|
| 1259 | "1075": "gcy;",
|
---|
| 1260 | "1076": "dcy;",
|
---|
| 1261 | "1077": "iecy;",
|
---|
| 1262 | "1078": "zhcy;",
|
---|
| 1263 | "1079": "zcy;",
|
---|
| 1264 | "1080": "icy;",
|
---|
| 1265 | "1081": "jcy;",
|
---|
| 1266 | "1082": "kcy;",
|
---|
| 1267 | "1083": "lcy;",
|
---|
| 1268 | "1084": "mcy;",
|
---|
| 1269 | "1085": "ncy;",
|
---|
| 1270 | "1086": "ocy;",
|
---|
| 1271 | "1087": "pcy;",
|
---|
| 1272 | "1088": "rcy;",
|
---|
| 1273 | "1089": "scy;",
|
---|
| 1274 | "1090": "tcy;",
|
---|
| 1275 | "1091": "ucy;",
|
---|
| 1276 | "1092": "fcy;",
|
---|
| 1277 | "1093": "khcy;",
|
---|
| 1278 | "1094": "tscy;",
|
---|
| 1279 | "1095": "chcy;",
|
---|
| 1280 | "1096": "shcy;",
|
---|
| 1281 | "1097": "shchcy;",
|
---|
| 1282 | "1098": "hardcy;",
|
---|
| 1283 | "1099": "ycy;",
|
---|
| 1284 | "1100": "softcy;",
|
---|
| 1285 | "1101": "ecy;",
|
---|
| 1286 | "1102": "yucy;",
|
---|
| 1287 | "1103": "yacy;",
|
---|
| 1288 | "1105": "iocy;",
|
---|
| 1289 | "1106": "djcy;",
|
---|
| 1290 | "1107": "gjcy;",
|
---|
| 1291 | "1108": "jukcy;",
|
---|
| 1292 | "1109": "dscy;",
|
---|
| 1293 | "1110": "iukcy;",
|
---|
| 1294 | "1111": "yicy;",
|
---|
| 1295 | "1112": "jsercy;",
|
---|
| 1296 | "1113": "ljcy;",
|
---|
| 1297 | "1114": "njcy;",
|
---|
| 1298 | "1115": "tshcy;",
|
---|
| 1299 | "1116": "kjcy;",
|
---|
| 1300 | "1118": "ubrcy;",
|
---|
| 1301 | "1119": "dzcy;",
|
---|
| 1302 | "8194": "ensp;",
|
---|
| 1303 | "8195": "emsp;",
|
---|
| 1304 | "8196": "emsp13;",
|
---|
| 1305 | "8197": "emsp14;",
|
---|
| 1306 | "8199": "numsp;",
|
---|
| 1307 | "8200": "puncsp;",
|
---|
| 1308 | "8201": "ThinSpace;",
|
---|
| 1309 | "8202": "VeryThinSpace;",
|
---|
| 1310 | "8203": "ZeroWidthSpace;",
|
---|
| 1311 | "8204": "zwnj;",
|
---|
| 1312 | "8205": "zwj;",
|
---|
| 1313 | "8206": "lrm;",
|
---|
| 1314 | "8207": "rlm;",
|
---|
| 1315 | "8208": "hyphen;",
|
---|
| 1316 | "8211": "ndash;",
|
---|
| 1317 | "8212": "mdash;",
|
---|
| 1318 | "8213": "horbar;",
|
---|
| 1319 | "8214": "Vert;",
|
---|
| 1320 | "8216": "OpenCurlyQuote;",
|
---|
| 1321 | "8217": "rsquor;",
|
---|
| 1322 | "8218": "sbquo;",
|
---|
| 1323 | "8220": "OpenCurlyDoubleQuote;",
|
---|
| 1324 | "8221": "rdquor;",
|
---|
| 1325 | "8222": "ldquor;",
|
---|
| 1326 | "8224": "dagger;",
|
---|
| 1327 | "8225": "ddagger;",
|
---|
| 1328 | "8226": "bullet;",
|
---|
| 1329 | "8229": "nldr;",
|
---|
| 1330 | "8230": "mldr;",
|
---|
| 1331 | "8240": "permil;",
|
---|
| 1332 | "8241": "pertenk;",
|
---|
| 1333 | "8242": "prime;",
|
---|
| 1334 | "8243": "Prime;",
|
---|
| 1335 | "8244": "tprime;",
|
---|
| 1336 | "8245": "bprime;",
|
---|
| 1337 | "8249": "lsaquo;",
|
---|
| 1338 | "8250": "rsaquo;",
|
---|
| 1339 | "8254": "OverBar;",
|
---|
| 1340 | "8257": "caret;",
|
---|
| 1341 | "8259": "hybull;",
|
---|
| 1342 | "8260": "frasl;",
|
---|
| 1343 | "8271": "bsemi;",
|
---|
| 1344 | "8279": "qprime;",
|
---|
| 1345 | "8287": "MediumSpace;",
|
---|
| 1346 | "8288": "NoBreak;",
|
---|
| 1347 | "8289": "ApplyFunction;",
|
---|
| 1348 | "8290": "it;",
|
---|
| 1349 | "8291": "InvisibleComma;",
|
---|
| 1350 | "8364": "euro;",
|
---|
| 1351 | "8411": "TripleDot;",
|
---|
| 1352 | "8412": "DotDot;",
|
---|
| 1353 | "8450": "Copf;",
|
---|
| 1354 | "8453": "incare;",
|
---|
| 1355 | "8458": "gscr;",
|
---|
| 1356 | "8459": "Hscr;",
|
---|
| 1357 | "8460": "Poincareplane;",
|
---|
| 1358 | "8461": "quaternions;",
|
---|
| 1359 | "8462": "planckh;",
|
---|
| 1360 | "8463": "plankv;",
|
---|
| 1361 | "8464": "Iscr;",
|
---|
| 1362 | "8465": "imagpart;",
|
---|
| 1363 | "8466": "Lscr;",
|
---|
| 1364 | "8467": "ell;",
|
---|
| 1365 | "8469": "Nopf;",
|
---|
| 1366 | "8470": "numero;",
|
---|
| 1367 | "8471": "copysr;",
|
---|
| 1368 | "8472": "wp;",
|
---|
| 1369 | "8473": "primes;",
|
---|
| 1370 | "8474": "rationals;",
|
---|
| 1371 | "8475": "Rscr;",
|
---|
| 1372 | "8476": "Rfr;",
|
---|
| 1373 | "8477": "Ropf;",
|
---|
| 1374 | "8478": "rx;",
|
---|
| 1375 | "8482": "trade;",
|
---|
| 1376 | "8484": "Zopf;",
|
---|
| 1377 | "8487": "mho;",
|
---|
| 1378 | "8488": "Zfr;",
|
---|
| 1379 | "8489": "iiota;",
|
---|
| 1380 | "8492": "Bscr;",
|
---|
| 1381 | "8493": "Cfr;",
|
---|
| 1382 | "8495": "escr;",
|
---|
| 1383 | "8496": "expectation;",
|
---|
| 1384 | "8497": "Fscr;",
|
---|
| 1385 | "8499": "phmmat;",
|
---|
| 1386 | "8500": "oscr;",
|
---|
| 1387 | "8501": "aleph;",
|
---|
| 1388 | "8502": "beth;",
|
---|
| 1389 | "8503": "gimel;",
|
---|
| 1390 | "8504": "daleth;",
|
---|
| 1391 | "8517": "DD;",
|
---|
| 1392 | "8518": "DifferentialD;",
|
---|
| 1393 | "8519": "exponentiale;",
|
---|
| 1394 | "8520": "ImaginaryI;",
|
---|
| 1395 | "8531": "frac13;",
|
---|
| 1396 | "8532": "frac23;",
|
---|
| 1397 | "8533": "frac15;",
|
---|
| 1398 | "8534": "frac25;",
|
---|
| 1399 | "8535": "frac35;",
|
---|
| 1400 | "8536": "frac45;",
|
---|
| 1401 | "8537": "frac16;",
|
---|
| 1402 | "8538": "frac56;",
|
---|
| 1403 | "8539": "frac18;",
|
---|
| 1404 | "8540": "frac38;",
|
---|
| 1405 | "8541": "frac58;",
|
---|
| 1406 | "8542": "frac78;",
|
---|
| 1407 | "8592": "slarr;",
|
---|
| 1408 | "8593": "uparrow;",
|
---|
| 1409 | "8594": "srarr;",
|
---|
| 1410 | "8595": "ShortDownArrow;",
|
---|
| 1411 | "8596": "leftrightarrow;",
|
---|
| 1412 | "8597": "varr;",
|
---|
| 1413 | "8598": "UpperLeftArrow;",
|
---|
| 1414 | "8599": "UpperRightArrow;",
|
---|
| 1415 | "8600": "searrow;",
|
---|
| 1416 | "8601": "swarrow;",
|
---|
| 1417 | "8602": "nleftarrow;",
|
---|
| 1418 | "8603": "nrightarrow;",
|
---|
| 1419 | "8605": "rightsquigarrow;",
|
---|
| 1420 | "8606": "twoheadleftarrow;",
|
---|
| 1421 | "8607": "Uarr;",
|
---|
| 1422 | "8608": "twoheadrightarrow;",
|
---|
| 1423 | "8609": "Darr;",
|
---|
| 1424 | "8610": "leftarrowtail;",
|
---|
| 1425 | "8611": "rightarrowtail;",
|
---|
| 1426 | "8612": "mapstoleft;",
|
---|
| 1427 | "8613": "UpTeeArrow;",
|
---|
| 1428 | "8614": "RightTeeArrow;",
|
---|
| 1429 | "8615": "mapstodown;",
|
---|
| 1430 | "8617": "larrhk;",
|
---|
| 1431 | "8618": "rarrhk;",
|
---|
| 1432 | "8619": "looparrowleft;",
|
---|
| 1433 | "8620": "rarrlp;",
|
---|
| 1434 | "8621": "leftrightsquigarrow;",
|
---|
| 1435 | "8622": "nleftrightarrow;",
|
---|
| 1436 | "8624": "lsh;",
|
---|
| 1437 | "8625": "rsh;",
|
---|
| 1438 | "8626": "ldsh;",
|
---|
| 1439 | "8627": "rdsh;",
|
---|
| 1440 | "8629": "crarr;",
|
---|
| 1441 | "8630": "curvearrowleft;",
|
---|
| 1442 | "8631": "curvearrowright;",
|
---|
| 1443 | "8634": "olarr;",
|
---|
| 1444 | "8635": "orarr;",
|
---|
| 1445 | "8636": "lharu;",
|
---|
| 1446 | "8637": "lhard;",
|
---|
| 1447 | "8638": "upharpoonright;",
|
---|
| 1448 | "8639": "upharpoonleft;",
|
---|
| 1449 | "8640": "RightVector;",
|
---|
| 1450 | "8641": "rightharpoondown;",
|
---|
| 1451 | "8642": "RightDownVector;",
|
---|
| 1452 | "8643": "LeftDownVector;",
|
---|
| 1453 | "8644": "rlarr;",
|
---|
| 1454 | "8645": "UpArrowDownArrow;",
|
---|
| 1455 | "8646": "lrarr;",
|
---|
| 1456 | "8647": "llarr;",
|
---|
| 1457 | "8648": "uuarr;",
|
---|
| 1458 | "8649": "rrarr;",
|
---|
| 1459 | "8650": "downdownarrows;",
|
---|
| 1460 | "8651": "ReverseEquilibrium;",
|
---|
| 1461 | "8652": "rlhar;",
|
---|
| 1462 | "8653": "nLeftarrow;",
|
---|
| 1463 | "8654": "nLeftrightarrow;",
|
---|
| 1464 | "8655": "nRightarrow;",
|
---|
| 1465 | "8656": "Leftarrow;",
|
---|
| 1466 | "8657": "Uparrow;",
|
---|
| 1467 | "8658": "Rightarrow;",
|
---|
| 1468 | "8659": "Downarrow;",
|
---|
| 1469 | "8660": "Leftrightarrow;",
|
---|
| 1470 | "8661": "vArr;",
|
---|
| 1471 | "8662": "nwArr;",
|
---|
| 1472 | "8663": "neArr;",
|
---|
| 1473 | "8664": "seArr;",
|
---|
| 1474 | "8665": "swArr;",
|
---|
| 1475 | "8666": "Lleftarrow;",
|
---|
| 1476 | "8667": "Rrightarrow;",
|
---|
| 1477 | "8669": "zigrarr;",
|
---|
| 1478 | "8676": "LeftArrowBar;",
|
---|
| 1479 | "8677": "RightArrowBar;",
|
---|
| 1480 | "8693": "duarr;",
|
---|
| 1481 | "8701": "loarr;",
|
---|
| 1482 | "8702": "roarr;",
|
---|
| 1483 | "8703": "hoarr;",
|
---|
| 1484 | "8704": "forall;",
|
---|
| 1485 | "8705": "complement;",
|
---|
| 1486 | "8706": "PartialD;",
|
---|
| 1487 | "8707": "Exists;",
|
---|
| 1488 | "8708": "NotExists;",
|
---|
| 1489 | "8709": "varnothing;",
|
---|
| 1490 | "8711": "nabla;",
|
---|
| 1491 | "8712": "isinv;",
|
---|
| 1492 | "8713": "notinva;",
|
---|
| 1493 | "8715": "SuchThat;",
|
---|
| 1494 | "8716": "NotReverseElement;",
|
---|
| 1495 | "8719": "Product;",
|
---|
| 1496 | "8720": "Coproduct;",
|
---|
| 1497 | "8721": "sum;",
|
---|
| 1498 | "8722": "minus;",
|
---|
| 1499 | "8723": "mp;",
|
---|
| 1500 | "8724": "plusdo;",
|
---|
| 1501 | "8726": "ssetmn;",
|
---|
| 1502 | "8727": "lowast;",
|
---|
| 1503 | "8728": "SmallCircle;",
|
---|
| 1504 | "8730": "Sqrt;",
|
---|
| 1505 | "8733": "vprop;",
|
---|
| 1506 | "8734": "infin;",
|
---|
| 1507 | "8735": "angrt;",
|
---|
| 1508 | "8736": "angle;",
|
---|
| 1509 | "8737": "measuredangle;",
|
---|
| 1510 | "8738": "angsph;",
|
---|
| 1511 | "8739": "VerticalBar;",
|
---|
| 1512 | "8740": "nsmid;",
|
---|
| 1513 | "8741": "spar;",
|
---|
| 1514 | "8742": "nspar;",
|
---|
| 1515 | "8743": "wedge;",
|
---|
| 1516 | "8744": "vee;",
|
---|
| 1517 | "8745": "cap;",
|
---|
| 1518 | "8746": "cup;",
|
---|
| 1519 | "8747": "Integral;",
|
---|
| 1520 | "8748": "Int;",
|
---|
| 1521 | "8749": "tint;",
|
---|
| 1522 | "8750": "oint;",
|
---|
| 1523 | "8751": "DoubleContourIntegral;",
|
---|
| 1524 | "8752": "Cconint;",
|
---|
| 1525 | "8753": "cwint;",
|
---|
| 1526 | "8754": "cwconint;",
|
---|
| 1527 | "8755": "CounterClockwiseContourIntegral;",
|
---|
| 1528 | "8756": "therefore;",
|
---|
| 1529 | "8757": "because;",
|
---|
| 1530 | "8758": "ratio;",
|
---|
| 1531 | "8759": "Proportion;",
|
---|
| 1532 | "8760": "minusd;",
|
---|
| 1533 | "8762": "mDDot;",
|
---|
| 1534 | "8763": "homtht;",
|
---|
| 1535 | "8764": "Tilde;",
|
---|
| 1536 | "8765": "bsim;",
|
---|
| 1537 | "8766": "mstpos;",
|
---|
| 1538 | "8767": "acd;",
|
---|
| 1539 | "8768": "wreath;",
|
---|
| 1540 | "8769": "nsim;",
|
---|
| 1541 | "8770": "esim;",
|
---|
| 1542 | "8771": "TildeEqual;",
|
---|
| 1543 | "8772": "nsimeq;",
|
---|
| 1544 | "8773": "TildeFullEqual;",
|
---|
| 1545 | "8774": "simne;",
|
---|
| 1546 | "8775": "NotTildeFullEqual;",
|
---|
| 1547 | "8776": "TildeTilde;",
|
---|
| 1548 | "8777": "NotTildeTilde;",
|
---|
| 1549 | "8778": "approxeq;",
|
---|
| 1550 | "8779": "apid;",
|
---|
| 1551 | "8780": "bcong;",
|
---|
| 1552 | "8781": "CupCap;",
|
---|
| 1553 | "8782": "HumpDownHump;",
|
---|
| 1554 | "8783": "HumpEqual;",
|
---|
| 1555 | "8784": "esdot;",
|
---|
| 1556 | "8785": "eDot;",
|
---|
| 1557 | "8786": "fallingdotseq;",
|
---|
| 1558 | "8787": "risingdotseq;",
|
---|
| 1559 | "8788": "coloneq;",
|
---|
| 1560 | "8789": "eqcolon;",
|
---|
| 1561 | "8790": "eqcirc;",
|
---|
| 1562 | "8791": "cire;",
|
---|
| 1563 | "8793": "wedgeq;",
|
---|
| 1564 | "8794": "veeeq;",
|
---|
| 1565 | "8796": "trie;",
|
---|
| 1566 | "8799": "questeq;",
|
---|
| 1567 | "8800": "NotEqual;",
|
---|
| 1568 | "8801": "equiv;",
|
---|
| 1569 | "8802": "NotCongruent;",
|
---|
| 1570 | "8804": "leq;",
|
---|
| 1571 | "8805": "GreaterEqual;",
|
---|
| 1572 | "8806": "LessFullEqual;",
|
---|
| 1573 | "8807": "GreaterFullEqual;",
|
---|
| 1574 | "8808": "lneqq;",
|
---|
| 1575 | "8809": "gneqq;",
|
---|
| 1576 | "8810": "NestedLessLess;",
|
---|
| 1577 | "8811": "NestedGreaterGreater;",
|
---|
| 1578 | "8812": "twixt;",
|
---|
| 1579 | "8813": "NotCupCap;",
|
---|
| 1580 | "8814": "NotLess;",
|
---|
| 1581 | "8815": "NotGreater;",
|
---|
| 1582 | "8816": "NotLessEqual;",
|
---|
| 1583 | "8817": "NotGreaterEqual;",
|
---|
| 1584 | "8818": "lsim;",
|
---|
| 1585 | "8819": "gtrsim;",
|
---|
| 1586 | "8820": "NotLessTilde;",
|
---|
| 1587 | "8821": "NotGreaterTilde;",
|
---|
| 1588 | "8822": "lg;",
|
---|
| 1589 | "8823": "gtrless;",
|
---|
| 1590 | "8824": "ntlg;",
|
---|
| 1591 | "8825": "ntgl;",
|
---|
| 1592 | "8826": "Precedes;",
|
---|
| 1593 | "8827": "Succeeds;",
|
---|
| 1594 | "8828": "PrecedesSlantEqual;",
|
---|
| 1595 | "8829": "SucceedsSlantEqual;",
|
---|
| 1596 | "8830": "prsim;",
|
---|
| 1597 | "8831": "succsim;",
|
---|
| 1598 | "8832": "nprec;",
|
---|
| 1599 | "8833": "nsucc;",
|
---|
| 1600 | "8834": "subset;",
|
---|
| 1601 | "8835": "supset;",
|
---|
| 1602 | "8836": "nsub;",
|
---|
| 1603 | "8837": "nsup;",
|
---|
| 1604 | "8838": "SubsetEqual;",
|
---|
| 1605 | "8839": "supseteq;",
|
---|
| 1606 | "8840": "nsubseteq;",
|
---|
| 1607 | "8841": "nsupseteq;",
|
---|
| 1608 | "8842": "subsetneq;",
|
---|
| 1609 | "8843": "supsetneq;",
|
---|
| 1610 | "8845": "cupdot;",
|
---|
| 1611 | "8846": "uplus;",
|
---|
| 1612 | "8847": "SquareSubset;",
|
---|
| 1613 | "8848": "SquareSuperset;",
|
---|
| 1614 | "8849": "SquareSubsetEqual;",
|
---|
| 1615 | "8850": "SquareSupersetEqual;",
|
---|
| 1616 | "8851": "SquareIntersection;",
|
---|
| 1617 | "8852": "SquareUnion;",
|
---|
| 1618 | "8853": "oplus;",
|
---|
| 1619 | "8854": "ominus;",
|
---|
| 1620 | "8855": "otimes;",
|
---|
| 1621 | "8856": "osol;",
|
---|
| 1622 | "8857": "odot;",
|
---|
| 1623 | "8858": "ocir;",
|
---|
| 1624 | "8859": "oast;",
|
---|
| 1625 | "8861": "odash;",
|
---|
| 1626 | "8862": "plusb;",
|
---|
| 1627 | "8863": "minusb;",
|
---|
| 1628 | "8864": "timesb;",
|
---|
| 1629 | "8865": "sdotb;",
|
---|
| 1630 | "8866": "vdash;",
|
---|
| 1631 | "8867": "LeftTee;",
|
---|
| 1632 | "8868": "top;",
|
---|
| 1633 | "8869": "UpTee;",
|
---|
| 1634 | "8871": "models;",
|
---|
| 1635 | "8872": "vDash;",
|
---|
| 1636 | "8873": "Vdash;",
|
---|
| 1637 | "8874": "Vvdash;",
|
---|
| 1638 | "8875": "VDash;",
|
---|
| 1639 | "8876": "nvdash;",
|
---|
| 1640 | "8877": "nvDash;",
|
---|
| 1641 | "8878": "nVdash;",
|
---|
| 1642 | "8879": "nVDash;",
|
---|
| 1643 | "8880": "prurel;",
|
---|
| 1644 | "8882": "vltri;",
|
---|
| 1645 | "8883": "vrtri;",
|
---|
| 1646 | "8884": "trianglelefteq;",
|
---|
| 1647 | "8885": "trianglerighteq;",
|
---|
| 1648 | "8886": "origof;",
|
---|
| 1649 | "8887": "imof;",
|
---|
| 1650 | "8888": "mumap;",
|
---|
| 1651 | "8889": "hercon;",
|
---|
| 1652 | "8890": "intercal;",
|
---|
| 1653 | "8891": "veebar;",
|
---|
| 1654 | "8893": "barvee;",
|
---|
| 1655 | "8894": "angrtvb;",
|
---|
| 1656 | "8895": "lrtri;",
|
---|
| 1657 | "8896": "xwedge;",
|
---|
| 1658 | "8897": "xvee;",
|
---|
| 1659 | "8898": "xcap;",
|
---|
| 1660 | "8899": "xcup;",
|
---|
| 1661 | "8900": "diamond;",
|
---|
| 1662 | "8901": "sdot;",
|
---|
| 1663 | "8902": "Star;",
|
---|
| 1664 | "8903": "divonx;",
|
---|
| 1665 | "8904": "bowtie;",
|
---|
| 1666 | "8905": "ltimes;",
|
---|
| 1667 | "8906": "rtimes;",
|
---|
| 1668 | "8907": "lthree;",
|
---|
| 1669 | "8908": "rthree;",
|
---|
| 1670 | "8909": "bsime;",
|
---|
| 1671 | "8910": "cuvee;",
|
---|
| 1672 | "8911": "cuwed;",
|
---|
| 1673 | "8912": "Subset;",
|
---|
| 1674 | "8913": "Supset;",
|
---|
| 1675 | "8914": "Cap;",
|
---|
| 1676 | "8915": "Cup;",
|
---|
| 1677 | "8916": "pitchfork;",
|
---|
| 1678 | "8917": "epar;",
|
---|
| 1679 | "8918": "ltdot;",
|
---|
| 1680 | "8919": "gtrdot;",
|
---|
| 1681 | "8920": "Ll;",
|
---|
| 1682 | "8921": "ggg;",
|
---|
| 1683 | "8922": "LessEqualGreater;",
|
---|
| 1684 | "8923": "gtreqless;",
|
---|
| 1685 | "8926": "curlyeqprec;",
|
---|
| 1686 | "8927": "curlyeqsucc;",
|
---|
| 1687 | "8928": "nprcue;",
|
---|
| 1688 | "8929": "nsccue;",
|
---|
| 1689 | "8930": "nsqsube;",
|
---|
| 1690 | "8931": "nsqsupe;",
|
---|
| 1691 | "8934": "lnsim;",
|
---|
| 1692 | "8935": "gnsim;",
|
---|
| 1693 | "8936": "prnsim;",
|
---|
| 1694 | "8937": "succnsim;",
|
---|
| 1695 | "8938": "ntriangleleft;",
|
---|
| 1696 | "8939": "ntriangleright;",
|
---|
| 1697 | "8940": "ntrianglelefteq;",
|
---|
| 1698 | "8941": "ntrianglerighteq;",
|
---|
| 1699 | "8942": "vellip;",
|
---|
| 1700 | "8943": "ctdot;",
|
---|
| 1701 | "8944": "utdot;",
|
---|
| 1702 | "8945": "dtdot;",
|
---|
| 1703 | "8946": "disin;",
|
---|
| 1704 | "8947": "isinsv;",
|
---|
| 1705 | "8948": "isins;",
|
---|
| 1706 | "8949": "isindot;",
|
---|
| 1707 | "8950": "notinvc;",
|
---|
| 1708 | "8951": "notinvb;",
|
---|
| 1709 | "8953": "isinE;",
|
---|
| 1710 | "8954": "nisd;",
|
---|
| 1711 | "8955": "xnis;",
|
---|
| 1712 | "8956": "nis;",
|
---|
| 1713 | "8957": "notnivc;",
|
---|
| 1714 | "8958": "notnivb;",
|
---|
| 1715 | "8965": "barwedge;",
|
---|
| 1716 | "8966": "doublebarwedge;",
|
---|
| 1717 | "8968": "LeftCeiling;",
|
---|
| 1718 | "8969": "RightCeiling;",
|
---|
| 1719 | "8970": "lfloor;",
|
---|
| 1720 | "8971": "RightFloor;",
|
---|
| 1721 | "8972": "drcrop;",
|
---|
| 1722 | "8973": "dlcrop;",
|
---|
| 1723 | "8974": "urcrop;",
|
---|
| 1724 | "8975": "ulcrop;",
|
---|
| 1725 | "8976": "bnot;",
|
---|
| 1726 | "8978": "profline;",
|
---|
| 1727 | "8979": "profsurf;",
|
---|
| 1728 | "8981": "telrec;",
|
---|
| 1729 | "8982": "target;",
|
---|
| 1730 | "8988": "ulcorner;",
|
---|
| 1731 | "8989": "urcorner;",
|
---|
| 1732 | "8990": "llcorner;",
|
---|
| 1733 | "8991": "lrcorner;",
|
---|
| 1734 | "8994": "sfrown;",
|
---|
| 1735 | "8995": "ssmile;",
|
---|
| 1736 | "9005": "cylcty;",
|
---|
| 1737 | "9006": "profalar;",
|
---|
| 1738 | "9014": "topbot;",
|
---|
| 1739 | "9021": "ovbar;",
|
---|
| 1740 | "9023": "solbar;",
|
---|
| 1741 | "9084": "angzarr;",
|
---|
| 1742 | "9136": "lmoustache;",
|
---|
| 1743 | "9137": "rmoustache;",
|
---|
| 1744 | "9140": "tbrk;",
|
---|
| 1745 | "9141": "UnderBracket;",
|
---|
| 1746 | "9142": "bbrktbrk;",
|
---|
| 1747 | "9180": "OverParenthesis;",
|
---|
| 1748 | "9181": "UnderParenthesis;",
|
---|
| 1749 | "9182": "OverBrace;",
|
---|
| 1750 | "9183": "UnderBrace;",
|
---|
| 1751 | "9186": "trpezium;",
|
---|
| 1752 | "9191": "elinters;",
|
---|
| 1753 | "9251": "blank;",
|
---|
| 1754 | "9416": "oS;",
|
---|
| 1755 | "9472": "HorizontalLine;",
|
---|
| 1756 | "9474": "boxv;",
|
---|
| 1757 | "9484": "boxdr;",
|
---|
| 1758 | "9488": "boxdl;",
|
---|
| 1759 | "9492": "boxur;",
|
---|
| 1760 | "9496": "boxul;",
|
---|
| 1761 | "9500": "boxvr;",
|
---|
| 1762 | "9508": "boxvl;",
|
---|
| 1763 | "9516": "boxhd;",
|
---|
| 1764 | "9524": "boxhu;",
|
---|
| 1765 | "9532": "boxvh;",
|
---|
| 1766 | "9552": "boxH;",
|
---|
| 1767 | "9553": "boxV;",
|
---|
| 1768 | "9554": "boxdR;",
|
---|
| 1769 | "9555": "boxDr;",
|
---|
| 1770 | "9556": "boxDR;",
|
---|
| 1771 | "9557": "boxdL;",
|
---|
| 1772 | "9558": "boxDl;",
|
---|
| 1773 | "9559": "boxDL;",
|
---|
| 1774 | "9560": "boxuR;",
|
---|
| 1775 | "9561": "boxUr;",
|
---|
| 1776 | "9562": "boxUR;",
|
---|
| 1777 | "9563": "boxuL;",
|
---|
| 1778 | "9564": "boxUl;",
|
---|
| 1779 | "9565": "boxUL;",
|
---|
| 1780 | "9566": "boxvR;",
|
---|
| 1781 | "9567": "boxVr;",
|
---|
| 1782 | "9568": "boxVR;",
|
---|
| 1783 | "9569": "boxvL;",
|
---|
| 1784 | "9570": "boxVl;",
|
---|
| 1785 | "9571": "boxVL;",
|
---|
| 1786 | "9572": "boxHd;",
|
---|
| 1787 | "9573": "boxhD;",
|
---|
| 1788 | "9574": "boxHD;",
|
---|
| 1789 | "9575": "boxHu;",
|
---|
| 1790 | "9576": "boxhU;",
|
---|
| 1791 | "9577": "boxHU;",
|
---|
| 1792 | "9578": "boxvH;",
|
---|
| 1793 | "9579": "boxVh;",
|
---|
| 1794 | "9580": "boxVH;",
|
---|
| 1795 | "9600": "uhblk;",
|
---|
| 1796 | "9604": "lhblk;",
|
---|
| 1797 | "9608": "block;",
|
---|
| 1798 | "9617": "blk14;",
|
---|
| 1799 | "9618": "blk12;",
|
---|
| 1800 | "9619": "blk34;",
|
---|
| 1801 | "9633": "square;",
|
---|
| 1802 | "9642": "squf;",
|
---|
| 1803 | "9643": "EmptyVerySmallSquare;",
|
---|
| 1804 | "9645": "rect;",
|
---|
| 1805 | "9646": "marker;",
|
---|
| 1806 | "9649": "fltns;",
|
---|
| 1807 | "9651": "xutri;",
|
---|
| 1808 | "9652": "utrif;",
|
---|
| 1809 | "9653": "utri;",
|
---|
| 1810 | "9656": "rtrif;",
|
---|
| 1811 | "9657": "triangleright;",
|
---|
| 1812 | "9661": "xdtri;",
|
---|
| 1813 | "9662": "dtrif;",
|
---|
| 1814 | "9663": "triangledown;",
|
---|
| 1815 | "9666": "ltrif;",
|
---|
| 1816 | "9667": "triangleleft;",
|
---|
| 1817 | "9674": "lozenge;",
|
---|
| 1818 | "9675": "cir;",
|
---|
| 1819 | "9708": "tridot;",
|
---|
| 1820 | "9711": "xcirc;",
|
---|
| 1821 | "9720": "ultri;",
|
---|
| 1822 | "9721": "urtri;",
|
---|
| 1823 | "9722": "lltri;",
|
---|
| 1824 | "9723": "EmptySmallSquare;",
|
---|
| 1825 | "9724": "FilledSmallSquare;",
|
---|
| 1826 | "9733": "starf;",
|
---|
| 1827 | "9734": "star;",
|
---|
| 1828 | "9742": "phone;",
|
---|
| 1829 | "9792": "female;",
|
---|
| 1830 | "9794": "male;",
|
---|
| 1831 | "9824": "spadesuit;",
|
---|
| 1832 | "9827": "clubsuit;",
|
---|
| 1833 | "9829": "heartsuit;",
|
---|
| 1834 | "9830": "diams;",
|
---|
| 1835 | "9834": "sung;",
|
---|
| 1836 | "9837": "flat;",
|
---|
| 1837 | "9838": "natural;",
|
---|
| 1838 | "9839": "sharp;",
|
---|
| 1839 | "10003": "checkmark;",
|
---|
| 1840 | "10007": "cross;",
|
---|
| 1841 | "10016": "maltese;",
|
---|
| 1842 | "10038": "sext;",
|
---|
| 1843 | "10072": "VerticalSeparator;",
|
---|
| 1844 | "10098": "lbbrk;",
|
---|
| 1845 | "10099": "rbbrk;",
|
---|
| 1846 | "10184": "bsolhsub;",
|
---|
| 1847 | "10185": "suphsol;",
|
---|
| 1848 | "10214": "lobrk;",
|
---|
| 1849 | "10215": "robrk;",
|
---|
| 1850 | "10216": "LeftAngleBracket;",
|
---|
| 1851 | "10217": "RightAngleBracket;",
|
---|
| 1852 | "10218": "Lang;",
|
---|
| 1853 | "10219": "Rang;",
|
---|
| 1854 | "10220": "loang;",
|
---|
| 1855 | "10221": "roang;",
|
---|
| 1856 | "10229": "xlarr;",
|
---|
| 1857 | "10230": "xrarr;",
|
---|
| 1858 | "10231": "xharr;",
|
---|
| 1859 | "10232": "xlArr;",
|
---|
| 1860 | "10233": "xrArr;",
|
---|
| 1861 | "10234": "xhArr;",
|
---|
| 1862 | "10236": "xmap;",
|
---|
| 1863 | "10239": "dzigrarr;",
|
---|
| 1864 | "10498": "nvlArr;",
|
---|
| 1865 | "10499": "nvrArr;",
|
---|
| 1866 | "10500": "nvHarr;",
|
---|
| 1867 | "10501": "Map;",
|
---|
| 1868 | "10508": "lbarr;",
|
---|
| 1869 | "10509": "rbarr;",
|
---|
| 1870 | "10510": "lBarr;",
|
---|
| 1871 | "10511": "rBarr;",
|
---|
| 1872 | "10512": "RBarr;",
|
---|
| 1873 | "10513": "DDotrahd;",
|
---|
| 1874 | "10514": "UpArrowBar;",
|
---|
| 1875 | "10515": "DownArrowBar;",
|
---|
| 1876 | "10518": "Rarrtl;",
|
---|
| 1877 | "10521": "latail;",
|
---|
| 1878 | "10522": "ratail;",
|
---|
| 1879 | "10523": "lAtail;",
|
---|
| 1880 | "10524": "rAtail;",
|
---|
| 1881 | "10525": "larrfs;",
|
---|
| 1882 | "10526": "rarrfs;",
|
---|
| 1883 | "10527": "larrbfs;",
|
---|
| 1884 | "10528": "rarrbfs;",
|
---|
| 1885 | "10531": "nwarhk;",
|
---|
| 1886 | "10532": "nearhk;",
|
---|
| 1887 | "10533": "searhk;",
|
---|
| 1888 | "10534": "swarhk;",
|
---|
| 1889 | "10535": "nwnear;",
|
---|
| 1890 | "10536": "toea;",
|
---|
| 1891 | "10537": "tosa;",
|
---|
| 1892 | "10538": "swnwar;",
|
---|
| 1893 | "10547": "rarrc;",
|
---|
| 1894 | "10549": "cudarrr;",
|
---|
| 1895 | "10550": "ldca;",
|
---|
| 1896 | "10551": "rdca;",
|
---|
| 1897 | "10552": "cudarrl;",
|
---|
| 1898 | "10553": "larrpl;",
|
---|
| 1899 | "10556": "curarrm;",
|
---|
| 1900 | "10557": "cularrp;",
|
---|
| 1901 | "10565": "rarrpl;",
|
---|
| 1902 | "10568": "harrcir;",
|
---|
| 1903 | "10569": "Uarrocir;",
|
---|
| 1904 | "10570": "lurdshar;",
|
---|
| 1905 | "10571": "ldrushar;",
|
---|
| 1906 | "10574": "LeftRightVector;",
|
---|
| 1907 | "10575": "RightUpDownVector;",
|
---|
| 1908 | "10576": "DownLeftRightVector;",
|
---|
| 1909 | "10577": "LeftUpDownVector;",
|
---|
| 1910 | "10578": "LeftVectorBar;",
|
---|
| 1911 | "10579": "RightVectorBar;",
|
---|
| 1912 | "10580": "RightUpVectorBar;",
|
---|
| 1913 | "10581": "RightDownVectorBar;",
|
---|
| 1914 | "10582": "DownLeftVectorBar;",
|
---|
| 1915 | "10583": "DownRightVectorBar;",
|
---|
| 1916 | "10584": "LeftUpVectorBar;",
|
---|
| 1917 | "10585": "LeftDownVectorBar;",
|
---|
| 1918 | "10586": "LeftTeeVector;",
|
---|
| 1919 | "10587": "RightTeeVector;",
|
---|
| 1920 | "10588": "RightUpTeeVector;",
|
---|
| 1921 | "10589": "RightDownTeeVector;",
|
---|
| 1922 | "10590": "DownLeftTeeVector;",
|
---|
| 1923 | "10591": "DownRightTeeVector;",
|
---|
| 1924 | "10592": "LeftUpTeeVector;",
|
---|
| 1925 | "10593": "LeftDownTeeVector;",
|
---|
| 1926 | "10594": "lHar;",
|
---|
| 1927 | "10595": "uHar;",
|
---|
| 1928 | "10596": "rHar;",
|
---|
| 1929 | "10597": "dHar;",
|
---|
| 1930 | "10598": "luruhar;",
|
---|
| 1931 | "10599": "ldrdhar;",
|
---|
| 1932 | "10600": "ruluhar;",
|
---|
| 1933 | "10601": "rdldhar;",
|
---|
| 1934 | "10602": "lharul;",
|
---|
| 1935 | "10603": "llhard;",
|
---|
| 1936 | "10604": "rharul;",
|
---|
| 1937 | "10605": "lrhard;",
|
---|
| 1938 | "10606": "UpEquilibrium;",
|
---|
| 1939 | "10607": "ReverseUpEquilibrium;",
|
---|
| 1940 | "10608": "RoundImplies;",
|
---|
| 1941 | "10609": "erarr;",
|
---|
| 1942 | "10610": "simrarr;",
|
---|
| 1943 | "10611": "larrsim;",
|
---|
| 1944 | "10612": "rarrsim;",
|
---|
| 1945 | "10613": "rarrap;",
|
---|
| 1946 | "10614": "ltlarr;",
|
---|
| 1947 | "10616": "gtrarr;",
|
---|
| 1948 | "10617": "subrarr;",
|
---|
| 1949 | "10619": "suplarr;",
|
---|
| 1950 | "10620": "lfisht;",
|
---|
| 1951 | "10621": "rfisht;",
|
---|
| 1952 | "10622": "ufisht;",
|
---|
| 1953 | "10623": "dfisht;",
|
---|
| 1954 | "10629": "lopar;",
|
---|
| 1955 | "10630": "ropar;",
|
---|
| 1956 | "10635": "lbrke;",
|
---|
| 1957 | "10636": "rbrke;",
|
---|
| 1958 | "10637": "lbrkslu;",
|
---|
| 1959 | "10638": "rbrksld;",
|
---|
| 1960 | "10639": "lbrksld;",
|
---|
| 1961 | "10640": "rbrkslu;",
|
---|
| 1962 | "10641": "langd;",
|
---|
| 1963 | "10642": "rangd;",
|
---|
| 1964 | "10643": "lparlt;",
|
---|
| 1965 | "10644": "rpargt;",
|
---|
| 1966 | "10645": "gtlPar;",
|
---|
| 1967 | "10646": "ltrPar;",
|
---|
| 1968 | "10650": "vzigzag;",
|
---|
| 1969 | "10652": "vangrt;",
|
---|
| 1970 | "10653": "angrtvbd;",
|
---|
| 1971 | "10660": "ange;",
|
---|
| 1972 | "10661": "range;",
|
---|
| 1973 | "10662": "dwangle;",
|
---|
| 1974 | "10663": "uwangle;",
|
---|
| 1975 | "10664": "angmsdaa;",
|
---|
| 1976 | "10665": "angmsdab;",
|
---|
| 1977 | "10666": "angmsdac;",
|
---|
| 1978 | "10667": "angmsdad;",
|
---|
| 1979 | "10668": "angmsdae;",
|
---|
| 1980 | "10669": "angmsdaf;",
|
---|
| 1981 | "10670": "angmsdag;",
|
---|
| 1982 | "10671": "angmsdah;",
|
---|
| 1983 | "10672": "bemptyv;",
|
---|
| 1984 | "10673": "demptyv;",
|
---|
| 1985 | "10674": "cemptyv;",
|
---|
| 1986 | "10675": "raemptyv;",
|
---|
| 1987 | "10676": "laemptyv;",
|
---|
| 1988 | "10677": "ohbar;",
|
---|
| 1989 | "10678": "omid;",
|
---|
| 1990 | "10679": "opar;",
|
---|
| 1991 | "10681": "operp;",
|
---|
| 1992 | "10683": "olcross;",
|
---|
| 1993 | "10684": "odsold;",
|
---|
| 1994 | "10686": "olcir;",
|
---|
| 1995 | "10687": "ofcir;",
|
---|
| 1996 | "10688": "olt;",
|
---|
| 1997 | "10689": "ogt;",
|
---|
| 1998 | "10690": "cirscir;",
|
---|
| 1999 | "10691": "cirE;",
|
---|
| 2000 | "10692": "solb;",
|
---|
| 2001 | "10693": "bsolb;",
|
---|
| 2002 | "10697": "boxbox;",
|
---|
| 2003 | "10701": "trisb;",
|
---|
| 2004 | "10702": "rtriltri;",
|
---|
| 2005 | "10703": "LeftTriangleBar;",
|
---|
| 2006 | "10704": "RightTriangleBar;",
|
---|
| 2007 | "10716": "iinfin;",
|
---|
| 2008 | "10717": "infintie;",
|
---|
| 2009 | "10718": "nvinfin;",
|
---|
| 2010 | "10723": "eparsl;",
|
---|
| 2011 | "10724": "smeparsl;",
|
---|
| 2012 | "10725": "eqvparsl;",
|
---|
| 2013 | "10731": "lozf;",
|
---|
| 2014 | "10740": "RuleDelayed;",
|
---|
| 2015 | "10742": "dsol;",
|
---|
| 2016 | "10752": "xodot;",
|
---|
| 2017 | "10753": "xoplus;",
|
---|
| 2018 | "10754": "xotime;",
|
---|
| 2019 | "10756": "xuplus;",
|
---|
| 2020 | "10758": "xsqcup;",
|
---|
| 2021 | "10764": "qint;",
|
---|
| 2022 | "10765": "fpartint;",
|
---|
| 2023 | "10768": "cirfnint;",
|
---|
| 2024 | "10769": "awint;",
|
---|
| 2025 | "10770": "rppolint;",
|
---|
| 2026 | "10771": "scpolint;",
|
---|
| 2027 | "10772": "npolint;",
|
---|
| 2028 | "10773": "pointint;",
|
---|
| 2029 | "10774": "quatint;",
|
---|
| 2030 | "10775": "intlarhk;",
|
---|
| 2031 | "10786": "pluscir;",
|
---|
| 2032 | "10787": "plusacir;",
|
---|
| 2033 | "10788": "simplus;",
|
---|
| 2034 | "10789": "plusdu;",
|
---|
| 2035 | "10790": "plussim;",
|
---|
| 2036 | "10791": "plustwo;",
|
---|
| 2037 | "10793": "mcomma;",
|
---|
| 2038 | "10794": "minusdu;",
|
---|
| 2039 | "10797": "loplus;",
|
---|
| 2040 | "10798": "roplus;",
|
---|
| 2041 | "10799": "Cross;",
|
---|
| 2042 | "10800": "timesd;",
|
---|
| 2043 | "10801": "timesbar;",
|
---|
| 2044 | "10803": "smashp;",
|
---|
| 2045 | "10804": "lotimes;",
|
---|
| 2046 | "10805": "rotimes;",
|
---|
| 2047 | "10806": "otimesas;",
|
---|
| 2048 | "10807": "Otimes;",
|
---|
| 2049 | "10808": "odiv;",
|
---|
| 2050 | "10809": "triplus;",
|
---|
| 2051 | "10810": "triminus;",
|
---|
| 2052 | "10811": "tritime;",
|
---|
| 2053 | "10812": "iprod;",
|
---|
| 2054 | "10815": "amalg;",
|
---|
| 2055 | "10816": "capdot;",
|
---|
| 2056 | "10818": "ncup;",
|
---|
| 2057 | "10819": "ncap;",
|
---|
| 2058 | "10820": "capand;",
|
---|
| 2059 | "10821": "cupor;",
|
---|
| 2060 | "10822": "cupcap;",
|
---|
| 2061 | "10823": "capcup;",
|
---|
| 2062 | "10824": "cupbrcap;",
|
---|
| 2063 | "10825": "capbrcup;",
|
---|
| 2064 | "10826": "cupcup;",
|
---|
| 2065 | "10827": "capcap;",
|
---|
| 2066 | "10828": "ccups;",
|
---|
| 2067 | "10829": "ccaps;",
|
---|
| 2068 | "10832": "ccupssm;",
|
---|
| 2069 | "10835": "And;",
|
---|
| 2070 | "10836": "Or;",
|
---|
| 2071 | "10837": "andand;",
|
---|
| 2072 | "10838": "oror;",
|
---|
| 2073 | "10839": "orslope;",
|
---|
| 2074 | "10840": "andslope;",
|
---|
| 2075 | "10842": "andv;",
|
---|
| 2076 | "10843": "orv;",
|
---|
| 2077 | "10844": "andd;",
|
---|
| 2078 | "10845": "ord;",
|
---|
| 2079 | "10847": "wedbar;",
|
---|
| 2080 | "10854": "sdote;",
|
---|
| 2081 | "10858": "simdot;",
|
---|
| 2082 | "10861": "congdot;",
|
---|
| 2083 | "10862": "easter;",
|
---|
| 2084 | "10863": "apacir;",
|
---|
| 2085 | "10864": "apE;",
|
---|
| 2086 | "10865": "eplus;",
|
---|
| 2087 | "10866": "pluse;",
|
---|
| 2088 | "10867": "Esim;",
|
---|
| 2089 | "10868": "Colone;",
|
---|
| 2090 | "10869": "Equal;",
|
---|
| 2091 | "10871": "eDDot;",
|
---|
| 2092 | "10872": "equivDD;",
|
---|
| 2093 | "10873": "ltcir;",
|
---|
| 2094 | "10874": "gtcir;",
|
---|
| 2095 | "10875": "ltquest;",
|
---|
| 2096 | "10876": "gtquest;",
|
---|
| 2097 | "10877": "LessSlantEqual;",
|
---|
| 2098 | "10878": "GreaterSlantEqual;",
|
---|
| 2099 | "10879": "lesdot;",
|
---|
| 2100 | "10880": "gesdot;",
|
---|
| 2101 | "10881": "lesdoto;",
|
---|
| 2102 | "10882": "gesdoto;",
|
---|
| 2103 | "10883": "lesdotor;",
|
---|
| 2104 | "10884": "gesdotol;",
|
---|
| 2105 | "10885": "lessapprox;",
|
---|
| 2106 | "10886": "gtrapprox;",
|
---|
| 2107 | "10887": "lneq;",
|
---|
| 2108 | "10888": "gneq;",
|
---|
| 2109 | "10889": "lnapprox;",
|
---|
| 2110 | "10890": "gnapprox;",
|
---|
| 2111 | "10891": "lesseqqgtr;",
|
---|
| 2112 | "10892": "gtreqqless;",
|
---|
| 2113 | "10893": "lsime;",
|
---|
| 2114 | "10894": "gsime;",
|
---|
| 2115 | "10895": "lsimg;",
|
---|
| 2116 | "10896": "gsiml;",
|
---|
| 2117 | "10897": "lgE;",
|
---|
| 2118 | "10898": "glE;",
|
---|
| 2119 | "10899": "lesges;",
|
---|
| 2120 | "10900": "gesles;",
|
---|
| 2121 | "10901": "eqslantless;",
|
---|
| 2122 | "10902": "eqslantgtr;",
|
---|
| 2123 | "10903": "elsdot;",
|
---|
| 2124 | "10904": "egsdot;",
|
---|
| 2125 | "10905": "el;",
|
---|
| 2126 | "10906": "eg;",
|
---|
| 2127 | "10909": "siml;",
|
---|
| 2128 | "10910": "simg;",
|
---|
| 2129 | "10911": "simlE;",
|
---|
| 2130 | "10912": "simgE;",
|
---|
| 2131 | "10913": "LessLess;",
|
---|
| 2132 | "10914": "GreaterGreater;",
|
---|
| 2133 | "10916": "glj;",
|
---|
| 2134 | "10917": "gla;",
|
---|
| 2135 | "10918": "ltcc;",
|
---|
| 2136 | "10919": "gtcc;",
|
---|
| 2137 | "10920": "lescc;",
|
---|
| 2138 | "10921": "gescc;",
|
---|
| 2139 | "10922": "smt;",
|
---|
| 2140 | "10923": "lat;",
|
---|
| 2141 | "10924": "smte;",
|
---|
| 2142 | "10925": "late;",
|
---|
| 2143 | "10926": "bumpE;",
|
---|
| 2144 | "10927": "preceq;",
|
---|
| 2145 | "10928": "succeq;",
|
---|
| 2146 | "10931": "prE;",
|
---|
| 2147 | "10932": "scE;",
|
---|
| 2148 | "10933": "prnE;",
|
---|
| 2149 | "10934": "succneqq;",
|
---|
| 2150 | "10935": "precapprox;",
|
---|
| 2151 | "10936": "succapprox;",
|
---|
| 2152 | "10937": "prnap;",
|
---|
| 2153 | "10938": "succnapprox;",
|
---|
| 2154 | "10939": "Pr;",
|
---|
| 2155 | "10940": "Sc;",
|
---|
| 2156 | "10941": "subdot;",
|
---|
| 2157 | "10942": "supdot;",
|
---|
| 2158 | "10943": "subplus;",
|
---|
| 2159 | "10944": "supplus;",
|
---|
| 2160 | "10945": "submult;",
|
---|
| 2161 | "10946": "supmult;",
|
---|
| 2162 | "10947": "subedot;",
|
---|
| 2163 | "10948": "supedot;",
|
---|
| 2164 | "10949": "subseteqq;",
|
---|
| 2165 | "10950": "supseteqq;",
|
---|
| 2166 | "10951": "subsim;",
|
---|
| 2167 | "10952": "supsim;",
|
---|
| 2168 | "10955": "subsetneqq;",
|
---|
| 2169 | "10956": "supsetneqq;",
|
---|
| 2170 | "10959": "csub;",
|
---|
| 2171 | "10960": "csup;",
|
---|
| 2172 | "10961": "csube;",
|
---|
| 2173 | "10962": "csupe;",
|
---|
| 2174 | "10963": "subsup;",
|
---|
| 2175 | "10964": "supsub;",
|
---|
| 2176 | "10965": "subsub;",
|
---|
| 2177 | "10966": "supsup;",
|
---|
| 2178 | "10967": "suphsub;",
|
---|
| 2179 | "10968": "supdsub;",
|
---|
| 2180 | "10969": "forkv;",
|
---|
| 2181 | "10970": "topfork;",
|
---|
| 2182 | "10971": "mlcp;",
|
---|
| 2183 | "10980": "DoubleLeftTee;",
|
---|
| 2184 | "10982": "Vdashl;",
|
---|
| 2185 | "10983": "Barv;",
|
---|
| 2186 | "10984": "vBar;",
|
---|
| 2187 | "10985": "vBarv;",
|
---|
| 2188 | "10987": "Vbar;",
|
---|
| 2189 | "10988": "Not;",
|
---|
| 2190 | "10989": "bNot;",
|
---|
| 2191 | "10990": "rnmid;",
|
---|
| 2192 | "10991": "cirmid;",
|
---|
| 2193 | "10992": "midcir;",
|
---|
| 2194 | "10993": "topcir;",
|
---|
| 2195 | "10994": "nhpar;",
|
---|
| 2196 | "10995": "parsim;",
|
---|
| 2197 | "11005": "parsl;",
|
---|
| 2198 | "64256": "fflig;",
|
---|
| 2199 | "64257": "filig;",
|
---|
| 2200 | "64258": "fllig;",
|
---|
| 2201 | "64259": "ffilig;",
|
---|
| 2202 | "64260": "ffllig;"
|
---|
| 2203 | }
|
---|
| 2204 | },{}],11:[function(require,module,exports){
|
---|
| 2205 | 'use strict';
|
---|
| 2206 |
|
---|
| 2207 | var hasOwn = Object.prototype.hasOwnProperty;
|
---|
| 2208 | var toStr = Object.prototype.toString;
|
---|
| 2209 | var defineProperty = Object.defineProperty;
|
---|
| 2210 | var gOPD = Object.getOwnPropertyDescriptor;
|
---|
| 2211 |
|
---|
| 2212 | var isArray = function isArray(arr) {
|
---|
| 2213 | if (typeof Array.isArray === 'function') {
|
---|
| 2214 | return Array.isArray(arr);
|
---|
| 2215 | }
|
---|
| 2216 |
|
---|
| 2217 | return toStr.call(arr) === '[object Array]';
|
---|
| 2218 | };
|
---|
| 2219 |
|
---|
| 2220 | var isPlainObject = function isPlainObject(obj) {
|
---|
| 2221 | if (!obj || toStr.call(obj) !== '[object Object]') {
|
---|
| 2222 | return false;
|
---|
| 2223 | }
|
---|
| 2224 |
|
---|
| 2225 | var hasOwnConstructor = hasOwn.call(obj, 'constructor');
|
---|
| 2226 | var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
|
---|
| 2227 | // Not own constructor property must be Object
|
---|
| 2228 | if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
|
---|
| 2229 | return false;
|
---|
| 2230 | }
|
---|
| 2231 |
|
---|
| 2232 | // Own properties are enumerated firstly, so to speed up,
|
---|
| 2233 | // if last one is own, then all properties are own.
|
---|
| 2234 | var key;
|
---|
| 2235 | for (key in obj) { /**/ }
|
---|
| 2236 |
|
---|
| 2237 | return typeof key === 'undefined' || hasOwn.call(obj, key);
|
---|
| 2238 | };
|
---|
| 2239 |
|
---|
| 2240 | // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
|
---|
| 2241 | var setProperty = function setProperty(target, options) {
|
---|
| 2242 | if (defineProperty && options.name === '__proto__') {
|
---|
| 2243 | defineProperty(target, options.name, {
|
---|
| 2244 | enumerable: true,
|
---|
| 2245 | configurable: true,
|
---|
| 2246 | value: options.newValue,
|
---|
| 2247 | writable: true
|
---|
| 2248 | });
|
---|
| 2249 | } else {
|
---|
| 2250 | target[options.name] = options.newValue;
|
---|
| 2251 | }
|
---|
| 2252 | };
|
---|
| 2253 |
|
---|
| 2254 | // Return undefined instead of __proto__ if '__proto__' is not an own property
|
---|
| 2255 | var getProperty = function getProperty(obj, name) {
|
---|
| 2256 | if (name === '__proto__') {
|
---|
| 2257 | if (!hasOwn.call(obj, name)) {
|
---|
| 2258 | return void 0;
|
---|
| 2259 | } else if (gOPD) {
|
---|
| 2260 | // In early versions of node, obj['__proto__'] is buggy when obj has
|
---|
| 2261 | // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
|
---|
| 2262 | return gOPD(obj, name).value;
|
---|
| 2263 | }
|
---|
| 2264 | }
|
---|
| 2265 |
|
---|
| 2266 | return obj[name];
|
---|
| 2267 | };
|
---|
| 2268 |
|
---|
| 2269 | module.exports = function extend() {
|
---|
| 2270 | var options, name, src, copy, copyIsArray, clone;
|
---|
| 2271 | var target = arguments[0];
|
---|
| 2272 | var i = 1;
|
---|
| 2273 | var length = arguments.length;
|
---|
| 2274 | var deep = false;
|
---|
| 2275 |
|
---|
| 2276 | // Handle a deep copy situation
|
---|
| 2277 | if (typeof target === 'boolean') {
|
---|
| 2278 | deep = target;
|
---|
| 2279 | target = arguments[1] || {};
|
---|
| 2280 | // skip the boolean and the target
|
---|
| 2281 | i = 2;
|
---|
| 2282 | }
|
---|
| 2283 | if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
|
---|
| 2284 | target = {};
|
---|
| 2285 | }
|
---|
| 2286 |
|
---|
| 2287 | for (; i < length; ++i) {
|
---|
| 2288 | options = arguments[i];
|
---|
| 2289 | // Only deal with non-null/undefined values
|
---|
| 2290 | if (options != null) {
|
---|
| 2291 | // Extend the base object
|
---|
| 2292 | for (name in options) {
|
---|
| 2293 | src = getProperty(target, name);
|
---|
| 2294 | copy = getProperty(options, name);
|
---|
| 2295 |
|
---|
| 2296 | // Prevent never-ending loop
|
---|
| 2297 | if (target !== copy) {
|
---|
| 2298 | // Recurse if we're merging plain objects or arrays
|
---|
| 2299 | if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
|
---|
| 2300 | if (copyIsArray) {
|
---|
| 2301 | copyIsArray = false;
|
---|
| 2302 | clone = src && isArray(src) ? src : [];
|
---|
| 2303 | } else {
|
---|
| 2304 | clone = src && isPlainObject(src) ? src : {};
|
---|
| 2305 | }
|
---|
| 2306 |
|
---|
| 2307 | // Never move original objects, clone them
|
---|
| 2308 | setProperty(target, { name: name, newValue: extend(deep, clone, copy) });
|
---|
| 2309 |
|
---|
| 2310 | // Don't bring in undefined values
|
---|
| 2311 | } else if (typeof copy !== 'undefined') {
|
---|
| 2312 | setProperty(target, { name: name, newValue: copy });
|
---|
| 2313 | }
|
---|
| 2314 | }
|
---|
| 2315 | }
|
---|
| 2316 | }
|
---|
| 2317 | }
|
---|
| 2318 |
|
---|
| 2319 | // Return the modified object
|
---|
| 2320 | return target;
|
---|
| 2321 | };
|
---|
| 2322 |
|
---|
| 2323 | },{}],12:[function(require,module,exports){
|
---|
| 2324 | (function (global){
|
---|
| 2325 | /*! https://mths.be/punycode v1.4.1 by @mathias */
|
---|
| 2326 | ;(function(root) {
|
---|
| 2327 |
|
---|
| 2328 | /** Detect free variables */
|
---|
| 2329 | var freeExports = typeof exports == 'object' && exports &&
|
---|
| 2330 | !exports.nodeType && exports;
|
---|
| 2331 | var freeModule = typeof module == 'object' && module &&
|
---|
| 2332 | !module.nodeType && module;
|
---|
| 2333 | var freeGlobal = typeof global == 'object' && global;
|
---|
| 2334 | if (
|
---|
| 2335 | freeGlobal.global === freeGlobal ||
|
---|
| 2336 | freeGlobal.window === freeGlobal ||
|
---|
| 2337 | freeGlobal.self === freeGlobal
|
---|
| 2338 | ) {
|
---|
| 2339 | root = freeGlobal;
|
---|
| 2340 | }
|
---|
| 2341 |
|
---|
| 2342 | /**
|
---|
| 2343 | * The `punycode` object.
|
---|
| 2344 | * @name punycode
|
---|
| 2345 | * @type Object
|
---|
| 2346 | */
|
---|
| 2347 | var punycode,
|
---|
| 2348 |
|
---|
| 2349 | /** Highest positive signed 32-bit float value */
|
---|
| 2350 | maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
|
---|
| 2351 |
|
---|
| 2352 | /** Bootstring parameters */
|
---|
| 2353 | base = 36,
|
---|
| 2354 | tMin = 1,
|
---|
| 2355 | tMax = 26,
|
---|
| 2356 | skew = 38,
|
---|
| 2357 | damp = 700,
|
---|
| 2358 | initialBias = 72,
|
---|
| 2359 | initialN = 128, // 0x80
|
---|
| 2360 | delimiter = '-', // '\x2D'
|
---|
| 2361 |
|
---|
| 2362 | /** Regular expressions */
|
---|
| 2363 | regexPunycode = /^xn--/,
|
---|
| 2364 | regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
|
---|
| 2365 | regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
|
---|
| 2366 |
|
---|
| 2367 | /** Error messages */
|
---|
| 2368 | errors = {
|
---|
| 2369 | 'overflow': 'Overflow: input needs wider integers to process',
|
---|
| 2370 | 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
|
---|
| 2371 | 'invalid-input': 'Invalid input'
|
---|
| 2372 | },
|
---|
| 2373 |
|
---|
| 2374 | /** Convenience shortcuts */
|
---|
| 2375 | baseMinusTMin = base - tMin,
|
---|
| 2376 | floor = Math.floor,
|
---|
| 2377 | stringFromCharCode = String.fromCharCode,
|
---|
| 2378 |
|
---|
| 2379 | /** Temporary variable */
|
---|
| 2380 | key;
|
---|
| 2381 |
|
---|
| 2382 | /*--------------------------------------------------------------------------*/
|
---|
| 2383 |
|
---|
| 2384 | /**
|
---|
| 2385 | * A generic error utility function.
|
---|
| 2386 | * @private
|
---|
| 2387 | * @param {String} type The error type.
|
---|
| 2388 | * @returns {Error} Throws a `RangeError` with the applicable error message.
|
---|
| 2389 | */
|
---|
| 2390 | function error(type) {
|
---|
| 2391 | throw new RangeError(errors[type]);
|
---|
| 2392 | }
|
---|
| 2393 |
|
---|
| 2394 | /**
|
---|
| 2395 | * A generic `Array#map` utility function.
|
---|
| 2396 | * @private
|
---|
| 2397 | * @param {Array} array The array to iterate over.
|
---|
| 2398 | * @param {Function} callback The function that gets called for every array
|
---|
| 2399 | * item.
|
---|
| 2400 | * @returns {Array} A new array of values returned by the callback function.
|
---|
| 2401 | */
|
---|
| 2402 | function map(array, fn) {
|
---|
| 2403 | var length = array.length;
|
---|
| 2404 | var result = [];
|
---|
| 2405 | while (length--) {
|
---|
| 2406 | result[length] = fn(array[length]);
|
---|
| 2407 | }
|
---|
| 2408 | return result;
|
---|
| 2409 | }
|
---|
| 2410 |
|
---|
| 2411 | /**
|
---|
| 2412 | * A simple `Array#map`-like wrapper to work with domain name strings or email
|
---|
| 2413 | * addresses.
|
---|
| 2414 | * @private
|
---|
| 2415 | * @param {String} domain The domain name or email address.
|
---|
| 2416 | * @param {Function} callback The function that gets called for every
|
---|
| 2417 | * character.
|
---|
| 2418 | * @returns {Array} A new string of characters returned by the callback
|
---|
| 2419 | * function.
|
---|
| 2420 | */
|
---|
| 2421 | function mapDomain(string, fn) {
|
---|
| 2422 | var parts = string.split('@');
|
---|
| 2423 | var result = '';
|
---|
| 2424 | if (parts.length > 1) {
|
---|
| 2425 | // In email addresses, only the domain name should be punycoded. Leave
|
---|
| 2426 | // the local part (i.e. everything up to `@`) intact.
|
---|
| 2427 | result = parts[0] + '@';
|
---|
| 2428 | string = parts[1];
|
---|
| 2429 | }
|
---|
| 2430 | // Avoid `split(regex)` for IE8 compatibility. See #17.
|
---|
| 2431 | string = string.replace(regexSeparators, '\x2E');
|
---|
| 2432 | var labels = string.split('.');
|
---|
| 2433 | var encoded = map(labels, fn).join('.');
|
---|
| 2434 | return result + encoded;
|
---|
| 2435 | }
|
---|
| 2436 |
|
---|
| 2437 | /**
|
---|
| 2438 | * Creates an array containing the numeric code points of each Unicode
|
---|
| 2439 | * character in the string. While JavaScript uses UCS-2 internally,
|
---|
| 2440 | * this function will convert a pair of surrogate halves (each of which
|
---|
| 2441 | * UCS-2 exposes as separate characters) into a single code point,
|
---|
| 2442 | * matching UTF-16.
|
---|
| 2443 | * @see `punycode.ucs2.encode`
|
---|
| 2444 | * @see <https://mathiasbynens.be/notes/javascript-encoding>
|
---|
| 2445 | * @memberOf punycode.ucs2
|
---|
| 2446 | * @name decode
|
---|
| 2447 | * @param {String} string The Unicode input string (UCS-2).
|
---|
| 2448 | * @returns {Array} The new array of code points.
|
---|
| 2449 | */
|
---|
| 2450 | function ucs2decode(string) {
|
---|
| 2451 | var output = [],
|
---|
| 2452 | counter = 0,
|
---|
| 2453 | length = string.length,
|
---|
| 2454 | value,
|
---|
| 2455 | extra;
|
---|
| 2456 | while (counter < length) {
|
---|
| 2457 | value = string.charCodeAt(counter++);
|
---|
| 2458 | if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
|
---|
| 2459 | // high surrogate, and there is a next character
|
---|
| 2460 | extra = string.charCodeAt(counter++);
|
---|
| 2461 | if ((extra & 0xFC00) == 0xDC00) { // low surrogate
|
---|
| 2462 | output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
|
---|
| 2463 | } else {
|
---|
| 2464 | // unmatched surrogate; only append this code unit, in case the next
|
---|
| 2465 | // code unit is the high surrogate of a surrogate pair
|
---|
| 2466 | output.push(value);
|
---|
| 2467 | counter--;
|
---|
| 2468 | }
|
---|
| 2469 | } else {
|
---|
| 2470 | output.push(value);
|
---|
| 2471 | }
|
---|
| 2472 | }
|
---|
| 2473 | return output;
|
---|
| 2474 | }
|
---|
| 2475 |
|
---|
| 2476 | /**
|
---|
| 2477 | * Creates a string based on an array of numeric code points.
|
---|
| 2478 | * @see `punycode.ucs2.decode`
|
---|
| 2479 | * @memberOf punycode.ucs2
|
---|
| 2480 | * @name encode
|
---|
| 2481 | * @param {Array} codePoints The array of numeric code points.
|
---|
| 2482 | * @returns {String} The new Unicode string (UCS-2).
|
---|
| 2483 | */
|
---|
| 2484 | function ucs2encode(array) {
|
---|
| 2485 | return map(array, function(value) {
|
---|
| 2486 | var output = '';
|
---|
| 2487 | if (value > 0xFFFF) {
|
---|
| 2488 | value -= 0x10000;
|
---|
| 2489 | output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
|
---|
| 2490 | value = 0xDC00 | value & 0x3FF;
|
---|
| 2491 | }
|
---|
| 2492 | output += stringFromCharCode(value);
|
---|
| 2493 | return output;
|
---|
| 2494 | }).join('');
|
---|
| 2495 | }
|
---|
| 2496 |
|
---|
| 2497 | /**
|
---|
| 2498 | * Converts a basic code point into a digit/integer.
|
---|
| 2499 | * @see `digitToBasic()`
|
---|
| 2500 | * @private
|
---|
| 2501 | * @param {Number} codePoint The basic numeric code point value.
|
---|
| 2502 | * @returns {Number} The numeric value of a basic code point (for use in
|
---|
| 2503 | * representing integers) in the range `0` to `base - 1`, or `base` if
|
---|
| 2504 | * the code point does not represent a value.
|
---|
| 2505 | */
|
---|
| 2506 | function basicToDigit(codePoint) {
|
---|
| 2507 | if (codePoint - 48 < 10) {
|
---|
| 2508 | return codePoint - 22;
|
---|
| 2509 | }
|
---|
| 2510 | if (codePoint - 65 < 26) {
|
---|
| 2511 | return codePoint - 65;
|
---|
| 2512 | }
|
---|
| 2513 | if (codePoint - 97 < 26) {
|
---|
| 2514 | return codePoint - 97;
|
---|
| 2515 | }
|
---|
| 2516 | return base;
|
---|
| 2517 | }
|
---|
| 2518 |
|
---|
| 2519 | /**
|
---|
| 2520 | * Converts a digit/integer into a basic code point.
|
---|
| 2521 | * @see `basicToDigit()`
|
---|
| 2522 | * @private
|
---|
| 2523 | * @param {Number} digit The numeric value of a basic code point.
|
---|
| 2524 | * @returns {Number} The basic code point whose value (when used for
|
---|
| 2525 | * representing integers) is `digit`, which needs to be in the range
|
---|
| 2526 | * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
|
---|
| 2527 | * used; else, the lowercase form is used. The behavior is undefined
|
---|
| 2528 | * if `flag` is non-zero and `digit` has no uppercase form.
|
---|
| 2529 | */
|
---|
| 2530 | function digitToBasic(digit, flag) {
|
---|
| 2531 | // 0..25 map to ASCII a..z or A..Z
|
---|
| 2532 | // 26..35 map to ASCII 0..9
|
---|
| 2533 | return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
|
---|
| 2534 | }
|
---|
| 2535 |
|
---|
| 2536 | /**
|
---|
| 2537 | * Bias adaptation function as per section 3.4 of RFC 3492.
|
---|
| 2538 | * https://tools.ietf.org/html/rfc3492#section-3.4
|
---|
| 2539 | * @private
|
---|
| 2540 | */
|
---|
| 2541 | function adapt(delta, numPoints, firstTime) {
|
---|
| 2542 | var k = 0;
|
---|
| 2543 | delta = firstTime ? floor(delta / damp) : delta >> 1;
|
---|
| 2544 | delta += floor(delta / numPoints);
|
---|
| 2545 | for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
|
---|
| 2546 | delta = floor(delta / baseMinusTMin);
|
---|
| 2547 | }
|
---|
| 2548 | return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
|
---|
| 2549 | }
|
---|
| 2550 |
|
---|
| 2551 | /**
|
---|
| 2552 | * Converts a Punycode string of ASCII-only symbols to a string of Unicode
|
---|
| 2553 | * symbols.
|
---|
| 2554 | * @memberOf punycode
|
---|
| 2555 | * @param {String} input The Punycode string of ASCII-only symbols.
|
---|
| 2556 | * @returns {String} The resulting string of Unicode symbols.
|
---|
| 2557 | */
|
---|
| 2558 | function decode(input) {
|
---|
| 2559 | // Don't use UCS-2
|
---|
| 2560 | var output = [],
|
---|
| 2561 | inputLength = input.length,
|
---|
| 2562 | out,
|
---|
| 2563 | i = 0,
|
---|
| 2564 | n = initialN,
|
---|
| 2565 | bias = initialBias,
|
---|
| 2566 | basic,
|
---|
| 2567 | j,
|
---|
| 2568 | index,
|
---|
| 2569 | oldi,
|
---|
| 2570 | w,
|
---|
| 2571 | k,
|
---|
| 2572 | digit,
|
---|
| 2573 | t,
|
---|
| 2574 | /** Cached calculation results */
|
---|
| 2575 | baseMinusT;
|
---|
| 2576 |
|
---|
| 2577 | // Handle the basic code points: let `basic` be the number of input code
|
---|
| 2578 | // points before the last delimiter, or `0` if there is none, then copy
|
---|
| 2579 | // the first basic code points to the output.
|
---|
| 2580 |
|
---|
| 2581 | basic = input.lastIndexOf(delimiter);
|
---|
| 2582 | if (basic < 0) {
|
---|
| 2583 | basic = 0;
|
---|
| 2584 | }
|
---|
| 2585 |
|
---|
| 2586 | for (j = 0; j < basic; ++j) {
|
---|
| 2587 | // if it's not a basic code point
|
---|
| 2588 | if (input.charCodeAt(j) >= 0x80) {
|
---|
| 2589 | error('not-basic');
|
---|
| 2590 | }
|
---|
| 2591 | output.push(input.charCodeAt(j));
|
---|
| 2592 | }
|
---|
| 2593 |
|
---|
| 2594 | // Main decoding loop: start just after the last delimiter if any basic code
|
---|
| 2595 | // points were copied; start at the beginning otherwise.
|
---|
| 2596 |
|
---|
| 2597 | for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
|
---|
| 2598 |
|
---|
| 2599 | // `index` is the index of the next character to be consumed.
|
---|
| 2600 | // Decode a generalized variable-length integer into `delta`,
|
---|
| 2601 | // which gets added to `i`. The overflow checking is easier
|
---|
| 2602 | // if we increase `i` as we go, then subtract off its starting
|
---|
| 2603 | // value at the end to obtain `delta`.
|
---|
| 2604 | for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
|
---|
| 2605 |
|
---|
| 2606 | if (index >= inputLength) {
|
---|
| 2607 | error('invalid-input');
|
---|
| 2608 | }
|
---|
| 2609 |
|
---|
| 2610 | digit = basicToDigit(input.charCodeAt(index++));
|
---|
| 2611 |
|
---|
| 2612 | if (digit >= base || digit > floor((maxInt - i) / w)) {
|
---|
| 2613 | error('overflow');
|
---|
| 2614 | }
|
---|
| 2615 |
|
---|
| 2616 | i += digit * w;
|
---|
| 2617 | t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
|
---|
| 2618 |
|
---|
| 2619 | if (digit < t) {
|
---|
| 2620 | break;
|
---|
| 2621 | }
|
---|
| 2622 |
|
---|
| 2623 | baseMinusT = base - t;
|
---|
| 2624 | if (w > floor(maxInt / baseMinusT)) {
|
---|
| 2625 | error('overflow');
|
---|
| 2626 | }
|
---|
| 2627 |
|
---|
| 2628 | w *= baseMinusT;
|
---|
| 2629 |
|
---|
| 2630 | }
|
---|
| 2631 |
|
---|
| 2632 | out = output.length + 1;
|
---|
| 2633 | bias = adapt(i - oldi, out, oldi == 0);
|
---|
| 2634 |
|
---|
| 2635 | // `i` was supposed to wrap around from `out` to `0`,
|
---|
| 2636 | // incrementing `n` each time, so we'll fix that now:
|
---|
| 2637 | if (floor(i / out) > maxInt - n) {
|
---|
| 2638 | error('overflow');
|
---|
| 2639 | }
|
---|
| 2640 |
|
---|
| 2641 | n += floor(i / out);
|
---|
| 2642 | i %= out;
|
---|
| 2643 |
|
---|
| 2644 | // Insert `n` at position `i` of the output
|
---|
| 2645 | output.splice(i++, 0, n);
|
---|
| 2646 |
|
---|
| 2647 | }
|
---|
| 2648 |
|
---|
| 2649 | return ucs2encode(output);
|
---|
| 2650 | }
|
---|
| 2651 |
|
---|
| 2652 | /**
|
---|
| 2653 | * Converts a string of Unicode symbols (e.g. a domain name label) to a
|
---|
| 2654 | * Punycode string of ASCII-only symbols.
|
---|
| 2655 | * @memberOf punycode
|
---|
| 2656 | * @param {String} input The string of Unicode symbols.
|
---|
| 2657 | * @returns {String} The resulting Punycode string of ASCII-only symbols.
|
---|
| 2658 | */
|
---|
| 2659 | function encode(input) {
|
---|
| 2660 | var n,
|
---|
| 2661 | delta,
|
---|
| 2662 | handledCPCount,
|
---|
| 2663 | basicLength,
|
---|
| 2664 | bias,
|
---|
| 2665 | j,
|
---|
| 2666 | m,
|
---|
| 2667 | q,
|
---|
| 2668 | k,
|
---|
| 2669 | t,
|
---|
| 2670 | currentValue,
|
---|
| 2671 | output = [],
|
---|
| 2672 | /** `inputLength` will hold the number of code points in `input`. */
|
---|
| 2673 | inputLength,
|
---|
| 2674 | /** Cached calculation results */
|
---|
| 2675 | handledCPCountPlusOne,
|
---|
| 2676 | baseMinusT,
|
---|
| 2677 | qMinusT;
|
---|
| 2678 |
|
---|
| 2679 | // Convert the input in UCS-2 to Unicode
|
---|
| 2680 | input = ucs2decode(input);
|
---|
| 2681 |
|
---|
| 2682 | // Cache the length
|
---|
| 2683 | inputLength = input.length;
|
---|
| 2684 |
|
---|
| 2685 | // Initialize the state
|
---|
| 2686 | n = initialN;
|
---|
| 2687 | delta = 0;
|
---|
| 2688 | bias = initialBias;
|
---|
| 2689 |
|
---|
| 2690 | // Handle the basic code points
|
---|
| 2691 | for (j = 0; j < inputLength; ++j) {
|
---|
| 2692 | currentValue = input[j];
|
---|
| 2693 | if (currentValue < 0x80) {
|
---|
| 2694 | output.push(stringFromCharCode(currentValue));
|
---|
| 2695 | }
|
---|
| 2696 | }
|
---|
| 2697 |
|
---|
| 2698 | handledCPCount = basicLength = output.length;
|
---|
| 2699 |
|
---|
| 2700 | // `handledCPCount` is the number of code points that have been handled;
|
---|
| 2701 | // `basicLength` is the number of basic code points.
|
---|
| 2702 |
|
---|
| 2703 | // Finish the basic string - if it is not empty - with a delimiter
|
---|
| 2704 | if (basicLength) {
|
---|
| 2705 | output.push(delimiter);
|
---|
| 2706 | }
|
---|
| 2707 |
|
---|
| 2708 | // Main encoding loop:
|
---|
| 2709 | while (handledCPCount < inputLength) {
|
---|
| 2710 |
|
---|
| 2711 | // All non-basic code points < n have been handled already. Find the next
|
---|
| 2712 | // larger one:
|
---|
| 2713 | for (m = maxInt, j = 0; j < inputLength; ++j) {
|
---|
| 2714 | currentValue = input[j];
|
---|
| 2715 | if (currentValue >= n && currentValue < m) {
|
---|
| 2716 | m = currentValue;
|
---|
| 2717 | }
|
---|
| 2718 | }
|
---|
| 2719 |
|
---|
| 2720 | // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
|
---|
| 2721 | // but guard against overflow
|
---|
| 2722 | handledCPCountPlusOne = handledCPCount + 1;
|
---|
| 2723 | if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
|
---|
| 2724 | error('overflow');
|
---|
| 2725 | }
|
---|
| 2726 |
|
---|
| 2727 | delta += (m - n) * handledCPCountPlusOne;
|
---|
| 2728 | n = m;
|
---|
| 2729 |
|
---|
| 2730 | for (j = 0; j < inputLength; ++j) {
|
---|
| 2731 | currentValue = input[j];
|
---|
| 2732 |
|
---|
| 2733 | if (currentValue < n && ++delta > maxInt) {
|
---|
| 2734 | error('overflow');
|
---|
| 2735 | }
|
---|
| 2736 |
|
---|
| 2737 | if (currentValue == n) {
|
---|
| 2738 | // Represent delta as a generalized variable-length integer
|
---|
| 2739 | for (q = delta, k = base; /* no condition */; k += base) {
|
---|
| 2740 | t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
|
---|
| 2741 | if (q < t) {
|
---|
| 2742 | break;
|
---|
| 2743 | }
|
---|
| 2744 | qMinusT = q - t;
|
---|
| 2745 | baseMinusT = base - t;
|
---|
| 2746 | output.push(
|
---|
| 2747 | stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
|
---|
| 2748 | );
|
---|
| 2749 | q = floor(qMinusT / baseMinusT);
|
---|
| 2750 | }
|
---|
| 2751 |
|
---|
| 2752 | output.push(stringFromCharCode(digitToBasic(q, 0)));
|
---|
| 2753 | bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
|
---|
| 2754 | delta = 0;
|
---|
| 2755 | ++handledCPCount;
|
---|
| 2756 | }
|
---|
| 2757 | }
|
---|
| 2758 |
|
---|
| 2759 | ++delta;
|
---|
| 2760 | ++n;
|
---|
| 2761 |
|
---|
| 2762 | }
|
---|
| 2763 | return output.join('');
|
---|
| 2764 | }
|
---|
| 2765 |
|
---|
| 2766 | /**
|
---|
| 2767 | * Converts a Punycode string representing a domain name or an email address
|
---|
| 2768 | * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
|
---|
| 2769 | * it doesn't matter if you call it on a string that has already been
|
---|
| 2770 | * converted to Unicode.
|
---|
| 2771 | * @memberOf punycode
|
---|
| 2772 | * @param {String} input The Punycoded domain name or email address to
|
---|
| 2773 | * convert to Unicode.
|
---|
| 2774 | * @returns {String} The Unicode representation of the given Punycode
|
---|
| 2775 | * string.
|
---|
| 2776 | */
|
---|
| 2777 | function toUnicode(input) {
|
---|
| 2778 | return mapDomain(input, function(string) {
|
---|
| 2779 | return regexPunycode.test(string)
|
---|
| 2780 | ? decode(string.slice(4).toLowerCase())
|
---|
| 2781 | : string;
|
---|
| 2782 | });
|
---|
| 2783 | }
|
---|
| 2784 |
|
---|
| 2785 | /**
|
---|
| 2786 | * Converts a Unicode string representing a domain name or an email address to
|
---|
| 2787 | * Punycode. Only the non-ASCII parts of the domain name will be converted,
|
---|
| 2788 | * i.e. it doesn't matter if you call it with a domain that's already in
|
---|
| 2789 | * ASCII.
|
---|
| 2790 | * @memberOf punycode
|
---|
| 2791 | * @param {String} input The domain name or email address to convert, as a
|
---|
| 2792 | * Unicode string.
|
---|
| 2793 | * @returns {String} The Punycode representation of the given domain name or
|
---|
| 2794 | * email address.
|
---|
| 2795 | */
|
---|
| 2796 | function toASCII(input) {
|
---|
| 2797 | return mapDomain(input, function(string) {
|
---|
| 2798 | return regexNonASCII.test(string)
|
---|
| 2799 | ? 'xn--' + encode(string)
|
---|
| 2800 | : string;
|
---|
| 2801 | });
|
---|
| 2802 | }
|
---|
| 2803 |
|
---|
| 2804 | /*--------------------------------------------------------------------------*/
|
---|
| 2805 |
|
---|
| 2806 | /** Define the public API */
|
---|
| 2807 | punycode = {
|
---|
| 2808 | /**
|
---|
| 2809 | * A string representing the current Punycode.js version number.
|
---|
| 2810 | * @memberOf punycode
|
---|
| 2811 | * @type String
|
---|
| 2812 | */
|
---|
| 2813 | 'version': '1.4.1',
|
---|
| 2814 | /**
|
---|
| 2815 | * An object of methods to convert from JavaScript's internal character
|
---|
| 2816 | * representation (UCS-2) to Unicode code points, and back.
|
---|
| 2817 | * @see <https://mathiasbynens.be/notes/javascript-encoding>
|
---|
| 2818 | * @memberOf punycode
|
---|
| 2819 | * @type Object
|
---|
| 2820 | */
|
---|
| 2821 | 'ucs2': {
|
---|
| 2822 | 'decode': ucs2decode,
|
---|
| 2823 | 'encode': ucs2encode
|
---|
| 2824 | },
|
---|
| 2825 | 'decode': decode,
|
---|
| 2826 | 'encode': encode,
|
---|
| 2827 | 'toASCII': toASCII,
|
---|
| 2828 | 'toUnicode': toUnicode
|
---|
| 2829 | };
|
---|
| 2830 |
|
---|
| 2831 | /** Expose `punycode` */
|
---|
| 2832 | // Some AMD build optimizers, like r.js, check for specific condition patterns
|
---|
| 2833 | // like the following:
|
---|
| 2834 | if (
|
---|
| 2835 | typeof define == 'function' &&
|
---|
| 2836 | typeof define.amd == 'object' &&
|
---|
| 2837 | define.amd
|
---|
| 2838 | ) {
|
---|
| 2839 | define('punycode', function() {
|
---|
| 2840 | return punycode;
|
---|
| 2841 | });
|
---|
| 2842 | } else if (freeExports && freeModule) {
|
---|
| 2843 | if (module.exports == freeExports) {
|
---|
| 2844 | // in Node.js, io.js, or RingoJS v0.8.0+
|
---|
| 2845 | freeModule.exports = punycode;
|
---|
| 2846 | } else {
|
---|
| 2847 | // in Narwhal or RingoJS v0.7.0-
|
---|
| 2848 | for (key in punycode) {
|
---|
| 2849 | punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
|
---|
| 2850 | }
|
---|
| 2851 | }
|
---|
| 2852 | } else {
|
---|
| 2853 | // in Rhino or a web browser
|
---|
| 2854 | root.punycode = punycode;
|
---|
| 2855 | }
|
---|
| 2856 |
|
---|
| 2857 | }(this));
|
---|
| 2858 |
|
---|
| 2859 | }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
---|
| 2860 | },{}],13:[function(require,module,exports){
|
---|
| 2861 | /**
|
---|
| 2862 | * This file automatically generated from `pre-publish.js`.
|
---|
| 2863 | * Do not manually edit.
|
---|
| 2864 | */
|
---|
| 2865 |
|
---|
| 2866 | module.exports = {
|
---|
| 2867 | "area": true,
|
---|
| 2868 | "base": true,
|
---|
| 2869 | "br": true,
|
---|
| 2870 | "col": true,
|
---|
| 2871 | "embed": true,
|
---|
| 2872 | "hr": true,
|
---|
| 2873 | "img": true,
|
---|
| 2874 | "input": true,
|
---|
| 2875 | "keygen": true,
|
---|
| 2876 | "link": true,
|
---|
| 2877 | "menuitem": true,
|
---|
| 2878 | "meta": true,
|
---|
| 2879 | "param": true,
|
---|
| 2880 | "source": true,
|
---|
| 2881 | "track": true,
|
---|
| 2882 | "wbr": true
|
---|
| 2883 | };
|
---|
| 2884 |
|
---|
| 2885 | },{}]},{},[3]);
|
---|