Blame view

app-wx/web/dist/js/cmpts/cropper/1.5.5/cropper.min.js 35 KB
753bd90e   曹明   1.APP-wx 代码初始化。
1
2
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t=t||self).Cropper=i()}(this,function(){"use strict";function t(i){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(i)}function i(t,i){for(var e=0;e<i.length;e++){var a=i[e];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}function e(t){return function(t){if(Array.isArray(t)){for(var i=0,e=new Array(t.length);i<t.length;i++)e[i]=t[i];return e}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function a(t){return"number"==typeof t&&!yt(t)}function n(t){return void 0===t}function o(i){return"object"===t(i)&&null!==i}function h(t){if(!o(t))return!1;try{var i=t.constructor,e=i.prototype;return i&&e&&Ct.call(e,"isPrototypeOf")}catch(t){return!1}}function r(t){return"function"==typeof t}function s(t){return Array.from?Array.from(t):Dt.call(t)}function c(t,i){return t&&r(i)&&(Array.isArray(t)||a(t.length)?s(t).forEach(function(e,a){i.call(t,e,a,t)}):o(t)&&Object.keys(t).forEach(function(e){i.call(t,t[e],e,t)})),t}function d(t,i){var e=1<arguments.length&&void 0!==i?i:1e11;return kt.test(t)?Math.round(t*e)/e:t}function l(t,i){var e=t.style;c(i,function(t,i){Tt.test(i)&&a(t)&&(t="".concat(t,"px")),e[i]=t})}function p(t,i){if(i)if(a(t.length))c(t,function(t){p(t,i)});else if(t.classList)t.classList.add(i);else{var e=t.className.trim();e?e.indexOf(i)<0&&(t.className="".concat(e," ").concat(i)):t.className=i}}function m(t,i){i&&(a(t.length)?c(t,function(t){m(t,i)}):t.classList?t.classList.remove(i):0<=t.className.indexOf(i)&&(t.className=t.className.replace(i,"")))}function u(t,i,e){i&&(a(t.length)?c(t,function(t){u(t,i,e)}):e?p(t,i):m(t,i))}function g(t){return t.replace(Et,"$1-$2").toLowerCase()}function f(t,i){return o(t[i])?t[i]:t.dataset?t.dataset[i]:t.getAttribute("data-".concat(g(i)))}function v(t,i,e){o(e)?t[i]=e:t.dataset?t.dataset[i]=e:t.setAttribute("data-".concat(g(i)),e)}function w(t,i,e,a){var n=3<arguments.length&&void 0!==a?a:{},o=e;i.trim().split(Wt).forEach(function(i){if(!Nt){var a=t.listeners;a&&a[i]&&a[i][e]&&(o=a[i][e],delete a[i][e],0===Object.keys(a[i]).length&&delete a[i],0===Object.keys(a).length&&delete t.listeners)}t.removeEventListener(i,o,n)})}function b(t,i,e,a){var n=3<arguments.length&&void 0!==a?a:{},o=e;i.trim().split(Wt).forEach(function(i){if(n.once&&!Nt){var a=t.listeners,h=void 0===a?{}:a;o=function(){delete h[i][e],t.removeEventListener(i,o,n);for(var a=arguments.length,r=new Array(a),s=0;s<a;s++)r[s]=arguments[s];e.apply(t,r)},h[i]||(h[i]={}),h[i][e]&&t.removeEventListener(i,h[i][e],n),h[i][e]=o,t.listeners=h}t.addEventListener(i,o,n)})}function x(t,i,e){var a;return r(Event)&&r(CustomEvent)?a=new CustomEvent(i,{detail:e,bubbles:!0,cancelable:!0}):(a=document.createEvent("CustomEvent")).initCustomEvent(i,!0,!0,e),t.dispatchEvent(a)}function y(t){var i=t.getBoundingClientRect();return{left:i.left+(window.pageXOffset-document.documentElement.clientLeft),top:i.top+(window.pageYOffset-document.documentElement.clientTop)}}function M(t){var i=t.match(Lt);return null!==i&&(i[1]!==Ht.protocol||i[2]!==Ht.hostname||i[3]!==Ht.port)}function C(t){var i="timestamp=".concat((new Date).getTime());return t+(-1===t.indexOf("?")?"?":"&")+i}function D(t){var i=t.rotate,e=t.scaleX,n=t.scaleY,o=t.translateX,h=t.translateY,r=[];a(o)&&0!==o&&r.push("translateX(".concat(o,"px)")),a(h)&&0!==h&&r.push("translateY(".concat(h,"px)")),a(i)&&0!==i&&r.push("rotate(".concat(i,"deg)")),a(e)&&1!==e&&r.push("scaleX(".concat(e,")")),a(n)&&1!==n&&r.push("scaleY(".concat(n,")"));var s=r.length?r.join(" "):"none";return{WebkitTransform:s,msTransform:s,transform:s}}function B(t,i){var e=t.pageX,a=t.pageY,n={endX:e,endY:a};return i?n:Bt({startX:e,startY:a},n)}function k(t,i){var e=t.aspectRatio,a=t.height,n=t.width,o=1<arguments.length&&void 0!==i?i:"contain",h=Mt(n),r=Mt(a);if(h&&r){var s=a*e;"contain"===o&&n<s||"cover"===o&&s<n?a=n/e:n=a*e}else h?a=n/e:r&&(n=a*e);return{width:n,height:a}}function T(t){var i,e=new DataView(t);try{var a,n,o;if(255===e.getUint8(0)&&216===e.getUint8(1))for(var h=e.byteLength,r=2;r+1<h;){if(255===e.getUint8(r)&&225===e.getUint8(r+1)){n=r;break}r+=1}if(n){var s=n+10;if("Exif"===function(t,i,e){var a="";e+=i;for(var n=i;n<e;n+=1)a+=Ot(t.getUint8(n));return a}(e,n+4,4)){var c=e.getUint16(s);if(((a=18761===c)||19789===c)&&42===e.getUint16(s+2,a)){var d=e.getUint32(s+4,a);8<=d&&(o=s+d)}}}if(o){var l,p,m=e.getUint16(o,a);for(p=0;p<m;p+=1)if(l=o+12*p+2,274===e.getUint16(l,a)){l+=8,i=e.getUint16(l,a),e.setUint16(l,1,a);break}}}catch(t){i=1}return i}var E="undefined"!=typeof window&&void 0!==window.document,W=E?window:{},N=E&&"ontouchstart"in W.document.documentElement,H=E&&"PointerEvent"in W,L="cropper",O="all",z="crop",Y="move",X="zoom",R="e",A="w",S="s",I="n",j="ne",U="nw",P="se",q="sw",$="".concat(L,"-crop"),Q="".concat(L,"-disabled"),K="".concat(L,"-hidden"),Z="".concat(L,"-hide"),G="".concat(L,"-invisible"),V="".concat(L,"-modal"),F="".concat(L,"-move"),J="".concat(L,"Action"),_="".concat(L,"Preview"),tt="crop",it="move",et="none",at="crop",nt="cropend",ot="cropmove",ht="cropstart",rt="dblclick",st=H?"pointerdown":N?"touchstart":"mousedown",ct=H?"pointermove":N?"touchmove":"mousemove",dt=H?"pointerup pointercancel":N?"touchend touchcancel":"mouseup",lt="ready",pt="resize",mt="wheel",ut="zoom",gt="image/jpeg",ft=/^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/,vt=/^data:/,wt=/^data:image\/jpeg;base64,/,bt=/^img|canvas$/i,xt={viewMode:0,dragMode:tt,initialAspectRatio:NaN,aspectRatio:NaN,data:null,preview:"",responsive:!0,restore:!0,checkCrossOrigin:!0,checkOrientation:!0,modal:!0,guides:!0,center:!0,highlight:!0,background:!0,autoCrop:!0,autoCropArea:.8,movable:!0,rotatable:!0,scalable:!0,zoomable:!0,zoomOnTouch:!0,zoomOnWheel:!0,wheelZoomRatio:.1,cropBoxMovable:!0,cropBoxResizable:!0,toggleDragModeOnDblclick:!0,minCanvasWidth:0,minCanvasHeight:0,minCropBoxWidth:0,minCropBoxHeight:0,minContainerWidth:200,minContainerHeight:100,ready:null,cropstart:null,cropmove:null,cropend:null,crop:null,zoom:null},yt=Number.isNaN||W.isNaN,Mt=function(t){return 0<t&&t<1/0},Ct=Object.prototype.hasOwnProperty,Dt=Array.prototype.slice,Bt=Object.assign||function(t){for(var i=arguments.length,e=new Array(1<i?i-1:0),a=1;a<i;a++)e[a-1]=arguments[a];return o(t)&&0<e.length&&e.forEach(function(i){o(i)&&Object.keys(i).forEach(function(e){t[e]=i[e]})}),t},kt=/\.\d*(?:0|9){12}\d*$/,Tt=/^width|height|left|top|marginLeft|marginTop$/,Et=/([a-z\d])([A-Z])/g,Wt=/\s\s*/,Nt=function(){var t=!1;if(E){var i=!1,e=function(){},a=Object.defineProperty({},"once",{get:function(){return t=!0,i},set:function(t){i=t}});W.addEventListener("test",e,a),W.removeEventListener("test",e,a)}return t}(),Ht=W.location,Lt=/^(\w+:)\/\/([^:\/?#]*):?(\d*)/i,Ot=String.fromCharCode,zt=/^data:.*,/,Yt={render:function(){this.initContainer(),this.initCanvas(),this.initCropBox(),this.renderCanvas(),this.cropped&&this.renderCropBox()},initContainer:function(){var t=this.element,i=this.options,e=this.container,a=this.cropper;p(a,K),m(t,K);var n={width:Math.max(e.offsetWidth,Number(i.minContainerWidth)||200),height:Math.max(e.offsetHeight,Number(i.minContainerHeight)||100)};l(a,{width:(this.containerData=n).width,height:n.height}),p(t,K),m(a,K)},initCanvas:function(){var t=this.containerData,i=this.imageData,e=this.options.viewMode,a=Math.abs(i.rotate)%180==90,n=a?i.naturalHeight:i.naturalWidth,o=a?i.naturalWidth:i.naturalHeight,h=n/o,r=t.width,s=t.height;t.height*h>t.width?3===e?r=t.height*h:s=t.width/h:3===e?s=t.width/h:r=t.height*h;var c={aspectRatio:h,naturalWidth:n,naturalHeight:o,width:r,height:s};c.left=(t.width-r)/2,c.top=(t.height-s)/2,c.oldLeft=c.left,c.oldTop=c.top,this.canvasData=c,this.limited=1===e||2===e,this.limitCanvas(!0,!0),this.initialImageData=Bt({},i),this.initialCanvasData=Bt({},c)},limitCanvas:function(t,i){var e=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,h=e.viewMode,r=n.aspectRatio,s=this.cropped&&o;if(t){var c=Number(e.minCanvasWidth)||0,d=Number(e.minCanvasHeight)||0;1<h?(c=Math.max(c,a.width),d=Math.max(d,a.height),3===h&&(c<d*r?c=d*r:d=c/r)):0<h&&(c?c=Math.max(c,s?o.width:0):d?d=Math.max(d,s?o.height:0):s&&((c=o.width)<(d=o.height)*r?c=d*r:d=c/r));var l=k({aspectRatio:r,width:c,height:d});c=l.width,d=l.height,n.minWidth=c,n.minHeight=d,n.maxWidth=1/0,n.maxHeight=1/0}if(i)if((s?0:1)<h){var p=a.width-n.width,m=a.height-n.height;n.minLeft=Math.min(0,p),n.minTop=Math.min(0,m),n.maxLeft=Math.max(0,p),n.maxTop=Math.max(0,m),s&&this.limited&&(n.minLeft=Math.min(o.left,o.left+(o.width-n.width)),n.minTop=Math.min(o.top,o.top+(o.height-n.height)),n.maxLeft=o.left,n.maxTop=o.top,2===h&&(n.width>=a.width&&(n.minLeft=Math.min(0,p),n.maxLeft=Math.max(0,p)),n.height>=a.height&&(n.minTop=Math.min(0,m),n.maxTop=Math.max(0,m))))}else n.minLeft=-n.width,n.minTop=-n.height,n.maxLeft=a.width,n.maxTop=a.height},renderCanvas:function(t,i){var e=this.canvasData,a=this.imageData;if(i){var n=function(t){var i=t.width,e=t.height,a=t.degree;if(90===(a=Math.abs(a)%180))return{width:e,height:i};var n=a%90*Math.PI/180,o=Math.sin(n),h=Math.cos(n),r=i*h+e*o,s=i*o+e*h;return 90<a?{width:s,height:r}:{width:r,height:s}}({width:a.naturalWidth*Math.abs(a.scaleX||1),height:a.naturalHeight*Math.abs(a.scaleY||1),degree:a.rotate||0}),o=n.width,h=n.height,r=e.width*(o/e.naturalWidth),s=e.height*(h/e.naturalHeight);e.left-=(r-e.width)/2,e.top-=(s-e.height)/2,e.width=r,e.height=s,e.aspectRatio=o/h,e.naturalWidth=o,e.naturalHeight=h,this.limitCanvas(!0,!1)}(e.width>e.maxWidth||e.width<e.minWidth)&&(e.left=e.oldLeft),(e.height>e.maxHeight||e.height<e.minHeight)&&(e.top=e.oldTop),e.width=Math.min(Math.max(e.width,e.minWidth),e.maxWidth),e.height=Math.min(Math.max(e.height,e.minHeight),e.maxHeight),this.limitCanvas(!1,!0),e.left=Math.min(Math.max(e.left,e.minLeft),e.maxLeft),e.top=Math.min(Math.max(e.top,e.minTop),e.maxTop),e.oldLeft=e.left,e.oldTop=e.top,l(this.canvas,Bt({width:e.width,height:e.height},D({translateX:e.left,translateY:e.top}))),this.renderImage(t),this.cropped&&this.limited&&this.limitCropBox(!0,!0)},renderImage:function(t){var i=this.canvasData,e=this.imageData,a=e.naturalWidth*(i.width/i.naturalWidth),n=e.naturalHeight*(i.height/i.naturalHeight);Bt(e,{width:a,height:n,left:(i.width-a)/2,top:(i.height-n)/2}),l(this.image,Bt({width:e.width,height:e.height},D(Bt({translateX:e.left,translateY:e.top},e)))),t&&this.output()},initCropBox:function(){var t=this.options,i=this.canvasData,e=t.aspectRatio||t.initialAspectRatio,a=Number(t.autoCropArea)||.8,n={width:i.width,height:i.height};e&&(i.height*e>i.width?n.height=n.width/e:n.width=n.height*e),this.cropBoxData=n,this.limitCropBox(!0,!0),n.width=Math.min(Math.max(n.width,n.minWidth),n.maxWidth),n.height=Math.min(Math.max(n.height,n.minHeight),n.maxHeight),n.width=Math.max(n.minWidth,n.width*a),n.height=Math.max(n.minHeight,n.height*a),n.left=i.left+(i.width-n.width)/2,n.top=i.top+(i.height-n.height)/2,n.oldLeft=n.left,n.oldTop=n.top,this.initialCropBoxData=Bt({},n)},limitCropBox:function(t,i){var e=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,h=this.limited,r=e.aspectRatio;if(t){var s=Number(e.minCropBoxWidth)||0,c=Number(e.minCropBoxHeight)||0,d=h?Math.min(a.width,n.width,n.width+n.left,a.width-n.left):a.width,l=h?Math.min(a.height,n.height,n.height+n.top,a.height-n.top):a.height;s=Math.min(s,a.width),c=Math.min(c,a.height),r&&(s&&c?s<c*r?c=s/r:s=c*r:s?c=s/r:c&&(s=c*r),d<l*r?l=d/r:d=l*r),o.minWidth=Math.min(s,d),o.minHeight=Math.min(c,l),o.maxWidth=d,o.maxHeight=l}i&&(h?(o.minLeft=Math.max(0,n.left),o.minTop=Math.max(0,n.top),o.maxLeft=Math.min(a.width,n.left+n.width)-o.width,o.maxTop=Math.min(a.height,n.top+n.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=a.width-o.width,o.maxTop=a.height-o.height))},renderCropBox:function(){var t=this.options,i=this.containerData,e=this.cropBoxData;(e.width>e.maxWidth||e.width<e.minWidth)&&(e.left=e.oldLeft),(e.height>e.maxHeight||e.height<e.minHeight)&&(e.top=e.oldTop),e.width=Math.min(Math.max(e.width,e.minWidth),e.maxWidth),e.height=Math.min(Math.max(e.height,e.minHeight),e.maxHeight),this.limitCropBox(!1,!0),e.left=Math.min(Math.max(e.left,e.minLeft),e.maxLeft),e.top=Math.min(Math.max(e.top,e.minTop),e.maxTop),e.oldLeft=e.left,e.oldTop=e.top,t.movable&&t.cropBoxMovable&&v(this.face,J,e.width>=i.width&&e.height>=i.height?Y:O),l(this.cropBox,Bt({width:e.width,height:e.height},D({translateX:e.left,translateY:e.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),x(this.element,at,this.getData())}},Xt={initPreview:function(){var t=this.element,i=this.crossOrigin,e=this.options.preview,a=i?this.crossOriginUrl:this.url,n=t.alt||"The image to preview",o=document.createElement("img");if(i&&(o.crossOrigin=i),o.src=a,o.alt=n,this.viewBox.appendChild(o),this.viewBoxImage=o,e){var h=e;"string"==typeof e?h=t.ownerDocument.querySelectorAll(e):e.querySelector&&(h=[e]),c(this.previews=h,function(t){var e=document.createElement("img");v(t,_,{width:t.offsetWidth,height:t.offsetHeight,html:t.innerHTML}),i&&(e.crossOrigin=i),e.src=a,e.alt=n,e.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;"',t.innerHTML="",t.appendChild(e)})}},resetPreview:function(){c(this.previews,function(t){var i=f(t,_);l(t,{width:i.width,height:i.height}),t.innerHTML=i.html,function(t,i){if(o(t[i]))try{delete t[i]}catch(e){t[i]=void 0}else if(t.dataset)try{delete t.dataset[i]}catch(e){t.dataset[i]=void 0}else t.removeAttribute("data-".concat(g(i)))}(t,_)})},preview:function(){var t=this.imageData,i=this.canvasData,e=this.cropBoxData,a=e.width,n=e.height,o=t.width,h=t.height,r=e.left-i.left-t.left,s=e.top-i.top-t.top;this.cropped&&!this.disabled&&(l(this.viewBoxImage,Bt({width:o,height:h},D(Bt({translateX:-r,translateY:-s},t)))),c(this.previews,function(i){var e=f(i,_),c=e.width,d=e.height,p=c,m=d,u=1;a&&(m=n*(u=c/a)),n&&d<m&&(p=a*(u=d/n),m=d),l(i,{width:p,height:m}),l(i.getElementsByTagName("img")[0],Bt({width:o*u,height:h*u},D(Bt({translateX:-r*u,translateY:-s*u},t))))}))}},Rt={bind:function(){var t=this.element,i=this.options,e=this.cropper;r(i.cropstart)&&b(t,ht,i.cropstart),r(i.cropmove)&&b(t,ot,i.cropmove),r(i.cropend)&&b(t,nt,i.cropend),r(i.crop)&&b(t,at,i.crop),r(i.zoom)&&b(t,ut,i.zoom),b(e,st,this.onCropStart=this.cropStart.bind(this)),i.zoomable&&i.zoomOnWheel&&b(e,mt,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),i.toggleDragModeOnDblclick&&b(e,rt,this.onDblclick=this.dblclick.bind(this)),b(t.ownerDocument,ct,this.onCropMove=this.cropMove.bind(this)),b(t.ownerDocument,dt,this.onCropEnd=this.cropEnd.bind(this)),i.responsive&&b(window,pt,this.onResize=this.resize.bind(this))},unbind:function(){var t=this.element,i=this.options,e=this.cropper;r(i.cropstart)&&w(t,ht,i.cropstart),r(i.cropmove)&&w(t,ot,i.cropmove),r(i.cropend)&&w(t,nt,i.cropend),r(i.crop)&&w(t,at,i.crop),r(i.zoom)&&w(t,ut,i.zoom),w(e,st,this.onCropStart),i.zoomable&&i.zoomOnWheel&&w(e,mt,this.onWheel,{passive:!1,capture:!0}),i.toggleDragModeOnDblclick&&w(e,rt,this.onDblclick),w(t.ownerDocument,ct,this.onCropMove),w(t.ownerDocument,dt,this.onCropEnd),i.responsive&&w(window,pt,this.onResize)}},At={resize:function(){var t=this.options,i=this.container,e=this.containerData,a=Number(t.minContainerWidth)||200,n=Number(t.minContainerHeight)||100;if(!(this.disabled||e.width<=a||e.height<=n)){var o,h,r=i.offsetWidth/e.width;1==r&&i.offsetHeight===e.height||(t.restore&&(o=this.getCanvasData(),h=this.getCropBoxData()),this.render(),t.restore&&(this.setCanvasData(c(o,function(t,i){o[i]=t*r})),this.setCropBoxData(c(h,function(t,i){h[i]=t*r}))))}},dblclick:function(){this.disabled||this.options.dragMode===et||this.setDragMode(function(t,i){return t.classList?t.classList.contains(i):-1<t.className.indexOf(i)}(this.dragBox,$)?it:tt)},wheel:function(t){var i=this,e=Number(this.options.wheelZoomRatio)||.1,a=1;this.disabled||(t.preventDefault(),this.wheeling||(this.wheeling=!0,setTimeout(function(){i.wheeling=!1},50),t.deltaY?a=0<t.deltaY?1:-1:t.wheelDelta?a=-t.wheelDelta/120:t.detail&&(a=0<t.detail?1:-1),this.zoom(-a*e,t)))},cropStart:function(t){var i=t.buttons,e=t.button;if(!(this.disabled||a(i)&&1!==i||a(e)&&0!==e||t.ctrlKey)){var n,o=this.options,h=this.pointers;t.changedTouches?c(t.changedTouches,function(t){h[t.identifier]=B(t)}):h[t.pointerId||0]=B(t),n=1<Object.keys(h).length&&o.zoomable&&o.zoomOnTouch?X:f(t.target,J),ft.test(n)&&!1!==x(this.element,ht,{originalEvent:t,action:n})&&(t.preventDefault(),this.action=n,this.cropping=!1,n===z&&(this.cropping=!0,p(this.dragBox,V)))}},cropMove:function(t){var i=this.action;if(!this.disabled&&i){var e=this.pointers;t.preventDefault(),!1!==x(this.element,ot,{originalEvent:t,action:i})&&(t.changedTouches?c(t.changedTouches,function(t){Bt(e[t.identifier]||{},B(t,!0))}):Bt(e[t.pointerId||0]||{},B(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var i=this.action,e=this.pointers;t.changedTouches?c(t.changedTouches,function(t){delete e[t.identifier]}):delete e[t.pointerId||0],i&&(t.preventDefault(),Object.keys(e).length||(this.action=""),this.cropping&&(this.cropping=!1,u(this.dragBox,V,this.cropped&&this.options.modal)),x(this.element,nt,{originalEvent:t,action:i}))}}},St={change:function(t){function i(t){switch(t){case R:f+B.x>x&&(B.x=x-f);break;case A:l+B.x<w&&(B.x=w-l);break;case I:p+B.y<b&&(B.y=b-p);break;case S:v+B.y>M&&(B.y=M-v)}}var e,a=this.options,n=this.canvasData,o=this.containerData,h=this.cropBoxData,r=this.pointers,s=this.action,d=a.aspectRatio,l=h.left,p=h.top,u=h.width,g=h.height,f=l+u,v=p+g,w=0,b=0,x=o.width,M=o.height,C=!0;!d&&t.shiftKey&&(d=u&&g?u/g:1),this.limited&&(w=h.minLeft,b=h.minTop,x=w+Math.min(o.width,n.width,n.left+n.width),M=b+Math.min(o.height,n.height,n.top+n.height));var D=r[Object.keys(r)[0]],B={x:D.endX-D.startX,y:D.endY-D.startY};switch(s){case O:l+=B.x,p+=B.y;break;case R:if(0<=B.x&&(x<=f||d&&(p<=b||M<=v))){C=!1;break}i(R),(u+=B.x)<0&&(s=A,l-=u=-u),d&&(g=u/d,p+=(h.height-g)/2);break;case I:if(B.y<=0&&(p<=b||d&&(l<=w||x<=f))){C=!1;break}i(I),g-=B.y,p+=B.y,g<0&&(s=S,p-=g=-g),d&&(u=g*d,l+=(h.width-u)/2);break;case A:if(B.x<=0&&(l<=w||d&&(p<=b||M<=v))){C=!1;break}i(A),u-=B.x,l+=B.x,u<0&&(s=R,l-=u=-u),d&&(g=u/d,p+=(h.height-g)/2);break;case S:if(0<=B.y&&(M<=v||d&&(l<=w||x<=f))){C=!1;break}i(S),(g+=B.y)<0&&(s=I,p-=g=-g),d&&(u=g*d,l+=(h.width-u)/2);break;case j:if(d){if(B.y<=0&&(p<=b||x<=f)){C=!1;break}i(I),g-=B.y,p+=B.y,u=g*d}else i(I),i(R),0<=B.x?f<x?u+=B.x:B.y<=0&&p<=b&&(C=!1):u+=B.x,B.y<=0?b<p&&(g-=B.y,p+=B.y):(g-=B.y,p+=B.y);u<0&&g<0?(s=q,p-=g=-g,l-=u=-u):u<0?(s=U,l-=u=-u):g<0&&(s=P,p-=g=-g);break;case U:if(d){if(B.y<=0&&(p<=b||l<=w)){C=!1;break}i(I),g-=B.y,p+=B.y,u=g*d,l+=h.width-u}else i(I),i(A),B.x<=0?w<l?(u-=B.x,l+=B.x):B.y<=0&&p<=b&&(C=!1):(u-=B.x,l+=B.x),B.y<=0?b<p&&(g-=B.y,p+=B.y):(g-=B.y,p+=B.y);u<0&&g<0?(s=P,p-=g=-g,l-=u=-u):u<0?(s=j,l-=u=-u):g<0&&(s=q,p-=g=-g);break;case q:if(d){if(B.x<=0&&(l<=w||M<=v)){C=!1;break}i(A),u-=B.x,l+=B.x,g=u/d}else i(S),i(A),B.x<=0?w<l?(u-=B.x,l+=B.x):0<=B.y&&M<=v&&(C=!1):(u-=B.x,l+=B.x),0<=B.y?v<M&&(g+=B.y):g+=B.y;u<0&&g<0?(s=j,p-=g=-g,l-=u=-u):u<0?(s=P,l-=u=-u):g<0&&(s=U,p-=g=-g);break;case P:if(d){if(0<=B.x&&(x<=f||M<=v)){C=!1;break}i(R),g=(u+=B.x)/d}else i(S),i(R),0<=B.x?f<x?u+=B.x:0<=B.y&&M<=v&&(C=!1):u+=B.x,0<=B.y?v<M&&(g+=B.y):g+=B.y;u<0&&g<0?(s=U,p-=g=-g,l-=u=-u):u<0?(s=q,l-=u=-u):g<0&&(s=j,p-=g=-g);break;case Y:this.move(B.x,B.y),C=!1;break;case X:this.zoom(function(t){var i=Bt({},t),e=[];return c(t,function(t,a){delete i[a],c(i,function(i){var a=Math.abs(t.startX-i.startX),n=Math.abs(t.startY-i.startY),o=Math.abs(t.endX-i.endX),h=Math.abs(t.endY-i.endY),r=Math.sqrt(a*a+n*n),s=(Math.sqrt(o*o+h*h)-r)/r;e.push(s)})}),e.sort(function(t,i){return Math.abs(t)<Math.abs(i)}),e[0]}(r),t),C=!1;break;case z:if(!B.x||!B.y){C=!1;break}e=y(this.cropper),l=D.startX-e.left,p=D.startY-e.top,u=h.minWidth,g=h.minHeight,0<B.x?s=0<B.y?P:j:B.x<0&&(l-=u,s=0<B.y?q:U),B.y<0&&(p-=g),this.cropped||(m(this.cropBox,K),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0))}C&&(h.width=u,h.height=g,h.left=l,h.top=p,this.action=s,this.renderCropBox()),c(r,function(t){t.startX=t.endX,t.startY=t.endY})}},It={crop:function(){return!this.ready||this.cropped||this.disabled||(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&p(this.dragBox,V),m(this.cropBox,K),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=Bt({},this.initialImageData),this.canvasData=Bt({},this.initialCanvasData),this.cropBoxData=Bt({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(Bt(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),m(this.dragBox,V),p(this.cropBox,K)),this},replace:function(t,i){var e=1<arguments.length&&void 0!==i&&i;return!this.disabled&&t&&(this.isImg&&(this.element.src=t),e?(this.url=t,this.image.src=t,this.ready&&(this.viewBoxImage.src=t,c(this.previews,function(i){i.getElementsByTagName("img")[0].src=t}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(t))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,m(this.cropper,Q)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,p(this.cropper,Q)),this},destroy:function(){var t=this.element;return t[L]&&(t[L]=void 0,this.isImg&&this.replaced&&(t.src=this.originalUrl),this.uncreate()),this},move:function(t,i){var e=1<arguments.length&&void 0!==i?i:t,a=this.canvasData,o=a.left,h=a.top;return this.moveTo(n(t)?t:o+Number(t),n(e)?e:h+Number(e))},moveTo:function(t,i){var e=1<arguments.length&&void 0!==i?i:t,n=this.canvasData,o=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.movable&&(a(t)&&(n.left=t,o=!0),a(e)&&(n.top=e,o=!0),o&&this.renderCanvas(!0)),this},zoom:function(t,i){var e=this.canvasData;return t=(t=Number(t))<0?1/(1-t):1+t,this.zoomTo(e.width*t/e.naturalWidth,null,i)},zoomTo:function(t,i,e){var n=this.options,o=this.canvasData,r=o.width,s=o.height,d=o.naturalWidth,l=o.naturalHeight;if(0<=(t=Number(t))&&this.ready&&!this.disabled&&n.zoomable){var p=d*t,m=l*t;if(!1===x(this.element,ut,{ratio:t,oldRatio:r/d,originalEvent:e}))return this;if(e){var u=this.pointers,g=y(this.cropper),f=u&&Object.keys(u).length?function(t){var i=0,e=0,a=0;return c(t,function(t){var n=t.startX,o=t.startY;i+=n,e+=o,a+=1}),{pageX:i/=a,pageY:e/=a}}(u):{pageX:e.pageX,pageY:e.pageY};o.left-=(p-r)*((f.pageX-g.left-o.left)/r),o.top-=(m-s)*((f.pageY-g.top-o.top)/s)}else h(i)&&a(i.x)&&a(i.y)?(o.left-=(p-r)*((i.x-o.left)/r),o.top-=(m-s)*((i.y-o.top)/s)):(o.left-=(p-r)/2,o.top-=(m-s)/2);o.width=p,o.height=m,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(t){return a(t=Number(t))&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this},scaleX:function(t){var i=this.imageData.scaleY;return this.scale(t,a(i)?i:1)},scaleY:function(t){var i=this.imageData.scaleX;return this.scale(a(i)?i:1,t)},scale:function(t,i){var e=1<arguments.length&&void 0!==i?i:t,n=this.imageData,o=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.scalable&&(a(t)&&(n.scaleX=t,o=!0),a(e)&&(n.scaleY=e,o=!0),o&&this.renderCanvas(!0,!0)),this},getData:function(t){var i,e=0<arguments.length&&void 0!==t&&t,a=this.options,n=this.imageData,o=this.canvasData,h=this.cropBoxData;if(this.ready&&this.cropped){i={x:h.left-o.left,y:h.top-o.top,width:h.width,height:h.height};var r=n.width/n.naturalWidth;if(c(i,function(t,e){i[e]=t/r}),e){var s=Math.round(i.y+i.height),d=Math.round(i.x+i.width);i.x=Math.round(i.x),i.y=Math.round(i.y),i.width=d-i.x,i.height=s-i.y}}else i={x:0,y:0,width:0,height:0};return a.rotatable&&(i.rotate=n.rotate||0),a.scalable&&(i.scaleX=n.scaleX||1,i.scaleY=n.scaleY||1),i},setData:function(t){var i=this.options,e=this.imageData,n=this.canvasData,o={};if(this.ready&&!this.disabled&&h(t)){var r=!1;i.rotatable&&a(t.rotate)&&t.rotate!==e.rotate&&(e.rotate=t.rotate,r=!0),i.scalable&&(a(t.scaleX)&&t.scaleX!==e.scaleX&&(e.scaleX=t.scaleX,r=!0),a(t.scaleY)&&t.scaleY!==e.scaleY&&(e.scaleY=t.scaleY,r=!0)),r&&this.renderCanvas(!0,!0);var s=e.width/e.naturalWidth;a(t.x)&&(o.left=t.x*s+n.left),a(t.y)&&(o.top=t.y*s+n.top),a(t.width)&&(o.width=t.width*s),a(t.height)&&(o.height=t.height*s),this.setCropBoxData(o)}return this},getContainerData:function(){return this.ready?Bt({},this.containerData):{}},getImageData:function(){return this.sized?Bt({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,i={};return this.ready&&c(["left","top","width","height","naturalWidth","naturalHeight"],function(e){i[e]=t[e]}),i},setCanvasData:function(t){var i=this.canvasData,e=i.aspectRatio;return this.ready&&!this.disabled&&h(t)&&(a(t.left)&&(i.left=t.left),a(t.top)&&(i.top=t.top),a(t.width)?(i.width=t.width,i.height=t.width/e):a(t.height)&&(i.height=t.height,i.width=t.height*e),this.renderCanvas(!0)),this},getCropBoxData:function(){var t,i=this.cropBoxData;return this.ready&&this.cropped&&(t={left:i.left,top:i.top,width:i.width,height:i.height}),t||{}},setCropBoxData:function(t){var i,e,n=this.cropBoxData,o=this.options.aspectRatio;return this.ready&&this.cropped&&!this.disabled&&h(t)&&(a(t.left)&&(n.left=t.left),a(t.top)&&(n.top=t.top),a(t.width)&&t.width!==n.width&&(i=!0,n.width=t.width),a(t.height)&&t.height!==n.height&&(e=!0,n.height=t.height),o&&(i?n.height=n.width/o:e&&(n.width=n.height*o)),this.renderCropBox()),this},getCroppedCanvas:function(t){var i=0<arguments.length&&void 0!==t?t:{};if(!this.ready||!window.HTMLCanvasElement)return null;var a=this.canvasData,n=function(t,i,a,n){var o=i.aspectRatio,h=i.naturalWidth,r=i.naturalHeight,s=i.rotate,c=void 0===s?0:s,l=i.scaleX,p=void 0===l?1:l,m=i.scaleY,u=void 0===m?1:m,g=a.aspectRatio,f=a.naturalWidth,v=a.naturalHeight,w=n.fillColor,b=void 0===w?"transparent":w,x=n.imageSmoothingEnabled,y=void 0===x||x,M=n.imageSmoothingQuality,C=void 0===M?"low":M,D=n.maxWidth,B=void 0===D?1/0:D,T=n.maxHeight,E=void 0===T?1/0:T,W=n.minWidth,N=void 0===W?0:W,H=n.minHeight,L=void 0===H?0:H,O=document.createElement("canvas"),z=O.getContext("2d"),Y=k({aspectRatio:g,width:B,height:E}),X=k({aspectRatio:g,width:N,height:L},"cover"),R=Math.min(Y.width,Math.max(X.width,f)),A=Math.min(Y.height,Math.max(X.height,v)),S=k({aspectRatio:o,width:B,height:E}),I=k({aspectRatio:o,width:N,height:L},"cover"),j=Math.min(S.width,Math.max(I.width,h)),U=Math.min(S.height,Math.max(I.height,r)),P=[-j/2,-U/2,j,U];return O.width=d(R),O.height=d(A),z.fillStyle=b,z.fillRect(0,0,R,A),z.save(),z.translate(R/2,A/2),z.rotate(c*Math.PI/180),z.scale(p,u),z.imageSmoothingEnabled=y,z.imageSmoothingQuality=C,z.drawImage.apply(z,[t].concat(e(P.map(function(t){return Math.floor(d(t))})))),z.restore(),O}(this.image,this.imageData,a,i);if(!this.cropped)return n;var o=this.getData(),h=o.x,r=o.y,s=o.width,c=o.height,l=n.width/Math.floor(a.naturalWidth);1!=l&&(h*=l,r*=l,s*=l,c*=l);var p=s/c,m=k({aspectRatio:p,width:i.maxWidth||1/0,height:i.maxHeight||1/0}),u=k({aspectRatio:p,width:i.minWidth||0,height:i.minHeight||0},"cover"),g=k({aspectRatio:p,width:i.width||(1!=l?n.width:s),height:i.height||(1!=l?n.height:c)}),f=g.width,v=g.height;f=Math.min(m.width,Math.max(u.width,f)),v=Math.min(m.height,Math.max(u.height,v));var w=document.createElement("canvas"),b=w.getContext("2d");w.width=d(f),w.height=d(v),b.fillStyle=i.fillColor||"transparent",b.fillRect(0,0,f,v);var x=i.imageSmoothingEnabled,y=void 0===x||x,M=i.imageSmoothingQuality;b.imageSmoothingEnabled=y,M&&(b.imageSmoothingQuality=M);var C,D,B,T,E,W,N=n.width,H=n.height,L=h,O=r;L<=-s||N<L?E=B=C=L=0:L<=0?(B=-L,L=0,E=C=Math.min(N,s+L)):L<=N&&(B=0,E=C=Math.min(s,N-L)),C<=0||O<=-c||H<O?W=T=D=O=0:O<=0?(T=-O,O=0,W=D=Math.min(H,c+O)):O<=H&&(T=0,W=D=Math.min(c,H-O));var z=[L,O,C,D];if(0<E&&0<W){var Y=f/s;z.push(B*Y,T*Y,E*Y,W*Y)}return b.drawImage.apply(b,[n].concat(e(z.map(function(t){return Math.floor(d(t))})))),w},setAspectRatio:function(t){var i=this.options;return this.disabled||n(t)||(i.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var i=this.options,e=this.dragBox,a=this.face;if(this.ready&&!this.disabled){var n=t===tt,o=i.movable&&t===it;t=n||o?t:et,i.dragMode=t,v(e,J,t),u(e,$,n),u(e,F,o),i.cropBoxMovable||(v(a,J,t),u(a,$,n),u(a,F,o))}return this}},jt=W.Cropper,Ut=function(){function t(i){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};if(function(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}(this,t),!i||!bt.test(i.tagName))throw new Error("The first argument is required and must be an <img> or <canvas> element.");this.element=i,this.options=Bt({},xt,h(e)&&e),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return function(t,e,a){e&&i(t.prototype,e),a&&i(t,a)}(t,[{key:"init",value:function(){var t,i=this.element,e=i.tagName.toLowerCase();if(!i[L]){if(i[L]=this,"img"===e){if(this.isImg=!0,t=i.getAttribute("src")||"",!(this.originalUrl=t))return;t=i.src}else"canvas"===e&&window.HTMLCanvasElement&&(t=i.toDataURL());this.load(t)}}},{key:"load",value:function(t){var i=this;if(t){this.url=t,this.imageData={};var e=this.element,a=this.options;if(a.rotatable||a.scalable||(a.checkOrientation=!1),a.checkOrientation&&window.ArrayBuffer)if(vt.test(t))wt.test(t)?this.read(function(t){var i=t.replace(zt,""),e=atob(i),a=new ArrayBuffer(e.length),n=new Uint8Array(a);return c(n,function(t,i){n[i]=e.charCodeAt(i)}),a}(t)):this.clone();else{var n=new XMLHttpRequest,o=this.clone.bind(this);this.reloading=!0,(this.xhr=n).onabort=o,n.onerror=o,n.ontimeout=o,n.onprogress=function(){n.getResponseHeader("content-type")!==gt&&n.abort()},n.onload=function(){i.read(n.response)},n.onloadend=function(){i.reloading=!1,i.xhr=null},a.checkCrossOrigin&&M(t)&&e.crossOrigin&&(t=C(t)),n.open("GET",t),n.responseType="arraybuffer",n.withCredentials="use-credentials"===e.crossOrigin,n.send()}else this.clone()}}},{key:"read",value:function(t){var i=this.options,e=this.imageData,a=T(t),n=0,o=1,h=1;if(1<a){this.url=function(t,i){for(var e=[],a=new Uint8Array(t);0<a.length;)e.push(Ot.apply(null,s(a.subarray(0,8192)))),a=a.subarray(8192);return"data:".concat(i,";base64,").concat(btoa(e.join("")))}(t,gt);var r=function(t){var i=0,e=1,a=1;switch(t){case 2:e=-1;break;case 3:i=-180;break;case 4:a=-1;break;case 5:i=90,a=-1;break;case 6:i=90;break;case 7:i=90,e=-1;break;case 8:i=-90}return{rotate:i,scaleX:e,scaleY:a}}(a);n=r.rotate,o=r.scaleX,h=r.scaleY}i.rotatable&&(e.rotate=n),i.scalable&&(e.scaleX=o,e.scaleY=h),this.clone()}},{key:"clone",value:function(){var t=this.element,i=this.url,e=t.crossOrigin,a=i;this.options.checkCrossOrigin&&M(i)&&(e=e||"anonymous",a=C(i)),this.crossOrigin=e,this.crossOriginUrl=a;var n=document.createElement("img");e&&(n.crossOrigin=e),n.src=a||i,n.alt=t.alt||"The image to crop",(this.image=n).onload=this.start.bind(this),n.onerror=this.stop.bind(this),p(n,Z),t.parentNode.insertBefore(n,t.nextSibling)}},{key:"start",value:function(){function t(t,e){Bt(i.imageData,{naturalWidth:t,naturalHeight:e,aspectRatio:t/e}),i.sizing=!1,
i.sized=!0,i.build()}var i=this,e=this.image;e.onload=null,e.onerror=null,this.sizing=!0;var a=W.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(W.navigator.userAgent);if(!e.naturalWidth||a){var n=document.createElement("img"),o=document.body||document.documentElement;(this.sizingImage=n).onload=function(){t(n.width,n.height),a||o.removeChild(n)},n.src=e.src,a||(n.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;",o.appendChild(n))}else t(e.naturalWidth,e.naturalHeight)}},{key:"stop",value:function(){var t=this.image;t.onload=null,t.onerror=null,t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){if(this.sized&&!this.ready){var t=this.element,i=this.options,e=this.image,a=t.parentNode,n=document.createElement("div");n.innerHTML='<div class="cropper-container" touch-action="none"><div class="cropper-wrap-box"><div class="cropper-canvas"></div></div><div class="cropper-drag-box"></div><div class="cropper-crop-box"><span class="cropper-view-box"></span><span class="cropper-dashed dashed-h"></span><span class="cropper-dashed dashed-v"></span><span class="cropper-center"></span><span class="cropper-face"></span><span class="cropper-line line-e" data-cropper-action="e"></span><span class="cropper-line line-n" data-cropper-action="n"></span><span class="cropper-line line-w" data-cropper-action="w"></span><span class="cropper-line line-s" data-cropper-action="s"></span><span class="cropper-point point-e" data-cropper-action="e"></span><span class="cropper-point point-n" data-cropper-action="n"></span><span class="cropper-point point-w" data-cropper-action="w"></span><span class="cropper-point point-s" data-cropper-action="s"></span><span class="cropper-point point-ne" data-cropper-action="ne"></span><span class="cropper-point point-nw" data-cropper-action="nw"></span><span class="cropper-point point-sw" data-cropper-action="sw"></span><span class="cropper-point point-se" data-cropper-action="se"></span></div></div>';var o=n.querySelector(".".concat(L,"-container")),h=o.querySelector(".".concat(L,"-canvas")),s=o.querySelector(".".concat(L,"-drag-box")),c=o.querySelector(".".concat(L,"-crop-box")),d=c.querySelector(".".concat(L,"-face"));this.container=a,this.cropper=o,this.canvas=h,this.dragBox=s,this.cropBox=c,this.viewBox=o.querySelector(".".concat(L,"-view-box")),this.face=d,h.appendChild(e),p(t,K),a.insertBefore(o,t.nextSibling),this.isImg||m(e,Z),this.initPreview(),this.bind(),i.initialAspectRatio=Math.max(0,i.initialAspectRatio)||NaN,i.aspectRatio=Math.max(0,i.aspectRatio)||NaN,i.viewMode=Math.max(0,Math.min(3,Math.round(i.viewMode)))||0,p(c,K),i.guides||p(c.getElementsByClassName("".concat(L,"-dashed")),K),i.center||p(c.getElementsByClassName("".concat(L,"-center")),K),i.background&&p(o,"".concat(L,"-bg")),i.highlight||p(d,G),i.cropBoxMovable&&(p(d,F),v(d,J,O)),i.cropBoxResizable||(p(c.getElementsByClassName("".concat(L,"-line")),K),p(c.getElementsByClassName("".concat(L,"-point")),K)),this.render(),this.ready=!0,this.setDragMode(i.dragMode),i.autoCrop&&this.crop(),this.setData(i.data),r(i.ready)&&b(t,lt,i.ready,{once:!0}),x(t,lt)}}},{key:"unbuild",value:function(){this.ready&&(this.ready=!1,this.unbind(),this.resetPreview(),this.cropper.parentNode.removeChild(this.cropper),m(this.element,K))}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=jt,t}},{key:"setDefaults",value:function(t){Bt(xt,h(t)&&t)}}]),t}();return Bt(Ut.prototype,Yt,Xt,Rt,At,St,It),Ut});