From 0f97d9e494252cb800b17003e47d8d0cd97808e5 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Wed, 3 Jul 2019 11:29:59 +0800 Subject: [PATCH] cropper --- public/react/public/images/testPicture.jpg | Bin 0 -> 157356 bytes public/react/public/js/cropper/cropper.js | 3549 +++++++++++++++++ .../react/public/js/cropper/cropper.min.css | 9 + .../public/js/cropper/html2canvas.min.js | 20 + public/react/src/common/components/Cropper.js | 263 ++ public/react/src/modules/test/TestCrop.js | 23 + public/react/src/modules/test/index.js | 2 + .../user/account/ChangeHeaderPicModal.js | 0 8 files changed, 3866 insertions(+) create mode 100644 public/react/public/images/testPicture.jpg create mode 100644 public/react/public/js/cropper/cropper.js create mode 100644 public/react/public/js/cropper/cropper.min.css create mode 100644 public/react/public/js/cropper/html2canvas.min.js create mode 100644 public/react/src/common/components/Cropper.js create mode 100644 public/react/src/modules/test/TestCrop.js create mode 100644 public/react/src/modules/user/account/ChangeHeaderPicModal.js diff --git a/public/react/public/images/testPicture.jpg b/public/react/public/images/testPicture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e4e7c488bfb35b4ec5e782513a3b713b04824657 GIT binary patch literal 157356 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 literal 0 HcmV?d00001 diff --git a/public/react/public/js/cropper/cropper.js b/public/react/public/js/cropper/cropper.js new file mode 100644 index 000000000..8e351df05 --- /dev/null +++ b/public/react/public/js/cropper/cropper.js @@ -0,0 +1,3549 @@ +/*! + * Cropper.js v1.5.2 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2019-06-30T06:01:05.296Z + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.Cropper = factory()); +}(this, function () { 'use strict'; + + function _typeof(obj) { + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); + } + + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; + + return arr2; + } + } + + function _iterableToArray(iter) { + if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + } + + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance"); + } + + var IS_BROWSER = typeof window !== 'undefined'; + var WINDOW = IS_BROWSER ? window : {}; + var IS_TOUCH_DEVICE = IS_BROWSER ? 'ontouchstart' in WINDOW.document.documentElement : false; + var HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false; + var NAMESPACE = 'cropper'; // Actions + + var ACTION_ALL = 'all'; + var ACTION_CROP = 'crop'; + var ACTION_MOVE = 'move'; + var ACTION_ZOOM = 'zoom'; + var ACTION_EAST = 'e'; + var ACTION_WEST = 'w'; + var ACTION_SOUTH = 's'; + var ACTION_NORTH = 'n'; + var ACTION_NORTH_EAST = 'ne'; + var ACTION_NORTH_WEST = 'nw'; + var ACTION_SOUTH_EAST = 'se'; + var ACTION_SOUTH_WEST = 'sw'; // Classes + + var CLASS_CROP = "".concat(NAMESPACE, "-crop"); + var CLASS_DISABLED = "".concat(NAMESPACE, "-disabled"); + var CLASS_HIDDEN = "".concat(NAMESPACE, "-hidden"); + var CLASS_HIDE = "".concat(NAMESPACE, "-hide"); + var CLASS_INVISIBLE = "".concat(NAMESPACE, "-invisible"); + var CLASS_MODAL = "".concat(NAMESPACE, "-modal"); + var CLASS_MOVE = "".concat(NAMESPACE, "-move"); // Data keys + + var DATA_ACTION = "".concat(NAMESPACE, "Action"); + var DATA_PREVIEW = "".concat(NAMESPACE, "Preview"); // Drag modes + + var DRAG_MODE_CROP = 'crop'; + var DRAG_MODE_MOVE = 'move'; + var DRAG_MODE_NONE = 'none'; // Events + + var EVENT_CROP = 'crop'; + var EVENT_CROP_END = 'cropend'; + var EVENT_CROP_MOVE = 'cropmove'; + var EVENT_CROP_START = 'cropstart'; + var EVENT_DBLCLICK = 'dblclick'; + var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown'; + var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove'; + var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup'; + var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START; + var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE; + var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END; + var EVENT_READY = 'ready'; + var EVENT_RESIZE = 'resize'; + var EVENT_WHEEL = 'wheel'; + var EVENT_ZOOM = 'zoom'; // Mime types + + var MIME_TYPE_JPEG = 'image/jpeg'; // RegExps + + var REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/; + var REGEXP_DATA_URL_JPEG = /^data:image\/jpeg;base64,/; + var REGEXP_TAG_NAME = /^img|canvas$/i; // Misc + // Inspired by the default width and height of a canvas element. + + var MIN_CONTAINER_WIDTH = 200; + var MIN_CONTAINER_HEIGHT = 100; + + var DEFAULTS = { + // Define the view mode of the cropper + viewMode: 0, + // 0, 1, 2, 3 + // Define the dragging mode of the cropper + dragMode: DRAG_MODE_CROP, + // 'crop', 'move' or 'none' + // Define the initial aspect ratio of the crop box + initialAspectRatio: NaN, + // Define the aspect ratio of the crop box + aspectRatio: NaN, + // An object with the previous cropping result data + data: null, + // A selector for adding extra containers to preview + preview: '', + // Re-render the cropper when resize the window + responsive: true, + // Restore the cropped area after resize the window + restore: true, + // Check if the current image is a cross-origin image + checkCrossOrigin: true, + // Check the current image's Exif Orientation information + checkOrientation: true, + // Show the black modal + modal: true, + // Show the dashed lines for guiding + guides: true, + // Show the center indicator for guiding + center: true, + // Show the white modal to highlight the crop box + highlight: true, + // Show the grid background + background: true, + // Enable to crop the image automatically when initialize + autoCrop: true, + // Define the percentage of automatic cropping area when initializes + autoCropArea: 0.8, + // Enable to move the image + movable: true, + // Enable to rotate the image + rotatable: true, + // Enable to scale the image + scalable: true, + // Enable to zoom the image + zoomable: true, + // Enable to zoom the image by dragging touch + zoomOnTouch: true, + // Enable to zoom the image by wheeling mouse + zoomOnWheel: true, + // Define zoom ratio when zoom the image by wheeling mouse + wheelZoomRatio: 0.1, + // Enable to move the crop box + cropBoxMovable: true, + // Enable to resize the crop box + cropBoxResizable: true, + // Toggle drag mode between "crop" and "move" when click twice on the cropper + toggleDragModeOnDblclick: true, + // Size limitation + minCanvasWidth: 0, + minCanvasHeight: 0, + minCropBoxWidth: 0, + minCropBoxHeight: 0, + minContainerWidth: 200, + minContainerHeight: 100, + // Shortcuts of events + ready: null, + cropstart: null, + cropmove: null, + cropend: null, + crop: null, + zoom: null + }; + + var TEMPLATE = '
' + '
' + '
' + '
' + '
' + '
' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
' + '
'; + + /** + * Check if the given value is not a number. + */ + + var isNaN = Number.isNaN || WINDOW.isNaN; + /** + * Check if the given value is a number. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is a number, else `false`. + */ + + function isNumber(value) { + return typeof value === 'number' && !isNaN(value); + } + /** + * Check if the given value is a positive number. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is a positive number, else `false`. + */ + + var isPositiveNumber = function isPositiveNumber(value) { + return value > 0 && value < Infinity; + }; + /** + * Check if the given value is undefined. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is undefined, else `false`. + */ + + function isUndefined(value) { + return typeof value === 'undefined'; + } + /** + * Check if the given value is an object. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is an object, else `false`. + */ + + function isObject(value) { + return _typeof(value) === 'object' && value !== null; + } + var hasOwnProperty = Object.prototype.hasOwnProperty; + /** + * Check if the given value is a plain object. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is a plain object, else `false`. + */ + + function isPlainObject(value) { + if (!isObject(value)) { + return false; + } + + try { + var _constructor = value.constructor; + var prototype = _constructor.prototype; + return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf'); + } catch (error) { + return false; + } + } + /** + * Check if the given value is a function. + * @param {*} value - The value to check. + * @returns {boolean} Returns `true` if the given value is a function, else `false`. + */ + + function isFunction(value) { + return typeof value === 'function'; + } + var slice = Array.prototype.slice; + /** + * Convert array-like or iterable object to an array. + * @param {*} value - The value to convert. + * @returns {Array} Returns a new array. + */ + + function toArray(value) { + return Array.from ? Array.from(value) : slice.call(value); + } + /** + * Iterate the given data. + * @param {*} data - The data to iterate. + * @param {Function} callback - The process function for each element. + * @returns {*} The original data. + */ + + function forEach(data, callback) { + if (data && isFunction(callback)) { + if (Array.isArray(data) || isNumber(data.length) + /* array-like */ + ) { + toArray(data).forEach(function (value, key) { + callback.call(data, value, key, data); + }); + } else if (isObject(data)) { + Object.keys(data).forEach(function (key) { + callback.call(data, data[key], key, data); + }); + } + } + + return data; + } + /** + * Extend the given object. + * @param {*} target - The target object to extend. + * @param {*} args - The rest objects for merging to the target object. + * @returns {Object} The extended object. + */ + + var assign = Object.assign || function assign(target) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (isObject(target) && args.length > 0) { + args.forEach(function (arg) { + if (isObject(arg)) { + Object.keys(arg).forEach(function (key) { + target[key] = arg[key]; + }); + } + }); + } + + return target; + }; + var REGEXP_DECIMALS = /\.\d*(?:0|9){12}\d*$/; + /** + * Normalize decimal number. + * Check out {@link http://0.30000000000000004.com/} + * @param {number} value - The value to normalize. + * @param {number} [times=100000000000] - The times for normalizing. + * @returns {number} Returns the normalized number. + */ + + function normalizeDecimalNumber(value) { + var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000; + return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value; + } + var REGEXP_SUFFIX = /^width|height|left|top|marginLeft|marginTop$/; + /** + * Apply styles to the given element. + * @param {Element} element - The target element. + * @param {Object} styles - The styles for applying. + */ + + function setStyle(element, styles) { + var style = element.style; + forEach(styles, function (value, property) { + if (REGEXP_SUFFIX.test(property) && isNumber(value)) { + value = "".concat(value, "px"); + } + + style[property] = value; + }); + } + /** + * Check if the given element has a special class. + * @param {Element} element - The element to check. + * @param {string} value - The class to search. + * @returns {boolean} Returns `true` if the special class was found. + */ + + function hasClass(element, value) { + return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1; + } + /** + * Add classes to the given element. + * @param {Element} element - The target element. + * @param {string} value - The classes to be added. + */ + + function addClass(element, value) { + if (!value) { + return; + } + + if (isNumber(element.length)) { + forEach(element, function (elem) { + addClass(elem, value); + }); + return; + } + + if (element.classList) { + element.classList.add(value); + return; + } + + var className = element.className.trim(); + + if (!className) { + element.className = value; + } else if (className.indexOf(value) < 0) { + element.className = "".concat(className, " ").concat(value); + } + } + /** + * Remove classes from the given element. + * @param {Element} element - The target element. + * @param {string} value - The classes to be removed. + */ + + function removeClass(element, value) { + if (!value) { + return; + } + + if (isNumber(element.length)) { + forEach(element, function (elem) { + removeClass(elem, value); + }); + return; + } + + if (element.classList) { + element.classList.remove(value); + return; + } + + if (element.className.indexOf(value) >= 0) { + element.className = element.className.replace(value, ''); + } + } + /** + * Add or remove classes from the given element. + * @param {Element} element - The target element. + * @param {string} value - The classes to be toggled. + * @param {boolean} added - Add only. + */ + + function toggleClass(element, value, added) { + if (!value) { + return; + } + + if (isNumber(element.length)) { + forEach(element, function (elem) { + toggleClass(elem, value, added); + }); + return; + } // IE10-11 doesn't support the second parameter of `classList.toggle` + + + if (added) { + addClass(element, value); + } else { + removeClass(element, value); + } + } + var REGEXP_CAMEL_CASE = /([a-z\d])([A-Z])/g; + /** + * Transform the given string from camelCase to kebab-case + * @param {string} value - The value to transform. + * @returns {string} The transformed value. + */ + + function toParamCase(value) { + return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase(); + } + /** + * Get data from the given element. + * @param {Element} element - The target element. + * @param {string} name - The data key to get. + * @returns {string} The data value. + */ + + function getData(element, name) { + if (isObject(element[name])) { + return element[name]; + } + + if (element.dataset) { + return element.dataset[name]; + } + + return element.getAttribute("data-".concat(toParamCase(name))); + } + /** + * Set data to the given element. + * @param {Element} element - The target element. + * @param {string} name - The data key to set. + * @param {string} data - The data value. + */ + + function setData(element, name, data) { + if (isObject(data)) { + element[name] = data; + } else if (element.dataset) { + element.dataset[name] = data; + } else { + element.setAttribute("data-".concat(toParamCase(name)), data); + } + } + /** + * Remove data from the given element. + * @param {Element} element - The target element. + * @param {string} name - The data key to remove. + */ + + function removeData(element, name) { + if (isObject(element[name])) { + try { + delete element[name]; + } catch (error) { + element[name] = undefined; + } + } else if (element.dataset) { + // #128 Safari not allows to delete dataset property + try { + delete element.dataset[name]; + } catch (error) { + element.dataset[name] = undefined; + } + } else { + element.removeAttribute("data-".concat(toParamCase(name))); + } + } + var REGEXP_SPACES = /\s\s*/; + + var onceSupported = function () { + var supported = false; + + if (IS_BROWSER) { + var once = false; + + var listener = function listener() {}; + + var options = Object.defineProperty({}, 'once', { + get: function get() { + supported = true; + return once; + }, + + /** + * This setter can fix a `TypeError` in strict mode + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only} + * @param {boolean} value - The value to set + */ + set: function set(value) { + once = value; + } + }); + WINDOW.addEventListener('test', listener, options); + WINDOW.removeEventListener('test', listener, options); + } + + return supported; + }(); + /** + * Remove event listener from the target element. + * @param {Element} element - The event target. + * @param {string} type - The event type(s). + * @param {Function} listener - The event listener. + * @param {Object} options - The event options. + */ + + + function removeListener(element, type, listener) { + var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + var handler = listener; + type.trim().split(REGEXP_SPACES).forEach(function (event) { + if (!onceSupported) { + var listeners = element.listeners; + + if (listeners && listeners[event] && listeners[event][listener]) { + handler = listeners[event][listener]; + delete listeners[event][listener]; + + if (Object.keys(listeners[event]).length === 0) { + delete listeners[event]; + } + + if (Object.keys(listeners).length === 0) { + delete element.listeners; + } + } + } + + element.removeEventListener(event, handler, options); + }); + } + /** + * Add event listener to the target element. + * @param {Element} element - The event target. + * @param {string} type - The event type(s). + * @param {Function} listener - The event listener. + * @param {Object} options - The event options. + */ + + function addListener(element, type, listener) { + var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + var _handler = listener; + type.trim().split(REGEXP_SPACES).forEach(function (event) { + if (options.once && !onceSupported) { + var _element$listeners = element.listeners, + listeners = _element$listeners === void 0 ? {} : _element$listeners; + + _handler = function handler() { + delete listeners[event][listener]; + element.removeEventListener(event, _handler, options); + + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + listener.apply(element, args); + }; + + if (!listeners[event]) { + listeners[event] = {}; + } + + if (listeners[event][listener]) { + element.removeEventListener(event, listeners[event][listener], options); + } + + listeners[event][listener] = _handler; + element.listeners = listeners; + } + + element.addEventListener(event, _handler, options); + }); + } + /** + * Dispatch event on the target element. + * @param {Element} element - The event target. + * @param {string} type - The event type(s). + * @param {Object} data - The additional event data. + * @returns {boolean} Indicate if the event is default prevented or not. + */ + + function dispatchEvent(element, type, data) { + var event; // Event and CustomEvent on IE9-11 are global objects, not constructors + + if (isFunction(Event) && isFunction(CustomEvent)) { + event = new CustomEvent(type, { + detail: data, + bubbles: true, + cancelable: true + }); + } else { + event = document.createEvent('CustomEvent'); + event.initCustomEvent(type, true, true, data); + } + + return element.dispatchEvent(event); + } + /** + * Get the offset base on the document. + * @param {Element} element - The target element. + * @returns {Object} The offset data. + */ + + function getOffset(element) { + var box = element.getBoundingClientRect(); + return { + left: box.left + (window.pageXOffset - document.documentElement.clientLeft), + top: box.top + (window.pageYOffset - document.documentElement.clientTop) + }; + } + var location = WINDOW.location; + var REGEXP_ORIGINS = /^(\w+:)\/\/([^:/?#]*):?(\d*)/i; + /** + * Check if the given URL is a cross origin URL. + * @param {string} url - The target URL. + * @returns {boolean} Returns `true` if the given URL is a cross origin URL, else `false`. + */ + + function isCrossOriginURL(url) { + var parts = url.match(REGEXP_ORIGINS); + return parts !== null && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port); + } + /** + * Add timestamp to the given URL. + * @param {string} url - The target URL. + * @returns {string} The result URL. + */ + + function addTimestamp(url) { + var timestamp = "timestamp=".concat(new Date().getTime()); + return url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp; + } + /** + * Get transforms base on the given object. + * @param {Object} obj - The target object. + * @returns {string} A string contains transform values. + */ + + function getTransforms(_ref) { + var rotate = _ref.rotate, + scaleX = _ref.scaleX, + scaleY = _ref.scaleY, + translateX = _ref.translateX, + translateY = _ref.translateY; + var values = []; + + if (isNumber(translateX) && translateX !== 0) { + values.push("translateX(".concat(translateX, "px)")); + } + + if (isNumber(translateY) && translateY !== 0) { + values.push("translateY(".concat(translateY, "px)")); + } // Rotate should come first before scale to match orientation transform + + + if (isNumber(rotate) && rotate !== 0) { + values.push("rotate(".concat(rotate, "deg)")); + } + + if (isNumber(scaleX) && scaleX !== 1) { + values.push("scaleX(".concat(scaleX, ")")); + } + + if (isNumber(scaleY) && scaleY !== 1) { + values.push("scaleY(".concat(scaleY, ")")); + } + + var transform = values.length ? values.join(' ') : 'none'; + return { + WebkitTransform: transform, + msTransform: transform, + transform: transform + }; + } + /** + * Get the max ratio of a group of pointers. + * @param {string} pointers - The target pointers. + * @returns {number} The result ratio. + */ + + function getMaxZoomRatio(pointers) { + var pointers2 = assign({}, pointers); + var ratios = []; + forEach(pointers, function (pointer, pointerId) { + delete pointers2[pointerId]; + forEach(pointers2, function (pointer2) { + var x1 = Math.abs(pointer.startX - pointer2.startX); + var y1 = Math.abs(pointer.startY - pointer2.startY); + var x2 = Math.abs(pointer.endX - pointer2.endX); + var y2 = Math.abs(pointer.endY - pointer2.endY); + var z1 = Math.sqrt(x1 * x1 + y1 * y1); + var z2 = Math.sqrt(x2 * x2 + y2 * y2); + var ratio = (z2 - z1) / z1; + ratios.push(ratio); + }); + }); + ratios.sort(function (a, b) { + return Math.abs(a) < Math.abs(b); + }); + return ratios[0]; + } + /** + * Get a pointer from an event object. + * @param {Object} event - The target event object. + * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not. + * @returns {Object} The result pointer contains start and/or end point coordinates. + */ + + function getPointer(_ref2, endOnly) { + var pageX = _ref2.pageX, + pageY = _ref2.pageY; + var end = { + endX: pageX, + endY: pageY + }; + return endOnly ? end : assign({ + startX: pageX, + startY: pageY + }, end); + } + /** + * Get the center point coordinate of a group of pointers. + * @param {Object} pointers - The target pointers. + * @returns {Object} The center point coordinate. + */ + + function getPointersCenter(pointers) { + var pageX = 0; + var pageY = 0; + var count = 0; + forEach(pointers, function (_ref3) { + var startX = _ref3.startX, + startY = _ref3.startY; + pageX += startX; + pageY += startY; + count += 1; + }); + pageX /= count; + pageY /= count; + return { + pageX: pageX, + pageY: pageY + }; + } + /** + * Get the max sizes in a rectangle under the given aspect ratio. + * @param {Object} data - The original sizes. + * @param {string} [type='contain'] - The adjust type. + * @returns {Object} The result sizes. + */ + + function getAdjustedSizes(_ref4) // or 'cover' + { + var aspectRatio = _ref4.aspectRatio, + height = _ref4.height, + width = _ref4.width; + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'contain'; + var isValidWidth = isPositiveNumber(width); + var isValidHeight = isPositiveNumber(height); + + if (isValidWidth && isValidHeight) { + var adjustedWidth = height * aspectRatio; + + if (type === 'contain' && adjustedWidth > width || type === 'cover' && adjustedWidth < width) { + height = width / aspectRatio; + } else { + width = height * aspectRatio; + } + } else if (isValidWidth) { + height = width / aspectRatio; + } else if (isValidHeight) { + width = height * aspectRatio; + } + + return { + width: width, + height: height + }; + } + /** + * Get the new sizes of a rectangle after rotated. + * @param {Object} data - The original sizes. + * @returns {Object} The result sizes. + */ + + function getRotatedSizes(_ref5) { + var width = _ref5.width, + height = _ref5.height, + degree = _ref5.degree; + degree = Math.abs(degree) % 180; + + if (degree === 90) { + return { + width: height, + height: width + }; + } + + var arc = degree % 90 * Math.PI / 180; + var sinArc = Math.sin(arc); + var cosArc = Math.cos(arc); + var newWidth = width * cosArc + height * sinArc; + var newHeight = width * sinArc + height * cosArc; + return degree > 90 ? { + width: newHeight, + height: newWidth + } : { + width: newWidth, + height: newHeight + }; + } + /** + * Get a canvas which drew the given image. + * @param {HTMLImageElement} image - The image for drawing. + * @param {Object} imageData - The image data. + * @param {Object} canvasData - The canvas data. + * @param {Object} options - The options. + * @returns {HTMLCanvasElement} The result canvas. + */ + + function getSourceCanvas(image, _ref6, _ref7, _ref8) { + var imageAspectRatio = _ref6.aspectRatio, + imageNaturalWidth = _ref6.naturalWidth, + imageNaturalHeight = _ref6.naturalHeight, + _ref6$rotate = _ref6.rotate, + rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate, + _ref6$scaleX = _ref6.scaleX, + scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX, + _ref6$scaleY = _ref6.scaleY, + scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY; + var aspectRatio = _ref7.aspectRatio, + naturalWidth = _ref7.naturalWidth, + naturalHeight = _ref7.naturalHeight; + var _ref8$fillColor = _ref8.fillColor, + fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor, + _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled, + imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE, + _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality, + imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ, + _ref8$maxWidth = _ref8.maxWidth, + maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth, + _ref8$maxHeight = _ref8.maxHeight, + maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight, + _ref8$minWidth = _ref8.minWidth, + minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth, + _ref8$minHeight = _ref8.minHeight, + minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight; + var canvas = document.createElement('canvas'); + var context = canvas.getContext('2d'); + var maxSizes = getAdjustedSizes({ + aspectRatio: aspectRatio, + width: maxWidth, + height: maxHeight + }); + var minSizes = getAdjustedSizes({ + aspectRatio: aspectRatio, + width: minWidth, + height: minHeight + }, 'cover'); + var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth)); + var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); // Note: should always use image's natural sizes for drawing as + // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90 + + var destMaxSizes = getAdjustedSizes({ + aspectRatio: imageAspectRatio, + width: maxWidth, + height: maxHeight + }); + var destMinSizes = getAdjustedSizes({ + aspectRatio: imageAspectRatio, + width: minWidth, + height: minHeight + }, 'cover'); + var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth)); + var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight)); + var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight]; + canvas.width = normalizeDecimalNumber(width); + canvas.height = normalizeDecimalNumber(height); + context.fillStyle = fillColor; + context.fillRect(0, 0, width, height); + context.save(); + context.translate(width / 2, height / 2); + context.rotate(rotate * Math.PI / 180); + context.scale(scaleX, scaleY); + context.imageSmoothingEnabled = imageSmoothingEnabled; + context.imageSmoothingQuality = imageSmoothingQuality; + context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) { + return Math.floor(normalizeDecimalNumber(param)); + })))); + context.restore(); + return canvas; + } + var fromCharCode = String.fromCharCode; + /** + * Get string from char code in data view. + * @param {DataView} dataView - The data view for read. + * @param {number} start - The start index. + * @param {number} length - The read length. + * @returns {string} The read result. + */ + + function getStringFromCharCode(dataView, start, length) { + var str = ''; + length += start; + + for (var i = start; i < length; i += 1) { + str += fromCharCode(dataView.getUint8(i)); + } + + return str; + } + var REGEXP_DATA_URL_HEAD = /^data:.*,/; + /** + * Transform Data URL to array buffer. + * @param {string} dataURL - The Data URL to transform. + * @returns {ArrayBuffer} The result array buffer. + */ + + function dataURLToArrayBuffer(dataURL) { + var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, ''); + var binary = atob(base64); + var arrayBuffer = new ArrayBuffer(binary.length); + var uint8 = new Uint8Array(arrayBuffer); + forEach(uint8, function (value, i) { + uint8[i] = binary.charCodeAt(i); + }); + return arrayBuffer; + } + /** + * Transform array buffer to Data URL. + * @param {ArrayBuffer} arrayBuffer - The array buffer to transform. + * @param {string} mimeType - The mime type of the Data URL. + * @returns {string} The result Data URL. + */ + + function arrayBufferToDataURL(arrayBuffer, mimeType) { + var chunks = []; // Chunk Typed Array for better performance (#435) + + var chunkSize = 8192; + var uint8 = new Uint8Array(arrayBuffer); + + while (uint8.length > 0) { + // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9 + // eslint-disable-next-line prefer-spread + chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize)))); + uint8 = uint8.subarray(chunkSize); + } + + return "data:".concat(mimeType, ";base64,").concat(btoa(chunks.join(''))); + } + /** + * Get orientation value from given array buffer. + * @param {ArrayBuffer} arrayBuffer - The array buffer to read. + * @returns {number} The read orientation value. + */ + + function resetAndGetOrientation(arrayBuffer) { + var dataView = new DataView(arrayBuffer); + var orientation; // Ignores range error when the image does not have correct Exif information + + try { + var littleEndian; + var app1Start; + var ifdStart; // Only handle JPEG image (start by 0xFFD8) + + if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) { + var length = dataView.byteLength; + var offset = 2; + + while (offset + 1 < length) { + if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) { + app1Start = offset; + break; + } + + offset += 1; + } + } + + if (app1Start) { + var exifIDCode = app1Start + 4; + var tiffOffset = app1Start + 10; + + if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') { + var endianness = dataView.getUint16(tiffOffset); + littleEndian = endianness === 0x4949; + + if (littleEndian || endianness === 0x4D4D + /* bigEndian */ + ) { + if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) { + var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian); + + if (firstIFDOffset >= 0x00000008) { + ifdStart = tiffOffset + firstIFDOffset; + } + } + } + } + } + + if (ifdStart) { + var _length = dataView.getUint16(ifdStart, littleEndian); + + var _offset; + + var i; + + for (i = 0; i < _length; i += 1) { + _offset = ifdStart + i * 12 + 2; + + if (dataView.getUint16(_offset, littleEndian) === 0x0112 + /* Orientation */ + ) { + // 8 is the offset of the current tag's value + _offset += 8; // Get the original orientation value + + orientation = dataView.getUint16(_offset, littleEndian); // Override the orientation with its default value + + dataView.setUint16(_offset, 1, littleEndian); + break; + } + } + } + } catch (error) { + orientation = 1; + } + + return orientation; + } + /** + * Parse Exif Orientation value. + * @param {number} orientation - The orientation to parse. + * @returns {Object} The parsed result. + */ + + function parseOrientation(orientation) { + var rotate = 0; + var scaleX = 1; + var scaleY = 1; + + switch (orientation) { + // Flip horizontal + case 2: + scaleX = -1; + break; + // Rotate left 180° + + case 3: + rotate = -180; + break; + // Flip vertical + + case 4: + scaleY = -1; + break; + // Flip vertical and rotate right 90° + + case 5: + rotate = 90; + scaleY = -1; + break; + // Rotate right 90° + + case 6: + rotate = 90; + break; + // Flip horizontal and rotate right 90° + + case 7: + rotate = 90; + scaleX = -1; + break; + // Rotate left 90° + + case 8: + rotate = -90; + break; + + default: + } + + return { + rotate: rotate, + scaleX: scaleX, + scaleY: scaleY + }; + } + + var render = { + render: function render() { + this.initContainer(); + this.initCanvas(); + this.initCropBox(); + this.renderCanvas(); + + if (this.cropped) { + this.renderCropBox(); + } + }, + initContainer: function initContainer() { + var element = this.element, + options = this.options, + container = this.container, + cropper = this.cropper; + addClass(cropper, CLASS_HIDDEN); + removeClass(element, CLASS_HIDDEN); + var containerData = { + width: Math.max(container.offsetWidth, Number(options.minContainerWidth) || 200), + height: Math.max(container.offsetHeight, Number(options.minContainerHeight) || 100) + }; + this.containerData = containerData; + setStyle(cropper, { + width: containerData.width, + height: containerData.height + }); + addClass(element, CLASS_HIDDEN); + removeClass(cropper, CLASS_HIDDEN); + }, + // Canvas (image wrapper) + initCanvas: function initCanvas() { + var containerData = this.containerData, + imageData = this.imageData; + var viewMode = this.options.viewMode; + var rotated = Math.abs(imageData.rotate) % 180 === 90; + var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth; + var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight; + var aspectRatio = naturalWidth / naturalHeight; + var canvasWidth = containerData.width; + var canvasHeight = containerData.height; + + if (containerData.height * aspectRatio > containerData.width) { + if (viewMode === 3) { + canvasWidth = containerData.height * aspectRatio; + } else { + canvasHeight = containerData.width / aspectRatio; + } + } else if (viewMode === 3) { + canvasHeight = containerData.width / aspectRatio; + } else { + canvasWidth = containerData.height * aspectRatio; + } + + var canvasData = { + aspectRatio: aspectRatio, + naturalWidth: naturalWidth, + naturalHeight: naturalHeight, + width: canvasWidth, + height: canvasHeight + }; + canvasData.left = (containerData.width - canvasWidth) / 2; + canvasData.top = (containerData.height - canvasHeight) / 2; + canvasData.oldLeft = canvasData.left; + canvasData.oldTop = canvasData.top; + this.canvasData = canvasData; + this.limited = viewMode === 1 || viewMode === 2; + this.limitCanvas(true, true); + this.initialImageData = assign({}, imageData); + this.initialCanvasData = assign({}, canvasData); + }, + limitCanvas: function limitCanvas(sizeLimited, positionLimited) { + var options = this.options, + containerData = this.containerData, + canvasData = this.canvasData, + cropBoxData = this.cropBoxData; + var viewMode = options.viewMode; + var aspectRatio = canvasData.aspectRatio; + var cropped = this.cropped && cropBoxData; + + if (sizeLimited) { + var minCanvasWidth = Number(options.minCanvasWidth) || 0; + var minCanvasHeight = Number(options.minCanvasHeight) || 0; + + if (viewMode > 1) { + minCanvasWidth = Math.max(minCanvasWidth, containerData.width); + minCanvasHeight = Math.max(minCanvasHeight, containerData.height); + + if (viewMode === 3) { + if (minCanvasHeight * aspectRatio > minCanvasWidth) { + minCanvasWidth = minCanvasHeight * aspectRatio; + } else { + minCanvasHeight = minCanvasWidth / aspectRatio; + } + } + } else if (viewMode > 0) { + if (minCanvasWidth) { + minCanvasWidth = Math.max(minCanvasWidth, cropped ? cropBoxData.width : 0); + } else if (minCanvasHeight) { + minCanvasHeight = Math.max(minCanvasHeight, cropped ? cropBoxData.height : 0); + } else if (cropped) { + minCanvasWidth = cropBoxData.width; + minCanvasHeight = cropBoxData.height; + + if (minCanvasHeight * aspectRatio > minCanvasWidth) { + minCanvasWidth = minCanvasHeight * aspectRatio; + } else { + minCanvasHeight = minCanvasWidth / aspectRatio; + } + } + } + + var _getAdjustedSizes = getAdjustedSizes({ + aspectRatio: aspectRatio, + width: minCanvasWidth, + height: minCanvasHeight + }); + + minCanvasWidth = _getAdjustedSizes.width; + minCanvasHeight = _getAdjustedSizes.height; + canvasData.minWidth = minCanvasWidth; + canvasData.minHeight = minCanvasHeight; + canvasData.maxWidth = Infinity; + canvasData.maxHeight = Infinity; + } + + if (positionLimited) { + if (viewMode > (cropped ? 0 : 1)) { + var newCanvasLeft = containerData.width - canvasData.width; + var newCanvasTop = containerData.height - canvasData.height; + canvasData.minLeft = Math.min(0, newCanvasLeft); + canvasData.minTop = Math.min(0, newCanvasTop); + canvasData.maxLeft = Math.max(0, newCanvasLeft); + canvasData.maxTop = Math.max(0, newCanvasTop); + + if (cropped && this.limited) { + canvasData.minLeft = Math.min(cropBoxData.left, cropBoxData.left + (cropBoxData.width - canvasData.width)); + canvasData.minTop = Math.min(cropBoxData.top, cropBoxData.top + (cropBoxData.height - canvasData.height)); + canvasData.maxLeft = cropBoxData.left; + canvasData.maxTop = cropBoxData.top; + + if (viewMode === 2) { + if (canvasData.width >= containerData.width) { + canvasData.minLeft = Math.min(0, newCanvasLeft); + canvasData.maxLeft = Math.max(0, newCanvasLeft); + } + + if (canvasData.height >= containerData.height) { + canvasData.minTop = Math.min(0, newCanvasTop); + canvasData.maxTop = Math.max(0, newCanvasTop); + } + } + } + } else { + canvasData.minLeft = -canvasData.width; + canvasData.minTop = -canvasData.height; + canvasData.maxLeft = containerData.width; + canvasData.maxTop = containerData.height; + } + } + }, + renderCanvas: function renderCanvas(changed, transformed) { + var canvasData = this.canvasData, + imageData = this.imageData; + + if (transformed) { + var _getRotatedSizes = getRotatedSizes({ + width: imageData.naturalWidth * Math.abs(imageData.scaleX || 1), + height: imageData.naturalHeight * Math.abs(imageData.scaleY || 1), + degree: imageData.rotate || 0 + }), + naturalWidth = _getRotatedSizes.width, + naturalHeight = _getRotatedSizes.height; + + var width = canvasData.width * (naturalWidth / canvasData.naturalWidth); + var height = canvasData.height * (naturalHeight / canvasData.naturalHeight); + canvasData.left -= (width - canvasData.width) / 2; + canvasData.top -= (height - canvasData.height) / 2; + canvasData.width = width; + canvasData.height = height; + canvasData.aspectRatio = naturalWidth / naturalHeight; + canvasData.naturalWidth = naturalWidth; + canvasData.naturalHeight = naturalHeight; + this.limitCanvas(true, false); + } + + if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) { + canvasData.left = canvasData.oldLeft; + } + + if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) { + canvasData.top = canvasData.oldTop; + } + + canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth); + canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight); + this.limitCanvas(false, true); + canvasData.left = Math.min(Math.max(canvasData.left, canvasData.minLeft), canvasData.maxLeft); + canvasData.top = Math.min(Math.max(canvasData.top, canvasData.minTop), canvasData.maxTop); + canvasData.oldLeft = canvasData.left; + canvasData.oldTop = canvasData.top; + setStyle(this.canvas, assign({ + width: canvasData.width, + height: canvasData.height + }, getTransforms({ + translateX: canvasData.left, + translateY: canvasData.top + }))); + this.renderImage(changed); + + if (this.cropped && this.limited) { + this.limitCropBox(true, true); + } + }, + renderImage: function renderImage(changed) { + var canvasData = this.canvasData, + imageData = this.imageData; + var width = imageData.naturalWidth * (canvasData.width / canvasData.naturalWidth); + var height = imageData.naturalHeight * (canvasData.height / canvasData.naturalHeight); + assign(imageData, { + width: width, + height: height, + left: (canvasData.width - width) / 2, + top: (canvasData.height - height) / 2 + }); + setStyle(this.image, assign({ + width: imageData.width, + height: imageData.height + }, getTransforms(assign({ + translateX: imageData.left, + translateY: imageData.top + }, imageData)))); + + if (changed) { + this.output(); + } + }, + initCropBox: function initCropBox() { + var options = this.options, + canvasData = this.canvasData; + var aspectRatio = options.aspectRatio || options.initialAspectRatio; + var autoCropArea = Number(options.autoCropArea) || 0.8; + var cropBoxData = { + width: canvasData.width, + height: canvasData.height + }; + + if (aspectRatio) { + if (canvasData.height * aspectRatio > canvasData.width) { + cropBoxData.height = cropBoxData.width / aspectRatio; + } else { + cropBoxData.width = cropBoxData.height * aspectRatio; + } + } + + this.cropBoxData = cropBoxData; + this.limitCropBox(true, true); // Initialize auto crop area + + cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth); + cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight); // The width/height of auto crop area must large than "minWidth/Height" + + cropBoxData.width = Math.max(cropBoxData.minWidth, cropBoxData.width * autoCropArea); + cropBoxData.height = Math.max(cropBoxData.minHeight, cropBoxData.height * autoCropArea); + cropBoxData.left = canvasData.left + (canvasData.width - cropBoxData.width) / 2; + cropBoxData.top = canvasData.top + (canvasData.height - cropBoxData.height) / 2; + cropBoxData.oldLeft = cropBoxData.left; + cropBoxData.oldTop = cropBoxData.top; + this.initialCropBoxData = assign({}, cropBoxData); + }, + limitCropBox: function limitCropBox(sizeLimited, positionLimited) { + var options = this.options, + containerData = this.containerData, + canvasData = this.canvasData, + cropBoxData = this.cropBoxData, + limited = this.limited; + var aspectRatio = options.aspectRatio; + + if (sizeLimited) { + var minCropBoxWidth = Number(options.minCropBoxWidth) || 0; + var minCropBoxHeight = Number(options.minCropBoxHeight) || 0; + var maxCropBoxWidth = limited ? Math.min(containerData.width, canvasData.width, canvasData.width + canvasData.left, containerData.width - canvasData.left) : containerData.width; + var maxCropBoxHeight = limited ? Math.min(containerData.height, canvasData.height, canvasData.height + canvasData.top, containerData.height - canvasData.top) : containerData.height; // The min/maxCropBoxWidth/Height must be less than container's width/height + + minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width); + minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height); + + if (aspectRatio) { + if (minCropBoxWidth && minCropBoxHeight) { + if (minCropBoxHeight * aspectRatio > minCropBoxWidth) { + minCropBoxHeight = minCropBoxWidth / aspectRatio; + } else { + minCropBoxWidth = minCropBoxHeight * aspectRatio; + } + } else if (minCropBoxWidth) { + minCropBoxHeight = minCropBoxWidth / aspectRatio; + } else if (minCropBoxHeight) { + minCropBoxWidth = minCropBoxHeight * aspectRatio; + } + + if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) { + maxCropBoxHeight = maxCropBoxWidth / aspectRatio; + } else { + maxCropBoxWidth = maxCropBoxHeight * aspectRatio; + } + } // The minWidth/Height must be less than maxWidth/Height + + + cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth); + cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight); + cropBoxData.maxWidth = maxCropBoxWidth; + cropBoxData.maxHeight = maxCropBoxHeight; + } + + if (positionLimited) { + if (limited) { + cropBoxData.minLeft = Math.max(0, canvasData.left); + cropBoxData.minTop = Math.max(0, canvasData.top); + cropBoxData.maxLeft = Math.min(containerData.width, canvasData.left + canvasData.width) - cropBoxData.width; + cropBoxData.maxTop = Math.min(containerData.height, canvasData.top + canvasData.height) - cropBoxData.height; + } else { + cropBoxData.minLeft = 0; + cropBoxData.minTop = 0; + cropBoxData.maxLeft = containerData.width - cropBoxData.width; + cropBoxData.maxTop = containerData.height - cropBoxData.height; + } + } + }, + renderCropBox: function renderCropBox() { + var options = this.options, + containerData = this.containerData, + cropBoxData = this.cropBoxData; + + if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) { + cropBoxData.left = cropBoxData.oldLeft; + } + + if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) { + cropBoxData.top = cropBoxData.oldTop; + } + + cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth); + cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight); + this.limitCropBox(false, true); + cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft); + cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop); + cropBoxData.oldLeft = cropBoxData.left; + cropBoxData.oldTop = cropBoxData.top; + + if (options.movable && options.cropBoxMovable) { + // Turn to move the canvas when the crop box is equal to the container + setData(this.face, DATA_ACTION, cropBoxData.width >= containerData.width && cropBoxData.height >= containerData.height ? ACTION_MOVE : ACTION_ALL); + } + + setStyle(this.cropBox, assign({ + width: cropBoxData.width, + height: cropBoxData.height + }, getTransforms({ + translateX: cropBoxData.left, + translateY: cropBoxData.top + }))); + + if (this.cropped && this.limited) { + this.limitCanvas(true, true); + } + + if (!this.disabled) { + this.output(); + } + }, + output: function output() { + this.preview(); + dispatchEvent(this.element, EVENT_CROP, this.getData()); + } + }; + + var preview = { + initPreview: function initPreview() { + var crossOrigin = this.crossOrigin; + var preview = this.options.preview; + var url = crossOrigin ? this.crossOriginUrl : this.url; + var image = document.createElement('img'); + + if (crossOrigin) { + image.crossOrigin = crossOrigin; + } + + image.src = url; + this.viewBox.appendChild(image); + this.viewBoxImage = image; + + if (!preview) { + return; + } + + var previews = preview; + + if (typeof preview === 'string') { + previews = this.element.ownerDocument.querySelectorAll(preview); + } else if (preview.querySelector) { + previews = [preview]; + } + + this.previews = previews; + forEach(previews, function (el) { + var img = document.createElement('img'); // Save the original size for recover + + setData(el, DATA_PREVIEW, { + width: el.offsetWidth, + height: el.offsetHeight, + html: el.innerHTML + }); + + if (crossOrigin) { + img.crossOrigin = crossOrigin; + } + + img.src = url; + /** + * Override img element styles + * Add `display:block` to avoid margin top issue + * Add `height:auto` to override `height` attribute on IE8 + * (Occur only when margin-top <= -height) + */ + + img.style.cssText = 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;"'; + el.innerHTML = ''; + el.appendChild(img); + }); + }, + resetPreview: function resetPreview() { + forEach(this.previews, function (element) { + var data = getData(element, DATA_PREVIEW); + setStyle(element, { + width: data.width, + height: data.height + }); + element.innerHTML = data.html; + removeData(element, DATA_PREVIEW); + }); + }, + preview: function preview() { + var imageData = this.imageData, + canvasData = this.canvasData, + cropBoxData = this.cropBoxData; + var cropBoxWidth = cropBoxData.width, + cropBoxHeight = cropBoxData.height; + var width = imageData.width, + height = imageData.height; + var left = cropBoxData.left - canvasData.left - imageData.left; + var top = cropBoxData.top - canvasData.top - imageData.top; + + if (!this.cropped || this.disabled) { + return; + } + + setStyle(this.viewBoxImage, assign({ + width: width, + height: height + }, getTransforms(assign({ + translateX: -left, + translateY: -top + }, imageData)))); + forEach(this.previews, function (element) { + var data = getData(element, DATA_PREVIEW); + var originalWidth = data.width; + var originalHeight = data.height; + var newWidth = originalWidth; + var newHeight = originalHeight; + var ratio = 1; + + if (cropBoxWidth) { + ratio = originalWidth / cropBoxWidth; + newHeight = cropBoxHeight * ratio; + } + + if (cropBoxHeight && newHeight > originalHeight) { + ratio = originalHeight / cropBoxHeight; + newWidth = cropBoxWidth * ratio; + newHeight = originalHeight; + } + + setStyle(element, { + width: newWidth, + height: newHeight + }); + setStyle(element.getElementsByTagName('img')[0], assign({ + width: width * ratio, + height: height * ratio + }, getTransforms(assign({ + translateX: -left * ratio, + translateY: -top * ratio + }, imageData)))); + }); + } + }; + + var events = { + bind: function bind() { + var element = this.element, + options = this.options, + cropper = this.cropper; + + if (isFunction(options.cropstart)) { + addListener(element, EVENT_CROP_START, options.cropstart); + } + + if (isFunction(options.cropmove)) { + addListener(element, EVENT_CROP_MOVE, options.cropmove); + } + + if (isFunction(options.cropend)) { + addListener(element, EVENT_CROP_END, options.cropend); + } + + if (isFunction(options.crop)) { + addListener(element, EVENT_CROP, options.crop); + } + + if (isFunction(options.zoom)) { + addListener(element, EVENT_ZOOM, options.zoom); + } + + addListener(cropper, EVENT_POINTER_DOWN, this.onCropStart = this.cropStart.bind(this)); + + if (options.zoomable && options.zoomOnWheel) { + addListener(cropper, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), { + passive: false, + capture: true + }); + } + + if (options.toggleDragModeOnDblclick) { + addListener(cropper, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this)); + } + + addListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove = this.cropMove.bind(this)); + addListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd = this.cropEnd.bind(this)); + + if (options.responsive) { + addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this)); + } + }, + unbind: function unbind() { + var element = this.element, + options = this.options, + cropper = this.cropper; + + if (isFunction(options.cropstart)) { + removeListener(element, EVENT_CROP_START, options.cropstart); + } + + if (isFunction(options.cropmove)) { + removeListener(element, EVENT_CROP_MOVE, options.cropmove); + } + + if (isFunction(options.cropend)) { + removeListener(element, EVENT_CROP_END, options.cropend); + } + + if (isFunction(options.crop)) { + removeListener(element, EVENT_CROP, options.crop); + } + + if (isFunction(options.zoom)) { + removeListener(element, EVENT_ZOOM, options.zoom); + } + + removeListener(cropper, EVENT_POINTER_DOWN, this.onCropStart); + + if (options.zoomable && options.zoomOnWheel) { + removeListener(cropper, EVENT_WHEEL, this.onWheel, { + passive: false, + capture: true + }); + } + + if (options.toggleDragModeOnDblclick) { + removeListener(cropper, EVENT_DBLCLICK, this.onDblclick); + } + + removeListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove); + removeListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd); + + if (options.responsive) { + removeListener(window, EVENT_RESIZE, this.onResize); + } + } + }; + + var handlers = { + resize: function resize() { + var options = this.options, + container = this.container, + containerData = this.containerData; + var minContainerWidth = Number(options.minContainerWidth) || MIN_CONTAINER_WIDTH; + var minContainerHeight = Number(options.minContainerHeight) || MIN_CONTAINER_HEIGHT; + + if (this.disabled || containerData.width <= minContainerWidth || containerData.height <= minContainerHeight) { + return; + } + + var ratio = container.offsetWidth / containerData.width; // Resize when width changed or height changed + + if (ratio !== 1 || container.offsetHeight !== containerData.height) { + var canvasData; + var cropBoxData; + + if (options.restore) { + canvasData = this.getCanvasData(); + cropBoxData = this.getCropBoxData(); + } + + this.render(); + + if (options.restore) { + this.setCanvasData(forEach(canvasData, function (n, i) { + canvasData[i] = n * ratio; + })); + this.setCropBoxData(forEach(cropBoxData, function (n, i) { + cropBoxData[i] = n * ratio; + })); + } + } + }, + dblclick: function dblclick() { + if (this.disabled || this.options.dragMode === DRAG_MODE_NONE) { + return; + } + + this.setDragMode(hasClass(this.dragBox, CLASS_CROP) ? DRAG_MODE_MOVE : DRAG_MODE_CROP); + }, + wheel: function wheel(event) { + var _this = this; + + var ratio = Number(this.options.wheelZoomRatio) || 0.1; + var delta = 1; + + if (this.disabled) { + return; + } + + event.preventDefault(); // Limit wheel speed to prevent zoom too fast (#21) + + if (this.wheeling) { + return; + } + + this.wheeling = true; + setTimeout(function () { + _this.wheeling = false; + }, 50); + + if (event.deltaY) { + delta = event.deltaY > 0 ? 1 : -1; + } else if (event.wheelDelta) { + delta = -event.wheelDelta / 120; + } else if (event.detail) { + delta = event.detail > 0 ? 1 : -1; + } + + this.zoom(-delta * ratio, event); + }, + cropStart: function cropStart(event) { + var buttons = event.buttons, + button = event.button; + + if (this.disabled // No primary button (Usually the left button) + // Note that touch events have no `buttons` or `button` property + || isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0 // Open context menu + || event.ctrlKey) { + return; + } + + var options = this.options, + pointers = this.pointers; + var action; + + if (event.changedTouches) { + // Handle touch event + forEach(event.changedTouches, function (touch) { + pointers[touch.identifier] = getPointer(touch); + }); + } else { + // Handle mouse event and pointer event + pointers[event.pointerId || 0] = getPointer(event); + } + + if (Object.keys(pointers).length > 1 && options.zoomable && options.zoomOnTouch) { + action = ACTION_ZOOM; + } else { + action = getData(event.target, DATA_ACTION); + } + + if (!REGEXP_ACTIONS.test(action)) { + return; + } + + if (dispatchEvent(this.element, EVENT_CROP_START, { + originalEvent: event, + action: action + }) === false) { + return; + } // This line is required for preventing page zooming in iOS browsers + + + event.preventDefault(); + this.action = action; + this.cropping = false; + + if (action === ACTION_CROP) { + this.cropping = true; + addClass(this.dragBox, CLASS_MODAL); + } + }, + cropMove: function cropMove(event) { + var action = this.action; + + if (this.disabled || !action) { + return; + } + + var pointers = this.pointers; + event.preventDefault(); + + if (dispatchEvent(this.element, EVENT_CROP_MOVE, { + originalEvent: event, + action: action + }) === false) { + return; + } + + if (event.changedTouches) { + forEach(event.changedTouches, function (touch) { + // The first parameter should not be undefined (#432) + assign(pointers[touch.identifier] || {}, getPointer(touch, true)); + }); + } else { + assign(pointers[event.pointerId || 0] || {}, getPointer(event, true)); + } + + this.change(event); + }, + cropEnd: function cropEnd(event) { + if (this.disabled) { + return; + } + + var action = this.action, + pointers = this.pointers; + + if (event.changedTouches) { + forEach(event.changedTouches, function (touch) { + delete pointers[touch.identifier]; + }); + } else { + delete pointers[event.pointerId || 0]; + } + + if (!action) { + return; + } + + event.preventDefault(); + + if (!Object.keys(pointers).length) { + this.action = ''; + } + + if (this.cropping) { + this.cropping = false; + toggleClass(this.dragBox, CLASS_MODAL, this.cropped && this.options.modal); + } + + dispatchEvent(this.element, EVENT_CROP_END, { + originalEvent: event, + action: action + }); + } + }; + + var change = { + change: function change(event) { + var options = this.options, + canvasData = this.canvasData, + containerData = this.containerData, + cropBoxData = this.cropBoxData, + pointers = this.pointers; + var action = this.action; + var aspectRatio = options.aspectRatio; + var left = cropBoxData.left, + top = cropBoxData.top, + width = cropBoxData.width, + height = cropBoxData.height; + var right = left + width; + var bottom = top + height; + var minLeft = 0; + var minTop = 0; + var maxWidth = containerData.width; + var maxHeight = containerData.height; + var renderable = true; + var offset; // Locking aspect ratio in "free mode" by holding shift key + + if (!aspectRatio && event.shiftKey) { + aspectRatio = width && height ? width / height : 1; + } + + if (this.limited) { + minLeft = cropBoxData.minLeft; + minTop = cropBoxData.minTop; + maxWidth = minLeft + Math.min(containerData.width, canvasData.width, canvasData.left + canvasData.width); + maxHeight = minTop + Math.min(containerData.height, canvasData.height, canvasData.top + canvasData.height); + } + + var pointer = pointers[Object.keys(pointers)[0]]; + var range = { + x: pointer.endX - pointer.startX, + y: pointer.endY - pointer.startY + }; + + var check = function check(side) { + switch (side) { + case ACTION_EAST: + if (right + range.x > maxWidth) { + range.x = maxWidth - right; + } + + break; + + case ACTION_WEST: + if (left + range.x < minLeft) { + range.x = minLeft - left; + } + + break; + + case ACTION_NORTH: + if (top + range.y < minTop) { + range.y = minTop - top; + } + + break; + + case ACTION_SOUTH: + if (bottom + range.y > maxHeight) { + range.y = maxHeight - bottom; + } + + break; + + default: + } + }; + + switch (action) { + // Move crop box + case ACTION_ALL: + left += range.x; + top += range.y; + break; + // Resize crop box + + case ACTION_EAST: + if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) { + renderable = false; + break; + } + + check(ACTION_EAST); + width += range.x; + + if (width < 0) { + action = ACTION_WEST; + width = -width; + left -= width; + } + + if (aspectRatio) { + height = width / aspectRatio; + top += (cropBoxData.height - height) / 2; + } + + break; + + case ACTION_NORTH: + if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) { + renderable = false; + break; + } + + check(ACTION_NORTH); + height -= range.y; + top += range.y; + + if (height < 0) { + action = ACTION_SOUTH; + height = -height; + top -= height; + } + + if (aspectRatio) { + width = height * aspectRatio; + left += (cropBoxData.width - width) / 2; + } + + break; + + case ACTION_WEST: + if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) { + renderable = false; + break; + } + + check(ACTION_WEST); + width -= range.x; + left += range.x; + + if (width < 0) { + action = ACTION_EAST; + width = -width; + left -= width; + } + + if (aspectRatio) { + height = width / aspectRatio; + top += (cropBoxData.height - height) / 2; + } + + break; + + case ACTION_SOUTH: + if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) { + renderable = false; + break; + } + + check(ACTION_SOUTH); + height += range.y; + + if (height < 0) { + action = ACTION_NORTH; + height = -height; + top -= height; + } + + if (aspectRatio) { + width = height * aspectRatio; + left += (cropBoxData.width - width) / 2; + } + + break; + + case ACTION_NORTH_EAST: + if (aspectRatio) { + if (range.y <= 0 && (top <= minTop || right >= maxWidth)) { + renderable = false; + break; + } + + check(ACTION_NORTH); + height -= range.y; + top += range.y; + width = height * aspectRatio; + } else { + check(ACTION_NORTH); + check(ACTION_EAST); + + if (range.x >= 0) { + if (right < maxWidth) { + width += range.x; + } else if (range.y <= 0 && top <= minTop) { + renderable = false; + } + } else { + width += range.x; + } + + if (range.y <= 0) { + if (top > minTop) { + height -= range.y; + top += range.y; + } + } else { + height -= range.y; + top += range.y; + } + } + + if (width < 0 && height < 0) { + action = ACTION_SOUTH_WEST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_NORTH_WEST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_SOUTH_EAST; + height = -height; + top -= height; + } + + break; + + case ACTION_NORTH_WEST: + if (aspectRatio) { + if (range.y <= 0 && (top <= minTop || left <= minLeft)) { + renderable = false; + break; + } + + check(ACTION_NORTH); + height -= range.y; + top += range.y; + width = height * aspectRatio; + left += cropBoxData.width - width; + } else { + check(ACTION_NORTH); + check(ACTION_WEST); + + if (range.x <= 0) { + if (left > minLeft) { + width -= range.x; + left += range.x; + } else if (range.y <= 0 && top <= minTop) { + renderable = false; + } + } else { + width -= range.x; + left += range.x; + } + + if (range.y <= 0) { + if (top > minTop) { + height -= range.y; + top += range.y; + } + } else { + height -= range.y; + top += range.y; + } + } + + if (width < 0 && height < 0) { + action = ACTION_SOUTH_EAST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_NORTH_EAST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_SOUTH_WEST; + height = -height; + top -= height; + } + + break; + + case ACTION_SOUTH_WEST: + if (aspectRatio) { + if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) { + renderable = false; + break; + } + + check(ACTION_WEST); + width -= range.x; + left += range.x; + height = width / aspectRatio; + } else { + check(ACTION_SOUTH); + check(ACTION_WEST); + + if (range.x <= 0) { + if (left > minLeft) { + width -= range.x; + left += range.x; + } else if (range.y >= 0 && bottom >= maxHeight) { + renderable = false; + } + } else { + width -= range.x; + left += range.x; + } + + if (range.y >= 0) { + if (bottom < maxHeight) { + height += range.y; + } + } else { + height += range.y; + } + } + + if (width < 0 && height < 0) { + action = ACTION_NORTH_EAST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_SOUTH_EAST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_NORTH_WEST; + height = -height; + top -= height; + } + + break; + + case ACTION_SOUTH_EAST: + if (aspectRatio) { + if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) { + renderable = false; + break; + } + + check(ACTION_EAST); + width += range.x; + height = width / aspectRatio; + } else { + check(ACTION_SOUTH); + check(ACTION_EAST); + + if (range.x >= 0) { + if (right < maxWidth) { + width += range.x; + } else if (range.y >= 0 && bottom >= maxHeight) { + renderable = false; + } + } else { + width += range.x; + } + + if (range.y >= 0) { + if (bottom < maxHeight) { + height += range.y; + } + } else { + height += range.y; + } + } + + if (width < 0 && height < 0) { + action = ACTION_NORTH_WEST; + height = -height; + width = -width; + top -= height; + left -= width; + } else if (width < 0) { + action = ACTION_SOUTH_WEST; + width = -width; + left -= width; + } else if (height < 0) { + action = ACTION_NORTH_EAST; + height = -height; + top -= height; + } + + break; + // Move canvas + + case ACTION_MOVE: + this.move(range.x, range.y); + renderable = false; + break; + // Zoom canvas + + case ACTION_ZOOM: + this.zoom(getMaxZoomRatio(pointers), event); + renderable = false; + break; + // Create crop box + + case ACTION_CROP: + if (!range.x || !range.y) { + renderable = false; + break; + } + + offset = getOffset(this.cropper); + left = pointer.startX - offset.left; + top = pointer.startY - offset.top; + width = cropBoxData.minWidth; + height = cropBoxData.minHeight; + + if (range.x > 0) { + action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST; + } else if (range.x < 0) { + left -= width; + action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST; + } + + if (range.y < 0) { + top -= height; + } // Show the crop box if is hidden + + + if (!this.cropped) { + removeClass(this.cropBox, CLASS_HIDDEN); + this.cropped = true; + + if (this.limited) { + this.limitCropBox(true, true); + } + } + + break; + + default: + } + + if (renderable) { + cropBoxData.width = width; + cropBoxData.height = height; + cropBoxData.left = left; + cropBoxData.top = top; + this.action = action; + this.renderCropBox(); + } // Override + + + forEach(pointers, function (p) { + p.startX = p.endX; + p.startY = p.endY; + }); + } + }; + + var methods = { + // Show the crop box manually + crop: function crop() { + if (this.ready && !this.cropped && !this.disabled) { + this.cropped = true; + this.limitCropBox(true, true); + + if (this.options.modal) { + addClass(this.dragBox, CLASS_MODAL); + } + + removeClass(this.cropBox, CLASS_HIDDEN); + this.setCropBoxData(this.initialCropBoxData); + } + + return this; + }, + // Reset the image and crop box to their initial states + reset: function reset() { + if (this.ready && !this.disabled) { + this.imageData = assign({}, this.initialImageData); + this.canvasData = assign({}, this.initialCanvasData); + this.cropBoxData = assign({}, this.initialCropBoxData); + this.renderCanvas(); + + if (this.cropped) { + this.renderCropBox(); + } + } + + return this; + }, + // Clear the crop box + clear: function clear() { + if (this.cropped && !this.disabled) { + assign(this.cropBoxData, { + left: 0, + top: 0, + width: 0, + height: 0 + }); + this.cropped = false; + this.renderCropBox(); + this.limitCanvas(true, true); // Render canvas after crop box rendered + + this.renderCanvas(); + removeClass(this.dragBox, CLASS_MODAL); + addClass(this.cropBox, CLASS_HIDDEN); + } + + return this; + }, + + /** + * Replace the image's src and rebuild the cropper + * @param {string} url - The new URL. + * @param {boolean} [hasSameSize] - Indicate if the new image has the same size as the old one. + * @returns {Cropper} this + */ + replace: function replace(url) { + var hasSameSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (!this.disabled && url) { + if (this.isImg) { + this.element.src = url; + } + + if (hasSameSize) { + this.url = url; + this.image.src = url; + + if (this.ready) { + this.viewBoxImage.src = url; + forEach(this.previews, function (element) { + element.getElementsByTagName('img')[0].src = url; + }); + } + } else { + if (this.isImg) { + this.replaced = true; + } + + this.options.data = null; + this.uncreate(); + this.load(url); + } + } + + return this; + }, + // Enable (unfreeze) the cropper + enable: function enable() { + if (this.ready && this.disabled) { + this.disabled = false; + removeClass(this.cropper, CLASS_DISABLED); + } + + return this; + }, + // Disable (freeze) the cropper + disable: function disable() { + if (this.ready && !this.disabled) { + this.disabled = true; + addClass(this.cropper, CLASS_DISABLED); + } + + return this; + }, + + /** + * Destroy the cropper and remove the instance from the image + * @returns {Cropper} this + */ + destroy: function destroy() { + var element = this.element; + + if (!element[NAMESPACE]) { + return this; + } + + element[NAMESPACE] = undefined; + + if (this.isImg && this.replaced) { + element.src = this.originalUrl; + } + + this.uncreate(); + return this; + }, + + /** + * Move the canvas with relative offsets + * @param {number} offsetX - The relative offset distance on the x-axis. + * @param {number} [offsetY=offsetX] - The relative offset distance on the y-axis. + * @returns {Cropper} this + */ + move: function move(offsetX) { + var offsetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : offsetX; + var _this$canvasData = this.canvasData, + left = _this$canvasData.left, + top = _this$canvasData.top; + return this.moveTo(isUndefined(offsetX) ? offsetX : left + Number(offsetX), isUndefined(offsetY) ? offsetY : top + Number(offsetY)); + }, + + /** + * Move the canvas to an absolute point + * @param {number} x - The x-axis coordinate. + * @param {number} [y=x] - The y-axis coordinate. + * @returns {Cropper} this + */ + moveTo: function moveTo(x) { + var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x; + var canvasData = this.canvasData; + var changed = false; + x = Number(x); + y = Number(y); + + if (this.ready && !this.disabled && this.options.movable) { + if (isNumber(x)) { + canvasData.left = x; + changed = true; + } + + if (isNumber(y)) { + canvasData.top = y; + changed = true; + } + + if (changed) { + this.renderCanvas(true); + } + } + + return this; + }, + + /** + * Zoom the canvas with a relative ratio + * @param {number} ratio - The target ratio. + * @param {Event} _originalEvent - The original event if any. + * @returns {Cropper} this + */ + zoom: function zoom(ratio, _originalEvent) { + var canvasData = this.canvasData; + ratio = Number(ratio); + + if (ratio < 0) { + ratio = 1 / (1 - ratio); + } else { + ratio = 1 + ratio; + } + + return this.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, null, _originalEvent); + }, + + /** + * Zoom the canvas to an absolute ratio + * @param {number} ratio - The target ratio. + * @param {Object} pivot - The zoom pivot point coordinate. + * @param {Event} _originalEvent - The original event if any. + * @returns {Cropper} this + */ + zoomTo: function zoomTo(ratio, pivot, _originalEvent) { + var options = this.options, + canvasData = this.canvasData; + var width = canvasData.width, + height = canvasData.height, + naturalWidth = canvasData.naturalWidth, + naturalHeight = canvasData.naturalHeight; + ratio = Number(ratio); + + if (ratio >= 0 && this.ready && !this.disabled && options.zoomable) { + var newWidth = naturalWidth * ratio; + var newHeight = naturalHeight * ratio; + + if (dispatchEvent(this.element, EVENT_ZOOM, { + ratio: ratio, + oldRatio: width / naturalWidth, + originalEvent: _originalEvent + }) === false) { + return this; + } + + if (_originalEvent) { + var pointers = this.pointers; + var offset = getOffset(this.cropper); + var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : { + pageX: _originalEvent.pageX, + pageY: _originalEvent.pageY + }; // Zoom from the triggering point of the event + + canvasData.left -= (newWidth - width) * ((center.pageX - offset.left - canvasData.left) / width); + canvasData.top -= (newHeight - height) * ((center.pageY - offset.top - canvasData.top) / height); + } else if (isPlainObject(pivot) && isNumber(pivot.x) && isNumber(pivot.y)) { + canvasData.left -= (newWidth - width) * ((pivot.x - canvasData.left) / width); + canvasData.top -= (newHeight - height) * ((pivot.y - canvasData.top) / height); + } else { + // Zoom from the center of the canvas + canvasData.left -= (newWidth - width) / 2; + canvasData.top -= (newHeight - height) / 2; + } + + canvasData.width = newWidth; + canvasData.height = newHeight; + this.renderCanvas(true); + } + + return this; + }, + + /** + * Rotate the canvas with a relative degree + * @param {number} degree - The rotate degree. + * @returns {Cropper} this + */ + rotate: function rotate(degree) { + return this.rotateTo((this.imageData.rotate || 0) + Number(degree)); + }, + + /** + * Rotate the canvas to an absolute degree + * @param {number} degree - The rotate degree. + * @returns {Cropper} this + */ + rotateTo: function rotateTo(degree) { + degree = Number(degree); + + if (isNumber(degree) && this.ready && !this.disabled && this.options.rotatable) { + this.imageData.rotate = degree % 360; + this.renderCanvas(true, true); + } + + return this; + }, + + /** + * Scale the image on the x-axis. + * @param {number} scaleX - The scale ratio on the x-axis. + * @returns {Cropper} this + */ + scaleX: function scaleX(_scaleX) { + var scaleY = this.imageData.scaleY; + return this.scale(_scaleX, isNumber(scaleY) ? scaleY : 1); + }, + + /** + * Scale the image on the y-axis. + * @param {number} scaleY - The scale ratio on the y-axis. + * @returns {Cropper} this + */ + scaleY: function scaleY(_scaleY) { + var scaleX = this.imageData.scaleX; + return this.scale(isNumber(scaleX) ? scaleX : 1, _scaleY); + }, + + /** + * Scale the image + * @param {number} scaleX - The scale ratio on the x-axis. + * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis. + * @returns {Cropper} this + */ + scale: function scale(scaleX) { + var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX; + var imageData = this.imageData; + var transformed = false; + scaleX = Number(scaleX); + scaleY = Number(scaleY); + + if (this.ready && !this.disabled && this.options.scalable) { + if (isNumber(scaleX)) { + imageData.scaleX = scaleX; + transformed = true; + } + + if (isNumber(scaleY)) { + imageData.scaleY = scaleY; + transformed = true; + } + + if (transformed) { + this.renderCanvas(true, true); + } + } + + return this; + }, + + /** + * Get the cropped area position and size data (base on the original image) + * @param {boolean} [rounded=false] - Indicate if round the data values or not. + * @returns {Object} The result cropped data. + */ + getData: function getData() { + var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var options = this.options, + imageData = this.imageData, + canvasData = this.canvasData, + cropBoxData = this.cropBoxData; + var data; + + if (this.ready && this.cropped) { + data = { + x: cropBoxData.left - canvasData.left, + y: cropBoxData.top - canvasData.top, + width: cropBoxData.width, + height: cropBoxData.height + }; + var ratio = imageData.width / imageData.naturalWidth; + forEach(data, function (n, i) { + data[i] = n / ratio; + }); + + if (rounded) { + // In case rounding off leads to extra 1px in right or bottom border + // we should round the top-left corner and the dimension (#343). + var bottom = Math.round(data.y + data.height); + var right = Math.round(data.x + data.width); + data.x = Math.round(data.x); + data.y = Math.round(data.y); + data.width = right - data.x; + data.height = bottom - data.y; + } + } else { + data = { + x: 0, + y: 0, + width: 0, + height: 0 + }; + } + + if (options.rotatable) { + data.rotate = imageData.rotate || 0; + } + + if (options.scalable) { + data.scaleX = imageData.scaleX || 1; + data.scaleY = imageData.scaleY || 1; + } + + return data; + }, + + /** + * Set the cropped area position and size with new data + * @param {Object} data - The new data. + * @returns {Cropper} this + */ + setData: function setData(data) { + var options = this.options, + imageData = this.imageData, + canvasData = this.canvasData; + var cropBoxData = {}; + + if (this.ready && !this.disabled && isPlainObject(data)) { + var transformed = false; + + if (options.rotatable) { + if (isNumber(data.rotate) && data.rotate !== imageData.rotate) { + imageData.rotate = data.rotate; + transformed = true; + } + } + + if (options.scalable) { + if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) { + imageData.scaleX = data.scaleX; + transformed = true; + } + + if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) { + imageData.scaleY = data.scaleY; + transformed = true; + } + } + + if (transformed) { + this.renderCanvas(true, true); + } + + var ratio = imageData.width / imageData.naturalWidth; + + if (isNumber(data.x)) { + cropBoxData.left = data.x * ratio + canvasData.left; + } + + if (isNumber(data.y)) { + cropBoxData.top = data.y * ratio + canvasData.top; + } + + if (isNumber(data.width)) { + cropBoxData.width = data.width * ratio; + } + + if (isNumber(data.height)) { + cropBoxData.height = data.height * ratio; + } + + this.setCropBoxData(cropBoxData); + } + + return this; + }, + + /** + * Get the container size data. + * @returns {Object} The result container data. + */ + getContainerData: function getContainerData() { + return this.ready ? assign({}, this.containerData) : {}; + }, + + /** + * Get the image position and size data. + * @returns {Object} The result image data. + */ + getImageData: function getImageData() { + return this.sized ? assign({}, this.imageData) : {}; + }, + + /** + * Get the canvas position and size data. + * @returns {Object} The result canvas data. + */ + getCanvasData: function getCanvasData() { + var canvasData = this.canvasData; + var data = {}; + + if (this.ready) { + forEach(['left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight'], function (n) { + data[n] = canvasData[n]; + }); + } + + return data; + }, + + /** + * Set the canvas position and size with new data. + * @param {Object} data - The new canvas data. + * @returns {Cropper} this + */ + setCanvasData: function setCanvasData(data) { + var canvasData = this.canvasData; + var aspectRatio = canvasData.aspectRatio; + + if (this.ready && !this.disabled && isPlainObject(data)) { + if (isNumber(data.left)) { + canvasData.left = data.left; + } + + if (isNumber(data.top)) { + canvasData.top = data.top; + } + + if (isNumber(data.width)) { + canvasData.width = data.width; + canvasData.height = data.width / aspectRatio; + } else if (isNumber(data.height)) { + canvasData.height = data.height; + canvasData.width = data.height * aspectRatio; + } + + this.renderCanvas(true); + } + + return this; + }, + + /** + * Get the crop box position and size data. + * @returns {Object} The result crop box data. + */ + getCropBoxData: function getCropBoxData() { + var cropBoxData = this.cropBoxData; + var data; + + if (this.ready && this.cropped) { + data = { + left: cropBoxData.left, + top: cropBoxData.top, + width: cropBoxData.width, + height: cropBoxData.height + }; + } + + return data || {}; + }, + + /** + * Set the crop box position and size with new data. + * @param {Object} data - The new crop box data. + * @returns {Cropper} this + */ + setCropBoxData: function setCropBoxData(data) { + var cropBoxData = this.cropBoxData; + var aspectRatio = this.options.aspectRatio; + var widthChanged; + var heightChanged; + + if (this.ready && this.cropped && !this.disabled && isPlainObject(data)) { + if (isNumber(data.left)) { + cropBoxData.left = data.left; + } + + if (isNumber(data.top)) { + cropBoxData.top = data.top; + } + + if (isNumber(data.width) && data.width !== cropBoxData.width) { + widthChanged = true; + cropBoxData.width = data.width; + } + + if (isNumber(data.height) && data.height !== cropBoxData.height) { + heightChanged = true; + cropBoxData.height = data.height; + } + + if (aspectRatio) { + if (widthChanged) { + cropBoxData.height = cropBoxData.width / aspectRatio; + } else if (heightChanged) { + cropBoxData.width = cropBoxData.height * aspectRatio; + } + } + + this.renderCropBox(); + } + + return this; + }, + + /** + * Get a canvas drawn the cropped image. + * @param {Object} [options={}] - The config options. + * @returns {HTMLCanvasElement} - The result canvas. + */ + getCroppedCanvas: function getCroppedCanvas() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + if (!this.ready || !window.HTMLCanvasElement) { + return null; + } + + var canvasData = this.canvasData; + var source = getSourceCanvas(this.image, this.imageData, canvasData, options); // Returns the source canvas if it is not cropped. + + if (!this.cropped) { + return source; + } + + var _this$getData = this.getData(), + initialX = _this$getData.x, + initialY = _this$getData.y, + initialWidth = _this$getData.width, + initialHeight = _this$getData.height; + + var ratio = source.width / Math.floor(canvasData.naturalWidth); + + if (ratio !== 1) { + initialX *= ratio; + initialY *= ratio; + initialWidth *= ratio; + initialHeight *= ratio; + } + + var aspectRatio = initialWidth / initialHeight; + var maxSizes = getAdjustedSizes({ + aspectRatio: aspectRatio, + width: options.maxWidth || Infinity, + height: options.maxHeight || Infinity + }); + var minSizes = getAdjustedSizes({ + aspectRatio: aspectRatio, + width: options.minWidth || 0, + height: options.minHeight || 0 + }, 'cover'); + + var _getAdjustedSizes = getAdjustedSizes({ + aspectRatio: aspectRatio, + width: options.width || (ratio !== 1 ? source.width : initialWidth), + height: options.height || (ratio !== 1 ? source.height : initialHeight) + }), + width = _getAdjustedSizes.width, + height = _getAdjustedSizes.height; + + width = Math.min(maxSizes.width, Math.max(minSizes.width, width)); + height = Math.min(maxSizes.height, Math.max(minSizes.height, height)); + var canvas = document.createElement('canvas'); + var context = canvas.getContext('2d'); + canvas.width = normalizeDecimalNumber(width); + canvas.height = normalizeDecimalNumber(height); + context.fillStyle = options.fillColor || 'transparent'; + context.fillRect(0, 0, width, height); + var _options$imageSmoothi = options.imageSmoothingEnabled, + imageSmoothingEnabled = _options$imageSmoothi === void 0 ? true : _options$imageSmoothi, + imageSmoothingQuality = options.imageSmoothingQuality; + context.imageSmoothingEnabled = imageSmoothingEnabled; + + if (imageSmoothingQuality) { + context.imageSmoothingQuality = imageSmoothingQuality; + } // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage + + + var sourceWidth = source.width; + var sourceHeight = source.height; // Source canvas parameters + + var srcX = initialX; + var srcY = initialY; + var srcWidth; + var srcHeight; // Destination canvas parameters + + var dstX; + var dstY; + var dstWidth; + var dstHeight; + + if (srcX <= -initialWidth || srcX > sourceWidth) { + srcX = 0; + srcWidth = 0; + dstX = 0; + dstWidth = 0; + } else if (srcX <= 0) { + dstX = -srcX; + srcX = 0; + srcWidth = Math.min(sourceWidth, initialWidth + srcX); + dstWidth = srcWidth; + } else if (srcX <= sourceWidth) { + dstX = 0; + srcWidth = Math.min(initialWidth, sourceWidth - srcX); + dstWidth = srcWidth; + } + + if (srcWidth <= 0 || srcY <= -initialHeight || srcY > sourceHeight) { + srcY = 0; + srcHeight = 0; + dstY = 0; + dstHeight = 0; + } else if (srcY <= 0) { + dstY = -srcY; + srcY = 0; + srcHeight = Math.min(sourceHeight, initialHeight + srcY); + dstHeight = srcHeight; + } else if (srcY <= sourceHeight) { + dstY = 0; + srcHeight = Math.min(initialHeight, sourceHeight - srcY); + dstHeight = srcHeight; + } + + var params = [srcX, srcY, srcWidth, srcHeight]; // Avoid "IndexSizeError" + + if (dstWidth > 0 && dstHeight > 0) { + var scale = width / initialWidth; + params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale); + } // All the numerical parameters should be integer for `drawImage` + // https://github.com/fengyuanchen/cropper/issues/476 + + + context.drawImage.apply(context, [source].concat(_toConsumableArray(params.map(function (param) { + return Math.floor(normalizeDecimalNumber(param)); + })))); + return canvas; + }, + + /** + * Change the aspect ratio of the crop box. + * @param {number} aspectRatio - The new aspect ratio. + * @returns {Cropper} this + */ + setAspectRatio: function setAspectRatio(aspectRatio) { + var options = this.options; + + if (!this.disabled && !isUndefined(aspectRatio)) { + // 0 -> NaN + options.aspectRatio = Math.max(0, aspectRatio) || NaN; + + if (this.ready) { + this.initCropBox(); + + if (this.cropped) { + this.renderCropBox(); + } + } + } + + return this; + }, + + /** + * Change the drag mode. + * @param {string} mode - The new drag mode. + * @returns {Cropper} this + */ + setDragMode: function setDragMode(mode) { + var options = this.options, + dragBox = this.dragBox, + face = this.face; + + if (this.ready && !this.disabled) { + var croppable = mode === DRAG_MODE_CROP; + var movable = options.movable && mode === DRAG_MODE_MOVE; + mode = croppable || movable ? mode : DRAG_MODE_NONE; + options.dragMode = mode; + setData(dragBox, DATA_ACTION, mode); + toggleClass(dragBox, CLASS_CROP, croppable); + toggleClass(dragBox, CLASS_MOVE, movable); + + if (!options.cropBoxMovable) { + // Sync drag mode to crop box when it is not movable + setData(face, DATA_ACTION, mode); + toggleClass(face, CLASS_CROP, croppable); + toggleClass(face, CLASS_MOVE, movable); + } + } + + return this; + } + }; + + var AnotherCropper = WINDOW.Cropper; + + var Cropper = + /*#__PURE__*/ + function () { + /** + * Create a new Cropper. + * @param {Element} element - The target element for cropping. + * @param {Object} [options={}] - The configuration options. + */ + function Cropper(element) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + _classCallCheck(this, Cropper); + + if (!element || !REGEXP_TAG_NAME.test(element.tagName)) { + throw new Error('The first argument is required and must be an or element.'); + } + + this.element = element; + this.options = assign({}, DEFAULTS, isPlainObject(options) && options); + this.cropped = false; + this.disabled = false; + this.pointers = {}; + this.ready = false; + this.reloading = false; + this.replaced = false; + this.sized = false; + this.sizing = false; + this.init(); + } + + _createClass(Cropper, [{ + key: "init", + value: function init() { + var element = this.element; + var tagName = element.tagName.toLowerCase(); + var url; + + if (element[NAMESPACE]) { + return; + } + + element[NAMESPACE] = this; + + if (tagName === 'img') { + this.isImg = true; // e.g.: "img/picture.jpg" + + url = element.getAttribute('src') || ''; + this.originalUrl = url; // Stop when it's a blank image + + if (!url) { + return; + } // e.g.: "http://example.com/img/picture.jpg" + + + url = element.src; + } else if (tagName === 'canvas' && window.HTMLCanvasElement) { + url = element.toDataURL(); + } + + this.load(url); + } + }, { + key: "load", + value: function load(url) { + var _this = this; + + if (!url) { + return; + } + + this.url = url; + this.imageData = {}; + var element = this.element, + options = this.options; + + if (!options.rotatable && !options.scalable) { + options.checkOrientation = false; + } // Only IE10+ supports Typed Arrays + + + if (!options.checkOrientation || !window.ArrayBuffer) { + this.clone(); + return; + } // Read ArrayBuffer from Data URL of JPEG images directly for better performance. + + + if (REGEXP_DATA_URL_JPEG.test(url)) { + this.read(dataURLToArrayBuffer(url)); + return; + } + + var xhr = new XMLHttpRequest(); + var clone = this.clone.bind(this); + this.reloading = true; + this.xhr = xhr; // 1. Cross origin requests are only supported for protocol schemes: + // http, https, data, chrome, chrome-extension. + // 2. Access to XMLHttpRequest from a Data URL will be blocked by CORS policy + // in some browsers as IE11 and Safari. + + xhr.onabort = clone; + xhr.onerror = clone; + xhr.ontimeout = clone; + + xhr.onprogress = function () { + if (xhr.getResponseHeader('content-type') !== MIME_TYPE_JPEG) { + xhr.abort(); + } + }; + + xhr.onload = function () { + _this.read(xhr.response); + }; + + xhr.onloadend = function () { + _this.reloading = false; + _this.xhr = null; + }; // Bust cache when there is a "crossOrigin" property to avoid browser cache error + + + if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) { + url = addTimestamp(url); + } + + xhr.open('GET', url); + xhr.responseType = 'arraybuffer'; + xhr.withCredentials = element.crossOrigin === 'use-credentials'; + xhr.send(); + } + }, { + key: "read", + value: function read(arrayBuffer) { + var options = this.options, + imageData = this.imageData; // Reset the orientation value to its default value 1 + // as some iOS browsers will render image with its orientation + + var orientation = resetAndGetOrientation(arrayBuffer); + var rotate = 0; + var scaleX = 1; + var scaleY = 1; + + if (orientation > 1) { + // Generate a new URL which has the default orientation value + this.url = arrayBufferToDataURL(arrayBuffer, MIME_TYPE_JPEG); + + var _parseOrientation = parseOrientation(orientation); + + rotate = _parseOrientation.rotate; + scaleX = _parseOrientation.scaleX; + scaleY = _parseOrientation.scaleY; + } + + if (options.rotatable) { + imageData.rotate = rotate; + } + + if (options.scalable) { + imageData.scaleX = scaleX; + imageData.scaleY = scaleY; + } + + this.clone(); + } + }, { + key: "clone", + value: function clone() { + var element = this.element, + url = this.url; + var crossOrigin; + var crossOriginUrl; + + if (this.options.checkCrossOrigin && isCrossOriginURL(url)) { + crossOrigin = element.crossOrigin; + + if (!crossOrigin) { + crossOrigin = 'anonymous'; + } // Bust cache when there is not a "crossOrigin" property (#519) + + + crossOriginUrl = addTimestamp(url); + } + + this.crossOrigin = crossOrigin; + this.crossOriginUrl = crossOriginUrl; + var image = document.createElement('img'); + + if (crossOrigin) { + image.crossOrigin = crossOrigin; + } + + image.src = crossOriginUrl || url; + this.image = image; + image.onload = this.start.bind(this); + image.onerror = this.stop.bind(this); + addClass(image, CLASS_HIDE); + element.parentNode.insertBefore(image, element.nextSibling); + } + }, { + key: "start", + value: function start() { + var _this2 = this; + + var image = this.isImg ? this.element : this.image; + image.onload = null; + image.onerror = null; + this.sizing = true; + var IS_SAFARI = WINDOW.navigator && /^(?:.(?!chrome|android))*safari/i.test(WINDOW.navigator.userAgent); + + var done = function done(naturalWidth, naturalHeight) { + assign(_this2.imageData, { + naturalWidth: naturalWidth, + naturalHeight: naturalHeight, + aspectRatio: naturalWidth / naturalHeight + }); + _this2.sizing = false; + _this2.sized = true; + + _this2.build(); + }; // Modern browsers (except Safari) + + + if (image.naturalWidth && !IS_SAFARI) { + done(image.naturalWidth, image.naturalHeight); + return; + } + + var sizingImage = document.createElement('img'); + var body = document.body || document.documentElement; + this.sizingImage = sizingImage; + + sizingImage.onload = function () { + done(sizingImage.width, sizingImage.height); + + if (!IS_SAFARI) { + body.removeChild(sizingImage); + } + }; + + sizingImage.src = image.src; // iOS Safari will convert the image automatically + // with its orientation once append it into DOM (#279) + + if (!IS_SAFARI) { + sizingImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;'; + body.appendChild(sizingImage); + } + } + }, { + key: "stop", + value: function stop() { + var image = this.image; + image.onload = null; + image.onerror = null; + image.parentNode.removeChild(image); + this.image = null; + } + }, { + key: "build", + value: function build() { + if (!this.sized || this.ready) { + return; + } + + var element = this.element, + options = this.options, + image = this.image; // Create cropper elements + + var container = element.parentNode; + var template = document.createElement('div'); + template.innerHTML = TEMPLATE; + var cropper = template.querySelector(".".concat(NAMESPACE, "-container")); + var canvas = cropper.querySelector(".".concat(NAMESPACE, "-canvas")); + var dragBox = cropper.querySelector(".".concat(NAMESPACE, "-drag-box")); + var cropBox = cropper.querySelector(".".concat(NAMESPACE, "-crop-box")); + var face = cropBox.querySelector(".".concat(NAMESPACE, "-face")); + this.container = container; + this.cropper = cropper; + this.canvas = canvas; + this.dragBox = dragBox; + this.cropBox = cropBox; + this.viewBox = cropper.querySelector(".".concat(NAMESPACE, "-view-box")); + this.face = face; + canvas.appendChild(image); // Hide the original image + + addClass(element, CLASS_HIDDEN); // Inserts the cropper after to the current image + + container.insertBefore(cropper, element.nextSibling); // Show the image if is hidden + + if (!this.isImg) { + removeClass(image, CLASS_HIDE); + } + + this.initPreview(); + this.bind(); + options.initialAspectRatio = Math.max(0, options.initialAspectRatio) || NaN; + options.aspectRatio = Math.max(0, options.aspectRatio) || NaN; + options.viewMode = Math.max(0, Math.min(3, Math.round(options.viewMode))) || 0; + addClass(cropBox, CLASS_HIDDEN); + + if (!options.guides) { + addClass(cropBox.getElementsByClassName("".concat(NAMESPACE, "-dashed")), CLASS_HIDDEN); + } + + if (!options.center) { + addClass(cropBox.getElementsByClassName("".concat(NAMESPACE, "-center")), CLASS_HIDDEN); + } + + if (options.background) { + addClass(cropper, "".concat(NAMESPACE, "-bg")); + } + + if (!options.highlight) { + addClass(face, CLASS_INVISIBLE); + } + + if (options.cropBoxMovable) { + addClass(face, CLASS_MOVE); + setData(face, DATA_ACTION, ACTION_ALL); + } + + if (!options.cropBoxResizable) { + addClass(cropBox.getElementsByClassName("".concat(NAMESPACE, "-line")), CLASS_HIDDEN); + addClass(cropBox.getElementsByClassName("".concat(NAMESPACE, "-point")), CLASS_HIDDEN); + } + + this.render(); + this.ready = true; + this.setDragMode(options.dragMode); + + if (options.autoCrop) { + this.crop(); + } + + this.setData(options.data); + + if (isFunction(options.ready)) { + addListener(element, EVENT_READY, options.ready, { + once: true + }); + } + + dispatchEvent(element, EVENT_READY); + } + }, { + key: "unbuild", + value: function unbuild() { + if (!this.ready) { + return; + } + + this.ready = false; + this.unbind(); + this.resetPreview(); + this.cropper.parentNode.removeChild(this.cropper); + removeClass(this.element, CLASS_HIDDEN); + } + }, { + key: "uncreate", + value: function uncreate() { + if (this.ready) { + this.unbuild(); + this.ready = false; + this.cropped = false; + } else if (this.sizing) { + this.sizingImage.onload = null; + this.sizing = false; + this.sized = false; + } else if (this.reloading) { + this.xhr.onabort = null; + this.xhr.abort(); + } else if (this.image) { + this.stop(); + } + } + /** + * Get the no conflict cropper class. + * @returns {Cropper} The cropper class. + */ + + }], [{ + key: "noConflict", + value: function noConflict() { + window.Cropper = AnotherCropper; + return Cropper; + } + /** + * Change the default options. + * @param {Object} options - The new default options. + */ + + }, { + key: "setDefaults", + value: function setDefaults(options) { + assign(DEFAULTS, isPlainObject(options) && options); + } + }]); + + return Cropper; + }(); + + assign(Cropper.prototype, render, preview, events, handlers, change, methods); + + return Cropper; + +})); \ No newline at end of file diff --git a/public/react/public/js/cropper/cropper.min.css b/public/react/public/js/cropper/cropper.min.css new file mode 100644 index 000000000..99a025f38 --- /dev/null +++ b/public/react/public/js/cropper/cropper.min.css @@ -0,0 +1,9 @@ +/*! + * Cropper.js v1.5.2 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2019-06-30T06:01:02.389Z + */.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.75);overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC")}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed} diff --git a/public/react/public/js/cropper/html2canvas.min.js b/public/react/public/js/cropper/html2canvas.min.js new file mode 100644 index 000000000..3abd6f805 --- /dev/null +++ b/public/react/public/js/cropper/html2canvas.min.js @@ -0,0 +1,20 @@ +/*! + * html2canvas 1.0.0-rc.3 + * Copyright (c) 2019 Niklas von Hertzen + * Released under MIT License + */ +!function(A,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(A=A||self).html2canvas=e()}(this,function(){"use strict"; +/*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */var r=function(A,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)e.hasOwnProperty(t)&&(A[t]=e[t])})(A,e)};function A(A,e){function t(){this.constructor=A}r(A,e),A.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}var K=function(){return(K=Object.assign||function(A){for(var e,t=1,r=arguments.length;ts[0]&&e[1]>10),s%1024+56320)),(B+1===t||16384>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},i);function i(A,e,t,r,B,n){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=B,this.data=n}function C(A,e,t,r){var B=r[t];if(Array.isArray(A)?-1!==A.indexOf(B):A===B)for(var n=t;n<=r.length;){if((i=r[++n])===e)return!0;if(i!==H)break}if(B===H)for(n=t;0>4,c[i++]=(15&r)<<4|B>>2,c[i++]=(3&B)<<6|63&n;return a}("KwAAAAAAAAAACA4AIDoAAPAfAAACAAAAAAAIABAAGABAAEgAUABYAF4AZgBeAGYAYABoAHAAeABeAGYAfACEAIAAiACQAJgAoACoAK0AtQC9AMUAXgBmAF4AZgBeAGYAzQDVAF4AZgDRANkA3gDmAOwA9AD8AAQBDAEUARoBIgGAAIgAJwEvATcBPwFFAU0BTAFUAVwBZAFsAXMBewGDATAAiwGTAZsBogGkAawBtAG8AcIBygHSAdoB4AHoAfAB+AH+AQYCDgIWAv4BHgImAi4CNgI+AkUCTQJTAlsCYwJrAnECeQKBAk0CiQKRApkCoQKoArACuALAAsQCzAIwANQC3ALkAjAA7AL0AvwCAQMJAxADGAMwACADJgMuAzYDPgOAAEYDSgNSA1IDUgNaA1oDYANiA2IDgACAAGoDgAByA3YDfgOAAIQDgACKA5IDmgOAAIAAogOqA4AAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAK8DtwOAAIAAvwPHA88D1wPfAyAD5wPsA/QD/AOAAIAABAQMBBIEgAAWBB4EJgQuBDMEIAM7BEEEXgBJBCADUQRZBGEEaQQwADAAcQQ+AXkEgQSJBJEEgACYBIAAoASoBK8EtwQwAL8ExQSAAIAAgACAAIAAgACgAM0EXgBeAF4AXgBeAF4AXgBeANUEXgDZBOEEXgDpBPEE+QQBBQkFEQUZBSEFKQUxBTUFPQVFBUwFVAVcBV4AYwVeAGsFcwV7BYMFiwWSBV4AmgWgBacFXgBeAF4AXgBeAKsFXgCyBbEFugW7BcIFwgXIBcIFwgXQBdQF3AXkBesF8wX7BQMGCwYTBhsGIwYrBjMGOwZeAD8GRwZNBl4AVAZbBl4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAGMGXgBqBnEGXgBeAF4AXgBeAF4AXgBeAF4AXgB5BoAG4wSGBo4GkwaAAIADHgR5AF4AXgBeAJsGgABGA4AAowarBrMGswagALsGwwbLBjAA0wbaBtoG3QbaBtoG2gbaBtoG2gblBusG8wb7BgMHCwcTBxsHCwcjBysHMAc1BzUHOgdCB9oGSgdSB1oHYAfaBloHaAfaBlIH2gbaBtoG2gbaBtoG2gbaBjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHbQdeAF4ANQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQd1B30HNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B4MH2gaKB68EgACAAIAAgACAAIAAgACAAI8HlwdeAJ8HpweAAIAArwe3B14AXgC/B8UHygcwANAH2AfgB4AA6AfwBz4B+AcACFwBCAgPCBcIogEYAR8IJwiAAC8INwg/CCADRwhPCFcIXwhnCEoDGgSAAIAAgABvCHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIhAiLCI4IMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAANQc1BzUHNQc1BzUHNQc1BzUHNQc1B54INQc1B6II2gaqCLIIugiAAIAAvgjGCIAAgACAAIAAgACAAIAAgACAAIAAywiHAYAA0wiAANkI3QjlCO0I9Aj8CIAAgACAAAIJCgkSCRoJIgknCTYHLwk3CZYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiAAIAAAAFAAXgBeAGAAcABeAHwAQACQAKAArQC9AJ4AXgBeAE0A3gBRAN4A7AD8AMwBGgEAAKcBNwEFAUwBXAF4QkhCmEKnArcCgAHHAsABz4LAAcABwAHAAd+C6ABoAG+C/4LAAcABwAHAAc+DF4MAAcAB54M3gweDV4Nng3eDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEeDqABVg6WDqABoQ6gAaABoAHXDvcONw/3DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DncPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB7cPPwlGCU4JMACAAIAAgABWCV4JYQmAAGkJcAl4CXwJgAkwADAAMAAwAIgJgACLCZMJgACZCZ8JowmrCYAAswkwAF4AXgB8AIAAuwkABMMJyQmAAM4JgADVCTAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAqwYWBNkIMAAwADAAMADdCeAJ6AnuCR4E9gkwAP4JBQoNCjAAMACAABUK0wiAAB0KJAosCjQKgAAwADwKQwqAAEsKvQmdCVMKWwowADAAgACAALcEMACAAGMKgABrCjAAMAAwADAAMAAwADAAMAAwADAAMAAeBDAAMAAwADAAMAAwADAAMAAwADAAMAAwAIkEPQFzCnoKiQSCCooKkAqJBJgKoAqkCokEGAGsCrQKvArBCjAAMADJCtEKFQHZCuEK/gHpCvEKMAAwADAAMACAAIwE+QowAIAAPwEBCzAAMAAwADAAMACAAAkLEQswAIAAPwEZCyELgAAOCCkLMAAxCzkLMAAwADAAMAAwADAAXgBeAEELMAAwADAAMAAwADAAMAAwAEkLTQtVC4AAXAtkC4AAiQkwADAAMAAwADAAMAAwADAAbAtxC3kLgAuFC4sLMAAwAJMLlwufCzAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAApwswADAAMACAAIAAgACvC4AAgACAAIAAgACAALcLMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvwuAAMcLgACAAIAAgACAAIAAyguAAIAAgACAAIAA0QswADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAANkLgACAAIAA4AswADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACJCR4E6AswADAAhwHwC4AA+AsADAgMEAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMACAAIAAGAwdDCUMMAAwAC0MNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQw1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHPQwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADUHNQc1BzUHNQc1BzUHNQc2BzAAMAA5DDUHNQc1BzUHNQc1BzUHNQc1BzUHNQdFDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAATQxSDFoMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAF4AXgBeAF4AXgBeAF4AYgxeAGoMXgBxDHkMfwxeAIUMXgBeAI0MMAAwADAAMAAwAF4AXgCVDJ0MMAAwADAAMABeAF4ApQxeAKsMswy7DF4Awgy9DMoMXgBeAF4AXgBeAF4AXgBeAF4AXgDRDNkMeQBqCeAM3Ax8AOYM7Az0DPgMXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgCgAAANoAAHDQ4NFg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAeDSYNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAC4NMABeAF4ANg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAD4NRg1ODVYNXg1mDTAAbQ0wADAAMAAwADAAMAAwADAA2gbaBtoG2gbaBtoG2gbaBnUNeg3CBYANwgWFDdoGjA3aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gaUDZwNpA2oDdoG2gawDbcNvw3HDdoG2gbPDdYN3A3fDeYN2gbsDfMN2gbaBvoN/g3aBgYODg7aBl4AXgBeABYOXgBeACUG2gYeDl4AJA5eACwO2w3aBtoGMQ45DtoG2gbaBtoGQQ7aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B1EO2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQdZDjUHNQc1BzUHNQc1B2EONQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHaA41BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B3AO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B2EO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBkkOeA6gAKAAoAAwADAAMAAwAKAAoACgAKAAoACgAKAAgA4wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAD//wQABAAEAAQABAAEAAQABAAEAA0AAwABAAEAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAKABMAFwAeABsAGgAeABcAFgASAB4AGwAYAA8AGAAcAEsASwBLAEsASwBLAEsASwBLAEsAGAAYAB4AHgAeABMAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAFgAbABIAHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYADQARAB4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkAFgAaABsAGwAbAB4AHQAdAB4ATwAXAB4ADQAeAB4AGgAbAE8ATwAOAFAAHQAdAB0ATwBPABcATwBPAE8AFgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwArAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAAQABAANAA0ASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAUAArACsAKwArACsAKwArACsABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAGgAaAFAAUABQAFAAUABMAB4AGwBQAB4AKwArACsABAAEAAQAKwBQAFAAUABQAFAAUAArACsAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUAArAFAAUAArACsABAArAAQABAAEAAQABAArACsAKwArAAQABAArACsABAAEAAQAKwArACsABAArACsAKwArACsAKwArAFAAUABQAFAAKwBQACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwAEAAQAUABQAFAABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQAKwArAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeABsAKwArACsAKwArACsAKwBQAAQABAAEAAQABAAEACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAKwArACsAKwArACsAKwArAAQABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwAEAFAAKwBQAFAAUABQAFAAUAArACsAKwBQAFAAUAArAFAAUABQAFAAKwArACsAUABQACsAUAArAFAAUAArACsAKwBQAFAAKwArACsAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQAKwArACsABAAEAAQAKwAEAAQABAAEACsAKwBQACsAKwArACsAKwArAAQAKwArACsAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAB4AHgAeAB4AHgAeABsAHgArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArAFAAUABQACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAB4AUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArACsAKwArACsAKwArAFAAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwArAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAKwBcAFwAKwBcACsAKwBcACsAKwArACsAKwArAFwAXABcAFwAKwBcAFwAXABcAFwAXABcACsAXABcAFwAKwBcACsAXAArACsAXABcACsAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgArACoAKgBcACsAKwBcAFwAXABcAFwAKwBcACsAKgAqACoAKgAqACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAFwAXABcAFwAUAAOAA4ADgAOAB4ADgAOAAkADgAOAA0ACQATABMAEwATABMACQAeABMAHgAeAB4ABAAEAB4AHgAeAB4AHgAeAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUAANAAQAHgAEAB4ABAAWABEAFgARAAQABABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAAQABAAEAAQABAANAAQABABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsADQANAB4AHgAeAB4AHgAeAAQAHgAeAB4AHgAeAB4AKwAeAB4ADgAOAA0ADgAeAB4AHgAeAB4ACQAJACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgAeAB4AHgBcAFwAXABcAFwAXAAqACoAKgAqAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAKgAqACoAKgAqACoAKgBcAFwAXAAqACoAKgAqAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAXAAqAEsASwBLAEsASwBLAEsASwBLAEsAKgAqACoAKgAqACoAUABQAFAAUABQAFAAKwBQACsAKwArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQACsAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwAEAAQABAAeAA0AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAEQArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAADQANAA0AUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAA0ADQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoADQANABUAXAANAB4ADQAbAFwAKgArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAB4AHgATABMADQANAA4AHgATABMAHgAEAAQABAAJACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAUABQAFAAUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwAeACsAKwArABMAEwBLAEsASwBLAEsASwBLAEsASwBLAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwBcAFwAXABcAFwAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcACsAKwArACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwAeAB4AXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsABABLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKgAqACoAKgAqACoAKgBcACoAKgAqACoAKgAqACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAUABQAFAAUABQAFAAUAArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4ADQANAA0ADQAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAHgAeAB4AHgBQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwANAA0ADQANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwBQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsABAAEAAQAHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAABABQAFAAUABQAAQABAAEAFAAUAAEAAQABAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAKwBQACsAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAKwArAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAKwAeAB4AHgAeAB4AHgAeAA4AHgArAA0ADQANAA0ADQANAA0ACQANAA0ADQAIAAQACwAEAAQADQAJAA0ADQAMAB0AHQAeABcAFwAWABcAFwAXABYAFwAdAB0AHgAeABQAFAAUAA0AAQABAAQABAAEAAQABAAJABoAGgAaABoAGgAaABoAGgAeABcAFwAdABUAFQAeAB4AHgAeAB4AHgAYABYAEQAVABUAFQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgANAB4ADQANAA0ADQAeAA0ADQANAAcAHgAeAB4AHgArAAQABAAEAAQABAAEAAQABAAEAAQAUABQACsAKwBPAFAAUABQAFAAUAAeAB4AHgAWABEATwBQAE8ATwBPAE8AUABQAFAAUABQAB4AHgAeABYAEQArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGgAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgBQABoAHgAdAB4AUAAeABoAHgAeAB4AHgAeAB4AHgAeAB4ATwAeAFAAGwAeAB4AUABQAFAAUABQAB4AHgAeAB0AHQAeAFAAHgBQAB4AUAAeAFAATwBQAFAAHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AUABQAFAAUABPAE8AUABQAFAAUABQAE8AUABQAE8AUABPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAE8ATwBPAE8ATwBPAE8ATwBPAE8AUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAATwAeAB4AKwArACsAKwAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB0AHQAeAB4AHgAdAB0AHgAeAB0AHgAeAB4AHQAeAB0AGwAbAB4AHQAeAB4AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB0AHgAdAB4AHQAdAB0AHQAdAB0AHgAdAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAdAB0AHQAdAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAlACUAHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB0AHQAeAB4AHgAeAB0AHQAdAB4AHgAdAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB0AHQAeAB4AHQAeAB4AHgAeAB0AHQAeAB4AHgAeACUAJQAdAB0AJQAeACUAJQAlACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHQAdAB0AHgAdACUAHQAdAB4AHQAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHQAdAB0AHQAlAB4AJQAlACUAHQAlACUAHQAdAB0AJQAlAB0AHQAlAB0AHQAlACUAJQAeAB0AHgAeAB4AHgAdAB0AJQAdAB0AHQAdAB0AHQAlACUAJQAlACUAHQAlACUAIAAlAB0AHQAlACUAJQAlACUAJQAlACUAHgAeAB4AJQAlACAAIAAgACAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeABcAFwAXABcAFwAXAB4AEwATACUAHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACUAJQBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwArACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAE8ATwBPAE8ATwBPAE8ATwAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeACsAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUAArACsAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQBQAFAAUABQACsAKwArACsAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAABAAEAAQAKwAEAAQAKwArACsAKwArAAQABAAEAAQAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsABAAEAAQAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsADQANAA0ADQANAA0ADQANAB4AKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAUABQAFAAUABQAA0ADQANAA0ADQANABQAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwANAA0ADQANAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAeAAQABAAEAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLACsADQArAB4AKwArAAQABAAEAAQAUABQAB4AUAArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwAEAAQABAAEAAQABAAEAAQABAAOAA0ADQATABMAHgAeAB4ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AUABQAFAAUAAEAAQAKwArAAQADQANAB4AUAArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXABcAA0ADQANACoASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUAArACsAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANACsADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEcARwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwAeAAQABAANAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAEAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUAArACsAUAArACsAUABQACsAKwBQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAeAB4ADQANAA0ADQAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAArAAQABAArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAEAAQABAAEAAQABAAEACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAFgAWAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAKwBQACsAKwArACsAKwArAFAAKwArACsAKwBQACsAUAArAFAAKwBQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQACsAUAArAFAAKwBQACsAUABQACsAUAArACsAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAUABQAFAAUAArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUAArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAlACUAJQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeACUAJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeACUAJQAlACUAJQAeACUAJQAlACUAJQAgACAAIAAlACUAIAAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIQAhACEAIQAhACUAJQAgACAAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAIAAlACUAJQAlACAAJQAgACAAIAAgACAAIAAgACAAIAAlACUAJQAgACUAJQAlACUAIAAgACAAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeACUAHgAlAB4AJQAlACUAJQAlACAAJQAlACUAJQAeACUAHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAIAAgACAAIAAgAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFwAXABcAFQAVABUAHgAeAB4AHgAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAlACAAIAAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsA"),U=Array.isArray(a)?function(A){for(var e=A.length,t=[],r=0;r=this._value.length?-1:this._value[A]},yA.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();aA(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;63===e&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t){var r=parseInt(l.apply(void 0,A.map(function(A){return 63===A?48:A})),16),B=parseInt(l.apply(void 0,A.map(function(A){return 63===A?70:A})),16);return{type:sA.UNICODE_RANGE_TOKEN,start:r,end:B}}var n=parseInt(l.apply(void 0,A),16);if(45===this.peekCodePoint(0)&&aA(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var s=[];aA(e)&&s.length<6;)s.push(e),e=this.consumeCodePoint();return B=parseInt(l.apply(void 0,s),16),{type:sA.UNICODE_RANGE_TOKEN,start:n,end:B}}return{type:sA.UNICODE_RANGE_TOKEN,start:n,end:n}},yA.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:sA.FUNCTION_TOKEN,value:A}):{type:sA.IDENT_TOKEN,value:A}},yA.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:sA.URL_TOKEN,value:""};var e,t=this.peekCodePoint(0);if(39===t||34===t){var r=this.consumeStringToken(this.consumeCodePoint());return r.type===sA.STRING_TOKEN&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:sA.URL_TOKEN,value:r.value}):(this.consumeBadUrlRemnants(),IA)}for(;;){var B=this.consumeCodePoint();if(-1===B||41===B)return{type:sA.URL_TOKEN,value:l.apply(void 0,A)};if(cA(B))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:sA.URL_TOKEN,value:l.apply(void 0,A)}):(this.consumeBadUrlRemnants(),IA);if(34===B||39===B||40===B||0<=(e=B)&&e<=8||11===e||14<=e&&e<=31||127===e)return this.consumeBadUrlRemnants(),IA;if(92===B){if(!uA(B,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),IA;A.push(this.consumeEscapedCodePoint())}else A.push(B)}},yA.prototype.consumeWhiteSpace=function(){for(;cA(this.peekCodePoint(0));)this.consumeCodePoint()},yA.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(41===A||-1===A)return;uA(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},yA.prototype.consumeStringSlice=function(A){for(var e="";0>8,r=255&A>>16,B=255&A>>24;return e<255?"rgba("+B+","+r+","+t+","+e/255+")":"rgb("+B+","+r+","+t+")"}function re(A,e){if(A.type===sA.NUMBER_TOKEN)return A.number;if(A.type!==sA.PERCENTAGE_TOKEN)return 0;var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}function Be(A){var e=A.filter(kA);if(3===e.length){var t=e.map(re),r=t[0],B=t[1],n=t[2];return ue(r,B,n,1)}if(4!==e.length)return 0;var s=e.map(re),o=(r=s[0],B=s[1],n=s[2],s[3]);return ue(r,B,n,o)}var ne=function(A,e){return e===sA.LEFT_CURLY_BRACKET_TOKEN&&A.type===sA.RIGHT_CURLY_BRACKET_TOKEN||(e===sA.LEFT_SQUARE_BRACKET_TOKEN&&A.type===sA.RIGHT_SQUARE_BRACKET_TOKEN||e===sA.LEFT_PARENTHESIS_TOKEN&&A.type===sA.RIGHT_PARENTHESIS_TOKEN)},se={type:sA.NUMBER_TOKEN,number:0,flags:4},oe={type:sA.PERCENTAGE_TOKEN,number:50,flags:4},ie={type:sA.PERCENTAGE_TOKEN,number:100,flags:4},ae=function(A,e){if(A.type===sA.PERCENTAGE_TOKEN)return A.number/100*e;if(xA(A))switch(A.unit){case"rem":case"em":return 16*A.number;case"px":default:return A.number}return A.number},ce=function(A){if(A.type===sA.DIMENSION_TOKEN)switch(A.unit){case"deg":return Math.PI*A.number/180;case"grad":return Math.PI/200*A.number;case"rad":return A.number;case"turn":return 2*Math.PI*A.number}throw new Error("Unsupported angle type")},Qe=function(A){return Math.PI*A/180},we=function(A){if(A.type===sA.FUNCTION){var e=he[A.name];if(void 0===e)throw new Error('Attempting to parse an unsupported color function "'+A.name+'"');return e(A.values)}if(A.type===sA.HASH_TOKEN){if(3===A.value.length){var t=A.value.substring(0,1),r=A.value.substring(1,2),B=A.value.substring(2,3);return ue(parseInt(t+t,16),parseInt(r+r,16),parseInt(B+B,16),1)}if(4===A.value.length){t=A.value.substring(0,1),r=A.value.substring(1,2),B=A.value.substring(2,3);var n=A.value.substring(3,4);return ue(parseInt(t+t,16),parseInt(r+r,16),parseInt(B+B,16),parseInt(n+n,16)/255)}if(6===A.value.length){t=A.value.substring(0,2),r=A.value.substring(2,4),B=A.value.substring(4,6);return ue(parseInt(t,16),parseInt(r,16),parseInt(B,16),1)}if(8===A.value.length){t=A.value.substring(0,2),r=A.value.substring(2,4),B=A.value.substring(4,6),n=A.value.substring(6,8);return ue(parseInt(t,16),parseInt(r,16),parseInt(B,16),parseInt(n,16)/255)}}if(A.type===sA.IDENT_TOKEN){var s=He[A.value.toUpperCase()];if(void 0!==s)return s}return He.TRANSPARENT},ue=function(A,e,t,r){return(A<<24|e<<16|t<<8|Math.round(255*r)<<0)>>>0};function Ue(A,e,t){return t<0&&(t+=1),1<=t&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}function le(A){var e=A.filter(kA),t=e[0],r=e[1],B=e[2],n=e[3],s=(t.type===sA.NUMBER_TOKEN?Qe(t.number):ce(t))/(2*Math.PI),o=qA(r)?r.number/100:0,i=qA(B)?B.number/100:0,a=void 0!==n&&qA(n)?ae(n,1):1;if(0==o)return ue(255*i,255*i,255*i,1);var c=i<=.5?i*(1+o):i+o-i*o,Q=2*i-c,w=Ue(Q,c,s+1/3),u=Ue(Q,c,s),U=Ue(Q,c,s-1/3);return ue(255*w,255*u,255*U,a)}var Ce,ge,Ee,Fe,he={hsl:le,hsla:le,rgb:Be,rgba:Be},He={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199};(ge=Ce||(Ce={}))[ge.VALUE=0]="VALUE",ge[ge.LIST=1]="LIST",ge[ge.IDENT_VALUE=2]="IDENT_VALUE",ge[ge.TYPE_VALUE=3]="TYPE_VALUE",ge[ge.TOKEN_VALUE=4]="TOKEN_VALUE",(Fe=Ee||(Ee={}))[Fe.BORDER_BOX=0]="BORDER_BOX",Fe[Fe.PADDING_BOX=1]="PADDING_BOX";function de(A){var e=we(A[0]),t=A[1];return t&&qA(t)?{color:e,stop:t}:{color:e,stop:null}}function fe(A,t){var e=A[0],r=A[A.length-1];null===e.stop&&(e.stop=se),null===r.stop&&(r.stop=ie);for(var B=[],n=0,s=0;sA.optimumDistance)?{optimumCorner:e,optimumDistance:B}:A},{optimumDistance:o?1/0:-1/0,optimumCorner:null}).optimumCorner}function Ie(A){var B=Qe(180),n=[];return WA(A).forEach(function(A,e){if(0===e){var t=A[0];if(t.type===sA.IDENT_TOKEN&&-1!==["top","left","right","bottom"].indexOf(t.value))return void(B=Ae(A));if($A(t))return void(B=(ce(t)+Qe(270))%Qe(360))}var r=de(A);n.push(r)}),{angle:B,stops:n,type:xe.LINEAR_GRADIENT}}function Te(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]}var me={name:"background-clip",initialValue:"border-box",prefix:!(Fe[Fe.CONTENT_BOX=2]="CONTENT_BOX"),type:Ce.LIST,parse:function(A){return A.map(function(A){if(zA(A))switch(A.value){case"padding-box":return Ee.PADDING_BOX;case"content-box":return Ee.CONTENT_BOX}return Ee.BORDER_BOX})}},Re={name:"background-color",initialValue:"transparent",prefix:!1,type:Ce.TYPE_VALUE,format:"color"},Le=function(A,e,t,r,B){var n="http://www.w3.org/2000/svg",s=document.createElementNS(n,"svg"),o=document.createElementNS(n,"foreignObject");return s.setAttributeNS(null,"width",A.toString()),s.setAttributeNS(null,"height",e.toString()),o.setAttributeNS(null,"width","100%"),o.setAttributeNS(null,"height","100%"),o.setAttributeNS(null,"x",t.toString()),o.setAttributeNS(null,"y",r.toString()),o.setAttributeNS(null,"externalResourcesRequired","true"),s.appendChild(o),o.appendChild(B),s},Oe=function(r){return new Promise(function(A,e){var t=new Image;t.onload=function(){return A(t)},t.onerror=e,t.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(r))})},ve={get SUPPORT_RANGE_BOUNDS(){var A=function(A){if(A.createRange){var e=A.createRange();if(e.getBoundingClientRect){var t=A.createElement("boundtest");t.style.height="123px",t.style.display="block",A.body.appendChild(t),e.selectNode(t);var r=e.getBoundingClientRect(),B=Math.round(r.height);if(A.body.removeChild(t),123===B)return!0}}return!1}(document);return Object.defineProperty(ve,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),r=t.getContext("2d");if(!r)return!1;e.src="data:image/svg+xml,";try{r.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(ve,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?function(r){var A=r.createElement("canvas"),B=100;A.width=B,A.height=B;var n=A.getContext("2d");if(!n)return Promise.reject(!1);n.fillStyle="rgb(0, 255, 0)",n.fillRect(0,0,B,B);var e=new Image,s=A.toDataURL();e.src=s;var t=Le(B,B,0,0,e);return n.fillStyle="red",n.fillRect(0,0,B,B),Oe(t).then(function(A){n.drawImage(A,0,0);var e=n.getImageData(0,0,B,B).data;n.fillStyle="red",n.fillRect(0,0,B,B);var t=r.createElement("div");return t.style.backgroundImage="url("+s+")",t.style.height="100px",Te(e)?Oe(Le(B,B,0,0,t)):Promise.reject(!1)}).then(function(A){return n.drawImage(A,0,0),Te(n.getImageData(0,0,B,B).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(ve,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(ve,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(ve,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(ve,"SUPPORT_CORS_XHR",{value:A}),A}},De=(Se.prototype.debug=function(){for(var A=[],e=0;eA.height?new I(A.left+(A.width-A.height)/2,A.top,A.height,A.height):A.width"),Wn(this.referenceElement.ownerDocument,B,n),o.replaceChild(o.adoptNode(this.documentElement),o.documentElement),o.close(),i},xn.prototype.createElementClone=function(A){return Fn(A)?this.createCanvasClone(A):rn(A)?this.createStyleClone(A):A.cloneNode(!1)},xn.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce(function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A},""),r=A.cloneNode(!1);return r.textContent=t,r}}catch(A){if(De.getInstance(this.options.id).error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},xn.prototype.createCanvasClone=function(A){if(this.options.inlineImages&&A.ownerDocument){var e=A.ownerDocument.createElement("img");try{return e.src=A.toDataURL(),e}catch(A){De.getInstance(this.options.id).info("Unable to clone canvas contents, canvas is tainted")}}var t=A.cloneNode(!1);try{t.width=A.width,t.height=A.height;var r=A.getContext("2d"),B=t.getContext("2d");return B&&(r?B.putImageData(r.getImageData(0,0,A.width,A.height),0,0):B.drawImage(A,0,0)),t}catch(A){}return t},xn.prototype.cloneNode=function(A){if(Qn(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var e=A.ownerDocument.defaultView;if(un(A)&&e){var t=this.createElementClone(A),r=e.getComputedStyle(A),B=e.getComputedStyle(A,":before"),n=e.getComputedStyle(A,":after");this.referenceElement===A&&(this.clonedReferenceElement=t),En(t)&&$n(t);for(var s=this.counters.parse(new wB(r)),o=this.resolvePseudoContent(A,t,B,Ln.BEFORE),i=A.firstChild;i;i=i.nextSibling)wn(i)&&("SCRIPT"===i.tagName||i.hasAttribute(_n)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(i))||this.options.copyStyles&&wn(i)&&rn(i)||t.appendChild(this.cloneNode(i));o&&t.insertBefore(o,t.firstChild);var a=this.resolvePseudoContent(A,t,n,Ln.AFTER);return a&&t.appendChild(a),this.counters.pop(s),r&&this.options.copyStyles&&!Hn(A)&&Gn(r,t),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([t,A.scrollLeft,A.scrollTop]),(dn(A)||fn(A))&&(dn(t)||fn(t))&&(t.value=A.value),t}return A.cloneNode(!1)},xn.prototype.resolvePseudoContent=function(U,A,e,t){var l=this;if(e){var r=e.content,C=A.ownerDocument;if(C&&r&&"none"!==r&&"-moz-alt-content"!==r&&"none"!==e.display){this.counters.parse(new wB(e));var g=new QB(e),E=C.createElement("html2canvaspseudoelement");return Gn(e,E),g.content.forEach(function(A){if(A.type===sA.STRING_TOKEN)E.appendChild(C.createTextNode(A.value));else if(A.type===sA.URL_TOKEN){var e=C.createElement("img");e.src=A.value,e.style.opacity="1",E.appendChild(e)}else if(A.type===sA.FUNCTION){if("attr"===A.name){var t=A.values.filter(zA);t.length&&E.appendChild(C.createTextNode(U.getAttribute(t[0].value)||""))}else if("counter"===A.name){var r=A.values.filter(kA),B=r[0],n=r[1];if(B&&zA(B)){var s=l.counters.getCounterValue(B.value),o=n&&zA(n)?ir.parse(n.value):tr.DECIMAL;E.appendChild(C.createTextNode(yn(s,o,!1)))}}else if("counters"===A.name){var i=A.values.filter(kA),a=(B=i[0],i[1]);if(n=i[2],B&&zA(B)){var c=l.counters.getCounterValues(B.value),Q=n&&zA(n)?ir.parse(n.value):tr.DECIMAL,w=a&&a.type===sA.STRING_TOKEN?a.value:"",u=c.map(function(A){return yn(A,Q,!1)}).join(w);E.appendChild(C.createTextNode(u))}}}else if(A.type===sA.IDENT_TOKEN)switch(A.value){case"open-quote":E.appendChild(C.createTextNode(eB(g.quotes,l.quoteDepth++,!0)));break;case"close-quote":E.appendChild(C.createTextNode(eB(g.quotes,--l.quoteDepth,!1)))}}),E.className=qn+" "+Zn,A.className+=t===Ln.BEFORE?" "+qn:" "+Zn,E}}},xn);function xn(A,e){if(this.options=e,this.scrolledElements=[],this.referenceElement=A,this.counters=new pn,this.quoteDepth=0,!A.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(A.ownerDocument.documentElement)}(On=Ln||(Ln={}))[On.BEFORE=0]="BEFORE",On[On.AFTER=1]="AFTER";var Vn,zn,Xn=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(_n,"true"),A.body.appendChild(t),t},Jn=function(B){return new Promise(function(e,A){var t=B.contentWindow;if(!t)return A("No window assigned for iframe");var r=t.document;t.onload=B.onload=r.onreadystatechange=function(){t.onload=B.onload=r.onreadystatechange=null;var A=setInterval(function(){0"),e},Wn=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},Yn=function(A){var e=A[0],t=A[1],r=A[2];e.scrollLeft=t,e.scrollTop=r},qn="___html2canvas___pseudoelement_before",Zn="___html2canvas___pseudoelement_after",jn='{\n content: "" !important;\n display: none !important;\n}',$n=function(A){As(A,"."+qn+":before"+jn+"\n ."+Zn+":after"+jn)},As=function(A,e){var t=A.ownerDocument;if(t){var r=t.createElement("style");r.textContent=e,A.appendChild(r)}};(zn=Vn||(Vn={}))[zn.VECTOR=0]="VECTOR",zn[zn.BEZIER_CURVE=1]="BEZIER_CURVE";function es(A,t){return A.length===t.length&&A.some(function(A,e){return A===t[e]})}var ts=(rs.prototype.add=function(A,e){return new rs(this.x+A,this.y+e)},rs);function rs(A,e){this.type=Vn.VECTOR,this.x=A,this.y=e}function Bs(A,e,t){return new ts(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)}var ns=(ss.prototype.subdivide=function(A,e){var t=Bs(this.start,this.startControl,A),r=Bs(this.startControl,this.endControl,A),B=Bs(this.endControl,this.end,A),n=Bs(t,r,A),s=Bs(r,B,A),o=Bs(n,s,A);return e?new ss(this.start,t,n,o):new ss(o,s,B,this.end)},ss.prototype.add=function(A,e){return new ss(this.start.add(A,e),this.startControl.add(A,e),this.endControl.add(A,e),this.end.add(A,e))},ss.prototype.reverse=function(){return new ss(this.end,this.endControl,this.startControl,this.start)},ss);function ss(A,e,t,r){this.type=Vn.BEZIER_CURVE,this.start=A,this.startControl=e,this.endControl=t,this.end=r}function os(A){return A.type===Vn.BEZIER_CURVE}var is,as,cs=function(A){var e=A.styles,t=A.bounds,r=jA(e.borderTopLeftRadius,t.width,t.height),B=r[0],n=r[1],s=jA(e.borderTopRightRadius,t.width,t.height),o=s[0],i=s[1],a=jA(e.borderBottomRightRadius,t.width,t.height),c=a[0],Q=a[1],w=jA(e.borderBottomLeftRadius,t.width,t.height),u=w[0],U=w[1],l=[];l.push((B+o)/t.width),l.push((u+c)/t.width),l.push((n+U)/t.height),l.push((i+Q)/t.height);var C=Math.max.apply(Math,l);1t.width+p?0:o-p,i-H,is.TOP_RIGHT):new ts(t.left+t.width-d,t.top+H),this.bottomRightPaddingBox=0t.width+p+T?0:o-p+T,i-(H+N),is.TOP_RIGHT):new ts(t.left+t.width-(d+K),t.top+H+N),this.bottomRightContentBox=0A.element.container.styles.zIndex.order&&(i=e,!0)}),n.negativeZIndex.splice(i,0,s)}else if(0A.element.container.styles.zIndex.order&&(a=e+1,!0)}),n.positiveZIndex.splice(a,0,s)}else n.zeroOrAutoZIndexOrTransformedOrOpacity.push(s)}else A.styles.isFloating()?n.nonPositionedFloats.push(s):n.nonPositionedInlineLevel.push(s);ps(r,s,e?s:w,B)}else A.styles.isInlineLevel()?Q.inlineLevel.push(r):Q.nonInlineLevel.push(r),ps(r,Q,w,B);AB(A.flags,8)&&Ns(A,B)})},Ns=function(A,e){for(var t=A instanceof bB?A.start:1,r=A instanceof bB&&A.reversed,B=0;B') + .attr('href', `${_url_origin}/react/public/js/cropper/cropper.min.css`)); + + $.getScript( + `${_url_origin}/react/public/js/cropper/cropper.js`, + (data, textStatus, jqxhr) => { + + }); + $.getScript( + `${_url_origin}/react/public/js/cropper/html2canvas.min.js`, + (data, textStatus, jqxhr) => { + + }); +} + +function save_avatar(){ + + // if($(img_lg).html().trim() == ""){ + // $("#avatar-name").html("请先选择图片上传").css("color", 'red'); + // } else { + // $("#avatar-name").html("").css("color", '#333'); + const previewId = this.props.previewId + var img_lg = document.getElementById(previewId || 'img-preview'); + // 截图小的显示框内的内容 + html2canvas(img_lg).then(function(canvas) { + // for test + // document.getElementById('canvasWrap').appendChild(canvas); + + var dataUrl = canvas.toDataURL("image/jpeg"); + console.log(dataUrl) + // TODO upload base64 image data to server + }); + return + + // 老版接口: + // html2canvas(img_lg, { + // allowTaint: true, + // taintTest: false, + // onrendered: function(canvas) { + // canvas.id = "mycanvas"; + // //生成base64图片数据 + // var dataUrl = canvas.toDataURL("image/jpeg"); + // console.log(dataUrl) + + // var newImg = document.getElementById("showImg"); + // newImg.src = dataUrl; + // return; + + // imagesAjax(dataUrl); + // $(".avatar-save").attr("disabled","true"); + // } + // }); + // } +} + +class Cropper extends Component { + state = { + }; + + handleChange = (info) => { + } + + componentDidMount() { + setTimeout(() => { + const image = document.getElementById('image'); + const cropper = new window.Cropper(image, { + aspectRatio: 1, + crop(event) { + // console.log(event.detail.x); + // console.log(event.detail.y); + // console.log(event.detail.width); + // console.log(event.detail.height); + // console.log(event.detail.rotate); + // console.log(event.detail.scaleX); + // console.log(event.detail.scaleY); + }, + + preview: '.img-preview', + }); + }, 3000) + } + + + render() { + + const { width, height, previewId, imageSrc } = this.props; + return ( +
+ {/* This rule is very important, please do not ignore this! */} + +
+ {/* http://localhost:3007/images/footNavLogo.png 图片转了后不对 */} + +
+ {/* background: 'aquamarine', + 'border-radius': '128px' + */} + {!previewId &&
+
} + + {/* */} + + {/*
*/} + +
+ ); + } +} + +export default Cropper; + + +// function aaa () { +// function showedit_headphoto() { +// var html = ` +//