Changeset 1426069
- Timestamp:
- 05/28/2016 11:18:47 AM (10 years ago)
- Location:
- zoom-openseadragon
- Files:
-
- 4 edited
- 10 copied
-
tags/1.3 (copied) (copied from zoom-openseadragon/trunk)
-
tags/1.3/css (copied) (copied from zoom-openseadragon/trunk/css)
-
tags/1.3/images (copied) (copied from zoom-openseadragon/trunk/images)
-
tags/1.3/js (copied) (copied from zoom-openseadragon/trunk/js)
-
tags/1.3/js/openseadragon.min.js (modified) (1 diff)
-
tags/1.3/js/openseadragon.min.js.map (modified) (1 diff)
-
tags/1.3/lang (copied) (copied from zoom-openseadragon/trunk/lang)
-
tags/1.3/lang/zoom-openseadragon-ru_RU.mo (copied) (copied from zoom-openseadragon/trunk/lang/zoom-openseadragon-ru_RU.mo)
-
tags/1.3/lang/zoom-openseadragon-ru_RU.po (copied) (copied from zoom-openseadragon/trunk/lang/zoom-openseadragon-ru_RU.po)
-
tags/1.3/lang/zoom-openseadragon.pot (copied) (copied from zoom-openseadragon/trunk/lang/zoom-openseadragon.pot)
-
tags/1.3/readme.txt (copied) (copied from zoom-openseadragon/trunk/readme.txt) (2 diffs)
-
tags/1.3/zoom-openseadragon.php (copied) (copied from zoom-openseadragon/trunk/zoom-openseadragon.php) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/zoom-openseadragon.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
zoom-openseadragon/tags/1.3/js/openseadragon.min.js
r1343898 r1426069 1 //! OpenSeadragon 2.1.02 //! Built on 201 5-11-123 //! Git commit: v2. 1.0-3-b2c17b51 //! openseadragon 2.2.0 2 //! Built on 2016-05-26 3 //! Git commit: v2.2.0-0-373e61e 4 4 //! http://openseadragon.github.io 5 5 //! License: http://openseadragon.github.io/license/ 6 window.OpenSeadragon=window.OpenSeadragon||function(a){return new OpenSeadragon.Viewer(a)},"function"==typeof define&&define.amd&&define(function(){return window.OpenSeadragon}),function(a){a.version={versionStr:"2.1.0",major:parseInt("2",10),minor:parseInt("1",10),revision:parseInt("0",10)};var b={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object"},c=Object.prototype.toString,d=Object.prototype.hasOwnProperty;a.isFunction=function(b){return"function"===a.type(b)},a.isArray=Array.isArray||function(b){return"array"===a.type(b)},a.isWindow=function(a){return a&&"object"==typeof a&&"setInterval"in a},a.type=function(a){return null===a||void 0===a?String(a):b[c.call(a)]||"object"},a.isPlainObject=function(b){if(!b||"object"!==OpenSeadragon.type(b)||b.nodeType||a.isWindow(b))return!1;if(b.constructor&&!d.call(b,"constructor")&&!d.call(b.constructor.prototype,"isPrototypeOf"))return!1;var c;for(var e in b)c=e;return void 0===c||d.call(b,c)},a.isEmptyObject=function(a){for(var b in a)return!1;return!0},a.supportsCanvas=function(){var b=document.createElement("canvas");return!(!a.isFunction(b.getContext)||!b.getContext("2d"))}(),a.isCanvasTainted=function(a){var b=!1;try{a.getContext("2d").getImageData(0,0,1,1)}catch(c){b=!0}return b},a.pixelDensityRatio=function(){if(a.supportsCanvas){var b=document.createElement("canvas").getContext("2d"),c=window.devicePixelRatio||1,d=b.webkitBackingStorePixelRatio||b.mozBackingStorePixelRatio||b.msBackingStorePixelRatio||b.oBackingStorePixelRatio||b.backingStorePixelRatio||1;return c/d}return 1}()}(OpenSeadragon),function($){function getOffsetParent(a,b){return b&&a!=document.body?document.body:a.offsetParent}function processDZIResponse(a,b){var c,d,e=null;if(!a)throw new Error($.getString("Errors.Security"));if(200!==a.status&&0!==a.status)throw c=a.status,d=404==c?"Not Found":a.statusText,new Error($.getString("Errors.Status",c,d));return a.responseXML&&a.responseXML.documentElement?e=a.responseXML:a.responseText&&(e=$.parseXml(a.responseText)),processDZIXml(e,b)}function processDZIXml(a,b){if(!a||!a.documentElement)throw new Error($.getString("Errors.Xml"));var c=a.documentElement,d=c.tagName;if("Image"==d)try{return processDZI(c,b)}catch(e){throw e instanceof Error?e:new Error($.getString("Errors.Dzi"))}else{if("Collection"==d)throw new Error($.getString("Errors.Dzc"));if("Error"==d)return $._processDZIError(c)}throw new Error($.getString("Errors.Dzi"))}function processDZI(a,b){var c,d,e,f=a.getAttribute("Format"),g=a.getElementsByTagName("Size")[0],h=a.getElementsByTagName("DisplayRect"),i=parseInt(g.getAttribute("Width"),10),j=parseInt(g.getAttribute("Height"),10),k=parseInt(a.getAttribute("TileSize"),10),l=parseInt(a.getAttribute("Overlap"),10),m=[];if(!$.imageFormatSupported(f))throw new Error($.getString("Errors.ImageFormat",f.toUpperCase()));for(e=0;e<h.length;e++)c=h[e],d=c.getElementsByTagName("Rect")[0],m.push(new $.DisplayRect(parseInt(d.getAttribute("X"),10),parseInt(d.getAttribute("Y"),10),parseInt(d.getAttribute("Width"),10),parseInt(d.getAttribute("Height"),10),0,parseInt(c.getAttribute("MaxLevel"),10)));return new $.DziTileSource(i,j,k,l,b,f,m)}function processDZIJSON(a,b){var c,d,e=a.Format,f=a.Size,g=a.DisplayRect||[],h=parseInt(f.Width,10),i=parseInt(f.Height,10),j=parseInt(a.TileSize,10),k=parseInt(a.Overlap,10),l=[];if(!$.imageFormatSupported(e))throw new Error($.getString("Errors.ImageFormat",e.toUpperCase()));for(d=0;d<g.length;d++)c=g[d].Rect,l.push(new $.DisplayRect(parseInt(c.X,10),parseInt(c.Y,10),parseInt(c.Width,10),parseInt(c.Height,10),0,parseInt(c.MaxLevel,10)));return new $.DziTileSource(h,i,j,k,b,e,l)}$.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=arguments.length,i=!1,j=1;for("boolean"==typeof g&&(i=g,g=arguments[1]||{},j=2),"object"==typeof g||OpenSeadragon.isFunction(g)||(g={}),h===j&&(g=this,--j);h>j;j++)if(a=arguments[j],null!==a||void 0!==a)for(b in a)c=g[b],d=a[b],g!==d&&(i&&d&&(OpenSeadragon.isPlainObject(d)||(e=OpenSeadragon.isArray(d)))?(e?(e=!1,f=c&&OpenSeadragon.isArray(c)?c:[]):f=c&&OpenSeadragon.isPlainObject(c)?c:{},g[b]=OpenSeadragon.extend(i,f,d)):void 0!==d&&(g[b]=d));return g},$.extend($,{DEFAULT_SETTINGS:{xmlPath:null,tileSources:null,tileHost:null,initialPage:0,crossOriginPolicy:!1,ajaxWithCredentials:!1,panHorizontal:!0,panVertical:!0,constrainDuringPan:!1,wrapHorizontal:!1,wrapVertical:!1,visibilityRatio:.5,minPixelRatio:.5,defaultZoomLevel:0,minZoomLevel:null,maxZoomLevel:null,homeFillsViewer:!1,clickTimeThreshold:300,clickDistThreshold:5,dblClickTimeThreshold:300,dblClickDistThreshold:20,springStiffness:6.5,animationTime:1.2,gestureSettingsMouse:{scrollToZoom:!0,clickToZoom:!0,dblClickToZoom:!1,pinchToZoom:!1,flickEnabled:!1,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsTouch:{scrollToZoom:!1,clickToZoom:!1,dblClickToZoom:!0,pinchToZoom:!0,flickEnabled:!0,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsPen:{scrollToZoom:!1,clickToZoom:!0,dblClickToZoom:!1,pinchToZoom:!1,flickEnabled:!1,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsUnknown:{scrollToZoom:!1,clickToZoom:!1,dblClickToZoom:!0,pinchToZoom:!0,flickEnabled:!0,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},zoomPerClick:2,zoomPerScroll:1.2,zoomPerSecond:1,blendTime:0,alwaysBlend:!1,autoHideControls:!0,immediateRender:!1,minZoomImageRatio:.9,maxZoomPixelRatio:1.1,pixelsPerWheelLine:40,autoResize:!0,preserveImageSizeOnResize:!1,minScrollDeltaTime:50,showSequenceControl:!0,sequenceControlAnchor:null,preserveViewport:!1,preserveOverlays:!1,navPrevNextWrap:!1,showNavigationControl:!0,navigationControlAnchor:null,showZoomControl:!0,showHomeControl:!0,showFullPageControl:!0,showRotationControl:!1,controlsFadeDelay:2e3,controlsFadeLength:1500,mouseNavEnabled:!0,showNavigator:!1,navigatorId:null,navigatorPosition:null,navigatorSizeRatio:.2,navigatorMaintainSizeRatio:!1,navigatorTop:null,navigatorLeft:null,navigatorHeight:null,navigatorWidth:null,navigatorAutoResize:!0,navigatorRotate:!0,degrees:0,opacity:1,placeholderFillStyle:null,showReferenceStrip:!1,referenceStripScroll:"horizontal",referenceStripElement:null,referenceStripHeight:null,referenceStripWidth:null,referenceStripPosition:"BOTTOM_LEFT",referenceStripSizeRatio:.2,collectionRows:3,collectionColumns:0,collectionLayout:"horizontal",collectionMode:!1,collectionTileSize:800,collectionTileMargin:80,imageLoaderLimit:0,maxImageCacheCount:200,timeout:3e4,useCanvas:!0,prefixUrl:"/images/",navImages:{zoomIn:{REST:"zoomin_rest.png",GROUP:"zoomin_grouphover.png",HOVER:"zoomin_hover.png",DOWN:"zoomin_pressed.png"},zoomOut:{REST:"zoomout_rest.png",GROUP:"zoomout_grouphover.png",HOVER:"zoomout_hover.png",DOWN:"zoomout_pressed.png"},home:{REST:"home_rest.png",GROUP:"home_grouphover.png",HOVER:"home_hover.png",DOWN:"home_pressed.png"},fullpage:{REST:"fullpage_rest.png",GROUP:"fullpage_grouphover.png",HOVER:"fullpage_hover.png",DOWN:"fullpage_pressed.png"},rotateleft:{REST:"rotateleft_rest.png",GROUP:"rotateleft_grouphover.png",HOVER:"rotateleft_hover.png",DOWN:"rotateleft_pressed.png"},rotateright:{REST:"rotateright_rest.png",GROUP:"rotateright_grouphover.png",HOVER:"rotateright_hover.png",DOWN:"rotateright_pressed.png"},previous:{REST:"previous_rest.png",GROUP:"previous_grouphover.png",HOVER:"previous_hover.png",DOWN:"previous_pressed.png"},next:{REST:"next_rest.png",GROUP:"next_grouphover.png",HOVER:"next_hover.png",DOWN:"next_pressed.png"}},debugMode:!1,debugGridColor:"#437AB2"},SIGNAL:"----seadragon----",delegate:function(a,b){return function(){var c=arguments;return void 0===c&&(c=[]),b.apply(a,c)}},BROWSERS:{UNKNOWN:0,IE:1,FIREFOX:2,SAFARI:3,CHROME:4,OPERA:5},getElement:function(a){return"string"==typeof a&&(a=document.getElementById(a)),a},getElementPosition:function(a){var b,c,d=new $.Point;for(a=$.getElement(a),b="fixed"==$.getElementStyle(a).position,c=getOffsetParent(a,b);c;)d.x+=a.offsetLeft,d.y+=a.offsetTop,b&&(d=d.plus($.getPageScroll())),a=c,b="fixed"==$.getElementStyle(a).position,c=getOffsetParent(a,b);return d},getElementOffset:function(a){a=$.getElement(a);var b,c,d=a&&a.ownerDocument,e={top:0,left:0};return d?(b=d.documentElement,"undefined"!=typeof a.getBoundingClientRect&&(e=a.getBoundingClientRect()),c=d==d.window?d:9===d.nodeType?d.defaultView||d.parentWindow:!1,new $.Point(e.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0),e.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0))):new $.Point},getElementSize:function(a){return a=$.getElement(a),new $.Point(a.clientWidth,a.clientHeight)},getElementStyle:document.documentElement.currentStyle?function(a){return a=$.getElement(a),a.currentStyle}:function(a){return a=$.getElement(a),window.getComputedStyle(a,"")},pointInElement:function(a,b){a=$.getElement(a);var c=$.getElementOffset(a),d=$.getElementSize(a);return b.x>=c.x&&b.x<c.x+d.x&&b.y<c.y+d.y&&b.y>=c.y},getEvent:function(a){return a?$.getEvent=function(a){return a}:$.getEvent=function(){return window.event},$.getEvent(a)},getMousePosition:function(a){if("number"==typeof a.pageX)$.getMousePosition=function(a){var b=new $.Point;return a=$.getEvent(a),b.x=a.pageX,b.y=a.pageY,b};else{if("number"!=typeof a.clientX)throw new Error("Unknown event mouse position, no known technique.");$.getMousePosition=function(a){var b=new $.Point;return a=$.getEvent(a),b.x=a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,b.y=a.clientY+document.body.scrollTop+document.documentElement.scrollTop,b}}return $.getMousePosition(a)},getPageScroll:function(){var a=document.documentElement||{},b=document.body||{};if("number"==typeof window.pageXOffset)$.getPageScroll=function(){return new $.Point(window.pageXOffset,window.pageYOffset)};else if(b.scrollLeft||b.scrollTop)$.getPageScroll=function(){return new $.Point(document.body.scrollLeft,document.body.scrollTop)};else{if(!a.scrollLeft&&!a.scrollTop)return new $.Point(0,0);$.getPageScroll=function(){return new $.Point(document.documentElement.scrollLeft,document.documentElement.scrollTop)}}return $.getPageScroll()},setPageScroll:function(a){if("undefined"!=typeof window.scrollTo)$.setPageScroll=function(a){window.scrollTo(a.x,a.y)};else{var b=$.getPageScroll();if(b.x===a.x&&b.y===a.y)return;document.body.scrollLeft=a.x,document.body.scrollTop=a.y;var c=$.getPageScroll();if(c.x!==b.x&&c.y!==b.y)return void($.setPageScroll=function(a){document.body.scrollLeft=a.x,document.body.scrollTop=a.y});if(document.documentElement.scrollLeft=a.x,document.documentElement.scrollTop=a.y,c=$.getPageScroll(),c.x!==b.x&&c.y!==b.y)return void($.setPageScroll=function(a){document.documentElement.scrollLeft=a.x,document.documentElement.scrollTop=a.y});$.setPageScroll=function(a){}}return $.setPageScroll(a)},getWindowSize:function(){var a=document.documentElement||{},b=document.body||{};if("number"==typeof window.innerWidth)$.getWindowSize=function(){return new $.Point(window.innerWidth,window.innerHeight)};else if(a.clientWidth||a.clientHeight)$.getWindowSize=function(){return new $.Point(document.documentElement.clientWidth,document.documentElement.clientHeight)};else{if(!b.clientWidth&&!b.clientHeight)throw new Error("Unknown window size, no known technique.");$.getWindowSize=function(){return new $.Point(document.body.clientWidth,document.body.clientHeight)}}return $.getWindowSize()},makeCenteredNode:function(a){a=$.getElement(a);var b=[$.makeNeutralElement("div"),$.makeNeutralElement("div"),$.makeNeutralElement("div")];return $.extend(b[0].style,{display:"table",height:"100%",width:"100%"}),$.extend(b[1].style,{display:"table-row"}),$.extend(b[2].style,{display:"table-cell",verticalAlign:"middle",textAlign:"center"}),b[0].appendChild(b[1]),b[1].appendChild(b[2]),b[2].appendChild(a),b[0]},makeNeutralElement:function(a){var b=document.createElement(a),c=b.style;return c.background="transparent none",c.border="none",c.margin="0px",c.padding="0px",c.position="static",b},now:function(){return Date.now?$.now=Date.now:$.now=function(){return(new Date).getTime()},$.now()},makeTransparentImage:function(a){return $.makeTransparentImage=function(a){var b=$.makeNeutralElement("img");return b.src=a,b},$.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<7&&($.makeTransparentImage=function(a){var b=$.makeNeutralElement("img"),c=null;return c=$.makeNeutralElement("span"),c.style.display="inline-block",b.onload=function(){c.style.width=c.style.width||b.width+"px",c.style.height=c.style.height||b.height+"px",b.onload=null,b=null},b.src=a,c.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+a+"', sizingMethod='scale')",c}),$.makeTransparentImage(a)},setElementOpacity:function(a,b,c){var d,e;a=$.getElement(a),c&&!$.Browser.alpha&&(b=Math.round(b)),$.Browser.opacity?a.style.opacity=1>b?b:"":1>b?(d=Math.round(100*b),e="alpha(opacity="+d+")",a.style.filter=e):a.style.filter=""},setElementTouchActionNone:function(a){a=$.getElement(a),"undefined"!=typeof a.style.touchAction?a.style.touchAction="none":"undefined"!=typeof a.style.msTouchAction&&(a.style.msTouchAction="none")},addClass:function(a,b){a=$.getElement(a),a.className?-1===(" "+a.className+" ").indexOf(" "+b+" ")&&(a.className+=" "+b):a.className=b},indexOf:function(a,b,c){return Array.prototype.indexOf?this.indexOf=function(a,b,c){return a.indexOf(b,c)}:this.indexOf=function(a,b,c){var d,e,f=c?c:0;if(!a)throw new TypeError;if(e=a.length,0===e||f>=e)return-1;for(0>f&&(f=e-Math.abs(f)),d=f;e>d;d++)if(a[d]===b)return d;return-1},this.indexOf(a,b,c)},removeClass:function(a,b){var c,d,e=[];for(a=$.getElement(a),c=a.className.split(/\s+/),d=0;d<c.length;d++)c[d]&&c[d]!==b&&e.push(c[d]);a.className=e.join(" ")},addEvent:function(){if(window.addEventListener)return function(a,b,c,d){a=$.getElement(a),a.addEventListener(b,c,d)};if(window.attachEvent)return function(a,b,c,d){a=$.getElement(a),a.attachEvent("on"+b,c)};throw new Error("No known event model.")}(),removeEvent:function(){if(window.removeEventListener)return function(a,b,c,d){a=$.getElement(a),a.removeEventListener(b,c,d)};if(window.detachEvent)return function(a,b,c,d){a=$.getElement(a),a.detachEvent("on"+b,c)};throw new Error("No known event model.")}(),cancelEvent:function(a){a=$.getEvent(a),a.preventDefault?$.cancelEvent=function(a){a.preventDefault()}:$.cancelEvent=function(a){a=$.getEvent(a),a.cancel=!0,a.returnValue=!1},$.cancelEvent(a)},stopEvent:function(a){a=$.getEvent(a),a.stopPropagation?$.stopEvent=function(a){a.stopPropagation()}:$.stopEvent=function(a){a=$.getEvent(a),a.cancelBubble=!0},$.stopEvent(a)},createCallback:function(a,b){var c,d=[];for(c=2;c<arguments.length;c++)d.push(arguments[c]);return function(){var c,e=d.concat([]);for(c=0;c<arguments.length;c++)e.push(arguments[c]);return b.apply(a,e)}},getUrlParameter:function(a){var b=URLPARAMS[a];return b?b:null},getUrlProtocol:function(a){var b=a.match(/^([a-z]+:)\/\//i);return null===b?window.location.protocol:b[1].toLowerCase()},createAjaxRequest:function(a){var b;try{b=!!new ActiveXObject("Microsoft.XMLHTTP")}catch(c){b=!1}if(b)window.XMLHttpRequest?$.createAjaxRequest=function(a){return a?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest}:$.createAjaxRequest=function(){return new ActiveXObject("Microsoft.XMLHTTP")};else{if(!window.XMLHttpRequest)throw new Error("Browser doesn't support XMLHttpRequest.");$.createAjaxRequest=function(){return new XMLHttpRequest}}return $.createAjaxRequest(a)},makeAjaxRequest:function(a,b,c){var d;$.isPlainObject(a)&&(b=a.success,c=a.error,d=a.withCredentials,a=a.url);var e=$.getUrlProtocol(a),f=$.createAjaxRequest("file:"===e);if(!$.isFunction(b))throw new Error("makeAjaxRequest requires a success callback");f.onreadystatechange=function(){4==f.readyState&&(f.onreadystatechange=function(){},200===f.status||0===f.status&&"http:"!==e&&"https:"!==e?b(f):($.console.log("AJAX request returned %d: %s",f.status,a),$.isFunction(c)&&c(f)))},d&&(f.withCredentials=!0);try{f.open("GET",a,!0),f.send(null)}catch(g){var h=g.message,i=$.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<10;if(i&&"undefined"!=typeof g.number&&-2147024891==g.number&&(h+="\nSee http://msdn.microsoft.com/en-us/library/ms537505(v=vs.85).aspx#xdomain"),$.console.log("%s while making AJAX request: %s",g.name,h),f.onreadystatechange=function(){},window.XDomainRequest){var j=new XDomainRequest;if(j){j.onload=function(a){$.isFunction(b)&&b({responseText:j.responseText,status:200,statusText:"OK"})},j.onerror=function(a){$.isFunction(c)&&c({responseText:j.responseText,status:444,statusText:"An error happened. Due to an XDomainRequest deficiency we can not extract any information about this error. Upgrade your browser."})};try{j.open("GET",a),j.send()}catch(k){$.isFunction(c)&&c(f,g)}}}else $.isFunction(c)&&c(f,g)}},jsonp:function(a){var b,c=a.url,d=document.head||document.getElementsByTagName("head")[0]||document.documentElement,e=a.callbackName||"openseadragon"+$.now(),f=window[e],g="$1"+e+"$2",h=a.param||"callback",i=a.callback;c=c.replace(/(\=)\?(&|$)|\?\?/i,g),c+=(/\?/.test(c)?"&":"?")+h+"="+e,window[e]=function(a){if(f)window[e]=f;else try{delete window[e]}catch(b){}i&&$.isFunction(i)&&i(a)},b=document.createElement("script"),(void 0!==a.async||!1!==a.async)&&(b.async="async"),a.scriptCharset&&(b.charset=a.scriptCharset),b.src=c,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,d&&b.parentNode&&d.removeChild(b),b=void 0)},d.insertBefore(b,d.firstChild)},createFromDZI:function(){throw"OpenSeadragon.createFromDZI is deprecated, use Viewer.open."},parseXml:function(a){if(window.DOMParser)$.parseXml=function(a){var b,c=null;return b=new DOMParser,c=b.parseFromString(a,"text/xml")};else{if(!window.ActiveXObject)throw new Error("Browser doesn't support XML DOM.");$.parseXml=function(a){var b=null;return b=new ActiveXObject("Microsoft.XMLDOM"),b.async=!1,b.loadXML(a),b}}return $.parseXml(a)},parseJSON:function(string){return window.JSON&&window.JSON.parse?$.parseJSON=window.JSON.parse:$.parseJSON=function(string){return eval("("+string+")")},$.parseJSON(string)},imageFormatSupported:function(a){return a=a?a:"",!!FILEFORMATS[a.toLowerCase()]}}),$.Browser={vendor:$.BROWSERS.UNKNOWN,version:0,alpha:!0};var FILEFORMATS={bmp:!1,jpeg:!0,jpg:!0,png:!0,tif:!1,wdp:!1},URLPARAMS={};!function(){var a,b=(navigator.appName,navigator.appVersion),c=navigator.userAgent;switch(navigator.appName){case"Microsoft Internet Explorer":window.attachEvent&&window.ActiveXObject&&($.Browser.vendor=$.BROWSERS.IE,$.Browser.version=parseFloat(c.substring(c.indexOf("MSIE")+5,c.indexOf(";",c.indexOf("MSIE")))));break;case"Netscape":window.addEventListener&&(c.indexOf("Firefox")>=0?($.Browser.vendor=$.BROWSERS.FIREFOX,$.Browser.version=parseFloat(c.substring(c.indexOf("Firefox")+8))):c.indexOf("Safari")>=0?($.Browser.vendor=c.indexOf("Chrome")>=0?$.BROWSERS.CHROME:$.BROWSERS.SAFARI,$.Browser.version=parseFloat(c.substring(c.substring(0,c.indexOf("Safari")).lastIndexOf("/")+1,c.indexOf("Safari")))):(a=new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"),null!==a.exec(c)&&($.Browser.vendor=$.BROWSERS.IE,$.Browser.version=parseFloat(RegExp.$1))));break;case"Opera":$.Browser.vendor=$.BROWSERS.OPERA,$.Browser.version=parseFloat(b)}var d,e,f,g=window.location.search.substring(1),h=g.split("&");for(f=0;f<h.length;f++)d=h[f],e=d.indexOf("="),e>0&&(URLPARAMS[d.substring(0,e)]=decodeURIComponent(d.substring(e+1)));$.Browser.alpha=!($.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<9||$.Browser.vendor==$.BROWSERS.CHROME&&$.Browser.version<2),$.Browser.opacity=!($.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<9)}();var nullfunction=function(a){};$.console=window.console||{log:nullfunction,debug:nullfunction,info:nullfunction,warn:nullfunction,error:nullfunction,assert:nullfunction},function(a){var b=a.requestAnimationFrame||a.mozRequestAnimationFrame||a.webkitRequestAnimationFrame||a.msRequestAnimationFrame,c=a.cancelAnimationFrame||a.mozCancelAnimationFrame||a.webkitCancelAnimationFrame||a.msCancelAnimationFrame;if(b&&c)$.requestAnimationFrame=function(){return b.apply(a,arguments)},$.cancelAnimationFrame=function(){return c.apply(a,arguments)};else{var d,e=[],f=[],g=0;$.requestAnimationFrame=function(a){return e.push([++g,a]),d||(d=setInterval(function(){if(e.length){var a=$.now(),b=f;for(f=e,e=b;f.length;)f.shift()[1](a)}else clearInterval(d),d=void 0},20)),g},$.cancelAnimationFrame=function(a){var b,c;for(b=0,c=e.length;c>b;b+=1)if(e[b][0]===a)return void e.splice(b,1);for(b=0,c=f.length;c>b;b+=1)if(f[b][0]===a)return void f.splice(b,1)}}}(window),$._processDZIError=function(a){var b=a.getElementsByTagName("Message")[0],c=b.firstChild.nodeValue;throw new Error(c)}}(OpenSeadragon),function(a){var b={supportsFullScreen:!1,isFullScreen:function(){return!1},getFullScreenElement:function(){return null},requestFullScreen:function(){},exitFullScreen:function(){},cancelFullScreen:function(){},fullScreenEventName:"",fullScreenErrorEventName:""};document.exitFullscreen?(b.supportsFullScreen=!0,b.getFullScreenElement=function(){return document.fullscreenElement},b.requestFullScreen=function(a){return a.requestFullscreen()},b.exitFullScreen=function(){document.exitFullscreen()},b.fullScreenEventName="fullscreenchange",b.fullScreenErrorEventName="fullscreenerror"):document.msExitFullscreen?(b.supportsFullScreen=!0,b.getFullScreenElement=function(){return document.msFullscreenElement},b.requestFullScreen=function(a){return a.msRequestFullscreen()},b.exitFullScreen=function(){document.msExitFullscreen()},b.fullScreenEventName="MSFullscreenChange",b.fullScreenErrorEventName="MSFullscreenError"):document.webkitExitFullscreen?(b.supportsFullScreen=!0,b.getFullScreenElement=function(){return document.webkitFullscreenElement},b.requestFullScreen=function(a){return a.webkitRequestFullscreen()},b.exitFullScreen=function(){document.webkitExitFullscreen()},b.fullScreenEventName="webkitfullscreenchange",b.fullScreenErrorEventName="webkitfullscreenerror"):document.webkitCancelFullScreen?(b.supportsFullScreen=!0,b.getFullScreenElement=function(){return document.webkitCurrentFullScreenElement},b.requestFullScreen=function(a){return a.webkitRequestFullScreen()},b.exitFullScreen=function(){document.webkitCancelFullScreen()},b.fullScreenEventName="webkitfullscreenchange",b.fullScreenErrorEventName="webkitfullscreenerror"):document.mozCancelFullScreen&&(b.supportsFullScreen=!0,b.getFullScreenElement=function(){return document.mozFullScreenElement},b.requestFullScreen=function(a){return a.mozRequestFullScreen()},b.exitFullScreen=function(){document.mozCancelFullScreen()},b.fullScreenEventName="mozfullscreenchange",b.fullScreenErrorEventName="mozfullscreenerror"),b.isFullScreen=function(){return null!==b.getFullScreenElement()},b.cancelFullScreen=function(){a.console.error("cancelFullScreen is deprecated. Use exitFullScreen instead."),b.exitFullScreen()},a.extend(a,b)}(OpenSeadragon),function(a){a.EventSource=function(){this.events={}},a.EventSource.prototype={addHandler:function(b,c,d){var e=this.events[b];e||(this.events[b]=e=[]),c&&a.isFunction(c)&&(e[e.length]={handler:c,userData:d||null})},removeHandler:function(b,c){var d,e=this.events[b],f=[];if(e&&a.isArray(e)){for(d=0;d<e.length;d++)e[d].handler!==c&&f.push(e[d]);this.events[b]=f}},removeAllHandlers:function(a){if(a)this.events[a]=[];else for(var b in this.events)this.events[b]=[]},getHandler:function(a){var b=this.events[a];return b&&b.length?(b=1===b.length?[b[0]]:Array.apply(null,b),function(a,c){var d,e=b.length;for(d=0;e>d;d++)b[d]&&(c.eventSource=a,c.userData=b[d].userData,b[d].handler(c))}):null},raiseEvent:function(a,b){var c=this.getHandler(a);c&&(b||(b={}),c(this,b))}}}(OpenSeadragon),function(a){function b(b){var c,d=oa[b.hash],e=d.activePointersLists.length;for(c=0;e>c;c++)d.activePointersLists[c].captureCount>0&&(a.removeEvent(a.MouseTracker.captureElement,"mousemove",d.mousemovecaptured,!0),a.removeEvent(a.MouseTracker.captureElement,"mouseup",d.mouseupcaptured,!0),a.removeEvent(a.MouseTracker.captureElement,a.MouseTracker.unprefixedPointerEvents?"pointermove":"MSPointerMove",d.pointermovecaptured,!0),a.removeEvent(a.MouseTracker.captureElement,a.MouseTracker.unprefixedPointerEvents?"pointerup":"MSPointerUp",d.pointerupcaptured,!0),a.removeEvent(a.MouseTracker.captureElement,"touchmove",d.touchmovecaptured,!0),a.removeEvent(a.MouseTracker.captureElement,"touchend",d.touchendcaptured,!0),d.activePointersLists[c].captureCount=0);for(c=0;e>c;c++)d.activePointersLists.pop()}function c(c){var d,e,f=oa[c.hash];if(!f.tracking){for(e=0;e<a.MouseTracker.subscribeEvents.length;e++)d=a.MouseTracker.subscribeEvents[e],a.addEvent(c.element,d,f[d],!1);b(c),f.tracking=!0}}function d(c){var d,e,f=oa[c.hash];if(f.tracking){for(e=0;e<a.MouseTracker.subscribeEvents.length;e++)d=a.MouseTracker.subscribeEvents[e],a.removeEvent(c.element,d,f[d],!1);b(c),f.tracking=!1}}function e(b,c){var d=oa[b.hash];if("pointerevent"===c)return{upName:a.MouseTracker.unprefixedPointerEvents?"pointerup":"MSPointerUp",upHandler:d.pointerupcaptured,moveName:a.MouseTracker.unprefixedPointerEvents?"pointermove":"MSPointerMove",moveHandler:d.pointermovecaptured};if("mouse"===c)return{upName:"mouseup",upHandler:d.mouseupcaptured,moveName:"mousemove",moveHandler:d.mousemovecaptured};if("touch"===c)return{upName:"touchend",upHandler:d.touchendcaptured,moveName:"touchmove",moveHandler:d.touchmovecaptured};throw new Error("MouseTracker.getCaptureEventParams: Unknown pointer type.")}function f(b,c){var d,f=b.getActivePointersListByType(c);f.captureCount++,1===f.captureCount&&(a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9?b.element.setCapture(!0):(d=e(b,a.MouseTracker.havePointerEvents?"pointerevent":c),a.addEvent(a.MouseTracker.captureElement,d.upName,d.upHandler,!0),a.addEvent(a.MouseTracker.captureElement,d.moveName,d.moveHandler,!0)))}function g(b,c){var d,f=b.getActivePointersListByType(c);f.captureCount--,0===f.captureCount&&(a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9?b.element.releaseCapture():(d=e(b,a.MouseTracker.havePointerEvents?"pointerevent":c),a.removeEvent(a.MouseTracker.captureElement,d.moveName,d.moveHandler,!0),a.removeEvent(a.MouseTracker.captureElement,d.upName,d.upHandler,!0)))}function h(b){var c;if(a.MouseTracker.unprefixedPointerEvents)c=b.pointerType;else switch(b.pointerType){case 2:c="touch";break;case 3:c="pen";break;case 4:c="mouse";break;default:c=""}return c}function i(b){return a.getMousePosition(b)}function j(a,b){return k(i(a),b)}function k(b,c){var d=a.getElementOffset(c);return b.minus(d)}function l(b,c){return new a.Point((b.x+c.x)/2,(b.y+c.y)/2)}function m(b,c){b.clickHandler&&a.cancelEvent(c)}function n(b,c){b.dblClickHandler&&a.cancelEvent(c)}function o(b,c){var d;b.keyDownHandler&&(c=a.getEvent(c),d=b.keyDownHandler({eventSource:b,keyCode:c.keyCode?c.keyCode:c.charCode,ctrl:c.ctrlKey,shift:c.shiftKey,alt:c.altKey,meta:c.metaKey,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),d||a.cancelEvent(c))}function p(b,c){var d;b.keyUpHandler&&(c=a.getEvent(c),d=b.keyUpHandler({eventSource:b,keyCode:c.keyCode?c.keyCode:c.charCode,ctrl:c.ctrlKey,shift:c.shiftKey,alt:c.altKey,meta:c.metaKey,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),d||a.cancelEvent(c))}function q(b,c){var d;b.keyHandler&&(c=a.getEvent(c),d=b.keyHandler({eventSource:b,keyCode:c.keyCode?c.keyCode:c.charCode,ctrl:c.ctrlKey,shift:c.shiftKey,alt:c.altKey,meta:c.metaKey,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),d||a.cancelEvent(c))}function r(b,c){var d;b.focusHandler&&(c=a.getEvent(c),d=b.focusHandler({eventSource:b,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),d===!1&&a.cancelEvent(c))}function s(b,c){var d;b.blurHandler&&(c=a.getEvent(c),d=b.blurHandler({eventSource:b,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),d===!1&&a.cancelEvent(c))}function t(a,b){v(a,b,b)}function u(b,c){c=a.getEvent(c);var d={target:c.target||c.srcElement,type:"wheel",shiftKey:c.shiftKey||!1,clientX:c.clientX,clientY:c.clientY,pageX:c.pageX?c.pageX:c.clientX,pageY:c.pageY?c.pageY:c.clientY,deltaMode:"MozMousePixelScroll"==c.type?0:1,deltaX:0,deltaZ:0};"mousewheel"==a.MouseTracker.wheelEventName?d.deltaY=-1/a.DEFAULT_SETTINGS.pixelsPerWheelLine*c.wheelDelta:d.deltaY=c.detail,v(b,d,c)}function v(b,c,d){var e,f=0;f=c.deltaY<0?1:-1,b.scrollHandler&&(e=b.scrollHandler({eventSource:b,pointerType:"mouse",position:j(c,b.element),scroll:f,shift:c.shiftKey,isTouchEvent:!1,originalEvent:d,preventDefaultAction:!1,userData:b.userData}),e===!1&&a.cancelEvent(d))}function w(a,b){if(a===b)return!1;for(;b&&b!==a;)b=b.parentNode;return b===a}function x(b,c){c=a.getEvent(c),z(b,c)}function y(b,c){c=a.getEvent(c),c.currentTarget===c.relatedTarget||w(c.currentTarget,c.relatedTarget)||z(b,c)}function z(b,c){var d={id:a.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:i(c),currentTime:a.now()};ga(b,c,[d])}function A(b,c){c=a.getEvent(c),C(b,c)}function B(b,c){c=a.getEvent(c),c.currentTarget===c.relatedTarget||w(c.currentTarget,c.relatedTarget)||C(b,c)}function C(b,c){var d={id:a.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:i(c),currentTime:a.now()};ha(b,c,[d])}function D(b){return a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9?1===b?0:2===b?2:4===b?1:-1:b}function E(b,c){var d;c=a.getEvent(c),d={id:a.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:i(c),currentTime:a.now()},ia(b,c,[d],D(c.button))&&(a.stopEvent(c),f(b,"mouse")),(b.clickHandler||b.dblClickHandler||b.pressHandler||b.dragHandler||b.dragEndHandler)&&a.cancelEvent(c)}function F(a,b){H(a,b)}function G(b,c){H(b,c),a.stopEvent(c)}function H(b,c){var d;c=a.getEvent(c),d={id:a.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:i(c),currentTime:a.now()},ja(b,c,[d],D(c.button))&&g(b,"mouse")}function I(a,b){K(a,b)}function J(b,c){K(b,c),a.stopEvent(c)}function K(b,c){var d;c=a.getEvent(c),d={id:a.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:i(c),currentTime:a.now()},ka(b,c,[d])}function L(a,b,c){var d,e=c.getLength(),f=[];for(d=0;e>d;d++)f.push(c.getByIndex(d));f.length>0&&(ja(a,b,f,0),c.captureCount=1,g(a,"touch"),ha(a,b,f))}function M(b,c){var d,e,g,h,j=c.changedTouches.length,k=[],l=b.getActivePointersListByType("touch");for(d=a.now(),l.getLength()>c.touches.length-j&&(a.console.warn("Tracked touch contact count doesn't match event.touches.length. Removing all tracked touch pointers."),L(b,c,l)),e=0;j>e;e++)k.push({id:c.changedTouches[e].identifier,type:"touch",currentPos:i(c.changedTouches[e]),currentTime:d});for(ga(b,c,k),e=0;e<na.length;e++)if(na[e]!==b&&na[e].isTracking()&&w(na[e].element,b.element)){for(h=[],g=0;j>g;g++)h.push({id:c.changedTouches[g].identifier,type:"touch",currentPos:i(c.changedTouches[g]),currentTime:d});ga(na[e],c,h)}ia(b,c,k,0)&&(a.stopEvent(c),f(b,"touch")),a.cancelEvent(c)}function N(a,b){P(a,b)}function O(b,c){P(b,c),a.stopEvent(c)}function P(b,c){var d,e,f,h,j=c.changedTouches.length,k=[];for(d=a.now(),e=0;j>e;e++)k.push({id:c.changedTouches[e].identifier,type:"touch",currentPos:i(c.changedTouches[e]),currentTime:d});for(ja(b,c,k,0)&&g(b,"touch"),ha(b,c,k),e=0;e<na.length;e++)if(na[e]!==b&&na[e].isTracking()&&w(na[e].element,b.element)){for(h=[],f=0;j>f;f++)h.push({id:c.changedTouches[f].identifier,type:"touch",currentPos:i(c.changedTouches[f]),currentTime:d});ha(na[e],c,h)}a.cancelEvent(c)}function Q(a,b){S(a,b)}function R(b,c){S(b,c),a.stopEvent(c)}function S(b,c){var d,e=c.changedTouches.length,f=[];for(d=0;e>d;d++)f.push({id:c.changedTouches[d].identifier,type:"touch",currentPos:i(c.changedTouches[d]),currentTime:a.now()});ka(b,c,f),a.cancelEvent(c)}function T(a,b){var c=(b.changedTouches.length,a.getActivePointersListByType("touch"));L(a,b,c)}function U(a,b){return b.stopPropagation(), 7 b.preventDefault(),!1}function V(a,b){return b.stopPropagation(),b.preventDefault(),!1}function W(b,c){var d;c.currentTarget===c.relatedTarget||w(c.currentTarget,c.relatedTarget)||(d={id:c.pointerId,type:h(c),isPrimary:c.isPrimary,currentPos:i(c),currentTime:a.now()},ga(b,c,[d]))}function X(b,c){var d;c.currentTarget===c.relatedTarget||w(c.currentTarget,c.relatedTarget)||(d={id:c.pointerId,type:h(c),isPrimary:c.isPrimary,currentPos:i(c),currentTime:a.now()},ha(b,c,[d]))}function Y(b,c){var d;d={id:c.pointerId,type:h(c),isPrimary:c.isPrimary,currentPos:i(c),currentTime:a.now()},ia(b,c,[d],c.button)&&(a.stopEvent(c),f(b,d.type)),(b.clickHandler||b.dblClickHandler||b.pressHandler||b.dragHandler||b.dragEndHandler||b.pinchHandler)&&a.cancelEvent(c)}function Z(a,b){_(a,b)}function $(b,c){var d=b.getActivePointersListByType(h(c));d.getById(c.pointerId)&&_(b,c),a.stopEvent(c)}function _(b,c){var d;d={id:c.pointerId,type:h(c),isPrimary:c.isPrimary,currentPos:i(c),currentTime:a.now()},ja(b,c,[d],c.button)&&g(b,d.type)}function aa(a,b){ca(a,b)}function ba(b,c){var d=b.getActivePointersListByType(h(c));d.getById(c.pointerId)&&ca(b,c),a.stopEvent(c)}function ca(b,c){var d;d={id:c.pointerId,type:h(c),isPrimary:c.isPrimary,currentPos:i(c),currentTime:a.now()},ka(b,c,[d])}function da(a,b){var c;c={id:b.pointerId,type:h(b)},la(a,b,[c])}function ea(a,b){return b.hasOwnProperty("isPrimary")||(0===a.getLength()?b.isPrimary=!0:b.isPrimary=!1),b.speed=0,b.direction=0,b.contactPos=b.currentPos,b.contactTime=b.currentTime,b.lastPos=b.currentPos,b.lastTime=b.currentTime,a.add(b)}function fa(a,b){var c,d;return a.getById(b.id)?(c=a.removeById(b.id),b.hasOwnProperty("isPrimary")||(d=a.getPrimary(),d||(d=a.getByIndex(0),d&&(d.isPrimary=!0)))):c=a.getLength(),c}function ga(b,c,d){var e,f,g,h,i=b.getActivePointersListByType(d[0].type),j=d.length;for(e=0;j>e;e++)f=d[e],g=i.getById(f.id),g?(g.insideElement=!0,g.lastPos=g.currentPos,g.lastTime=g.currentTime,g.currentPos=f.currentPos,g.currentTime=f.currentTime,f=g):(f.captured=!1,f.insideElementPressed=!1,f.insideElement=!0,ea(i,f)),b.enterHandler&&(h=b.enterHandler({eventSource:b,pointerType:f.type,position:k(f.currentPos,b.element),buttons:i.buttons,pointers:b.getActivePointerCount(),insideElementPressed:f.insideElementPressed,buttonDownAny:0!==i.buttons,isTouchEvent:"touch"===f.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),h===!1&&a.cancelEvent(c))}function ha(b,c,d){var e,f,g,h,i=(oa[b.hash],b.getActivePointersListByType(d[0].type)),j=d.length;for(e=0;j>e;e++)f=d[e],g=i.getById(f.id),g&&(g.captured?(g.insideElement=!1,g.lastPos=g.currentPos,g.lastTime=g.currentTime,g.currentPos=f.currentPos,g.currentTime=f.currentTime):fa(i,g),f=g),b.exitHandler&&(h=b.exitHandler({eventSource:b,pointerType:f.type,position:k(f.currentPos,b.element),buttons:i.buttons,pointers:b.getActivePointerCount(),insideElementPressed:g?g.insideElementPressed:!1,buttonDownAny:0!==i.buttons,isTouchEvent:"touch"===f.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),h===!1&&a.cancelEvent(c))}function ia(b,c,d,e){var f,g,h,i,j=oa[b.hash],m=b.getActivePointersListByType(d[0].type),n=d.length;if("undefined"!=typeof c.buttons?m.buttons=c.buttons:a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9?0===e?m.buttons+=1:1===e?m.buttons+=4:2===e?m.buttons+=2:3===e?m.buttons+=8:4===e?m.buttons+=16:5===e&&(m.buttons+=32):0===e?m.buttons|=1:1===e?m.buttons|=4:2===e?m.buttons|=2:3===e?m.buttons|=8:4===e?m.buttons|=16:5===e&&(m.buttons|=32),0!==e)return b.nonPrimaryPressHandler&&(f=b.nonPrimaryPressHandler({eventSource:b,pointerType:d[0].type,position:k(d[0].currentPos,b.element),button:e,buttons:m.buttons,isTouchEvent:"touch"===d[0].type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),f===!1&&a.cancelEvent(c)),!1;for(g=0;n>g;g++)h=d[g],i=m.getById(h.id),i?(i.captured=!0,i.insideElementPressed=!0,i.insideElement=!0,i.contactPos=h.currentPos,i.contactTime=h.currentTime,i.lastPos=i.currentPos,i.lastTime=i.currentTime,i.currentPos=h.currentPos,i.currentTime=h.currentTime,h=i):(h.captured=!0,h.insideElementPressed=!0,h.insideElement=!0,ea(m,h)),m.contacts++,(b.dragHandler||b.dragEndHandler||b.pinchHandler)&&a.MouseTracker.gesturePointVelocityTracker.addPoint(b,h),1===m.contacts?b.pressHandler&&(f=b.pressHandler({eventSource:b,pointerType:h.type,position:k(h.contactPos,b.element),buttons:m.buttons,isTouchEvent:"touch"===h.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),f===!1&&a.cancelEvent(c)):2===m.contacts&&b.pinchHandler&&"touch"===h.type&&(j.pinchGPoints=m.asArray(),j.lastPinchDist=j.currentPinchDist=j.pinchGPoints[0].currentPos.distanceTo(j.pinchGPoints[1].currentPos),j.lastPinchCenter=j.currentPinchCenter=l(j.pinchGPoints[0].currentPos,j.pinchGPoints[1].currentPos));return!0}function ja(b,c,d,e){var f,g,h,i,j,m,n,o=oa[b.hash],p=b.getActivePointersListByType(d[0].type),q=d.length,r=!1,s=!1;if("undefined"!=typeof c.buttons?p.buttons=c.buttons:a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9?0===e?p.buttons-=1:1===e?p.buttons-=4:2===e?p.buttons-=2:3===e?p.buttons-=8:4===e?p.buttons-=16:5===e&&(p.buttons-=32):0===e?p.buttons^=-2:1===e?p.buttons^=-5:2===e?p.buttons^=-3:3===e?p.buttons^=-9:4===e?p.buttons^=-17:5===e&&(p.buttons^=-33),0!==e)return b.nonPrimaryReleaseHandler&&(f=b.nonPrimaryReleaseHandler({eventSource:b,pointerType:d[0].type,position:k(d[0].currentPos,b.element),button:e,buttons:p.buttons,isTouchEvent:"touch"===d[0].type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),f===!1&&a.cancelEvent(c)),!1;for(i=0;q>i;i++)j=d[i],m=p.getById(j.id),m&&(m.captured&&(m.captured=!1,r=!0,s=!0),m.lastPos=m.currentPos,m.lastTime=m.currentTime,m.currentPos=j.currentPos,m.currentTime=j.currentTime,m.insideElement||fa(p,m),g=m.currentPos,h=m.currentTime,s?(p.contacts--,(b.dragHandler||b.dragEndHandler||b.pinchHandler)&&a.MouseTracker.gesturePointVelocityTracker.removePoint(b,m),0===p.contacts?(b.releaseHandler&&(f=b.releaseHandler({eventSource:b,pointerType:m.type,position:k(g,b.element),buttons:p.buttons,insideElementPressed:m.insideElementPressed,insideElementReleased:m.insideElement,isTouchEvent:"touch"===m.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),f===!1&&a.cancelEvent(c)),b.dragEndHandler&&!m.currentPos.equals(m.contactPos)&&(f=b.dragEndHandler({eventSource:b,pointerType:m.type,position:k(m.currentPos,b.element),speed:m.speed,direction:m.direction,shift:c.shiftKey,isTouchEvent:"touch"===m.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),f===!1&&a.cancelEvent(c)),(b.clickHandler||b.dblClickHandler)&&m.insideElement&&(n=h-m.contactTime<=b.clickTimeThreshold&&m.contactPos.distanceTo(g)<=b.clickDistThreshold,b.clickHandler&&(f=b.clickHandler({eventSource:b,pointerType:m.type,position:k(m.currentPos,b.element),quick:n,shift:c.shiftKey,isTouchEvent:"touch"===m.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),f===!1&&a.cancelEvent(c)),b.dblClickHandler&&n&&(p.clicks++,1===p.clicks?(o.lastClickPos=g,o.dblClickTimeOut=setTimeout(function(){p.clicks=0},b.dblClickTimeThreshold)):2===p.clicks&&(clearTimeout(o.dblClickTimeOut),p.clicks=0,o.lastClickPos.distanceTo(g)<=b.dblClickDistThreshold&&(f=b.dblClickHandler({eventSource:b,pointerType:m.type,position:k(m.currentPos,b.element),shift:c.shiftKey,isTouchEvent:"touch"===m.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),f===!1&&a.cancelEvent(c)),o.lastClickPos=null)))):2===p.contacts&&b.pinchHandler&&"touch"===m.type&&(o.pinchGPoints=p.asArray(),o.lastPinchDist=o.currentPinchDist=o.pinchGPoints[0].currentPos.distanceTo(o.pinchGPoints[1].currentPos),o.lastPinchCenter=o.currentPinchCenter=l(o.pinchGPoints[0].currentPos,o.pinchGPoints[1].currentPos))):b.releaseHandler&&(f=b.releaseHandler({eventSource:b,pointerType:m.type,position:k(g,b.element),buttons:p.buttons,insideElementPressed:m.insideElementPressed,insideElementReleased:m.insideElement,isTouchEvent:"touch"===m.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),f===!1&&a.cancelEvent(c)));return r}function ka(b,c,d){var e,f,g,h,i,j,m=oa[b.hash],n=b.getActivePointersListByType(d[0].type),o=d.length;for("undefined"!=typeof c.buttons&&(n.buttons=c.buttons),e=0;o>e;e++)f=d[e],g=n.getById(f.id),g?(f.hasOwnProperty("isPrimary")&&(g.isPrimary=f.isPrimary),g.lastPos=g.currentPos,g.lastTime=g.currentTime,g.currentPos=f.currentPos,g.currentTime=f.currentTime):(f.captured=!1,f.insideElementPressed=!1,f.insideElement=!0,ea(n,f));b.stopHandler&&"mouse"===d[0].type&&(clearTimeout(b.stopTimeOut),b.stopTimeOut=setTimeout(function(){ma(b,c,d[0].type)},b.stopDelay)),0===n.contacts?b.moveHandler&&(j=b.moveHandler({eventSource:b,pointerType:d[0].type,position:k(d[0].currentPos,b.element),buttons:n.buttons,isTouchEvent:"touch"===d[0].type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),j===!1&&a.cancelEvent(c)):1===n.contacts?(b.moveHandler&&(g=n.asArray()[0],j=b.moveHandler({eventSource:b,pointerType:g.type,position:k(g.currentPos,b.element),buttons:n.buttons,isTouchEvent:"touch"===g.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),j===!1&&a.cancelEvent(c)),b.dragHandler&&(g=n.asArray()[0],i=g.currentPos.minus(g.lastPos),j=b.dragHandler({eventSource:b,pointerType:g.type,position:k(g.currentPos,b.element),buttons:n.buttons,delta:i,speed:g.speed,direction:g.direction,shift:c.shiftKey,isTouchEvent:"touch"===g.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),j===!1&&a.cancelEvent(c))):2===n.contacts&&(b.moveHandler&&(h=n.asArray(),j=b.moveHandler({eventSource:b,pointerType:h[0].type,position:k(l(h[0].currentPos,h[1].currentPos),b.element),buttons:n.buttons,isTouchEvent:"touch"===h[0].type,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),j===!1&&a.cancelEvent(c)),b.pinchHandler&&"touch"===d[0].type&&(i=m.pinchGPoints[0].currentPos.distanceTo(m.pinchGPoints[1].currentPos),i!=m.currentPinchDist&&(m.lastPinchDist=m.currentPinchDist,m.currentPinchDist=i,m.lastPinchCenter=m.currentPinchCenter,m.currentPinchCenter=l(m.pinchGPoints[0].currentPos,m.pinchGPoints[1].currentPos),j=b.pinchHandler({eventSource:b,pointerType:"touch",gesturePoints:m.pinchGPoints,lastCenter:k(m.lastPinchCenter,b.element),center:k(m.currentPinchCenter,b.element),lastDistance:m.lastPinchDist,distance:m.currentPinchDist,shift:c.shiftKey,originalEvent:c,preventDefaultAction:!1,userData:b.userData}),j===!1&&a.cancelEvent(c))))}function la(a,b,c){ja(a,b,c,0),ha(a,b,c)}function ma(a,b,c){a.stopHandler&&a.stopHandler({eventSource:a,pointerType:c,position:j(b,a.element),buttons:a.getActivePointersListByType(c).buttons,isTouchEvent:"touch"===c,originalEvent:b,preventDefaultAction:!1,userData:a.userData})}var na=[],oa={};a.MouseTracker=function(b){na.push(this);var c=arguments;a.isPlainObject(b)||(b={element:c[0],clickTimeThreshold:c[1],clickDistThreshold:c[2]}),this.hash=Math.random(),this.element=a.getElement(b.element),this.clickTimeThreshold=b.clickTimeThreshold||a.DEFAULT_SETTINGS.clickTimeThreshold,this.clickDistThreshold=b.clickDistThreshold||a.DEFAULT_SETTINGS.clickDistThreshold,this.dblClickTimeThreshold=b.dblClickTimeThreshold||a.DEFAULT_SETTINGS.dblClickTimeThreshold,this.dblClickDistThreshold=b.dblClickDistThreshold||a.DEFAULT_SETTINGS.dblClickDistThreshold,this.userData=b.userData||null,this.stopDelay=b.stopDelay||50,this.enterHandler=b.enterHandler||null,this.exitHandler=b.exitHandler||null,this.pressHandler=b.pressHandler||null,this.nonPrimaryPressHandler=b.nonPrimaryPressHandler||null,this.releaseHandler=b.releaseHandler||null,this.nonPrimaryReleaseHandler=b.nonPrimaryReleaseHandler||null,this.moveHandler=b.moveHandler||null,this.scrollHandler=b.scrollHandler||null,this.clickHandler=b.clickHandler||null,this.dblClickHandler=b.dblClickHandler||null,this.dragHandler=b.dragHandler||null,this.dragEndHandler=b.dragEndHandler||null,this.pinchHandler=b.pinchHandler||null,this.stopHandler=b.stopHandler||null,this.keyDownHandler=b.keyDownHandler||null,this.keyUpHandler=b.keyUpHandler||null,this.keyHandler=b.keyHandler||null,this.focusHandler=b.focusHandler||null,this.blurHandler=b.blurHandler||null;var d=this;oa[this.hash]={click:function(a){m(d,a)},dblclick:function(a){n(d,a)},keydown:function(a){o(d,a)},keyup:function(a){p(d,a)},keypress:function(a){q(d,a)},focus:function(a){r(d,a)},blur:function(a){s(d,a)},wheel:function(a){t(d,a)},mousewheel:function(a){u(d,a)},DOMMouseScroll:function(a){u(d,a)},MozMousePixelScroll:function(a){u(d,a)},mouseenter:function(a){x(d,a)},mouseleave:function(a){A(d,a)},mouseover:function(a){y(d,a)},mouseout:function(a){B(d,a)},mousedown:function(a){E(d,a)},mouseup:function(a){F(d,a)},mouseupcaptured:function(a){G(d,a)},mousemove:function(a){I(d,a)},mousemovecaptured:function(a){J(d,a)},touchstart:function(a){M(d,a)},touchend:function(a){N(d,a)},touchendcaptured:function(a){O(d,a)},touchmove:function(a){Q(d,a)},touchmovecaptured:function(a){R(d,a)},touchcancel:function(a){T(d,a)},gesturestart:function(a){U(d,a)},gesturechange:function(a){V(d,a)},pointerover:function(a){W(d,a)},MSPointerOver:function(a){W(d,a)},pointerout:function(a){X(d,a)},MSPointerOut:function(a){X(d,a)},pointerdown:function(a){Y(d,a)},MSPointerDown:function(a){Y(d,a)},pointerup:function(a){Z(d,a)},MSPointerUp:function(a){Z(d,a)},pointermove:function(a){aa(d,a)},MSPointerMove:function(a){aa(d,a)},pointercancel:function(a){da(d,a)},MSPointerCancel:function(a){da(d,a)},pointerupcaptured:function(a){$(d,a)},pointermovecaptured:function(a){ba(d,a)},tracking:!1,activePointersLists:[],lastClickPos:null,dblClickTimeOut:null,pinchGPoints:[],lastPinchDist:0,currentPinchDist:0,lastPinchCenter:null,currentPinchCenter:null},b.startDisabled||this.setTracking(!0)},a.MouseTracker.prototype={destroy:function(){var a;for(d(this),this.element=null,a=0;a<na.length;a++)if(na[a]===this){na.splice(a,1);break}oa[this.hash]=null,delete oa[this.hash]},isTracking:function(){return oa[this.hash].tracking},setTracking:function(a){return a?c(this):d(this),this},getActivePointersListByType:function(b){var c,d,e=oa[this.hash],f=e.activePointersLists.length;for(c=0;f>c;c++)if(e.activePointersLists[c].type===b)return e.activePointersLists[c];return d=new a.MouseTracker.GesturePointList(b),e.activePointersLists.push(d),d},getActivePointerCount:function(){var a,b=oa[this.hash],c=b.activePointersLists.length,d=0;for(a=0;c>a;a++)d+=b.activePointersLists[a].getLength();return d},enterHandler:function(){},exitHandler:function(){},pressHandler:function(){},nonPrimaryPressHandler:function(){},releaseHandler:function(){},nonPrimaryReleaseHandler:function(){},moveHandler:function(){},scrollHandler:function(){},clickHandler:function(){},dblClickHandler:function(){},dragHandler:function(){},dragEndHandler:function(){},pinchHandler:function(){},stopHandler:function(){},keyDownHandler:function(){},keyUpHandler:function(){},keyHandler:function(){},focusHandler:function(){},blurHandler:function(){}},a.MouseTracker.gesturePointVelocityTracker=function(){var b=[],c=0,d=0,e=function(a,b){return a.hash.toString()+b.type+b.id.toString()},f=function(){var c,e,f,g,h,i,j=b.length,k=a.now();for(g=k-d,d=k,c=0;j>c;c++)e=b[c],f=e.gPoint,f.direction=Math.atan2(f.currentPos.y-e.lastPos.y,f.currentPos.x-e.lastPos.x),h=e.lastPos.distanceTo(f.currentPos),e.lastPos=f.currentPos,i=1e3*h/(g+1),f.speed=.75*i+.25*f.speed},g=function(g,h){var i=e(g,h);b.push({guid:i,gPoint:h,lastPos:h.currentPos}),1===b.length&&(d=a.now(),c=window.setInterval(f,50))},h=function(a,d){var f,g=e(a,d),h=b.length;for(f=0;h>f;f++)if(b[f].guid===g){b.splice(f,1),h--,0===h&&window.clearInterval(c);break}};return{addPoint:g,removePoint:h}}(),a.MouseTracker.captureElement=document,a.MouseTracker.wheelEventName=a.Browser.vendor==a.BROWSERS.IE&&a.Browser.version>8||"onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll",a.MouseTracker.supportsMouseCapture=function(){var b=document.createElement("div");return a.isFunction(b.setCapture)&&a.isFunction(b.releaseCapture)}(),a.MouseTracker.subscribeEvents=["click","dblclick","keydown","keyup","keypress","focus","blur",a.MouseTracker.wheelEventName],"DOMMouseScroll"==a.MouseTracker.wheelEventName&&a.MouseTracker.subscribeEvents.push("MozMousePixelScroll"),window.PointerEvent&&(window.navigator.pointerEnabled||a.Browser.vendor!==a.BROWSERS.IE)?(a.MouseTracker.havePointerEvents=!0,a.MouseTracker.subscribeEvents.push("pointerover","pointerout","pointerdown","pointerup","pointermove","pointercancel"),a.MouseTracker.unprefixedPointerEvents=!0,navigator.maxTouchPoints?a.MouseTracker.maxTouchPoints=navigator.maxTouchPoints:a.MouseTracker.maxTouchPoints=0,a.MouseTracker.haveMouseEnter=!1):window.MSPointerEvent&&window.navigator.msPointerEnabled?(a.MouseTracker.havePointerEvents=!0,a.MouseTracker.subscribeEvents.push("MSPointerOver","MSPointerOut","MSPointerDown","MSPointerUp","MSPointerMove","MSPointerCancel"),a.MouseTracker.unprefixedPointerEvents=!1,navigator.msMaxTouchPoints?a.MouseTracker.maxTouchPoints=navigator.msMaxTouchPoints:a.MouseTracker.maxTouchPoints=0,a.MouseTracker.haveMouseEnter=!1):(a.MouseTracker.havePointerEvents=!1,a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9?(a.MouseTracker.subscribeEvents.push("mouseenter","mouseleave"),a.MouseTracker.haveMouseEnter=!0):(a.MouseTracker.subscribeEvents.push("mouseover","mouseout"),a.MouseTracker.haveMouseEnter=!1),a.MouseTracker.subscribeEvents.push("mousedown","mouseup","mousemove"),"ontouchstart"in window&&a.MouseTracker.subscribeEvents.push("touchstart","touchend","touchmove","touchcancel"),"ongesturestart"in window&&a.MouseTracker.subscribeEvents.push("gesturestart","gesturechange"),a.MouseTracker.mousePointerId="legacy-mouse",a.MouseTracker.maxTouchPoints=10),a.MouseTracker.GesturePointList=function(a){this._gPoints=[],this.type=a,this.buttons=0,this.contacts=0,this.clicks=0,this.captureCount=0},a.MouseTracker.GesturePointList.prototype={getLength:function(){return this._gPoints.length},asArray:function(){return this._gPoints},add:function(a){return this._gPoints.push(a)},removeById:function(a){var b,c=this._gPoints.length;for(b=0;c>b;b++)if(this._gPoints[b].id===a){this._gPoints.splice(b,1);break}return this._gPoints.length},getByIndex:function(a){return a<this._gPoints.length?this._gPoints[a]:null},getById:function(a){var b,c=this._gPoints.length;for(b=0;c>b;b++)if(this._gPoints[b].id===a)return this._gPoints[b];return null},getPrimary:function(a){var b,c=this._gPoints.length;for(b=0;c>b;b++)if(this._gPoints[b].isPrimary)return this._gPoints[b];return null}}}(OpenSeadragon),function(a){a.ControlAnchor={NONE:0,TOP_LEFT:1,TOP_RIGHT:2,BOTTOM_RIGHT:3,BOTTOM_LEFT:4,ABSOLUTE:5},a.Control=function(b,c,d){var e=b.parentNode;"number"==typeof c&&(a.console.error("Passing an anchor directly into the OpenSeadragon.Control constructor is deprecated; please use an options object instead. Support for this deprecated variant is scheduled for removal in December 2013"),c={anchor:c}),c.attachToViewer="undefined"==typeof c.attachToViewer?!0:c.attachToViewer,this.autoFade="undefined"==typeof c.autoFade?!0:c.autoFade,this.element=b,this.anchor=c.anchor,this.container=d,this.anchor==a.ControlAnchor.ABSOLUTE?(this.wrapper=a.makeNeutralElement("div"),this.wrapper.style.position="absolute",this.wrapper.style.top="number"==typeof c.top?c.top+"px":c.top,this.wrapper.style.left="number"==typeof c.left?c.left+"px":c.left,this.wrapper.style.height="number"==typeof c.height?c.height+"px":c.height,this.wrapper.style.width="number"==typeof c.width?c.width+"px":c.width,this.wrapper.style.margin="0px",this.wrapper.style.padding="0px",this.element.style.position="relative",this.element.style.top="0px",this.element.style.left="0px",this.element.style.height="100%",this.element.style.width="100%"):(this.wrapper=a.makeNeutralElement("div"),this.wrapper.style.display="inline-block",this.anchor==a.ControlAnchor.NONE&&(this.wrapper.style.width=this.wrapper.style.height="100%")),this.wrapper.appendChild(this.element),c.attachToViewer?this.anchor==a.ControlAnchor.TOP_RIGHT||this.anchor==a.ControlAnchor.BOTTOM_RIGHT?this.container.insertBefore(this.wrapper,this.container.firstChild):this.container.appendChild(this.wrapper):e.appendChild(this.wrapper)},a.Control.prototype={destroy:function(){this.wrapper.removeChild(this.element),this.container.removeChild(this.wrapper)},isVisible:function(){return"none"!=this.wrapper.style.display},setVisible:function(b){this.wrapper.style.display=b?this.anchor==a.ControlAnchor.ABSOLUTE?"block":"inline-block":"none"},setOpacity:function(b){this.element[a.SIGNAL]&&a.Browser.vendor==a.BROWSERS.IE?a.setElementOpacity(this.element,b,!0):a.setElementOpacity(this.wrapper,b,!0)}}}(OpenSeadragon),function(a){function b(a,b){var c,d=a.controls;for(c=d.length-1;c>=0;c--)if(d[c].element==b)return c;return-1}a.ControlDock=function(b){var c,d,e=["topleft","topright","bottomright","bottomleft"];for(a.extend(!0,this,{id:"controldock-"+a.now()+"-"+Math.floor(1e6*Math.random()),container:a.makeNeutralElement("div"),controls:[]},b),this.container.onsubmit=function(){return!1},this.element&&(this.element=a.getElement(this.element),this.element.appendChild(this.container),this.element.style.position="relative",this.container.style.width="100%",this.container.style.height="100%"),d=0;d<e.length;d++)c=e[d],this.controls[c]=a.makeNeutralElement("div"),this.controls[c].style.position="absolute",c.match("left")&&(this.controls[c].style.left="0px"),c.match("right")&&(this.controls[c].style.right="0px"),c.match("top")&&(this.controls[c].style.top="0px"),c.match("bottom")&&(this.controls[c].style.bottom="0px");this.container.appendChild(this.controls.topleft),this.container.appendChild(this.controls.topright),this.container.appendChild(this.controls.bottomright),this.container.appendChild(this.controls.bottomleft)},a.ControlDock.prototype={addControl:function(c,d){c=a.getElement(c);var e=null;if(!(b(this,c)>=0)){switch(d.anchor){case a.ControlAnchor.TOP_RIGHT:e=this.controls.topright,c.style.position="relative",c.style.paddingRight="0px",c.style.paddingTop="0px";break;case a.ControlAnchor.BOTTOM_RIGHT:e=this.controls.bottomright,c.style.position="relative",c.style.paddingRight="0px",c.style.paddingBottom="0px";break;case a.ControlAnchor.BOTTOM_LEFT:e=this.controls.bottomleft,c.style.position="relative",c.style.paddingLeft="0px",c.style.paddingBottom="0px";break;case a.ControlAnchor.TOP_LEFT:e=this.controls.topleft,c.style.position="relative",c.style.paddingLeft="0px",c.style.paddingTop="0px";break;case a.ControlAnchor.ABSOLUTE:e=this.container,c.style.margin="0px",c.style.padding="0px";break;default:case a.ControlAnchor.NONE:e=this.container,c.style.margin="0px",c.style.padding="0px"}this.controls.push(new a.Control(c,d,e)),c.style.display="inline-block"}},removeControl:function(c){c=a.getElement(c);var d=b(this,c);return d>=0&&(this.controls[d].destroy(),this.controls.splice(d,1)),this},clearControls:function(){for(;this.controls.length>0;)this.controls.pop().destroy();return this},areControlsEnabled:function(){var a;for(a=this.controls.length-1;a>=0;a--)if(this.controls[a].isVisible())return!0;return!1},setControlsEnabled:function(a){var b;for(b=this.controls.length-1;b>=0;b--)this.controls[b].setVisible(a);return this}}}(OpenSeadragon),function(a){function b(b){return b=a.getElement(b),new a.Point(0===b.clientWidth?1:b.clientWidth,0===b.clientHeight?1:b.clientHeight)}function c(b,c,d,e){function f(a,b){a.ready?d(a):(a.addHandler("ready",function(){d(a)}),a.addHandler("open-failed",function(a){e({message:a.message,source:b})}))}var g=b;"string"==a.type(c)&&(c.match(/\s*<.*/)?c=a.parseXml(c):c.match(/\s*[\{\[].*/)&&(c=a.parseJSON(c))),setTimeout(function(){if("string"==a.type(c))c=new a.TileSource({url:c,crossOriginPolicy:b.crossOriginPolicy,ajaxWithCredentials:b.ajaxWithCredentials,useCanvas:b.useCanvas,success:function(a){d(a.tileSource)}}),c.addHandler("open-failed",function(a){e(a)});else if(a.isPlainObject(c)||c.nodeType)if(!c.crossOriginPolicy&&b.crossOriginPolicy&&(c.crossOriginPolicy=b.crossOriginPolicy),void 0===c.ajaxWithCredentials&&(c.ajaxWithCredentials=b.ajaxWithCredentials),void 0===c.useCanvas&&(c.useCanvas=b.useCanvas),a.isFunction(c.getTileUrl)){var h=new a.TileSource(c);h.getTileUrl=c.getTileUrl,d(h)}else{var i=a.TileSource.determineType(g,c);if(!i)return void e({message:"Unable to load TileSource",source:c});var j=i.prototype.configure.apply(g,[c]);f(new i(j),c)}else f(c,c)})}function d(b,c){if(c instanceof a.Overlay)return c;var d=null;if(c.element)d=a.getElement(c.element);else{var e=c.id?c.id:"openseadragon-overlay-"+Math.floor(1e7*Math.random());d=a.getElement(c.id),d||(d=document.createElement("a"),d.href="#/overlay/"+e),d.id=e,a.addClass(d,c.className?c.className:"openseadragon-overlay")}var f=c.location;f||(f=c.width&&c.height?void 0!==c.px?b.viewport.imageToViewportRectangle(new a.Rect(c.px,c.py,c.width,c.height)):new a.Rect(c.x,c.y,c.width,c.height):void 0!==c.px?b.viewport.imageToViewportCoordinates(new a.Point(c.px,c.py)):new a.Point(c.x,c.y));var g=c.placement;return g&&"string"===a.type(g)&&(g=a.OverlayPlacement[c.placement.toUpperCase()]),new a.Overlay({element:d,location:f,placement:g,onDraw:c.onDraw,checkResize:c.checkResize})}function e(a,b){var c;for(c=a.length-1;c>=0;c--)if(a[c].element===b)return c;return-1}function f(b,c){return a.requestAnimationFrame(function(){c(b)})}function g(b){a.requestAnimationFrame(function(){i(b)})}function h(b){b.autoHideControls&&(b.controlsShouldFade=!0,b.controlsFadeBeginTime=a.now()+b.controlsFadeDelay,window.setTimeout(function(){g(b)},b.controlsFadeDelay))}function i(b){var c,d,e,f;if(b.controlsShouldFade){for(c=a.now(),d=c-b.controlsFadeBeginTime,e=1-d/b.controlsFadeLength,e=Math.min(1,e),e=Math.max(0,e),f=b.controls.length-1;f>=0;f--)b.controls[f].autoFade&&b.controls[f].setOpacity(e);e>0&&g(b)}}function j(a){var b;for(a.controlsShouldFade=!1,b=a.controls.length-1;b>=0;b--)a.controls[b].setOpacity(1)}function k(){j(this)}function l(){h(this)}function m(b){if(b.preventDefaultAction||b.ctrl||b.alt||b.meta)return!0;switch(b.keyCode){case 38:return b.shift?this.viewport.zoomBy(1.1):this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(0,-40))),this.viewport.applyConstraints(),!1;case 40:return b.shift?this.viewport.zoomBy(.9):this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(0,40))),this.viewport.applyConstraints(),!1;case 37:return this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(-40,0))),this.viewport.applyConstraints(),!1;case 39:return this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(40,0))),this.viewport.applyConstraints(),!1;default:return!0}}function n(b){if(b.preventDefaultAction||b.ctrl||b.alt||b.meta)return!0;switch(b.keyCode){case 43:case 61:return this.viewport.zoomBy(1.1),this.viewport.applyConstraints(),!1;case 45:return this.viewport.zoomBy(.9),this.viewport.applyConstraints(),!1;case 48:return this.viewport.goHome(),this.viewport.applyConstraints(),!1;case 119:case 87:return b.shift?this.viewport.zoomBy(1.1):this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(0,-40))),this.viewport.applyConstraints(),!1;case 115:case 83:return b.shift?this.viewport.zoomBy(.9):this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(0,40))),this.viewport.applyConstraints(),!1;case 97:return this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(-40,0))),this.viewport.applyConstraints(),!1;case 100:return this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(40,0))),this.viewport.applyConstraints(),!1;default:return!0}}function o(a){var b,c=document.activeElement==this.canvas;c||this.canvas.focus(),!a.preventDefaultAction&&this.viewport&&a.quick&&(b=this.gestureSettingsByDeviceType(a.pointerType),b.clickToZoom&&(this.viewport.zoomBy(a.shift?1/this.zoomPerClick:this.zoomPerClick,this.viewport.pointFromPixel(a.position,!0)),this.viewport.applyConstraints())),this.raiseEvent("canvas-click",{tracker:a.eventSource,position:a.position,quick:a.quick,shift:a.shift,originalEvent:a.originalEvent})}function p(a){var b;!a.preventDefaultAction&&this.viewport&&(b=this.gestureSettingsByDeviceType(a.pointerType),b.dblClickToZoom&&(this.viewport.zoomBy(a.shift?1/this.zoomPerClick:this.zoomPerClick,this.viewport.pointFromPixel(a.position,!0)),this.viewport.applyConstraints())),this.raiseEvent("canvas-double-click",{tracker:a.eventSource,position:a.position,shift:a.shift,originalEvent:a.originalEvent})}function q(a){var b;!a.preventDefaultAction&&this.viewport&&(b=this.gestureSettingsByDeviceType(a.pointerType),this.panHorizontal||(a.delta.x=0),this.panVertical||(a.delta.y=0),this.viewport.panBy(this.viewport.deltaPointsFromPixels(a.delta.negate()),b.flickEnabled),this.constrainDuringPan&&this.viewport.applyConstraints()),this.raiseEvent("canvas-drag",{tracker:a.eventSource,position:a.position,delta:a.delta,speed:a.speed,direction:a.direction,shift:a.shift,originalEvent:a.originalEvent})}function r(b){var c;if(!b.preventDefaultAction&&this.viewport){if(c=this.gestureSettingsByDeviceType(b.pointerType),c.flickEnabled&&b.speed>=c.flickMinSpeed){var d=c.flickMomentum*b.speed*Math.cos(b.direction-Math.PI/180*this.viewport.degrees),e=c.flickMomentum*b.speed*Math.sin(b.direction-Math.PI/180*this.viewport.degrees),f=this.viewport.pixelFromPoint(this.viewport.getCenter(!0)),g=this.viewport.pointFromPixel(new a.Point(f.x-d,f.y-e));this.panHorizontal||(g.x=f.x),this.panVertical||(g.y=f.y),this.viewport.panTo(g,!1)}this.viewport.applyConstraints()}this.raiseEvent("canvas-drag-end",{tracker:b.eventSource,position:b.position,speed:b.speed,direction:b.direction,shift:b.shift,originalEvent:b.originalEvent})}function s(a){this.raiseEvent("canvas-enter",{tracker:a.eventSource,pointerType:a.pointerType,position:a.position,buttons:a.buttons,pointers:a.pointers,insideElementPressed:a.insideElementPressed,buttonDownAny:a.buttonDownAny,originalEvent:a.originalEvent})}function t(a){this.raiseEvent("canvas-exit",{tracker:a.eventSource,pointerType:a.pointerType,position:a.position,buttons:a.buttons,pointers:a.pointers,insideElementPressed:a.insideElementPressed,buttonDownAny:a.buttonDownAny,originalEvent:a.originalEvent})}function u(a){this.raiseEvent("canvas-press",{tracker:a.eventSource,pointerType:a.pointerType,position:a.position,insideElementPressed:a.insideElementPressed,insideElementReleased:a.insideElementReleased,originalEvent:a.originalEvent})}function v(a){this.raiseEvent("canvas-release",{tracker:a.eventSource,pointerType:a.pointerType,position:a.position,insideElementPressed:a.insideElementPressed,insideElementReleased:a.insideElementReleased,originalEvent:a.originalEvent})}function w(a){this.raiseEvent("canvas-nonprimary-press",{tracker:a.eventSource,position:a.position,pointerType:a.pointerType,button:a.button,buttons:a.buttons,originalEvent:a.originalEvent})}function x(a){this.raiseEvent("canvas-nonprimary-release",{tracker:a.eventSource,position:a.position,pointerType:a.pointerType,button:a.button,buttons:a.buttons,originalEvent:a.originalEvent})}function y(a){var b,c,d,e;if(!a.preventDefaultAction&&this.viewport&&(b=this.gestureSettingsByDeviceType(a.pointerType),b.pinchToZoom&&(c=this.viewport.pointFromPixel(a.center,!0),d=this.viewport.pointFromPixel(a.lastCenter,!0),e=d.minus(c),this.panHorizontal||(e.x=0),this.panVertical||(e.y=0),this.viewport.zoomBy(a.distance/a.lastDistance,c,!0),this.viewport.panBy(e,!0),this.viewport.applyConstraints()),b.pinchRotate)){var f=Math.atan2(a.gesturePoints[0].currentPos.y-a.gesturePoints[1].currentPos.y,a.gesturePoints[0].currentPos.x-a.gesturePoints[1].currentPos.x),g=Math.atan2(a.gesturePoints[0].lastPos.y-a.gesturePoints[1].lastPos.y,a.gesturePoints[0].lastPos.x-a.gesturePoints[1].lastPos.x);this.viewport.setRotation(this.viewport.getRotation()+(f-g)*(180/Math.PI))}return this.raiseEvent("canvas-pinch",{tracker:a.eventSource, 8 gesturePoints:a.gesturePoints,lastCenter:a.lastCenter,center:a.center,lastDistance:a.lastDistance,distance:a.distance,shift:a.shift,originalEvent:a.originalEvent}),!1}function z(b){var c,d,e,f;return e=a.now(),f=e-this._lastScrollTime,f>this.minScrollDeltaTime?(this._lastScrollTime=e,!b.preventDefaultAction&&this.viewport&&(c=this.gestureSettingsByDeviceType(b.pointerType),c.scrollToZoom&&(d=Math.pow(this.zoomPerScroll,b.scroll),this.viewport.zoomBy(d,this.viewport.pointFromPixel(b.position,!0)),this.viewport.applyConstraints())),this.raiseEvent("canvas-scroll",{tracker:b.eventSource,position:b.position,scroll:b.scroll,shift:b.shift,originalEvent:b.originalEvent}),c&&c.scrollToZoom?!1:void 0):!1}function A(a){V[this.hash].mouseInside=!0,j(this),this.raiseEvent("container-enter",{tracker:a.eventSource,position:a.position,buttons:a.buttons,pointers:a.pointers,insideElementPressed:a.insideElementPressed,buttonDownAny:a.buttonDownAny,originalEvent:a.originalEvent})}function B(a){a.pointers<1&&(V[this.hash].mouseInside=!1,V[this.hash].animating||h(this)),this.raiseEvent("container-exit",{tracker:a.eventSource,position:a.position,buttons:a.buttons,pointers:a.pointers,insideElementPressed:a.insideElementPressed,buttonDownAny:a.buttonDownAny,originalEvent:a.originalEvent})}function C(a){D(a),a.isOpen()?a._updateRequestId=f(a,C):a._updateRequestId=!1}function D(a){if(!a._opening){var c;if(a.autoResize&&(c=b(a.container),!c.equals(V[a.hash].prevContainerSize))){if(a.preserveImageSizeOnResize){var d=V[a.hash].prevContainerSize,e=a.viewport.getBounds(!0),f=c.x-d.x,g=c.y-d.y,i=a.viewport.deltaPointsFromPixels(new OpenSeadragon.Point(f,g),!0);a.viewport.resize(new OpenSeadragon.Point(c.x,c.y),!1),e.width+=i.x,e.height+=i.y,e.x-=i.x/2,e.y-=i.y/2,a.viewport.fitBoundsWithConstraints(e,!0)}else{var k=a.viewport.getBounds(),l=a.viewport.getCenter();E(a,c,k,l)}V[a.hash].prevContainerSize=c,V[a.hash].forceRedraw=!0}var m=a.viewport.update(),n=a.world.update()||m;m&&a.raiseEvent("viewport-change"),a.referenceStrip&&(n=a.referenceStrip.update(a.viewport)||n),!V[a.hash].animating&&n&&(a.raiseEvent("animation-start"),j(a)),(n||V[a.hash].forceRedraw||a.world.needsDraw())&&(F(a),a._drawOverlays(),a.navigator&&a.navigator.update(a.viewport),V[a.hash].forceRedraw=!1,n&&a.raiseEvent("animation")),V[a.hash].animating&&!n&&(a.raiseEvent("animation-finish"),V[a.hash].mouseInside||h(a)),V[a.hash].animating=n}}function E(b,c,d,e){var f=b.viewport;f.resize(c,!0);var g=new a.Rect(e.x-d.width/2,e.y-d.height/2,d.width,d.height);f.fitBoundsWithConstraints(g,!0)}function F(a){a.imageLoader.clear(),a.drawer.clear(),a.world.draw(),a.raiseEvent("update-viewport",{})}function G(a,b){return a?a+b:b}function H(){V[this.hash].lastZoomTime=a.now(),V[this.hash].zoomFactor=this.zoomPerSecond,V[this.hash].zooming=!0,K(this)}function I(){V[this.hash].lastZoomTime=a.now(),V[this.hash].zoomFactor=1/this.zoomPerSecond,V[this.hash].zooming=!0,K(this)}function J(){V[this.hash].zooming=!1}function K(b){a.requestAnimationFrame(a.delegate(b,L))}function L(){var b,c,d;V[this.hash].zooming&&this.viewport&&(b=a.now(),c=b-V[this.hash].lastZoomTime,d=Math.pow(V[this.hash].zoomFactor,c/1e3),this.viewport.zoomBy(d),this.viewport.applyConstraints(),V[this.hash].lastZoomTime=b,K(this))}function M(){this.viewport&&(V[this.hash].zooming=!1,this.viewport.zoomBy(this.zoomPerClick/1),this.viewport.applyConstraints())}function N(){this.viewport&&(V[this.hash].zooming=!1,this.viewport.zoomBy(1/this.zoomPerClick),this.viewport.applyConstraints())}function O(){this.buttons.emulateEnter(),this.buttons.emulateExit()}function P(){this.viewport&&this.viewport.goHome()}function Q(){this.isFullPage()&&!a.isFullScreen()?this.setFullPage(!1):this.setFullScreen(!this.isFullPage()),this.buttons&&this.buttons.emulateExit(),this.fullPageButton.element.focus(),this.viewport&&this.viewport.applyConstraints()}function R(){if(this.viewport){var a=this.viewport.getRotation();0===a?a=270:a-=90,this.viewport.setRotation(a)}}function S(){if(this.viewport){var a=this.viewport.getRotation();270===a?a=0:a+=90,this.viewport.setRotation(a)}}function T(){var a=this._sequenceIndex-1;this.navPrevNextWrap&&0>a&&(a+=this.tileSources.length),this.goToPage(a)}function U(){var a=this._sequenceIndex+1;this.navPrevNextWrap&&a>=this.tileSources.length&&(a=0),this.goToPage(a)}var V={},W=1;a.Viewer=function(c){var d,e=arguments,g=this;if(a.isPlainObject(c)||(c={id:e[0],xmlPath:e.length>1?e[1]:void 0,prefixUrl:e.length>2?e[2]:void 0,controls:e.length>3?e[3]:void 0,overlays:e.length>4?e[4]:void 0}),c.config&&(a.extend(!0,c,c.config),delete c.config),a.extend(!0,this,{id:c.id,hash:c.hash||W++,element:null,container:null,canvas:null,overlays:[],overlaysContainer:null,previousBody:[],customControls:[],source:null,drawer:null,world:null,viewport:null,navigator:null,collectionViewport:null,collectionDrawer:null,navImages:null,buttons:null,profiler:null},a.DEFAULT_SETTINGS,c),"undefined"==typeof this.hash)throw new Error("A hash must be defined, either by specifying options.id or options.hash.");for("undefined"!=typeof V[this.hash]&&a.console.warn("Hash "+this.hash+" has already been used."),V[this.hash]={fsBoundsDelta:new a.Point(1,1),prevContainerSize:null,animating:!1,forceRedraw:!1,mouseInside:!1,group:null,zooming:!1,zoomFactor:null,lastZoomTime:null,fullPage:!1,onfullscreenchange:null},this._sequenceIndex=0,this._firstOpen=!0,this._updateRequestId=null,this._loadQueue=[],this.currentOverlays=[],this._lastScrollTime=a.now(),a.EventSource.call(this),this.addHandler("open-failed",function(b){var c=a.getString("Errors.OpenFailed",b.eventSource,b.message);g._showMessage(c)}),a.ControlDock.call(this,c),this.xmlPath&&(this.tileSources=[this.xmlPath]),this.element=this.element||document.getElementById(this.id),this.canvas=a.makeNeutralElement("div"),this.canvas.className="openseadragon-canvas",function(a){a.width="100%",a.height="100%",a.overflow="hidden",a.position="absolute",a.top="0px",a.left="0px"}(this.canvas.style),a.setElementTouchActionNone(this.canvas),this.canvas.tabIndex=c.tabIndex||0,this.container.className="openseadragon-container",function(a){a.width="100%",a.height="100%",a.position="relative",a.overflow="hidden",a.left="0px",a.top="0px",a.textAlign="left"}(this.container.style),this.container.insertBefore(this.canvas,this.container.firstChild),this.element.appendChild(this.container),this.bodyWidth=document.body.style.width,this.bodyHeight=document.body.style.height,this.bodyOverflow=document.body.style.overflow,this.docOverflow=document.documentElement.style.overflow,this.innerTracker=new a.MouseTracker({element:this.canvas,startDisabled:this.mouseNavEnabled?!1:!0,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,dblClickTimeThreshold:this.dblClickTimeThreshold,dblClickDistThreshold:this.dblClickDistThreshold,keyDownHandler:a.delegate(this,m),keyHandler:a.delegate(this,n),clickHandler:a.delegate(this,o),dblClickHandler:a.delegate(this,p),dragHandler:a.delegate(this,q),dragEndHandler:a.delegate(this,r),enterHandler:a.delegate(this,s),exitHandler:a.delegate(this,t),pressHandler:a.delegate(this,u),releaseHandler:a.delegate(this,v),nonPrimaryPressHandler:a.delegate(this,w),nonPrimaryReleaseHandler:a.delegate(this,x),scrollHandler:a.delegate(this,z),pinchHandler:a.delegate(this,y)}),this.outerTracker=new a.MouseTracker({element:this.container,startDisabled:this.mouseNavEnabled?!1:!0,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,dblClickTimeThreshold:this.dblClickTimeThreshold,dblClickDistThreshold:this.dblClickDistThreshold,enterHandler:a.delegate(this,A),exitHandler:a.delegate(this,B)}),this.toolbar&&(this.toolbar=new a.ControlDock({element:this.toolbar})),this.bindStandardControls(),V[this.hash].prevContainerSize=b(this.container),this.world=new a.World({viewer:this}),this.world.addHandler("add-item",function(a){g.source=g.world.getItemAt(0).source,V[g.hash].forceRedraw=!0,g._updateRequestId||(g._updateRequestId=f(g,C))}),this.world.addHandler("remove-item",function(a){g.world.getItemCount()?g.source=g.world.getItemAt(0).source:g.source=null,V[g.hash].forceRedraw=!0}),this.world.addHandler("metrics-change",function(a){g.viewport&&g.viewport.setHomeBounds(g.world.getHomeBounds(),g.world.getContentFactor())}),this.world.addHandler("item-index-change",function(a){g.source=g.world.getItemAt(0).source}),this.viewport=new a.Viewport({containerSize:V[this.hash].prevContainerSize,springStiffness:this.springStiffness,animationTime:this.animationTime,minZoomImageRatio:this.minZoomImageRatio,maxZoomPixelRatio:this.maxZoomPixelRatio,visibilityRatio:this.visibilityRatio,wrapHorizontal:this.wrapHorizontal,wrapVertical:this.wrapVertical,defaultZoomLevel:this.defaultZoomLevel,minZoomLevel:this.minZoomLevel,maxZoomLevel:this.maxZoomLevel,viewer:this,degrees:this.degrees,navigatorRotate:this.navigatorRotate,homeFillsViewer:this.homeFillsViewer,margins:this.viewportMargins}),this.viewport.setHomeBounds(this.world.getHomeBounds(),this.world.getContentFactor()),this.imageLoader=new a.ImageLoader({jobLimit:this.imageLoaderLimit}),this.tileCache=new a.TileCache({maxImageCacheCount:this.maxImageCacheCount}),this.drawer=new a.Drawer({viewer:this,viewport:this.viewport,element:this.canvas,debugGridColor:this.debugGridColor}),this.overlaysContainer=a.makeNeutralElement("div"),this.canvas.appendChild(this.overlaysContainer),this.drawer.canRotate()||(this.rotateLeft&&(d=this.buttons.buttons.indexOf(this.rotateLeft),this.buttons.buttons.splice(d,1),this.buttons.element.removeChild(this.rotateLeft.element)),this.rotateRight&&(d=this.buttons.buttons.indexOf(this.rotateRight),this.buttons.buttons.splice(d,1),this.buttons.element.removeChild(this.rotateRight.element))),this.showNavigator&&(this.navigator=new a.Navigator({id:this.navigatorId,position:this.navigatorPosition,sizeRatio:this.navigatorSizeRatio,maintainSizeRatio:this.navigatorMaintainSizeRatio,top:this.navigatorTop,left:this.navigatorLeft,width:this.navigatorWidth,height:this.navigatorHeight,autoResize:this.navigatorAutoResize,prefixUrl:this.prefixUrl,viewer:this,navigatorRotate:this.navigatorRotate,crossOriginPolicy:this.crossOriginPolicy})),this.sequenceMode&&this.bindSequenceControls(),this.tileSources&&this.open(this.tileSources),d=0;d<this.customControls.length;d++)this.addControl(this.customControls[d].id,{anchor:this.customControls[d].anchor});a.requestAnimationFrame(function(){h(g)})},a.extend(a.Viewer.prototype,a.EventSource.prototype,a.ControlDock.prototype,{isOpen:function(){return!!this.world.getItemCount()},openDzi:function(b){return a.console.error("[Viewer.openDzi] this function is deprecated; use Viewer.open() instead."),this.open(b)},openTileSource:function(b){return a.console.error("[Viewer.openTileSource] this function is deprecated; use Viewer.open() instead."),this.open(b)},open:function(b){var c=this;if(this.close(),b){if(this.sequenceMode&&a.isArray(b))return this.referenceStrip&&(this.referenceStrip.destroy(),this.referenceStrip=null),this.tileSources=b,this._sequenceIndex=Math.max(0,Math.min(this.tileSources.length-1,this.initialPage)),this.tileSources.length&&(this.open(this.tileSources[this._sequenceIndex]),this.showReferenceStrip&&(this.referenceStrip=new a.ReferenceStrip({id:this.referenceStripElement,position:this.referenceStripPosition,sizeRatio:this.referenceStripSizeRatio,scroll:this.referenceStripScroll,height:this.referenceStripHeight,width:this.referenceStripWidth,tileSources:this.tileSources,prefixUrl:this.prefixUrl,viewer:this}))),void this._updateSequenceButtons(this._sequenceIndex);if(a.isArray(b)||(b=[b]),b.length){this._opening=!0;for(var e,f=b.length,g=0,h=0,i=function(){if(g+h===f)if(g){(c._firstOpen||!c.preserveViewport)&&(c.viewport.goHome(!0),c.viewport.update()),c._firstOpen=!1;var a=b[0];if(a.tileSource&&(a=a.tileSource),c.overlays&&!c.preserveOverlays)for(var i=0;i<c.overlays.length;i++)c.currentOverlays[i]=d(c,c.overlays[i]);c._drawOverlays(),c._opening=!1,c.raiseEvent("open",{source:a})}else c._opening=!1,c.raiseEvent("open-failed",e)},j=function(b){a.isPlainObject(b)&&b.tileSource||(b={tileSource:b}),void 0!==b.index&&(a.console.error("[Viewer.open] setting indexes here is not supported; use addTiledImage instead"),delete b.index),void 0===b.collectionImmediately&&(b.collectionImmediately=!0);var d=b.success;b.success=function(a){if(g++,b.tileSource.overlays)for(var e=0;e<b.tileSource.overlays.length;e++)c.addOverlay(b.tileSource.overlays[e]);d&&d(a),i()};var f=b.error;b.error=function(a){h++,e||(e=a),f&&f(a),i()},c.addTiledImage(b)},k=0;k<b.length;k++)j(b[k]);return this}}},close:function(){return V[this.hash]?(this._opening=!1,this.navigator&&this.navigator.close(),this.preserveOverlays||(this.clearOverlays(),this.overlaysContainer.innerHTML=""),V[this.hash].animating=!1,this.world.removeAll(),this.imageLoader.clear(),this.raiseEvent("close"),this):this},destroy:function(){if(V[this.hash]){if(this.close(),this.clearOverlays(),this.overlaysContainer.innerHTML="",this.referenceStrip&&(this.referenceStrip.destroy(),this.referenceStrip=null),null!==this._updateRequestId&&(a.cancelAnimationFrame(this._updateRequestId),this._updateRequestId=null),this.drawer&&this.drawer.destroy(),this.removeAllHandlers(),this.element)for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.innerTracker&&this.innerTracker.destroy(),this.outerTracker&&this.outerTracker.destroy(),V[this.hash]=null,delete V[this.hash],this.canvas=null,this.container=null,this.element=null}},isMouseNavEnabled:function(){return this.innerTracker.isTracking()},setMouseNavEnabled:function(a){return this.innerTracker.setTracking(a),this.raiseEvent("mouse-enabled",{enabled:a}),this},areControlsEnabled:function(){var a,b=this.controls.length;for(a=0;a<this.controls.length;a++)b=b&&this.controls[a].isVisibile();return b},setControlsEnabled:function(a){return a?j(this):h(this),this.raiseEvent("controls-enabled",{enabled:a}),this},isFullPage:function(){return V[this.hash].fullPage},setFullPage:function(b){var c,d,e=document.body,f=e.style,g=document.documentElement.style,h=this;if(b==this.isFullPage())return this;var i={fullPage:b,preventDefaultAction:!1};if(this.raiseEvent("pre-full-page",i),i.preventDefaultAction)return this;if(b){for(this.elementSize=a.getElementSize(this.element),this.pageScroll=a.getPageScroll(),this.elementMargin=this.element.style.margin,this.element.style.margin="0",this.elementPadding=this.element.style.padding,this.element.style.padding="0",this.bodyMargin=f.margin,this.docMargin=g.margin,f.margin="0",g.margin="0",this.bodyPadding=f.padding,this.docPadding=g.padding,f.padding="0",g.padding="0",this.bodyWidth=f.width,this.bodyHeight=f.height,f.width="100%",f.height="100%",this.previousBody=[],V[this.hash].prevElementParent=this.element.parentNode,V[this.hash].prevNextSibling=this.element.nextSibling,V[this.hash].prevElementWidth=this.element.style.width,V[this.hash].prevElementHeight=this.element.style.height,c=e.childNodes.length,d=0;c>d;d++)this.previousBody.push(e.childNodes[0]),e.removeChild(e.childNodes[0]);this.toolbar&&this.toolbar.element&&(this.toolbar.parentNode=this.toolbar.element.parentNode,this.toolbar.nextSibling=this.toolbar.element.nextSibling,e.appendChild(this.toolbar.element),a.addClass(this.toolbar.element,"fullpage")),a.addClass(this.element,"fullpage"),e.appendChild(this.element),this.element.style.height=a.getWindowSize().y+"px",this.element.style.width=a.getWindowSize().x+"px",this.toolbar&&this.toolbar.element&&(this.element.style.height=a.getElementSize(this.element).y-a.getElementSize(this.toolbar.element).y+"px"),V[this.hash].fullPage=!0,a.delegate(this,A)({})}else{for(this.element.style.margin=this.elementMargin,this.element.style.padding=this.elementPadding,f.margin=this.bodyMargin,g.margin=this.docMargin,f.padding=this.bodyPadding,g.padding=this.docPadding,f.width=this.bodyWidth,f.height=this.bodyHeight,e.removeChild(this.element),c=this.previousBody.length,d=0;c>d;d++)e.appendChild(this.previousBody.shift());a.removeClass(this.element,"fullpage"),V[this.hash].prevElementParent.insertBefore(this.element,V[this.hash].prevNextSibling),this.toolbar&&this.toolbar.element&&(e.removeChild(this.toolbar.element),a.removeClass(this.toolbar.element,"fullpage"),this.toolbar.parentNode.insertBefore(this.toolbar.element,this.toolbar.nextSibling),delete this.toolbar.parentNode,delete this.toolbar.nextSibling),this.element.style.width=V[this.hash].prevElementWidth,this.element.style.height=V[this.hash].prevElementHeight;var j=0,k=function(){a.setPageScroll(h.pageScroll);var b=a.getPageScroll();j++,(10>j&&b.x!==h.pageScroll.x||b.y!==h.pageScroll.y)&&a.requestAnimationFrame(k)};a.requestAnimationFrame(k),V[this.hash].fullPage=!1,a.delegate(this,B)({})}return this.navigator&&this.viewport&&this.navigator.update(this.viewport),this.raiseEvent("full-page",{fullPage:b}),this},setFullScreen:function(b){var c=this;if(!a.supportsFullScreen)return this.setFullPage(b);if(a.isFullScreen()===b)return this;var d={fullScreen:b,preventDefaultAction:!1};if(this.raiseEvent("pre-full-screen",d),d.preventDefaultAction)return this;if(b){if(this.setFullPage(!0),!this.isFullPage())return this;this.fullPageStyleWidth=this.element.style.width,this.fullPageStyleHeight=this.element.style.height,this.element.style.width="100%",this.element.style.height="100%";var e=function(){var b=a.isFullScreen();b||(a.removeEvent(document,a.fullScreenEventName,e),a.removeEvent(document,a.fullScreenErrorEventName,e),c.setFullPage(!1),c.isFullPage()&&(c.element.style.width=c.fullPageStyleWidth,c.element.style.height=c.fullPageStyleHeight)),c.navigator&&c.viewport&&c.navigator.update(c.viewport),c.raiseEvent("full-screen",{fullScreen:b})};a.addEvent(document,a.fullScreenEventName,e),a.addEvent(document,a.fullScreenErrorEventName,e),a.requestFullScreen(document.body)}else a.exitFullScreen();return this},isVisible:function(){return"hidden"!=this.container.style.visibility},setVisible:function(a){return this.container.style.visibility=a?"":"hidden",this.raiseEvent("visible",{visible:a}),this},addTiledImage:function(b){function d(a){for(var c=0;c<f._loadQueue.length;c++)if(f._loadQueue[c]===g){f._loadQueue.splice(c,1);break}0===f._loadQueue.length&&e(g),f.raiseEvent("add-item-failed",a),b.error&&b.error(a)}function e(a){f.collectionMode&&(f.world.arrange({immediately:a.options.collectionImmediately,rows:f.collectionRows,columns:f.collectionColumns,layout:f.collectionLayout,tileSize:f.collectionTileSize,tileMargin:f.collectionTileMargin}),f.world.setAutoRefigureSizes(!0))}a.console.assert(b,"[Viewer.addTiledImage] options is required"),a.console.assert(b.tileSource,"[Viewer.addTiledImage] options.tileSource is required"),a.console.assert(!b.replace||b.index>-1&&b.index<this.world.getItemCount(),"[Viewer.addTiledImage] if options.replace is used, options.index must be a valid index in Viewer.world");var f=this;b.replace&&(b.replaceItem=f.world.getItemAt(b.index)),this._hideMessage(),void 0===b.placeholderFillStyle&&(b.placeholderFillStyle=this.placeholderFillStyle),void 0===b.opacity&&(b.opacity=this.opacity);var g={options:b};return a.isArray(b.tileSource)?void setTimeout(function(){d({message:"[Viewer.addTiledImage] Sequences can not be added; add them one at a time instead.",source:b.tileSource,options:b})}):(this._loadQueue.push(g),void c(this,b.tileSource,function(b){g.tileSource=b;for(var c,d,h;f._loadQueue.length&&(c=f._loadQueue[0],c.tileSource);){if(f._loadQueue.splice(0,1),c.options.replace){var i=f.world.getIndexOfItem(c.options.replaceItem);-1!=i&&(c.options.index=i),f.world.removeItem(c.options.replaceItem)}d=new a.TiledImage({viewer:f,source:c.tileSource,viewport:f.viewport,drawer:f.drawer,tileCache:f.tileCache,imageLoader:f.imageLoader,x:c.options.x,y:c.options.y,width:c.options.width,height:c.options.height,clip:c.options.clip,placeholderFillStyle:c.options.placeholderFillStyle,opacity:c.options.opacity,springStiffness:f.springStiffness,animationTime:f.animationTime,minZoomImageRatio:f.minZoomImageRatio,wrapHorizontal:f.wrapHorizontal,wrapVertical:f.wrapVertical,immediateRender:f.immediateRender,blendTime:f.blendTime,alwaysBlend:f.alwaysBlend,minPixelRatio:f.minPixelRatio,crossOriginPolicy:f.crossOriginPolicy,debugMode:f.debugMode}),f.collectionMode&&f.world.setAutoRefigureSizes(!1),f.world.addItem(d,{index:c.options.index}),0===f._loadQueue.length&&e(c),1!==f.world.getItemCount()||f.preserveViewport||f.viewport.goHome(!0),f.navigator&&(h=a.extend({},c.options,{originalTiledImage:d,tileSource:c.tileSource}),f.navigator.addTiledImage(h)),c.options.success&&c.options.success({item:d})}},function(a){a.options=b,d(a)}))},addLayer:function(b){var c=this;a.console.error("[Viewer.addLayer] this function is deprecated; use Viewer.addTiledImage() instead.");var d=a.extend({},b,{success:function(a){c.raiseEvent("add-layer",{options:b,drawer:a.item})},error:function(a){c.raiseEvent("add-layer-failed",a)}});return this.addTiledImage(d),this},getLayerAtLevel:function(b){return a.console.error("[Viewer.getLayerAtLevel] this function is deprecated; use World.getItemAt() instead."),this.world.getItemAt(b)},getLevelOfLayer:function(b){return a.console.error("[Viewer.getLevelOfLayer] this function is deprecated; use World.getIndexOfItem() instead."),this.world.getIndexOfItem(b)},getLayersCount:function(){return a.console.error("[Viewer.getLayersCount] this function is deprecated; use World.getItemCount() instead."),this.world.getItemCount()},setLayerLevel:function(b,c){return a.console.error("[Viewer.setLayerLevel] this function is deprecated; use World.setItemIndex() instead."),this.world.setItemIndex(b,c)},removeLayer:function(b){return a.console.error("[Viewer.removeLayer] this function is deprecated; use World.removeItem() instead."),this.world.removeItem(b)},forceRedraw:function(){return V[this.hash].forceRedraw=!0,this},bindSequenceControls:function(){var b=a.delegate(this,k),c=a.delegate(this,l),d=a.delegate(this,U),e=a.delegate(this,T),f=this.navImages,g=!0;return this.showSequenceControl&&((this.previousButton||this.nextButton)&&(g=!1),this.previousButton=new a.Button({element:this.previousButton?a.getElement(this.previousButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.PreviousPage"),srcRest:G(this.prefixUrl,f.previous.REST),srcGroup:G(this.prefixUrl,f.previous.GROUP),srcHover:G(this.prefixUrl,f.previous.HOVER),srcDown:G(this.prefixUrl,f.previous.DOWN),onRelease:e,onFocus:b,onBlur:c}),this.nextButton=new a.Button({element:this.nextButton?a.getElement(this.nextButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.NextPage"),srcRest:G(this.prefixUrl,f.next.REST),srcGroup:G(this.prefixUrl,f.next.GROUP),srcHover:G(this.prefixUrl,f.next.HOVER),srcDown:G(this.prefixUrl,f.next.DOWN),onRelease:d,onFocus:b,onBlur:c}),this.navPrevNextWrap||this.previousButton.disable(),this.tileSources&&this.tileSources.length||this.nextButton.disable(),g&&(this.paging=new a.ButtonGroup({buttons:[this.previousButton,this.nextButton],clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold}),this.pagingControl=this.paging.element,this.toolbar?this.toolbar.addControl(this.pagingControl,{anchor:a.ControlAnchor.BOTTOM_RIGHT}):this.addControl(this.pagingControl,{anchor:this.sequenceControlAnchor||a.ControlAnchor.TOP_LEFT}))),this},bindStandardControls:function(){var b=a.delegate(this,H),c=a.delegate(this,J),d=a.delegate(this,M),e=a.delegate(this,I),f=a.delegate(this,N),g=a.delegate(this,P),h=a.delegate(this,Q),i=a.delegate(this,R),j=a.delegate(this,S),m=a.delegate(this,k),n=a.delegate(this,l),o=this.navImages,p=[],q=!0;return this.showNavigationControl&&((this.zoomInButton||this.zoomOutButton||this.homeButton||this.fullPageButton||this.rotateLeftButton||this.rotateRightButton)&&(q=!1),this.showZoomControl&&(p.push(this.zoomInButton=new a.Button({element:this.zoomInButton?a.getElement(this.zoomInButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.ZoomIn"),srcRest:G(this.prefixUrl,o.zoomIn.REST),srcGroup:G(this.prefixUrl,o.zoomIn.GROUP),srcHover:G(this.prefixUrl,o.zoomIn.HOVER),srcDown:G(this.prefixUrl,o.zoomIn.DOWN),onPress:b,onRelease:c,onClick:d,onEnter:b,onExit:c,onFocus:m,onBlur:n})),p.push(this.zoomOutButton=new a.Button({element:this.zoomOutButton?a.getElement(this.zoomOutButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.ZoomOut"),srcRest:G(this.prefixUrl,o.zoomOut.REST),srcGroup:G(this.prefixUrl,o.zoomOut.GROUP),srcHover:G(this.prefixUrl,o.zoomOut.HOVER),srcDown:G(this.prefixUrl,o.zoomOut.DOWN),onPress:e,onRelease:c,onClick:f,onEnter:e,onExit:c,onFocus:m,onBlur:n}))),this.showHomeControl&&p.push(this.homeButton=new a.Button({element:this.homeButton?a.getElement(this.homeButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.Home"),srcRest:G(this.prefixUrl,o.home.REST),srcGroup:G(this.prefixUrl,o.home.GROUP),srcHover:G(this.prefixUrl,o.home.HOVER),srcDown:G(this.prefixUrl,o.home.DOWN),onRelease:g,onFocus:m,onBlur:n})),this.showFullPageControl&&p.push(this.fullPageButton=new a.Button({element:this.fullPageButton?a.getElement(this.fullPageButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.FullPage"),srcRest:G(this.prefixUrl,o.fullpage.REST),srcGroup:G(this.prefixUrl,o.fullpage.GROUP),srcHover:G(this.prefixUrl,o.fullpage.HOVER),srcDown:G(this.prefixUrl,o.fullpage.DOWN),onRelease:h,onFocus:m,onBlur:n})),this.showRotationControl&&(p.push(this.rotateLeftButton=new a.Button({element:this.rotateLeftButton?a.getElement(this.rotateLeftButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.RotateLeft"),srcRest:G(this.prefixUrl,o.rotateleft.REST),srcGroup:G(this.prefixUrl,o.rotateleft.GROUP),srcHover:G(this.prefixUrl,o.rotateleft.HOVER),srcDown:G(this.prefixUrl,o.rotateleft.DOWN),onRelease:i,onFocus:m,onBlur:n})),p.push(this.rotateRightButton=new a.Button({element:this.rotateRightButton?a.getElement(this.rotateRightButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.RotateRight"),srcRest:G(this.prefixUrl,o.rotateright.REST),srcGroup:G(this.prefixUrl,o.rotateright.GROUP),srcHover:G(this.prefixUrl,o.rotateright.HOVER),srcDown:G(this.prefixUrl,o.rotateright.DOWN),onRelease:j,onFocus:m,onBlur:n}))),q&&(this.buttons=new a.ButtonGroup({buttons:p,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold}),this.navControl=this.buttons.element,this.addHandler("open",a.delegate(this,O)),this.toolbar?this.toolbar.addControl(this.navControl,{anchor:a.ControlAnchor.TOP_LEFT}):this.addControl(this.navControl,{anchor:this.navigationControlAnchor||a.ControlAnchor.TOP_LEFT}))),this},currentPage:function(){return this._sequenceIndex},goToPage:function(a){return this.tileSources&&a>=0&&a<this.tileSources.length&&(this.raiseEvent("page",{page:a}),this._sequenceIndex=a,this._updateSequenceButtons(a),this.open(this.tileSources[a]),this.referenceStrip&&this.referenceStrip.setFocus(a)),this},addOverlay:function(b,c,f,g){var h;if(h=a.isPlainObject(b)?b:{element:b,location:c,placement:f,onDraw:g},b=a.getElement(h.element),e(this.currentOverlays,b)>=0)return this;var i=d(this,h);return this.currentOverlays.push(i),i.drawHTML(this.overlaysContainer,this.viewport),this.raiseEvent("add-overlay",{element:b,location:h.location,placement:h.placement}),this},updateOverlay:function(b,c,d){var f;return b=a.getElement(b),f=e(this.currentOverlays,b),f>=0&&(this.currentOverlays[f].update(c,d),V[this.hash].forceRedraw=!0,this.raiseEvent("update-overlay",{element:b,location:c,placement:d})),this},removeOverlay:function(b){var c;return b=a.getElement(b),c=e(this.currentOverlays,b),c>=0&&(this.currentOverlays[c].destroy(),this.currentOverlays.splice(c,1),V[this.hash].forceRedraw=!0,this.raiseEvent("remove-overlay",{element:b})),this},clearOverlays:function(){for(;this.currentOverlays.length>0;)this.currentOverlays.pop().destroy();return V[this.hash].forceRedraw=!0,this.raiseEvent("clear-overlay",{}),this},_updateSequenceButtons:function(a){this.nextButton&&(this.tileSources&&this.tileSources.length-1!==a?this.nextButton.enable():this.navPrevNextWrap||this.nextButton.disable()),this.previousButton&&(a>0?this.previousButton.enable():this.navPrevNextWrap||this.previousButton.disable())},_showMessage:function(b){this._hideMessage();var c=a.makeNeutralElement("div");c.appendChild(document.createTextNode(b)),this.messageDiv=a.makeCenteredNode(c),a.addClass(this.messageDiv,"openseadragon-message"),this.container.appendChild(this.messageDiv)},_hideMessage:function(){var a=this.messageDiv;a&&(a.parentNode.removeChild(a),delete this.messageDiv)},gestureSettingsByDeviceType:function(a){switch(a){case"mouse":return this.gestureSettingsMouse;case"touch":return this.gestureSettingsTouch;case"pen":return this.gestureSettingsPen;default:return this.gestureSettingsUnknown}},_drawOverlays:function(){var a,b=this.currentOverlays.length;for(a=0;b>a;a++)this.currentOverlays[a].drawHTML(this.overlaysContainer,this.viewport)},_cancelPendingImages:function(){this._loadQueue=[]}})}(OpenSeadragon),function(a){function b(a){a.quick&&this.viewer.viewport&&(this.viewer.viewport.panTo(this.viewport.pointFromPixel(a.position).rotate(-this.viewer.viewport.degrees,this.viewer.viewport.getHomeBounds().getCenter())),this.viewer.viewport.applyConstraints())}function c(a){this.viewer.viewport&&(this.panHorizontal||(a.delta.x=0),this.panVertical||(a.delta.y=0),this.viewer.viewport.panBy(this.viewport.deltaPointsFromPixels(a.delta)))}function d(a){a.insideElementPressed&&this.viewer.viewport&&this.viewer.viewport.applyConstraints()}function e(a){return this.viewer.raiseEvent("navigator-scroll",{tracker:a.eventSource,position:a.position,scroll:a.scroll,shift:a.shift,originalEvent:a.originalEvent}),!1}function f(a,b){a.style.webkitTransform="rotate("+b+"deg)",a.style.mozTransform="rotate("+b+"deg)",a.style.msTransform="rotate("+b+"deg)",a.style.oTransform="rotate("+b+"deg)",a.style.transform="rotate("+b+"deg)"}a.Navigator=function(g){var h,i,j=g.viewer,k=this;g.id?(this.element=document.getElementById(g.id),g.controlOptions={anchor:a.ControlAnchor.NONE,attachToViewer:!1,autoFade:!1}):(g.id="navigator-"+a.now(),this.element=a.makeNeutralElement("div"),g.controlOptions={anchor:a.ControlAnchor.TOP_RIGHT,attachToViewer:!0,autoFade:!0},g.position&&("BOTTOM_RIGHT"==g.position?g.controlOptions.anchor=a.ControlAnchor.BOTTOM_RIGHT:"BOTTOM_LEFT"==g.position?g.controlOptions.anchor=a.ControlAnchor.BOTTOM_LEFT:"TOP_RIGHT"==g.position?g.controlOptions.anchor=a.ControlAnchor.TOP_RIGHT:"TOP_LEFT"==g.position?g.controlOptions.anchor=a.ControlAnchor.TOP_LEFT:"ABSOLUTE"==g.position&&(g.controlOptions.anchor=a.ControlAnchor.ABSOLUTE,g.controlOptions.top=g.top,g.controlOptions.left=g.left,g.controlOptions.height=g.height,g.controlOptions.width=g.width))),this.element.id=g.id,this.element.className+=" navigator",g=a.extend(!0,{sizeRatio:a.DEFAULT_SETTINGS.navigatorSizeRatio},g,{element:this.element,tabIndex:-1,showNavigator:!1,mouseNavEnabled:!1,showNavigationControl:!1,showSequenceControl:!1,immediateRender:!0,blendTime:0,animationTime:0,autoResize:g.autoResize,minZoomImageRatio:1}),g.minPixelRatio=this.minPixelRatio=j.minPixelRatio,a.setElementTouchActionNone(this.element),this.borderWidth=2,this.fudge=new a.Point(1,1),this.totalBorderWidths=new a.Point(2*this.borderWidth,2*this.borderWidth).minus(this.fudge),g.controlOptions.anchor!=a.ControlAnchor.NONE&&!function(a,b){ 9 a.margin="0px",a.border=b+"px solid #555",a.padding="0px",a.background="#000",a.opacity=.8,a.overflow="hidden"}(this.element.style,this.borderWidth),this.displayRegion=a.makeNeutralElement("div"),this.displayRegion.id=this.element.id+"-displayregion",this.displayRegion.className="displayregion",function(a,b){a.position="relative",a.top="0px",a.left="0px",a.fontSize="0px",a.overflow="hidden",a.border=b+"px solid #900",a.margin="0px",a.padding="0px",a.background="transparent",a["float"]="left",a.cssFloat="left",a.styleFloat="left",a.zIndex=999999999,a.cursor="default"}(this.displayRegion.style,this.borderWidth),this.displayRegionContainer=a.makeNeutralElement("div"),this.displayRegionContainer.id=this.element.id+"-displayregioncontainer",this.displayRegionContainer.className="displayregioncontainer",this.displayRegionContainer.style.width="100%",this.displayRegionContainer.style.height="100%",j.addControl(this.element,g.controlOptions),this._resizeWithViewer=g.controlOptions.anchor!=a.ControlAnchor.ABSOLUTE&&g.controlOptions.anchor!=a.ControlAnchor.NONE,this._resizeWithViewer&&(g.width&&g.height?(this.element.style.height="number"==typeof g.height?g.height+"px":g.height,this.element.style.width="number"==typeof g.width?g.width+"px":g.width):(h=a.getElementSize(j.element),this.element.style.height=Math.round(h.y*g.sizeRatio)+"px",this.element.style.width=Math.round(h.x*g.sizeRatio)+"px",this.oldViewerSize=h),i=a.getElementSize(this.element),this.elementArea=i.x*i.y),this.oldContainerSize=new a.Point(0,0),a.Viewer.apply(this,[g]),this.displayRegionContainer.appendChild(this.displayRegion),this.element.getElementsByTagName("div")[0].appendChild(this.displayRegionContainer),g.navigatorRotate&&g.viewer.addHandler("rotate",function(a){f(k.displayRegionContainer,a.degrees),f(k.displayRegion,-a.degrees),k.viewport.setRotation(a.degrees)}),this.innerTracker.destroy(),this.innerTracker=new a.MouseTracker({element:this.element,dragHandler:a.delegate(this,c),clickHandler:a.delegate(this,b),releaseHandler:a.delegate(this,d),scrollHandler:a.delegate(this,e)}),this.addHandler("reset-size",function(){k.viewport&&k.viewport.goHome(!0)}),this.addHandler("reset-size",function(){k.viewport&&k.viewport.goHome(!0)}),j.world.addHandler("item-index-change",function(a){var b=k.world.getItemAt(a.previousIndex);k.world.setItemIndex(b,a.newIndex)}),j.world.addHandler("remove-item",function(a){var b=a.item,c=k._getMatchingItem(b);c&&k.world.removeItem(c)}),this.update(j.viewport)},a.extend(a.Navigator.prototype,a.EventSource.prototype,a.Viewer.prototype,{updateSize:function(){if(this.viewport){var b=new a.Point(0===this.container.clientWidth?1:this.container.clientWidth,0===this.container.clientHeight?1:this.container.clientHeight);b.equals(this.oldContainerSize)||(this.viewport.resize(b,!0),this.viewport.goHome(!0),this.oldContainerSize=b,this.drawer.clear(),this.world.draw())}},update:function(b){var c,d,e,f,g,h;if(c=a.getElementSize(this.viewer.element),this._resizeWithViewer&&c.x&&c.y&&!c.equals(this.oldViewerSize)&&(this.oldViewerSize=c,this.maintainSizeRatio||!this.elementArea?(d=c.x*this.sizeRatio,e=c.y*this.sizeRatio):(d=Math.sqrt(this.elementArea*(c.x/c.y)),e=this.elementArea/d),this.element.style.width=Math.round(d)+"px",this.element.style.height=Math.round(e)+"px",this.elementArea||(this.elementArea=d*e),this.updateSize()),b&&this.viewport){f=b.getBounds(!0),g=this.viewport.pixelFromPoint(f.getTopLeft(),!1),h=this.viewport.pixelFromPoint(f.getBottomRight(),!1).minus(this.totalBorderWidths);var i=this.displayRegion.style;i.display=this.world.getItemCount()?"block":"none",i.top=Math.round(g.y)+"px",i.left=Math.round(g.x)+"px";var j=Math.abs(g.x-h.x),k=Math.abs(g.y-h.y);i.width=Math.round(Math.max(j,0))+"px",i.height=Math.round(Math.max(k,0))+"px"}},addTiledImage:function(b){var c=this,d=b.originalTiledImage;delete b.original;var e=a.extend({},b,{success:function(a){var b=a.item;b._originalForNavigator=d,c._matchBounds(b,d,!0),d.addHandler("bounds-change",function(){c._matchBounds(b,d)})}});return a.Viewer.prototype.addTiledImage.apply(this,[e])},_getMatchingItem:function(a){for(var b,c=this.world.getItemCount(),d=0;c>d;d++)if(b=this.world.getItemAt(d),b._originalForNavigator===a)return b;return null},_matchBounds:function(a,b,c){var d=b.getBounds();a.setPosition(d.getTopLeft(),c),a.setWidth(d.width,c)}})}(OpenSeadragon),function(a){var b={Errors:{Dzc:"Sorry, we don't support Deep Zoom Collections!",Dzi:"Hmm, this doesn't appear to be a valid Deep Zoom Image.",Xml:"Hmm, this doesn't appear to be a valid Deep Zoom Image.",ImageFormat:"Sorry, we don't support {0}-based Deep Zoom Images.",Security:"It looks like a security restriction stopped us from loading this Deep Zoom Image.",Status:"This space unintentionally left blank ({0} {1}).",OpenFailed:"Unable to open {0}: {1}"},Tooltips:{FullPage:"Toggle full page",Home:"Go home",ZoomIn:"Zoom in",ZoomOut:"Zoom out",NextPage:"Next page",PreviousPage:"Previous page",RotateLeft:"Rotate left",RotateRight:"Rotate right"}};a.extend(a,{getString:function(c){var d,e=c.split("."),f=null,g=arguments,h=b;for(d=0;d<e.length-1;d++)h=h[e[d]]||{};return f=h[e[d]],"string"!=typeof f&&(a.console.debug("Untranslated source string:",c),f=""),f.replace(/\{\d+\}/g,function(a){var b=parseInt(a.match(/\d+/),10)+1;return b<g.length?g[b]:""})},setString:function(a,c){var d,e=a.split("."),f=b;for(d=0;d<e.length-1;d++)f[e[d]]||(f[e[d]]={}),f=f[e[d]];f[e[d]]=c}})}(OpenSeadragon),function(a){a.Point=function(a,b){this.x="number"==typeof a?a:0,this.y="number"==typeof b?b:0},a.Point.prototype={clone:function(){return new a.Point(this.x,this.y)},plus:function(b){return new a.Point(this.x+b.x,this.y+b.y)},minus:function(b){return new a.Point(this.x-b.x,this.y-b.y)},times:function(b){return new a.Point(this.x*b,this.y*b)},divide:function(b){return new a.Point(this.x/b,this.y/b)},negate:function(){return new a.Point(-this.x,-this.y)},distanceTo:function(a){return Math.sqrt(Math.pow(this.x-a.x,2)+Math.pow(this.y-a.y,2))},apply:function(b){return new a.Point(b(this.x),b(this.y))},equals:function(b){return b instanceof a.Point&&this.x===b.x&&this.y===b.y},rotate:function(b,c){var d=b*Math.PI/180,e=Math.cos(d)*(this.x-c.x)-Math.sin(d)*(this.y-c.y)+c.x,f=Math.sin(d)*(this.x-c.x)+Math.cos(d)*(this.y-c.y)+c.y;return new a.Point(e,f)},toString:function(){return"("+Math.round(100*this.x)/100+","+Math.round(100*this.y)/100+")"}}}(OpenSeadragon),function(a){function b(b){var c,d,e=b.responseText,f=b.status;if(!b)throw new Error(a.getString("Errors.Security"));if(200!==b.status&&0!==b.status)throw f=b.status,c=404==f?"Not Found":b.statusText,new Error(a.getString("Errors.Status",f,c));if(e.match(/\s*<.*/))try{d=b.responseXML&&b.responseXML.documentElement?b.responseXML:a.parseXml(e)}catch(g){d=b.responseText}else d=e.match(/\s*[\{\[].*/)?a.parseJSON(e):e;return d}a.TileSource=function(b,c,d,e,f,g){var h,i,j=this,k=arguments;if(h=a.isPlainObject(b)?b:{width:k[0],height:k[1],tileSize:k[2],tileOverlap:k[3],minLevel:k[4],maxLevel:k[5]},a.EventSource.call(this),a.extend(!0,this,h),!this.success)for(i=0;i<arguments.length;i++)if(a.isFunction(arguments[i])){this.success=arguments[i];break}this.success&&this.addHandler("ready",function(a){j.success(a)}),"string"==a.type(arguments[0])&&(this.url=arguments[0]),this.url?(this.aspectRatio=1,this.dimensions=new a.Point(10,10),this._tileWidth=0,this._tileHeight=0,this.tileOverlap=0,this.minLevel=0,this.maxLevel=0,this.ready=!1,this.getImageInfo(this.url)):(this.ready=!0,this.aspectRatio=h.width&&h.height?h.width/h.height:1,this.dimensions=new a.Point(h.width,h.height),this.tileSize?(this._tileWidth=this._tileHeight=this.tileSize,delete this.tileSize):(this.tileWidth?(this._tileWidth=this.tileWidth,delete this.tileWidth):this._tileWidth=0,this.tileHeight?(this._tileHeight=this.tileHeight,delete this.tileHeight):this._tileHeight=0),this.tileOverlap=h.tileOverlap?h.tileOverlap:0,this.minLevel=h.minLevel?h.minLevel:0,this.maxLevel=void 0!==h.maxLevel&&null!==h.maxLevel?h.maxLevel:h.width&&h.height?Math.ceil(Math.log(Math.max(h.width,h.height))/Math.log(2)):0,this.success&&a.isFunction(this.success)&&this.success(this))},a.TileSource.prototype={getTileSize:function(b){return a.console.error("[TileSource.getTileSize] is deprecated.Use TileSource.getTileWidth() and TileSource.getTileHeight() instead"),this._tileWidth},getTileWidth:function(a){return this._tileWidth?this._tileWidth:this.getTileSize(a)},getTileHeight:function(a){return this._tileHeight?this._tileHeight:this.getTileSize(a)},getLevelScale:function(a){var b,c={};for(b=0;b<=this.maxLevel;b++)c[b]=1/Math.pow(2,this.maxLevel-b);return this.getLevelScale=function(a){return c[a]},this.getLevelScale(a)},getNumTiles:function(b){var c=this.getLevelScale(b),d=Math.ceil(c*this.dimensions.x/this.getTileWidth(b)),e=Math.ceil(c*this.dimensions.y/this.getTileHeight(b));return new a.Point(d,e)},getPixelRatio:function(b){var c=this.dimensions.times(this.getLevelScale(b)),d=1/c.x,e=1/c.y;return new a.Point(d,e)},getClosestLevel:function(b){var c,d,e;for(c=this.minLevel;c<this.maxLevel&&(e=this.getNumTiles(c),d=new a.Point(Math.floor(b.x/this.getTileWidth(c)),Math.floor(b.y/this.getTileHeight(c))),!(e.x+1>=d.x&&e.y+1>=d.y));c++);return Math.max(0,c-1)},getTileAtPoint:function(b,c){var d=c.times(this.dimensions.x).times(this.getLevelScale(b)),e=Math.floor(d.x/this.getTileWidth(b)),f=Math.floor(d.y/this.getTileHeight(b));return new a.Point(e,f)},getTileBounds:function(b,c,d){var e=this.dimensions.times(this.getLevelScale(b)),f=this.getTileWidth(b),g=this.getTileHeight(b),h=0===c?0:f*c-this.tileOverlap,i=0===d?0:g*d-this.tileOverlap,j=f+(0===c?1:2)*this.tileOverlap,k=g+(0===d?1:2)*this.tileOverlap,l=1/e.x;return j=Math.min(j,e.x-h),k=Math.min(k,e.y-i),new a.Rect(h*l,i*l,j*l,k*l)},getImageInfo:function(c){var d,e,f,g,h,i,j,k=this;c&&(h=c.split("/"),i=h[h.length-1],j=i.lastIndexOf("."),j>-1&&(h[h.length-1]=i.slice(0,j))),e=function(b){"string"==typeof b&&(b=a.parseXml(b));var d=a.TileSource.determineType(k,b,c);return d?(g=d.prototype.configure.apply(k,[b,c]),void 0===g.ajaxWithCredentials&&(g.ajaxWithCredentials=k.ajaxWithCredentials),f=new d(g),k.ready=!0,void k.raiseEvent("ready",{tileSource:f})):void k.raiseEvent("open-failed",{message:"Unable to load TileSource",source:c})},c.match(/\.js$/)?(d=c.split("/").pop().replace(".js",""),a.jsonp({url:c,async:!1,callbackName:d,callback:e})):a.makeAjaxRequest({url:c,withCredentials:this.ajaxWithCredentials,success:function(a){var c=b(a);e(c)},error:function(a,b){var d;try{d="HTTP "+a.status+" attempting to load TileSource"}catch(e){var f;f="undefined"!=typeof b&&b.toString?b.toString():"Unknown error",d=f+" attempting to load TileSource"}k.raiseEvent("open-failed",{message:d,source:c})}})},supports:function(a,b){return!1},configure:function(a,b){throw new Error("Method not implemented.")},getTileUrl:function(a,b,c){throw new Error("Method not implemented.")},tileExists:function(a,b,c){var d=this.getNumTiles(a);return a>=this.minLevel&&a<=this.maxLevel&&b>=0&&c>=0&&b<d.x&&c<d.y}},a.extend(!0,a.TileSource.prototype,a.EventSource.prototype),a.TileSource.determineType=function(b,c,d){var e;for(e in OpenSeadragon)if(e.match(/.+TileSource$/)&&a.isFunction(OpenSeadragon[e])&&a.isFunction(OpenSeadragon[e].prototype.supports)&&OpenSeadragon[e].prototype.supports.call(b,c,d))return OpenSeadragon[e];a.console.error("No TileSource was able to open %s %s",d,c)}}(OpenSeadragon),function(a){function b(b,d){if(!d||!d.documentElement)throw new Error(a.getString("Errors.Xml"));var e,f,g,h,i,j=d.documentElement,k=j.localName||j.tagName,l=d.documentElement.namespaceURI,m=null,n=[];if("Image"==k)try{if(h=j.getElementsByTagName("Size")[0],void 0===h&&(h=j.getElementsByTagNameNS(l,"Size")[0]),m={Image:{xmlns:"http://schemas.microsoft.com/deepzoom/2008",Url:j.getAttribute("Url"),Format:j.getAttribute("Format"),DisplayRect:null,Overlap:parseInt(j.getAttribute("Overlap"),10),TileSize:parseInt(j.getAttribute("TileSize"),10),Size:{Height:parseInt(h.getAttribute("Height"),10),Width:parseInt(h.getAttribute("Width"),10)}}},!a.imageFormatSupported(m.Image.Format))throw new Error(a.getString("Errors.ImageFormat",m.Image.Format.toUpperCase()));for(e=j.getElementsByTagName("DisplayRect"),void 0===e&&(e=j.getElementsByTagNameNS(l,"DisplayRect")[0]),i=0;i<e.length;i++)f=e[i],g=f.getElementsByTagName("Rect")[0],void 0===g&&(g=f.getElementsByTagNameNS(l,"Rect")[0]),n.push({Rect:{X:parseInt(g.getAttribute("X"),10),Y:parseInt(g.getAttribute("Y"),10),Width:parseInt(g.getAttribute("Width"),10),Height:parseInt(g.getAttribute("Height"),10),MinLevel:parseInt(f.getAttribute("MinLevel"),10),MaxLevel:parseInt(f.getAttribute("MaxLevel"),10)}});return n.length&&(m.Image.DisplayRect=n),c(b,m)}catch(o){throw o instanceof Error?o:new Error(a.getString("Errors.Dzi"))}else{if("Collection"==k)throw new Error(a.getString("Errors.Dzc"));if("Error"==k)return a._processDZIError(j)}throw new Error(a.getString("Errors.Dzi"))}function c(b,c){var d,e,f=c.Image,g=f.Url,h=f.Format,i=f.Size,j=f.DisplayRect||[],k=parseInt(i.Width,10),l=parseInt(i.Height,10),m=parseInt(f.TileSize,10),n=parseInt(f.Overlap,10),o=[];for(e=0;e<j.length;e++)d=j[e].Rect,o.push(new a.DisplayRect(parseInt(d.X,10),parseInt(d.Y,10),parseInt(d.Width,10),parseInt(d.Height,10),parseInt(d.MinLevel,10),parseInt(d.MaxLevel,10)));return a.extend(!0,{width:k,height:l,tileSize:m,tileOverlap:n,minLevel:null,maxLevel:null,tilesUrl:g,fileFormat:h,displayRects:o},c)}a.DziTileSource=function(b,c,d,e,f,g,h,i,j){var k,l,m,n;if(n=a.isPlainObject(b)?b:{width:arguments[0],height:arguments[1],tileSize:arguments[2],tileOverlap:arguments[3],tilesUrl:arguments[4],fileFormat:arguments[5],displayRects:arguments[6],minLevel:arguments[7],maxLevel:arguments[8]},this._levelRects={},this.tilesUrl=n.tilesUrl,this.fileFormat=n.fileFormat,this.displayRects=n.displayRects,this.displayRects)for(k=this.displayRects.length-1;k>=0;k--)for(l=this.displayRects[k],m=l.minLevel;m<=l.maxLevel;m++)this._levelRects[m]||(this._levelRects[m]=[]),this._levelRects[m].push(l);a.TileSource.apply(this,[n])},a.extend(a.DziTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){var c;return a.Image?c=a.Image.xmlns:a.documentElement&&("Image"==a.documentElement.localName||"Image"==a.documentElement.tagName)&&(c=a.documentElement.namespaceURI),"http://schemas.microsoft.com/deepzoom/2008"==c||"http://schemas.microsoft.com/deepzoom/2009"==c},configure:function(d,e){var f;return f=a.isPlainObject(d)?c(this,d):b(this,d),e&&!f.tilesUrl&&(f.tilesUrl=e.replace(/([^\/]+)\.(dzi|xml|js)(\?.*|$)/,"$1_files/"),-1!=e.search(/\.(dzi|xml|js)\?/)?f.queryParams=e.match(/\?.*/):f.queryParams=""),f},getTileUrl:function(a,b,c){return[this.tilesUrl,a,"/",b,"_",c,".",this.fileFormat,this.queryParams].join("")},tileExists:function(a,b,c){var d,e,f,g,h,i,j,k=this._levelRects[a];if(!k||!k.length)return!0;for(j=k.length-1;j>=0;j--)if(d=k[j],!(a<d.minLevel||a>d.maxLevel)&&(e=this.getLevelScale(a),f=d.x*e,g=d.y*e,h=f+d.width*e,i=g+d.height*e,f=Math.floor(f/this.tileSize),g=Math.floor(g/this.tileSize),h=Math.ceil(h/this.tileSize),i=Math.ceil(i/this.tileSize),b>=f&&h>b&&c>=g&&i>c))return!0;return!1}})}(OpenSeadragon),function(a){function b(b){if(!b||!b.documentElement)throw new Error(a.getString("Errors.Xml"));var d=b.documentElement,e=d.tagName,f=null;if("info"==e)try{return f={},c(d,f),f}catch(g){throw g instanceof Error?g:new Error(a.getString("Errors.IIIF"))}throw new Error(a.getString("Errors.IIIF"))}function c(b,d,e){var f,g;if(3==b.nodeType&&e)g=b.nodeValue.trim(),g.match(/^\d*$/)&&(g=Number(g)),d[e]?(a.isArray(d[e])||(d[e]=[d[e]]),d[e].push(g)):d[e]=g;else if(1==b.nodeType)for(f=0;f<b.childNodes.length;f++)c(b.childNodes[f],d,b.nodeName)}a.IIIFTileSource=function(b){if(a.extend(!0,this,b),!(this.height&&this.width&&this["@id"]))throw new Error("IIIF required parameters not provided.");if(b.tileSizePerScaleFactor={},this.tile_width&&this.tile_height)b.tileWidth=this.tile_width,b.tileHeight=this.tile_height;else if(this.tile_width)b.tileSize=this.tile_width;else if(this.tile_height)b.tileSize=this.tile_height;else if(this.tiles)if(1==this.tiles.length)b.tileWidth=this.tiles[0].width,b.tileHeight=this.tiles[0].height||this.tiles[0].width,this.scale_factors=this.tiles[0].scaleFactors;else{this.scale_factors=[];for(var c=0;c<this.tiles.length;c++)for(var d=0;d<this.tiles[c].scaleFactors.length;d++){var e=this.tiles[c].scaleFactors[d];this.scale_factors.push(e),b.tileSizePerScaleFactor[e]={width:this.tiles[c].width,height:this.tiles[c].height||this.tiles[c].width}}}else{for(var f=Math.min(this.height,this.width),g=[256,512,1024],h=[],i=0;i<g.length;i++)g[i]<=f&&h.push(g[i]);h.length>0?b.tileSize=Math.max.apply(null,h):b.tileSize=f}b.maxLevel||(this.scale_factors?b.maxLevel=Math.floor(Math.pow(Math.max.apply(null,this.scale_factors),.5)):b.maxLevel=Number(Math.ceil(Math.log(Math.max(this.width,this.height),2)))),a.TileSource.apply(this,[b])},a.extend(a.IIIFTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){return a.protocol&&"http://iiif.io/api/image"==a.protocol?!0:!a["@context"]||"http://library.stanford.edu/iiif/image-api/1.1/context.json"!=a["@context"]&&"http://iiif.io/api/image/1/context.json"!=a["@context"]?a.profile&&0===a.profile.indexOf("http://library.stanford.edu/iiif/image-api/compliance.html")?!0:a.identifier&&a.width&&a.height?!0:a.documentElement&&"info"==a.documentElement.tagName&&"http://library.stanford.edu/iiif/image-api/ns/"==a.documentElement.namespaceURI?!0:!1:!0},configure:function(c,d){if(a.isPlainObject(c))return c["@context"]?c:(c["@context"]="http://iiif.io/api/image/1.0/context.json",c["@id"]=d.replace("/info.json",""),c);var e=b(c);return e["@context"]="http://iiif.io/api/image/1.0/context.json",e["@id"]=d.replace("/info.xml",""),e},getTileWidth:function(a){var b=Math.pow(2,this.maxLevel-a);return this.tileSizePerScaleFactor&&this.tileSizePerScaleFactor[b]?this.tileSizePerScaleFactor[b].width:this._tileWidth},getTileHeight:function(a){var b=Math.pow(2,this.maxLevel-a);return this.tileSizePerScaleFactor&&this.tileSizePerScaleFactor[b]?this.tileSizePerScaleFactor[b].height:this._tileHeight},getTileUrl:function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p="0",q=Math.pow(.5,this.maxLevel-a),r=Math.ceil(this.width*q),s=Math.ceil(this.height*q);return d=this.getTileWidth(a),e=this.getTileHeight(a),f=Math.ceil(d/q),g=Math.ceil(e/q),n=this["@context"].indexOf("/1.0/context.json")>-1||this["@context"].indexOf("/1.1/context.json")>-1||this["@context"].indexOf("/1/context.json")>-1?"native.jpg":"default.jpg",d>r&&e>s?(m=r+",",h="full"):(i=b*f,j=c*g,k=Math.min(f,this.width-i),l=Math.min(g,this.height-j),m=Math.ceil(k*q)+",",h=[i,j,k,l].join(",")),o=[this["@id"],h,m,p,n].join("/")}})}(OpenSeadragon),function(a){a.OsmTileSource=function(b,c,d,e,f){var g;g=a.isPlainObject(b)?b:{width:arguments[0],height:arguments[1],tileSize:arguments[2],tileOverlap:arguments[3],tilesUrl:arguments[4]},g.width&&g.height||(g.width=65572864,g.height=65572864),g.tileSize||(g.tileSize=256,g.tileOverlap=0),g.tilesUrl||(g.tilesUrl="http://tile.openstreetmap.org/"),g.minLevel=8,a.TileSource.apply(this,[g])},a.extend(a.OsmTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){return a.type&&"openstreetmaps"==a.type},configure:function(a,b){return a},getTileUrl:function(a,b,c){return this.tilesUrl+(a-8)+"/"+b+"/"+c+".png"}})}(OpenSeadragon),function(a){a.TmsTileSource=function(b,c,d,e,f){var g;g=a.isPlainObject(b)?b:{width:arguments[0],height:arguments[1],tileSize:arguments[2],tileOverlap:arguments[3],tilesUrl:arguments[4]};var h,i=256*Math.ceil(g.width/256),j=256*Math.ceil(g.height/256);h=i>j?i/256:j/256,g.maxLevel=Math.ceil(Math.log(h)/Math.log(2))-1,g.tileSize=256,g.width=i,g.height=j,a.TileSource.apply(this,[g])},a.extend(a.TmsTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){return a.type&&"tiledmapservice"==a.type},configure:function(a,b){return a},getTileUrl:function(a,b,c){var d=this.getNumTiles(a).y-1;return this.tilesUrl+a+"/"+b+"/"+(d-c)+".png"}})}(OpenSeadragon),function(a){function b(b){var c,d,e=[];for(d=0;d<b.length;d++)c=b[d],c.height&&c.width&&c.url&&(c.url.toLowerCase().match(/^.*\.(png|jpg|jpeg|gif)$/)||c.mimetype&&c.mimetype.toLowerCase().match(/^.*\/(png|jpg|jpeg|gif)$/))?e.push({url:c.url,width:Number(c.width),height:Number(c.height)}):a.console.error("Unsupported image format: %s",c.url?c.url:"<no URL>");return e.sort(function(a,b){return a.height-b.height})}function c(b,c){if(!c||!c.documentElement)throw new Error(a.getString("Errors.Xml"));var e,f,g=c.documentElement,h=g.tagName,i=null,j=[];if("image"==h)try{for(i={type:g.getAttribute("type"),levels:[]},j=g.getElementsByTagName("level"),f=0;f<j.length;f++)e=j[f],i.levels.push({url:e.getAttribute("url"),width:parseInt(e.getAttribute("width"),10),height:parseInt(e.getAttribute("height"),10)});return d(b,i)}catch(k){throw k instanceof Error?k:new Error("Unknown error parsing Legacy Image Pyramid XML.")}else{if("collection"==h)throw new Error("Legacy Image Pyramid Collections not yet supported.");if("error"==h)throw new Error("Error: "+c)}throw new Error("Unknown element "+h)}function d(a,b){return b.levels}a.LegacyTileSource=function(c){var d,e,f;a.isArray(c)&&(d={type:"legacy-image-pyramid",levels:c}),d.levels=b(d.levels),d.levels.length>0?(e=d.levels[d.levels.length-1].width,f=d.levels[d.levels.length-1].height):(e=0,f=0,a.console.error("No supported image formats found")),a.extend(!0,d,{width:e,height:f,tileSize:Math.max(f,e),tileOverlap:0,minLevel:0,maxLevel:d.levels.length>0?d.levels.length-1:0}),a.TileSource.apply(this,[d]),this.levels=d.levels},a.extend(a.LegacyTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){return a.type&&"legacy-image-pyramid"==a.type||a.documentElement&&"legacy-image-pyramid"==a.documentElement.getAttribute("type")},configure:function(b,e){var f;return f=a.isPlainObject(b)?d(this,b):c(this,b)},getLevelScale:function(a){var b=NaN;return this.levels.length>0&&a>=this.minLevel&&a<=this.maxLevel&&(b=this.levels[a].width/this.levels[this.maxLevel].width),b},getNumTiles:function(b){var c=this.getLevelScale(b);return c?new a.Point(1,1):new a.Point(0,0)},getTileAtPoint:function(b,c){return new a.Point(0,0)},getTileUrl:function(a,b,c){var d=null;return this.levels.length>0&&a>=this.minLevel&&a<=this.maxLevel&&(d=this.levels[a].url),d}})}(OpenSeadragon),function(a){a.ImageTileSource=function(b){b=a.extend({buildPyramid:!0,crossOriginPolicy:!1,ajaxWithCredentials:!1,useCanvas:!0},b),a.TileSource.apply(this,[b])},a.extend(a.ImageTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){return a.type&&"image"===a.type},configure:function(a,b){return a},getImageInfo:function(b){var c=this._image=new Image,d=this;this.crossOriginPolicy&&(c.crossOrigin=this.crossOriginPolicy),this.ajaxWithCredentials&&(c.useCredentials=this.ajaxWithCredentials),a.addEvent(c,"load",function(){d.width=c.naturalWidth,d.height=c.naturalHeight,d.aspectRatio=d.width/d.height,d.dimensions=new a.Point(d.width,d.height),d._tileWidth=d.width,d._tileHeight=d.height,d.tileOverlap=0,d.minLevel=0,d.levels=d._buildLevels(),d.maxLevel=d.levels.length-1,d.ready=!0,d.raiseEvent("ready",{tileSource:d})}),a.addEvent(c,"error",function(){d.raiseEvent("open-failed",{message:"Error loading image at "+b,source:b})}),c.src=b},getLevelScale:function(a){var b=NaN;return a>=this.minLevel&&a<=this.maxLevel&&(b=this.levels[a].width/this.levels[this.maxLevel].width),b},getNumTiles:function(b){var c=this.getLevelScale(b);return c?new a.Point(1,1):new a.Point(0,0)},getTileAtPoint:function(b,c){return new a.Point(0,0)},getTileUrl:function(a,b,c){var d=null;return a>=this.minLevel&&a<=this.maxLevel&&(d=this.levels[a].url),d},getContext2D:function(a,b,c){var d=null;return a>=this.minLevel&&a<=this.maxLevel&&(d=this.levels[a].context2D),d},_buildLevels:function(){var b=[{url:this._image.src,width:this._image.naturalWidth,height:this._image.naturalHeight}];if(!this.buildPyramid||!a.supportsCanvas||!this.useCanvas)return delete this._image,b;var c=this._image.naturalWidth,d=this._image.naturalHeight,e=document.createElement("canvas"),f=e.getContext("2d");if(e.width=c,e.height=d,f.drawImage(this._image,0,0,c,d),b[0].context2D=f,delete this._image,a.isCanvasTainted(e))return b;for(;c>=2&&d>=2;){c=Math.floor(c/2),d=Math.floor(d/2);var g=document.createElement("canvas"),h=g.getContext("2d");g.width=c,g.height=d,h.drawImage(e,0,0,c,d),b.splice(0,0,{context2D:h,width:c,height:d}),e=g,f=h}return b}})}(OpenSeadragon),function(a){a.TileSourceCollection=function(b,c,d,e){a.console.error("TileSourceCollection is deprecated; use World instead")}}(OpenSeadragon),function(a){function b(b){a.requestAnimationFrame(function(){c(b)})}function c(c){var d,e,f;c.shouldFade&&(d=a.now(),e=d-c.fadeBeginTime,f=1-e/c.fadeLength,f=Math.min(1,f),f=Math.max(0,f),c.imgGroup&&a.setElementOpacity(c.imgGroup,f,!0),f>0&&b(c))}function d(c){c.shouldFade=!0,c.fadeBeginTime=a.now()+c.fadeDelay,window.setTimeout(function(){b(c)},c.fadeDelay)}function e(b){b.shouldFade=!1,b.imgGroup&&a.setElementOpacity(b.imgGroup,1,!0)}function f(b,c){b.element.disabled||(c>=a.ButtonState.GROUP&&b.currentState==a.ButtonState.REST&&(e(b),b.currentState=a.ButtonState.GROUP),c>=a.ButtonState.HOVER&&b.currentState==a.ButtonState.GROUP&&(b.imgHover&&(b.imgHover.style.visibility=""),b.currentState=a.ButtonState.HOVER),c>=a.ButtonState.DOWN&&b.currentState==a.ButtonState.HOVER&&(b.imgDown&&(b.imgDown.style.visibility=""),b.currentState=a.ButtonState.DOWN))}function g(b,c){b.element.disabled||(c<=a.ButtonState.HOVER&&b.currentState==a.ButtonState.DOWN&&(b.imgDown&&(b.imgDown.style.visibility="hidden"),b.currentState=a.ButtonState.HOVER),c<=a.ButtonState.GROUP&&b.currentState==a.ButtonState.HOVER&&(b.imgHover&&(b.imgHover.style.visibility="hidden"),b.currentState=a.ButtonState.GROUP),c<=a.ButtonState.REST&&b.currentState==a.ButtonState.GROUP&&(d(b),b.currentState=a.ButtonState.REST))}a.ButtonState={REST:0,GROUP:1,HOVER:2,DOWN:3},a.Button=function(b){var c=this;a.EventSource.call(this),a.extend(!0,this,{tooltip:null,srcRest:null,srcGroup:null,srcHover:null,srcDown:null,clickTimeThreshold:a.DEFAULT_SETTINGS.clickTimeThreshold,clickDistThreshold:a.DEFAULT_SETTINGS.clickDistThreshold,fadeDelay:0,fadeLength:2e3,onPress:null,onRelease:null,onClick:null,onEnter:null,onExit:null,onFocus:null,onBlur:null},b),this.element=b.element||a.makeNeutralElement("div"),b.element||(this.imgRest=a.makeTransparentImage(this.srcRest),this.imgGroup=a.makeTransparentImage(this.srcGroup),this.imgHover=a.makeTransparentImage(this.srcHover),this.imgDown=a.makeTransparentImage(this.srcDown),this.imgRest.alt=this.imgGroup.alt=this.imgHover.alt=this.imgDown.alt=this.tooltip,this.element.style.position="relative",a.setElementTouchActionNone(this.element),this.imgGroup.style.position=this.imgHover.style.position=this.imgDown.style.position="absolute",this.imgGroup.style.top=this.imgHover.style.top=this.imgDown.style.top="0px",this.imgGroup.style.left=this.imgHover.style.left=this.imgDown.style.left="0px",this.imgHover.style.visibility=this.imgDown.style.visibility="hidden",a.Browser.vendor==a.BROWSERS.FIREFOX&&a.Browser.version<3&&(this.imgGroup.style.top=this.imgHover.style.top=this.imgDown.style.top=""),this.element.appendChild(this.imgRest),this.element.appendChild(this.imgGroup),this.element.appendChild(this.imgHover),this.element.appendChild(this.imgDown)),this.addHandler("press",this.onPress),this.addHandler("release",this.onRelease),this.addHandler("click",this.onClick),this.addHandler("enter",this.onEnter),this.addHandler("exit",this.onExit),this.addHandler("focus",this.onFocus),this.addHandler("blur",this.onBlur),this.currentState=a.ButtonState.GROUP,this.fadeBeginTime=null,this.shouldFade=!1,this.element.style.display="inline-block",this.element.style.position="relative",this.element.title=this.tooltip,this.tracker=new a.MouseTracker({element:this.element,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,enterHandler:function(b){b.insideElementPressed?(f(c,a.ButtonState.DOWN),c.raiseEvent("enter",{originalEvent:b.originalEvent})):b.buttonDownAny||f(c,a.ButtonState.HOVER)},focusHandler:function(a){this.enterHandler(a),c.raiseEvent("focus",{originalEvent:a.originalEvent})},exitHandler:function(b){g(c,a.ButtonState.GROUP),b.insideElementPressed&&c.raiseEvent("exit",{originalEvent:b.originalEvent})},blurHandler:function(a){this.exitHandler(a),c.raiseEvent("blur",{originalEvent:a.originalEvent})},pressHandler:function(b){f(c,a.ButtonState.DOWN),c.raiseEvent("press",{originalEvent:b.originalEvent})},releaseHandler:function(b){b.insideElementPressed&&b.insideElementReleased?(g(c,a.ButtonState.HOVER),c.raiseEvent("release",{originalEvent:b.originalEvent})):b.insideElementPressed?g(c,a.ButtonState.GROUP):f(c,a.ButtonState.HOVER)},clickHandler:function(a){a.quick&&c.raiseEvent("click",{originalEvent:a.originalEvent})},keyHandler:function(a){return 13===a.keyCode?(c.raiseEvent("click",{originalEvent:a.originalEvent}),c.raiseEvent("release",{originalEvent:a.originalEvent}),!1):!0}}),g(this,a.ButtonState.REST)},a.extend(a.Button.prototype,a.EventSource.prototype,{notifyGroupEnter:function(){f(this,a.ButtonState.GROUP)},notifyGroupExit:function(){g(this,a.ButtonState.REST)},disable:function(){this.notifyGroupExit(),this.element.disabled=!0,a.setElementOpacity(this.element,.2,!0)},enable:function(){this.element.disabled=!1,a.setElementOpacity(this.element,1,!0),this.notifyGroupEnter()}})}(OpenSeadragon),function(a){a.ButtonGroup=function(b){a.extend(!0,this,{buttons:[],clickTimeThreshold:a.DEFAULT_SETTINGS.clickTimeThreshold,clickDistThreshold:a.DEFAULT_SETTINGS.clickDistThreshold,labelText:""},b);var c,d=this.buttons.concat([]),e=this;if(this.element=b.element||a.makeNeutralElement("div"),!b.group)for(this.label=a.makeNeutralElement("label"),this.element.style.display="inline-block",this.element.appendChild(this.label),c=0;c<d.length;c++)this.element.appendChild(d[c].element);a.setElementTouchActionNone(this.element),this.tracker=new a.MouseTracker({element:this.element,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,enterHandler:function(a){var b;for(b=0;b<e.buttons.length;b++)e.buttons[b].notifyGroupEnter()},exitHandler:function(a){var b;if(!a.insideElementPressed)for(b=0;b<e.buttons.length;b++)e.buttons[b].notifyGroupExit()}})},a.ButtonGroup.prototype={emulateEnter:function(){this.tracker.enterHandler({eventSource:this.tracker})},emulateExit:function(){this.tracker.exitHandler({eventSource:this.tracker})}}}(OpenSeadragon),function(a){a.Rect=function(a,b,c,d){this.x="number"==typeof a?a:0,this.y="number"==typeof b?b:0,this.width="number"==typeof c?c:0,this.height="number"==typeof d?d:0},a.Rect.prototype={clone:function(){return new a.Rect(this.x,this.y,this.width,this.height)},getAspectRatio:function(){return this.width/this.height},getTopLeft:function(){return new a.Point(this.x,this.y)},getBottomRight:function(){return new a.Point(this.x+this.width,this.y+this.height)},getTopRight:function(){return new a.Point(this.x+this.width,this.y)},getBottomLeft:function(){return new a.Point(this.x,this.y+this.height)},getCenter:function(){return new a.Point(this.x+this.width/2,this.y+this.height/2)},getSize:function(){return new a.Point(this.width,this.height)},equals:function(b){return b instanceof a.Rect&&this.x===b.x&&this.y===b.y&&this.width===b.width&&this.height===b.height},times:function(a){return new OpenSeadragon.Rect(this.x*a,this.y*a,this.width*a,this.height*a)},union:function(a){var b=Math.min(this.x,a.x),c=Math.min(this.y,a.y),d=Math.max(this.x+this.width,a.x+a.width),e=Math.max(this.y+this.height,a.y+a.height);return new OpenSeadragon.Rect(b,c,d-b,e-c)},rotate:function(b,c){var d,e=this.width,f=this.height;if(b=(b+360)%360,b%90!==0)throw new Error("Currently only 0, 90, 180, and 270 degrees are supported."); 10 if(0===b)return new a.Rect(this.x,this.y,this.width,this.height);switch(c=c||this.getCenter(),b){case 90:d=this.getBottomLeft(),e=this.height,f=this.width;break;case 180:d=this.getBottomRight();break;case 270:d=this.getTopRight(),e=this.height,f=this.width;break;default:d=this.getTopLeft()}return d=d.rotate(b,c),new a.Rect(d.x,d.y,e,f)},toString:function(){return"["+Math.round(100*this.x)/100+","+Math.round(100*this.y)/100+","+Math.round(100*this.width)/100+"x"+Math.round(100*this.height)/100+"]"}}}(OpenSeadragon),function(a){function b(b){var c=Number(this.element.style.marginLeft.replace("px","")),e=Number(this.element.style.marginTop.replace("px","")),f=Number(this.element.style.width.replace("px","")),g=Number(this.element.style.height.replace("px","")),h=a.getElementSize(this.viewer.canvas);return this.dragging=!0,this.element&&("horizontal"==this.scroll?-b.delta.x>0?c>-(f-h.x)&&(this.element.style.marginLeft=c+2*b.delta.x+"px",d(this,h.x,c+2*b.delta.x)):-b.delta.x<0&&0>c&&(this.element.style.marginLeft=c+2*b.delta.x+"px",d(this,h.x,c+2*b.delta.x)):-b.delta.y>0?e>-(g-h.y)&&(this.element.style.marginTop=e+2*b.delta.y+"px",d(this,h.y,e+2*b.delta.y)):-b.delta.y<0&&0>e&&(this.element.style.marginTop=e+2*b.delta.y+"px",d(this,h.y,e+2*b.delta.y))),!1}function c(b){var c=Number(this.element.style.marginLeft.replace("px","")),e=Number(this.element.style.marginTop.replace("px","")),f=Number(this.element.style.width.replace("px","")),g=Number(this.element.style.height.replace("px","")),h=a.getElementSize(this.viewer.canvas);return this.element&&("horizontal"==this.scroll?b.scroll>0?c>-(f-h.x)&&(this.element.style.marginLeft=c-60*b.scroll+"px",d(this,h.x,c-60*b.scroll)):b.scroll<0&&0>c&&(this.element.style.marginLeft=c-60*b.scroll+"px",d(this,h.x,c-60*b.scroll)):b.scroll<0?e>h.y-g&&(this.element.style.marginTop=e+60*b.scroll+"px",d(this,h.y,e+60*b.scroll)):b.scroll>0&&0>e&&(this.element.style.marginTop=e+60*b.scroll+"px",d(this,h.y,e+60*b.scroll))),!1}function d(b,c,d){var e,f,g,h,i,j,k;for(e="horizontal"==b.scroll?b.panelWidth:b.panelHeight,f=Math.ceil(c/e)+5,g=Math.ceil((Math.abs(d)+c)/e)+1,f=g-f,f=0>f?0:f,j=f;g>j&&j<b.panels.length;j++)k=b.panels[j],k.activePanel||(h=new a.Viewer({id:k.id,tileSources:[b.viewer.tileSources[j]],element:k,navigatorSizeRatio:b.sizeRatio,showNavigator:!1,mouseNavEnabled:!1,showNavigationControl:!1,showSequenceControl:!1,immediateRender:!0,blendTime:0,animationTime:0}),h.displayRegion=a.makeNeutralElement("textarea"),h.displayRegion.id=k.id+"-displayregion",h.displayRegion.className="displayregion",i=h.displayRegion.style,i.position="relative",i.top="0px",i.left="0px",i.fontSize="0px",i.overflow="hidden",i["float"]="left",i.cssFloat="left",i.styleFloat="left",i.zIndex=999999999,i.cursor="default",i.width=b.panelWidth-4+"px",i.height=b.panelHeight-4+"px",h.displayRegion.innerTracker=new a.MouseTracker({element:h.displayRegion,startDisabled:!0}),k.getElementsByTagName("div")[0].appendChild(h.displayRegion),k.activePanel=!0)}function e(a){var b=a.eventSource.element;return"horizontal"==this.scroll?b.style.marginBottom="0px":b.style.marginLeft="0px",!1}function f(b){var c=b.eventSource.element;return"horizontal"==this.scroll?c.style.marginBottom="-"+a.getElementSize(c).y/2+"px":c.style.marginLeft="-"+a.getElementSize(c).x/2+"px",!1}function g(a){if(a.preventDefaultAction||a.ctrl||a.alt||a.meta)return!0;switch(a.keyCode){case 38:return c.call(this,{eventSource:this.tracker,position:null,scroll:1,shift:null}),!1;case 40:return c.call(this,{eventSource:this.tracker,position:null,scroll:-1,shift:null}),!1;case 37:return c.call(this,{eventSource:this.tracker,position:null,scroll:-1,shift:null}),!1;case 39:return c.call(this,{eventSource:this.tracker,position:null,scroll:1,shift:null}),!1;default:return!0}}function h(a){if(a.preventDefaultAction||a.ctrl||a.alt||a.meta)return!0;switch(a.keyCode){case 61:return c.call(this,{eventSource:this.tracker,position:null,scroll:1,shift:null}),!1;case 45:return c.call(this,{eventSource:this.tracker,position:null,scroll:-1,shift:null}),!1;case 48:case 119:case 87:return c.call(this,{eventSource:this.tracker,position:null,scroll:1,shift:null}),!1;case 115:case 83:return c.call(this,{eventSource:this.tracker,position:null,scroll:-1,shift:null}),!1;case 97:return c.call(this,{eventSource:this.tracker,position:null,scroll:-1,shift:null}),!1;case 100:return c.call(this,{eventSource:this.tracker,position:null,scroll:1,shift:null}),!1;default:return!0}}var i={};a.ReferenceStrip=function(j){var k,l,m,n=this,o=j.viewer,p=a.getElementSize(o.element);for(j.id||(j.id="referencestrip-"+a.now(),this.element=a.makeNeutralElement("div"),this.element.id=j.id,this.element.className="referencestrip"),j=a.extend(!0,{sizeRatio:a.DEFAULT_SETTINGS.referenceStripSizeRatio,position:a.DEFAULT_SETTINGS.referenceStripPosition,scroll:a.DEFAULT_SETTINGS.referenceStripScroll,clickTimeThreshold:a.DEFAULT_SETTINGS.clickTimeThreshold},j,{element:this.element,showNavigator:!1,mouseNavEnabled:!1,showNavigationControl:!1,showSequenceControl:!1}),a.extend(this,j),i[this.id]={animating:!1},this.minPixelRatio=this.viewer.minPixelRatio,l=this.element.style,l.marginTop="0px",l.marginRight="0px",l.marginBottom="0px",l.marginLeft="0px",l.left="0px",l.bottom="0px",l.border="0px",l.background="#000",l.position="relative",a.setElementTouchActionNone(this.element),a.setElementOpacity(this.element,.8),this.viewer=o,this.innerTracker=new a.MouseTracker({element:this.element,dragHandler:a.delegate(this,b),scrollHandler:a.delegate(this,c),enterHandler:a.delegate(this,e),exitHandler:a.delegate(this,f),keyDownHandler:a.delegate(this,g),keyHandler:a.delegate(this,h)}),j.width&&j.height?(this.element.style.width=j.width+"px",this.element.style.height=j.height+"px",o.addControl(this.element,{anchor:a.ControlAnchor.BOTTOM_LEFT})):"horizontal"==j.scroll?(this.element.style.width=p.x*j.sizeRatio*o.tileSources.length+12*o.tileSources.length+"px",this.element.style.height=p.y*j.sizeRatio+"px",o.addControl(this.element,{anchor:a.ControlAnchor.BOTTOM_LEFT})):(this.element.style.height=p.y*j.sizeRatio*o.tileSources.length+12*o.tileSources.length+"px",this.element.style.width=p.x*j.sizeRatio+"px",o.addControl(this.element,{anchor:a.ControlAnchor.TOP_LEFT})),this.panelWidth=p.x*this.sizeRatio+8,this.panelHeight=p.y*this.sizeRatio+8,this.panels=[],m=0;m<o.tileSources.length;m++)k=a.makeNeutralElement("div"),k.id=this.element.id+"-"+m,k.style.width=n.panelWidth+"px",k.style.height=n.panelHeight+"px",k.style.display="inline",k.style["float"]="left",k.style.cssFloat="left",k.style.styleFloat="left",k.style.padding="2px",a.setElementTouchActionNone(k),k.innerTracker=new a.MouseTracker({element:k,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,pressHandler:function(b){b.eventSource.dragging=a.now()},releaseHandler:function(b){var c=b.eventSource,d=c.element.id,e=Number(d.split("-")[2]),f=a.now();b.insideElementPressed&&b.insideElementReleased&&c.dragging&&f-c.dragging<c.clickTimeThreshold&&(c.dragging=null,o.goToPage(e))}}),this.element.appendChild(k),k.activePanel=!1,this.panels.push(k);d(this,"vertical"==this.scroll?p.y:p.x,0),this.setFocus(0)},a.extend(a.ReferenceStrip.prototype,a.EventSource.prototype,a.Viewer.prototype,{setFocus:function(b){var c,f=a.getElement(this.element.id+"-"+b),g=a.getElementSize(this.viewer.canvas),h=Number(this.element.style.width.replace("px","")),i=Number(this.element.style.height.replace("px","")),j=-Number(this.element.style.marginLeft.replace("px","")),k=-Number(this.element.style.marginTop.replace("px",""));this.currentSelected!==f&&(this.currentSelected&&(this.currentSelected.style.background="#000"),this.currentSelected=f,this.currentSelected.style.background="#999","horizontal"==this.scroll?(c=Number(b)*(this.panelWidth+3),c>j+g.x-this.panelWidth?(c=Math.min(c,h-g.x),this.element.style.marginLeft=-c+"px",d(this,g.x,-c)):j>c&&(c=Math.max(0,c-g.x/2),this.element.style.marginLeft=-c+"px",d(this,g.x,-c))):(c=Number(b)*(this.panelHeight+3),c>k+g.y-this.panelHeight?(c=Math.min(c,i-g.y),this.element.style.marginTop=-c+"px",d(this,g.y,-c)):k>c&&(c=Math.max(0,c-g.y/2),this.element.style.marginTop=-c+"px",d(this,g.y,-c))),this.currentPage=b,a.getElement(f.id+"-displayregion").focus(),e.call(this,{eventSource:this.innerTracker}))},update:function(){return i[this.id].animating?(a.console.log("image reference strip update"),!0):!1},destroy:function(){this.element&&this.element.parentNode.removeChild(this.element)}})}(OpenSeadragon),function(a){a.DisplayRect=function(b,c,d,e,f,g){a.Rect.apply(this,[b,c,d,e]),this.minLevel=f,this.maxLevel=g},a.extend(a.DisplayRect.prototype,a.Rect.prototype)}(OpenSeadragon),function(a){function b(a,b){return(1-Math.exp(a*-b))/(1-Math.exp(-a))}a.Spring=function(b){var c=arguments;"object"!=typeof b&&(b={initial:c.length&&"number"==typeof c[0]?c[0]:void 0,springStiffness:c.length>1?c[1].springStiffness:5,animationTime:c.length>1?c[1].animationTime:1.5}),a.console.assert("number"==typeof b.springStiffness&&0!==b.springStiffness,"[OpenSeadragon.Spring] options.springStiffness must be a non-zero number"),a.console.assert("number"==typeof b.animationTime&&0!==b.springStiffness,"[OpenSeadragon.Spring] options.animationTime must be a non-zero number"),b.exponential&&(this._exponential=!0,delete b.exponential),a.extend(!0,this,b),this.current={value:"number"==typeof this.initial?this.initial:this._exponential?0:1,time:a.now()},a.console.assert(!this._exponential||0!==this.current.value,"[OpenSeadragon.Spring] value must be non-zero for exponential springs"),this.start={value:this.current.value,time:this.current.time},this.target={value:this.current.value,time:this.current.time},this._exponential&&(this.start._logValue=Math.log(this.start.value),this.target._logValue=Math.log(this.target.value),this.current._logValue=Math.log(this.current.value))},a.Spring.prototype={resetTo:function(b){a.console.assert(!this._exponential||0!==b,"[OpenSeadragon.Spring.resetTo] target must be non-zero for exponential springs"),this.start.value=this.target.value=this.current.value=b,this.start.time=this.target.time=this.current.time=a.now(),this._exponential&&(this.start._logValue=Math.log(this.start.value),this.target._logValue=Math.log(this.target.value),this.current._logValue=Math.log(this.current.value))},springTo:function(b){a.console.assert(!this._exponential||0!==b,"[OpenSeadragon.Spring.springTo] target must be non-zero for exponential springs"),this.start.value=this.current.value,this.start.time=this.current.time,this.target.value=b,this.target.time=this.start.time+1e3*this.animationTime,this._exponential&&(this.start._logValue=Math.log(this.start.value),this.target._logValue=Math.log(this.target.value))},shiftBy:function(b){this.start.value+=b,this.target.value+=b,this._exponential&&(a.console.assert(0!==this.target.value&&0!==this.start.value,"[OpenSeadragon.Spring.shiftBy] spring value must be non-zero for exponential springs"),this.start._logValue=Math.log(this.start.value),this.target._logValue=Math.log(this.target.value))},setExponential:function(b){this._exponential=b,this._exponential&&(a.console.assert(0!==this.current.value&&0!==this.target.value&&0!==this.start.value,"[OpenSeadragon.Spring.setExponential] spring value must be non-zero for exponential springs"),this.start._logValue=Math.log(this.start.value),this.target._logValue=Math.log(this.target.value),this.current._logValue=Math.log(this.current.value))},update:function(){this.current.time=a.now();var c,d;this._exponential?(c=this.start._logValue,d=this.target._logValue):(c=this.start.value,d=this.target.value);var e=this.current.time>=this.target.time?d:c+(d-c)*b(this.springStiffness,(this.current.time-this.start.time)/(this.target.time-this.start.time));this._exponential?this.current.value=Math.exp(e):this.current.value=e}}}(OpenSeadragon),function(a){function b(b){a.extend(!0,this,{timeout:a.DEFAULT_SETTINGS.timeout,jobId:null},b),this.image=null}function c(a,b,c){var d;a.jobsInProgress--,(!a.jobLimit||a.jobsInProgress<a.jobLimit)&&a.jobQueue.length>0&&(d=a.jobQueue.shift(),d.start(),a.jobsInProgress++),c(b.image,b.errorMsg)}b.prototype={errorMsg:null,start:function(){var a=this;this.image=new Image,this.crossOriginPolicy!==!1&&(this.image.crossOrigin=this.crossOriginPolicy),this.image.onload=function(){a.finish(!0)},this.image.onabort=this.image.onerror=function(){a.errorMsg="Image load aborted",a.finish(!1)},this.jobId=window.setTimeout(function(){a.errorMsg="Image load exceeded timeout",a.finish(!1)},this.timeout),this.image.src=this.src},finish:function(a){this.image.onload=this.image.onerror=this.image.onabort=null,a||(this.image=null),this.jobId&&window.clearTimeout(this.jobId),this.callback(this)}},a.ImageLoader=function(b){a.extend(!0,this,{jobLimit:a.DEFAULT_SETTINGS.imageLoaderLimit,jobQueue:[],jobsInProgress:0},b)},a.ImageLoader.prototype={addJob:function(a){var d=this,e=function(b){c(d,b,a.callback)},f={src:a.src,crossOriginPolicy:a.crossOriginPolicy,callback:e,abort:a.abort},g=new b(f);!this.jobLimit||this.jobsInProgress<this.jobLimit?(g.start(),this.jobsInProgress++):this.jobQueue.push(g)},clear:function(){for(var a=0;a<this.jobQueue.length;a++){var b=this.jobQueue[a];"function"==typeof b.abort&&b.abort()}this.jobQueue=[]}}}(OpenSeadragon),function(a){a.Tile=function(a,b,c,d,e,f,g){this.level=a,this.x=b,this.y=c,this.bounds=d,this.exists=e,this.url=f,this.context2D=g,this.loaded=!1,this.loading=!1,this.element=null,this.imgElement=null,this.image=null,this.style=null,this.position=null,this.size=null,this.blendStart=null,this.opacity=null,this.distance=null,this.visibility=null,this.beingDrawn=!1,this.lastTouchTime=0},a.Tile.prototype={toString:function(){return this.level+"/"+this.x+"_"+this.y},drawHTML:function(b){return this.cacheImageRecord?this.loaded?(this.element||(this.element=a.makeNeutralElement("div"),this.imgElement=this.cacheImageRecord.getImage().cloneNode(),this.imgElement.style.msInterpolationMode="nearest-neighbor",this.imgElement.style.width="100%",this.imgElement.style.height="100%",this.style=this.element.style,this.style.position="absolute"),this.element.parentNode!=b&&b.appendChild(this.element),this.imgElement.parentNode!=this.element&&this.element.appendChild(this.imgElement),this.style.top=this.position.y+"px",this.style.left=this.position.x+"px",this.style.height=this.size.y+"px",this.style.width=this.size.x+"px",void a.setElementOpacity(this.element,this.opacity)):void a.console.warn("Attempting to draw tile %s when it's not yet loaded.",this.toString()):void a.console.warn("[Tile.drawHTML] attempting to draw tile %s when it's not cached",this.toString())},drawCanvas:function(b,c){var d,e=this.position,f=this.size;return this.context2D||this.cacheImageRecord?(d=this.context2D||this.cacheImageRecord.getRenderedContext(),this.loaded&&d?(b.save(),b.globalAlpha=this.opacity,1===b.globalAlpha&&(this.context2D||this.url.match(".png"))&&b.clearRect(e.x*a.pixelDensityRatio+1,e.y*a.pixelDensityRatio+1,f.x*a.pixelDensityRatio-2,f.y*a.pixelDensityRatio-2),c({context:b,tile:this,rendered:d}),b.drawImage(d.canvas,0,0,d.canvas.width,d.canvas.height,e.x*a.pixelDensityRatio,e.y*a.pixelDensityRatio,f.x*a.pixelDensityRatio,f.y*a.pixelDensityRatio),void b.restore()):void a.console.warn("Attempting to draw tile %s when it's not yet loaded.",this.toString())):void a.console.warn("[Tile.drawCanvas] attempting to draw tile %s when it's not cached",this.toString())},unload:function(){this.imgElement&&this.imgElement.parentNode&&this.imgElement.parentNode.removeChild(this.imgElement),this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=null,this.imgElement=null,this.loaded=!1,this.loading=!1}}}(OpenSeadragon),function(a){a.OverlayPlacement={CENTER:0,TOP_LEFT:1,TOP:2,TOP_RIGHT:3,RIGHT:4,BOTTOM_RIGHT:5,BOTTOM:6,BOTTOM_LEFT:7,LEFT:8},a.Overlay=function(b,c,d){var e;e=a.isPlainObject(b)?b:{element:b,location:c,placement:d},this.element=e.element,this.scales=e.location instanceof a.Rect,this.bounds=new a.Rect(e.location.x,e.location.y,e.location.width,e.location.height),this.position=new a.Point(e.location.x,e.location.y),this.size=new a.Point(e.location.width,e.location.height),this.style=e.element.style,this.placement=e.location instanceof a.Point?e.placement:a.OverlayPlacement.TOP_LEFT,this.onDraw=e.onDraw,this.checkResize=void 0===e.checkResize?!0:e.checkResize},a.Overlay.prototype={adjust:function(b,c){switch(this.placement){case a.OverlayPlacement.TOP_LEFT:break;case a.OverlayPlacement.TOP:b.x-=c.x/2;break;case a.OverlayPlacement.TOP_RIGHT:b.x-=c.x;break;case a.OverlayPlacement.RIGHT:b.x-=c.x,b.y-=c.y/2;break;case a.OverlayPlacement.BOTTOM_RIGHT:b.x-=c.x,b.y-=c.y;break;case a.OverlayPlacement.BOTTOM:b.x-=c.x/2,b.y-=c.y;break;case a.OverlayPlacement.BOTTOM_LEFT:b.y-=c.y;break;case a.OverlayPlacement.LEFT:b.y-=c.y/2;break;default:case a.OverlayPlacement.CENTER:b.x-=c.x/2,b.y-=c.y/2}},destroy:function(){var a=this.element,b=this.style;a.parentNode&&(a.parentNode.removeChild(a),a.prevElementParent&&(b.display="none",document.body.appendChild(a))),this.onDraw=null,b.top="",b.left="",b.position="",this.scales&&(b.width="",b.height="")},drawHTML:function(b,c){var d,e,f=this.element,g=this.style,h=this.scales,i=c.degrees,j=c.pixelFromPoint(this.bounds.getTopLeft(),!0);if(f.parentNode!=b&&(f.prevElementParent=f.parentNode,f.prevNextSibling=f.nextSibling,b.appendChild(f),this.size=a.getElementSize(f)),d=h?c.deltaPixelsFromPoints(this.bounds.getSize(),!0):this.checkResize?a.getElementSize(f):this.size,this.position=j,this.size=d,this.adjust(j,d),j=j.apply(Math.round),d=d.apply(Math.round),0!==i&&this.scales){e=new a.Point(d.x/2,d.y/2);var k=new a.Point(c.viewer.drawer.canvas.width/2,c.viewer.drawer.canvas.height/2);j=j.plus(e).rotate(i,k).minus(e),d=d.rotate(i,new a.Point(0,0)),d=new a.Point(Math.abs(d.x),Math.abs(d.y))}this.onDraw?this.onDraw(j,d,f):(g.left=j.x+"px",g.top=j.y+"px",g.position="absolute","none"!=g.display&&(g.display="block"),h&&(g.width=d.x+"px",g.height=d.y+"px"))},update:function(b,c){this.scales=b instanceof a.Rect,this.bounds=new a.Rect(b.x,b.y,b.width,b.height),this.placement=b instanceof a.Point?c:a.OverlayPlacement.TOP_LEFT}}}(OpenSeadragon),function(a){a.Drawer=function(b){a.console.assert(b.viewer,"[Drawer] options.viewer is required");var c=arguments;if(a.isPlainObject(b)||(b={source:c[0],viewport:c[1],element:c[2]}),a.console.assert(b.viewport,"[Drawer] options.viewport is required"),a.console.assert(b.element,"[Drawer] options.element is required"),b.source&&a.console.error("[Drawer] options.source is no longer accepted; use TiledImage instead"),this.viewer=b.viewer,this.viewport=b.viewport,this.debugGridColor=b.debugGridColor||a.DEFAULT_SETTINGS.debugGridColor,b.opacity&&a.console.error("[Drawer] options.opacity is no longer accepted; set the opacity on the TiledImage instead"),this.useCanvas=a.supportsCanvas&&(this.viewer?this.viewer.useCanvas:!0),this.container=a.getElement(b.element),this.canvas=a.makeNeutralElement(this.useCanvas?"canvas":"div"),this.context=this.useCanvas?this.canvas.getContext("2d"):null,this.sketchCanvas=null,this.sketchContext=null,this.element=this.container,this.container.dir="ltr",this.useCanvas){var d=this._calculateCanvasSize();this.canvas.width=d.x,this.canvas.height=d.y}this.canvas.style.width="100%",this.canvas.style.height="100%",this.canvas.style.position="absolute",a.setElementOpacity(this.canvas,this.opacity,!0),this.container.style.textAlign="left",this.container.appendChild(this.canvas)},a.Drawer.prototype={addOverlay:function(b,c,d,e){return a.console.error("drawer.addOverlay is deprecated. Use viewer.addOverlay instead."),this.viewer.addOverlay(b,c,d,e),this},updateOverlay:function(b,c,d){return a.console.error("drawer.updateOverlay is deprecated. Use viewer.updateOverlay instead."),this.viewer.updateOverlay(b,c,d),this},removeOverlay:function(b){return a.console.error("drawer.removeOverlay is deprecated. Use viewer.removeOverlay instead."),this.viewer.removeOverlay(b),this},clearOverlays:function(){return a.console.error("drawer.clearOverlays is deprecated. Use viewer.clearOverlays instead."),this.viewer.clearOverlays(),this},setOpacity:function(b){a.console.error("drawer.setOpacity is deprecated. Use tiledImage.setOpacity instead.");for(var c=this.viewer.world,d=0;d<c.getItemCount();d++)c.getItemAt(d).setOpacity(b);return this},getOpacity:function(){a.console.error("drawer.getOpacity is deprecated. Use tiledImage.getOpacity instead.");for(var b=this.viewer.world,c=0,d=0;d<b.getItemCount();d++){var e=b.getItemAt(d).getOpacity();e>c&&(c=e)}return c},needsUpdate:function(){return a.console.error("[Drawer.needsUpdate] this function is deprecated. Use World.needsDraw instead."),this.viewer.world.needsDraw()},numTilesLoaded:function(){return a.console.error("[Drawer.numTilesLoaded] this function is deprecated. Use TileCache.numTilesLoaded instead."),this.viewer.tileCache.numTilesLoaded()},reset:function(){return a.console.error("[Drawer.reset] this function is deprecated. Use World.resetItems instead."),this.viewer.world.resetItems(),this},update:function(){return a.console.error("[Drawer.update] this function is deprecated. Use Drawer.clear and World.draw instead."),this.clear(),this.viewer.world.draw(),this},canRotate:function(){return this.useCanvas},destroy:function(){this.canvas.width=1,this.canvas.height=1,this.sketchCanvas=null,this.sketchContext=null},clear:function(){if(this.canvas.innerHTML="",this.useCanvas){var a=this._calculateCanvasSize();(this.canvas.width!=a.x||this.canvas.height!=a.y)&&(this.canvas.width=a.x,this.canvas.height=a.y,null!==this.sketchCanvas&&(this.sketchCanvas.width=this.canvas.width,this.sketchCanvas.height=this.canvas.height)),this._clear()}},_clear:function(a){if(this.useCanvas){var b=this._getContext(a),c=b.canvas;b.clearRect(0,0,c.width,c.height)}},viewportToDrawerRectangle:function(b){var c=this.viewport.pixelFromPoint(b.getTopLeft(),!0),d=this.viewport.deltaPixelsFromPoints(b.getSize(),!0);return new a.Rect(c.x*a.pixelDensityRatio,c.y*a.pixelDensityRatio,d.x*a.pixelDensityRatio,d.y*a.pixelDensityRatio)},drawTile:function(b,c,d){if(a.console.assert(b,"[Drawer.drawTile] tile is required"),a.console.assert(c,"[Drawer.drawTile] drawingHandler is required"),this.useCanvas){var e=this._getContext(d);0!==this.viewport.degrees?(this._offsetForRotation(b,this.viewport.degrees,d),b.drawCanvas(e,c),this._restoreRotationChanges(b,d)):b.drawCanvas(e,c)}else b.drawHTML(this.canvas)},_getContext:function(a){var b=this.context;return a&&(null===this.sketchCanvas&&(this.sketchCanvas=document.createElement("canvas"),this.sketchCanvas.width=this.canvas.width,this.sketchCanvas.height=this.canvas.height,this.sketchContext=this.sketchCanvas.getContext("2d")),b=this.sketchContext),b},saveContext:function(a){this.useCanvas&&this._getContext(a).save()},restoreContext:function(a){this.useCanvas&&this._getContext(a).restore()},setClip:function(a,b){if(this.useCanvas){var c=this._getContext(b);c.beginPath(),c.rect(a.x,a.y,a.width,a.height),c.clip()}},drawRectangle:function(a,b,c){if(this.useCanvas){var d=this._getContext(c);d.save(),d.fillStyle=b,d.fillRect(a.x,a.y,a.width,a.height),d.restore()}},blendSketch:function(a){this.useCanvas&&this.sketchCanvas&&(this.context.save(),this.context.globalAlpha=a,this.context.drawImage(this.sketchCanvas,0,0),this.context.restore())},drawDebugInfo:function(b,c,d){if(this.useCanvas){var e=this.context;e.save(),e.lineWidth=2*a.pixelDensityRatio,e.font="small-caps bold "+13*a.pixelDensityRatio+"px arial",e.strokeStyle=this.debugGridColor,e.fillStyle=this.debugGridColor,0!==this.viewport.degrees&&this._offsetForRotation(b,this.viewport.degrees),e.strokeRect(b.position.x*a.pixelDensityRatio,b.position.y*a.pixelDensityRatio,b.size.x*a.pixelDensityRatio,b.size.y*a.pixelDensityRatio);var f=(b.position.x+b.size.x/2)*a.pixelDensityRatio,g=(b.position.y+b.size.y/2)*a.pixelDensityRatio;e.translate(f,g),e.rotate(Math.PI/180*-this.viewport.degrees),e.translate(-f,-g),0===b.x&&0===b.y&&(e.fillText("Zoom: "+this.viewport.getZoom(),b.position.x*a.pixelDensityRatio,(b.position.y-30)*a.pixelDensityRatio),e.fillText("Pan: "+this.viewport.getBounds().toString(),b.position.x*a.pixelDensityRatio,(b.position.y-20)*a.pixelDensityRatio)),e.fillText("Level: "+b.level,(b.position.x+10)*a.pixelDensityRatio,(b.position.y+20)*a.pixelDensityRatio),e.fillText("Column: "+b.x,(b.position.x+10)*a.pixelDensityRatio,(b.position.y+30)*a.pixelDensityRatio),e.fillText("Row: "+b.y,(b.position.x+10)*a.pixelDensityRatio,(b.position.y+40)*a.pixelDensityRatio),e.fillText("Order: "+d+" of "+c,(b.position.x+10)*a.pixelDensityRatio,(b.position.y+50)*a.pixelDensityRatio),e.fillText("Size: "+b.size.toString(),(b.position.x+10)*a.pixelDensityRatio,(b.position.y+60)*a.pixelDensityRatio),e.fillText("Position: "+b.position.toString(),(b.position.x+10)*a.pixelDensityRatio,(b.position.y+70)*a.pixelDensityRatio),0!==this.viewport.degrees&&this._restoreRotationChanges(b),e.restore()}},debugRect:function(b){if(this.useCanvas){var c=this.context;c.save(),c.lineWidth=2*a.pixelDensityRatio,c.strokeStyle=this.debugGridColor,c.fillStyle=this.debugGridColor,c.strokeRect(b.x*a.pixelDensityRatio,b.y*a.pixelDensityRatio,b.width*a.pixelDensityRatio,b.height*a.pixelDensityRatio),c.restore()}},_offsetForRotation:function(a,b,c){var d=this.canvas.width/2,e=this.canvas.height/2,f=this._getContext(c);f.save(),f.translate(d,e),f.rotate(Math.PI/180*b),f.translate(-d,-e)},_restoreRotationChanges:function(a,b){var c=this._getContext(b);c.restore()},_calculateCanvasSize:function(){var b=a.pixelDensityRatio,c=this.viewport.getContainerSize();return{x:c.x*b,y:c.y*b}}}}(OpenSeadragon),function(a){a.Viewport=function(b){var c=arguments;c.length&&c[0]instanceof a.Point&&(b={containerSize:c[0],contentSize:c[1],config:c[2]}),b.config&&(a.extend(!0,b,b.config),delete b.config),this._margins=a.extend({left:0,top:0,right:0,bottom:0},b.margins||{}),delete b.margins,a.extend(!0,this,{containerSize:null,contentSize:null,zoomPoint:null,viewer:null,springStiffness:a.DEFAULT_SETTINGS.springStiffness,animationTime:a.DEFAULT_SETTINGS.animationTime,minZoomImageRatio:a.DEFAULT_SETTINGS.minZoomImageRatio,maxZoomPixelRatio:a.DEFAULT_SETTINGS.maxZoomPixelRatio,visibilityRatio:a.DEFAULT_SETTINGS.visibilityRatio,wrapHorizontal:a.DEFAULT_SETTINGS.wrapHorizontal,wrapVertical:a.DEFAULT_SETTINGS.wrapVertical,defaultZoomLevel:a.DEFAULT_SETTINGS.defaultZoomLevel,minZoomLevel:a.DEFAULT_SETTINGS.minZoomLevel,maxZoomLevel:a.DEFAULT_SETTINGS.maxZoomLevel,degrees:a.DEFAULT_SETTINGS.degrees,homeFillsViewer:a.DEFAULT_SETTINGS.homeFillsViewer},b),this._updateContainerInnerSize(),this.centerSpringX=new a.Spring({initial:0,springStiffness:this.springStiffness,animationTime:this.animationTime}),this.centerSpringY=new a.Spring({initial:0,springStiffness:this.springStiffness,animationTime:this.animationTime}),this.zoomSpring=new a.Spring({exponential:!0,initial:1,springStiffness:this.springStiffness,animationTime:this.animationTime}),this._oldCenterX=this.centerSpringX.current.value,this._oldCenterY=this.centerSpringY.current.value,this._oldZoom=this.zoomSpring.current.value,this.contentSize?this.resetContentSize(this.contentSize):this.setHomeBounds(new a.Rect(0,0,1,1),1),this.goHome(!0),this.update()},a.Viewport.prototype={resetContentSize:function(b){return a.console.assert(b,"[Viewport.resetContentSize] contentSize is required"),a.console.assert(b instanceof a.Point,"[Viewport.resetContentSize] contentSize must be an OpenSeadragon.Point"),a.console.assert(b.x>0,"[Viewport.resetContentSize] contentSize.x must be greater than 0"),a.console.assert(b.y>0,"[Viewport.resetContentSize] contentSize.y must be greater than 0"),this.setHomeBounds(new a.Rect(0,0,1,b.y/b.x),b.x),this},setHomeBounds:function(b,c){a.console.assert(b,"[Viewport.setHomeBounds] bounds is required"),a.console.assert(b instanceof a.Rect,"[Viewport.setHomeBounds] bounds must be an OpenSeadragon.Rect"),a.console.assert(b.width>0,"[Viewport.setHomeBounds] bounds.width must be greater than 0"),a.console.assert(b.height>0,"[Viewport.setHomeBounds] bounds.height must be greater than 0"),this.homeBounds=b.clone(),this.contentSize=this.homeBounds.getSize().times(c),this.contentAspectX=this.contentSize.x/this.contentSize.y,this.contentAspectY=this.contentSize.y/this.contentSize.x,this.viewer&&this.viewer.raiseEvent("reset-size",{contentSize:this.contentSize.clone(),contentFactor:c,homeBounds:this.homeBounds.clone()})},getHomeZoom:function(){if(this.defaultZoomLevel)return this.defaultZoomLevel;var a,b=this.contentAspectX/this.getAspectRatio();return a=this.homeFillsViewer?b>=1?b:1:b>=1?1:b,a/this.homeBounds.width},getHomeBounds:function(){var b=this.homeBounds.getCenter(),c=1/this.getHomeZoom(),d=c/this.getAspectRatio();return new a.Rect(b.x-c/2,b.y-d/2,c,d)},goHome:function(a){return this.viewer&&this.viewer.raiseEvent("home",{immediately:a}),this.fitBounds(this.getHomeBounds(),a)},getMinZoom:function(){var a=this.getHomeZoom(),b=this.minZoomLevel?this.minZoomLevel:this.minZoomImageRatio*a;return b},getMaxZoom:function(){var a=this.maxZoomLevel;return a||(a=this.contentSize.x*this.maxZoomPixelRatio/this._containerInnerSize.x,a/=this.homeBounds.width),Math.max(a,this.getHomeZoom())},getAspectRatio:function(){return this._containerInnerSize.x/this._containerInnerSize.y},getContainerSize:function(){return new a.Point(this.containerSize.x,this.containerSize.y)},getMargins:function(){return a.extend({},this._margins)},setMargins:function(b){a.console.assert("object"===a.type(b),"[Viewport.setMargins] margins must be an object"),this._margins=a.extend({left:0,top:0,right:0,bottom:0},b),this._updateContainerInnerSize(),this.viewer.forceRedraw()},getBounds:function(b){var c=this.getCenter(b),d=1/this.getZoom(b),e=d/this.getAspectRatio();return new a.Rect(c.x-d/2,c.y-e/2,d,e)},getBoundsWithMargins:function(a){var b=this.getBounds(a),c=this._containerInnerSize.x*this.getZoom(a);return b.x-=this._margins.left/c,b.y-=this._margins.top/c,b.width+=(this._margins.left+this._margins.right)/c,b.height+=(this._margins.top+this._margins.bottom)/c,b},getCenter:function(b){var c,d,e,f,g,h,i,j,k=new a.Point(this.centerSpringX.current.value,this.centerSpringY.current.value),l=new a.Point(this.centerSpringX.target.value,this.centerSpringY.target.value);return b?k:this.zoomPoint?(c=this.pixelFromPoint(this.zoomPoint,!0),d=this.getZoom(),e=1/d,f=e/this.getAspectRatio(),g=new a.Rect(k.x-e/2,k.y-f/2,e,f),h=this._pixelFromPoint(this.zoomPoint,g),i=h.minus(c),j=i.divide(this._containerInnerSize.x*d),l.plus(j)):l},getZoom:function(a){return a?this.zoomSpring.current.value:this.zoomSpring.target.value},_applyBoundaryConstraints:function(b,c){var d=0,e=0,f=new a.Rect(b.x,b.y,b.width,b.height),g=this.visibilityRatio*f.width,h=this.visibilityRatio*f.height;if(this.wrapHorizontal);else{var i=f.x+(f.width-g);this.homeBounds.x>i&&(d=this.homeBounds.x-i);var j=this.homeBounds.x+this.homeBounds.width,k=f.x+g;if(k>j){var l=j-k;d=d?(d+l)/2:l}}if(this.wrapVertical);else{var m=f.y+(f.height-h);this.homeBounds.y>m&&(e=this.homeBounds.y-m);var n=this.homeBounds.y+this.homeBounds.height,o=f.y+h;if(o>n){var p=n-o;e=e?(e+p)/2:p}}return(d||e)&&(f.x+=d,f.y+=e),this.viewer&&this.viewer.raiseEvent("constrain",{immediately:c}),f},applyConstraints:function(a){var b,c,d=this.getZoom(),e=Math.max(Math.min(d,this.getMaxZoom()),this.getMinZoom());return d!=e&&this.zoomTo(e,this.zoomPoint,a),b=this.getBounds(),c=this._applyBoundaryConstraints(b,a),(b.x!==c.x||b.y!==c.y||a)&&this.fitBounds(c,a),this},ensureVisible:function(a){return this.applyConstraints(a)},_fitBounds:function(b,c){c=c||{};var d,e,f,g,h,i,j=c.immediately||!1,k=c.constraints||!1,l=this.getAspectRatio(),m=b.getCenter(),n=new a.Rect(b.x,b.y,b.width,b.height);return n.getAspectRatio()>=l?(n.height=b.width/l,n.y=m.y-n.height/2):(n.width=b.height*l, 11 n.x=m.x-n.width/2),k&&(h=n.getAspectRatio()),this.panTo(this.getCenter(!0),!0),this.zoomTo(this.getZoom(!0),null,!0),d=this.getBounds(),e=this.getZoom(),f=1/n.width,k&&(i=Math.max(Math.min(f,this.getMaxZoom()),this.getMinZoom()),f!==i&&(f=i,n.width=1/f,n.x=m.x-n.width/2,n.height=n.width/h,n.y=m.y-n.height/2),n=this._applyBoundaryConstraints(n,j),m=n.getCenter()),j?(this.panTo(m,!0),this.zoomTo(f,null,!0)):Math.abs(f-e)<1e-8||Math.abs(n.width-d.width)<1e-8?this.panTo(m,j):(g=d.getTopLeft().times(this._containerInnerSize.x/d.width).minus(n.getTopLeft().times(this._containerInnerSize.x/n.width)).divide(this._containerInnerSize.x/d.width-this._containerInnerSize.x/n.width),this.zoomTo(f,g,j))},fitBounds:function(a,b){return this._fitBounds(a,{immediately:b,constraints:!1})},fitBoundsWithConstraints:function(a,b){return this._fitBounds(a,{immediately:b,constraints:!0})},fitVertically:function(b){var c=new a.Rect(this.homeBounds.x+this.homeBounds.width/2,this.homeBounds.y,0,this.homeBounds.height);return this.fitBounds(c,b)},fitHorizontally:function(b){var c=new a.Rect(this.homeBounds.x,this.homeBounds.y+this.homeBounds.height/2,this.homeBounds.width,0);return this.fitBounds(c,b)},panBy:function(b,c){var d=new a.Point(this.centerSpringX.target.value,this.centerSpringY.target.value);return b=b.rotate(-this.degrees,new a.Point(0,0)),this.panTo(d.plus(b),c)},panTo:function(a,b){return b?(this.centerSpringX.resetTo(a.x),this.centerSpringY.resetTo(a.y)):(this.centerSpringX.springTo(a.x),this.centerSpringY.springTo(a.y)),this.viewer&&this.viewer.raiseEvent("pan",{center:a,immediately:b}),this},zoomBy:function(b,c,d){return c instanceof a.Point&&!isNaN(c.x)&&!isNaN(c.y)&&(c=c.rotate(-this.degrees,new a.Point(this.centerSpringX.target.value,this.centerSpringY.target.value))),this.zoomTo(this.zoomSpring.target.value*b,c,d)},zoomTo:function(b,c,d){return this.zoomPoint=c instanceof a.Point&&!isNaN(c.x)&&!isNaN(c.y)?c:null,d?this.zoomSpring.resetTo(b):this.zoomSpring.springTo(b),this.viewer&&this.viewer.raiseEvent("zoom",{zoom:b,refPoint:c,immediately:d}),this},setRotation:function(a){return this.viewer&&this.viewer.drawer.canRotate()?(a=(a+360)%360,this.degrees=a,this.viewer.forceRedraw(),null!==this.viewer&&this.viewer.raiseEvent("rotate",{degrees:a}),this):this},getRotation:function(){return this.degrees},resize:function(a,b){var c,d=this.getBounds(),e=d;return this.containerSize.x=a.x,this.containerSize.y=a.y,this._updateContainerInnerSize(),b&&(c=a.x/this.containerSize.x,e.width=d.width*c,e.height=e.width/this.getAspectRatio()),this.viewer&&this.viewer.raiseEvent("resize",{newContainerSize:a,maintain:b}),this.fitBounds(e,!0)},_updateContainerInnerSize:function(){this._containerInnerSize=new a.Point(Math.max(1,this.containerSize.x-(this._margins.left+this._margins.right)),Math.max(1,this.containerSize.y-(this._margins.top+this._margins.bottom)))},update:function(){var a,b,c,d;this.zoomPoint&&(a=this.pixelFromPoint(this.zoomPoint,!0)),this.zoomSpring.update(),this.zoomPoint&&this.zoomSpring.current.value!=this._oldZoom?(b=this.pixelFromPoint(this.zoomPoint,!0),c=b.minus(a),d=this.deltaPointsFromPixels(c,!0),this.centerSpringX.shiftBy(d.x),this.centerSpringY.shiftBy(d.y)):this.zoomPoint=null,this.centerSpringX.update(),this.centerSpringY.update();var e=this.centerSpringX.current.value!=this._oldCenterX||this.centerSpringY.current.value!=this._oldCenterY||this.zoomSpring.current.value!=this._oldZoom;return this._oldCenterX=this.centerSpringX.current.value,this._oldCenterY=this.centerSpringY.current.value,this._oldZoom=this.zoomSpring.current.value,e},deltaPixelsFromPoints:function(a,b){return a.times(this._containerInnerSize.x*this.getZoom(b))},deltaPointsFromPixels:function(a,b){return a.divide(this._containerInnerSize.x*this.getZoom(b))},pixelFromPoint:function(a,b){return this._pixelFromPoint(a,this.getBounds(b))},_pixelFromPoint:function(b,c){return b.minus(c.getTopLeft()).times(this._containerInnerSize.x/c.width).plus(new a.Point(this._margins.left,this._margins.top))},pointFromPixel:function(b,c){var d=this.getBounds(c);return b.minus(new a.Point(this._margins.left,this._margins.top)).divide(this._containerInnerSize.x/d.width).plus(d.getTopLeft())},_viewportToImageDelta:function(b,c){var d=this.homeBounds.width;return new a.Point(b*(this.contentSize.x/d),c*(this.contentSize.y*this.contentAspectX/d))},viewportToImageCoordinates:function(b,c){return 1==arguments.length?this.viewportToImageCoordinates(b.x,b.y):(this.viewer&&this.viewer.world.getItemCount()>1&&a.console.error("[Viewport.viewportToImageCoordinates] is not accurate with multi-image; use TiledImage.viewportToImageCoordinates instead."),this._viewportToImageDelta(b-this.homeBounds.x,c-this.homeBounds.y))},_imageToViewportDelta:function(b,c){var d=this.homeBounds.width;return new a.Point(b/this.contentSize.x*d,c/this.contentSize.y/this.contentAspectX*d)},imageToViewportCoordinates:function(b,c){if(1==arguments.length)return this.imageToViewportCoordinates(b.x,b.y);this.viewer&&this.viewer.world.getItemCount()>1&&a.console.error("[Viewport.imageToViewportCoordinates] is not accurate with multi-image; use TiledImage.imageToViewportCoordinates instead.");var d=this._imageToViewportDelta(b,c);return d.x+=this.homeBounds.x,d.y+=this.homeBounds.y,d},imageToViewportRectangle:function(b,c,d,e){var f,g,h;return 1==arguments.length?(h=b,this.imageToViewportRectangle(h.x,h.y,h.width,h.height)):(f=this.imageToViewportCoordinates(b,c),g=this._imageToViewportDelta(d,e),new a.Rect(f.x,f.y,g.x,g.y))},viewportToImageRectangle:function(b,c,d,e){var f,g,h;return 1==arguments.length?(h=b,this.viewportToImageRectangle(h.x,h.y,h.width,h.height)):(f=this.viewportToImageCoordinates(b,c),g=this._viewportToImageDelta(d,e),new a.Rect(f.x,f.y,g.x,g.y))},viewerElementToImageCoordinates:function(a){var b=this.pointFromPixel(a,!0);return this.viewportToImageCoordinates(b)},imageToViewerElementCoordinates:function(a){var b=this.imageToViewportCoordinates(a);return this.pixelFromPoint(b,!0)},windowToImageCoordinates:function(a){var b=a.minus(OpenSeadragon.getElementPosition(this.viewer.element));return this.viewerElementToImageCoordinates(b)},imageToWindowCoordinates:function(a){var b=this.imageToViewerElementCoordinates(a);return b.plus(OpenSeadragon.getElementPosition(this.viewer.element))},viewerElementToViewportCoordinates:function(a){return this.pointFromPixel(a,!0)},viewportToViewerElementCoordinates:function(a){return this.pixelFromPoint(a,!0)},windowToViewportCoordinates:function(a){var b=a.minus(OpenSeadragon.getElementPosition(this.viewer.element));return this.viewerElementToViewportCoordinates(b)},viewportToWindowCoordinates:function(a){var b=this.viewportToViewerElementCoordinates(a);return b.plus(OpenSeadragon.getElementPosition(this.viewer.element))},viewportToImageZoom:function(b){this.viewer&&this.viewer.world.getItemCount()>1&&a.console.error("[Viewport.viewportToImageZoom] is not accurate with multi-image.");var c=this.contentSize.x,d=this._containerInnerSize.x,e=this.homeBounds.width,f=d/c*e;return b*f},imageToViewportZoom:function(b){this.viewer&&this.viewer.world.getItemCount()>1&&a.console.error("[Viewport.imageToViewportZoom] is not accurate with multi-image.");var c=this.contentSize.x,d=this._containerInnerSize.x,e=this.homeBounds.width,f=c/d/e;return b*f}}}(OpenSeadragon),function(a){function b(b){b._needsDraw=!1;var d,e,g,h,i,j,l,m,n=null,o=!1,q=a.now(),r=b.viewport.getBoundsWithMargins(!0),s=b.viewport.deltaPixelsFromPoints(b.source.getPixelRatio(0),!0).x*b._scaleSpring.current.value,t=Math.max(b.source.minLevel,Math.floor(Math.log(b.minZoomImageRatio)/Math.log(2))),u=Math.min(Math.abs(b.source.maxLevel),Math.abs(Math.floor(Math.log(s/b.minPixelRatio)/Math.log(2)))),v=b.viewport.degrees;for(r.x-=b._xSpring.current.value,r.y-=b._ySpring.current.value;b.lastDrawn.length>0;)d=b.lastDrawn.pop(),d.beingDrawn=!1;if(90===v||270===v)r=r.rotate(v);else if(0!==v&&180!==v){var w=r.rotate(90);r.x-=w.width/2,r.y-=w.height/2,r.width+=w.width,r.height+=w.height}var x=r.getTopLeft(),y=r.getBottomRight();if(!(!b.wrapHorizontal&&(y.x<0||x.x>b._worldWidthCurrent)||!b.wrapVertical&&(y.y<0||x.y>b._worldHeightCurrent))){b.wrapHorizontal||(x.x=Math.max(x.x,0),y.x=Math.min(y.x,b._worldWidthCurrent)),b.wrapVertical||(x.y=Math.max(x.y,0),y.y=Math.min(y.y,b._worldHeightCurrent)),t=Math.min(t,u);var z;for(e=u;e>=t;e--){if(z=!1,g=b.viewport.deltaPixelsFromPoints(b.source.getPixelRatio(e),!0).x*b._scaleSpring.current.value,!o&&g>=b.minPixelRatio||e==t)z=!0,o=!0;else if(!o)continue;if(h=b.viewport.deltaPixelsFromPoints(b.source.getPixelRatio(e),!1).x*b._scaleSpring.current.value,i=b.viewport.deltaPixelsFromPoints(b.source.getPixelRatio(Math.max(b.source.getClosestLevel(b.viewport.containerSize)-1,0)),!1).x*b._scaleSpring.current.value,j=b.immediateRender?1:i,l=Math.min(1,(g-.5)/.5),m=j/Math.abs(j-h),n=c(b,o,z,e,l,m,x,y,q,n),k(b.coverage,e))break}p(b,b.lastDrawn),n&&!n.context2D&&f(b,n,q)}}function c(a,b,c,e,f,g,h,i,j,k){var l,m,o,p,q,r=a.viewport.pixelFromPoint(a.viewport.getCenter());for(a.viewer&&a.viewer.raiseEvent("update-level",{tiledImage:a,havedrawn:b,level:e,opacity:f,visibility:g,topleft:h,bottomright:i,currenttime:j,best:k}),o=a.source.getTileAtPoint(e,h.divide(a._scaleSpring.current.value)),p=a.source.getTileAtPoint(e,i.divide(a._scaleSpring.current.value)),q=a.source.getNumTiles(e),n(a.coverage,e),a.wrapHorizontal||(p.x=Math.min(p.x,q.x-1)),a.wrapVertical||(p.y=Math.min(p.y,q.y-1)),l=o.x;l<=p.x;l++)for(m=o.y;m<=p.y;m++)k=d(a,c,b,l,m,e,f,g,r,q,j,k);return k}function d(a,b,c,d,f,g,k,n,p,q,r,s){var t=e(d,f,g,a.source,a.tilesMatrix,r,q,a._worldWidthCurrent,a._worldHeightCurrent),u=b;if(a.viewer&&a.viewer.raiseEvent("update-tile",{tiledImage:a,tile:t}),m(a.coverage,g,d,f,!1),!t.exists)return s;if(c&&!u&&(l(a.coverage,g,d,f)?m(a.coverage,g,d,f,!0):u=!0),!u)return s;if(i(t,a.source.tileOverlap,a.viewport,p,n,a),!t.loaded)if(t.context2D)h(a,t);else{var v=a._tileCache.getImageRecord(t.url);if(v){var w=v.getImage();h(a,t,w)}}if(t.loaded){var x=j(a,t,d,f,g,k,r);x&&(a._needsDraw=!0)}else t.loading||(s=o(s,t));return s}function e(b,c,d,e,f,g,h,i,j){var k,l,m,n,o,p,q;return f[d]||(f[d]={}),f[d][b]||(f[d][b]={}),f[d][b][c]||(k=(h.x+b%h.x)%h.x,l=(h.y+c%h.y)%h.y,m=e.getTileBounds(d,k,l),n=e.tileExists(d,k,l),o=e.getTileUrl(d,k,l),p=e.getContext2D?e.getContext2D(d,k,l):void 0,m.x+=(b-k)/h.x,m.y+=j/i*((c-l)/h.y),f[d][b][c]=new a.Tile(d,b,c,m,n,o,p)),q=f[d][b][c],q.lastTouchTime=g,q}function f(a,b,c){b.loading=!0,a._imageLoader.addJob({src:b.url,crossOriginPolicy:a.crossOriginPolicy,callback:function(d,e){g(a,b,c,d,e)},abort:function(){b.loading=!1}})}function g(b,c,d,e,f){if(e){if(d<b.lastResetTime)return a.console.log("Ignoring tile %s loaded before reset: %s",c,c.url),void(c.loading=!1)}else if(a.console.log("Tile %s failed to load: %s - error: %s",c,c.url,f),b.viewer.raiseEvent("tile-load-failed",{tile:c,tiledImage:b,time:d,message:f}),!b.debugMode)return c.loading=!1,void(c.exists=!1);var g=function(){var a=Math.ceil(Math.log(b.source.getTileWidth(c.level))/Math.log(2));h(b,c,e,a)};b._midDraw?window.setTimeout(g,1):g()}function h(a,b,c,d){function e(){return g++,f}function f(){g--,0===g&&(b.loading=!1,b.loaded=!0,b.context2D||a._tileCache.cacheTile({image:c,tile:b,cutoff:d,tiledImage:a}),a._needsDraw=!0)}var g=0;a.viewer.raiseEvent("tile-loaded",{tile:b,tiledImage:a,image:c,getCompletionCallback:e}),e()()}function i(b,c,d,e,f,g){var h=b.bounds.getTopLeft();h.x*=g._scaleSpring.current.value,h.y*=g._scaleSpring.current.value,h.x+=g._xSpring.current.value,h.y+=g._ySpring.current.value;var i=b.bounds.getSize();i.x*=g._scaleSpring.current.value,i.y*=g._scaleSpring.current.value;var j=d.pixelFromPoint(h,!0),k=d.pixelFromPoint(h,!1),l=d.deltaPixelsFromPoints(i,!0),m=d.deltaPixelsFromPoints(i,!1),n=k.plus(m.divide(2)),o=e.distanceTo(n);c||(l=l.plus(new a.Point(1,1))),b.position=j,b.size=l,b.distance=o,b.visibility=f}function j(a,b,c,d,e,f,g){var h,i,j=1e3*a.blendTime;if(b.blendStart||(b.blendStart=g),h=g-b.blendStart,i=j?Math.min(1,h/j):1,a.alwaysBlend&&(i*=f),b.opacity=i,a.lastDrawn.push(b),1==i)m(a.coverage,e,c,d,!0),a._hasOpaqueTile=!0;else if(j>h)return!0;return!1}function k(a,b,c,d){var e,f,g,h;if(!a[b])return!1;if(void 0===c||void 0===d){e=a[b];for(g in e)if(e.hasOwnProperty(g)){f=e[g];for(h in f)if(f.hasOwnProperty(h)&&!f[h])return!1}return!0}return void 0===a[b][c]||void 0===a[b][c][d]||a[b][c][d]===!0}function l(a,b,c,d){return void 0===c||void 0===d?k(a,b+1):k(a,b+1,2*c,2*d)&&k(a,b+1,2*c,2*d+1)&&k(a,b+1,2*c+1,2*d)&&k(a,b+1,2*c+1,2*d+1)}function m(b,c,d,e,f){return b[c]?(b[c][d]||(b[c][d]={}),void(b[c][d][e]=f)):void a.console.warn("Setting coverage for a tile before its level's coverage has been reset: %s",c)}function n(a,b){a[b]={}}function o(a,b){return a?b.visibility>a.visibility?b:b.visibility==a.visibility&&b.distance<a.distance?b:a:b}function p(a,b){var c,d;if(a.opacity<=0)return void q(a,b);var e=a.opacity<1;e&&a._drawer._clear(!0);var f=!1;if(a._clip){a._drawer.saveContext(e);var g=a.imageToViewportRectangle(a._clip,!0),h=a._drawer.viewportToDrawerRectangle(g);a._drawer.setClip(h,e),f=!0}if(a.placeholderFillStyle&&a._hasOpaqueTile===!1){var i=a._drawer.viewportToDrawerRectangle(a.getBounds(!0)),j=null;j="function"==typeof a.placeholderFillStyle?a.placeholderFillStyle(a,a._drawer.context):a.placeholderFillStyle,a._drawer.drawRectangle(i,j,e)}for(c=b.length-1;c>=0;c--)d=b[c],a._drawer.drawTile(d,a._drawingHandler,e),d.beingDrawn=!0,a.viewer&&a.viewer.raiseEvent("tile-drawn",{tiledImage:a,tile:d});f&&a._drawer.restoreContext(e),e&&a._drawer.blendSketch(a.opacity),q(a,b)}function q(b,c){if(b.debugMode)for(var d=c.length-1;d>=0;d--){var e=c[d];try{b._drawer.drawDebugInfo(e,c.length,d)}catch(f){a.console.error(f)}}}a.TiledImage=function(b){var c=this;a.console.assert(b.tileCache,"[TiledImage] options.tileCache is required"),a.console.assert(b.drawer,"[TiledImage] options.drawer is required"),a.console.assert(b.viewer,"[TiledImage] options.viewer is required"),a.console.assert(b.imageLoader,"[TiledImage] options.imageLoader is required"),a.console.assert(b.source,"[TiledImage] options.source is required"),a.console.assert(!b.clip||b.clip instanceof a.Rect,"[TiledImage] options.clip must be an OpenSeadragon.Rect if present"),a.EventSource.call(this),this._tileCache=b.tileCache,delete b.tileCache,this._drawer=b.drawer,delete b.drawer,this._imageLoader=b.imageLoader,delete b.imageLoader,b.clip instanceof a.Rect&&(this._clip=b.clip.clone()),delete b.clip;var d=b.x||0;delete b.x;var e=b.y||0;delete b.y,this.normHeight=b.source.dimensions.y/b.source.dimensions.x,this.contentAspectX=b.source.dimensions.x/b.source.dimensions.y;var f=1;b.width?(f=b.width,delete b.width,b.height&&(a.console.error("specifying both width and height to a tiledImage is not supported"),delete b.height)):b.height&&(f=b.height/this.normHeight,delete b.height),a.extend(!0,this,{viewer:null,tilesMatrix:{},coverage:{},lastDrawn:[],lastResetTime:0,_midDraw:!1,_needsDraw:!0,_hasOpaqueTile:!1,springStiffness:a.DEFAULT_SETTINGS.springStiffness,animationTime:a.DEFAULT_SETTINGS.animationTime,minZoomImageRatio:a.DEFAULT_SETTINGS.minZoomImageRatio,wrapHorizontal:a.DEFAULT_SETTINGS.wrapHorizontal,wrapVertical:a.DEFAULT_SETTINGS.wrapVertical,immediateRender:a.DEFAULT_SETTINGS.immediateRender,blendTime:a.DEFAULT_SETTINGS.blendTime,alwaysBlend:a.DEFAULT_SETTINGS.alwaysBlend,minPixelRatio:a.DEFAULT_SETTINGS.minPixelRatio,debugMode:a.DEFAULT_SETTINGS.debugMode,crossOriginPolicy:a.DEFAULT_SETTINGS.crossOriginPolicy,placeholderFillStyle:a.DEFAULT_SETTINGS.placeholderFillStyle,opacity:a.DEFAULT_SETTINGS.opacity},b),this._xSpring=new a.Spring({initial:d,springStiffness:this.springStiffness,animationTime:this.animationTime}),this._ySpring=new a.Spring({initial:e,springStiffness:this.springStiffness,animationTime:this.animationTime}),this._scaleSpring=new a.Spring({initial:f,springStiffness:this.springStiffness,animationTime:this.animationTime}),this._updateForScale(),this._drawingHandler=function(b){c.viewer.raiseEvent("tile-drawing",a.extend({tiledImage:c},b))}},a.extend(a.TiledImage.prototype,a.EventSource.prototype,{needsDraw:function(){return this._needsDraw},reset:function(){this._tileCache.clearTilesFor(this),this.lastResetTime=a.now(),this._needsDraw=!0},update:function(){var a=this._xSpring.current.value,b=this._ySpring.current.value,c=this._scaleSpring.current.value;return this._xSpring.update(),this._ySpring.update(),this._scaleSpring.update(),this._xSpring.current.value!==a||this._ySpring.current.value!==b||this._scaleSpring.current.value!==c?(this._updateForScale(),this._needsDraw=!0,!0):!1},draw:function(){this._midDraw=!0,b(this),this._midDraw=!1},destroy:function(){this.reset()},getBounds:function(b){return b?new a.Rect(this._xSpring.current.value,this._ySpring.current.value,this._worldWidthCurrent,this._worldHeightCurrent):new a.Rect(this._xSpring.target.value,this._ySpring.target.value,this._worldWidthTarget,this._worldHeightTarget)},getWorldBounds:function(){return a.console.error("[TiledImage.getWorldBounds] is deprecated; use TiledImage.getBounds instead"),this.getBounds()},getContentSize:function(){return new a.Point(this.source.dimensions.x,this.source.dimensions.y)},_viewportToImageDelta:function(b,c,d){var e=d?this._scaleSpring.current.value:this._scaleSpring.target.value;return new a.Point(b*(this.source.dimensions.x/e),c*(this.source.dimensions.y*this.contentAspectX/e))},viewportToImageCoordinates:function(b,c,d){return b instanceof a.Point&&(d=c,c=b.y,b=b.x),d?this._viewportToImageDelta(b-this._xSpring.current.value,c-this._ySpring.current.value):this._viewportToImageDelta(b-this._xSpring.target.value,c-this._ySpring.target.value)},_imageToViewportDelta:function(b,c,d){var e=d?this._scaleSpring.current.value:this._scaleSpring.target.value;return new a.Point(b/this.source.dimensions.x*e,c/this.source.dimensions.y/this.contentAspectX*e)},imageToViewportCoordinates:function(b,c,d){b instanceof a.Point&&(d=c,c=b.y,b=b.x);var e=this._imageToViewportDelta(b,c);return d?(e.x+=this._xSpring.current.value,e.y+=this._ySpring.current.value):(e.x+=this._xSpring.target.value,e.y+=this._ySpring.target.value),e},imageToViewportRectangle:function(b,c,d,e,f){b instanceof a.Rect&&(f=c,d=b.width,e=b.height,c=b.y,b=b.x);var g=this.imageToViewportCoordinates(b,c,f),h=this._imageToViewportDelta(d,e,f);return new a.Rect(g.x,g.y,h.x,h.y)},viewportToImageRectangle:function(b,c,d,e,f){b instanceof a.Rect&&(f=c,d=b.width,e=b.height,c=b.y,b=b.x);var g=this.viewportToImageCoordinates(b,c,f),h=this._viewportToImageDelta(d,e,f);return new a.Rect(g.x,g.y,h.x,h.y)},viewerElementToImageCoordinates:function(a){var b=this.viewport.pointFromPixel(a,!0);return this.viewportToImageCoordinates(b)},imageToViewerElementCoordinates:function(a){var b=this.imageToViewportCoordinates(a);return this.viewport.pixelFromPoint(b,!0)},windowToImageCoordinates:function(a){var b=a.minus(OpenSeadragon.getElementPosition(this.viewer.element));return this.viewerElementToImageCoordinates(b)},imageToWindowCoordinates:function(a){var b=this.imageToViewerElementCoordinates(a);return b.plus(OpenSeadragon.getElementPosition(this.viewer.element))},viewportToImageZoom:function(a){var b=this._scaleSpring.current.value*this.viewport._containerInnerSize.x/this.source.dimensions.x;return b*a},imageToViewportZoom:function(a){var b=this._scaleSpring.current.value*this.viewport._containerInnerSize.x/this.source.dimensions.x;return a/b},setPosition:function(a,b){var c=this._xSpring.target.value===a.x&&this._ySpring.target.value===a.y;if(b){if(c&&this._xSpring.current.value===a.x&&this._ySpring.current.value===a.y)return;this._xSpring.resetTo(a.x),this._ySpring.resetTo(a.y),this._needsDraw=!0}else{if(c)return;this._xSpring.springTo(a.x),this._ySpring.springTo(a.y),this._needsDraw=!0}c||this._raiseBoundsChange()},setWidth:function(a,b){this._setScale(a,b)},setHeight:function(a,b){this._setScale(a/this.normHeight,b)},getClip:function(){return this._clip?this._clip.clone():null},setClip:function(b){a.console.assert(!b||b instanceof a.Rect,"[TiledImage.setClip] newClip must be an OpenSeadragon.Rect or null"),b instanceof a.Rect?this._clip=b.clone():this._clip=null,this._needsDraw=!0},getOpacity:function(){return this.opacity},setOpacity:function(a){this.opacity=a,this._needsDraw=!0},_setScale:function(a,b){var c=this._scaleSpring.target.value===a;if(b){if(c&&this._scaleSpring.current.value===a)return;this._scaleSpring.resetTo(a),this._updateForScale(),this._needsDraw=!0}else{if(c)return;this._scaleSpring.springTo(a),this._updateForScale(),this._needsDraw=!0}c||this._raiseBoundsChange()},_updateForScale:function(){this._worldWidthTarget=this._scaleSpring.target.value,this._worldHeightTarget=this.normHeight*this._scaleSpring.target.value,this._worldWidthCurrent=this._scaleSpring.current.value,this._worldHeightCurrent=this.normHeight*this._scaleSpring.current.value},_raiseBoundsChange:function(){this.raiseEvent("bounds-change")}})}(OpenSeadragon),function(a){var b=function(b){a.console.assert(b,"[TileCache.cacheTile] options is required"),a.console.assert(b.tile,"[TileCache.cacheTile] options.tile is required"),a.console.assert(b.tiledImage,"[TileCache.cacheTile] options.tiledImage is required"),this.tile=b.tile,this.tiledImage=b.tiledImage},c=function(b){a.console.assert(b,"[ImageRecord] options is required"),a.console.assert(b.image,"[ImageRecord] options.image is required"),this._image=b.image,this._tiles=[]};c.prototype={destroy:function(){this._image=null,this._renderedContext=null,this._tiles=null},getImage:function(){return this._image},getRenderedContext:function(){if(!this._renderedContext){var a=document.createElement("canvas");a.width=this._image.width,a.height=this._image.height,this._renderedContext=a.getContext("2d"),this._renderedContext.drawImage(this._image,0,0),this._image=null}return this._renderedContext},setRenderedContext:function(b){a.console.error("ImageRecord.setRenderedContext is deprecated. The rendered context should be created by the ImageRecord itself when calling ImageRecord.getRenderedContext."),this._renderedContext=b},addTile:function(b){a.console.assert(b,"[ImageRecord.addTile] tile is required"),this._tiles.push(b)},removeTile:function(b){for(var c=0;c<this._tiles.length;c++)if(this._tiles[c]===b)return void this._tiles.splice(c,1);a.console.warn("[ImageRecord.removeTile] trying to remove unknown tile",b)},getTileCount:function(){return this._tiles.length}},a.TileCache=function(b){b=b||{},this._maxImageCacheCount=b.maxImageCacheCount||a.DEFAULT_SETTINGS.maxImageCacheCount,this._tilesLoaded=[],this._imagesLoaded=[],this._imagesLoadedCount=0},a.TileCache.prototype={numTilesLoaded:function(){return this._tilesLoaded.length},cacheTile:function(d){a.console.assert(d,"[TileCache.cacheTile] options is required"),a.console.assert(d.tile,"[TileCache.cacheTile] options.tile is required"),a.console.assert(d.tile.url,"[TileCache.cacheTile] options.tile.url is required"),a.console.assert(d.tiledImage,"[TileCache.cacheTile] options.tiledImage is required");var e=d.cutoff||0,f=this._tilesLoaded.length,g=this._imagesLoaded[d.tile.url];if(g||(a.console.assert(d.image,"[TileCache.cacheTile] options.image is required to create an ImageRecord"),g=this._imagesLoaded[d.tile.url]=new c({image:d.image}),this._imagesLoadedCount++),g.addTile(d.tile),d.tile.cacheImageRecord=g,this._imagesLoadedCount>this._maxImageCacheCount){for(var h,i,j,k,l,m,n=null,o=-1,p=null,q=this._tilesLoaded.length-1;q>=0;q--)m=this._tilesLoaded[q],h=m.tile,h.level<=e||h.beingDrawn||(n?(k=h.lastTouchTime,i=n.lastTouchTime,l=h.level,j=n.level,(i>k||k==i&&l>j)&&(n=h,o=q,p=m)):(n=h,o=q,p=m));n&&o>=0&&(this._unloadTile(p),f=o)}this._tilesLoaded[f]=new b({tile:d.tile,tiledImage:d.tiledImage})},clearTilesFor:function(b){a.console.assert(b,"[TileCache.clearTilesFor] tiledImage is required");for(var c,d=0;d<this._tilesLoaded.length;++d)c=this._tilesLoaded[d],c.tiledImage===b&&(this._unloadTile(c),this._tilesLoaded.splice(d,1),d--)},getImageRecord:function(b){return a.console.assert(b,"[TileCache.getImageRecord] url is required"),this._imagesLoaded[b]},_unloadTile:function(b){a.console.assert(b,"[TileCache._unloadTile] tileRecord is required");var c=b.tile,d=b.tiledImage;c.unload(),c.cacheImageRecord=null;var e=this._imagesLoaded[c.url];e.removeTile(c),e.getTileCount()||(e.destroy(),delete this._imagesLoaded[c.url],this._imagesLoadedCount--),d.viewer.raiseEvent("tile-unloaded",{tile:c,tiledImage:d})}}}(OpenSeadragon),function(a){a.World=function(b){var c=this;a.console.assert(b.viewer,"[World] options.viewer is required"),a.EventSource.call(this),this.viewer=b.viewer,this._items=[],this._needsDraw=!1,this._autoRefigureSizes=!0,this._needsSizesFigured=!1,this._delegatedFigureSizes=function(a){c._autoRefigureSizes?c._figureSizes():c._needsSizesFigured=!0},this._figureSizes()},a.extend(a.World.prototype,a.EventSource.prototype,{addItem:function(b,c){if(a.console.assert(b,"[World.addItem] item is required"),a.console.assert(b instanceof a.TiledImage,"[World.addItem] only TiledImages supported at this time"),c=c||{},void 0!==c.index){var d=Math.max(0,Math.min(this._items.length,c.index));this._items.splice(d,0,b)}else this._items.push(b);this._autoRefigureSizes?this._figureSizes():this._needsSizesFigured=!0,this._needsDraw=!0,b.addHandler("bounds-change",this._delegatedFigureSizes),this.raiseEvent("add-item",{item:b})},getItemAt:function(b){return a.console.assert(void 0!==b,"[World.getItemAt] index is required"),this._items[b]},getIndexOfItem:function(b){return a.console.assert(b,"[World.getIndexOfItem] item is required"),a.indexOf(this._items,b)},getItemCount:function(){return this._items.length},setItemIndex:function(b,c){a.console.assert(b,"[World.setItemIndex] item is required"),a.console.assert(void 0!==c,"[World.setItemIndex] index is required");var d=this.getIndexOfItem(b);if(c>=this._items.length)throw new Error("Index bigger than number of layers.");c!==d&&-1!==d&&(this._items.splice(d,1),this._items.splice(c,0,b),this._needsDraw=!0,this.raiseEvent("item-index-change",{item:b,previousIndex:d,newIndex:c}))},removeItem:function(b){a.console.assert(b,"[World.removeItem] item is required");var c=a.indexOf(this._items,b);-1!==c&&(b.removeHandler("bounds-change",this._delegatedFigureSizes),b.destroy(),this._items.splice(c,1),this._figureSizes(),this._needsDraw=!0,this._raiseRemoveItem(b))},removeAll:function(){this.viewer._cancelPendingImages();for(var a,b=0;b<this._items.length;b++)a=this._items[b],a.removeHandler("bounds-change",this._delegatedFigureSizes),a.destroy();var c=this._items;for(this._items=[],this._figureSizes(),this._needsDraw=!0,b=0;b<c.length;b++)a=c[b],this._raiseRemoveItem(a)},resetItems:function(){for(var a=0;a<this._items.length;a++)this._items[a].reset()},update:function(){for(var a=!1,b=0;b<this._items.length;b++)a=this._items[b].update()||a;return a},draw:function(){for(var a=0;a<this._items.length;a++)this._items[a].draw();this._needsDraw=!1},needsDraw:function(){for(var a=0;a<this._items.length;a++)if(this._items[a].needsDraw())return!0;return this._needsDraw},getHomeBounds:function(){return this._homeBounds.clone()},getContentFactor:function(){return this._contentFactor},setAutoRefigureSizes:function(a){this._autoRefigureSizes=a,a&this._needsSizesFigured&&(this._figureSizes(),this._needsSizesFigured=!1)},arrange:function(b){b=b||{};var c,d=b.immediately||!1,e=b.layout||a.DEFAULT_SETTINGS.collectionLayout,f=b.rows||a.DEFAULT_SETTINGS.collectionRows,g=b.columns||a.DEFAULT_SETTINGS.collectionColumns,h=b.tileSize||a.DEFAULT_SETTINGS.collectionTileSize,i=b.tileMargin||a.DEFAULT_SETTINGS.collectionTileMargin,j=h+i;c=!b.rows&&g?g:Math.ceil(this._items.length/f);var k,l,m,n,o,p=0,q=0;this.setAutoRefigureSizes(!1);for(var r=0;r<this._items.length;r++)r&&r%c===0&&("horizontal"===e?(q+=j,p=0):(p+=j,q=0)),k=this._items[r],l=k.getBounds(),m=l.width>l.height?h:h*(l.width/l.height),n=m*(l.height/l.width),o=new a.Point(p+(h-m)/2,q+(h-n)/2),k.setPosition(o,d),k.setWidth(m,d),"horizontal"===e?p+=j:q+=j;this.setAutoRefigureSizes(!0)},_figureSizes:function(){var b=this._homeBounds?this._homeBounds.clone():null,c=this._contentSize?this._contentSize.clone():null,d=this._contentFactor||0;if(this._items.length){var e=this._items[0].getBounds();this._contentFactor=this._items[0].getContentSize().x/e.width;for(var f,g=e.x,h=e.y,i=e.x+e.width,j=e.y+e.height,k=1;k<this._items.length;k++)f=this._items[k].getBounds(),this._contentFactor=Math.max(this._contentFactor,this._items[k].getContentSize().x/f.width),g=Math.min(g,f.x),h=Math.min(h,f.y),i=Math.max(i,f.x+f.width),j=Math.max(j,f.y+f.height);this._homeBounds=new a.Rect(g,h,i-g,j-h),this._contentSize=new a.Point(this._homeBounds.width*this._contentFactor,this._homeBounds.height*this._contentFactor)}else this._homeBounds=new a.Rect(0,0,1,1),this._contentSize=new a.Point(1,1),this._contentFactor=1;this._contentFactor===d&&this._homeBounds.equals(b)&&this._contentSize.equals(c)||this.raiseEvent("metrics-change",{})},_raiseRemoveItem:function(a){this.raiseEvent("remove-item",{item:a})}})}(OpenSeadragon); 6 7 8 window.OpenSeadragon=window.OpenSeadragon||function(a){return new OpenSeadragon.Viewer(a)};"function"==typeof define&&define.amd&&define(function(){return window.OpenSeadragon});!function(a){a.version={versionStr:"<%= osdVersion.versionStr %>",major:parseInt("<%= osdVersion.major %>",10),minor:parseInt("<%= osdVersion.minor %>",10),revision:parseInt("<%= osdVersion.revision %>",10)};var b={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object"},c=Object.prototype.toString,d=Object.prototype.hasOwnProperty;a.isFunction=function(b){return"function"===a.type(b)};a.isArray=Array.isArray||function(b){return"array"===a.type(b)};a.isWindow=function(a){return a&&"object"==typeof a&&"setInterval"in a};a.type=function(a){return null===a||void 0===a?String(a):b[c.call(a)]||"object"};a.isPlainObject=function(b){if(!b||"object"!==OpenSeadragon.type(b)||b.nodeType||a.isWindow(b))return!1;if(b.constructor&&!d.call(b,"constructor")&&!d.call(b.constructor.prototype,"isPrototypeOf"))return!1;var c;for(var e in b)c=e;return void 0===c||d.call(b,c)};a.isEmptyObject=function(a){for(var b in a)return!1;return!0};a.freezeObject=function(b){Object.freeze?a.freezeObject=Object.freeze:a.freezeObject=function(a){return a};return a.freezeObject(b)};a.supportsCanvas=function(){var b=document.createElement("canvas");return!(!a.isFunction(b.getContext)||!b.getContext("2d"))}();a.isCanvasTainted=function(a){var b=!1;try{a.getContext("2d").getImageData(0,0,1,1)}catch(c){b=!0}return b};a.pixelDensityRatio=function(){if(a.supportsCanvas){var b=document.createElement("canvas").getContext("2d");var c=window.devicePixelRatio||1;var d=b.webkitBackingStorePixelRatio||b.mozBackingStorePixelRatio||b.msBackingStorePixelRatio||b.oBackingStorePixelRatio||b.backingStorePixelRatio||1;return c/d}return 1}()}(OpenSeadragon);!function($){function getOffsetParent(a,b){return b&&a!=document.body?document.body:a.offsetParent}$.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=arguments.length,i=!1,j=1;if("boolean"==typeof g){i=g;g=arguments[1]||{};j=2}"object"==typeof g||OpenSeadragon.isFunction(g)||(g={});if(h===j){g=this;--j}for(;h>j;j++){a=arguments[j];if(null!==a||void 0!==a)for(b in a){c=g[b];d=a[b];if(g!==d)if(i&&d&&(OpenSeadragon.isPlainObject(d)||(e=OpenSeadragon.isArray(d)))){if(e){e=!1;f=c&&OpenSeadragon.isArray(c)?c:[]}else f=c&&OpenSeadragon.isPlainObject(c)?c:{};g[b]=OpenSeadragon.extend(i,f,d)}else void 0!==d&&(g[b]=d)}}return g};$.extend($,{DEFAULT_SETTINGS:{xmlPath:null,tileSources:null,tileHost:null,initialPage:0,crossOriginPolicy:!1,ajaxWithCredentials:!1,panHorizontal:!0,panVertical:!0,constrainDuringPan:!1,wrapHorizontal:!1,wrapVertical:!1,visibilityRatio:.5,minPixelRatio:.5,defaultZoomLevel:0,minZoomLevel:null,maxZoomLevel:null,homeFillsViewer:!1,clickTimeThreshold:300,clickDistThreshold:5,dblClickTimeThreshold:300,dblClickDistThreshold:20,springStiffness:6.5,animationTime:1.2,gestureSettingsMouse:{scrollToZoom:!0,clickToZoom:!0,dblClickToZoom:!1,pinchToZoom:!1,flickEnabled:!1,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsTouch:{scrollToZoom:!1,clickToZoom:!1,dblClickToZoom:!0,pinchToZoom:!0,flickEnabled:!0,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsPen:{scrollToZoom:!1,clickToZoom:!0,dblClickToZoom:!1,pinchToZoom:!1,flickEnabled:!1,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},gestureSettingsUnknown:{scrollToZoom:!1,clickToZoom:!1,dblClickToZoom:!0,pinchToZoom:!0,flickEnabled:!0,flickMinSpeed:120,flickMomentum:.25,pinchRotate:!1},zoomPerClick:2,zoomPerScroll:1.2,zoomPerSecond:1,blendTime:0,alwaysBlend:!1,autoHideControls:!0,immediateRender:!1,minZoomImageRatio:.9,maxZoomPixelRatio:1.1,smoothTileEdgesMinZoom:1.1,pixelsPerWheelLine:40,autoResize:!0,preserveImageSizeOnResize:!1,minScrollDeltaTime:50,showSequenceControl:!0,sequenceControlAnchor:null,preserveViewport:!1,preserveOverlays:!1,navPrevNextWrap:!1,showNavigationControl:!0,navigationControlAnchor:null,showZoomControl:!0,showHomeControl:!0,showFullPageControl:!0,showRotationControl:!1,controlsFadeDelay:2e3,controlsFadeLength:1500,mouseNavEnabled:!0,showNavigator:!1,navigatorId:null,navigatorPosition:null,navigatorSizeRatio:.2,navigatorMaintainSizeRatio:!1,navigatorTop:null,navigatorLeft:null,navigatorHeight:null,navigatorWidth:null,navigatorAutoResize:!0,navigatorAutoFade:!0,navigatorRotate:!0,degrees:0,opacity:1,compositeOperation:null,placeholderFillStyle:null,showReferenceStrip:!1,referenceStripScroll:"horizontal",referenceStripElement:null,referenceStripHeight:null,referenceStripWidth:null,referenceStripPosition:"BOTTOM_LEFT",referenceStripSizeRatio:.2,collectionRows:3,collectionColumns:0,collectionLayout:"horizontal",collectionMode:!1,collectionTileSize:800,collectionTileMargin:80,imageLoaderLimit:0,maxImageCacheCount:200,timeout:3e4,useCanvas:!0,prefixUrl:"/images/",navImages:{zoomIn:{REST:"zoomin_rest.png",GROUP:"zoomin_grouphover.png",HOVER:"zoomin_hover.png",DOWN:"zoomin_pressed.png"},zoomOut:{REST:"zoomout_rest.png",GROUP:"zoomout_grouphover.png",HOVER:"zoomout_hover.png",DOWN:"zoomout_pressed.png"},home:{REST:"home_rest.png",GROUP:"home_grouphover.png",HOVER:"home_hover.png",DOWN:"home_pressed.png"},fullpage:{REST:"fullpage_rest.png",GROUP:"fullpage_grouphover.png",HOVER:"fullpage_hover.png",DOWN:"fullpage_pressed.png"},rotateleft:{REST:"rotateleft_rest.png",GROUP:"rotateleft_grouphover.png",HOVER:"rotateleft_hover.png",DOWN:"rotateleft_pressed.png"},rotateright:{REST:"rotateright_rest.png",GROUP:"rotateright_grouphover.png",HOVER:"rotateright_hover.png",DOWN:"rotateright_pressed.png"},previous:{REST:"previous_rest.png",GROUP:"previous_grouphover.png",HOVER:"previous_hover.png",DOWN:"previous_pressed.png"},next:{REST:"next_rest.png",GROUP:"next_grouphover.png",HOVER:"next_hover.png",DOWN:"next_pressed.png"}},debugMode:!1,debugGridColor:"#437AB2"},SIGNAL:"----seadragon----",delegate:function(a,b){return function(){var c=arguments;void 0===c&&(c=[]);return b.apply(a,c)}},BROWSERS:{UNKNOWN:0,IE:1,FIREFOX:2,SAFARI:3,CHROME:4,OPERA:5},getElement:function(a){"string"==typeof a&&(a=document.getElementById(a));return a},getElementPosition:function(a){var b,c,d=new $.Point;a=$.getElement(a);b="fixed"==$.getElementStyle(a).position;c=getOffsetParent(a,b);for(;c;){d.x+=a.offsetLeft;d.y+=a.offsetTop;b&&(d=d.plus($.getPageScroll()));a=c;b="fixed"==$.getElementStyle(a).position;c=getOffsetParent(a,b)}return d},getElementOffset:function(a){a=$.getElement(a);var b,c,d=a&&a.ownerDocument,e={top:0,left:0};if(!d)return new $.Point;b=d.documentElement;"undefined"!=typeof a.getBoundingClientRect&&(e=a.getBoundingClientRect());c=d==d.window?d:9===d.nodeType?d.defaultView||d.parentWindow:!1;return new $.Point(e.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0),e.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0))},getElementSize:function(a){a=$.getElement(a);return new $.Point(a.clientWidth,a.clientHeight)},getElementStyle:document.documentElement.currentStyle?function(a){a=$.getElement(a);return a.currentStyle}:function(a){a=$.getElement(a);return window.getComputedStyle(a,"")},getCssPropertyWithVendorPrefix:function(a){var b={};$.getCssPropertyWithVendorPrefix=function(a){if(void 0!==b[a])return b[a];var c=document.createElement("div").style;var d=null;if(void 0!==c[a])d=a;else{var e=["Webkit","Moz","MS","O","webkit","moz","ms","o"];var f=$.capitalizeFirstLetter(a);for(var g=0;g<e.length;g++){var h=e[g]+f;if(void 0!==c[h]){d=h;break}}}b[a]=d;return d};return $.getCssPropertyWithVendorPrefix(a)},capitalizeFirstLetter:function(a){return a.charAt(0).toUpperCase()+a.slice(1)},pointInElement:function(a,b){a=$.getElement(a);var c=$.getElementOffset(a),d=$.getElementSize(a);return b.x>=c.x&&b.x<c.x+d.x&&b.y<c.y+d.y&&b.y>=c.y},getEvent:function(a){a?$.getEvent=function(a){return a}:$.getEvent=function(){return window.event};return $.getEvent(a)},getMousePosition:function(a){if("number"==typeof a.pageX)$.getMousePosition=function(a){var b=new $.Point;a=$.getEvent(a);b.x=a.pageX;b.y=a.pageY;return b};else{if("number"!=typeof a.clientX)throw new Error("Unknown event mouse position, no known technique.");$.getMousePosition=function(a){var b=new $.Point;a=$.getEvent(a);b.x=a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;b.y=a.clientY+document.body.scrollTop+document.documentElement.scrollTop;return b}}return $.getMousePosition(a)},getPageScroll:function(){var a=document.documentElement||{},b=document.body||{};if("number"==typeof window.pageXOffset)$.getPageScroll=function(){return new $.Point(window.pageXOffset,window.pageYOffset)};else if(b.scrollLeft||b.scrollTop)$.getPageScroll=function(){return new $.Point(document.body.scrollLeft,document.body.scrollTop)};else{if(!a.scrollLeft&&!a.scrollTop)return new $.Point(0,0);$.getPageScroll=function(){return new $.Point(document.documentElement.scrollLeft,document.documentElement.scrollTop)}}return $.getPageScroll()},setPageScroll:function(a){if("undefined"!=typeof window.scrollTo)$.setPageScroll=function(a){window.scrollTo(a.x,a.y)};else{var b=$.getPageScroll();if(b.x===a.x&&b.y===a.y)return;document.body.scrollLeft=a.x;document.body.scrollTop=a.y;var c=$.getPageScroll();if(c.x!==b.x&&c.y!==b.y){$.setPageScroll=function(a){document.body.scrollLeft=a.x;document.body.scrollTop=a.y};return}document.documentElement.scrollLeft=a.x;document.documentElement.scrollTop=a.y;c=$.getPageScroll();if(c.x!==b.x&&c.y!==b.y){$.setPageScroll=function(a){document.documentElement.scrollLeft=a.x;document.documentElement.scrollTop=a.y};return}$.setPageScroll=function(a){}}return $.setPageScroll(a)},getWindowSize:function(){var a=document.documentElement||{},b=document.body||{};if("number"==typeof window.innerWidth)$.getWindowSize=function(){return new $.Point(window.innerWidth,window.innerHeight)};else if(a.clientWidth||a.clientHeight)$.getWindowSize=function(){return new $.Point(document.documentElement.clientWidth,document.documentElement.clientHeight)};else{if(!b.clientWidth&&!b.clientHeight)throw new Error("Unknown window size, no known technique.");$.getWindowSize=function(){return new $.Point(document.body.clientWidth,document.body.clientHeight)}}return $.getWindowSize()},makeCenteredNode:function(a){a=$.getElement(a);var b=[$.makeNeutralElement("div"),$.makeNeutralElement("div"),$.makeNeutralElement("div")];$.extend(b[0].style,{display:"table",height:"100%",width:"100%"});$.extend(b[1].style,{display:"table-row"});$.extend(b[2].style,{display:"table-cell",verticalAlign:"middle",textAlign:"center"});b[0].appendChild(b[1]);b[1].appendChild(b[2]);b[2].appendChild(a);return b[0]},makeNeutralElement:function(a){var b=document.createElement(a),c=b.style;c.background="transparent none";c.border="none";c.margin="0px";c.padding="0px";c.position="static";return b},now:function(){Date.now?$.now=Date.now:$.now=function(){return(new Date).getTime()};return $.now()},makeTransparentImage:function(a){$.makeTransparentImage=function(a){var b=$.makeNeutralElement("img");b.src=a;return b};$.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<7&&($.makeTransparentImage=function(a){var b=$.makeNeutralElement("img"),c=null;c=$.makeNeutralElement("span");c.style.display="inline-block";b.onload=function(){c.style.width=c.style.width||b.width+"px";c.style.height=c.style.height||b.height+"px";b.onload=null;b=null};b.src=a;c.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+a+"', sizingMethod='scale')";return c});return $.makeTransparentImage(a)},setElementOpacity:function(a,b,c){var d,e;a=$.getElement(a);c&&!$.Browser.alpha&&(b=Math.round(b));if($.Browser.opacity)a.style.opacity=1>b?b:"";else if(1>b){d=Math.round(100*b);e="alpha(opacity="+d+")";a.style.filter=e}else a.style.filter=""},setElementTouchActionNone:function(a){a=$.getElement(a);"undefined"!=typeof a.style.touchAction?a.style.touchAction="none":"undefined"!=typeof a.style.msTouchAction&&(a.style.msTouchAction="none")},addClass:function(a,b){a=$.getElement(a);a.className?-1===(" "+a.className+" ").indexOf(" "+b+" ")&&(a.className+=" "+b):a.className=b},indexOf:function(a,b,c){Array.prototype.indexOf?this.indexOf=function(a,b,c){return a.indexOf(b,c)}:this.indexOf=function(a,b,c){var d,e,f=c?c:0;if(!a)throw new TypeError;e=a.length;if(0===e||f>=e)return-1;0>f&&(f=e-Math.abs(f));for(d=f;e>d;d++)if(a[d]===b)return d;return-1};return this.indexOf(a,b,c)},removeClass:function(a,b){var c,d,e=[];a=$.getElement(a);c=a.className.split(/\s+/);for(d=0;d<c.length;d++)c[d]&&c[d]!==b&&e.push(c[d]);a.className=e.join(" ")},addEvent:function(){if(window.addEventListener)return function(a,b,c,d){a=$.getElement(a);a.addEventListener(b,c,d)};if(window.attachEvent)return function(a,b,c,d){a=$.getElement(a);a.attachEvent("on"+b,c)};throw new Error("No known event model.")}(),removeEvent:function(){if(window.removeEventListener)return function(a,b,c,d){a=$.getElement(a);a.removeEventListener(b,c,d)};if(window.detachEvent)return function(a,b,c,d){a=$.getElement(a);a.detachEvent("on"+b,c)};throw new Error("No known event model.")}(),cancelEvent:function(a){a=$.getEvent(a);a.preventDefault?$.cancelEvent=function(a){a.preventDefault()}:$.cancelEvent=function(a){a=$.getEvent(a);a.cancel=!0;a.returnValue=!1};$.cancelEvent(a)},stopEvent:function(a){a=$.getEvent(a);a.stopPropagation?$.stopEvent=function(a){a.stopPropagation()}:$.stopEvent=function(a){a=$.getEvent(a);a.cancelBubble=!0};$.stopEvent(a)},createCallback:function(a,b){var c,d=[];for(c=2;c<arguments.length;c++)d.push(arguments[c]);return function(){var c,e=d.concat([]);for(c=0;c<arguments.length;c++)e.push(arguments[c]);return b.apply(a,e)}},getUrlParameter:function(a){var b=URLPARAMS[a];return b?b:null},getUrlProtocol:function(a){var b=a.match(/^([a-z]+:)\/\//i);return null===b?window.location.protocol:b[1].toLowerCase()},createAjaxRequest:function(a){var b;try{b=!!new ActiveXObject("Microsoft.XMLHTTP")}catch(c){b=!1}if(b)window.XMLHttpRequest?$.createAjaxRequest=function(a){return a?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest}:$.createAjaxRequest=function(){return new ActiveXObject("Microsoft.XMLHTTP")};else{if(!window.XMLHttpRequest)throw new Error("Browser doesn't support XMLHttpRequest.");$.createAjaxRequest=function(){return new XMLHttpRequest}}return $.createAjaxRequest(a)},makeAjaxRequest:function(a,b,c){var d;if($.isPlainObject(a)){b=a.success;c=a.error;d=a.withCredentials;a=a.url}var e=$.getUrlProtocol(a);var f=$.createAjaxRequest("file:"===e);if(!$.isFunction(b))throw new Error("makeAjaxRequest requires a success callback");f.onreadystatechange=function(){if(4==f.readyState){f.onreadystatechange=function(){};if(200===f.status||0===f.status&&"http:"!==e&&"https:"!==e)b(f);else{$.console.log("AJAX request returned %d: %s",f.status,a);$.isFunction(c)&&c(f)}}};d&&(f.withCredentials=!0);try{f.open("GET",a,!0);f.send(null)}catch(g){var h=g.message;var i=$.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<10;i&&"undefined"!=typeof g.number&&-2147024891==g.number&&(h+="\nSee http://msdn.microsoft.com/en-us/library/ms537505(v=vs.85).aspx#xdomain");$.console.log("%s while making AJAX request: %s",g.name,h);f.onreadystatechange=function(){};if(window.XDomainRequest){var j=new XDomainRequest;if(j){j.onload=function(a){$.isFunction(b)&&b({responseText:j.responseText,status:200,statusText:"OK"})};j.onerror=function(a){$.isFunction(c)&&c({responseText:j.responseText,status:444,statusText:"An error happened. Due to an XDomainRequest deficiency we can not extract any information about this error. Upgrade your browser."})};try{j.open("GET",a);j.send()}catch(k){$.isFunction(c)&&c(f,g)}}}else $.isFunction(c)&&c(f,g)}},jsonp:function(a){var b,c=a.url,d=document.head||document.getElementsByTagName("head")[0]||document.documentElement,e=a.callbackName||"openseadragon"+$.now(),f=window[e],g="$1"+e+"$2",h=a.param||"callback",i=a.callback;c=c.replace(/(\=)\?(&|$)|\?\?/i,g);c+=(/\?/.test(c)?"&":"?")+h+"="+e;window[e]=function(a){if(f)window[e]=f;else try{delete window[e]}catch(b){}i&&$.isFunction(i)&&i(a)};b=document.createElement("script");(void 0!==a.async||!1!==a.async)&&(b.async="async");a.scriptCharset&&(b.charset=a.scriptCharset);b.src=c;b.onload=b.onreadystatechange=function(a,c){if(c||!b.readyState||/loaded|complete/.test(b.readyState)){b.onload=b.onreadystatechange=null;d&&b.parentNode&&d.removeChild(b);b=void 0}};d.insertBefore(b,d.firstChild)},createFromDZI:function(){throw"OpenSeadragon.createFromDZI is deprecated, use Viewer.open."},parseXml:function(a){if(window.DOMParser)$.parseXml=function(a){var b,c=null;b=new DOMParser;c=b.parseFromString(a,"text/xml");return c};else{if(!window.ActiveXObject)throw new Error("Browser doesn't support XML DOM.");$.parseXml=function(a){var b=null;b=new ActiveXObject("Microsoft.XMLDOM");b.async=!1;b.loadXML(a);return b}}return $.parseXml(a)},parseJSON:function(string){window.JSON&&window.JSON.parse?$.parseJSON=window.JSON.parse:$.parseJSON=function(string){return eval("("+string+")")};return $.parseJSON(string)},imageFormatSupported:function(a){a=a?a:"";return!!FILEFORMATS[a.toLowerCase()]}});$.Browser={vendor:$.BROWSERS.UNKNOWN,version:0,alpha:!0};var FILEFORMATS={bmp:!1,jpeg:!0,jpg:!0,png:!0,tif:!1,wdp:!1},URLPARAMS={};!function(){var a,b=(navigator.appName,navigator.appVersion),c=navigator.userAgent;switch(navigator.appName){case"Microsoft Internet Explorer":if(window.attachEvent&&window.ActiveXObject){$.Browser.vendor=$.BROWSERS.IE;$.Browser.version=parseFloat(c.substring(c.indexOf("MSIE")+5,c.indexOf(";",c.indexOf("MSIE"))))}break;case"Netscape":if(window.addEventListener)if(c.indexOf("Firefox")>=0){$.Browser.vendor=$.BROWSERS.FIREFOX;$.Browser.version=parseFloat(c.substring(c.indexOf("Firefox")+8))}else if(c.indexOf("Safari")>=0){$.Browser.vendor=c.indexOf("Chrome")>=0?$.BROWSERS.CHROME:$.BROWSERS.SAFARI;$.Browser.version=parseFloat(c.substring(c.substring(0,c.indexOf("Safari")).lastIndexOf("/")+1,c.indexOf("Safari")))}else{a=new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})");if(null!==a.exec(c)){$.Browser.vendor=$.BROWSERS.IE;$.Browser.version=parseFloat(RegExp.$1)}}break;case"Opera":$.Browser.vendor=$.BROWSERS.OPERA;$.Browser.version=parseFloat(b)}var d,e,f,g=window.location.search.substring(1),h=g.split("&");for(f=0;f<h.length;f++){d=h[f];e=d.indexOf("=");e>0&&(URLPARAMS[d.substring(0,e)]=decodeURIComponent(d.substring(e+1)))}$.Browser.alpha=!($.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<9||$.Browser.vendor==$.BROWSERS.CHROME&&$.Browser.version<2);$.Browser.opacity=!($.Browser.vendor==$.BROWSERS.IE&&$.Browser.version<9)}();var nullfunction=function(a){};$.console=window.console||{log:nullfunction,debug:nullfunction,info:nullfunction,warn:nullfunction,error:nullfunction,assert:nullfunction};!function(a){var b=a.requestAnimationFrame||a.mozRequestAnimationFrame||a.webkitRequestAnimationFrame||a.msRequestAnimationFrame;var c=a.cancelAnimationFrame||a.mozCancelAnimationFrame||a.webkitCancelAnimationFrame||a.msCancelAnimationFrame;if(b&&c){$.requestAnimationFrame=function(){return b.apply(a,arguments)};$.cancelAnimationFrame=function(){return c.apply(a,arguments)}}else{var d,e=[],f=[],g=0;$.requestAnimationFrame=function(a){e.push([++g,a]);d||(d=setInterval(function(){if(e.length){var a=$.now();var b=f;f=e;e=b;for(;f.length;)f.shift()[1](a)}else{clearInterval(d);d=void 0}},20));return g};$.cancelAnimationFrame=function(a){var b,c;for(b=0,c=e.length;c>b;b+=1)if(e[b][0]===a){e.splice(b,1);return}for(b=0,c=f.length;c>b;b+=1)if(f[b][0]===a){f.splice(b,1);return}}}}(window)}(OpenSeadragon);!function(a){var b={supportsFullScreen:!1,isFullScreen:function(){return!1},getFullScreenElement:function(){return null},requestFullScreen:function(){},exitFullScreen:function(){},cancelFullScreen:function(){},fullScreenEventName:"",fullScreenErrorEventName:""};if(document.exitFullscreen){b.supportsFullScreen=!0;b.getFullScreenElement=function(){return document.fullscreenElement};b.requestFullScreen=function(a){return a.requestFullscreen()};b.exitFullScreen=function(){document.exitFullscreen()};b.fullScreenEventName="fullscreenchange";b.fullScreenErrorEventName="fullscreenerror"}else if(document.msExitFullscreen){b.supportsFullScreen=!0;b.getFullScreenElement=function(){return document.msFullscreenElement};b.requestFullScreen=function(a){return a.msRequestFullscreen()};b.exitFullScreen=function(){document.msExitFullscreen()};b.fullScreenEventName="MSFullscreenChange";b.fullScreenErrorEventName="MSFullscreenError"}else if(document.webkitExitFullscreen){b.supportsFullScreen=!0;b.getFullScreenElement=function(){return document.webkitFullscreenElement};b.requestFullScreen=function(a){return a.webkitRequestFullscreen()};b.exitFullScreen=function(){document.webkitExitFullscreen()};b.fullScreenEventName="webkitfullscreenchange";b.fullScreenErrorEventName="webkitfullscreenerror"}else if(document.webkitCancelFullScreen){b.supportsFullScreen=!0;b.getFullScreenElement=function(){return document.webkitCurrentFullScreenElement};b.requestFullScreen=function(a){return a.webkitRequestFullScreen()};b.exitFullScreen=function(){document.webkitCancelFullScreen()};b.fullScreenEventName="webkitfullscreenchange";b.fullScreenErrorEventName="webkitfullscreenerror"}else if(document.mozCancelFullScreen){b.supportsFullScreen=!0;b.getFullScreenElement=function(){return document.mozFullScreenElement};b.requestFullScreen=function(a){return a.mozRequestFullScreen()};b.exitFullScreen=function(){document.mozCancelFullScreen()};b.fullScreenEventName="mozfullscreenchange";b.fullScreenErrorEventName="mozfullscreenerror"}b.isFullScreen=function(){return null!==b.getFullScreenElement()};b.cancelFullScreen=function(){a.console.error("cancelFullScreen is deprecated. Use exitFullScreen instead.");b.exitFullScreen()};a.extend(a,b)}(OpenSeadragon);!function(a){a.EventSource=function(){this.events={}};a.EventSource.prototype={addOnceHandler:function(a,b,c,d){var e=this;d=d||1;var f=0;var g=function(c){f++;f===d&&e.removeHandler(a,g);b(c)};this.addHandler(a,g,c)},addHandler:function(b,c,d){var e=this.events[b];e||(this.events[b]=e=[]);c&&a.isFunction(c)&&(e[e.length]={handler:c,userData:d||null})},removeHandler:function(b,c){var d,e=this.events[b],f=[];if(e&&a.isArray(e)){for(d=0;d<e.length;d++)e[d].handler!==c&&f.push(e[d]);this.events[b]=f}},removeAllHandlers:function(a){if(a)this.events[a]=[];else for(var b in this.events)this.events[b]=[]},getHandler:function(a){var b=this.events[a];if(!b||!b.length)return null;b=1===b.length?[b[0]]:Array.apply(null,b);return function(a,c){var d,e=b.length;for(d=0;e>d;d++)if(b[d]){c.eventSource=a;c.userData=b[d].userData;b[d].handler(c)}}},raiseEvent:function(a,b){var c=this.getHandler(a);if(c){b||(b={});c(this,b)}}}}(OpenSeadragon);!function(a){function b(b){var c,d=pa[b.hash],e=d.activePointersLists.length;for(c=0;e>c;c++)if(d.activePointersLists[c].captureCount>0){a.removeEvent(a.MouseTracker.captureElement,"mousemove",d.mousemovecaptured,!0);a.removeEvent(a.MouseTracker.captureElement,"mouseup",d.mouseupcaptured,!0);a.removeEvent(a.MouseTracker.captureElement,a.MouseTracker.unprefixedPointerEvents?"pointermove":"MSPointerMove",d.pointermovecaptured,!0);a.removeEvent(a.MouseTracker.captureElement,a.MouseTracker.unprefixedPointerEvents?"pointerup":"MSPointerUp",d.pointerupcaptured,!0);a.removeEvent(a.MouseTracker.captureElement,"touchmove",d.touchmovecaptured,!0);a.removeEvent(a.MouseTracker.captureElement,"touchend",d.touchendcaptured,!0);d.activePointersLists[c].captureCount=0}for(c=0;e>c;c++)d.activePointersLists.pop()}function c(c){var d,e,f=pa[c.hash];if(!f.tracking){for(e=0;e<a.MouseTracker.subscribeEvents.length;e++){d=a.MouseTracker.subscribeEvents[e];a.addEvent(c.element,d,f[d],!1)}b(c);f.tracking=!0}}function d(c){var d,e,f=pa[c.hash];if(f.tracking){for(e=0;e<a.MouseTracker.subscribeEvents.length;e++){d=a.MouseTracker.subscribeEvents[e];a.removeEvent(c.element,d,f[d],!1)}b(c);f.tracking=!1}}function e(b,c){var d=pa[b.hash];if("pointerevent"===c)return{upName:a.MouseTracker.unprefixedPointerEvents?"pointerup":"MSPointerUp",upHandler:d.pointerupcaptured,moveName:a.MouseTracker.unprefixedPointerEvents?"pointermove":"MSPointerMove",moveHandler:d.pointermovecaptured};if("mouse"===c)return{upName:"mouseup",upHandler:d.mouseupcaptured,moveName:"mousemove",moveHandler:d.mousemovecaptured};if("touch"===c)return{upName:"touchend",upHandler:d.touchendcaptured,moveName:"touchmove",moveHandler:d.touchmovecaptured};throw new Error("MouseTracker.getCaptureEventParams: Unknown pointer type.")}function f(b,c,d){var f,g=b.getActivePointersListByType(c);g.captureCount+=d||1;if(1===g.captureCount)if(a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9)b.element.setCapture(!0);else{f=e(b,a.MouseTracker.havePointerEvents?"pointerevent":c);qa&&na(window.top)&&a.addEvent(window.top,f.upName,f.upHandler,!0);a.addEvent(a.MouseTracker.captureElement,f.upName,f.upHandler,!0);a.addEvent(a.MouseTracker.captureElement,f.moveName,f.moveHandler,!0)}}function g(b,c,d){var f,g=b.getActivePointersListByType(c);g.captureCount-=d||1;if(0===g.captureCount)if(a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9)b.element.releaseCapture();else{f=e(b,a.MouseTracker.havePointerEvents?"pointerevent":c);qa&&na(window.top)&&a.removeEvent(window.top,f.upName,f.upHandler,!0);a.removeEvent(a.MouseTracker.captureElement,f.moveName,f.moveHandler,!0);a.removeEvent(a.MouseTracker.captureElement,f.upName,f.upHandler,!0)}}function h(b){var c;if(a.MouseTracker.unprefixedPointerEvents)c=b.pointerType;else switch(b.pointerType){case 2:c="touch";break;case 3:c="pen";break;case 4:c="mouse";break;default:c=""}return c}function i(b){return a.getMousePosition(b)}function j(a,b){return k(i(a),b)}function k(b,c){var d=a.getElementOffset(c);return b.minus(d)}function l(b,c){return new a.Point((b.x+c.x)/2,(b.y+c.y)/2)}function m(b,c){b.clickHandler&&a.cancelEvent(c)}function n(b,c){b.dblClickHandler&&a.cancelEvent(c)}function o(b,c){var d;if(b.keyDownHandler){c=a.getEvent(c);d=b.keyDownHandler({eventSource:b,keyCode:c.keyCode?c.keyCode:c.charCode,ctrl:c.ctrlKey,shift:c.shiftKey,alt:c.altKey,meta:c.metaKey,originalEvent:c,preventDefaultAction:!1,userData:b.userData});d||a.cancelEvent(c)}}function p(b,c){var d;if(b.keyUpHandler){c=a.getEvent(c);d=b.keyUpHandler({eventSource:b,keyCode:c.keyCode?c.keyCode:c.charCode,ctrl:c.ctrlKey,shift:c.shiftKey,alt:c.altKey,meta:c.metaKey,originalEvent:c,preventDefaultAction:!1,userData:b.userData});d||a.cancelEvent(c)}}function q(b,c){var d;if(b.keyHandler){c=a.getEvent(c);d=b.keyHandler({eventSource:b,keyCode:c.keyCode?c.keyCode:c.charCode,ctrl:c.ctrlKey,shift:c.shiftKey,alt:c.altKey,meta:c.metaKey,originalEvent:c,preventDefaultAction:!1,userData:b.userData});d||a.cancelEvent(c)}}function r(b,c){var d;if(b.focusHandler){c=a.getEvent(c);d=b.focusHandler({eventSource:b,originalEvent:c,preventDefaultAction:!1,userData:b.userData});d===!1&&a.cancelEvent(c)}}function s(b,c){var d;if(b.blurHandler){c=a.getEvent(c);d=b.blurHandler({eventSource:b,originalEvent:c,preventDefaultAction:!1,userData:b.userData});d===!1&&a.cancelEvent(c)}}function t(a,b){v(a,b,b)}function u(b,c){c=a.getEvent(c);var d={target:c.target||c.srcElement,type:"wheel",shiftKey:c.shiftKey||!1,clientX:c.clientX,clientY:c.clientY,pageX:c.pageX?c.pageX:c.clientX,pageY:c.pageY?c.pageY:c.clientY,deltaMode:"MozMousePixelScroll"==c.type?0:1,deltaX:0,deltaZ:0};"mousewheel"==a.MouseTracker.wheelEventName?d.deltaY=-1/a.DEFAULT_SETTINGS.pixelsPerWheelLine*c.wheelDelta:d.deltaY=c.detail;v(b,d,c)}function v(b,c,d){var e,f=0;f=c.deltaY<0?1:-1;if(b.scrollHandler){e=b.scrollHandler({eventSource:b,pointerType:"mouse",position:j(c,b.element),scroll:f,shift:c.shiftKey,isTouchEvent:!1,originalEvent:d,preventDefaultAction:!1,userData:b.userData});e===!1&&a.cancelEvent(d)}}function w(a,b){if(a===b)return!1;for(;b&&b!==a;)b=b.parentNode;return b===a}function x(b,c){c=a.getEvent(c);z(b,c)}function y(b,c){c=a.getEvent(c);c.currentTarget===c.relatedTarget||w(c.currentTarget,c.relatedTarget)||z(b,c)}function z(b,c){var d={id:a.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:i(c),currentTime:a.now()};ga(b,c,[d])}function A(b,c){c=a.getEvent(c);C(b,c)}function B(b,c){c=a.getEvent(c);c.currentTarget===c.relatedTarget||w(c.currentTarget,c.relatedTarget)||C(b,c)}function C(b,c){var d={id:a.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:i(c),currentTime:a.now()};ha(b,c,[d])}function D(b){return a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9?1===b?0:2===b?2:4===b?1:-1:b}function E(b,c){var d;c=a.getEvent(c);d={id:a.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:i(c),currentTime:a.now()};if(ia(b,c,[d],D(c.button))){a.stopEvent(c);f(b,"mouse")}(b.clickHandler||b.dblClickHandler||b.pressHandler||b.dragHandler||b.dragEndHandler)&&a.cancelEvent(c)}function F(a,b){H(a,b)}function G(b,c){H(b,c);a.stopEvent(c)}function H(b,c){var d;c=a.getEvent(c);d={id:a.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:i(c),currentTime:a.now()};ja(b,c,[d],D(c.button))&&g(b,"mouse")}function I(a,b){K(a,b)}function J(b,c){K(b,c);a.stopEvent(c)}function K(b,c){var d;c=a.getEvent(c);d={id:a.MouseTracker.mousePointerId,type:"mouse",isPrimary:!0,currentPos:i(c),currentTime:a.now()};ka(b,c,[d])}function L(a,b,c){var d,e=c.getLength(),f=[];for(d=0;e>d;d++)f.push(c.getByIndex(d));if(f.length>0){ja(a,b,f,0);c.captureCount=1;g(a,"touch");ha(a,b,f)}}function M(b,c){var d,e,g,h,j=c.changedTouches.length,k=[],l=b.getActivePointersListByType("touch");d=a.now();if(l.getLength()>c.touches.length-j){a.console.warn("Tracked touch contact count doesn't match event.touches.length. Removing all tracked touch pointers.");L(b,c,l)}for(e=0;j>e;e++)k.push({id:c.changedTouches[e].identifier,type:"touch",currentPos:i(c.changedTouches[e]),currentTime:d});ga(b,c,k);for(e=0;e<oa.length;e++)if(oa[e]!==b&&oa[e].isTracking()&&w(oa[e].element,b.element)){h=[];for(g=0;j>g;g++)h.push({id:c.changedTouches[g].identifier,type:"touch",currentPos:i(c.changedTouches[g]),currentTime:d});ga(oa[e],c,h)}if(ia(b,c,k,0)){a.stopEvent(c);f(b,"touch",j)}a.cancelEvent(c)}function N(a,b){P(a,b)}function O(b,c){P(b,c);a.stopEvent(c)}function P(b,c){var d,e,f,h,j=c.changedTouches.length,k=[];d=a.now();for(e=0;j>e;e++)k.push({id:c.changedTouches[e].identifier,type:"touch",currentPos:i(c.changedTouches[e]),currentTime:d});ja(b,c,k,0)&&g(b,"touch",j);ha(b,c,k);for(e=0;e<oa.length;e++)if(oa[e]!==b&&oa[e].isTracking()&&w(oa[e].element,b.element)){h=[];for(f=0;j>f;f++)h.push({id:c.changedTouches[f].identifier,type:"touch",currentPos:i(c.changedTouches[f]),currentTime:d});ha(oa[e],c,h)}a.cancelEvent(c)}function Q(a,b){S(a,b)}function R(b,c){S(b,c);a.stopEvent(c)}function S(b,c){var d,e=c.changedTouches.length,f=[];for(d=0;e>d;d++)f.push({id:c.changedTouches[d].identifier,type:"touch",currentPos:i(c.changedTouches[d]),currentTime:a.now()});ka(b,c,f);a.cancelEvent(c)}function T(a,b){var c=(b.changedTouches.length,a.getActivePointersListByType("touch"));L(a,b,c)}function U(a,b){b.stopPropagation();b.preventDefault();return!1}function V(a,b){b.stopPropagation();b.preventDefault();return!1}function W(b,c){var d;if(c.currentTarget!==c.relatedTarget&&!w(c.currentTarget,c.relatedTarget)){d={id:c.pointerId,type:h(c),isPrimary:c.isPrimary,currentPos:i(c),currentTime:a.now()};ga(b,c,[d])}}function X(b,c){var d;if(c.currentTarget!==c.relatedTarget&&!w(c.currentTarget,c.relatedTarget)){d={id:c.pointerId,type:h(c),isPrimary:c.isPrimary,currentPos:i(c),currentTime:a.now()};ha(b,c,[d])}}function Y(b,c){var d;d={id:c.pointerId,type:h(c),isPrimary:c.isPrimary,currentPos:i(c),currentTime:a.now()};if(ia(b,c,[d],c.button)){a.stopEvent(c);f(b,d.type)}(b.clickHandler||b.dblClickHandler||b.pressHandler||b.dragHandler||b.dragEndHandler||b.pinchHandler)&&a.cancelEvent(c)}function Z(a,b){_(a,b)}function $(b,c){var d=b.getActivePointersListByType(h(c)); 9 d.getById(c.pointerId)&&_(b,c);a.stopEvent(c)}function _(b,c){var d;d={id:c.pointerId,type:h(c),isPrimary:c.isPrimary,currentPos:i(c),currentTime:a.now()};ja(b,c,[d],c.button)&&g(b,d.type)}function aa(a,b){ca(a,b)}function ba(b,c){var d=b.getActivePointersListByType(h(c));d.getById(c.pointerId)&&ca(b,c);a.stopEvent(c)}function ca(b,c){var d;d={id:c.pointerId,type:h(c),isPrimary:c.isPrimary,currentPos:i(c),currentTime:a.now()};ka(b,c,[d])}function da(a,b){var c;c={id:b.pointerId,type:h(b)};la(a,b,[c])}function ea(a,b){b.hasOwnProperty("isPrimary")||(0===a.getLength()?b.isPrimary=!0:b.isPrimary=!1);b.speed=0;b.direction=0;b.contactPos=b.currentPos;b.contactTime=b.currentTime;b.lastPos=b.currentPos;b.lastTime=b.currentTime;return a.add(b)}function fa(a,b){var c,d;if(a.getById(b.id)){c=a.removeById(b.id);if(!b.hasOwnProperty("isPrimary")){d=a.getPrimary();if(!d){d=a.getByIndex(0);d&&(d.isPrimary=!0)}}}else c=a.getLength();return c}function ga(b,c,d){var e,f,g,h,i=b.getActivePointersListByType(d[0].type),j=d.length;for(e=0;j>e;e++){f=d[e];g=i.getById(f.id);if(g){g.insideElement=!0;g.lastPos=g.currentPos;g.lastTime=g.currentTime;g.currentPos=f.currentPos;g.currentTime=f.currentTime;f=g}else{f.captured=!1;f.insideElementPressed=!1;f.insideElement=!0;ea(i,f)}if(b.enterHandler){h=b.enterHandler({eventSource:b,pointerType:f.type,position:k(f.currentPos,b.element),buttons:i.buttons,pointers:b.getActivePointerCount(),insideElementPressed:f.insideElementPressed,buttonDownAny:0!==i.buttons,isTouchEvent:"touch"===f.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});h===!1&&a.cancelEvent(c)}}}function ha(b,c,d){var e,f,g,h,i=(pa[b.hash],b.getActivePointersListByType(d[0].type)),j=d.length;for(e=0;j>e;e++){f=d[e];g=i.getById(f.id);if(g){if(g.captured){g.insideElement=!1;g.lastPos=g.currentPos;g.lastTime=g.currentTime;g.currentPos=f.currentPos;g.currentTime=f.currentTime}else fa(i,g);f=g}if(b.exitHandler){h=b.exitHandler({eventSource:b,pointerType:f.type,position:k(f.currentPos,b.element),buttons:i.buttons,pointers:b.getActivePointerCount(),insideElementPressed:g?g.insideElementPressed:!1,buttonDownAny:0!==i.buttons,isTouchEvent:"touch"===f.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});h===!1&&a.cancelEvent(c)}}}function ia(b,c,d,e){var f,g,h,i,j=pa[b.hash],m=b.getActivePointersListByType(d[0].type),n=d.length;"undefined"!=typeof c.buttons?m.buttons=c.buttons:a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9?0===e?m.buttons+=1:1===e?m.buttons+=4:2===e?m.buttons+=2:3===e?m.buttons+=8:4===e?m.buttons+=16:5===e&&(m.buttons+=32):0===e?m.buttons|=1:1===e?m.buttons|=4:2===e?m.buttons|=2:3===e?m.buttons|=8:4===e?m.buttons|=16:5===e&&(m.buttons|=32);if(0!==e){if(b.nonPrimaryPressHandler){f=b.nonPrimaryPressHandler({eventSource:b,pointerType:d[0].type,position:k(d[0].currentPos,b.element),button:e,buttons:m.buttons,isTouchEvent:"touch"===d[0].type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});f===!1&&a.cancelEvent(c)}return!1}for(g=0;n>g;g++){h=d[g];i=m.getById(h.id);if(i){i.captured=!0;i.insideElementPressed=!0;i.insideElement=!0;i.contactPos=h.currentPos;i.contactTime=h.currentTime;i.lastPos=i.currentPos;i.lastTime=i.currentTime;i.currentPos=h.currentPos;i.currentTime=h.currentTime;h=i}else{h.captured=!0;h.insideElementPressed=!0;h.insideElement=!0;ea(m,h)}m.contacts++;(b.dragHandler||b.dragEndHandler||b.pinchHandler)&&a.MouseTracker.gesturePointVelocityTracker.addPoint(b,h);if(1===m.contacts){if(b.pressHandler){f=b.pressHandler({eventSource:b,pointerType:h.type,position:k(h.contactPos,b.element),buttons:m.buttons,isTouchEvent:"touch"===h.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});f===!1&&a.cancelEvent(c)}}else if(2===m.contacts&&b.pinchHandler&&"touch"===h.type){j.pinchGPoints=m.asArray();j.lastPinchDist=j.currentPinchDist=j.pinchGPoints[0].currentPos.distanceTo(j.pinchGPoints[1].currentPos);j.lastPinchCenter=j.currentPinchCenter=l(j.pinchGPoints[0].currentPos,j.pinchGPoints[1].currentPos)}}return!0}function ja(b,c,d,e){var f,g,h,i,j,m,n,o=pa[b.hash],p=b.getActivePointersListByType(d[0].type),q=d.length,r=!1,s=!1;"undefined"!=typeof c.buttons?p.buttons=c.buttons:a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9?0===e?p.buttons-=1:1===e?p.buttons-=4:2===e?p.buttons-=2:3===e?p.buttons-=8:4===e?p.buttons-=16:5===e&&(p.buttons-=32):0===e?p.buttons^=-2:1===e?p.buttons^=-5:2===e?p.buttons^=-3:3===e?p.buttons^=-9:4===e?p.buttons^=-17:5===e&&(p.buttons^=-33);if(0!==e){if(b.nonPrimaryReleaseHandler){f=b.nonPrimaryReleaseHandler({eventSource:b,pointerType:d[0].type,position:k(d[0].currentPos,b.element),button:e,buttons:p.buttons,isTouchEvent:"touch"===d[0].type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});f===!1&&a.cancelEvent(c)}return!1}for(i=0;q>i;i++){j=d[i];m=p.getById(j.id);if(m){if(m.captured){m.captured=!1;r=!0;s=!0}m.lastPos=m.currentPos;m.lastTime=m.currentTime;m.currentPos=j.currentPos;m.currentTime=j.currentTime;m.insideElement||fa(p,m);g=m.currentPos;h=m.currentTime;if(s){p.contacts--;(b.dragHandler||b.dragEndHandler||b.pinchHandler)&&a.MouseTracker.gesturePointVelocityTracker.removePoint(b,m);if(0===p.contacts){if(b.releaseHandler){f=b.releaseHandler({eventSource:b,pointerType:m.type,position:k(g,b.element),buttons:p.buttons,insideElementPressed:m.insideElementPressed,insideElementReleased:m.insideElement,isTouchEvent:"touch"===m.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});f===!1&&a.cancelEvent(c)}if(b.dragEndHandler&&!m.currentPos.equals(m.contactPos)){f=b.dragEndHandler({eventSource:b,pointerType:m.type,position:k(m.currentPos,b.element),speed:m.speed,direction:m.direction,shift:c.shiftKey,isTouchEvent:"touch"===m.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});f===!1&&a.cancelEvent(c)}if((b.clickHandler||b.dblClickHandler)&&m.insideElement){n=h-m.contactTime<=b.clickTimeThreshold&&m.contactPos.distanceTo(g)<=b.clickDistThreshold;if(b.clickHandler){f=b.clickHandler({eventSource:b,pointerType:m.type,position:k(m.currentPos,b.element),quick:n,shift:c.shiftKey,isTouchEvent:"touch"===m.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});f===!1&&a.cancelEvent(c)}if(b.dblClickHandler&&n){p.clicks++;if(1===p.clicks){o.lastClickPos=g;o.dblClickTimeOut=setTimeout(function(){p.clicks=0},b.dblClickTimeThreshold)}else if(2===p.clicks){clearTimeout(o.dblClickTimeOut);p.clicks=0;if(o.lastClickPos.distanceTo(g)<=b.dblClickDistThreshold){f=b.dblClickHandler({eventSource:b,pointerType:m.type,position:k(m.currentPos,b.element),shift:c.shiftKey,isTouchEvent:"touch"===m.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});f===!1&&a.cancelEvent(c)}o.lastClickPos=null}}}}else if(2===p.contacts&&b.pinchHandler&&"touch"===m.type){o.pinchGPoints=p.asArray();o.lastPinchDist=o.currentPinchDist=o.pinchGPoints[0].currentPos.distanceTo(o.pinchGPoints[1].currentPos);o.lastPinchCenter=o.currentPinchCenter=l(o.pinchGPoints[0].currentPos,o.pinchGPoints[1].currentPos)}}else if(b.releaseHandler){f=b.releaseHandler({eventSource:b,pointerType:m.type,position:k(g,b.element),buttons:p.buttons,insideElementPressed:m.insideElementPressed,insideElementReleased:m.insideElement,isTouchEvent:"touch"===m.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});f===!1&&a.cancelEvent(c)}}}return r}function ka(b,c,d){var e,f,g,h,i,j,m=pa[b.hash],n=b.getActivePointersListByType(d[0].type),o=d.length;"undefined"!=typeof c.buttons&&(n.buttons=c.buttons);for(e=0;o>e;e++){f=d[e];g=n.getById(f.id);if(g){f.hasOwnProperty("isPrimary")&&(g.isPrimary=f.isPrimary);g.lastPos=g.currentPos;g.lastTime=g.currentTime;g.currentPos=f.currentPos;g.currentTime=f.currentTime}else{f.captured=!1;f.insideElementPressed=!1;f.insideElement=!0;ea(n,f)}}if(b.stopHandler&&"mouse"===d[0].type){clearTimeout(b.stopTimeOut);b.stopTimeOut=setTimeout(function(){ma(b,c,d[0].type)},b.stopDelay)}if(0===n.contacts){if(b.moveHandler){j=b.moveHandler({eventSource:b,pointerType:d[0].type,position:k(d[0].currentPos,b.element),buttons:n.buttons,isTouchEvent:"touch"===d[0].type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});j===!1&&a.cancelEvent(c)}}else if(1===n.contacts){if(b.moveHandler){g=n.asArray()[0];j=b.moveHandler({eventSource:b,pointerType:g.type,position:k(g.currentPos,b.element),buttons:n.buttons,isTouchEvent:"touch"===g.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});j===!1&&a.cancelEvent(c)}if(b.dragHandler){g=n.asArray()[0];i=g.currentPos.minus(g.lastPos);j=b.dragHandler({eventSource:b,pointerType:g.type,position:k(g.currentPos,b.element),buttons:n.buttons,delta:i,speed:g.speed,direction:g.direction,shift:c.shiftKey,isTouchEvent:"touch"===g.type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});j===!1&&a.cancelEvent(c)}}else if(2===n.contacts){if(b.moveHandler){h=n.asArray();j=b.moveHandler({eventSource:b,pointerType:h[0].type,position:k(l(h[0].currentPos,h[1].currentPos),b.element),buttons:n.buttons,isTouchEvent:"touch"===h[0].type,originalEvent:c,preventDefaultAction:!1,userData:b.userData});j===!1&&a.cancelEvent(c)}if(b.pinchHandler&&"touch"===d[0].type){i=m.pinchGPoints[0].currentPos.distanceTo(m.pinchGPoints[1].currentPos);if(i!=m.currentPinchDist){m.lastPinchDist=m.currentPinchDist;m.currentPinchDist=i;m.lastPinchCenter=m.currentPinchCenter;m.currentPinchCenter=l(m.pinchGPoints[0].currentPos,m.pinchGPoints[1].currentPos);j=b.pinchHandler({eventSource:b,pointerType:"touch",gesturePoints:m.pinchGPoints,lastCenter:k(m.lastPinchCenter,b.element),center:k(m.currentPinchCenter,b.element),lastDistance:m.lastPinchDist,distance:m.currentPinchDist,shift:c.shiftKey,originalEvent:c,preventDefaultAction:!1,userData:b.userData});j===!1&&a.cancelEvent(c)}}}}function la(a,b,c){ja(a,b,c,0);ha(a,b,c)}function ma(a,b,c){a.stopHandler&&a.stopHandler({eventSource:a,pointerType:c,position:j(b,a.element),buttons:a.getActivePointersListByType(c).buttons,isTouchEvent:"touch"===c,originalEvent:b,preventDefaultAction:!1,userData:a.userData})}function na(a){try{return a.addEventListener&&a.removeEventListener}catch(b){return!1}}var oa=[];var pa={};a.MouseTracker=function(b){oa.push(this);var c=arguments;a.isPlainObject(b)||(b={element:c[0],clickTimeThreshold:c[1],clickDistThreshold:c[2]});this.hash=Math.random();this.element=a.getElement(b.element);this.clickTimeThreshold=b.clickTimeThreshold||a.DEFAULT_SETTINGS.clickTimeThreshold;this.clickDistThreshold=b.clickDistThreshold||a.DEFAULT_SETTINGS.clickDistThreshold;this.dblClickTimeThreshold=b.dblClickTimeThreshold||a.DEFAULT_SETTINGS.dblClickTimeThreshold;this.dblClickDistThreshold=b.dblClickDistThreshold||a.DEFAULT_SETTINGS.dblClickDistThreshold;this.userData=b.userData||null;this.stopDelay=b.stopDelay||50;this.enterHandler=b.enterHandler||null;this.exitHandler=b.exitHandler||null;this.pressHandler=b.pressHandler||null;this.nonPrimaryPressHandler=b.nonPrimaryPressHandler||null;this.releaseHandler=b.releaseHandler||null;this.nonPrimaryReleaseHandler=b.nonPrimaryReleaseHandler||null;this.moveHandler=b.moveHandler||null;this.scrollHandler=b.scrollHandler||null;this.clickHandler=b.clickHandler||null;this.dblClickHandler=b.dblClickHandler||null;this.dragHandler=b.dragHandler||null;this.dragEndHandler=b.dragEndHandler||null;this.pinchHandler=b.pinchHandler||null;this.stopHandler=b.stopHandler||null;this.keyDownHandler=b.keyDownHandler||null;this.keyUpHandler=b.keyUpHandler||null;this.keyHandler=b.keyHandler||null;this.focusHandler=b.focusHandler||null;this.blurHandler=b.blurHandler||null;var d=this;pa[this.hash]={click:function(a){m(d,a)},dblclick:function(a){n(d,a)},keydown:function(a){o(d,a)},keyup:function(a){p(d,a)},keypress:function(a){q(d,a)},focus:function(a){r(d,a)},blur:function(a){s(d,a)},wheel:function(a){t(d,a)},mousewheel:function(a){u(d,a)},DOMMouseScroll:function(a){u(d,a)},MozMousePixelScroll:function(a){u(d,a)},mouseenter:function(a){x(d,a)},mouseleave:function(a){A(d,a)},mouseover:function(a){y(d,a)},mouseout:function(a){B(d,a)},mousedown:function(a){E(d,a)},mouseup:function(a){F(d,a)},mouseupcaptured:function(a){G(d,a)},mousemove:function(a){I(d,a)},mousemovecaptured:function(a){J(d,a)},touchstart:function(a){M(d,a)},touchend:function(a){N(d,a)},touchendcaptured:function(a){O(d,a)},touchmove:function(a){Q(d,a)},touchmovecaptured:function(a){R(d,a)},touchcancel:function(a){T(d,a)},gesturestart:function(a){U(d,a)},gesturechange:function(a){V(d,a)},pointerover:function(a){W(d,a)},MSPointerOver:function(a){W(d,a)},pointerout:function(a){X(d,a)},MSPointerOut:function(a){X(d,a)},pointerdown:function(a){Y(d,a)},MSPointerDown:function(a){Y(d,a)},pointerup:function(a){Z(d,a)},MSPointerUp:function(a){Z(d,a)},pointermove:function(a){aa(d,a)},MSPointerMove:function(a){aa(d,a)},pointercancel:function(a){da(d,a)},MSPointerCancel:function(a){da(d,a)},pointerupcaptured:function(a){$(d,a)},pointermovecaptured:function(a){ba(d,a)},tracking:!1,activePointersLists:[],lastClickPos:null,dblClickTimeOut:null,pinchGPoints:[],lastPinchDist:0,currentPinchDist:0,lastPinchCenter:null,currentPinchCenter:null};b.startDisabled||this.setTracking(!0)};a.MouseTracker.prototype={destroy:function(){var a;d(this);this.element=null;for(a=0;a<oa.length;a++)if(oa[a]===this){oa.splice(a,1);break}pa[this.hash]=null;delete pa[this.hash]},isTracking:function(){return pa[this.hash].tracking},setTracking:function(a){a?c(this):d(this);return this},getActivePointersListByType:function(b){var c,d,e=pa[this.hash],f=e.activePointersLists.length;for(c=0;f>c;c++)if(e.activePointersLists[c].type===b)return e.activePointersLists[c];d=new a.MouseTracker.GesturePointList(b);e.activePointersLists.push(d);return d},getActivePointerCount:function(){var a,b=pa[this.hash],c=b.activePointersLists.length,d=0;for(a=0;c>a;a++)d+=b.activePointersLists[a].getLength();return d},enterHandler:function(){},exitHandler:function(){},pressHandler:function(){},nonPrimaryPressHandler:function(){},releaseHandler:function(){},nonPrimaryReleaseHandler:function(){},moveHandler:function(){},scrollHandler:function(){},clickHandler:function(){},dblClickHandler:function(){},dragHandler:function(){},dragEndHandler:function(){},pinchHandler:function(){},stopHandler:function(){},keyDownHandler:function(){},keyUpHandler:function(){},keyHandler:function(){},focusHandler:function(){},blurHandler:function(){}};a.MouseTracker.gesturePointVelocityTracker=function(){var b=[],c=0,d=0;var e=function(a,b){return a.hash.toString()+b.type+b.id.toString()};var f=function(){var c,e,f,g,h,i,j=b.length,k=a.now();g=k-d;d=k;for(c=0;j>c;c++){e=b[c];f=e.gPoint;f.direction=Math.atan2(f.currentPos.y-e.lastPos.y,f.currentPos.x-e.lastPos.x);h=e.lastPos.distanceTo(f.currentPos);e.lastPos=f.currentPos;i=1e3*h/(g+1);f.speed=.75*i+.25*f.speed}};var g=function(g,h){var i=e(g,h);b.push({guid:i,gPoint:h,lastPos:h.currentPos});if(1===b.length){d=a.now();c=window.setInterval(f,50)}};var h=function(a,d){var f,g=e(a,d),h=b.length;for(f=0;h>f;f++)if(b[f].guid===g){b.splice(f,1);h--;0===h&&window.clearInterval(c);break}};return{addPoint:g,removePoint:h}}();a.MouseTracker.captureElement=document;a.MouseTracker.wheelEventName=a.Browser.vendor==a.BROWSERS.IE&&a.Browser.version>8||"onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";a.MouseTracker.supportsMouseCapture=function(){var b=document.createElement("div");return a.isFunction(b.setCapture)&&a.isFunction(b.releaseCapture)}();a.MouseTracker.subscribeEvents=["click","dblclick","keydown","keyup","keypress","focus","blur",a.MouseTracker.wheelEventName];"DOMMouseScroll"==a.MouseTracker.wheelEventName&&a.MouseTracker.subscribeEvents.push("MozMousePixelScroll");if(window.PointerEvent&&(window.navigator.pointerEnabled||a.Browser.vendor!==a.BROWSERS.IE)){a.MouseTracker.havePointerEvents=!0;a.MouseTracker.subscribeEvents.push("pointerover","pointerout","pointerdown","pointerup","pointermove","pointercancel");a.MouseTracker.unprefixedPointerEvents=!0;navigator.maxTouchPoints?a.MouseTracker.maxTouchPoints=navigator.maxTouchPoints:a.MouseTracker.maxTouchPoints=0;a.MouseTracker.haveMouseEnter=!1}else if(window.MSPointerEvent&&window.navigator.msPointerEnabled){a.MouseTracker.havePointerEvents=!0;a.MouseTracker.subscribeEvents.push("MSPointerOver","MSPointerOut","MSPointerDown","MSPointerUp","MSPointerMove","MSPointerCancel");a.MouseTracker.unprefixedPointerEvents=!1;navigator.msMaxTouchPoints?a.MouseTracker.maxTouchPoints=navigator.msMaxTouchPoints:a.MouseTracker.maxTouchPoints=0;a.MouseTracker.haveMouseEnter=!1}else{a.MouseTracker.havePointerEvents=!1;if(a.Browser.vendor===a.BROWSERS.IE&&a.Browser.version<9){a.MouseTracker.subscribeEvents.push("mouseenter","mouseleave");a.MouseTracker.haveMouseEnter=!0}else{a.MouseTracker.subscribeEvents.push("mouseover","mouseout");a.MouseTracker.haveMouseEnter=!1}a.MouseTracker.subscribeEvents.push("mousedown","mouseup","mousemove");"ontouchstart"in window&&a.MouseTracker.subscribeEvents.push("touchstart","touchend","touchmove","touchcancel");"ongesturestart"in window&&a.MouseTracker.subscribeEvents.push("gesturestart","gesturechange");a.MouseTracker.mousePointerId="legacy-mouse";a.MouseTracker.maxTouchPoints=10}a.MouseTracker.GesturePointList=function(a){this._gPoints=[];this.type=a;this.buttons=0;this.contacts=0;this.clicks=0;this.captureCount=0};a.MouseTracker.GesturePointList.prototype={getLength:function(){return this._gPoints.length},asArray:function(){return this._gPoints},add:function(a){return this._gPoints.push(a)},removeById:function(a){var b,c=this._gPoints.length;for(b=0;c>b;b++)if(this._gPoints[b].id===a){this._gPoints.splice(b,1);break}return this._gPoints.length},getByIndex:function(a){return a<this._gPoints.length?this._gPoints[a]:null},getById:function(a){var b,c=this._gPoints.length;for(b=0;c>b;b++)if(this._gPoints[b].id===a)return this._gPoints[b];return null},getPrimary:function(a){var b,c=this._gPoints.length;for(b=0;c>b;b++)if(this._gPoints[b].isPrimary)return this._gPoints[b];return null}};var qa=function(){try{return window.self!==window.top}catch(a){return!0}}()}(OpenSeadragon);!function(a){a.ControlAnchor={NONE:0,TOP_LEFT:1,TOP_RIGHT:2,BOTTOM_RIGHT:3,BOTTOM_LEFT:4,ABSOLUTE:5};a.Control=function(b,c,d){var e=b.parentNode;if("number"==typeof c){a.console.error("Passing an anchor directly into the OpenSeadragon.Control constructor is deprecated; please use an options object instead. Support for this deprecated variant is scheduled for removal in December 2013");c={anchor:c}}c.attachToViewer="undefined"==typeof c.attachToViewer?!0:c.attachToViewer;this.autoFade="undefined"==typeof c.autoFade?!0:c.autoFade;this.element=b;this.anchor=c.anchor;this.container=d;if(this.anchor==a.ControlAnchor.ABSOLUTE){this.wrapper=a.makeNeutralElement("div");this.wrapper.style.position="absolute";this.wrapper.style.top="number"==typeof c.top?c.top+"px":c.top;this.wrapper.style.left="number"==typeof c.left?c.left+"px":c.left;this.wrapper.style.height="number"==typeof c.height?c.height+"px":c.height;this.wrapper.style.width="number"==typeof c.width?c.width+"px":c.width;this.wrapper.style.margin="0px";this.wrapper.style.padding="0px";this.element.style.position="relative";this.element.style.top="0px";this.element.style.left="0px";this.element.style.height="100%";this.element.style.width="100%"}else{this.wrapper=a.makeNeutralElement("div");this.wrapper.style.display="inline-block";this.anchor==a.ControlAnchor.NONE&&(this.wrapper.style.width=this.wrapper.style.height="100%")}this.wrapper.appendChild(this.element);c.attachToViewer?this.anchor==a.ControlAnchor.TOP_RIGHT||this.anchor==a.ControlAnchor.BOTTOM_RIGHT?this.container.insertBefore(this.wrapper,this.container.firstChild):this.container.appendChild(this.wrapper):e.appendChild(this.wrapper)};a.Control.prototype={destroy:function(){this.wrapper.removeChild(this.element);this.container.removeChild(this.wrapper)},isVisible:function(){return"none"!=this.wrapper.style.display},setVisible:function(b){this.wrapper.style.display=b?this.anchor==a.ControlAnchor.ABSOLUTE?"block":"inline-block":"none"},setOpacity:function(b){this.element[a.SIGNAL]&&a.Browser.vendor==a.BROWSERS.IE?a.setElementOpacity(this.element,b,!0):a.setElementOpacity(this.wrapper,b,!0)}}}(OpenSeadragon);!function(a){function b(a,b){var c,d=a.controls;for(c=d.length-1;c>=0;c--)if(d[c].element==b)return c;return-1}a.ControlDock=function(b){var c,d,e=["topleft","topright","bottomright","bottomleft"];a.extend(!0,this,{id:"controldock-"+a.now()+"-"+Math.floor(1e6*Math.random()),container:a.makeNeutralElement("div"),controls:[]},b);this.container.onsubmit=function(){return!1};if(this.element){this.element=a.getElement(this.element);this.element.appendChild(this.container);this.element.style.position="relative";this.container.style.width="100%";this.container.style.height="100%"}for(d=0;d<e.length;d++){c=e[d];this.controls[c]=a.makeNeutralElement("div");this.controls[c].style.position="absolute";c.match("left")&&(this.controls[c].style.left="0px");c.match("right")&&(this.controls[c].style.right="0px");c.match("top")&&(this.controls[c].style.top="0px");c.match("bottom")&&(this.controls[c].style.bottom="0px")}this.container.appendChild(this.controls.topleft);this.container.appendChild(this.controls.topright);this.container.appendChild(this.controls.bottomright);this.container.appendChild(this.controls.bottomleft)};a.ControlDock.prototype={addControl:function(c,d){c=a.getElement(c);var e=null;if(!(b(this,c)>=0)){switch(d.anchor){case a.ControlAnchor.TOP_RIGHT:e=this.controls.topright;c.style.position="relative";c.style.paddingRight="0px";c.style.paddingTop="0px";break;case a.ControlAnchor.BOTTOM_RIGHT:e=this.controls.bottomright;c.style.position="relative";c.style.paddingRight="0px";c.style.paddingBottom="0px";break;case a.ControlAnchor.BOTTOM_LEFT:e=this.controls.bottomleft;c.style.position="relative";c.style.paddingLeft="0px";c.style.paddingBottom="0px";break;case a.ControlAnchor.TOP_LEFT:e=this.controls.topleft;c.style.position="relative";c.style.paddingLeft="0px";c.style.paddingTop="0px";break;case a.ControlAnchor.ABSOLUTE:e=this.container;c.style.margin="0px";c.style.padding="0px";break;default:case a.ControlAnchor.NONE:e=this.container;c.style.margin="0px";c.style.padding="0px"}this.controls.push(new a.Control(c,d,e));c.style.display="inline-block"}},removeControl:function(c){c=a.getElement(c);var d=b(this,c);if(d>=0){this.controls[d].destroy();this.controls.splice(d,1)}return this},clearControls:function(){for(;this.controls.length>0;)this.controls.pop().destroy();return this},areControlsEnabled:function(){var a;for(a=this.controls.length-1;a>=0;a--)if(this.controls[a].isVisible())return!0;return!1},setControlsEnabled:function(a){var b;for(b=this.controls.length-1;b>=0;b--)this.controls[b].setVisible(a);return this}}}(OpenSeadragon);!function(a){a.Placement=a.freezeObject({CENTER:0,TOP_LEFT:1,TOP:2,TOP_RIGHT:3,RIGHT:4,BOTTOM_RIGHT:5,BOTTOM:6,BOTTOM_LEFT:7,LEFT:8,properties:{0:{isLeft:!1,isHorizontallyCentered:!0,isRight:!1,isTop:!1,isVerticallyCentered:!0,isBottom:!1},1:{isLeft:!0,isHorizontallyCentered:!1,isRight:!1,isTop:!0,isVerticallyCentered:!1,isBottom:!1},2:{isLeft:!1,isHorizontallyCentered:!0,isRight:!1,isTop:!0,isVerticallyCentered:!1,isBottom:!1},3:{isLeft:!1,isHorizontallyCentered:!1,isRight:!0,isTop:!0,isVerticallyCentered:!1,isBottom:!1},4:{isLeft:!1,isHorizontallyCentered:!1,isRight:!0,isTop:!1,isVerticallyCentered:!0,isBottom:!1},5:{isLeft:!1,isHorizontallyCentered:!1,isRight:!0,isTop:!1,isVerticallyCentered:!1,isBottom:!0},6:{isLeft:!1,isHorizontallyCentered:!0,isRight:!1,isTop:!1,isVerticallyCentered:!1,isBottom:!0},7:{isLeft:!0,isHorizontallyCentered:!1,isRight:!1,isTop:!1,isVerticallyCentered:!1,isBottom:!0},8:{isLeft:!0,isHorizontallyCentered:!1,isRight:!1,isTop:!1,isVerticallyCentered:!0,isBottom:!1}}})}(OpenSeadragon);!function(a){function b(b){b=a.getElement(b);return new a.Point(0===b.clientWidth?1:b.clientWidth,0===b.clientHeight?1:b.clientHeight)}function c(b,c,d,e){function f(a,b){if(a.ready)d(a);else{a.addHandler("ready",function(){d(a)});a.addHandler("open-failed",function(a){e({message:a.message,source:b})})}}var g=b;"string"==a.type(c)&&(c.match(/\s*<.*/)?c=a.parseXml(c):c.match(/\s*[\{\[].*/)&&(c=a.parseJSON(c)));setTimeout(function(){if("string"==a.type(c)){c=new a.TileSource({url:c,crossOriginPolicy:b.crossOriginPolicy,ajaxWithCredentials:b.ajaxWithCredentials,useCanvas:b.useCanvas,success:function(a){d(a.tileSource)}});c.addHandler("open-failed",function(a){e(a)})}else if(a.isPlainObject(c)||c.nodeType){!c.crossOriginPolicy&&b.crossOriginPolicy&&(c.crossOriginPolicy=b.crossOriginPolicy);void 0===c.ajaxWithCredentials&&(c.ajaxWithCredentials=b.ajaxWithCredentials);void 0===c.useCanvas&&(c.useCanvas=b.useCanvas);if(a.isFunction(c.getTileUrl)){var h=new a.TileSource(c);h.getTileUrl=c.getTileUrl;d(h)}else{var i=a.TileSource.determineType(g,c);if(!i){e({message:"Unable to load TileSource",source:c});return}var j=i.prototype.configure.apply(g,[c]);f(new i(j),c)}}else f(c,c)})}function d(b,c){if(c instanceof a.Overlay)return c;var d=null;if(c.element)d=a.getElement(c.element);else{var e=c.id?c.id:"openseadragon-overlay-"+Math.floor(1e7*Math.random());d=a.getElement(c.id);if(!d){d=document.createElement("a");d.href="#/overlay/"+e}d.id=e;a.addClass(d,c.className?c.className:"openseadragon-overlay")}var f=c.location;var g=c.width;var h=c.height;if(!f){var i=c.x;var j=c.y;if(void 0!==c.px){var k=b.viewport.imageToViewportRectangle(new a.Rect(c.px,c.py,g||0,h||0));i=k.x;j=k.y;g=void 0!==g?k.width:void 0;h=void 0!==h?k.height:void 0}f=new a.Point(i,j)}var l=c.placement;l&&"string"===a.type(l)&&(l=a.Placement[c.placement.toUpperCase()]);return new a.Overlay({element:d,location:f,placement:l,onDraw:c.onDraw,checkResize:c.checkResize,width:g,height:h,rotationMode:c.rotationMode})}function e(a,b){var c;for(c=a.length-1;c>=0;c--)if(a[c].element===b)return c;return-1}function f(b,c){return a.requestAnimationFrame(function(){c(b)})}function g(b){a.requestAnimationFrame(function(){i(b)})}function h(b){if(b.autoHideControls){b.controlsShouldFade=!0;b.controlsFadeBeginTime=a.now()+b.controlsFadeDelay;window.setTimeout(function(){g(b)},b.controlsFadeDelay)}}function i(b){var c,d,e,f;if(b.controlsShouldFade){c=a.now();d=c-b.controlsFadeBeginTime;e=1-d/b.controlsFadeLength;e=Math.min(1,e);e=Math.max(0,e);for(f=b.controls.length-1;f>=0;f--)b.controls[f].autoFade&&b.controls[f].setOpacity(e);e>0&&g(b)}}function j(a){var b;a.controlsShouldFade=!1;for(b=a.controls.length-1;b>=0;b--)a.controls[b].setOpacity(1)}function k(){j(this)}function l(){h(this)}function m(b){if(b.preventDefaultAction||b.ctrl||b.alt||b.meta)return!0;switch(b.keyCode){case 38:b.shift?this.viewport.zoomBy(1.1):this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(0,-40)));this.viewport.applyConstraints();return!1;case 40:b.shift?this.viewport.zoomBy(.9):this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(0,40)));this.viewport.applyConstraints();return!1;case 37:this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(-40,0)));this.viewport.applyConstraints();return!1;case 39:this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(40,0)));this.viewport.applyConstraints();return!1;default:return!0}}function n(b){if(b.preventDefaultAction||b.ctrl||b.alt||b.meta)return!0;switch(b.keyCode){case 43:case 61:this.viewport.zoomBy(1.1);this.viewport.applyConstraints();return!1;case 45:this.viewport.zoomBy(.9);this.viewport.applyConstraints();return!1;case 48:this.viewport.goHome();this.viewport.applyConstraints();return!1;case 119:case 87:b.shift?this.viewport.zoomBy(1.1):this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(0,-40)));this.viewport.applyConstraints();return!1;case 115:case 83:b.shift?this.viewport.zoomBy(.9):this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(0,40)));this.viewport.applyConstraints();return!1;case 97:this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(-40,0)));this.viewport.applyConstraints();return!1;case 100:this.viewport.panBy(this.viewport.deltaPointsFromPixels(new a.Point(40,0)));this.viewport.applyConstraints();return!1;default:return!0}}function o(a){var b;var c=document.activeElement==this.canvas;c||this.canvas.focus();if(!a.preventDefaultAction&&this.viewport&&a.quick){b=this.gestureSettingsByDeviceType(a.pointerType);if(b.clickToZoom){this.viewport.zoomBy(a.shift?1/this.zoomPerClick:this.zoomPerClick,this.viewport.pointFromPixel(a.position,!0));this.viewport.applyConstraints()}}this.raiseEvent("canvas-click",{tracker:a.eventSource,position:a.position,quick:a.quick,shift:a.shift,originalEvent:a.originalEvent})}function p(a){var b;if(!a.preventDefaultAction&&this.viewport){b=this.gestureSettingsByDeviceType(a.pointerType);if(b.dblClickToZoom){this.viewport.zoomBy(a.shift?1/this.zoomPerClick:this.zoomPerClick,this.viewport.pointFromPixel(a.position,!0));this.viewport.applyConstraints()}}this.raiseEvent("canvas-double-click",{tracker:a.eventSource,position:a.position,shift:a.shift,originalEvent:a.originalEvent})}function q(a){var b;if(!a.preventDefaultAction&&this.viewport){b=this.gestureSettingsByDeviceType(a.pointerType);this.panHorizontal||(a.delta.x=0);this.panVertical||(a.delta.y=0);this.viewport.panBy(this.viewport.deltaPointsFromPixels(a.delta.negate()),b.flickEnabled);this.constrainDuringPan&&this.viewport.applyConstraints()}this.raiseEvent("canvas-drag",{tracker:a.eventSource,position:a.position,delta:a.delta,speed:a.speed,direction:a.direction,shift:a.shift,originalEvent:a.originalEvent})}function r(b){if(!b.preventDefaultAction&&this.viewport){var c=this.gestureSettingsByDeviceType(b.pointerType);if(c.flickEnabled&&b.speed>=c.flickMinSpeed){var d=0;this.panHorizontal&&(d=c.flickMomentum*b.speed*Math.cos(b.direction));var e=0;this.panVertical&&(e=c.flickMomentum*b.speed*Math.sin(b.direction));var f=this.viewport.pixelFromPoint(this.viewport.getCenter(!0));var g=this.viewport.pointFromPixel(new a.Point(f.x-d,f.y-e));this.viewport.panTo(g,!1)}this.viewport.applyConstraints()}this.raiseEvent("canvas-drag-end",{tracker:b.eventSource,position:b.position,speed:b.speed,direction:b.direction,shift:b.shift,originalEvent:b.originalEvent})}function s(a){this.raiseEvent("canvas-enter",{tracker:a.eventSource,pointerType:a.pointerType,position:a.position,buttons:a.buttons,pointers:a.pointers,insideElementPressed:a.insideElementPressed,buttonDownAny:a.buttonDownAny,originalEvent:a.originalEvent})}function t(a){this.raiseEvent("canvas-exit",{tracker:a.eventSource,pointerType:a.pointerType,position:a.position,buttons:a.buttons,pointers:a.pointers,insideElementPressed:a.insideElementPressed,buttonDownAny:a.buttonDownAny,originalEvent:a.originalEvent})}function u(a){this.raiseEvent("canvas-press",{tracker:a.eventSource,pointerType:a.pointerType,position:a.position,insideElementPressed:a.insideElementPressed,insideElementReleased:a.insideElementReleased,originalEvent:a.originalEvent})}function v(a){this.raiseEvent("canvas-release",{tracker:a.eventSource,pointerType:a.pointerType,position:a.position,insideElementPressed:a.insideElementPressed,insideElementReleased:a.insideElementReleased,originalEvent:a.originalEvent})}function w(a){this.raiseEvent("canvas-nonprimary-press",{tracker:a.eventSource,position:a.position,pointerType:a.pointerType,button:a.button,buttons:a.buttons,originalEvent:a.originalEvent})}function x(a){this.raiseEvent("canvas-nonprimary-release",{tracker:a.eventSource,position:a.position,pointerType:a.pointerType,button:a.button,buttons:a.buttons,originalEvent:a.originalEvent})}function y(a){var b,c,d,e;if(!a.preventDefaultAction&&this.viewport){b=this.gestureSettingsByDeviceType(a.pointerType);if(b.pinchToZoom){c=this.viewport.pointFromPixel(a.center,!0);d=this.viewport.pointFromPixel(a.lastCenter,!0);e=d.minus(c);this.panHorizontal||(e.x=0);this.panVertical||(e.y=0);this.viewport.zoomBy(a.distance/a.lastDistance,c,!0); 10 this.viewport.panBy(e,!0);this.viewport.applyConstraints()}if(b.pinchRotate){var f=Math.atan2(a.gesturePoints[0].currentPos.y-a.gesturePoints[1].currentPos.y,a.gesturePoints[0].currentPos.x-a.gesturePoints[1].currentPos.x);var g=Math.atan2(a.gesturePoints[0].lastPos.y-a.gesturePoints[1].lastPos.y,a.gesturePoints[0].lastPos.x-a.gesturePoints[1].lastPos.x);this.viewport.setRotation(this.viewport.getRotation()+(f-g)*(180/Math.PI))}}this.raiseEvent("canvas-pinch",{tracker:a.eventSource,gesturePoints:a.gesturePoints,lastCenter:a.lastCenter,center:a.center,lastDistance:a.lastDistance,distance:a.distance,shift:a.shift,originalEvent:a.originalEvent});return!1}function z(b){var c,d,e,f;e=a.now();f=e-this._lastScrollTime;if(f>this.minScrollDeltaTime){this._lastScrollTime=e;if(!b.preventDefaultAction&&this.viewport){c=this.gestureSettingsByDeviceType(b.pointerType);if(c.scrollToZoom){d=Math.pow(this.zoomPerScroll,b.scroll);this.viewport.zoomBy(d,this.viewport.pointFromPixel(b.position,!0));this.viewport.applyConstraints()}}this.raiseEvent("canvas-scroll",{tracker:b.eventSource,position:b.position,scroll:b.scroll,shift:b.shift,originalEvent:b.originalEvent});if(c&&c.scrollToZoom)return!1}else{c=this.gestureSettingsByDeviceType(b.pointerType);if(c&&c.scrollToZoom)return!1}}function A(a){U[this.hash].mouseInside=!0;j(this);this.raiseEvent("container-enter",{tracker:a.eventSource,position:a.position,buttons:a.buttons,pointers:a.pointers,insideElementPressed:a.insideElementPressed,buttonDownAny:a.buttonDownAny,originalEvent:a.originalEvent})}function B(a){if(a.pointers<1){U[this.hash].mouseInside=!1;U[this.hash].animating||h(this)}this.raiseEvent("container-exit",{tracker:a.eventSource,position:a.position,buttons:a.buttons,pointers:a.pointers,insideElementPressed:a.insideElementPressed,buttonDownAny:a.buttonDownAny,originalEvent:a.originalEvent})}function C(a){D(a);a.isOpen()?a._updateRequestId=f(a,C):a._updateRequestId=!1}function D(a){if(!a._opening){if(a.autoResize){var c=b(a.container);var d=U[a.hash].prevContainerSize;if(!c.equals(d)){var e=a.viewport;if(a.preserveImageSizeOnResize){var f=d.x/c.x;var g=e.getZoom()*f;var i=e.getCenter();e.resize(c,!1);e.zoomTo(g,null,!0);e.panTo(i,!0)}else{var k=e.getBounds();e.resize(c,!0);e.fitBoundsWithConstraints(k,!0)}U[a.hash].prevContainerSize=c;U[a.hash].forceRedraw=!0}}var l=a.viewport.update();var m=a.world.update()||l;l&&a.raiseEvent("viewport-change");a.referenceStrip&&(m=a.referenceStrip.update(a.viewport)||m);if(!U[a.hash].animating&&m){a.raiseEvent("animation-start");j(a)}if(m||U[a.hash].forceRedraw||a.world.needsDraw()){E(a);a._drawOverlays();a.navigator&&a.navigator.update(a.viewport);U[a.hash].forceRedraw=!1;m&&a.raiseEvent("animation")}if(U[a.hash].animating&&!m){a.raiseEvent("animation-finish");U[a.hash].mouseInside||h(a)}U[a.hash].animating=m}}function E(a){a.imageLoader.clear();a.drawer.clear();a.world.draw();a.raiseEvent("update-viewport",{})}function F(a,b){return a?a+b:b}function G(){U[this.hash].lastZoomTime=a.now();U[this.hash].zoomFactor=this.zoomPerSecond;U[this.hash].zooming=!0;J(this)}function H(){U[this.hash].lastZoomTime=a.now();U[this.hash].zoomFactor=1/this.zoomPerSecond;U[this.hash].zooming=!0;J(this)}function I(){U[this.hash].zooming=!1}function J(b){a.requestAnimationFrame(a.delegate(b,K))}function K(){var b,c,d;if(U[this.hash].zooming&&this.viewport){b=a.now();c=b-U[this.hash].lastZoomTime;d=Math.pow(U[this.hash].zoomFactor,c/1e3);this.viewport.zoomBy(d);this.viewport.applyConstraints();U[this.hash].lastZoomTime=b;J(this)}}function L(){if(this.viewport){U[this.hash].zooming=!1;this.viewport.zoomBy(this.zoomPerClick/1);this.viewport.applyConstraints()}}function M(){if(this.viewport){U[this.hash].zooming=!1;this.viewport.zoomBy(1/this.zoomPerClick);this.viewport.applyConstraints()}}function N(){this.buttons.emulateEnter();this.buttons.emulateExit()}function O(){this.viewport&&this.viewport.goHome()}function P(){this.isFullPage()&&!a.isFullScreen()?this.setFullPage(!1):this.setFullScreen(!this.isFullPage());this.buttons&&this.buttons.emulateExit();this.fullPageButton.element.focus();this.viewport&&this.viewport.applyConstraints()}function Q(){if(this.viewport){var a=this.viewport.getRotation();0===a?a=270:a-=90;this.viewport.setRotation(a)}}function R(){if(this.viewport){var a=this.viewport.getRotation();270===a?a=0:a+=90;this.viewport.setRotation(a)}}function S(){var a=this._sequenceIndex-1;this.navPrevNextWrap&&0>a&&(a+=this.tileSources.length);this.goToPage(a)}function T(){var a=this._sequenceIndex+1;this.navPrevNextWrap&&a>=this.tileSources.length&&(a=0);this.goToPage(a)}var U={};var V=1;a.Viewer=function(c){var d,e=arguments,g=this;a.isPlainObject(c)||(c={id:e[0],xmlPath:e.length>1?e[1]:void 0,prefixUrl:e.length>2?e[2]:void 0,controls:e.length>3?e[3]:void 0,overlays:e.length>4?e[4]:void 0});if(c.config){a.extend(!0,c,c.config);delete c.config}a.extend(!0,this,{id:c.id,hash:c.hash||V++,element:null,container:null,canvas:null,overlays:[],overlaysContainer:null,previousBody:[],customControls:[],source:null,drawer:null,world:null,viewport:null,navigator:null,collectionViewport:null,collectionDrawer:null,navImages:null,buttons:null,profiler:null},a.DEFAULT_SETTINGS,c);if("undefined"==typeof this.hash)throw new Error("A hash must be defined, either by specifying options.id or options.hash.");"undefined"!=typeof U[this.hash]&&a.console.warn("Hash "+this.hash+" has already been used.");U[this.hash]={fsBoundsDelta:new a.Point(1,1),prevContainerSize:null,animating:!1,forceRedraw:!1,mouseInside:!1,group:null,zooming:!1,zoomFactor:null,lastZoomTime:null,fullPage:!1,onfullscreenchange:null};this._sequenceIndex=0;this._firstOpen=!0;this._updateRequestId=null;this._loadQueue=[];this.currentOverlays=[];this._lastScrollTime=a.now();a.EventSource.call(this);this.addHandler("open-failed",function(b){var c=a.getString("Errors.OpenFailed",b.eventSource,b.message);g._showMessage(c)});a.ControlDock.call(this,c);this.xmlPath&&(this.tileSources=[this.xmlPath]);this.element=this.element||document.getElementById(this.id);this.canvas=a.makeNeutralElement("div");this.canvas.className="openseadragon-canvas";!function(a){a.width="100%";a.height="100%";a.overflow="hidden";a.position="absolute";a.top="0px";a.left="0px"}(this.canvas.style);a.setElementTouchActionNone(this.canvas);""!==c.tabIndex&&(this.canvas.tabIndex=void 0===c.tabIndex?0:c.tabIndex);this.container.className="openseadragon-container";!function(a){a.width="100%";a.height="100%";a.position="relative";a.overflow="hidden";a.left="0px";a.top="0px";a.textAlign="left"}(this.container.style);this.container.insertBefore(this.canvas,this.container.firstChild);this.element.appendChild(this.container);this.bodyWidth=document.body.style.width;this.bodyHeight=document.body.style.height;this.bodyOverflow=document.body.style.overflow;this.docOverflow=document.documentElement.style.overflow;this.innerTracker=new a.MouseTracker({element:this.canvas,startDisabled:this.mouseNavEnabled?!1:!0,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,dblClickTimeThreshold:this.dblClickTimeThreshold,dblClickDistThreshold:this.dblClickDistThreshold,keyDownHandler:a.delegate(this,m),keyHandler:a.delegate(this,n),clickHandler:a.delegate(this,o),dblClickHandler:a.delegate(this,p),dragHandler:a.delegate(this,q),dragEndHandler:a.delegate(this,r),enterHandler:a.delegate(this,s),exitHandler:a.delegate(this,t),pressHandler:a.delegate(this,u),releaseHandler:a.delegate(this,v),nonPrimaryPressHandler:a.delegate(this,w),nonPrimaryReleaseHandler:a.delegate(this,x),scrollHandler:a.delegate(this,z),pinchHandler:a.delegate(this,y)});this.outerTracker=new a.MouseTracker({element:this.container,startDisabled:this.mouseNavEnabled?!1:!0,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,dblClickTimeThreshold:this.dblClickTimeThreshold,dblClickDistThreshold:this.dblClickDistThreshold,enterHandler:a.delegate(this,A),exitHandler:a.delegate(this,B)});this.toolbar&&(this.toolbar=new a.ControlDock({element:this.toolbar}));this.bindStandardControls();U[this.hash].prevContainerSize=b(this.container);this.world=new a.World({viewer:this});this.world.addHandler("add-item",function(a){g.source=g.world.getItemAt(0).source;U[g.hash].forceRedraw=!0;g._updateRequestId||(g._updateRequestId=f(g,C))});this.world.addHandler("remove-item",function(a){g.world.getItemCount()?g.source=g.world.getItemAt(0).source:g.source=null;U[g.hash].forceRedraw=!0});this.world.addHandler("metrics-change",function(a){g.viewport&&g.viewport._setContentBounds(g.world.getHomeBounds(),g.world.getContentFactor())});this.world.addHandler("item-index-change",function(a){g.source=g.world.getItemAt(0).source});this.viewport=new a.Viewport({containerSize:U[this.hash].prevContainerSize,springStiffness:this.springStiffness,animationTime:this.animationTime,minZoomImageRatio:this.minZoomImageRatio,maxZoomPixelRatio:this.maxZoomPixelRatio,visibilityRatio:this.visibilityRatio,wrapHorizontal:this.wrapHorizontal,wrapVertical:this.wrapVertical,defaultZoomLevel:this.defaultZoomLevel,minZoomLevel:this.minZoomLevel,maxZoomLevel:this.maxZoomLevel,viewer:this,degrees:this.degrees,navigatorRotate:this.navigatorRotate,homeFillsViewer:this.homeFillsViewer,margins:this.viewportMargins});this.viewport._setContentBounds(this.world.getHomeBounds(),this.world.getContentFactor());this.imageLoader=new a.ImageLoader({jobLimit:this.imageLoaderLimit});this.tileCache=new a.TileCache({maxImageCacheCount:this.maxImageCacheCount});this.drawer=new a.Drawer({viewer:this,viewport:this.viewport,element:this.canvas,debugGridColor:this.debugGridColor});this.overlaysContainer=a.makeNeutralElement("div");this.canvas.appendChild(this.overlaysContainer);if(!this.drawer.canRotate()){if(this.rotateLeft){d=this.buttons.buttons.indexOf(this.rotateLeft);this.buttons.buttons.splice(d,1);this.buttons.element.removeChild(this.rotateLeft.element)}if(this.rotateRight){d=this.buttons.buttons.indexOf(this.rotateRight);this.buttons.buttons.splice(d,1);this.buttons.element.removeChild(this.rotateRight.element)}}this.showNavigator&&(this.navigator=new a.Navigator({id:this.navigatorId,position:this.navigatorPosition,sizeRatio:this.navigatorSizeRatio,maintainSizeRatio:this.navigatorMaintainSizeRatio,top:this.navigatorTop,left:this.navigatorLeft,width:this.navigatorWidth,height:this.navigatorHeight,autoResize:this.navigatorAutoResize,autoFade:this.navigatorAutoFade,prefixUrl:this.prefixUrl,viewer:this,navigatorRotate:this.navigatorRotate,crossOriginPolicy:this.crossOriginPolicy}));this.sequenceMode&&this.bindSequenceControls();this.tileSources&&this.open(this.tileSources);for(d=0;d<this.customControls.length;d++)this.addControl(this.customControls[d].id,{anchor:this.customControls[d].anchor});a.requestAnimationFrame(function(){h(g)})};a.extend(a.Viewer.prototype,a.EventSource.prototype,a.ControlDock.prototype,{isOpen:function(){return!!this.world.getItemCount()},openDzi:function(b){a.console.error("[Viewer.openDzi] this function is deprecated; use Viewer.open() instead.");return this.open(b)},openTileSource:function(b){a.console.error("[Viewer.openTileSource] this function is deprecated; use Viewer.open() instead.");return this.open(b)},open:function(b){var c=this;this.close();if(b)if(this.sequenceMode&&a.isArray(b)){if(this.referenceStrip){this.referenceStrip.destroy();this.referenceStrip=null}this.tileSources=b;this._sequenceIndex=Math.max(0,Math.min(this.tileSources.length-1,this.initialPage));if(this.tileSources.length){this.open(this.tileSources[this._sequenceIndex]);this.showReferenceStrip&&(this.referenceStrip=new a.ReferenceStrip({id:this.referenceStripElement,position:this.referenceStripPosition,sizeRatio:this.referenceStripSizeRatio,scroll:this.referenceStripScroll,height:this.referenceStripHeight,width:this.referenceStripWidth,tileSources:this.tileSources,prefixUrl:this.prefixUrl,viewer:this}))}this._updateSequenceButtons(this._sequenceIndex)}else{a.isArray(b)||(b=[b]);if(b.length){this._opening=!0;var e=b.length;var f=0;var g=0;var h;var i=function(){if(f+g===e)if(f){if(c._firstOpen||!c.preserveViewport){c.viewport.goHome(!0);c.viewport.update()}c._firstOpen=!1;var a=b[0];a.tileSource&&(a=a.tileSource);if(c.overlays&&!c.preserveOverlays)for(var i=0;i<c.overlays.length;i++)c.currentOverlays[i]=d(c,c.overlays[i]);c._drawOverlays();c._opening=!1;c.raiseEvent("open",{source:a})}else{c._opening=!1;c.raiseEvent("open-failed",h)}};var j=function(b){a.isPlainObject(b)&&b.tileSource||(b={tileSource:b});if(void 0!==b.index){a.console.error("[Viewer.open] setting indexes here is not supported; use addTiledImage instead");delete b.index}void 0===b.collectionImmediately&&(b.collectionImmediately=!0);var d=b.success;b.success=function(a){f++;if(b.tileSource.overlays)for(var e=0;e<b.tileSource.overlays.length;e++)c.addOverlay(b.tileSource.overlays[e]);d&&d(a);i()};var e=b.error;b.error=function(a){g++;h||(h=a);e&&e(a);i()};c.addTiledImage(b)};for(var k=0;k<b.length;k++)j(b[k]);return this}}},close:function(){if(!U[this.hash])return this;this._opening=!1;this.navigator&&this.navigator.close();if(!this.preserveOverlays){this.clearOverlays();this.overlaysContainer.innerHTML=""}U[this.hash].animating=!1;this.world.removeAll();this.imageLoader.clear();this.raiseEvent("close");return this},destroy:function(){if(U[this.hash]){this.close();this.clearOverlays();this.overlaysContainer.innerHTML="";if(this.referenceStrip){this.referenceStrip.destroy();this.referenceStrip=null}if(null!==this._updateRequestId){a.cancelAnimationFrame(this._updateRequestId);this._updateRequestId=null}this.drawer&&this.drawer.destroy();this.removeAllHandlers();if(this.element)for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.innerTracker&&this.innerTracker.destroy();this.outerTracker&&this.outerTracker.destroy();U[this.hash]=null;delete U[this.hash];this.canvas=null;this.container=null;this.element=null}},isMouseNavEnabled:function(){return this.innerTracker.isTracking()},setMouseNavEnabled:function(a){this.innerTracker.setTracking(a);this.outerTracker.setTracking(a);this.raiseEvent("mouse-enabled",{enabled:a});return this},areControlsEnabled:function(){var a,b=this.controls.length;for(a=0;a<this.controls.length;a++)b=b&&this.controls[a].isVisibile();return b},setControlsEnabled:function(a){a?j(this):h(this);this.raiseEvent("controls-enabled",{enabled:a});return this},isFullPage:function(){return U[this.hash].fullPage},setFullPage:function(b){var c,d,e=document.body,f=e.style,g=document.documentElement.style,h=this;if(b==this.isFullPage())return this;var i={fullPage:b,preventDefaultAction:!1};this.raiseEvent("pre-full-page",i);if(i.preventDefaultAction)return this;if(b){this.elementSize=a.getElementSize(this.element);this.pageScroll=a.getPageScroll();this.elementMargin=this.element.style.margin;this.element.style.margin="0";this.elementPadding=this.element.style.padding;this.element.style.padding="0";this.bodyMargin=f.margin;this.docMargin=g.margin;f.margin="0";g.margin="0";this.bodyPadding=f.padding;this.docPadding=g.padding;f.padding="0";g.padding="0";this.bodyWidth=f.width;this.docWidth=g.width;f.width="100%";g.width="100%";this.bodyHeight=f.height;this.docHeight=g.height;f.height="100%";g.height="100%";this.previousBody=[];U[this.hash].prevElementParent=this.element.parentNode;U[this.hash].prevNextSibling=this.element.nextSibling;U[this.hash].prevElementWidth=this.element.style.width;U[this.hash].prevElementHeight=this.element.style.height;c=e.childNodes.length;for(d=0;c>d;d++){this.previousBody.push(e.childNodes[0]);e.removeChild(e.childNodes[0])}if(this.toolbar&&this.toolbar.element){this.toolbar.parentNode=this.toolbar.element.parentNode;this.toolbar.nextSibling=this.toolbar.element.nextSibling;e.appendChild(this.toolbar.element);a.addClass(this.toolbar.element,"fullpage")}a.addClass(this.element,"fullpage");e.appendChild(this.element);this.element.style.height=a.getWindowSize().y+"px";this.element.style.width=a.getWindowSize().x+"px";this.toolbar&&this.toolbar.element&&(this.element.style.height=a.getElementSize(this.element).y-a.getElementSize(this.toolbar.element).y+"px");U[this.hash].fullPage=!0;a.delegate(this,A)({})}else{this.element.style.margin=this.elementMargin;this.element.style.padding=this.elementPadding;f.margin=this.bodyMargin;g.margin=this.docMargin;f.padding=this.bodyPadding;g.padding=this.docPadding;f.width=this.bodyWidth;g.width=this.docWidth;f.height=this.bodyHeight;g.height=this.docHeight;e.removeChild(this.element);c=this.previousBody.length;for(d=0;c>d;d++)e.appendChild(this.previousBody.shift());a.removeClass(this.element,"fullpage");U[this.hash].prevElementParent.insertBefore(this.element,U[this.hash].prevNextSibling);if(this.toolbar&&this.toolbar.element){e.removeChild(this.toolbar.element);a.removeClass(this.toolbar.element,"fullpage");this.toolbar.parentNode.insertBefore(this.toolbar.element,this.toolbar.nextSibling);delete this.toolbar.parentNode;delete this.toolbar.nextSibling}this.element.style.width=U[this.hash].prevElementWidth;this.element.style.height=U[this.hash].prevElementHeight;var j=0;var k=function(){a.setPageScroll(h.pageScroll);var b=a.getPageScroll();j++;(10>j&&b.x!==h.pageScroll.x||b.y!==h.pageScroll.y)&&a.requestAnimationFrame(k)};a.requestAnimationFrame(k);U[this.hash].fullPage=!1;a.delegate(this,B)({})}this.navigator&&this.viewport&&this.navigator.update(this.viewport);this.raiseEvent("full-page",{fullPage:b});return this},setFullScreen:function(b){var c=this;if(!a.supportsFullScreen)return this.setFullPage(b);if(a.isFullScreen()===b)return this;var d={fullScreen:b,preventDefaultAction:!1};this.raiseEvent("pre-full-screen",d);if(d.preventDefaultAction)return this;if(b){this.setFullPage(!0);if(!this.isFullPage())return this;this.fullPageStyleWidth=this.element.style.width;this.fullPageStyleHeight=this.element.style.height;this.element.style.width="100%";this.element.style.height="100%";var e=function(){var b=a.isFullScreen();if(!b){a.removeEvent(document,a.fullScreenEventName,e);a.removeEvent(document,a.fullScreenErrorEventName,e);c.setFullPage(!1);if(c.isFullPage()){c.element.style.width=c.fullPageStyleWidth;c.element.style.height=c.fullPageStyleHeight}}c.navigator&&c.viewport&&c.navigator.update(c.viewport);c.raiseEvent("full-screen",{fullScreen:b})};a.addEvent(document,a.fullScreenEventName,e);a.addEvent(document,a.fullScreenErrorEventName,e);a.requestFullScreen(document.body)}else a.exitFullScreen();return this},isVisible:function(){return"hidden"!=this.container.style.visibility},setVisible:function(a){this.container.style.visibility=a?"":"hidden";this.raiseEvent("visible",{visible:a});return this},addTiledImage:function(b){function d(a){for(var c=0;c<f._loadQueue.length;c++)if(f._loadQueue[c]===g){f._loadQueue.splice(c,1);break}0===f._loadQueue.length&&e(g);f.raiseEvent("add-item-failed",a);b.error&&b.error(a)}function e(a){if(f.collectionMode){f.world.arrange({immediately:a.options.collectionImmediately,rows:f.collectionRows,columns:f.collectionColumns,layout:f.collectionLayout,tileSize:f.collectionTileSize,tileMargin:f.collectionTileMargin});f.world.setAutoRefigureSizes(!0)}}a.console.assert(b,"[Viewer.addTiledImage] options is required");a.console.assert(b.tileSource,"[Viewer.addTiledImage] options.tileSource is required");a.console.assert(!b.replace||b.index>-1&&b.index<this.world.getItemCount(),"[Viewer.addTiledImage] if options.replace is used, options.index must be a valid index in Viewer.world");var f=this;b.replace&&(b.replaceItem=f.world.getItemAt(b.index));this._hideMessage();void 0===b.placeholderFillStyle&&(b.placeholderFillStyle=this.placeholderFillStyle);void 0===b.opacity&&(b.opacity=this.opacity);void 0===b.compositeOperation&&(b.compositeOperation=this.compositeOperation);var g={options:b};if(a.isArray(b.tileSource))setTimeout(function(){d({message:"[Viewer.addTiledImage] Sequences can not be added; add them one at a time instead.",source:b.tileSource,options:b})});else{this._loadQueue.push(g);c(this,b.tileSource,function(b){g.tileSource=b;var c,d,h;for(;f._loadQueue.length;){c=f._loadQueue[0];if(!c.tileSource)break;f._loadQueue.splice(0,1);if(c.options.replace){var i=f.world.getIndexOfItem(c.options.replaceItem);-1!=i&&(c.options.index=i);f.world.removeItem(c.options.replaceItem)}d=new a.TiledImage({viewer:f,source:c.tileSource,viewport:f.viewport,drawer:f.drawer,tileCache:f.tileCache,imageLoader:f.imageLoader,x:c.options.x,y:c.options.y,width:c.options.width,height:c.options.height,fitBounds:c.options.fitBounds,fitBoundsPlacement:c.options.fitBoundsPlacement,clip:c.options.clip,placeholderFillStyle:c.options.placeholderFillStyle,opacity:c.options.opacity,compositeOperation:c.options.compositeOperation,springStiffness:f.springStiffness,animationTime:f.animationTime,minZoomImageRatio:f.minZoomImageRatio,wrapHorizontal:f.wrapHorizontal,wrapVertical:f.wrapVertical,immediateRender:f.immediateRender,blendTime:f.blendTime,alwaysBlend:f.alwaysBlend,minPixelRatio:f.minPixelRatio,smoothTileEdgesMinZoom:f.smoothTileEdgesMinZoom,crossOriginPolicy:f.crossOriginPolicy,debugMode:f.debugMode});f.collectionMode&&f.world.setAutoRefigureSizes(!1);f.world.addItem(d,{index:c.options.index});0===f._loadQueue.length&&e(c);1!==f.world.getItemCount()||f.preserveViewport||f.viewport.goHome(!0);if(f.navigator){h=a.extend({},c.options,{replace:!1,originalTiledImage:d,tileSource:c.tileSource});f.navigator.addTiledImage(h)}c.options.success&&c.options.success({item:d})}},function(a){a.options=b;d(a)})}},addSimpleImage:function(b){a.console.assert(b,"[Viewer.addSimpleImage] options is required");a.console.assert(b.url,"[Viewer.addSimpleImage] options.url is required");var c=a.extend({},b,{tileSource:{type:"image",url:b.url}});delete c.url;this.addTiledImage(c)},addLayer:function(b){var c=this;a.console.error("[Viewer.addLayer] this function is deprecated; use Viewer.addTiledImage() instead.");var d=a.extend({},b,{success:function(a){c.raiseEvent("add-layer",{options:b,drawer:a.item})},error:function(a){c.raiseEvent("add-layer-failed",a)}});this.addTiledImage(d);return this},getLayerAtLevel:function(b){a.console.error("[Viewer.getLayerAtLevel] this function is deprecated; use World.getItemAt() instead.");return this.world.getItemAt(b)},getLevelOfLayer:function(b){a.console.error("[Viewer.getLevelOfLayer] this function is deprecated; use World.getIndexOfItem() instead.");return this.world.getIndexOfItem(b)},getLayersCount:function(){a.console.error("[Viewer.getLayersCount] this function is deprecated; use World.getItemCount() instead.");return this.world.getItemCount()},setLayerLevel:function(b,c){a.console.error("[Viewer.setLayerLevel] this function is deprecated; use World.setItemIndex() instead.");return this.world.setItemIndex(b,c)},removeLayer:function(b){a.console.error("[Viewer.removeLayer] this function is deprecated; use World.removeItem() instead.");return this.world.removeItem(b)},forceRedraw:function(){U[this.hash].forceRedraw=!0;return this},bindSequenceControls:function(){var b=a.delegate(this,k),c=a.delegate(this,l),d=a.delegate(this,T),e=a.delegate(this,S),f=this.navImages,g=!0;if(this.showSequenceControl){(this.previousButton||this.nextButton)&&(g=!1);this.previousButton=new a.Button({element:this.previousButton?a.getElement(this.previousButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.PreviousPage"),srcRest:F(this.prefixUrl,f.previous.REST),srcGroup:F(this.prefixUrl,f.previous.GROUP),srcHover:F(this.prefixUrl,f.previous.HOVER),srcDown:F(this.prefixUrl,f.previous.DOWN),onRelease:e,onFocus:b,onBlur:c});this.nextButton=new a.Button({element:this.nextButton?a.getElement(this.nextButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.NextPage"),srcRest:F(this.prefixUrl,f.next.REST),srcGroup:F(this.prefixUrl,f.next.GROUP),srcHover:F(this.prefixUrl,f.next.HOVER),srcDown:F(this.prefixUrl,f.next.DOWN),onRelease:d,onFocus:b,onBlur:c});this.navPrevNextWrap||this.previousButton.disable();this.tileSources&&this.tileSources.length||this.nextButton.disable();if(g){this.paging=new a.ButtonGroup({buttons:[this.previousButton,this.nextButton],clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold});this.pagingControl=this.paging.element;this.toolbar?this.toolbar.addControl(this.pagingControl,{anchor:a.ControlAnchor.BOTTOM_RIGHT}):this.addControl(this.pagingControl,{anchor:this.sequenceControlAnchor||a.ControlAnchor.TOP_LEFT})}}return this},bindStandardControls:function(){var b=a.delegate(this,G),c=a.delegate(this,I),d=a.delegate(this,L),e=a.delegate(this,H),f=a.delegate(this,M),g=a.delegate(this,O),h=a.delegate(this,P),i=a.delegate(this,Q),j=a.delegate(this,R),m=a.delegate(this,k),n=a.delegate(this,l),o=this.navImages,p=[],q=!0;if(this.showNavigationControl){(this.zoomInButton||this.zoomOutButton||this.homeButton||this.fullPageButton||this.rotateLeftButton||this.rotateRightButton)&&(q=!1);if(this.showZoomControl){p.push(this.zoomInButton=new a.Button({element:this.zoomInButton?a.getElement(this.zoomInButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.ZoomIn"),srcRest:F(this.prefixUrl,o.zoomIn.REST),srcGroup:F(this.prefixUrl,o.zoomIn.GROUP),srcHover:F(this.prefixUrl,o.zoomIn.HOVER),srcDown:F(this.prefixUrl,o.zoomIn.DOWN),onPress:b,onRelease:c,onClick:d,onEnter:b,onExit:c,onFocus:m,onBlur:n}));p.push(this.zoomOutButton=new a.Button({element:this.zoomOutButton?a.getElement(this.zoomOutButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.ZoomOut"),srcRest:F(this.prefixUrl,o.zoomOut.REST),srcGroup:F(this.prefixUrl,o.zoomOut.GROUP),srcHover:F(this.prefixUrl,o.zoomOut.HOVER),srcDown:F(this.prefixUrl,o.zoomOut.DOWN),onPress:e,onRelease:c,onClick:f,onEnter:e,onExit:c,onFocus:m,onBlur:n}))}this.showHomeControl&&p.push(this.homeButton=new a.Button({element:this.homeButton?a.getElement(this.homeButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.Home"),srcRest:F(this.prefixUrl,o.home.REST),srcGroup:F(this.prefixUrl,o.home.GROUP),srcHover:F(this.prefixUrl,o.home.HOVER),srcDown:F(this.prefixUrl,o.home.DOWN),onRelease:g,onFocus:m,onBlur:n}));this.showFullPageControl&&p.push(this.fullPageButton=new a.Button({element:this.fullPageButton?a.getElement(this.fullPageButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.FullPage"),srcRest:F(this.prefixUrl,o.fullpage.REST),srcGroup:F(this.prefixUrl,o.fullpage.GROUP),srcHover:F(this.prefixUrl,o.fullpage.HOVER),srcDown:F(this.prefixUrl,o.fullpage.DOWN),onRelease:h,onFocus:m,onBlur:n}));if(this.showRotationControl){p.push(this.rotateLeftButton=new a.Button({element:this.rotateLeftButton?a.getElement(this.rotateLeftButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.RotateLeft"),srcRest:F(this.prefixUrl,o.rotateleft.REST),srcGroup:F(this.prefixUrl,o.rotateleft.GROUP),srcHover:F(this.prefixUrl,o.rotateleft.HOVER),srcDown:F(this.prefixUrl,o.rotateleft.DOWN),onRelease:i,onFocus:m,onBlur:n}));p.push(this.rotateRightButton=new a.Button({element:this.rotateRightButton?a.getElement(this.rotateRightButton):null,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,tooltip:a.getString("Tooltips.RotateRight"),srcRest:F(this.prefixUrl,o.rotateright.REST),srcGroup:F(this.prefixUrl,o.rotateright.GROUP),srcHover:F(this.prefixUrl,o.rotateright.HOVER),srcDown:F(this.prefixUrl,o.rotateright.DOWN),onRelease:j,onFocus:m,onBlur:n}))}if(q){this.buttons=new a.ButtonGroup({buttons:p,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold});this.navControl=this.buttons.element;this.addHandler("open",a.delegate(this,N));this.toolbar?this.toolbar.addControl(this.navControl,{anchor:a.ControlAnchor.TOP_LEFT}):this.addControl(this.navControl,{anchor:this.navigationControlAnchor||a.ControlAnchor.TOP_LEFT})}}return this},currentPage:function(){return this._sequenceIndex},goToPage:function(a){if(this.tileSources&&a>=0&&a<this.tileSources.length){this.raiseEvent("page",{page:a});this._sequenceIndex=a;this._updateSequenceButtons(a);this.open(this.tileSources[a]);this.referenceStrip&&this.referenceStrip.setFocus(a)}return this},addOverlay:function(b,c,f,g){var h;h=a.isPlainObject(b)?b:{element:b,location:c,placement:f,onDraw:g};b=a.getElement(h.element);if(e(this.currentOverlays,b)>=0)return this;var i=d(this,h);this.currentOverlays.push(i);i.drawHTML(this.overlaysContainer,this.viewport);this.raiseEvent("add-overlay",{element:b,location:h.location,placement:h.placement});return this},updateOverlay:function(b,c,d){var f;b=a.getElement(b);f=e(this.currentOverlays,b);if(f>=0){this.currentOverlays[f].update(c,d);U[this.hash].forceRedraw=!0;this.raiseEvent("update-overlay",{element:b,location:c,placement:d})}return this},removeOverlay:function(b){var c;b=a.getElement(b);c=e(this.currentOverlays,b);if(c>=0){this.currentOverlays[c].destroy();this.currentOverlays.splice(c,1);U[this.hash].forceRedraw=!0;this.raiseEvent("remove-overlay",{element:b})}return this},clearOverlays:function(){for(;this.currentOverlays.length>0;)this.currentOverlays.pop().destroy();U[this.hash].forceRedraw=!0;this.raiseEvent("clear-overlay",{});return this},getOverlayById:function(b){var c;b=a.getElement(b);c=e(this.currentOverlays,b);return c>=0?this.currentOverlays[c]:null},_updateSequenceButtons:function(a){this.nextButton&&(this.tileSources&&this.tileSources.length-1!==a?this.nextButton.enable():this.navPrevNextWrap||this.nextButton.disable());this.previousButton&&(a>0?this.previousButton.enable():this.navPrevNextWrap||this.previousButton.disable())},_showMessage:function(b){this._hideMessage();var c=a.makeNeutralElement("div");c.appendChild(document.createTextNode(b));this.messageDiv=a.makeCenteredNode(c);a.addClass(this.messageDiv,"openseadragon-message");this.container.appendChild(this.messageDiv)},_hideMessage:function(){var a=this.messageDiv;if(a){a.parentNode.removeChild(a);delete this.messageDiv}},gestureSettingsByDeviceType:function(a){switch(a){case"mouse":return this.gestureSettingsMouse;case"touch":return this.gestureSettingsTouch;case"pen":return this.gestureSettingsPen;default:return this.gestureSettingsUnknown}},_drawOverlays:function(){var a,b=this.currentOverlays.length;for(a=0;b>a;a++)this.currentOverlays[a].drawHTML(this.overlaysContainer,this.viewport)},_cancelPendingImages:function(){this._loadQueue=[]}})}(OpenSeadragon);!function(a){function b(a){if(a.quick&&this.viewer.viewport){this.viewer.viewport.panTo(this.viewport.pointFromPixel(a.position));this.viewer.viewport.applyConstraints()}}function c(a){if(this.viewer.viewport){this.panHorizontal||(a.delta.x=0);this.panVertical||(a.delta.y=0);this.viewer.viewport.panBy(this.viewport.deltaPointsFromPixels(a.delta))}}function d(a){a.insideElementPressed&&this.viewer.viewport&&this.viewer.viewport.applyConstraints()}function e(a){this.viewer.raiseEvent("navigator-scroll",{tracker:a.eventSource,position:a.position,scroll:a.scroll,shift:a.shift,originalEvent:a.originalEvent});return!1}function f(a,b){a.style.webkitTransform="rotate("+b+"deg)";a.style.mozTransform="rotate("+b+"deg)";a.style.msTransform="rotate("+b+"deg)";a.style.oTransform="rotate("+b+"deg)";a.style.transform="rotate("+b+"deg)"}a.Navigator=function(g){function h(a){f(l.displayRegionContainer,a);f(l.displayRegion,-a);l.viewport.setRotation(a)}var i,j,k=g.viewer,l=this;if(g.id){this.element=document.getElementById(g.id);g.controlOptions={anchor:a.ControlAnchor.NONE,attachToViewer:!1,autoFade:!1}}else{g.id="navigator-"+a.now(); 11 this.element=a.makeNeutralElement("div");g.controlOptions={anchor:a.ControlAnchor.TOP_RIGHT,attachToViewer:!0,autoFade:g.autoFade};if(g.position)if("BOTTOM_RIGHT"==g.position)g.controlOptions.anchor=a.ControlAnchor.BOTTOM_RIGHT;else if("BOTTOM_LEFT"==g.position)g.controlOptions.anchor=a.ControlAnchor.BOTTOM_LEFT;else if("TOP_RIGHT"==g.position)g.controlOptions.anchor=a.ControlAnchor.TOP_RIGHT;else if("TOP_LEFT"==g.position)g.controlOptions.anchor=a.ControlAnchor.TOP_LEFT;else if("ABSOLUTE"==g.position){g.controlOptions.anchor=a.ControlAnchor.ABSOLUTE;g.controlOptions.top=g.top;g.controlOptions.left=g.left;g.controlOptions.height=g.height;g.controlOptions.width=g.width}}this.element.id=g.id;this.element.className+=" navigator";g=a.extend(!0,{sizeRatio:a.DEFAULT_SETTINGS.navigatorSizeRatio},g,{element:this.element,tabIndex:-1,showNavigator:!1,mouseNavEnabled:!1,showNavigationControl:!1,showSequenceControl:!1,immediateRender:!0,blendTime:0,animationTime:0,autoResize:g.autoResize,minZoomImageRatio:1});g.minPixelRatio=this.minPixelRatio=k.minPixelRatio;a.setElementTouchActionNone(this.element);this.borderWidth=2;this.fudge=new a.Point(1,1);this.totalBorderWidths=new a.Point(2*this.borderWidth,2*this.borderWidth).minus(this.fudge);g.controlOptions.anchor!=a.ControlAnchor.NONE&&!function(a,b){a.margin="0px";a.border=b+"px solid #555";a.padding="0px";a.background="#000";a.opacity=.8;a.overflow="hidden"}(this.element.style,this.borderWidth);this.displayRegion=a.makeNeutralElement("div");this.displayRegion.id=this.element.id+"-displayregion";this.displayRegion.className="displayregion";!function(a,b){a.position="relative";a.top="0px";a.left="0px";a.fontSize="0px";a.overflow="hidden";a.border=b+"px solid #900";a.margin="0px";a.padding="0px";a.background="transparent";a["float"]="left";a.cssFloat="left";a.styleFloat="left";a.zIndex=999999999;a.cursor="default"}(this.displayRegion.style,this.borderWidth);this.displayRegionContainer=a.makeNeutralElement("div");this.displayRegionContainer.id=this.element.id+"-displayregioncontainer";this.displayRegionContainer.className="displayregioncontainer";this.displayRegionContainer.style.width="100%";this.displayRegionContainer.style.height="100%";k.addControl(this.element,g.controlOptions);this._resizeWithViewer=g.controlOptions.anchor!=a.ControlAnchor.ABSOLUTE&&g.controlOptions.anchor!=a.ControlAnchor.NONE;if(this._resizeWithViewer){if(g.width&&g.height){this.element.style.height="number"==typeof g.height?g.height+"px":g.height;this.element.style.width="number"==typeof g.width?g.width+"px":g.width}else{i=a.getElementSize(k.element);this.element.style.height=Math.round(i.y*g.sizeRatio)+"px";this.element.style.width=Math.round(i.x*g.sizeRatio)+"px";this.oldViewerSize=i}j=a.getElementSize(this.element);this.elementArea=j.x*j.y}this.oldContainerSize=new a.Point(0,0);a.Viewer.apply(this,[g]);this.displayRegionContainer.appendChild(this.displayRegion);this.element.getElementsByTagName("div")[0].appendChild(this.displayRegionContainer);if(g.navigatorRotate){var m=g.viewer.viewport?g.viewer.viewport.getRotation():g.viewer.degrees||0;h(m);g.viewer.addHandler("rotate",function(a){h(a.degrees)})}this.innerTracker.destroy();this.innerTracker=new a.MouseTracker({element:this.element,dragHandler:a.delegate(this,c),clickHandler:a.delegate(this,b),releaseHandler:a.delegate(this,d),scrollHandler:a.delegate(this,e)});this.addHandler("reset-size",function(){l.viewport&&l.viewport.goHome(!0)});k.world.addHandler("item-index-change",function(a){var b=l.world.getItemAt(a.previousIndex);l.world.setItemIndex(b,a.newIndex)});k.world.addHandler("remove-item",function(a){var b=a.item;var c=l._getMatchingItem(b);c&&l.world.removeItem(c)});this.update(k.viewport)};a.extend(a.Navigator.prototype,a.EventSource.prototype,a.Viewer.prototype,{updateSize:function(){if(this.viewport){var b=new a.Point(0===this.container.clientWidth?1:this.container.clientWidth,0===this.container.clientHeight?1:this.container.clientHeight);if(!b.equals(this.oldContainerSize)){this.viewport.resize(b,!0);this.viewport.goHome(!0);this.oldContainerSize=b;this.drawer.clear();this.world.draw()}}},update:function(b){var c,d,e,f,g,h;c=a.getElementSize(this.viewer.element);if(this._resizeWithViewer&&c.x&&c.y&&!c.equals(this.oldViewerSize)){this.oldViewerSize=c;if(this.maintainSizeRatio||!this.elementArea){d=c.x*this.sizeRatio;e=c.y*this.sizeRatio}else{d=Math.sqrt(this.elementArea*(c.x/c.y));e=this.elementArea/d}this.element.style.width=Math.round(d)+"px";this.element.style.height=Math.round(e)+"px";this.elementArea||(this.elementArea=d*e);this.updateSize()}if(b&&this.viewport){f=b.getBoundsNoRotate(!0);g=this.viewport.pixelFromPointNoRotate(f.getTopLeft(),!1);h=this.viewport.pixelFromPointNoRotate(f.getBottomRight(),!1).minus(this.totalBorderWidths);var i=this.displayRegion.style;i.display=this.world.getItemCount()?"block":"none";i.top=Math.round(g.y)+"px";i.left=Math.round(g.x)+"px";var j=Math.abs(g.x-h.x);var k=Math.abs(g.y-h.y);i.width=Math.round(Math.max(j,0))+"px";i.height=Math.round(Math.max(k,0))+"px"}},addTiledImage:function(b){var c=this;var d=b.originalTiledImage;delete b.original;var e=a.extend({},b,{success:function(a){var b=a.item;b._originalForNavigator=d;c._matchBounds(b,d,!0);d.addHandler("bounds-change",function(){c._matchBounds(b,d)})}});return a.Viewer.prototype.addTiledImage.apply(this,[e])},_getMatchingItem:function(a){var b=this.world.getItemCount();var c;for(var d=0;b>d;d++){c=this.world.getItemAt(d);if(c._originalForNavigator===a)return c}return null},_matchBounds:function(a,b,c){var d=b.getBounds();a.setPosition(d.getTopLeft(),c);a.setWidth(d.width,c)}})}(OpenSeadragon);!function(a){var b={Errors:{Dzc:"Sorry, we don't support Deep Zoom Collections!",Dzi:"Hmm, this doesn't appear to be a valid Deep Zoom Image.",Xml:"Hmm, this doesn't appear to be a valid Deep Zoom Image.",ImageFormat:"Sorry, we don't support {0}-based Deep Zoom Images.",Security:"It looks like a security restriction stopped us from loading this Deep Zoom Image.",Status:"This space unintentionally left blank ({0} {1}).",OpenFailed:"Unable to open {0}: {1}"},Tooltips:{FullPage:"Toggle full page",Home:"Go home",ZoomIn:"Zoom in",ZoomOut:"Zoom out",NextPage:"Next page",PreviousPage:"Previous page",RotateLeft:"Rotate left",RotateRight:"Rotate right"}};a.extend(a,{getString:function(c){var d,e=c.split("."),f=null,g=arguments,h=b;for(d=0;d<e.length-1;d++)h=h[e[d]]||{};f=h[e[d]];if("string"!=typeof f){a.console.debug("Untranslated source string:",c);f=""}return f.replace(/\{\d+\}/g,function(a){var b=parseInt(a.match(/\d+/),10)+1;return b<g.length?g[b]:""})},setString:function(a,c){var d,e=a.split("."),f=b;for(d=0;d<e.length-1;d++){f[e[d]]||(f[e[d]]={});f=f[e[d]]}f[e[d]]=c}})}(OpenSeadragon);!function(a){a.Point=function(a,b){this.x="number"==typeof a?a:0;this.y="number"==typeof b?b:0};a.Point.prototype={clone:function(){return new a.Point(this.x,this.y)},plus:function(b){return new a.Point(this.x+b.x,this.y+b.y)},minus:function(b){return new a.Point(this.x-b.x,this.y-b.y)},times:function(b){return new a.Point(this.x*b,this.y*b)},divide:function(b){return new a.Point(this.x/b,this.y/b)},negate:function(){return new a.Point(-this.x,-this.y)},distanceTo:function(a){return Math.sqrt(Math.pow(this.x-a.x,2)+Math.pow(this.y-a.y,2))},apply:function(b){return new a.Point(b(this.x),b(this.y))},equals:function(b){return b instanceof a.Point&&this.x===b.x&&this.y===b.y},rotate:function(b,c){c=c||new a.Point(0,0);var d;var e;if(b%90===0){var f=b%360;0>f&&(f+=360);switch(f){case 0:d=1;e=0;break;case 90:d=0;e=1;break;case 180:d=-1;e=0;break;case 270:d=0;e=-1}}else{var g=b*Math.PI/180;d=Math.cos(g);e=Math.sin(g)}var h=d*(this.x-c.x)-e*(this.y-c.y)+c.x;var i=e*(this.x-c.x)+d*(this.y-c.y)+c.y;return new a.Point(h,i)},toString:function(){return"("+Math.round(100*this.x)/100+","+Math.round(100*this.y)/100+")"}}}(OpenSeadragon);!function(a){function b(b){var c,d,e=b.responseText,f=b.status;if(!b)throw new Error(a.getString("Errors.Security"));if(200!==b.status&&0!==b.status){f=b.status;c=404==f?"Not Found":b.statusText;throw new Error(a.getString("Errors.Status",f,c))}if(e.match(/\s*<.*/))try{d=b.responseXML&&b.responseXML.documentElement?b.responseXML:a.parseXml(e)}catch(g){d=b.responseText}else d=e.match(/\s*[\{\[].*/)?a.parseJSON(e):e;return d}a.TileSource=function(b,c,d,e,f,g){var h=this;var i,j,k=arguments;i=a.isPlainObject(b)?b:{width:k[0],height:k[1],tileSize:k[2],tileOverlap:k[3],minLevel:k[4],maxLevel:k[5]};a.EventSource.call(this);a.extend(!0,this,i);if(!this.success)for(j=0;j<arguments.length;j++)if(a.isFunction(arguments[j])){this.success=arguments[j];break}this.success&&this.addHandler("ready",function(a){h.success(a)});"string"==a.type(arguments[0])&&(this.url=arguments[0]);if(this.url){this.aspectRatio=1;this.dimensions=new a.Point(10,10);this._tileWidth=0;this._tileHeight=0;this.tileOverlap=0;this.minLevel=0;this.maxLevel=0;this.ready=!1;this.getImageInfo(this.url)}else{this.ready=!0;this.aspectRatio=i.width&&i.height?i.width/i.height:1;this.dimensions=new a.Point(i.width,i.height);if(this.tileSize){this._tileWidth=this._tileHeight=this.tileSize;delete this.tileSize}else{if(this.tileWidth){this._tileWidth=this.tileWidth;delete this.tileWidth}else this._tileWidth=0;if(this.tileHeight){this._tileHeight=this.tileHeight;delete this.tileHeight}else this._tileHeight=0}this.tileOverlap=i.tileOverlap?i.tileOverlap:0;this.minLevel=i.minLevel?i.minLevel:0;this.maxLevel=void 0!==i.maxLevel&&null!==i.maxLevel?i.maxLevel:i.width&&i.height?Math.ceil(Math.log(Math.max(i.width,i.height))/Math.log(2)):0;this.success&&a.isFunction(this.success)&&this.success(this)}};a.TileSource.prototype={getTileSize:function(b){a.console.error("[TileSource.getTileSize] is deprecated.Use TileSource.getTileWidth() and TileSource.getTileHeight() instead");return this._tileWidth},getTileWidth:function(a){return this._tileWidth?this._tileWidth:this.getTileSize(a)},getTileHeight:function(a){return this._tileHeight?this._tileHeight:this.getTileSize(a)},getLevelScale:function(a){var b,c={};for(b=0;b<=this.maxLevel;b++)c[b]=1/Math.pow(2,this.maxLevel-b);this.getLevelScale=function(a){return c[a]};return this.getLevelScale(a)},getNumTiles:function(b){var c=this.getLevelScale(b),d=Math.ceil(c*this.dimensions.x/this.getTileWidth(b)),e=Math.ceil(c*this.dimensions.y/this.getTileHeight(b));return new a.Point(d,e)},getPixelRatio:function(b){var c=this.dimensions.times(this.getLevelScale(b)),d=1/c.x,e=1/c.y;return new a.Point(d,e)},getClosestLevel:function(b){var c,d,e;for(c=this.minLevel;c<this.maxLevel;c++){e=this.getNumTiles(c);d=new a.Point(Math.floor(b.x/this.getTileWidth(c)),Math.floor(b.y/this.getTileHeight(c)));if(e.x+1>=d.x&&e.y+1>=d.y)break}return Math.max(0,c-1)},getTileAtPoint:function(b,c){var d=c.times(this.dimensions.x).times(this.getLevelScale(b)),e=Math.floor(d.x/this.getTileWidth(b)),f=Math.floor(d.y/this.getTileHeight(b));return new a.Point(e,f)},getTileBounds:function(b,c,d){var e=this.dimensions.times(this.getLevelScale(b)),f=this.getTileWidth(b),g=this.getTileHeight(b),h=0===c?0:f*c-this.tileOverlap,i=0===d?0:g*d-this.tileOverlap,j=f+(0===c?1:2)*this.tileOverlap,k=g+(0===d?1:2)*this.tileOverlap,l=1/e.x;j=Math.min(j,e.x-h);k=Math.min(k,e.y-i);return new a.Rect(h*l,i*l,j*l,k*l)},getImageInfo:function(c){var d,e,f,g,h,i,j,k=this;if(c){h=c.split("/");i=h[h.length-1];j=i.lastIndexOf(".");j>-1&&(h[h.length-1]=i.slice(0,j))}e=function(b){"string"==typeof b&&(b=a.parseXml(b));var d=a.TileSource.determineType(k,b,c);if(d){g=d.prototype.configure.apply(k,[b,c]);void 0===g.ajaxWithCredentials&&(g.ajaxWithCredentials=k.ajaxWithCredentials);f=new d(g);k.ready=!0;k.raiseEvent("ready",{tileSource:f})}else k.raiseEvent("open-failed",{message:"Unable to load TileSource",source:c})};if(c.match(/\.js$/)){d=c.split("/").pop().replace(".js","");a.jsonp({url:c,async:!1,callbackName:d,callback:e})}else a.makeAjaxRequest({url:c,withCredentials:this.ajaxWithCredentials,success:function(a){var c=b(a);e(c)},error:function(a,b){var d;try{d="HTTP "+a.status+" attempting to load TileSource"}catch(e){var f;f="undefined"!=typeof b&&b.toString?b.toString():"Unknown error";d=f+" attempting to load TileSource"}k.raiseEvent("open-failed",{message:d,source:c})}})},supports:function(a,b){return!1},configure:function(a,b){throw new Error("Method not implemented.")},getTileUrl:function(a,b,c){throw new Error("Method not implemented.")},tileExists:function(a,b,c){var d=this.getNumTiles(a);return a>=this.minLevel&&a<=this.maxLevel&&b>=0&&c>=0&&b<d.x&&c<d.y}};a.extend(!0,a.TileSource.prototype,a.EventSource.prototype);a.TileSource.determineType=function(b,c,d){var e;for(e in OpenSeadragon)if(e.match(/.+TileSource$/)&&a.isFunction(OpenSeadragon[e])&&a.isFunction(OpenSeadragon[e].prototype.supports)&&OpenSeadragon[e].prototype.supports.call(b,c,d))return OpenSeadragon[e];a.console.error("No TileSource was able to open %s %s",d,c)}}(OpenSeadragon);!function(a){function b(b,d){if(!d||!d.documentElement)throw new Error(a.getString("Errors.Xml"));var e,f,g,h,i,j=d.documentElement,k=j.localName||j.tagName,l=d.documentElement.namespaceURI,m=null,n=[];if("Image"==k)try{h=j.getElementsByTagName("Size")[0];void 0===h&&(h=j.getElementsByTagNameNS(l,"Size")[0]);m={Image:{xmlns:"http://schemas.microsoft.com/deepzoom/2008",Url:j.getAttribute("Url"),Format:j.getAttribute("Format"),DisplayRect:null,Overlap:parseInt(j.getAttribute("Overlap"),10),TileSize:parseInt(j.getAttribute("TileSize"),10),Size:{Height:parseInt(h.getAttribute("Height"),10),Width:parseInt(h.getAttribute("Width"),10)}}};if(!a.imageFormatSupported(m.Image.Format))throw new Error(a.getString("Errors.ImageFormat",m.Image.Format.toUpperCase()));e=j.getElementsByTagName("DisplayRect");void 0===e&&(e=j.getElementsByTagNameNS(l,"DisplayRect")[0]);for(i=0;i<e.length;i++){f=e[i];g=f.getElementsByTagName("Rect")[0];void 0===g&&(g=f.getElementsByTagNameNS(l,"Rect")[0]);n.push({Rect:{X:parseInt(g.getAttribute("X"),10),Y:parseInt(g.getAttribute("Y"),10),Width:parseInt(g.getAttribute("Width"),10),Height:parseInt(g.getAttribute("Height"),10),MinLevel:parseInt(f.getAttribute("MinLevel"),10),MaxLevel:parseInt(f.getAttribute("MaxLevel"),10)}})}n.length&&(m.Image.DisplayRect=n);return c(b,m)}catch(o){throw o instanceof Error?o:new Error(a.getString("Errors.Dzi"))}else{if("Collection"==k)throw new Error(a.getString("Errors.Dzc"));if("Error"==k){var p=j.getElementsByTagName("Message")[0];var q=p.firstChild.nodeValue;throw new Error(q)}}throw new Error(a.getString("Errors.Dzi"))}function c(b,c){var d,e,f=c.Image,g=f.Url,h=f.Format,i=f.Size,j=f.DisplayRect||[],k=parseInt(i.Width,10),l=parseInt(i.Height,10),m=parseInt(f.TileSize,10),n=parseInt(f.Overlap,10),o=[];for(e=0;e<j.length;e++){d=j[e].Rect;o.push(new a.DisplayRect(parseInt(d.X,10),parseInt(d.Y,10),parseInt(d.Width,10),parseInt(d.Height,10),parseInt(d.MinLevel,10),parseInt(d.MaxLevel,10)))}return a.extend(!0,{width:k,height:l,tileSize:m,tileOverlap:n,minLevel:null,maxLevel:null,tilesUrl:g,fileFormat:h,displayRects:o},c)}a.DziTileSource=function(b,c,d,e,f,g,h,i,j){var k,l,m,n;n=a.isPlainObject(b)?b:{width:arguments[0],height:arguments[1],tileSize:arguments[2],tileOverlap:arguments[3],tilesUrl:arguments[4],fileFormat:arguments[5],displayRects:arguments[6],minLevel:arguments[7],maxLevel:arguments[8]};this._levelRects={};this.tilesUrl=n.tilesUrl;this.fileFormat=n.fileFormat;this.displayRects=n.displayRects;if(this.displayRects)for(k=this.displayRects.length-1;k>=0;k--){l=this.displayRects[k];for(m=l.minLevel;m<=l.maxLevel;m++){this._levelRects[m]||(this._levelRects[m]=[]);this._levelRects[m].push(l)}}a.TileSource.apply(this,[n])};a.extend(a.DziTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){var c;a.Image?c=a.Image.xmlns:a.documentElement&&("Image"==a.documentElement.localName||"Image"==a.documentElement.tagName)&&(c=a.documentElement.namespaceURI);return"http://schemas.microsoft.com/deepzoom/2008"==c||"http://schemas.microsoft.com/deepzoom/2009"==c},configure:function(d,e){var f;f=a.isPlainObject(d)?c(this,d):b(this,d);if(e&&!f.tilesUrl){f.tilesUrl=e.replace(/([^\/]+?)(\.(dzi|xml|js))?\/?(\?.*)?$/,"$1_files/");-1!=e.search(/\.(dzi|xml|js)\?/)?f.queryParams=e.match(/\?.*/):f.queryParams=""}return f},getTileUrl:function(a,b,c){return[this.tilesUrl,a,"/",b,"_",c,".",this.fileFormat,this.queryParams].join("")},tileExists:function(a,b,c){var d,e,f,g,h,i,j,k=this._levelRects[a];if(!k||!k.length)return!0;for(j=k.length-1;j>=0;j--){d=k[j];if(!(a<d.minLevel||a>d.maxLevel)){e=this.getLevelScale(a);f=d.x*e;g=d.y*e;h=f+d.width*e;i=g+d.height*e;f=Math.floor(f/this.tileSize);g=Math.floor(g/this.tileSize);h=Math.ceil(h/this.tileSize);i=Math.ceil(i/this.tileSize);if(b>=f&&h>b&&c>=g&&i>c)return!0}}return!1}})}(OpenSeadragon);!function(a){function b(a){var b=["http://library.stanford.edu/iiif/image-api/compliance.html#level0","http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0","http://iiif.io/api/image/2/level0.json"];var c=-1!=b.indexOf(a[0]);return!c||-1!=a.indexOf("sizeByW")}function c(a){var b=[];for(var c=0;c<a.sizes.length;c++)b.push({url:a["@id"]+"/full/"+a.sizes[c].width+",/0/default.jpg",width:a.sizes[c].width,height:a.sizes[c].height});return b.sort(function(a,b){return a.width-b.width})}function d(b){if(!b||!b.documentElement)throw new Error(a.getString("Errors.Xml"));var c=b.documentElement,d=c.tagName,f=null;if("info"==d)try{f={};e(c,f);return f}catch(g){throw g instanceof Error?g:new Error(a.getString("Errors.IIIF"))}throw new Error(a.getString("Errors.IIIF"))}function e(b,c,d){var f,g;if(3==b.nodeType&&d){g=b.nodeValue.trim();g.match(/^\d*$/)&&(g=Number(g));if(c[d]){a.isArray(c[d])||(c[d]=[c[d]]);c[d].push(g)}else c[d]=g}else if(1==b.nodeType)for(f=0;f<b.childNodes.length;f++)e(b.childNodes[f],c,b.nodeName)}a.IIIFTileSource=function(d){a.extend(!0,this,d);if(!(this.height&&this.width&&this["@id"]))throw new Error("IIIF required parameters not provided.");d.tileSizePerScaleFactor={};if(this.tile_width&&this.tile_height){d.tileWidth=this.tile_width;d.tileHeight=this.tile_height}else if(this.tile_width)d.tileSize=this.tile_width;else if(this.tile_height)d.tileSize=this.tile_height;else if(this.tiles)if(1==this.tiles.length){d.tileWidth=this.tiles[0].width;d.tileHeight=this.tiles[0].height||this.tiles[0].width;this.scale_factors=this.tiles[0].scaleFactors}else{this.scale_factors=[];for(var e=0;e<this.tiles.length;e++)for(var f=0;f<this.tiles[e].scaleFactors.length;f++){var g=this.tiles[e].scaleFactors[f];this.scale_factors.push(g);d.tileSizePerScaleFactor[g]={width:this.tiles[e].width,height:this.tiles[e].height||this.tiles[e].width}}}else if(b(d.profile)){var h=Math.min(this.height,this.width),i=[256,512,1024],j=[];for(var k=0;k<i.length;k++)i[k]<=h&&j.push(i[k]);j.length>0?d.tileSize=Math.max.apply(null,j):d.tileSize=h}else if(this.sizes&&this.sizes.length>0){this.emulateLegacyImagePyramid=!0;d.levels=c(this);a.extend(!0,d,{width:d.levels[d.levels.length-1].width,height:d.levels[d.levels.length-1].height,tileSize:Math.max(d.height,d.width),tileOverlap:0,minLevel:0,maxLevel:d.levels.length-1});this.levels=d.levels}else a.console.error("Nothing in the info.json to construct image pyramids from");d.maxLevel||this.emulateLegacyImagePyramid||(this.scale_factors?d.maxLevel=Math.floor(Math.pow(Math.max.apply(null,this.scale_factors),.5)):d.maxLevel=Number(Math.ceil(Math.log(Math.max(this.width,this.height),2))));a.TileSource.apply(this,[d])};a.extend(a.IIIFTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){return a.protocol&&"http://iiif.io/api/image"==a.protocol?!0:!a["@context"]||"http://library.stanford.edu/iiif/image-api/1.1/context.json"!=a["@context"]&&"http://iiif.io/api/image/1/context.json"!=a["@context"]?a.profile&&0===a.profile.indexOf("http://library.stanford.edu/iiif/image-api/compliance.html")?!0:a.identifier&&a.width&&a.height?!0:a.documentElement&&"info"==a.documentElement.tagName&&"http://library.stanford.edu/iiif/image-api/ns/"==a.documentElement.namespaceURI?!0:!1:!0},configure:function(b,c){if(a.isPlainObject(b)){if(b["@context"])return b;b["@context"]="http://iiif.io/api/image/1.0/context.json";b["@id"]=c.replace("/info.json","");return b}var e=d(b);e["@context"]="http://iiif.io/api/image/1.0/context.json";e["@id"]=c.replace("/info.xml","");return e},getTileWidth:function(b){if(this.emulateLegacyImagePyramid)return a.TileSource.prototype.getTileWidth.call(this,b);var c=Math.pow(2,this.maxLevel-b);return this.tileSizePerScaleFactor&&this.tileSizePerScaleFactor[c]?this.tileSizePerScaleFactor[c].width:this._tileWidth},getTileHeight:function(b){if(this.emulateLegacyImagePyramid)return a.TileSource.prototype.getTileHeight.call(this,b);var c=Math.pow(2,this.maxLevel-b);return this.tileSizePerScaleFactor&&this.tileSizePerScaleFactor[c]?this.tileSizePerScaleFactor[c].height:this._tileHeight},getLevelScale:function(b){if(this.emulateLegacyImagePyramid){var c=NaN;this.levels.length>0&&b>=this.minLevel&&b<=this.maxLevel&&(c=this.levels[b].width/this.levels[this.maxLevel].width);return c}return a.TileSource.prototype.getLevelScale.call(this,b)},getNumTiles:function(b){if(this.emulateLegacyImagePyramid){var c=this.getLevelScale(b);return c?new a.Point(1,1):new a.Point(0,0)}return a.TileSource.prototype.getNumTiles.call(this,b)},getTileAtPoint:function(b,c){return this.emulateLegacyImagePyramid?new a.Point(0,0):a.TileSource.prototype.getTileAtPoint.call(this,b,c)},getTileUrl:function(a,b,c){if(this.emulateLegacyImagePyramid){var d=null;this.levels.length>0&&a>=this.minLevel&&a<=this.maxLevel&&(d=this.levels[a].url);return d}var e,f,g,h,i,j,k,l,m,n,o,p,q="0",r=Math.pow(.5,this.maxLevel-a),s=Math.ceil(this.width*r),t=Math.ceil(this.height*r);e=this.getTileWidth(a);f=this.getTileHeight(a);g=Math.ceil(e/r);h=Math.ceil(f/r);o=this["@context"].indexOf("/1.0/context.json")>-1||this["@context"].indexOf("/1.1/context.json")>-1||this["@context"].indexOf("/1/context.json")>-1?"native.jpg":"default.jpg";if(e>s&&f>t){n=s+",";i="full"}else{j=b*g;k=c*h;l=Math.min(g,this.width-j);m=Math.min(h,this.height-k);n=Math.ceil(l*r)+",";i=[j,k,l,m].join(",")}p=[this["@id"],i,n,q,o].join("/");return p}})}(OpenSeadragon);!function(a){a.OsmTileSource=function(b,c,d,e,f){var g;g=a.isPlainObject(b)?b:{width:arguments[0],height:arguments[1],tileSize:arguments[2],tileOverlap:arguments[3],tilesUrl:arguments[4]};if(!g.width||!g.height){g.width=65572864;g.height=65572864}if(!g.tileSize){g.tileSize=256;g.tileOverlap=0}g.tilesUrl||(g.tilesUrl="http://tile.openstreetmap.org/");g.minLevel=8;a.TileSource.apply(this,[g])};a.extend(a.OsmTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){return a.type&&"openstreetmaps"==a.type},configure:function(a,b){return a},getTileUrl:function(a,b,c){return this.tilesUrl+(a-8)+"/"+b+"/"+c+".png"}})}(OpenSeadragon);!function(a){a.TmsTileSource=function(b,c,d,e,f){var g;g=a.isPlainObject(b)?b:{width:arguments[0],height:arguments[1],tileSize:arguments[2],tileOverlap:arguments[3],tilesUrl:arguments[4]};var h,i=256*Math.ceil(g.width/256),j=256*Math.ceil(g.height/256);h=i>j?i/256:j/256;g.maxLevel=Math.ceil(Math.log(h)/Math.log(2))-1;g.tileSize=256;g.width=i;g.height=j;a.TileSource.apply(this,[g])};a.extend(a.TmsTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){return a.type&&"tiledmapservice"==a.type},configure:function(a,b){return a},getTileUrl:function(a,b,c){var d=this.getNumTiles(a).y-1;return this.tilesUrl+a+"/"+b+"/"+(d-c)+".png"}})}(OpenSeadragon);!function(a){function b(b){var c,d,e=[];for(d=0;d<b.length;d++){c=b[d];c.height&&c.width&&c.url&&(c.url.toLowerCase().match(/^.*\.(png|jpg|jpeg|gif)(?:\?.*)?$/)||c.mimetype&&c.mimetype.toLowerCase().match(/^.*\/(png|jpg|jpeg|gif)$/))?e.push({url:c.url,width:Number(c.width),height:Number(c.height)}):a.console.error("Unsupported image format: %s",c.url?c.url:"<no URL>")}return e.sort(function(a,b){return a.height-b.height})}function c(b,c){if(!c||!c.documentElement)throw new Error(a.getString("Errors.Xml"));var e,f,g=c.documentElement,h=g.tagName,i=null,j=[];if("image"==h)try{i={type:g.getAttribute("type"),levels:[]};j=g.getElementsByTagName("level");for(f=0;f<j.length;f++){e=j[f];i.levels.push({url:e.getAttribute("url"),width:parseInt(e.getAttribute("width"),10),height:parseInt(e.getAttribute("height"),10)})}return d(b,i)}catch(k){throw k instanceof Error?k:new Error("Unknown error parsing Legacy Image Pyramid XML.")}else{if("collection"==h)throw new Error("Legacy Image Pyramid Collections not yet supported.");if("error"==h)throw new Error("Error: "+c)}throw new Error("Unknown element "+h)}function d(a,b){return b.levels}a.LegacyTileSource=function(c){var d,e,f;a.isArray(c)&&(d={type:"legacy-image-pyramid",levels:c});d.levels=b(d.levels);if(d.levels.length>0){e=d.levels[d.levels.length-1].width;f=d.levels[d.levels.length-1].height}else{e=0;f=0;a.console.error("No supported image formats found")}a.extend(!0,d,{width:e,height:f,tileSize:Math.max(f,e),tileOverlap:0,minLevel:0,maxLevel:d.levels.length>0?d.levels.length-1:0});a.TileSource.apply(this,[d]);this.levels=d.levels};a.extend(a.LegacyTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){return a.type&&"legacy-image-pyramid"==a.type||a.documentElement&&"legacy-image-pyramid"==a.documentElement.getAttribute("type")},configure:function(b,e){var f;f=a.isPlainObject(b)?d(this,b):c(this,b);return f},getLevelScale:function(a){var b=NaN;this.levels.length>0&&a>=this.minLevel&&a<=this.maxLevel&&(b=this.levels[a].width/this.levels[this.maxLevel].width);return b},getNumTiles:function(b){var c=this.getLevelScale(b);return c?new a.Point(1,1):new a.Point(0,0)},getTileAtPoint:function(b,c){return new a.Point(0,0)},getTileUrl:function(a,b,c){var d=null;this.levels.length>0&&a>=this.minLevel&&a<=this.maxLevel&&(d=this.levels[a].url);return d}})}(OpenSeadragon);!function(a){a.ImageTileSource=function(b){b=a.extend({buildPyramid:!0,crossOriginPolicy:!1,ajaxWithCredentials:!1,useCanvas:!0},b);a.TileSource.apply(this,[b])};a.extend(a.ImageTileSource.prototype,a.TileSource.prototype,{supports:function(a,b){return a.type&&"image"===a.type},configure:function(a,b){return a},getImageInfo:function(b){var c=this._image=new Image;var d=this;this.crossOriginPolicy&&(c.crossOrigin=this.crossOriginPolicy);this.ajaxWithCredentials&&(c.useCredentials=this.ajaxWithCredentials);a.addEvent(c,"load",function(){d.width=c.naturalWidth;d.height=c.naturalHeight;d.aspectRatio=d.width/d.height;d.dimensions=new a.Point(d.width,d.height);d._tileWidth=d.width;d._tileHeight=d.height;d.tileOverlap=0;d.minLevel=0;d.levels=d._buildLevels();d.maxLevel=d.levels.length-1;d.ready=!0;d.raiseEvent("ready",{tileSource:d})});a.addEvent(c,"error",function(){d.raiseEvent("open-failed",{message:"Error loading image at "+b,source:b})});c.src=b},getLevelScale:function(a){var b=NaN;a>=this.minLevel&&a<=this.maxLevel&&(b=this.levels[a].width/this.levels[this.maxLevel].width);return b},getNumTiles:function(b){var c=this.getLevelScale(b);return c?new a.Point(1,1):new a.Point(0,0)},getTileAtPoint:function(b,c){return new a.Point(0,0)},getTileUrl:function(a,b,c){var d=null;a>=this.minLevel&&a<=this.maxLevel&&(d=this.levels[a].url);return d},getContext2D:function(a,b,c){var d=null;a>=this.minLevel&&a<=this.maxLevel&&(d=this.levels[a].context2D);return d},_buildLevels:function(){var b=[{url:this._image.src,width:this._image.naturalWidth,height:this._image.naturalHeight}];if(!this.buildPyramid||!a.supportsCanvas||!this.useCanvas){delete this._image;return b}var c=this._image.naturalWidth;var d=this._image.naturalHeight;var e=document.createElement("canvas");var f=e.getContext("2d");e.width=c;e.height=d;f.drawImage(this._image,0,0,c,d);b[0].context2D=f;delete this._image;if(a.isCanvasTainted(e))return b;for(;c>=2&&d>=2;){c=Math.floor(c/2);d=Math.floor(d/2);var g=document.createElement("canvas");var h=g.getContext("2d");g.width=c;g.height=d;h.drawImage(e,0,0,c,d);b.splice(0,0,{context2D:h,width:c,height:d});e=g;f=h}return b}})}(OpenSeadragon);!function(a){a.TileSourceCollection=function(b,c,d,e){a.console.error("TileSourceCollection is deprecated; use World instead")}}(OpenSeadragon);!function(a){function b(b){a.requestAnimationFrame(function(){c(b)})}function c(c){var d,e,f;if(c.shouldFade){d=a.now();e=d-c.fadeBeginTime;f=1-e/c.fadeLength;f=Math.min(1,f);f=Math.max(0,f);c.imgGroup&&a.setElementOpacity(c.imgGroup,f,!0);f>0&&b(c)}}function d(c){c.shouldFade=!0;c.fadeBeginTime=a.now()+c.fadeDelay;window.setTimeout(function(){b(c)},c.fadeDelay)}function e(b){b.shouldFade=!1;b.imgGroup&&a.setElementOpacity(b.imgGroup,1,!0)}function f(b,c){if(!b.element.disabled){if(c>=a.ButtonState.GROUP&&b.currentState==a.ButtonState.REST){e(b);b.currentState=a.ButtonState.GROUP}if(c>=a.ButtonState.HOVER&&b.currentState==a.ButtonState.GROUP){b.imgHover&&(b.imgHover.style.visibility="");b.currentState=a.ButtonState.HOVER}if(c>=a.ButtonState.DOWN&&b.currentState==a.ButtonState.HOVER){b.imgDown&&(b.imgDown.style.visibility="");b.currentState=a.ButtonState.DOWN}}}function g(b,c){if(!b.element.disabled){if(c<=a.ButtonState.HOVER&&b.currentState==a.ButtonState.DOWN){b.imgDown&&(b.imgDown.style.visibility="hidden");b.currentState=a.ButtonState.HOVER}if(c<=a.ButtonState.GROUP&&b.currentState==a.ButtonState.HOVER){b.imgHover&&(b.imgHover.style.visibility="hidden");b.currentState=a.ButtonState.GROUP}if(c<=a.ButtonState.REST&&b.currentState==a.ButtonState.GROUP){d(b);b.currentState=a.ButtonState.REST}}}a.ButtonState={REST:0,GROUP:1,HOVER:2,DOWN:3};a.Button=function(b){var c=this;a.EventSource.call(this);a.extend(!0,this,{tooltip:null,srcRest:null,srcGroup:null,srcHover:null,srcDown:null,clickTimeThreshold:a.DEFAULT_SETTINGS.clickTimeThreshold,clickDistThreshold:a.DEFAULT_SETTINGS.clickDistThreshold,fadeDelay:0,fadeLength:2e3,onPress:null,onRelease:null,onClick:null,onEnter:null,onExit:null,onFocus:null,onBlur:null},b);this.element=b.element||a.makeNeutralElement("div");if(!b.element){this.imgRest=a.makeTransparentImage(this.srcRest);this.imgGroup=a.makeTransparentImage(this.srcGroup);this.imgHover=a.makeTransparentImage(this.srcHover);this.imgDown=a.makeTransparentImage(this.srcDown);this.imgRest.alt=this.imgGroup.alt=this.imgHover.alt=this.imgDown.alt=this.tooltip;this.element.style.position="relative";a.setElementTouchActionNone(this.element);this.imgGroup.style.position=this.imgHover.style.position=this.imgDown.style.position="absolute";this.imgGroup.style.top=this.imgHover.style.top=this.imgDown.style.top="0px";this.imgGroup.style.left=this.imgHover.style.left=this.imgDown.style.left="0px";this.imgHover.style.visibility=this.imgDown.style.visibility="hidden";a.Browser.vendor==a.BROWSERS.FIREFOX&&a.Browser.version<3&&(this.imgGroup.style.top=this.imgHover.style.top=this.imgDown.style.top="");this.element.appendChild(this.imgRest);this.element.appendChild(this.imgGroup);this.element.appendChild(this.imgHover);this.element.appendChild(this.imgDown)}this.addHandler("press",this.onPress);this.addHandler("release",this.onRelease);this.addHandler("click",this.onClick);this.addHandler("enter",this.onEnter);this.addHandler("exit",this.onExit);this.addHandler("focus",this.onFocus);this.addHandler("blur",this.onBlur);this.currentState=a.ButtonState.GROUP;this.fadeBeginTime=null;this.shouldFade=!1;this.element.style.display="inline-block";this.element.style.position="relative";this.element.title=this.tooltip;this.tracker=new a.MouseTracker({element:this.element,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,enterHandler:function(b){if(b.insideElementPressed){f(c,a.ButtonState.DOWN);c.raiseEvent("enter",{originalEvent:b.originalEvent})}else b.buttonDownAny||f(c,a.ButtonState.HOVER)},focusHandler:function(a){this.enterHandler(a);c.raiseEvent("focus",{originalEvent:a.originalEvent})},exitHandler:function(b){g(c,a.ButtonState.GROUP);b.insideElementPressed&&c.raiseEvent("exit",{originalEvent:b.originalEvent})},blurHandler:function(a){ 12 this.exitHandler(a);c.raiseEvent("blur",{originalEvent:a.originalEvent})},pressHandler:function(b){f(c,a.ButtonState.DOWN);c.raiseEvent("press",{originalEvent:b.originalEvent})},releaseHandler:function(b){if(b.insideElementPressed&&b.insideElementReleased){g(c,a.ButtonState.HOVER);c.raiseEvent("release",{originalEvent:b.originalEvent})}else b.insideElementPressed?g(c,a.ButtonState.GROUP):f(c,a.ButtonState.HOVER)},clickHandler:function(a){a.quick&&c.raiseEvent("click",{originalEvent:a.originalEvent})},keyHandler:function(a){if(13===a.keyCode){c.raiseEvent("click",{originalEvent:a.originalEvent});c.raiseEvent("release",{originalEvent:a.originalEvent});return!1}return!0}});g(this,a.ButtonState.REST)};a.extend(a.Button.prototype,a.EventSource.prototype,{notifyGroupEnter:function(){f(this,a.ButtonState.GROUP)},notifyGroupExit:function(){g(this,a.ButtonState.REST)},disable:function(){this.notifyGroupExit();this.element.disabled=!0;a.setElementOpacity(this.element,.2,!0)},enable:function(){this.element.disabled=!1;a.setElementOpacity(this.element,1,!0);this.notifyGroupEnter()}})}(OpenSeadragon);!function(a){a.ButtonGroup=function(b){a.extend(!0,this,{buttons:[],clickTimeThreshold:a.DEFAULT_SETTINGS.clickTimeThreshold,clickDistThreshold:a.DEFAULT_SETTINGS.clickDistThreshold,labelText:""},b);var c,d=this.buttons.concat([]),e=this;this.element=b.element||a.makeNeutralElement("div");if(!b.group){this.label=a.makeNeutralElement("label");this.element.style.display="inline-block";this.element.appendChild(this.label);for(c=0;c<d.length;c++)this.element.appendChild(d[c].element)}a.setElementTouchActionNone(this.element);this.tracker=new a.MouseTracker({element:this.element,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,enterHandler:function(a){var b;for(b=0;b<e.buttons.length;b++)e.buttons[b].notifyGroupEnter()},exitHandler:function(a){var b;if(!a.insideElementPressed)for(b=0;b<e.buttons.length;b++)e.buttons[b].notifyGroupExit()}})};a.ButtonGroup.prototype={emulateEnter:function(){this.tracker.enterHandler({eventSource:this.tracker})},emulateExit:function(){this.tracker.exitHandler({eventSource:this.tracker})}}}(OpenSeadragon);!function(a){a.Rect=function(a,b,c,d,e){this.x="number"==typeof a?a:0;this.y="number"==typeof b?b:0;this.width="number"==typeof c?c:0;this.height="number"==typeof d?d:0;this.degrees="number"==typeof e?e:0;this.degrees=this.degrees%360;this.degrees<0&&(this.degrees+=360);var f,g;if(this.degrees>=270){f=this.getTopRight();this.x=f.x;this.y=f.y;g=this.height;this.height=this.width;this.width=g;this.degrees-=270}else if(this.degrees>=180){f=this.getBottomRight();this.x=f.x;this.y=f.y;this.degrees-=180}else if(this.degrees>=90){f=this.getBottomLeft();this.x=f.x;this.y=f.y;g=this.height;this.height=this.width;this.width=g;this.degrees-=90}};a.Rect.fromSummits=function(b,c,d){var e=b.distanceTo(c);var f=b.distanceTo(d);var g=c.minus(b);var h=Math.atan(g.y/g.x);g.x<0?h+=Math.PI:g.y<0&&(h+=2*Math.PI);return new a.Rect(b.x,b.y,e,f,h/Math.PI*180)};a.Rect.prototype={clone:function(){return new a.Rect(this.x,this.y,this.width,this.height,this.degrees)},getAspectRatio:function(){return this.width/this.height},getTopLeft:function(){return new a.Point(this.x,this.y)},getBottomRight:function(){return new a.Point(this.x+this.width,this.y+this.height).rotate(this.degrees,this.getTopLeft())},getTopRight:function(){return new a.Point(this.x+this.width,this.y).rotate(this.degrees,this.getTopLeft())},getBottomLeft:function(){return new a.Point(this.x,this.y+this.height).rotate(this.degrees,this.getTopLeft())},getCenter:function(){return new a.Point(this.x+this.width/2,this.y+this.height/2).rotate(this.degrees,this.getTopLeft())},getSize:function(){return new a.Point(this.width,this.height)},equals:function(b){return b instanceof a.Rect&&this.x===b.x&&this.y===b.y&&this.width===b.width&&this.height===b.height&&this.degrees===b.degrees},times:function(b){return new a.Rect(this.x*b,this.y*b,this.width*b,this.height*b,this.degrees)},translate:function(b){return new a.Rect(this.x+b.x,this.y+b.y,this.width,this.height,this.degrees)},union:function(b){var c=this.getBoundingBox();var d=b.getBoundingBox();var e=Math.min(c.x,d.x);var f=Math.min(c.y,d.y);var g=Math.max(c.x+c.width,d.x+d.width);var h=Math.max(c.y+c.height,d.y+d.height);return new a.Rect(e,f,g-e,h-f)},intersection:function(b){function c(b,c,e,f){var g=c.minus(b);var h=f.minus(e);var i=-h.x*g.y+g.x*h.y;if(0===i)return null;var j=(g.x*(b.y-e.y)-g.y*(b.x-e.x))/i;var k=(h.x*(b.y-e.y)-h.y*(b.x-e.x))/i;return j>=-d&&1-d>=j&&k>=-d&&1-d>=k?new a.Point(b.x+k*g.x,b.y+k*g.y):null}var d=1e-10;var e=[];var f=this.getTopLeft();b.containsPoint(f,d)&&e.push(f);var g=this.getTopRight();b.containsPoint(g,d)&&e.push(g);var h=this.getBottomLeft();b.containsPoint(h,d)&&e.push(h);var i=this.getBottomRight();b.containsPoint(i,d)&&e.push(i);var j=b.getTopLeft();this.containsPoint(j,d)&&e.push(j);var k=b.getTopRight();this.containsPoint(k,d)&&e.push(k);var l=b.getBottomLeft();this.containsPoint(l,d)&&e.push(l);var m=b.getBottomRight();this.containsPoint(m,d)&&e.push(m);var n=this._getSegments();var o=b._getSegments();for(var p=0;p<n.length;p++){var q=n[p];for(var r=0;r<o.length;r++){var s=o[r];var t=c(q[0],q[1],s[0],s[1]);t&&e.push(t)}}if(0===e.length)return null;var u=e[0].x;var v=e[0].x;var w=e[0].y;var x=e[0].y;for(var y=1;y<e.length;y++){var z=e[y];z.x<u&&(u=z.x);z.x>v&&(v=z.x);z.y<w&&(w=z.y);z.y>x&&(x=z.y)}return new a.Rect(u,w,v-u,x-w)},_getSegments:function(){var a=this.getTopLeft();var b=this.getTopRight();var c=this.getBottomLeft();var d=this.getBottomRight();return[[a,b],[b,d],[d,c],[c,a]]},rotate:function(b,c){b%=360;if(0===b)return this.clone();0>b&&(b+=360);c=c||this.getCenter();var d=this.getTopLeft().rotate(b,c);var e=this.getTopRight().rotate(b,c);var f=e.minus(d);var g=Math.atan(f.y/f.x);f.x<0?g+=Math.PI:f.y<0&&(g+=2*Math.PI);return new a.Rect(d.x,d.y,this.width,this.height,g/Math.PI*180)},getBoundingBox:function(){if(0===this.degrees)return this.clone();var b=this.getTopLeft();var c=this.getTopRight();var d=this.getBottomLeft();var e=this.getBottomRight();var f=Math.min(b.x,c.x,d.x,e.x);var g=Math.max(b.x,c.x,d.x,e.x);var h=Math.min(b.y,c.y,d.y,e.y);var i=Math.max(b.y,c.y,d.y,e.y);return new a.Rect(f,h,g-f,i-h)},getIntegerBoundingBox:function(){var b=this.getBoundingBox();var c=Math.floor(b.x);var d=Math.floor(b.y);var e=Math.ceil(b.width+b.x-c);var f=Math.ceil(b.height+b.y-d);return new a.Rect(c,d,e,f)},containsPoint:function(a,b){b=b||0;var c=this.getTopLeft();var d=this.getTopRight();var e=this.getBottomLeft();var f=d.minus(c);var g=e.minus(c);return(a.x-c.x)*f.x+(a.y-c.y)*f.y>=-b&&(a.x-d.x)*f.x+(a.y-d.y)*f.y<=b&&(a.x-c.x)*g.x+(a.y-c.y)*g.y>=-b&&(a.x-e.x)*g.x+(a.y-e.y)*g.y<=b},toString:function(){return"["+Math.round(100*this.x)/100+", "+Math.round(100*this.y)/100+", "+Math.round(100*this.width)/100+"x"+Math.round(100*this.height)/100+", "+Math.round(100*this.degrees)/100+"deg]"}}}(OpenSeadragon);!function(a){function b(b){var c=Number(this.element.style.marginLeft.replace("px","")),e=Number(this.element.style.marginTop.replace("px","")),f=Number(this.element.style.width.replace("px","")),g=Number(this.element.style.height.replace("px","")),h=a.getElementSize(this.viewer.canvas);this.dragging=!0;if(this.element)if("horizontal"==this.scroll){if(-b.delta.x>0){if(c>-(f-h.x)){this.element.style.marginLeft=c+2*b.delta.x+"px";d(this,h.x,c+2*b.delta.x)}}else if(-b.delta.x<0&&0>c){this.element.style.marginLeft=c+2*b.delta.x+"px";d(this,h.x,c+2*b.delta.x)}}else if(-b.delta.y>0){if(e>-(g-h.y)){this.element.style.marginTop=e+2*b.delta.y+"px";d(this,h.y,e+2*b.delta.y)}}else if(-b.delta.y<0&&0>e){this.element.style.marginTop=e+2*b.delta.y+"px";d(this,h.y,e+2*b.delta.y)}return!1}function c(b){var c=Number(this.element.style.marginLeft.replace("px","")),e=Number(this.element.style.marginTop.replace("px","")),f=Number(this.element.style.width.replace("px","")),g=Number(this.element.style.height.replace("px","")),h=a.getElementSize(this.viewer.canvas);if(this.element)if("horizontal"==this.scroll){if(b.scroll>0){if(c>-(f-h.x)){this.element.style.marginLeft=c-60*b.scroll+"px";d(this,h.x,c-60*b.scroll)}}else if(b.scroll<0&&0>c){this.element.style.marginLeft=c-60*b.scroll+"px";d(this,h.x,c-60*b.scroll)}}else if(b.scroll<0){if(e>h.y-g){this.element.style.marginTop=e+60*b.scroll+"px";d(this,h.y,e+60*b.scroll)}}else if(b.scroll>0&&0>e){this.element.style.marginTop=e+60*b.scroll+"px";d(this,h.y,e+60*b.scroll)}return!1}function d(b,c,d){var e,f,g,h,i,j,k;e="horizontal"==b.scroll?b.panelWidth:b.panelHeight;f=Math.ceil(c/e)+5;g=Math.ceil((Math.abs(d)+c)/e)+1;f=g-f;f=0>f?0:f;for(j=f;g>j&&j<b.panels.length;j++){k=b.panels[j];if(!k.activePanel){h=new a.Viewer({id:k.id,tileSources:[b.viewer.tileSources[j]],element:k,navigatorSizeRatio:b.sizeRatio,showNavigator:!1,mouseNavEnabled:!1,showNavigationControl:!1,showSequenceControl:!1,immediateRender:!0,blendTime:0,animationTime:0});h.displayRegion=a.makeNeutralElement("div");h.displayRegion.id=k.id+"-displayregion";h.displayRegion.className="displayregion";i=h.displayRegion.style;i.position="relative";i.top="0px";i.left="0px";i.fontSize="0px";i.overflow="hidden";i["float"]="left";i.cssFloat="left";i.styleFloat="left";i.zIndex=999999999;i.cursor="default";i.width=b.panelWidth-4+"px";i.height=b.panelHeight-4+"px";h.displayRegion.innerTracker=new a.MouseTracker({element:h.displayRegion,startDisabled:!0});k.getElementsByTagName("div")[0].appendChild(h.displayRegion);k.activePanel=!0}}}function e(a){var b=a.eventSource.element;"horizontal"==this.scroll?b.style.marginBottom="0px":b.style.marginLeft="0px";return!1}function f(b){var c=b.eventSource.element;"horizontal"==this.scroll?c.style.marginBottom="-"+a.getElementSize(c).y/2+"px":c.style.marginLeft="-"+a.getElementSize(c).x/2+"px";return!1}function g(a){if(a.preventDefaultAction||a.ctrl||a.alt||a.meta)return!0;switch(a.keyCode){case 38:c.call(this,{eventSource:this.tracker,position:null,scroll:1,shift:null});return!1;case 40:c.call(this,{eventSource:this.tracker,position:null,scroll:-1,shift:null});return!1;case 37:c.call(this,{eventSource:this.tracker,position:null,scroll:-1,shift:null});return!1;case 39:c.call(this,{eventSource:this.tracker,position:null,scroll:1,shift:null});return!1;default:return!0}}function h(a){if(a.preventDefaultAction||a.ctrl||a.alt||a.meta)return!0;switch(a.keyCode){case 61:c.call(this,{eventSource:this.tracker,position:null,scroll:1,shift:null});return!1;case 45:c.call(this,{eventSource:this.tracker,position:null,scroll:-1,shift:null});return!1;case 48:case 119:case 87:c.call(this,{eventSource:this.tracker,position:null,scroll:1,shift:null});return!1;case 115:case 83:c.call(this,{eventSource:this.tracker,position:null,scroll:-1,shift:null});return!1;case 97:c.call(this,{eventSource:this.tracker,position:null,scroll:-1,shift:null});return!1;case 100:c.call(this,{eventSource:this.tracker,position:null,scroll:1,shift:null});return!1;default:return!0}}var i={};a.ReferenceStrip=function(j){var k,l,m,n=this,o=j.viewer,p=a.getElementSize(o.element);if(!j.id){j.id="referencestrip-"+a.now();this.element=a.makeNeutralElement("div");this.element.id=j.id;this.element.className="referencestrip"}j=a.extend(!0,{sizeRatio:a.DEFAULT_SETTINGS.referenceStripSizeRatio,position:a.DEFAULT_SETTINGS.referenceStripPosition,scroll:a.DEFAULT_SETTINGS.referenceStripScroll,clickTimeThreshold:a.DEFAULT_SETTINGS.clickTimeThreshold},j,{element:this.element,showNavigator:!1,mouseNavEnabled:!1,showNavigationControl:!1,showSequenceControl:!1});a.extend(this,j);i[this.id]={animating:!1};this.minPixelRatio=this.viewer.minPixelRatio;l=this.element.style;l.marginTop="0px";l.marginRight="0px";l.marginBottom="0px";l.marginLeft="0px";l.left="0px";l.bottom="0px";l.border="0px";l.background="#000";l.position="relative";a.setElementTouchActionNone(this.element);a.setElementOpacity(this.element,.8);this.viewer=o;this.innerTracker=new a.MouseTracker({element:this.element,dragHandler:a.delegate(this,b),scrollHandler:a.delegate(this,c),enterHandler:a.delegate(this,e),exitHandler:a.delegate(this,f),keyDownHandler:a.delegate(this,g),keyHandler:a.delegate(this,h)});if(j.width&&j.height){this.element.style.width=j.width+"px";this.element.style.height=j.height+"px";o.addControl(this.element,{anchor:a.ControlAnchor.BOTTOM_LEFT})}else if("horizontal"==j.scroll){this.element.style.width=p.x*j.sizeRatio*o.tileSources.length+12*o.tileSources.length+"px";this.element.style.height=p.y*j.sizeRatio+"px";o.addControl(this.element,{anchor:a.ControlAnchor.BOTTOM_LEFT})}else{this.element.style.height=p.y*j.sizeRatio*o.tileSources.length+12*o.tileSources.length+"px";this.element.style.width=p.x*j.sizeRatio+"px";o.addControl(this.element,{anchor:a.ControlAnchor.TOP_LEFT})}this.panelWidth=p.x*this.sizeRatio+8;this.panelHeight=p.y*this.sizeRatio+8;this.panels=[];for(m=0;m<o.tileSources.length;m++){k=a.makeNeutralElement("div");k.id=this.element.id+"-"+m;k.style.width=n.panelWidth+"px";k.style.height=n.panelHeight+"px";k.style.display="inline";k.style["float"]="left";k.style.cssFloat="left";k.style.styleFloat="left";k.style.padding="2px";a.setElementTouchActionNone(k);k.innerTracker=new a.MouseTracker({element:k,clickTimeThreshold:this.clickTimeThreshold,clickDistThreshold:this.clickDistThreshold,pressHandler:function(b){b.eventSource.dragging=a.now()},releaseHandler:function(b){var c=b.eventSource,d=c.element.id,e=Number(d.split("-")[2]),f=a.now();if(b.insideElementPressed&&b.insideElementReleased&&c.dragging&&f-c.dragging<c.clickTimeThreshold){c.dragging=null;o.goToPage(e)}}});this.element.appendChild(k);k.activePanel=!1;this.panels.push(k)}d(this,"vertical"==this.scroll?p.y:p.x,0);this.setFocus(0)};a.extend(a.ReferenceStrip.prototype,a.EventSource.prototype,a.Viewer.prototype,{setFocus:function(b){var c,f=a.getElement(this.element.id+"-"+b),g=a.getElementSize(this.viewer.canvas),h=Number(this.element.style.width.replace("px","")),i=Number(this.element.style.height.replace("px","")),j=-Number(this.element.style.marginLeft.replace("px","")),k=-Number(this.element.style.marginTop.replace("px",""));if(this.currentSelected!==f){this.currentSelected&&(this.currentSelected.style.background="#000");this.currentSelected=f;this.currentSelected.style.background="#999";if("horizontal"==this.scroll){c=Number(b)*(this.panelWidth+3);if(c>j+g.x-this.panelWidth){c=Math.min(c,h-g.x);this.element.style.marginLeft=-c+"px";d(this,g.x,-c)}else if(j>c){c=Math.max(0,c-g.x/2);this.element.style.marginLeft=-c+"px";d(this,g.x,-c)}}else{c=Number(b)*(this.panelHeight+3);if(c>k+g.y-this.panelHeight){c=Math.min(c,i-g.y);this.element.style.marginTop=-c+"px";d(this,g.y,-c)}else if(k>c){c=Math.max(0,c-g.y/2);this.element.style.marginTop=-c+"px";d(this,g.y,-c)}}this.currentPage=b;e.call(this,{eventSource:this.innerTracker})}},update:function(){if(i[this.id].animating){a.console.log("image reference strip update");return!0}return!1},destroy:function(){this.element&&this.element.parentNode.removeChild(this.element)}})}(OpenSeadragon);!function(a){a.DisplayRect=function(b,c,d,e,f,g){a.Rect.apply(this,[b,c,d,e]);this.minLevel=f;this.maxLevel=g};a.extend(a.DisplayRect.prototype,a.Rect.prototype)}(OpenSeadragon);!function(a){function b(a,b){return(1-Math.exp(a*-b))/(1-Math.exp(-a))}a.Spring=function(b){var c=arguments;"object"!=typeof b&&(b={initial:c.length&&"number"==typeof c[0]?c[0]:void 0,springStiffness:c.length>1?c[1].springStiffness:5,animationTime:c.length>1?c[1].animationTime:1.5});a.console.assert("number"==typeof b.springStiffness&&0!==b.springStiffness,"[OpenSeadragon.Spring] options.springStiffness must be a non-zero number");a.console.assert("number"==typeof b.animationTime&&b.animationTime>=0,"[OpenSeadragon.Spring] options.animationTime must be a number greater than or equal to 0");if(b.exponential){this._exponential=!0;delete b.exponential}a.extend(!0,this,b);this.current={value:"number"==typeof this.initial?this.initial:this._exponential?0:1,time:a.now()};a.console.assert(!this._exponential||0!==this.current.value,"[OpenSeadragon.Spring] value must be non-zero for exponential springs");this.start={value:this.current.value,time:this.current.time};this.target={value:this.current.value,time:this.current.time};if(this._exponential){this.start._logValue=Math.log(this.start.value);this.target._logValue=Math.log(this.target.value);this.current._logValue=Math.log(this.current.value)}};a.Spring.prototype={resetTo:function(b){a.console.assert(!this._exponential||0!==b,"[OpenSeadragon.Spring.resetTo] target must be non-zero for exponential springs");this.start.value=this.target.value=this.current.value=b;this.start.time=this.target.time=this.current.time=a.now();if(this._exponential){this.start._logValue=Math.log(this.start.value);this.target._logValue=Math.log(this.target.value);this.current._logValue=Math.log(this.current.value)}},springTo:function(b){a.console.assert(!this._exponential||0!==b,"[OpenSeadragon.Spring.springTo] target must be non-zero for exponential springs");this.start.value=this.current.value;this.start.time=this.current.time;this.target.value=b;this.target.time=this.start.time+1e3*this.animationTime;if(this._exponential){this.start._logValue=Math.log(this.start.value);this.target._logValue=Math.log(this.target.value)}},shiftBy:function(b){this.start.value+=b;this.target.value+=b;if(this._exponential){a.console.assert(0!==this.target.value&&0!==this.start.value,"[OpenSeadragon.Spring.shiftBy] spring value must be non-zero for exponential springs");this.start._logValue=Math.log(this.start.value);this.target._logValue=Math.log(this.target.value)}},setExponential:function(b){this._exponential=b;if(this._exponential){a.console.assert(0!==this.current.value&&0!==this.target.value&&0!==this.start.value,"[OpenSeadragon.Spring.setExponential] spring value must be non-zero for exponential springs");this.start._logValue=Math.log(this.start.value);this.target._logValue=Math.log(this.target.value);this.current._logValue=Math.log(this.current.value)}},update:function(){this.current.time=a.now();var c,d;if(this._exponential){c=this.start._logValue;d=this.target._logValue}else{c=this.start.value;d=this.target.value}var e=this.current.time>=this.target.time?d:c+(d-c)*b(this.springStiffness,(this.current.time-this.start.time)/(this.target.time-this.start.time));this._exponential?this.current.value=Math.exp(e):this.current.value=e},isAtTargetValue:function(){return this.current.value===this.target.value}}}(OpenSeadragon);!function(a){function b(b){a.extend(!0,this,{timeout:a.DEFAULT_SETTINGS.timeout,jobId:null},b);this.image=null}function c(a,b,c){var d;a.jobsInProgress--;if((!a.jobLimit||a.jobsInProgress<a.jobLimit)&&a.jobQueue.length>0){d=a.jobQueue.shift();d.start();a.jobsInProgress++}c(b.image,b.errorMsg)}b.prototype={errorMsg:null,start:function(){var a=this;this.image=new Image;this.crossOriginPolicy!==!1&&(this.image.crossOrigin=this.crossOriginPolicy);this.image.onload=function(){a.finish(!0)};this.image.onabort=this.image.onerror=function(){a.errorMsg="Image load aborted";a.finish(!1)};this.jobId=window.setTimeout(function(){a.errorMsg="Image load exceeded timeout";a.finish(!1)},this.timeout);this.image.src=this.src},finish:function(a){this.image.onload=this.image.onerror=this.image.onabort=null;a||(this.image=null);this.jobId&&window.clearTimeout(this.jobId);this.callback(this)}};a.ImageLoader=function(b){a.extend(!0,this,{jobLimit:a.DEFAULT_SETTINGS.imageLoaderLimit,jobQueue:[],jobsInProgress:0},b)};a.ImageLoader.prototype={addJob:function(a){var d=this,e=function(b){c(d,b,a.callback)},f={src:a.src,crossOriginPolicy:a.crossOriginPolicy,callback:e,abort:a.abort},g=new b(f);if(!this.jobLimit||this.jobsInProgress<this.jobLimit){g.start();this.jobsInProgress++}else this.jobQueue.push(g)},clear:function(){for(var a=0;a<this.jobQueue.length;a++){var b=this.jobQueue[a];"function"==typeof b.abort&&b.abort()}this.jobQueue=[]}}}(OpenSeadragon);!function(a){a.Tile=function(a,b,c,d,e,f,g){this.level=a;this.x=b;this.y=c;this.bounds=d;this.exists=e;this.url=f;this.context2D=g;this.loaded=!1;this.loading=!1;this.element=null;this.imgElement=null;this.image=null;this.style=null;this.position=null;this.size=null;this.blendStart=null;this.opacity=null;this.distance=null;this.visibility=null;this.beingDrawn=!1;this.lastTouchTime=0};a.Tile.prototype={toString:function(){return this.level+"/"+this.x+"_"+this.y},_hasTransparencyChannel:function(){return!!this.context2D||this.url.match(".png")},drawHTML:function(b){if(this.cacheImageRecord)if(this.loaded){if(!this.element){this.element=a.makeNeutralElement("div");this.imgElement=this.cacheImageRecord.getImage().cloneNode();this.imgElement.style.msInterpolationMode="nearest-neighbor";this.imgElement.style.width="100%";this.imgElement.style.height="100%";this.style=this.element.style;this.style.position="absolute"}this.element.parentNode!=b&&b.appendChild(this.element);this.imgElement.parentNode!=this.element&&this.element.appendChild(this.imgElement);this.style.top=this.position.y+"px";this.style.left=this.position.x+"px";this.style.height=this.size.y+"px";this.style.width=this.size.x+"px";a.setElementOpacity(this.element,this.opacity)}else a.console.warn("Attempting to draw tile %s when it's not yet loaded.",this.toString());else a.console.warn("[Tile.drawHTML] attempting to draw tile %s when it's not cached",this.toString())},drawCanvas:function(b,c,d,e){var f,g=this.position.times(a.pixelDensityRatio),h=this.size.times(a.pixelDensityRatio);if(this.context2D||this.cacheImageRecord){f=this.context2D||this.cacheImageRecord.getRenderedContext();if(this.loaded&&f){b.save();b.globalAlpha=this.opacity;if("number"==typeof d&&1!==d){g=g.times(d);h=h.times(d)}e instanceof a.Point&&(g=g.plus(e));1===b.globalAlpha&&this._hasTransparencyChannel()&&b.clearRect(g.x+1,g.y+1,h.x-2,h.y-2);c({context:b,tile:this,rendered:f});b.drawImage(f.canvas,0,0,f.canvas.width,f.canvas.height,g.x,g.y,h.x,h.y);b.restore()}else a.console.warn("Attempting to draw tile %s when it's not yet loaded.",this.toString())}else a.console.warn("[Tile.drawCanvas] attempting to draw tile %s when it's not cached",this.toString())},getScaleForEdgeSmoothing:function(){var b;if(this.cacheImageRecord)b=this.cacheImageRecord.getRenderedContext();else{if(!this.context2D){a.console.warn("[Tile.drawCanvas] attempting to get tile scale %s when tile's not cached",this.toString());return 1}b=this.context2D}return b.canvas.width/(this.size.x*a.pixelDensityRatio)},getTranslationForEdgeSmoothing:function(b,c,d){var e=Math.max(1,Math.ceil((d.x-c.x)/2));var f=Math.max(1,Math.ceil((d.y-c.y)/2));return new a.Point(e,f).minus(this.position.times(a.pixelDensityRatio).times(b||1).apply(function(a){return a%1}))},unload:function(){this.imgElement&&this.imgElement.parentNode&&this.imgElement.parentNode.removeChild(this.imgElement);this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element);this.element=null;this.imgElement=null;this.loaded=!1;this.loading=!1}}}(OpenSeadragon);!function(a){a.OverlayPlacement=a.Placement;a.OverlayRotationMode=a.freezeObject({NO_ROTATION:1,EXACT:2,BOUNDING_BOX:3});a.Overlay=function(b,c,d){var e;e=a.isPlainObject(b)?b:{element:b,location:c,placement:d};this.element=e.element;this.style=e.element.style;this._init(e)};a.Overlay.prototype={_init:function(b){this.location=b.location;this.placement=void 0===b.placement?a.Placement.TOP_LEFT:b.placement;this.onDraw=b.onDraw;this.checkResize=void 0===b.checkResize?!0:b.checkResize;this.width=void 0===b.width?null:b.width;this.height=void 0===b.height?null:b.height;this.rotationMode=b.rotationMode||a.OverlayRotationMode.EXACT;if(this.location instanceof a.Rect){this.width=this.location.width;this.height=this.location.height;this.location=this.location.getTopLeft();this.placement=a.Placement.TOP_LEFT}this.scales=null!==this.width&&null!==this.height;this.bounds=new a.Rect(this.location.x,this.location.y,this.width,this.height);this.position=this.location},adjust:function(b,c){var d=a.Placement.properties[this.placement];if(d){d.isHorizontallyCentered?b.x-=c.x/2:d.isRight&&(b.x-=c.x);d.isVerticallyCentered?b.y-=c.y/2:d.isBottom&&(b.y-=c.y)}},destroy:function(){var b=this.element;var c=this.style;if(b.parentNode){b.parentNode.removeChild(b);if(b.prevElementParent){c.display="none";document.body.appendChild(b)}}this.onDraw=null;c.top="";c.left="";c.position="";null!==this.width&&(c.width="");null!==this.height&&(c.height="");var d=a.getCssPropertyWithVendorPrefix("transformOrigin");var e=a.getCssPropertyWithVendorPrefix("transform");if(d&&e){c[d]="";c[e]=""}},drawHTML:function(b,c){var d=this.element;if(d.parentNode!==b){d.prevElementParent=d.parentNode;d.prevNextSibling=d.nextSibling;b.appendChild(d);this.size=a.getElementSize(d)}var e=this._getOverlayPositionAndSize(c);var f=e.position;var g=this.size=e.size;var h=e.rotate;if(this.onDraw)this.onDraw(f,g,this.element);else{var i=this.style;i.left=f.x+"px";i.top=f.y+"px";null!==this.width&&(i.width=g.x+"px");null!==this.height&&(i.height=g.y+"px");var j=a.getCssPropertyWithVendorPrefix("transformOrigin");var k=a.getCssPropertyWithVendorPrefix("transform");if(j&&k)if(h){i[j]=this._getTransformOrigin();i[k]="rotate("+h+"deg)"}else{i[j]="";i[k]=""}i.position="absolute";"none"!==i.display&&(i.display="block")}},_getOverlayPositionAndSize:function(b){var c=b.pixelFromPoint(this.location,!0);var d=this._getSizeInPixels(b);this.adjust(c,d);var e=0;if(b.degrees&&this.rotationMode!==a.OverlayRotationMode.NO_ROTATION)if(this.rotationMode===a.OverlayRotationMode.BOUNDING_BOX&&null!==this.width&&null!==this.height){var f=new a.Rect(c.x,c.y,d.x,d.y);var g=this._getBoundingBox(f,b.degrees);c=g.getTopLeft();d=g.getSize()}else e=b.degrees;return{position:c,size:d,rotate:e}},_getSizeInPixels:function(b){var c=this.size.x;var d=this.size.y;if(null!==this.width||null!==this.height){var e=b.deltaPixelsFromPointsNoRotate(new a.Point(this.width||0,this.height||0),!0);null!==this.width&&(c=e.x);null!==this.height&&(d=e.y)}if(this.checkResize&&(null===this.width||null===this.height)){var f=this.size=a.getElementSize(this.element);null===this.width&&(c=f.x);null===this.height&&(d=f.y)}return new a.Point(c,d)},_getBoundingBox:function(a,b){var c=this._getPlacementPoint(a);return a.rotate(b,c).getBoundingBox()},_getPlacementPoint:function(b){var c=new a.Point(b.x,b.y);var d=a.Placement.properties[this.placement];if(d){d.isHorizontallyCentered?c.x+=b.width/2:d.isRight&&(c.x+=b.width);d.isVerticallyCentered?c.y+=b.height/2:d.isBottom&&(c.y+=b.height)}return c},_getTransformOrigin:function(){var b="";var c=a.Placement.properties[this.placement];if(!c)return b;c.isLeft?b="left":c.isRight&&(b="right");c.isTop?b+=" top":c.isBottom&&(b+=" bottom");return b},update:function(b,c){var d=a.isPlainObject(b)?b:{location:b,placement:c};this._init({location:d.location||this.location,placement:void 0!==d.placement?d.placement:this.placement,onDraw:d.onDraw||this.onDraw,checkResize:d.checkResize||this.checkResize,width:void 0!==d.width?d.width:this.width,height:void 0!==d.height?d.height:this.height,rotationMode:d.rotationMode||this.rotationMode})},getBounds:function(b){a.console.assert(b,"A viewport must now be passed to Overlay.getBounds.");var c=this.width;var d=this.height;if(null===c||null===d){var e=b.deltaPointsFromPixelsNoRotate(this.size,!0);null===c&&(c=e.x);null===d&&(d=e.y)}var f=this.location.clone();this.adjust(f,new a.Point(c,d));return this._adjustBoundsForRotation(b,new a.Rect(f.x,f.y,c,d))},_adjustBoundsForRotation:function(b,c){if(!b||0===b.degrees||this.rotationMode===a.OverlayRotationMode.EXACT)return c;if(this.rotationMode===a.OverlayRotationMode.BOUNDING_BOX){if(null===this.width||null===this.height)return c;var d=this._getOverlayPositionAndSize(b);return b.viewerElementToViewportRectangle(new a.Rect(d.position.x,d.position.y,d.size.x,d.size.y))}return c.rotate(-b.degrees,this._getPlacementPoint(c))}}}(OpenSeadragon);!function(a){a.Drawer=function(b){a.console.assert(b.viewer,"[Drawer] options.viewer is required");var c=arguments;a.isPlainObject(b)||(b={source:c[0],viewport:c[1],element:c[2]});a.console.assert(b.viewport,"[Drawer] options.viewport is required");a.console.assert(b.element,"[Drawer] options.element is required");b.source&&a.console.error("[Drawer] options.source is no longer accepted; use TiledImage instead");this.viewer=b.viewer;this.viewport=b.viewport;this.debugGridColor=b.debugGridColor||a.DEFAULT_SETTINGS.debugGridColor;b.opacity&&a.console.error("[Drawer] options.opacity is no longer accepted; set the opacity on the TiledImage instead");this.useCanvas=a.supportsCanvas&&(this.viewer?this.viewer.useCanvas:!0);this.container=a.getElement(b.element);this.canvas=a.makeNeutralElement(this.useCanvas?"canvas":"div");this.context=this.useCanvas?this.canvas.getContext("2d"):null;this.sketchCanvas=null;this.sketchContext=null;this.element=this.container;this.container.dir="ltr";if(this.useCanvas){var d=this._calculateCanvasSize();this.canvas.width=d.x;this.canvas.height=d.y}this.canvas.style.width="100%";this.canvas.style.height="100%";this.canvas.style.position="absolute";a.setElementOpacity(this.canvas,this.opacity,!0);this.container.style.textAlign="left";this.container.appendChild(this.canvas)};a.Drawer.prototype={addOverlay:function(b,c,d,e){a.console.error("drawer.addOverlay is deprecated. Use viewer.addOverlay instead.");this.viewer.addOverlay(b,c,d,e);return this},updateOverlay:function(b,c,d){a.console.error("drawer.updateOverlay is deprecated. Use viewer.updateOverlay instead.");this.viewer.updateOverlay(b,c,d);return this},removeOverlay:function(b){a.console.error("drawer.removeOverlay is deprecated. Use viewer.removeOverlay instead.");this.viewer.removeOverlay(b);return this},clearOverlays:function(){a.console.error("drawer.clearOverlays is deprecated. Use viewer.clearOverlays instead.");this.viewer.clearOverlays();return this},setOpacity:function(b){a.console.error("drawer.setOpacity is deprecated. Use tiledImage.setOpacity instead.");var c=this.viewer.world;for(var d=0;d<c.getItemCount();d++)c.getItemAt(d).setOpacity(b);return this},getOpacity:function(){a.console.error("drawer.getOpacity is deprecated. Use tiledImage.getOpacity instead.");var b=this.viewer.world;var c=0;for(var d=0;d<b.getItemCount();d++){var e=b.getItemAt(d).getOpacity();e>c&&(c=e)}return c},needsUpdate:function(){a.console.error("[Drawer.needsUpdate] this function is deprecated. Use World.needsDraw instead.");return this.viewer.world.needsDraw()},numTilesLoaded:function(){a.console.error("[Drawer.numTilesLoaded] this function is deprecated. Use TileCache.numTilesLoaded instead.");return this.viewer.tileCache.numTilesLoaded()},reset:function(){a.console.error("[Drawer.reset] this function is deprecated. Use World.resetItems instead.");this.viewer.world.resetItems();return this},update:function(){a.console.error("[Drawer.update] this function is deprecated. Use Drawer.clear and World.draw instead.");this.clear();this.viewer.world.draw();return this},canRotate:function(){return this.useCanvas},destroy:function(){this.canvas.width=1;this.canvas.height=1;this.sketchCanvas=null;this.sketchContext=null},clear:function(){this.canvas.innerHTML="";if(this.useCanvas){var a=this._calculateCanvasSize();if(this.canvas.width!=a.x||this.canvas.height!=a.y){this.canvas.width=a.x;this.canvas.height=a.y;if(null!==this.sketchCanvas){var b=this._calculateSketchCanvasSize();this.sketchCanvas.width=b.x;this.sketchCanvas.height=b.y}}this._clear()}},_clear:function(a,b){if(this.useCanvas){var c=this._getContext(a);if(b)c.clearRect(b.x,b.y,b.width,b.height);else{var d=c.canvas;c.clearRect(0,0,d.width,d.height)}}},viewportToDrawerRectangle:function(b){var c=this.viewport.pixelFromPointNoRotate(b.getTopLeft(),!0);var d=this.viewport.deltaPixelsFromPointsNoRotate(b.getSize(),!0);return new a.Rect(c.x*a.pixelDensityRatio,c.y*a.pixelDensityRatio,d.x*a.pixelDensityRatio,d.y*a.pixelDensityRatio); 13 },drawTile:function(b,c,d,e,f){a.console.assert(b,"[Drawer.drawTile] tile is required");a.console.assert(c,"[Drawer.drawTile] drawingHandler is required");if(this.useCanvas){var g=this._getContext(d);e=e||1;b.drawCanvas(g,c,e,f)}else b.drawHTML(this.canvas)},_getContext:function(a){var b=this.context;if(a){if(null===this.sketchCanvas){this.sketchCanvas=document.createElement("canvas");var c=this._calculateSketchCanvasSize();this.sketchCanvas.width=c.x;this.sketchCanvas.height=c.y;this.sketchContext=this.sketchCanvas.getContext("2d");if(0===this.viewport.getRotation()){var d=this;this.viewer.addHandler("rotate",function e(){d.viewer.removeHandler("rotate",e);var a=d._calculateSketchCanvasSize();d.sketchCanvas.width=a.x;d.sketchCanvas.height=a.y})}}b=this.sketchContext}return b},saveContext:function(a){this.useCanvas&&this._getContext(a).save()},restoreContext:function(a){this.useCanvas&&this._getContext(a).restore()},setClip:function(a,b){if(this.useCanvas){var c=this._getContext(b);c.beginPath();c.rect(a.x,a.y,a.width,a.height);c.clip()}},drawRectangle:function(a,b,c){if(this.useCanvas){var d=this._getContext(c);d.save();d.fillStyle=b;d.fillRect(a.x,a.y,a.width,a.height);d.restore()}},blendSketch:function(b,c,d,e){var f=b;a.isPlainObject(f)||(f={opacity:b,scale:c,translate:d,compositeOperation:e});if(this.useCanvas&&this.sketchCanvas){b=f.opacity;e=f.compositeOperation;var g=f.bounds;this.context.save();this.context.globalAlpha=b;e&&(this.context.globalCompositeOperation=e);if(g)this.context.drawImage(this.sketchCanvas,g.x,g.y,g.width,g.height,g.x,g.y,g.width,g.height);else{c=f.scale||1;d=f.translate;var h=d instanceof a.Point?d:new a.Point(0,0);var i=0;var j=0;if(d){var k=this.sketchCanvas.width-this.canvas.width;var l=this.sketchCanvas.height-this.canvas.height;i=Math.round(k/2);j=Math.round(l/2)}this.context.drawImage(this.sketchCanvas,h.x-i*c,h.y-j*c,(this.canvas.width+2*i)*c,(this.canvas.height+2*j)*c,-i,-j,this.canvas.width+2*i,this.canvas.height+2*j)}this.context.restore()}},drawDebugInfo:function(b,c,d){if(this.useCanvas){var e=this.context;e.save();e.lineWidth=2*a.pixelDensityRatio;e.font="small-caps bold "+13*a.pixelDensityRatio+"px arial";e.strokeStyle=this.debugGridColor;e.fillStyle=this.debugGridColor;0!==this.viewport.degrees&&this._offsetForRotation(this.viewport.degrees);e.strokeRect(b.position.x*a.pixelDensityRatio,b.position.y*a.pixelDensityRatio,b.size.x*a.pixelDensityRatio,b.size.y*a.pixelDensityRatio);var f=(b.position.x+b.size.x/2)*a.pixelDensityRatio;var g=(b.position.y+b.size.y/2)*a.pixelDensityRatio;e.translate(f,g);e.rotate(Math.PI/180*-this.viewport.degrees);e.translate(-f,-g);if(0===b.x&&0===b.y){e.fillText("Zoom: "+this.viewport.getZoom(),b.position.x*a.pixelDensityRatio,(b.position.y-30)*a.pixelDensityRatio);e.fillText("Pan: "+this.viewport.getBounds().toString(),b.position.x*a.pixelDensityRatio,(b.position.y-20)*a.pixelDensityRatio)}e.fillText("Level: "+b.level,(b.position.x+10)*a.pixelDensityRatio,(b.position.y+20)*a.pixelDensityRatio);e.fillText("Column: "+b.x,(b.position.x+10)*a.pixelDensityRatio,(b.position.y+30)*a.pixelDensityRatio);e.fillText("Row: "+b.y,(b.position.x+10)*a.pixelDensityRatio,(b.position.y+40)*a.pixelDensityRatio);e.fillText("Order: "+d+" of "+c,(b.position.x+10)*a.pixelDensityRatio,(b.position.y+50)*a.pixelDensityRatio);e.fillText("Size: "+b.size.toString(),(b.position.x+10)*a.pixelDensityRatio,(b.position.y+60)*a.pixelDensityRatio);e.fillText("Position: "+b.position.toString(),(b.position.x+10)*a.pixelDensityRatio,(b.position.y+70)*a.pixelDensityRatio);0!==this.viewport.degrees&&this._restoreRotationChanges();e.restore()}},debugRect:function(b){if(this.useCanvas){var c=this.context;c.save();c.lineWidth=2*a.pixelDensityRatio;c.strokeStyle=this.debugGridColor;c.fillStyle=this.debugGridColor;c.strokeRect(b.x*a.pixelDensityRatio,b.y*a.pixelDensityRatio,b.width*a.pixelDensityRatio,b.height*a.pixelDensityRatio);c.restore()}},getCanvasSize:function(b){var c=this._getContext(b).canvas;return new a.Point(c.width,c.height)},_offsetForRotation:function(a,b){var c=this.canvas.width/2;var d=this.canvas.height/2;var e=this._getContext(b);e.save();e.translate(c,d);e.rotate(Math.PI/180*a);e.translate(-c,-d)},_restoreRotationChanges:function(a){var b=this._getContext(a);b.restore()},_calculateCanvasSize:function(){var b=a.pixelDensityRatio;var c=this.viewport.getContainerSize();return{x:c.x*b,y:c.y*b}},_calculateSketchCanvasSize:function(){var a=this._calculateCanvasSize();if(0===this.viewport.getRotation())return a;var b=Math.ceil(Math.sqrt(a.x*a.x+a.y*a.y));return{x:b,y:b}}}}(OpenSeadragon);!function(a){a.Viewport=function(b){var c=arguments;c.length&&c[0]instanceof a.Point&&(b={containerSize:c[0],contentSize:c[1],config:c[2]});if(b.config){a.extend(!0,b,b.config);delete b.config}this._margins=a.extend({left:0,top:0,right:0,bottom:0},b.margins||{});delete b.margins;a.extend(!0,this,{containerSize:null,contentSize:null,zoomPoint:null,viewer:null,springStiffness:a.DEFAULT_SETTINGS.springStiffness,animationTime:a.DEFAULT_SETTINGS.animationTime,minZoomImageRatio:a.DEFAULT_SETTINGS.minZoomImageRatio,maxZoomPixelRatio:a.DEFAULT_SETTINGS.maxZoomPixelRatio,visibilityRatio:a.DEFAULT_SETTINGS.visibilityRatio,wrapHorizontal:a.DEFAULT_SETTINGS.wrapHorizontal,wrapVertical:a.DEFAULT_SETTINGS.wrapVertical,defaultZoomLevel:a.DEFAULT_SETTINGS.defaultZoomLevel,minZoomLevel:a.DEFAULT_SETTINGS.minZoomLevel,maxZoomLevel:a.DEFAULT_SETTINGS.maxZoomLevel,degrees:a.DEFAULT_SETTINGS.degrees,homeFillsViewer:a.DEFAULT_SETTINGS.homeFillsViewer},b);this._updateContainerInnerSize();this.centerSpringX=new a.Spring({initial:0,springStiffness:this.springStiffness,animationTime:this.animationTime});this.centerSpringY=new a.Spring({initial:0,springStiffness:this.springStiffness,animationTime:this.animationTime});this.zoomSpring=new a.Spring({exponential:!0,initial:1,springStiffness:this.springStiffness,animationTime:this.animationTime});this._oldCenterX=this.centerSpringX.current.value;this._oldCenterY=this.centerSpringY.current.value;this._oldZoom=this.zoomSpring.current.value;this._setContentBounds(new a.Rect(0,0,1,1),1);this.goHome(!0);this.update()};a.Viewport.prototype={resetContentSize:function(b){a.console.assert(b,"[Viewport.resetContentSize] contentSize is required");a.console.assert(b instanceof a.Point,"[Viewport.resetContentSize] contentSize must be an OpenSeadragon.Point");a.console.assert(b.x>0,"[Viewport.resetContentSize] contentSize.x must be greater than 0");a.console.assert(b.y>0,"[Viewport.resetContentSize] contentSize.y must be greater than 0");this._setContentBounds(new a.Rect(0,0,1,b.y/b.x),b.x);return this},setHomeBounds:function(b,c){a.console.error("[Viewport.setHomeBounds] this function is deprecated; The content bounds should not be set manually.");this._setContentBounds(b,c)},_setContentBounds:function(b,c){a.console.assert(b,"[Viewport._setContentBounds] bounds is required");a.console.assert(b instanceof a.Rect,"[Viewport._setContentBounds] bounds must be an OpenSeadragon.Rect");a.console.assert(b.width>0,"[Viewport._setContentBounds] bounds.width must be greater than 0");a.console.assert(b.height>0,"[Viewport._setContentBounds] bounds.height must be greater than 0");this._contentBoundsNoRotate=b.clone();this._contentSizeNoRotate=this._contentBoundsNoRotate.getSize().times(c);this._contentBounds=b.rotate(this.degrees).getBoundingBox();this._contentSize=this._contentBounds.getSize().times(c);this._contentAspectRatio=this._contentSize.x/this._contentSize.y;this.viewer&&this.viewer.raiseEvent("reset-size",{contentSize:this._contentSizeNoRotate.clone(),contentFactor:c,homeBounds:this._contentBoundsNoRotate.clone(),contentBounds:this._contentBounds.clone()})},getHomeZoom:function(){if(this.defaultZoomLevel)return this.defaultZoomLevel;var a=this._contentAspectRatio/this.getAspectRatio();var b;b=this.homeFillsViewer?a>=1?a:1:a>=1?1:a;return b/this._contentBounds.width},getHomeBounds:function(){return this.getHomeBoundsNoRotate().rotate(-this.getRotation())},getHomeBoundsNoRotate:function(){var b=this._contentBounds.getCenter();var c=1/this.getHomeZoom();var d=c/this.getAspectRatio();return new a.Rect(b.x-c/2,b.y-d/2,c,d)},goHome:function(a){this.viewer&&this.viewer.raiseEvent("home",{immediately:a});return this.fitBounds(this.getHomeBounds(),a)},getMinZoom:function(){var a=this.getHomeZoom(),b=this.minZoomLevel?this.minZoomLevel:this.minZoomImageRatio*a;return b},getMaxZoom:function(){var a=this.maxZoomLevel;if(!a){a=this._contentSize.x*this.maxZoomPixelRatio/this._containerInnerSize.x;a/=this._contentBounds.width}return Math.max(a,this.getHomeZoom())},getAspectRatio:function(){return this._containerInnerSize.x/this._containerInnerSize.y},getContainerSize:function(){return new a.Point(this.containerSize.x,this.containerSize.y)},getMargins:function(){return a.extend({},this._margins)},setMargins:function(b){a.console.assert("object"===a.type(b),"[Viewport.setMargins] margins must be an object");this._margins=a.extend({left:0,top:0,right:0,bottom:0},b);this._updateContainerInnerSize();this.viewer&&this.viewer.forceRedraw()},getBounds:function(a){return this.getBoundsNoRotate(a).rotate(-this.getRotation())},getBoundsNoRotate:function(b){var c=this.getCenter(b);var d=1/this.getZoom(b);var e=d/this.getAspectRatio();return new a.Rect(c.x-d/2,c.y-e/2,d,e)},getBoundsWithMargins:function(a){return this.getBoundsNoRotateWithMargins(a).rotate(-this.getRotation(),this.getCenter(a))},getBoundsNoRotateWithMargins:function(a){var b=this.getBoundsNoRotate(a);var c=this._containerInnerSize.x*this.getZoom(a);b.x-=this._margins.left/c;b.y-=this._margins.top/c;b.width+=(this._margins.left+this._margins.right)/c;b.height+=(this._margins.top+this._margins.bottom)/c;return b},getCenter:function(b){var c,d,e,f,g,h,i,j,k=new a.Point(this.centerSpringX.current.value,this.centerSpringY.current.value),l=new a.Point(this.centerSpringX.target.value,this.centerSpringY.target.value);if(b)return k;if(!this.zoomPoint)return l;c=this.pixelFromPoint(this.zoomPoint,!0);d=this.getZoom();e=1/d;f=e/this.getAspectRatio();g=new a.Rect(k.x-e/2,k.y-f/2,e,f);h=this._pixelFromPoint(this.zoomPoint,g);i=h.minus(c);j=i.divide(this._containerInnerSize.x*d);return l.plus(j)},getZoom:function(a){return a?this.zoomSpring.current.value:this.zoomSpring.target.value},_applyZoomConstraints:function(a){return Math.max(Math.min(a,this.getMaxZoom()),this.getMinZoom())},_applyBoundaryConstraints:function(b,c){var d=new a.Rect(b.x,b.y,b.width,b.height);var e=this.visibilityRatio*d.width;var f=this.visibilityRatio*d.height;if(this.wrapHorizontal);else{var g=0;var h=d.x+(d.width-e);this._contentBoundsNoRotate.x>h&&(g=this._contentBoundsNoRotate.x-h);var i=this._contentBoundsNoRotate.x+this._contentBoundsNoRotate.width;var j=d.x+e;if(j>i){var k=i-j;g=g?(g+k)/2:k}d.x+=g}if(this.wrapVertical);else{var l=0;var m=d.y+(d.height-f);this._contentBoundsNoRotate.y>m&&(l=this._contentBoundsNoRotate.y-m);var n=this._contentBoundsNoRotate.y+this._contentBoundsNoRotate.height;var o=d.y+f;if(o>n){var p=n-o;l=l?(l+p)/2:p}d.y+=l}this.viewer&&this.viewer.raiseEvent("constrain",{immediately:c});return d},applyConstraints:function(a){var b=this.getZoom();var c=this._applyZoomConstraints(b);b!==c&&this.zoomTo(c,this.zoomPoint,a);var d=this.getBoundsNoRotate();var e=this._applyBoundaryConstraints(d,a);(d.x!==e.x||d.y!==e.y||a)&&this.fitBounds(e.rotate(-this.getRotation()),a);return this},ensureVisible:function(a){return this.applyConstraints(a)},_fitBounds:function(b,c){c=c||{};var d=c.immediately||!1;var e=c.constraints||!1;var f=this.getAspectRatio();var g=b.getCenter();var h=new a.Rect(b.x,b.y,b.width,b.height,b.degrees+this.getRotation()).getBoundingBox();h.getAspectRatio()>=f?h.height=h.width/f:h.width=h.height*f;h.x=g.x-h.width/2;h.y=g.y-h.height/2;var i=1/h.width;if(e){var j=h.getAspectRatio();var k=this._applyZoomConstraints(i);if(i!==k){i=k;h.width=1/i;h.x=g.x-h.width/2;h.height=h.width/j;h.y=g.y-h.height/2}h=this._applyBoundaryConstraints(h,d);g=h.getCenter()}if(d){this.panTo(g,!0);return this.zoomTo(i,null,!0)}this.panTo(this.getCenter(!0),!0);this.zoomTo(this.getZoom(!0),null,!0);var l=this.getBounds();var m=this.getZoom();if(0===m||Math.abs(i/m-1)<1e-8){this.zoomTo(i,!0);return this.panTo(g,d)}h=h.rotate(-this.getRotation());var n=h.getTopLeft().times(i).minus(l.getTopLeft().times(m)).divide(i-m);return this.zoomTo(i,n,d)},fitBounds:function(a,b){return this._fitBounds(a,{immediately:b,constraints:!1})},fitBoundsWithConstraints:function(a,b){return this._fitBounds(a,{immediately:b,constraints:!0})},fitVertically:function(b){var c=new a.Rect(this._contentBounds.x+this._contentBounds.width/2,this._contentBounds.y,0,this._contentBounds.height);return this.fitBounds(c,b)},fitHorizontally:function(b){var c=new a.Rect(this._contentBounds.x,this._contentBounds.y+this._contentBounds.height/2,this._contentBounds.width,0);return this.fitBounds(c,b)},panBy:function(b,c){var d=new a.Point(this.centerSpringX.target.value,this.centerSpringY.target.value);return this.panTo(d.plus(b),c)},panTo:function(a,b){if(b){this.centerSpringX.resetTo(a.x);this.centerSpringY.resetTo(a.y)}else{this.centerSpringX.springTo(a.x);this.centerSpringY.springTo(a.y)}this.viewer&&this.viewer.raiseEvent("pan",{center:a,immediately:b});return this},zoomBy:function(a,b,c){return this.zoomTo(this.zoomSpring.target.value*a,b,c)},zoomTo:function(b,c,d){this.zoomPoint=c instanceof a.Point&&!isNaN(c.x)&&!isNaN(c.y)?c:null;d?this.zoomSpring.resetTo(b):this.zoomSpring.springTo(b);this.viewer&&this.viewer.raiseEvent("zoom",{zoom:b,refPoint:c,immediately:d});return this},setRotation:function(a){if(!this.viewer||!this.viewer.drawer.canRotate())return this;a%=360;0>a&&(a+=360);this.degrees=a;this._setContentBounds(this.viewer.world.getHomeBounds(),this.viewer.world.getContentFactor());this.viewer.forceRedraw();this.viewer.raiseEvent("rotate",{degrees:a});return this},getRotation:function(){return this.degrees},resize:function(a,b){var c,d=this.getBoundsNoRotate(),e=d;this.containerSize.x=a.x;this.containerSize.y=a.y;this._updateContainerInnerSize();if(b){c=a.x/this.containerSize.x;e.width=d.width*c;e.height=e.width/this.getAspectRatio()}this.viewer&&this.viewer.raiseEvent("resize",{newContainerSize:a,maintain:b});return this.fitBounds(e,!0)},_updateContainerInnerSize:function(){this._containerInnerSize=new a.Point(Math.max(1,this.containerSize.x-(this._margins.left+this._margins.right)),Math.max(1,this.containerSize.y-(this._margins.top+this._margins.bottom)))},update:function(){if(this.zoomPoint){var a=this.pixelFromPoint(this.zoomPoint,!0);this.zoomSpring.update();var b=this.pixelFromPoint(this.zoomPoint,!0);var c=b.minus(a);var d=this.deltaPointsFromPixels(c,!0);this.centerSpringX.shiftBy(d.x);this.centerSpringY.shiftBy(d.y);this.zoomSpring.isAtTargetValue()&&(this.zoomPoint=null)}else this.zoomSpring.update();this.centerSpringX.update();this.centerSpringY.update();var e=this.centerSpringX.current.value!==this._oldCenterX||this.centerSpringY.current.value!==this._oldCenterY||this.zoomSpring.current.value!==this._oldZoom;this._oldCenterX=this.centerSpringX.current.value;this._oldCenterY=this.centerSpringY.current.value;this._oldZoom=this.zoomSpring.current.value;return e},deltaPixelsFromPointsNoRotate:function(a,b){return a.times(this._containerInnerSize.x*this.getZoom(b))},deltaPixelsFromPoints:function(a,b){return this.deltaPixelsFromPointsNoRotate(a.rotate(this.getRotation()),b)},deltaPointsFromPixelsNoRotate:function(a,b){return a.divide(this._containerInnerSize.x*this.getZoom(b))},deltaPointsFromPixels:function(a,b){return this.deltaPointsFromPixelsNoRotate(a,b).rotate(-this.getRotation())},pixelFromPointNoRotate:function(a,b){return this._pixelFromPointNoRotate(a,this.getBoundsNoRotate(b))},pixelFromPoint:function(a,b){return this._pixelFromPoint(a,this.getBoundsNoRotate(b))},_pixelFromPointNoRotate:function(b,c){return b.minus(c.getTopLeft()).times(this._containerInnerSize.x/c.width).plus(new a.Point(this._margins.left,this._margins.top))},_pixelFromPoint:function(a,b){return this._pixelFromPointNoRotate(a.rotate(this.getRotation(),this.getCenter(!0)),b)},pointFromPixelNoRotate:function(b,c){var d=this.getBoundsNoRotate(c);return b.minus(new a.Point(this._margins.left,this._margins.top)).divide(this._containerInnerSize.x/d.width).plus(d.getTopLeft())},pointFromPixel:function(a,b){return this.pointFromPixelNoRotate(a,b).rotate(-this.getRotation(),this.getCenter(!0))},_viewportToImageDelta:function(b,c){var d=this._contentBoundsNoRotate.width;return new a.Point(b*this._contentSizeNoRotate.x/d,c*this._contentSizeNoRotate.x/d)},viewportToImageCoordinates:function(b,c){if(b instanceof a.Point)return this.viewportToImageCoordinates(b.x,b.y);if(this.viewer){var d=this.viewer.world.getItemCount();if(d>1)a.console.error("[Viewport.viewportToImageCoordinates] is not accurate with multi-image; use TiledImage.viewportToImageCoordinates instead.");else if(1===d){var e=this.viewer.world.getItemAt(0);return e.viewportToImageCoordinates(b,c,!0)}}return this._viewportToImageDelta(b-this._contentBoundsNoRotate.x,c-this._contentBoundsNoRotate.y)},_imageToViewportDelta:function(b,c){var d=this._contentBoundsNoRotate.width;return new a.Point(b/this._contentSizeNoRotate.x*d,c/this._contentSizeNoRotate.x*d)},imageToViewportCoordinates:function(b,c){if(b instanceof a.Point)return this.imageToViewportCoordinates(b.x,b.y);if(this.viewer){var d=this.viewer.world.getItemCount();if(d>1)a.console.error("[Viewport.imageToViewportCoordinates] is not accurate with multi-image; use TiledImage.imageToViewportCoordinates instead.");else if(1===d){var e=this.viewer.world.getItemAt(0);return e.imageToViewportCoordinates(b,c,!0)}}var f=this._imageToViewportDelta(b,c);f.x+=this._contentBoundsNoRotate.x;f.y+=this._contentBoundsNoRotate.y;return f},imageToViewportRectangle:function(b,c,d,e){var f=b;f instanceof a.Rect||(f=new a.Rect(b,c,d,e));if(this.viewer){var g=this.viewer.world.getItemCount();if(g>1)a.console.error("[Viewport.imageToViewportRectangle] is not accurate with multi-image; use TiledImage.imageToViewportRectangle instead.");else if(1===g){var h=this.viewer.world.getItemAt(0);return h.imageToViewportRectangle(b,c,d,e,!0)}}var i=this.imageToViewportCoordinates(f.x,f.y);var j=this._imageToViewportDelta(f.width,f.height);return new a.Rect(i.x,i.y,j.x,j.y,f.degrees)},viewportToImageRectangle:function(b,c,d,e){var f=b;f instanceof a.Rect||(f=new a.Rect(b,c,d,e));if(this.viewer){var g=this.viewer.world.getItemCount();if(g>1)a.console.error("[Viewport.viewportToImageRectangle] is not accurate with multi-image; use TiledImage.viewportToImageRectangle instead.");else if(1===g){var h=this.viewer.world.getItemAt(0);return h.viewportToImageRectangle(b,c,d,e,!0)}}var i=this.viewportToImageCoordinates(f.x,f.y);var j=this._viewportToImageDelta(f.width,f.height);return new a.Rect(i.x,i.y,j.x,j.y,f.degrees)},viewerElementToImageCoordinates:function(a){var b=this.pointFromPixel(a,!0);return this.viewportToImageCoordinates(b)},imageToViewerElementCoordinates:function(a){var b=this.imageToViewportCoordinates(a);return this.pixelFromPoint(b,!0)},windowToImageCoordinates:function(b){a.console.assert(this.viewer,"[Viewport.windowToImageCoordinates] the viewport must have a viewer.");var c=b.minus(a.getElementPosition(this.viewer.element));return this.viewerElementToImageCoordinates(c)},imageToWindowCoordinates:function(b){a.console.assert(this.viewer,"[Viewport.imageToWindowCoordinates] the viewport must have a viewer.");var c=this.imageToViewerElementCoordinates(b);return c.plus(a.getElementPosition(this.viewer.element))},viewerElementToViewportCoordinates:function(a){return this.pointFromPixel(a,!0)},viewportToViewerElementCoordinates:function(a){return this.pixelFromPoint(a,!0)},viewerElementToViewportRectangle:function(b){return a.Rect.fromSummits(this.pointFromPixel(b.getTopLeft(),!0),this.pointFromPixel(b.getTopRight(),!0),this.pointFromPixel(b.getBottomLeft(),!0))},viewportToViewerElementRectangle:function(b){return a.Rect.fromSummits(this.pixelFromPoint(b.getTopLeft(),!0),this.pixelFromPoint(b.getTopRight(),!0),this.pixelFromPoint(b.getBottomLeft(),!0))},windowToViewportCoordinates:function(b){a.console.assert(this.viewer,"[Viewport.windowToViewportCoordinates] the viewport must have a viewer.");var c=b.minus(a.getElementPosition(this.viewer.element));return this.viewerElementToViewportCoordinates(c)},viewportToWindowCoordinates:function(b){a.console.assert(this.viewer,"[Viewport.viewportToWindowCoordinates] the viewport must have a viewer.");var c=this.viewportToViewerElementCoordinates(b);return c.plus(a.getElementPosition(this.viewer.element))},viewportToImageZoom:function(b){if(this.viewer){var c=this.viewer.world.getItemCount();if(c>1)a.console.error("[Viewport.viewportToImageZoom] is not accurate with multi-image.");else if(1===c){var d=this.viewer.world.getItemAt(0);return d.viewportToImageZoom(b)}}var e=this._contentSizeNoRotate.x;var f=this._containerInnerSize.x;var g=this._contentBoundsNoRotate.width;var h=f/e*g;return b*h},imageToViewportZoom:function(b){if(this.viewer){var c=this.viewer.world.getItemCount();if(c>1)a.console.error("[Viewport.imageToViewportZoom] is not accurate with multi-image.");else if(1===c){var d=this.viewer.world.getItemAt(0);return d.imageToViewportZoom(b)}}var e=this._contentSizeNoRotate.x;var f=this._containerInnerSize.x;var g=this._contentBoundsNoRotate.width;var h=e/f/g;return b*h}}}(OpenSeadragon);!function(a){function b(b){b._needsDraw=!1;var d,e,g,h,i,j,l,m,n=null,o=!1,q=a.now(),r=b.viewport.getBoundsWithMargins(!0),s=b.viewport.deltaPixelsFromPointsNoRotate(b.source.getPixelRatio(0),!0).x*b._scaleSpring.current.value,t=Math.max(b.source.minLevel,Math.floor(Math.log(b.minZoomImageRatio)/Math.log(2))),u=Math.min(Math.abs(b.source.maxLevel),Math.abs(Math.floor(Math.log(s/b.minPixelRatio)/Math.log(2))));for(;b.lastDrawn.length>0;){d=b.lastDrawn.pop();d.beingDrawn=!1}if(!b.wrapHorizontal&&!b.wrapVertical){var v=b.getClippedBounds(!0);var w=r.intersection(v);if(null===w)return;r=w}r=r.getBoundingBox();r.x-=b._xSpring.current.value;r.y-=b._ySpring.current.value;var x=r.getTopLeft();var y=r.getBottomRight();if((b.wrapHorizontal||!(y.x<0||x.x>b._worldWidthCurrent))&&(b.wrapVertical||!(y.y<0||x.y>b._worldHeightCurrent))){if(!b.wrapHorizontal){x.x=Math.max(x.x,0);y.x=Math.min(y.x,b._worldWidthCurrent)}if(!b.wrapVertical){x.y=Math.max(x.y,0);y.y=Math.min(y.y,b._worldHeightCurrent)}t=Math.min(t,u);var z;for(e=u;e>=t;e--){z=!1;g=b.viewport.deltaPixelsFromPointsNoRotate(b.source.getPixelRatio(e),!0).x*b._scaleSpring.current.value;if(!o&&g>=b.minPixelRatio||e==t){z=!0;o=!0}else if(!o)continue;h=b.viewport.deltaPixelsFromPointsNoRotate(b.source.getPixelRatio(e),!1).x*b._scaleSpring.current.value;i=b.viewport.deltaPixelsFromPointsNoRotate(b.source.getPixelRatio(Math.max(b.source.getClosestLevel(b.viewport.containerSize)-1,0)),!1).x*b._scaleSpring.current.value;j=b.immediateRender?1:i;l=Math.min(1,(g-.5)/.5);m=j/Math.abs(j-h);n=c(b,o,z,e,l,m,x,y,q,n);if(k(b.coverage,e))break}p(b,b.lastDrawn);n&&!n.context2D&&f(b,n,q)}}function c(a,b,c,e,f,g,h,i,j,k){var l,m,o,p,q,r=a.viewport.pixelFromPoint(a.viewport.getCenter());a.viewer&&a.viewer.raiseEvent("update-level",{tiledImage:a,havedrawn:b,level:e,opacity:f,visibility:g,topleft:h,bottomright:i,currenttime:j,best:k});o=a.source.getTileAtPoint(e,h.divide(a._scaleSpring.current.value));p=a.source.getTileAtPoint(e,i.divide(a._scaleSpring.current.value));q=a.source.getNumTiles(e);n(a.coverage,e);a.wrapHorizontal||(p.x=Math.min(p.x,q.x-1));a.wrapVertical||(p.y=Math.min(p.y,q.y-1));for(l=o.x;l<=p.x;l++)for(m=o.y;m<=p.y;m++)k=d(a,c,b,l,m,e,f,g,r,q,j,k);return k}function d(a,b,c,d,f,g,k,n,p,q,r,s){var t=e(d,f,g,a.source,a.tilesMatrix,r,q,a._worldWidthCurrent,a._worldHeightCurrent),u=b;a.viewer&&a.viewer.raiseEvent("update-tile",{tiledImage:a,tile:t});m(a.coverage,g,d,f,!1);if(!t.exists)return s;c&&!u&&(l(a.coverage,g,d,f)?m(a.coverage,g,d,f,!0):u=!0);if(!u)return s;i(t,a.source.tileOverlap,a.viewport,p,n,a);if(!t.loaded)if(t.context2D)h(a,t);else{var v=a._tileCache.getImageRecord(t.url);if(v){var w=v.getImage();h(a,t,w)}}if(t.loaded){var x=j(a,t,d,f,g,k,r);x&&(a._needsDraw=!0)}else t.loading||(s=o(s,t));return s}function e(b,c,d,e,f,g,h,i,j){var k,l,m,n,o,p,q;f[d]||(f[d]={});f[d][b]||(f[d][b]={});if(!f[d][b][c]){k=(h.x+b%h.x)%h.x;l=(h.y+c%h.y)%h.y;m=e.getTileBounds(d,k,l);n=e.tileExists(d,k,l);o=e.getTileUrl(d,k,l);p=e.getContext2D?e.getContext2D(d,k,l):void 0;m.x+=(b-k)/h.x;m.y+=j/i*((c-l)/h.y);f[d][b][c]=new a.Tile(d,b,c,m,n,o,p)}q=f[d][b][c];q.lastTouchTime=g;return q}function f(a,b,c){b.loading=!0;a._imageLoader.addJob({src:b.url,crossOriginPolicy:a.crossOriginPolicy,callback:function(d,e){g(a,b,c,d,e)},abort:function(){b.loading=!1}})}function g(b,c,d,e,f){if(e)if(d<b.lastResetTime){a.console.log("Ignoring tile %s loaded before reset: %s",c,c.url);c.loading=!1}else{var g=function(){var a=Math.ceil(Math.log(b.source.getTileWidth(c.level))/Math.log(2));h(b,c,e,a)};b._midDraw?window.setTimeout(g,1):g()}else{a.console.log("Tile %s failed to load: %s - error: %s",c,c.url,f);b.viewer.raiseEvent("tile-load-failed",{tile:c,tiledImage:b,time:d,message:f});c.loading=!1;c.exists=!1}}function h(a,b,c,d){function e(){g++;return f}function f(){g--;if(0===g){b.loading=!1;b.loaded=!0;b.context2D||a._tileCache.cacheTile({image:c,tile:b,cutoff:d,tiledImage:a});a._needsDraw=!0}}var g=0;a.viewer.raiseEvent("tile-loaded",{tile:b,tiledImage:a,image:c,getCompletionCallback:e});e()()}function i(b,c,d,e,f,g){var h=b.bounds.getTopLeft();h.x*=g._scaleSpring.current.value;h.y*=g._scaleSpring.current.value;h.x+=g._xSpring.current.value;h.y+=g._ySpring.current.value;var i=b.bounds.getSize();i.x*=g._scaleSpring.current.value;i.y*=g._scaleSpring.current.value;var j=d.pixelFromPointNoRotate(h,!0),k=d.pixelFromPointNoRotate(h,!1),l=d.deltaPixelsFromPointsNoRotate(i,!0),m=d.deltaPixelsFromPointsNoRotate(i,!1),n=k.plus(m.divide(2)),o=e.distanceTo(n);c||(l=l.plus(new a.Point(1,1)));b.position=j;b.size=l;b.distance=o;b.visibility=f}function j(a,b,c,d,e,f,g){var h,i,j=1e3*a.blendTime;b.blendStart||(b.blendStart=g);h=g-b.blendStart;i=j?Math.min(1,h/j):1;a.alwaysBlend&&(i*=f);b.opacity=i;a.lastDrawn.push(b);if(1==i){m(a.coverage,e,c,d,!0);a._hasOpaqueTile=!0}else if(j>h)return!0;return!1}function k(a,b,c,d){var e,f,g,h;if(!a[b])return!1;if(void 0===c||void 0===d){e=a[b];for(g in e)if(e.hasOwnProperty(g)){f=e[g];for(h in f)if(f.hasOwnProperty(h)&&!f[h])return!1}return!0}return void 0===a[b][c]||void 0===a[b][c][d]||a[b][c][d]===!0}function l(a,b,c,d){return void 0===c||void 0===d?k(a,b+1):k(a,b+1,2*c,2*d)&&k(a,b+1,2*c,2*d+1)&&k(a,b+1,2*c+1,2*d)&&k(a,b+1,2*c+1,2*d+1)}function m(b,c,d,e,f){if(b[c]){b[c][d]||(b[c][d]={});b[c][d][e]=f}else a.console.warn("Setting coverage for a tile before its level's coverage has been reset: %s",c)}function n(a,b){a[b]={}}function o(a,b){return a?b.visibility>a.visibility?b:b.visibility==a.visibility&&b.distance<a.distance?b:a:b}function p(b,c){if(0!==c.length){var d=c[0];var e=b.opacity<1||b.compositeOperation&&"source-over"!==b.compositeOperation||!b._isBottomItem()&&d._hasTransparencyChannel();var f;var g;var h=b.viewport.getZoom(!0);var i=b.viewportToImageZoom(h);if(i>b.smoothTileEdgesMinZoom){e=!0;f=d.getScaleForEdgeSmoothing();g=d.getTranslationForEdgeSmoothing(f,b._drawer.getCanvasSize(!1),b._drawer.getCanvasSize(!0))}var j;if(e){f||(j=b.viewport.viewportToViewerElementRectangle(b.getClippedBounds(!0)).getIntegerBoundingBox().times(a.pixelDensityRatio));b._drawer._clear(!0,j)}0===b.viewport.degrees||f||b._drawer._offsetForRotation(b.viewport.degrees,e);var k=!1;if(b._clip){b._drawer.saveContext(e);var l=b.imageToViewportRectangle(b._clip,!0);var m=b._drawer.viewportToDrawerRectangle(l);f&&(m=m.times(f));g&&(m=m.translate(g));b._drawer.setClip(m,e);k=!0}if(b.placeholderFillStyle&&b._hasOpaqueTile===!1){var n=b._drawer.viewportToDrawerRectangle(b.getBounds(!0));f&&(n=n.times(f));g&&(n=n.translate(g));var o=null;o="function"==typeof b.placeholderFillStyle?b.placeholderFillStyle(b,b._drawer.context):b.placeholderFillStyle;b._drawer.drawRectangle(n,o,e)}for(var p=c.length-1;p>=0;p--){d=c[p];b._drawer.drawTile(d,b._drawingHandler,e,f,g);d.beingDrawn=!0;b.viewer&&b.viewer.raiseEvent("tile-drawn",{tiledImage:b,tile:d})}k&&b._drawer.restoreContext(e);0===b.viewport.degrees||f||b._drawer._restoreRotationChanges(e);if(e){var r=0!==b.viewport.degrees&&f;r&&b._drawer._offsetForRotation(b.viewport.degrees,!1);b._drawer.blendSketch({opacity:b.opacity,scale:f,translate:g,compositeOperation:b.compositeOperation,bounds:j});r&&b._drawer._restoreRotationChanges(!1)}q(b,c)}}function q(b,c){if(b.debugMode)for(var d=c.length-1;d>=0;d--){var e=c[d];try{b._drawer.drawDebugInfo(e,c.length,d)}catch(f){a.console.error(f)}}}a.TiledImage=function(b){var c=this;a.console.assert(b.tileCache,"[TiledImage] options.tileCache is required");a.console.assert(b.drawer,"[TiledImage] options.drawer is required");a.console.assert(b.viewer,"[TiledImage] options.viewer is required");a.console.assert(b.imageLoader,"[TiledImage] options.imageLoader is required");a.console.assert(b.source,"[TiledImage] options.source is required");a.console.assert(!b.clip||b.clip instanceof a.Rect,"[TiledImage] options.clip must be an OpenSeadragon.Rect if present");a.EventSource.call(this);this._tileCache=b.tileCache;delete b.tileCache;this._drawer=b.drawer;delete b.drawer;this._imageLoader=b.imageLoader;delete b.imageLoader;b.clip instanceof a.Rect&&(this._clip=b.clip.clone());delete b.clip;var d=b.x||0;delete b.x;var e=b.y||0;delete b.y;this.normHeight=b.source.dimensions.y/b.source.dimensions.x;this.contentAspectX=b.source.dimensions.x/b.source.dimensions.y;var f=1;if(b.width){f=b.width;delete b.width;if(b.height){a.console.error("specifying both width and height to a tiledImage is not supported");delete b.height}}else if(b.height){f=b.height/this.normHeight;delete b.height}var g=b.fitBounds;delete b.fitBounds;var h=b.fitBoundsPlacement||OpenSeadragon.Placement.CENTER;delete b.fitBoundsPlacement;a.extend(!0,this,{viewer:null,tilesMatrix:{},coverage:{},lastDrawn:[],lastResetTime:0,_midDraw:!1,_needsDraw:!0,_hasOpaqueTile:!1,springStiffness:a.DEFAULT_SETTINGS.springStiffness,animationTime:a.DEFAULT_SETTINGS.animationTime,minZoomImageRatio:a.DEFAULT_SETTINGS.minZoomImageRatio,wrapHorizontal:a.DEFAULT_SETTINGS.wrapHorizontal,wrapVertical:a.DEFAULT_SETTINGS.wrapVertical,immediateRender:a.DEFAULT_SETTINGS.immediateRender,blendTime:a.DEFAULT_SETTINGS.blendTime,alwaysBlend:a.DEFAULT_SETTINGS.alwaysBlend,minPixelRatio:a.DEFAULT_SETTINGS.minPixelRatio,smoothTileEdgesMinZoom:a.DEFAULT_SETTINGS.smoothTileEdgesMinZoom,debugMode:a.DEFAULT_SETTINGS.debugMode,crossOriginPolicy:a.DEFAULT_SETTINGS.crossOriginPolicy,placeholderFillStyle:a.DEFAULT_SETTINGS.placeholderFillStyle,opacity:a.DEFAULT_SETTINGS.opacity,compositeOperation:a.DEFAULT_SETTINGS.compositeOperation},b);this._xSpring=new a.Spring({initial:d,springStiffness:this.springStiffness,animationTime:this.animationTime});this._ySpring=new a.Spring({initial:e,springStiffness:this.springStiffness,animationTime:this.animationTime});this._scaleSpring=new a.Spring({initial:f,springStiffness:this.springStiffness,animationTime:this.animationTime});this._updateForScale();g&&this.fitBounds(g,h,!0);this._drawingHandler=function(b){c.viewer.raiseEvent("tile-drawing",a.extend({tiledImage:c},b))}};a.extend(a.TiledImage.prototype,a.EventSource.prototype,{needsDraw:function(){return this._needsDraw},reset:function(){this._tileCache.clearTilesFor(this);this.lastResetTime=a.now();this._needsDraw=!0},update:function(){var a=this._xSpring.current.value;var b=this._ySpring.current.value;var c=this._scaleSpring.current.value;this._xSpring.update();this._ySpring.update();this._scaleSpring.update();if(this._xSpring.current.value!==a||this._ySpring.current.value!==b||this._scaleSpring.current.value!==c){ 14 this._updateForScale();this._needsDraw=!0;return!0}return!1},draw:function(){if(0!==this.opacity){this._midDraw=!0;b(this);this._midDraw=!1}},destroy:function(){this.reset()},getBounds:function(b){return b?new a.Rect(this._xSpring.current.value,this._ySpring.current.value,this._worldWidthCurrent,this._worldHeightCurrent):new a.Rect(this._xSpring.target.value,this._ySpring.target.value,this._worldWidthTarget,this._worldHeightTarget)},getWorldBounds:function(){a.console.error("[TiledImage.getWorldBounds] is deprecated; use TiledImage.getBounds instead");return this.getBounds()},getClippedBounds:function(b){var c=this.getBounds(b);if(this._clip){var d=this._worldWidthCurrent/this.source.dimensions.x;var e=this._clip.times(d);c=new a.Rect(c.x+e.x,c.y+e.y,e.width,e.height)}return c},getContentSize:function(){return new a.Point(this.source.dimensions.x,this.source.dimensions.y)},_viewportToImageDelta:function(b,c,d){var e=d?this._scaleSpring.current.value:this._scaleSpring.target.value;return new a.Point(b*(this.source.dimensions.x/e),c*(this.source.dimensions.y*this.contentAspectX/e))},viewportToImageCoordinates:function(b,c,d){if(b instanceof a.Point){d=c;c=b.y;b=b.x}return d?this._viewportToImageDelta(b-this._xSpring.current.value,c-this._ySpring.current.value):this._viewportToImageDelta(b-this._xSpring.target.value,c-this._ySpring.target.value)},_imageToViewportDelta:function(b,c,d){var e=d?this._scaleSpring.current.value:this._scaleSpring.target.value;return new a.Point(b/this.source.dimensions.x*e,c/this.source.dimensions.y/this.contentAspectX*e)},imageToViewportCoordinates:function(b,c,d){if(b instanceof a.Point){d=c;c=b.y;b=b.x}var e=this._imageToViewportDelta(b,c);if(d){e.x+=this._xSpring.current.value;e.y+=this._ySpring.current.value}else{e.x+=this._xSpring.target.value;e.y+=this._ySpring.target.value}return e},imageToViewportRectangle:function(b,c,d,e,f){var g=b;g instanceof a.Rect?f=c:g=new a.Rect(b,c,d,e);var h=this.imageToViewportCoordinates(g.getTopLeft(),f);var i=this._imageToViewportDelta(g.width,g.height,f);return new a.Rect(h.x,h.y,i.x,i.y,g.degrees)},viewportToImageRectangle:function(b,c,d,e,f){var g=b;b instanceof a.Rect?f=c:g=new a.Rect(b,c,d,e);var h=this.viewportToImageCoordinates(g.getTopLeft(),f);var i=this._viewportToImageDelta(g.width,g.height,f);return new a.Rect(h.x,h.y,i.x,i.y,g.degrees)},viewerElementToImageCoordinates:function(a){var b=this.viewport.pointFromPixel(a,!0);return this.viewportToImageCoordinates(b)},imageToViewerElementCoordinates:function(a){var b=this.imageToViewportCoordinates(a);return this.viewport.pixelFromPoint(b,!0)},windowToImageCoordinates:function(a){var b=a.minus(OpenSeadragon.getElementPosition(this.viewer.element));return this.viewerElementToImageCoordinates(b)},imageToWindowCoordinates:function(a){var b=this.imageToViewerElementCoordinates(a);return b.plus(OpenSeadragon.getElementPosition(this.viewer.element))},viewportToImageZoom:function(a){var b=this._scaleSpring.current.value*this.viewport._containerInnerSize.x/this.source.dimensions.x;return b*a},imageToViewportZoom:function(a){var b=this._scaleSpring.current.value*this.viewport._containerInnerSize.x/this.source.dimensions.x;return a/b},setPosition:function(a,b){var c=this._xSpring.target.value===a.x&&this._ySpring.target.value===a.y;if(b){if(c&&this._xSpring.current.value===a.x&&this._ySpring.current.value===a.y)return;this._xSpring.resetTo(a.x);this._ySpring.resetTo(a.y);this._needsDraw=!0}else{if(c)return;this._xSpring.springTo(a.x);this._ySpring.springTo(a.y);this._needsDraw=!0}c||this._raiseBoundsChange()},setWidth:function(a,b){this._setScale(a,b)},setHeight:function(a,b){this._setScale(a/this.normHeight,b)},fitBounds:function(b,c,d){c=c||a.Placement.CENTER;var e=a.Placement.properties[c];var f=this.contentAspectX;var g=0;var h=0;var i=1;var j=1;if(this._clip){f=this._clip.getAspectRatio();i=this._clip.width/this.source.dimensions.x;j=this._clip.height/this.source.dimensions.y;if(b.getAspectRatio()>f){g=this._clip.x/this._clip.height*b.height;h=this._clip.y/this._clip.height*b.height}else{g=this._clip.x/this._clip.width*b.width;h=this._clip.y/this._clip.width*b.width}}if(b.getAspectRatio()>f){var k=b.height/j;var l=0;e.isHorizontallyCentered?l=(b.width-b.height*f)/2:e.isRight&&(l=b.width-b.height*f);this.setPosition(new a.Point(b.x-g+l,b.y-h),d);this.setHeight(k,d)}else{var m=b.width/i;var n=0;e.isVerticallyCentered?n=(b.height-b.width/f)/2:e.isBottom&&(n=b.height-b.width/f);this.setPosition(new a.Point(b.x-g,b.y-h+n),d);this.setWidth(m,d)}},getClip:function(){return this._clip?this._clip.clone():null},setClip:function(b){a.console.assert(!b||b instanceof a.Rect,"[TiledImage.setClip] newClip must be an OpenSeadragon.Rect or null");b instanceof a.Rect?this._clip=b.clone():this._clip=null;this._needsDraw=!0},getOpacity:function(){return this.opacity},setOpacity:function(a){this.opacity=a;this._needsDraw=!0},getCompositeOperation:function(){return this.compositeOperation},setCompositeOperation:function(a){this.compositeOperation=a;this._needsDraw=!0},_setScale:function(a,b){var c=this._scaleSpring.target.value===a;if(b){if(c&&this._scaleSpring.current.value===a)return;this._scaleSpring.resetTo(a);this._updateForScale();this._needsDraw=!0}else{if(c)return;this._scaleSpring.springTo(a);this._updateForScale();this._needsDraw=!0}c||this._raiseBoundsChange()},_updateForScale:function(){this._worldWidthTarget=this._scaleSpring.target.value;this._worldHeightTarget=this.normHeight*this._scaleSpring.target.value;this._worldWidthCurrent=this._scaleSpring.current.value;this._worldHeightCurrent=this.normHeight*this._scaleSpring.current.value},_raiseBoundsChange:function(){this.raiseEvent("bounds-change")},_isBottomItem:function(){return this.viewer.world.getItemAt(0)===this}})}(OpenSeadragon);!function(a){var b=function(b){a.console.assert(b,"[TileCache.cacheTile] options is required");a.console.assert(b.tile,"[TileCache.cacheTile] options.tile is required");a.console.assert(b.tiledImage,"[TileCache.cacheTile] options.tiledImage is required");this.tile=b.tile;this.tiledImage=b.tiledImage};var c=function(b){a.console.assert(b,"[ImageRecord] options is required");a.console.assert(b.image,"[ImageRecord] options.image is required");this._image=b.image;this._tiles=[]};c.prototype={destroy:function(){this._image=null;this._renderedContext=null;this._tiles=null},getImage:function(){return this._image},getRenderedContext:function(){if(!this._renderedContext){var a=document.createElement("canvas");a.width=this._image.width;a.height=this._image.height;this._renderedContext=a.getContext("2d");this._renderedContext.drawImage(this._image,0,0);this._image=null}return this._renderedContext},setRenderedContext:function(b){a.console.error("ImageRecord.setRenderedContext is deprecated. The rendered context should be created by the ImageRecord itself when calling ImageRecord.getRenderedContext.");this._renderedContext=b},addTile:function(b){a.console.assert(b,"[ImageRecord.addTile] tile is required");this._tiles.push(b)},removeTile:function(b){for(var c=0;c<this._tiles.length;c++)if(this._tiles[c]===b){this._tiles.splice(c,1);return}a.console.warn("[ImageRecord.removeTile] trying to remove unknown tile",b)},getTileCount:function(){return this._tiles.length}};a.TileCache=function(b){b=b||{};this._maxImageCacheCount=b.maxImageCacheCount||a.DEFAULT_SETTINGS.maxImageCacheCount;this._tilesLoaded=[];this._imagesLoaded=[];this._imagesLoadedCount=0};a.TileCache.prototype={numTilesLoaded:function(){return this._tilesLoaded.length},cacheTile:function(d){a.console.assert(d,"[TileCache.cacheTile] options is required");a.console.assert(d.tile,"[TileCache.cacheTile] options.tile is required");a.console.assert(d.tile.url,"[TileCache.cacheTile] options.tile.url is required");a.console.assert(d.tiledImage,"[TileCache.cacheTile] options.tiledImage is required");var e=d.cutoff||0;var f=this._tilesLoaded.length;var g=this._imagesLoaded[d.tile.url];if(!g){a.console.assert(d.image,"[TileCache.cacheTile] options.image is required to create an ImageRecord");g=this._imagesLoaded[d.tile.url]=new c({image:d.image});this._imagesLoadedCount++}g.addTile(d.tile);d.tile.cacheImageRecord=g;if(this._imagesLoadedCount>this._maxImageCacheCount){var h=null;var i=-1;var j=null;var k,l,m,n,o,p;for(var q=this._tilesLoaded.length-1;q>=0;q--){p=this._tilesLoaded[q];k=p.tile;if(!(k.level<=e||k.beingDrawn))if(h){n=k.lastTouchTime;l=h.lastTouchTime;o=k.level;m=h.level;if(l>n||n==l&&o>m){h=k;i=q;j=p}}else{h=k;i=q;j=p}}if(h&&i>=0){this._unloadTile(j);f=i}}this._tilesLoaded[f]=new b({tile:d.tile,tiledImage:d.tiledImage})},clearTilesFor:function(b){a.console.assert(b,"[TileCache.clearTilesFor] tiledImage is required");var c;for(var d=0;d<this._tilesLoaded.length;++d){c=this._tilesLoaded[d];if(c.tiledImage===b){this._unloadTile(c);this._tilesLoaded.splice(d,1);d--}}},getImageRecord:function(b){a.console.assert(b,"[TileCache.getImageRecord] url is required");return this._imagesLoaded[b]},_unloadTile:function(b){a.console.assert(b,"[TileCache._unloadTile] tileRecord is required");var c=b.tile;var d=b.tiledImage;c.unload();c.cacheImageRecord=null;var e=this._imagesLoaded[c.url];e.removeTile(c);if(!e.getTileCount()){e.destroy();delete this._imagesLoaded[c.url];this._imagesLoadedCount--}d.viewer.raiseEvent("tile-unloaded",{tile:c,tiledImage:d})}}}(OpenSeadragon);!function(a){a.World=function(b){var c=this;a.console.assert(b.viewer,"[World] options.viewer is required");a.EventSource.call(this);this.viewer=b.viewer;this._items=[];this._needsDraw=!1;this._autoRefigureSizes=!0;this._needsSizesFigured=!1;this._delegatedFigureSizes=function(a){c._autoRefigureSizes?c._figureSizes():c._needsSizesFigured=!0};this._figureSizes()};a.extend(a.World.prototype,a.EventSource.prototype,{addItem:function(b,c){a.console.assert(b,"[World.addItem] item is required");a.console.assert(b instanceof a.TiledImage,"[World.addItem] only TiledImages supported at this time");c=c||{};if(void 0!==c.index){var d=Math.max(0,Math.min(this._items.length,c.index));this._items.splice(d,0,b)}else this._items.push(b);this._autoRefigureSizes?this._figureSizes():this._needsSizesFigured=!0;this._needsDraw=!0;b.addHandler("bounds-change",this._delegatedFigureSizes);this.raiseEvent("add-item",{item:b})},getItemAt:function(b){a.console.assert(void 0!==b,"[World.getItemAt] index is required");return this._items[b]},getIndexOfItem:function(b){a.console.assert(b,"[World.getIndexOfItem] item is required");return a.indexOf(this._items,b)},getItemCount:function(){return this._items.length},setItemIndex:function(b,c){a.console.assert(b,"[World.setItemIndex] item is required");a.console.assert(void 0!==c,"[World.setItemIndex] index is required");var d=this.getIndexOfItem(b);if(c>=this._items.length)throw new Error("Index bigger than number of layers.");if(c!==d&&-1!==d){this._items.splice(d,1);this._items.splice(c,0,b);this._needsDraw=!0;this.raiseEvent("item-index-change",{item:b,previousIndex:d,newIndex:c})}},removeItem:function(b){a.console.assert(b,"[World.removeItem] item is required");var c=a.indexOf(this._items,b);if(-1!==c){b.removeHandler("bounds-change",this._delegatedFigureSizes);b.destroy();this._items.splice(c,1);this._figureSizes();this._needsDraw=!0;this._raiseRemoveItem(b)}},removeAll:function(){this.viewer._cancelPendingImages();var a;for(var b=0;b<this._items.length;b++){a=this._items[b];a.removeHandler("bounds-change",this._delegatedFigureSizes);a.destroy()}var c=this._items;this._items=[];this._figureSizes();this._needsDraw=!0;for(b=0;b<c.length;b++){a=c[b];this._raiseRemoveItem(a)}},resetItems:function(){for(var a=0;a<this._items.length;a++)this._items[a].reset()},update:function(){var a=!1;for(var b=0;b<this._items.length;b++)a=this._items[b].update()||a;return a},draw:function(){for(var a=0;a<this._items.length;a++)this._items[a].draw();this._needsDraw=!1},needsDraw:function(){for(var a=0;a<this._items.length;a++)if(this._items[a].needsDraw())return!0;return this._needsDraw},getHomeBounds:function(){return this._homeBounds.clone()},getContentFactor:function(){return this._contentFactor},setAutoRefigureSizes:function(a){this._autoRefigureSizes=a;if(a&this._needsSizesFigured){this._figureSizes();this._needsSizesFigured=!1}},arrange:function(b){b=b||{};var c=b.immediately||!1;var d=b.layout||a.DEFAULT_SETTINGS.collectionLayout;var e=b.rows||a.DEFAULT_SETTINGS.collectionRows;var f=b.columns||a.DEFAULT_SETTINGS.collectionColumns;var g=b.tileSize||a.DEFAULT_SETTINGS.collectionTileSize;var h=b.tileMargin||a.DEFAULT_SETTINGS.collectionTileMargin;var i=g+h;var j;j=!b.rows&&f?f:Math.ceil(this._items.length/e);var k=0;var l=0;var m,n,o,p,q;this.setAutoRefigureSizes(!1);for(var r=0;r<this._items.length;r++){if(r&&r%j===0)if("horizontal"===d){l+=i;k=0}else{k+=i;l=0}m=this._items[r];n=m.getBounds();o=n.width>n.height?g:g*(n.width/n.height);p=o*(n.height/n.width);q=new a.Point(k+(g-o)/2,l+(g-p)/2);m.setPosition(q,c);m.setWidth(o,c);"horizontal"===d?k+=i:l+=i}this.setAutoRefigureSizes(!0)},_figureSizes:function(){var b=this._homeBounds?this._homeBounds.clone():null;var c=this._contentSize?this._contentSize.clone():null;var d=this._contentFactor||0;if(this._items.length){var e=this._items[0];var f=e.getBounds();this._contentFactor=e.getContentSize().x/f.width;var g=e.getClippedBounds();var h=g.x;var i=g.y;var j=g.x+g.width;var k=g.y+g.height;for(var l=1;l<this._items.length;l++){e=this._items[l];f=e.getBounds();this._contentFactor=Math.max(this._contentFactor,e.getContentSize().x/f.width);g=e.getClippedBounds();h=Math.min(h,g.x);i=Math.min(i,g.y);j=Math.max(j,g.x+g.width);k=Math.max(k,g.y+g.height)}this._homeBounds=new a.Rect(h,i,j-h,k-i);this._contentSize=new a.Point(this._homeBounds.width*this._contentFactor,this._homeBounds.height*this._contentFactor)}else{this._homeBounds=new a.Rect(0,0,1,1);this._contentSize=new a.Point(1,1);this._contentFactor=1}this._contentFactor===d&&this._homeBounds.equals(b)&&this._contentSize.equals(c)||this.raiseEvent("metrics-change",{})},_raiseRemoveItem:function(a){this.raiseEvent("remove-item",{item:a})}})}(OpenSeadragon); 12 15 //# sourceMappingURL=openseadragon.min.js.map -
zoom-openseadragon/tags/1.3/js/openseadragon.min.js.map
r1343898 r1426069 1 {"version":3," file":"openseadragon.min.js","sources":["openseadragon.js"],"names":["window","OpenSeadragon","options","Viewer","define","amd","$","version","versionStr","major","parseInt","minor","revision","class2type","[object Boolean]","[object Number]","[object String]","[object Function]","[object Array]","[object Date]","[object RegExp]","[object Object]","toString","Object","prototype","hasOwn","hasOwnProperty","isFunction","obj","type","isArray","Array","isWindow","undefined","String","call","isPlainObject","nodeType","constructor","lastKey","key","isEmptyObject","name","supportsCanvas","canvasElement","document","createElement","getContext","isCanvasTainted","canvas","isTainted","getImageData","e","pixelDensityRatio","context","devicePixelRatio","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","getOffsetParent","element","isFixed","body","offsetParent","processDZIResponse","xhr","tilesUrl","status","statusText","doc","Error","getString","responseXML","documentElement","responseText","parseXml","processDZIXml","xmlDoc","root","rootName","tagName","processDZI","_processDZIError","imageNode","dispRectNode","rectNode","i","fileFormat","getAttribute","sizeNode","getElementsByTagName","dispRectNodes","width","height","tileSize","tileOverlap","dispRects","imageFormatSupported","toUpperCase","length","push","DisplayRect","DziTileSource","processDZIJSON","imageData","rectData","Format","sizeData","Size","dispRectData","Width","Height","TileSize","Overlap","Rect","X","Y","MaxLevel","extend","src","copy","copyIsArray","clone","target","arguments","deep","this","DEFAULT_SETTINGS","xmlPath","tileSources","tileHost","initialPage","crossOriginPolicy","ajaxWithCredentials","panHorizontal","panVertical","constrainDuringPan","wrapHorizontal","wrapVertical","visibilityRatio","minPixelRatio","defaultZoomLevel","minZoomLevel","maxZoomLevel","homeFillsViewer","clickTimeThreshold","clickDistThreshold","dblClickTimeThreshold","dblClickDistThreshold","springStiffness","animationTime","gestureSettingsMouse","scrollToZoom","clickToZoom","dblClickToZoom","pinchToZoom","flickEnabled","flickMinSpeed","flickMomentum","pinchRotate","gestureSettingsTouch","gestureSettingsPen","gestureSettingsUnknown","zoomPerClick","zoomPerScroll","zoomPerSecond","blendTime","alwaysBlend","autoHideControls","immediateRender","minZoomImageRatio","maxZoomPixelRatio","pixelsPerWheelLine","autoResize","preserveImageSizeOnResize","minScrollDeltaTime","showSequenceControl","sequenceControlAnchor","preserveViewport","preserveOverlays","navPrevNextWrap","showNavigationControl","navigationControlAnchor","showZoomControl","showHomeControl","showFullPageControl","showRotationControl","controlsFadeDelay","controlsFadeLength","mouseNavEnabled","showNavigator","navigatorId","navigatorPosition","navigatorSizeRatio","navigatorMaintainSizeRatio","navigatorTop","navigatorLeft","navigatorHeight","navigatorWidth","navigatorAutoResize","navigatorRotate","degrees","opacity","placeholderFillStyle","showReferenceStrip","referenceStripScroll","referenceStripElement","referenceStripHeight","referenceStripWidth","referenceStripPosition","referenceStripSizeRatio","collectionRows","collectionColumns","collectionLayout","collectionMode","collectionTileSize","collectionTileMargin","imageLoaderLimit","maxImageCacheCount","timeout","useCanvas","prefixUrl","navImages","zoomIn","REST","GROUP","HOVER","DOWN","zoomOut","home","fullpage","rotateleft","rotateright","previous","next","debugMode","debugGridColor","SIGNAL","delegate","object","method","args","apply","BROWSERS","UNKNOWN","IE","FIREFOX","SAFARI","CHROME","OPERA","getElement","getElementById","getElementPosition","result","Point","getElementStyle","position","x","offsetLeft","y","offsetTop","plus","getPageScroll","getElementOffset","docElement","win","ownerDocument","boundingRect","top","left","getBoundingClientRect","defaultView","parentWindow","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getElementSize","clientWidth","clientHeight","currentStyle","getComputedStyle","pointInElement","point","offset","size","getEvent","event","getMousePosition","pageX","pageY","clientX","clientY","setPageScroll","scroll","scrollTo","originalScroll","currentScroll","getWindowSize","innerWidth","innerHeight","makeCenteredNode","wrappers","makeNeutralElement","style","display","verticalAlign","textAlign","appendChild","background","border","margin","padding","now","Date","getTime","makeTransparentImage","img","Browser","vendor","onload","filter","setElementOpacity","usesAlpha","ieOpacity","ieFilter","alpha","Math","round","setElementTouchActionNone","touchAction","msTouchAction","addClass","className","indexOf","array","searchElement","fromIndex","pivot","TypeError","abs","removeClass","oldClasses","newClasses","split","join","addEvent","addEventListener","eventName","handler","useCapture","attachEvent","removeEvent","removeEventListener","detachEvent","cancelEvent","preventDefault","cancel","returnValue","stopEvent","stopPropagation","cancelBubble","createCallback","initialArgs","concat","getUrlParameter","value","URLPARAMS","getUrlProtocol","url","match","location","protocol","toLowerCase","createAjaxRequest","local","supportActiveX","ActiveXObject","XMLHttpRequest","makeAjaxRequest","onSuccess","onError","withCredentials","success","error","request","onreadystatechange","readyState","console","log","open","send","msg","message","oldIE","number","XDomainRequest","xdr","onerror","e2","jsonp","script","head","jsonpCallback","callbackName","replace","callbackParam","param","callback","test","response","async","scriptCharset","charset","_","isAbort","parentNode","removeChild","insertBefore","firstChild","createFromDZI","string","DOMParser","parser","parseFromString","loadXML","parseJSON","JSON","parse","eval","extension","FILEFORMATS","bmp","jpeg","jpg","png","tif","wdp","regex","ver","navigator","appName","appVersion","ua","userAgent","parseFloat","substring","lastIndexOf","RegExp","exec","$1","part","sep","query","search","parts","decodeURIComponent","nullfunction","debug","info","warn","assert","w","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","msCancelAnimationFrame","iIntervalId","aAnimQueue","processing","iRequestId","setInterval","time","temp","shift","clearInterval","requestId","j","splice","errorNode","messageNode","nodeValue","fullScreenApi","supportsFullScreen","isFullScreen","getFullScreenElement","requestFullScreen","exitFullScreen","cancelFullScreen","fullScreenEventName","fullScreenErrorEventName","exitFullscreen","fullscreenElement","requestFullscreen","msExitFullscreen","msFullscreenElement","msRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitRequestFullscreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozRequestFullScreen","EventSource","events","addHandler","userData","removeHandler","handlers","removeAllHandlers","eventType","getHandler","source","eventSource","raiseEvent","eventArgs","clearTrackedPointers","tracker","THIS","hash","pointerListCount","activePointersLists","captureCount","MouseTracker","captureElement","mousemovecaptured","mouseupcaptured","unprefixedPointerEvents","pointermovecaptured","pointerupcaptured","touchmovecaptured","touchendcaptured","pop","startTracking","tracking","subscribeEvents","stopTracking","getCaptureEventParams","pointerType","upName","upHandler","moveName","moveHandler","capturePointer","eventParams","pointsList","getActivePointersListByType","setCapture","havePointerEvents","releasePointer","releaseCapture","getPointerType","pointerTypeStr","getMouseAbsolute","getMouseRelative","getPointRelativeToAbsolute","minus","getCenterPoint","point1","point2","onClick","clickHandler","onDblClick","dblClickHandler","onKeyDown","propagate","keyDownHandler","keyCode","charCode","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","originalEvent","preventDefaultAction","onKeyUp","keyUpHandler","onKeyPress","keyHandler","onFocus","focusHandler","onBlur","blurHandler","onWheel","handleWheelEvent","onMouseWheel","simulatedEvent","srcElement","deltaMode","deltaX","deltaZ","wheelEventName","deltaY","wheelDelta","detail","nDelta","scrollHandler","isTouchEvent","isParentChild","parent","child","onMouseEnter","handleMouseEnter","onMouseOver","currentTarget","relatedTarget","gPoint","id","mousePointerId","isPrimary","currentPos","currentTime","updatePointersEnter","onMouseLeave","handleMouseExit","onMouseOut","updatePointersExit","getStandardizedButton","button","onMouseDown","updatePointersDown","pressHandler","dragHandler","dragEndHandler","onMouseUp","handleMouseUp","onMouseUpCaptured","updatePointersUp","onMouseMove","handleMouseMove","onMouseMoveCaptured","updatePointersMove","abortTouchContacts","gPointCount","getLength","abortGPoints","getByIndex","onTouchStart","parentGPoints","touchCount","changedTouches","gPoints","touches","identifier","MOUSETRACKERS","isTracking","onTouchEnd","handleTouchEnd","onTouchEndCaptured","onTouchMove","handleTouchMove","onTouchMoveCaptured","onTouchCancel","onGestureStart","onGestureChange","onPointerOver","pointerId","onPointerOut","onPointerDown","pinchHandler","onPointerUp","handlePointerUp","onPointerUpCaptured","getById","onPointerMove","handlePointerMove","onPointerMoveCaptured","onPointerCancel","updatePointersCancel","startTrackingPointer","speed","direction","contactPos","contactTime","lastPos","lastTime","add","stopTrackingPointer","listLength","primaryPoint","removeById","getPrimary","curGPoint","updateGPoint","insideElement","captured","insideElementPressed","enterHandler","buttons","pointers","getActivePointerCount","buttonDownAny","exitHandler","buttonChanged","nonPrimaryPressHandler","contacts","gesturePointVelocityTracker","addPoint","pinchGPoints","asArray","lastPinchDist","currentPinchDist","distanceTo","lastPinchCenter","currentPinchCenter","releasePoint","releaseTime","quick","wasCaptured","nonPrimaryReleaseHandler","removePoint","releaseHandler","insideElementReleased","equals","clicks","lastClickPos","dblClickTimeOut","setTimeout","clearTimeout","gPointArray","delta","stopHandler","stopTimeOut","handlePointerStop","stopDelay","gesturePoints","lastCenter","center","lastDistance","distance","originalMoveEvent","random","_this","click","dblclick","keydown","keyup","keypress","focus","blur","wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll","mouseenter","mouseleave","mouseover","mouseout","mousedown","mouseup","mousemove","touchstart","touchend","touchmove","touchcancel","gesturestart","gesturechange","pointerover","MSPointerOver","pointerout","MSPointerOut","pointerdown","MSPointerDown","pointerup","MSPointerUp","pointermove","MSPointerMove","pointercancel","MSPointerCancel","startDisabled","setTracking","destroy","track","list","len","GesturePointList","count","trackerPoints","intervalId","_generateGuid","_doTracking","trackPoint","elapsedTime","atan2","guid","onmousewheel","supportsMouseCapture","divElement","PointerEvent","pointerEnabled","maxTouchPoints","haveMouseEnter","MSPointerEvent","msPointerEnabled","msMaxTouchPoints","_gPoints","gp","index","ControlAnchor","NONE","TOP_LEFT","TOP_RIGHT","BOTTOM_RIGHT","BOTTOM_LEFT","ABSOLUTE","Control","container","anchor","attachToViewer","autoFade","wrapper","isVisible","setVisible","visible","setOpacity","getControlIndex","dock","controls","ControlDock","layout","layouts","floor","onsubmit","right","bottom","topleft","topright","bottomright","bottomleft","addControl","controlOptions","div","paddingRight","paddingTop","paddingBottom","paddingLeft","removeControl","clearControls","areControlsEnabled","setControlsEnabled","enabled","_getSafeElemSize","oElement","getTileSourceImplementation","viewer","tileSource","successCallback","failCallback","waitUntilReady","originalTileSource","ready","TileSource","getTileUrl","customTileSource","$TileSource","determineType","configure","getOverlayObject","overlay","Overlay","href","px","viewport","imageToViewportRectangle","py","imageToViewportCoordinates","placement","OverlayPlacement","onDraw","checkResize","getOverlayIndex","overlays","scheduleUpdate","updateFunc","scheduleControlsFade","updateControlsFade","beginControlsAutoHide","controlsShouldFade","controlsFadeBeginTime","deltaTime","min","max","abortControlsAutoHide","onCanvasKeyDown","zoomBy","panBy","deltaPointsFromPixels","applyConstraints","onCanvasKeyPress","goHome","onCanvasClick","gestureSettings","haveKeyboardFocus","activeElement","gestureSettingsByDeviceType","pointFromPixel","onCanvasDblClick","onCanvasDrag","negate","onCanvasDragEnd","amplitudeX","cos","PI","amplitudeY","sin","pixelFromPoint","getCenter","panTo","onCanvasEnter","onCanvasExit","onCanvasPress","onCanvasRelease","onCanvasNonPrimaryPress","onCanvasNonPrimaryRelease","onCanvasPinch","centerPt","lastCenterPt","panByPt","angle1","angle2","setRotation","getRotation","onCanvasScroll","factor","thisScrollTime","deltaScrollTime","_lastScrollTime","pow","onContainerEnter","mouseInside","onContainerExit","animating","updateMulti","updateOnce","isOpen","_updateRequestId","_opening","containerSize","prevContainerSize","bounds","getBounds","viewportDiff","resize","fitBoundsWithConstraints","oldBounds","oldCenter","resizeViewportAndRecenter","forceRedraw","viewportChange","update","animated","world","referenceStrip","needsDraw","drawWorld","_drawOverlays","newBounds","imageLoader","clear","drawer","draw","resolveUrl","prefix","beginZoomingIn","lastZoomTime","zoomFactor","zooming","scheduleZoom","beginZoomingOut","endZooming","doZoom","adjustedFactor","doSingleZoomIn","doSingleZoomOut","lightUp","emulateEnter","emulateExit","onHome","onFullScreen","isFullPage","setFullPage","setFullScreen","fullPageButton","onRotateLeft","currRotation","onRotateRight","onPrevious","_sequenceIndex","goToPage","onNext","nextHash","config","overlaysContainer","previousBody","customControls","collectionViewport","collectionDrawer","profiler","fsBoundsDelta","group","fullPage","onfullscreenchange","_firstOpen","_loadQueue","currentOverlays","_showMessage","overflow","tabIndex","bodyWidth","bodyHeight","bodyOverflow","docOverflow","innerTracker","outerTracker","toolbar","bindStandardControls","World","getItemAt","getItemCount","setHomeBounds","getHomeBounds","getContentFactor","Viewport","margins","viewportMargins","ImageLoader","jobLimit","tileCache","TileCache","Drawer","canRotate","rotateLeft","rotateRight","Navigator","sizeRatio","maintainSizeRatio","sequenceMode","bindSequenceControls","openDzi","dzi","openTileSource","close","ReferenceStrip","_updateSequenceButtons","failEvent","expected","successes","failures","checkCompletion","doOne","collectionImmediately","originalSuccess","addOverlay","originalError","addTiledImage","clearOverlays","innerHTML","removeAll","isMouseNavEnabled","setMouseNavEnabled","isVisibile","nodes","bodyStyle","docStyle","fullPageEventArgs","elementSize","pageScroll","elementMargin","elementPadding","bodyMargin","docMargin","bodyPadding","docPadding","prevElementParent","prevNextSibling","nextSibling","prevElementWidth","prevElementHeight","childNodes","restoreScrollCounter","restoreScroll","fullScreen","fullScreeEventArgs","fullPageStyleWidth","fullPageStyleHeight","onFullScreenChange","visibility","raiseAddItemFailed","myQueueItem","refreshWorld","theItem","arrange","immediately","rows","columns","tileMargin","setAutoRefigureSizes","replaceItem","_hideMessage","queueItem","tiledImage","optionsClone","newIndex","getIndexOfItem","removeItem","TiledImage","clip","addItem","originalTiledImage","item","addLayer","getLayerAtLevel","level","getLevelOfLayer","getLayersCount","setLayerLevel","setItemIndex","removeLayer","onFocusHandler","onBlurHandler","onNextHandler","onPreviousHandler","useGroup","previousButton","nextButton","Button","tooltip","srcRest","srcGroup","srcHover","srcDown","onRelease","disable","paging","ButtonGroup","pagingControl","beginZoomingInHandler","endZoomingHandler","doSingleZoomInHandler","beginZoomingOutHandler","doSingleZoomOutHandler","onHomeHandler","onFullScreenHandler","onRotateLeftHandler","onRotateRightHandler","zoomInButton","zoomOutButton","homeButton","rotateLeftButton","rotateRightButton","onPress","onEnter","onExit","navControl","currentPage","page","setFocus","drawHTML","updateOverlay","removeOverlay","enable","createTextNode","messageDiv","_cancelPendingImages","rotate","_setTransformRotate","webkitTransform","mozTransform","msTransform","oTransform","transform","viewerSize","navigatorSize","borderWidth","fudge","totalBorderWidths","displayRegion","fontSize","cssFloat","styleFloat","zIndex","cursor","displayRegionContainer","_resizeWithViewer","oldViewerSize","elementArea","oldContainerSize","previousIndex","theirItem","myItem","_getMatchingItem","updateSize","newWidth","newHeight","sqrt","getTopLeft","getBottomRight","original","_originalForNavigator","_matchBounds","setPosition","setWidth","I18N","Errors","Dzc","Dzi","Xml","ImageFormat","Security","Status","OpenFailed","Tooltips","FullPage","Home","ZoomIn","ZoomOut","NextPage","PreviousPage","RotateLeft","RotateRight","prop","props","capture","setString","times","divide","func","angle","processResponse","data","minLevel","maxLevel","aspectRatio","dimensions","_tileWidth","_tileHeight","getImageInfo","tileWidth","tileHeight","ceil","getTileSize","getTileWidth","getTileHeight","getLevelScale","levelScaleCache","_level","getNumTiles","scale","getPixelRatio","imageSizeScaled","rx","ry","getClosestLevel","rect","tilesPerSide","tiles","getTileAtPoint","pixel","tx","ty","getTileBounds","dimensionsScaled","sx","sy","readySource","urlParts","filename","lastDot","slice","exc","formattedExc","supports","tileExists","numTiles","property","configureFromXML","localName","ns","namespaceURI","configuration","displayRects","getElementsByTagNameNS","Image","xmlns","Url","MinLevel","configureFromObject","_levelRects","queryParams","xMin","yMin","xMax","yMax","rects","configureFromXml10","parseXML10","node","trim","Number","nodeName","IIIFTileSource","tileSizePerScaleFactor","tile_width","tile_height","scale_factors","scaleFactors","t","sf","scaleFactor","shortDim","tileOptions","smallerTiles","c","profile","iiifTileSizeWidth","iiifTileSizeHeight","iiifRegion","iiifTileX","iiifTileY","iiifTileW","iiifTileH","iiifSize","iiifQuality","uri","IIIF_ROTATION","levelWidth","levelHeight","OsmTileSource","TmsTileSource","bufferedWidth","bufferedHeight","yTiles","filterFiles","files","file","filtered","mimetype","sort","a","b","conf","levels","LegacyTileSource","dataUrl","levelScale","NaN","ImageTileSource","buildPyramid","image","_image","crossOrigin","useCredentials","naturalWidth","naturalHeight","_buildLevels","getContext2D","context2D","currentWidth","currentHeight","bigCanvas","bigContext","drawImage","smallCanvas","smallContext","TileSourceCollection","scheduleFade","updateFade","shouldFade","fadeBeginTime","fadeLength","imgGroup","beginFading","fadeDelay","stopFading","inTo","newState","disabled","ButtonState","currentState","imgHover","imgDown","outTo","imgRest","title","notifyGroupEnter","notifyGroupExit","labelText","label","getAspectRatio","getTopRight","getBottomLeft","getSize","other","union","newTopLeft","onStripDrag","marginLeft","marginTop","scrollWidth","scrollHeight","dragging","loadPanels","onStripScroll","strip","panelSize","activePanelsStart","activePanelsEnd","miniViewer","panelWidth","panelHeight","panels","activePanel","onStripEnter","marginBottom","onStripExit","marginRight","currentSelected","stiffness","exp","Spring","initial","exponential","_exponential","current","start","_logValue","resetTo","springTo","shiftBy","setExponential","startValue","targetValue","currentValue","ImageJob","jobId","completeJob","loader","job","nextJob","jobsInProgress","jobQueue","errorMsg","finish","onabort","successful","addJob","complete","jobOptions","abort","newJob","Tile","exists","loaded","loading","imgElement","blendStart","beingDrawn","lastTouchTime","cacheImageRecord","getImage","cloneNode","msInterpolationMode","drawCanvas","drawingHandler","rendered","getRenderedContext","save","globalAlpha","clearRect","tile","restore","unload","CENTER","TOP","RIGHT","BOTTOM","LEFT","scales","adjust","overlayCenter","deltaPixelsFromPoints","drawerCenter","sketchCanvas","sketchContext","dir","viewportSize","_calculateCanvasSize","getOpacity","maxOpacity","needsUpdate","numTilesLoaded","reset","resetItems","_clear","useSketch","_getContext","viewportToDrawerRectangle","rectangle","topLeft","drawTile","_offsetForRotation","_restoreRotationChanges","saveContext","restoreContext","setClip","beginPath","drawRectangle","fillStyle","fillRect","blendSketch","drawDebugInfo","lineWidth","font","strokeStyle","strokeRect","tileCenterX","tileCenterY","translate","fillText","getZoom","debugRect","cx","cy","getContainerSize","contentSize","_margins","zoomPoint","_updateContainerInnerSize","centerSpringX","centerSpringY","zoomSpring","_oldCenterX","_oldCenterY","_oldZoom","resetContentSize","contentFactor","homeBounds","contentAspectX","contentAspectY","getHomeZoom","output","aspectFactor","fitBounds","getMinZoom","homeZoom","zoom","getMaxZoom","_containerInnerSize","getMargins","setMargins","getBoundsWithMargins","oldZoomPixel","newZoomPixel","deltaZoomPixels","deltaZoomPoints","centerCurrent","centerTarget","_pixelFromPoint","_applyBoundaryConstraints","dx","dy","horizontalThreshold","verticalThreshold","thresholdLeft","homeRight","thresholdRight","newDx","thresholdTop","homeBottom","thresholdBottom","newDy","constrainedBounds","actualZoom","constrainedZoom","zoomTo","ensureVisible","_fitBounds","oldZoom","newZoom","referencePoint","newBoundsAspectRatio","newConstrainedZoom","constraints","aspect","fitVertically","box","fitHorizontally","refPoint","isNaN","newContainerSize","maintain","widthDeltaFactor","changed","deltaPoints","deltaPixels","_viewportToImageDelta","viewerX","viewerY","viewportToImageCoordinates","_imageToViewportDelta","imageX","imageY","pixelWidth","pixelHeight","coordA","coordB","viewportToImageRectangle","pointWidth","pointHeight","viewerElementToImageCoordinates","imageToViewerElementCoordinates","windowToImageCoordinates","viewerCoordinates","imageToWindowCoordinates","viewerElementToViewportCoordinates","viewportToViewerElementCoordinates","windowToViewportCoordinates","viewportToWindowCoordinates","viewportToImageZoom","viewportZoom","imageWidth","containerWidth","viewportToImageZoomRatio","imageToViewportZoom","imageZoom","updateViewport","_needsDraw","renderPixelRatioC","renderPixelRatioT","zeroRatioT","optimalRatio","levelOpacity","levelVisibility","best","haveDrawn","viewportBounds","zeroRatioC","_scaleSpring","lowestLevel","highestLevel","_xSpring","_ySpring","lastDrawn","orthBounds","viewportTL","viewportBR","_worldWidthCurrent","_worldHeightCurrent","drawLevel","updateLevel","providesCoverage","coverage","drawTiles","loadTile","tileTL","tileBR","numberOfTiles","viewportCenter","havedrawn","currenttime","resetCoverage","updateTile","getTile","tilesMatrix","setCoverage","isCovered","positionTile","setTileLoaded","imageRecord","_tileCache","getImageRecord","blendTile","compareTiles","worldWidth","worldHeight","xMod","yMod","_imageLoader","onTileLoad","lastResetTime","cutoff","_midDraw","getCompletionCallback","increment","completionCallback","cacheTile","overlap","boundsTL","boundsSize","positionC","positionT","sizeC","sizeT","tileCenter","tileDistance","blendTimeMillis","_hasOpaqueTile","cols","covers","previousBest","_drawer","usedClip","_clip","clipRect","placeholderRect","_drawingHandler","normHeight","_updateForScale","clearTilesFor","oldX","oldY","oldScale","_worldWidthTarget","_worldHeightTarget","getWorldBounds","getContentSize","ratio","sameTarget","_raiseBoundsChange","_setScale","setHeight","getClip","newClip","TileRecord","ImageRecord","_tiles","_renderedContext","setRenderedContext","renderedContext","addTile","removeTile","getTileCount","_maxImageCacheCount","_tilesLoaded","_imagesLoaded","_imagesLoadedCount","insertionIndex","prevTile","worstTime","worstLevel","prevTime","prevLevel","prevTileRecord","worstTile","worstTileIndex","worstTileRecord","_unloadTile","tileRecord","_items","_autoRefigureSizes","_needsSizesFigured","_delegatedFigureSizes","_figureSizes","oldIndex","_raiseRemoveItem","removedItems","_homeBounds","_contentFactor","wrap","oldHomeBounds","oldContentSize","_contentSize","oldContentFactor"],"mappings":"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"}1 {"version":3,"sources":["../../src/openseadragon.js","../../src/fullscreen.js","../../src/eventsource.js","../../src/mousetracker.js","../../src/control.js","../../src/controldock.js","../../src/placement.js","../../src/viewer.js","../../src/navigator.js","../../src/strings.js","../../src/point.js","../../src/tilesource.js","../../src/dzitilesource.js","../../src/iiiftilesource.js","../../src/osmtilesource.js","../../src/tmstilesource.js","../../src/legacytilesource.js","../../src/imagetilesource.js","../../src/tilesourcecollection.js","../../src/button.js","../../src/buttongroup.js","../../src/rectangle.js","../../src/referencestrip.js","../../src/displayrectangle.js","../../src/spring.js","../../src/imageloader.js","../../src/tile.js","../../src/overlay.js","../../src/drawer.js","../../src/viewport.js","../../src/tiledimage.js","../../src/tilecache.js","../../src/world.js"],"names":["window","OpenSeadragon","options","Viewer","define","amd","$","version","versionStr","major","parseInt","minor","revision","class2type","[object Boolean]","[object Number]","[object String]","[object Function]","[object Array]","[object Date]","[object RegExp]","[object Object]","toString","Object","prototype","hasOwn","hasOwnProperty","isFunction","obj","type","isArray","Array","isWindow","undefined","String","call","isPlainObject","nodeType","constructor","lastKey","key","isEmptyObject","name","freezeObject","freeze","supportsCanvas","canvasElement","document","createElement","getContext","isCanvasTainted","canvas","isTainted","getImageData","e","pixelDensityRatio","context","devicePixelRatio","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","getOffsetParent","element","isFixed","body","offsetParent","extend","src","copy","copyIsArray","clone","target","arguments","length","deep","i","this","DEFAULT_SETTINGS","xmlPath","tileSources","tileHost","initialPage","crossOriginPolicy","ajaxWithCredentials","panHorizontal","panVertical","constrainDuringPan","wrapHorizontal","wrapVertical","visibilityRatio","minPixelRatio","defaultZoomLevel","minZoomLevel","maxZoomLevel","homeFillsViewer","clickTimeThreshold","clickDistThreshold","dblClickTimeThreshold","dblClickDistThreshold","springStiffness","animationTime","gestureSettingsMouse","scrollToZoom","clickToZoom","dblClickToZoom","pinchToZoom","flickEnabled","flickMinSpeed","flickMomentum","pinchRotate","gestureSettingsTouch","gestureSettingsPen","gestureSettingsUnknown","zoomPerClick","zoomPerScroll","zoomPerSecond","blendTime","alwaysBlend","autoHideControls","immediateRender","minZoomImageRatio","maxZoomPixelRatio","smoothTileEdgesMinZoom","pixelsPerWheelLine","autoResize","preserveImageSizeOnResize","minScrollDeltaTime","showSequenceControl","sequenceControlAnchor","preserveViewport","preserveOverlays","navPrevNextWrap","showNavigationControl","navigationControlAnchor","showZoomControl","showHomeControl","showFullPageControl","showRotationControl","controlsFadeDelay","controlsFadeLength","mouseNavEnabled","showNavigator","navigatorId","navigatorPosition","navigatorSizeRatio","navigatorMaintainSizeRatio","navigatorTop","navigatorLeft","navigatorHeight","navigatorWidth","navigatorAutoResize","navigatorAutoFade","navigatorRotate","degrees","opacity","compositeOperation","placeholderFillStyle","showReferenceStrip","referenceStripScroll","referenceStripElement","referenceStripHeight","referenceStripWidth","referenceStripPosition","referenceStripSizeRatio","collectionRows","collectionColumns","collectionLayout","collectionMode","collectionTileSize","collectionTileMargin","imageLoaderLimit","maxImageCacheCount","timeout","useCanvas","prefixUrl","navImages","zoomIn","REST","GROUP","HOVER","DOWN","zoomOut","home","fullpage","rotateleft","rotateright","previous","next","debugMode","debugGridColor","SIGNAL","delegate","object","method","args","apply","BROWSERS","UNKNOWN","IE","FIREFOX","SAFARI","CHROME","OPERA","getElement","getElementById","getElementPosition","result","Point","getElementStyle","position","x","offsetLeft","y","offsetTop","plus","getPageScroll","getElementOffset","docElement","win","doc","ownerDocument","boundingRect","top","left","documentElement","getBoundingClientRect","defaultView","parentWindow","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getElementSize","clientWidth","clientHeight","currentStyle","getComputedStyle","getCssPropertyWithVendorPrefix","property","memo","style","prefixes","suffix","capitalizeFirstLetter","prop","string","charAt","toUpperCase","slice","pointInElement","point","offset","size","getEvent","event","getMousePosition","pageX","pageY","Error","clientX","clientY","setPageScroll","scroll","scrollTo","originalScroll","currentScroll","getWindowSize","innerWidth","innerHeight","makeCenteredNode","wrappers","makeNeutralElement","display","height","width","verticalAlign","textAlign","appendChild","tagName","background","border","margin","padding","now","Date","getTime","makeTransparentImage","img","Browser","vendor","onload","filter","setElementOpacity","usesAlpha","ieOpacity","ieFilter","alpha","Math","round","setElementTouchActionNone","touchAction","msTouchAction","addClass","className","indexOf","array","searchElement","fromIndex","pivot","TypeError","abs","removeClass","oldClasses","newClasses","split","push","join","addEvent","addEventListener","eventName","handler","useCapture","attachEvent","removeEvent","removeEventListener","detachEvent","cancelEvent","preventDefault","cancel","returnValue","stopEvent","stopPropagation","cancelBubble","createCallback","initialArgs","concat","getUrlParameter","value","URLPARAMS","getUrlProtocol","url","match","location","protocol","toLowerCase","createAjaxRequest","local","supportActiveX","ActiveXObject","XMLHttpRequest","makeAjaxRequest","onSuccess","onError","withCredentials","success","error","request","onreadystatechange","readyState","status","console","log","open","send","msg","message","oldIE","number","XDomainRequest","xdr","responseText","statusText","onerror","e2","jsonp","script","head","getElementsByTagName","jsonpCallback","callbackName","replace","callbackParam","param","callback","test","response","async","scriptCharset","charset","_","isAbort","parentNode","removeChild","insertBefore","firstChild","createFromDZI","parseXml","DOMParser","parser","xmlDoc","parseFromString","loadXML","parseJSON","JSON","parse","eval","imageFormatSupported","extension","FILEFORMATS","bmp","jpeg","jpg","png","tif","wdp","regex","ver","navigator","appName","appVersion","ua","userAgent","parseFloat","substring","lastIndexOf","RegExp","exec","$1","part","sep","query","search","parts","decodeURIComponent","nullfunction","debug","info","warn","assert","w","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","msCancelAnimationFrame","iIntervalId","aAnimQueue","processing","iRequestId","setInterval","time","temp","shift","clearInterval","requestId","j","splice","fullScreenApi","supportsFullScreen","isFullScreen","getFullScreenElement","requestFullScreen","exitFullScreen","cancelFullScreen","fullScreenEventName","fullScreenErrorEventName","exitFullscreen","fullscreenElement","requestFullscreen","msExitFullscreen","msFullscreenElement","msRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitRequestFullscreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozRequestFullScreen","EventSource","events","addOnceHandler","userData","times","self","count","onceHandler","removeHandler","addHandler","handlers","removeAllHandlers","eventType","getHandler","source","eventSource","raiseEvent","eventArgs","clearTrackedPointers","tracker","THIS","hash","pointerListCount","activePointersLists","captureCount","MouseTracker","captureElement","mousemovecaptured","mouseupcaptured","unprefixedPointerEvents","pointermovecaptured","pointerupcaptured","touchmovecaptured","touchendcaptured","pop","startTracking","tracking","subscribeEvents","stopTracking","getCaptureEventParams","pointerType","upName","upHandler","moveName","moveHandler","capturePointer","pointerCount","eventParams","pointsList","getActivePointersListByType","setCapture","havePointerEvents","isInIframe","canAccessEvents","releasePointer","releaseCapture","getPointerType","pointerTypeStr","getMouseAbsolute","getMouseRelative","getPointRelativeToAbsolute","minus","getCenterPoint","point1","point2","onClick","clickHandler","onDblClick","dblClickHandler","onKeyDown","propagate","keyDownHandler","keyCode","charCode","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","originalEvent","preventDefaultAction","onKeyUp","keyUpHandler","onKeyPress","keyHandler","onFocus","focusHandler","onBlur","blurHandler","onWheel","handleWheelEvent","onMouseWheel","simulatedEvent","srcElement","deltaMode","deltaX","deltaZ","wheelEventName","deltaY","wheelDelta","detail","nDelta","scrollHandler","isTouchEvent","isParentChild","parent","child","onMouseEnter","handleMouseEnter","onMouseOver","currentTarget","relatedTarget","gPoint","id","mousePointerId","isPrimary","currentPos","currentTime","updatePointersEnter","onMouseLeave","handleMouseExit","onMouseOut","updatePointersExit","getStandardizedButton","button","onMouseDown","updatePointersDown","pressHandler","dragHandler","dragEndHandler","onMouseUp","handleMouseUp","onMouseUpCaptured","updatePointersUp","onMouseMove","handleMouseMove","onMouseMoveCaptured","updatePointersMove","abortTouchContacts","gPointCount","getLength","abortGPoints","getByIndex","onTouchStart","parentGPoints","touchCount","changedTouches","gPoints","touches","identifier","MOUSETRACKERS","isTracking","onTouchEnd","handleTouchEnd","onTouchEndCaptured","onTouchMove","handleTouchMove","onTouchMoveCaptured","onTouchCancel","onGestureStart","onGestureChange","onPointerOver","pointerId","onPointerOut","onPointerDown","pinchHandler","onPointerUp","handlePointerUp","onPointerUpCaptured","getById","onPointerMove","handlePointerMove","onPointerMoveCaptured","onPointerCancel","updatePointersCancel","startTrackingPointer","speed","direction","contactPos","contactTime","lastPos","lastTime","add","stopTrackingPointer","listLength","primaryPoint","removeById","getPrimary","curGPoint","updateGPoint","insideElement","captured","insideElementPressed","enterHandler","buttons","pointers","getActivePointerCount","buttonDownAny","exitHandler","buttonChanged","nonPrimaryPressHandler","contacts","gesturePointVelocityTracker","addPoint","pinchGPoints","asArray","lastPinchDist","currentPinchDist","distanceTo","lastPinchCenter","currentPinchCenter","releasePoint","releaseTime","quick","wasCaptured","nonPrimaryReleaseHandler","removePoint","releaseHandler","insideElementReleased","equals","clicks","lastClickPos","dblClickTimeOut","setTimeout","clearTimeout","gPointArray","delta","stopHandler","stopTimeOut","handlePointerStop","stopDelay","gesturePoints","lastCenter","center","lastDistance","distance","originalMoveEvent","random","_this","click","dblclick","keydown","keyup","keypress","focus","blur","wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll","mouseenter","mouseleave","mouseover","mouseout","mousedown","mouseup","mousemove","touchstart","touchend","touchmove","touchcancel","gesturestart","gesturechange","pointerover","MSPointerOver","pointerout","MSPointerOut","pointerdown","MSPointerDown","pointerup","MSPointerUp","pointermove","MSPointerMove","pointercancel","MSPointerCancel","startDisabled","setTracking","destroy","track","list","len","GesturePointList","trackerPoints","intervalId","_generateGuid","_doTracking","trackPoint","elapsedTime","atan2","guid","onmousewheel","supportsMouseCapture","divElement","PointerEvent","pointerEnabled","maxTouchPoints","haveMouseEnter","MSPointerEvent","msPointerEnabled","msMaxTouchPoints","_gPoints","gp","index","ControlAnchor","NONE","TOP_LEFT","TOP_RIGHT","BOTTOM_RIGHT","BOTTOM_LEFT","ABSOLUTE","Control","container","anchor","attachToViewer","autoFade","wrapper","isVisible","setVisible","visible","setOpacity","getControlIndex","dock","controls","ControlDock","layout","layouts","floor","onsubmit","right","bottom","topleft","topright","bottomright","bottomleft","addControl","controlOptions","div","paddingRight","paddingTop","paddingBottom","paddingLeft","removeControl","clearControls","areControlsEnabled","setControlsEnabled","enabled","Placement","CENTER","TOP","RIGHT","BOTTOM","LEFT","properties",0,"isLeft","isHorizontallyCentered","isRight","isTop","isVerticallyCentered","isBottom",1,2,3,4,5,6,7,8,"_getSafeElemSize","oElement","getTileSourceImplementation","viewer","tileSource","successCallback","failCallback","waitUntilReady","originalTileSource","ready","TileSource","getTileUrl","customTileSource","$TileSource","determineType","configure","getOverlayObject","overlay","Overlay","href","px","rect","viewport","imageToViewportRectangle","Rect","py","placement","onDraw","checkResize","rotationMode","getOverlayIndex","overlays","scheduleUpdate","updateFunc","scheduleControlsFade","updateControlsFade","beginControlsAutoHide","controlsShouldFade","controlsFadeBeginTime","deltaTime","min","max","abortControlsAutoHide","onCanvasKeyDown","zoomBy","panBy","deltaPointsFromPixels","applyConstraints","onCanvasKeyPress","goHome","onCanvasClick","gestureSettings","haveKeyboardFocus","activeElement","gestureSettingsByDeviceType","pointFromPixel","onCanvasDblClick","onCanvasDrag","negate","onCanvasDragEnd","amplitudeX","cos","amplitudeY","sin","pixelFromPoint","getCenter","panTo","onCanvasEnter","onCanvasExit","onCanvasPress","onCanvasRelease","onCanvasNonPrimaryPress","onCanvasNonPrimaryRelease","onCanvasPinch","centerPt","lastCenterPt","panByPt","angle1","angle2","setRotation","getRotation","PI","onCanvasScroll","factor","thisScrollTime","deltaScrollTime","_lastScrollTime","pow","onContainerEnter","mouseInside","onContainerExit","animating","updateMulti","updateOnce","isOpen","_updateRequestId","_opening","containerSize","prevContainerSize","resizeRatio","zoom","getZoom","resize","zoomTo","oldBounds","getBounds","fitBoundsWithConstraints","forceRedraw","viewportChange","update","animated","world","referenceStrip","needsDraw","drawWorld","_drawOverlays","imageLoader","clear","drawer","draw","resolveUrl","prefix","beginZoomingIn","lastZoomTime","zoomFactor","zooming","scheduleZoom","beginZoomingOut","endZooming","doZoom","adjustedFactor","doSingleZoomIn","doSingleZoomOut","lightUp","emulateEnter","emulateExit","onHome","onFullScreen","isFullPage","setFullPage","setFullScreen","fullPageButton","onRotateLeft","currRotation","onRotateRight","onPrevious","_sequenceIndex","goToPage","onNext","nextHash","config","overlaysContainer","previousBody","customControls","collectionViewport","collectionDrawer","profiler","fsBoundsDelta","group","fullPage","onfullscreenchange","_firstOpen","_loadQueue","currentOverlays","getString","_showMessage","overflow","tabIndex","bodyWidth","bodyHeight","bodyOverflow","docOverflow","innerTracker","outerTracker","toolbar","bindStandardControls","World","getItemAt","getItemCount","_setContentBounds","getHomeBounds","getContentFactor","Viewport","margins","viewportMargins","ImageLoader","jobLimit","tileCache","TileCache","Drawer","canRotate","rotateLeft","rotateRight","Navigator","sizeRatio","maintainSizeRatio","sequenceMode","bindSequenceControls","openDzi","dzi","openTileSource","close","ReferenceStrip","_updateSequenceButtons","expected","successes","failures","failEvent","checkCompletion","doOne","collectionImmediately","originalSuccess","addOverlay","originalError","addTiledImage","clearOverlays","innerHTML","removeAll","isMouseNavEnabled","setMouseNavEnabled","isVisibile","nodes","bodyStyle","docStyle","fullPageEventArgs","elementSize","pageScroll","elementMargin","elementPadding","bodyMargin","docMargin","bodyPadding","docPadding","docWidth","docHeight","prevElementParent","prevNextSibling","nextSibling","prevElementWidth","prevElementHeight","childNodes","restoreScrollCounter","restoreScroll","fullScreen","fullScreeEventArgs","fullPageStyleWidth","fullPageStyleHeight","onFullScreenChange","visibility","raiseAddItemFailed","myQueueItem","refreshWorld","theItem","arrange","immediately","rows","columns","tileSize","tileMargin","setAutoRefigureSizes","replaceItem","_hideMessage","queueItem","tiledImage","optionsClone","newIndex","getIndexOfItem","removeItem","TiledImage","fitBounds","fitBoundsPlacement","clip","addItem","originalTiledImage","item","addSimpleImage","opts","addLayer","getLayerAtLevel","level","getLevelOfLayer","getLayersCount","setLayerLevel","setItemIndex","removeLayer","onFocusHandler","onBlurHandler","onNextHandler","onPreviousHandler","useGroup","previousButton","nextButton","Button","tooltip","srcRest","srcGroup","srcHover","srcDown","onRelease","disable","paging","ButtonGroup","pagingControl","beginZoomingInHandler","endZoomingHandler","doSingleZoomInHandler","beginZoomingOutHandler","doSingleZoomOutHandler","onHomeHandler","onFullScreenHandler","onRotateLeftHandler","onRotateRightHandler","zoomInButton","zoomOutButton","homeButton","rotateLeftButton","rotateRightButton","onPress","onEnter","onExit","navControl","currentPage","page","setFocus","drawHTML","updateOverlay","removeOverlay","getOverlayById","enable","createTextNode","messageDiv","_cancelPendingImages","_setTransformRotate","webkitTransform","mozTransform","msTransform","oTransform","transform","rotate","displayRegionContainer","displayRegion","viewerSize","navigatorSize","borderWidth","fudge","totalBorderWidths","fontSize","cssFloat","styleFloat","zIndex","cursor","_resizeWithViewer","oldViewerSize","elementArea","oldContainerSize","previousIndex","theirItem","myItem","_getMatchingItem","updateSize","newWidth","newHeight","bounds","sqrt","getBoundsNoRotate","pixelFromPointNoRotate","getTopLeft","getBottomRight","original","_originalForNavigator","_matchBounds","setPosition","setWidth","I18N","Errors","Dzc","Dzi","Xml","ImageFormat","Security","Status","OpenFailed","Tooltips","FullPage","Home","ZoomIn","ZoomOut","NextPage","PreviousPage","RotateLeft","RotateRight","props","capture","setString","divide","func","d","angle","processResponse","xhr","data","responseXML","tileOverlap","minLevel","maxLevel","aspectRatio","dimensions","_tileWidth","_tileHeight","getImageInfo","tileWidth","tileHeight","ceil","getTileSize","getTileWidth","getTileHeight","getLevelScale","levelScaleCache","_level","getNumTiles","scale","getPixelRatio","imageSizeScaled","rx","ry","getClosestLevel","tilesPerSide","tiles","getTileAtPoint","pixel","tx","ty","getTileBounds","dimensionsScaled","sx","sy","readySource","urlParts","filename","lastDot","exc","formattedExc","supports","tileExists","numTiles","configureFromXML","dispRectNodes","dispRectNode","rectNode","sizeNode","root","rootName","localName","ns","namespaceURI","configuration","displayRects","getElementsByTagNameNS","Image","xmlns","Url","getAttribute","Format","DisplayRect","Overlap","TileSize","Size","Height","Width","X","Y","MinLevel","MaxLevel","configureFromObject","messageNode","nodeValue","rectData","imageData","tilesUrl","fileFormat","sizeData","dispRectData","DziTileSource","_levelRects","queryParams","xMin","yMin","xMax","yMax","rects","canBeTiled","profile","level0Profiles","isLevel0","constructLevels","levels","sizes","sort","a","b","configureFromXml10","parseXML10","node","trim","Number","nodeName","IIIFTileSource","tileSizePerScaleFactor","tile_width","tile_height","scale_factors","scaleFactors","t","sf","scaleFactor","shortDim","tileOptions","smallerTiles","c","emulateLegacyImagePyramid","levelScale","NaN","iiifTileSizeWidth","iiifTileSizeHeight","iiifRegion","iiifTileX","iiifTileY","iiifTileW","iiifTileH","iiifSize","iiifQuality","uri","IIIF_ROTATION","levelWidth","levelHeight","OsmTileSource","TmsTileSource","bufferedWidth","bufferedHeight","yTiles","filterFiles","files","file","filtered","mimetype","conf","LegacyTileSource","dataUrl","ImageTileSource","buildPyramid","image","_image","crossOrigin","useCredentials","naturalWidth","naturalHeight","_buildLevels","getContext2D","context2D","currentWidth","currentHeight","bigCanvas","bigContext","drawImage","smallCanvas","smallContext","TileSourceCollection","scheduleFade","updateFade","shouldFade","fadeBeginTime","fadeLength","imgGroup","beginFading","fadeDelay","stopFading","inTo","newState","disabled","ButtonState","currentState","imgHover","imgDown","outTo","imgRest","title","notifyGroupEnter","notifyGroupExit","labelText","label","newTopLeft","getTopRight","getBottomLeft","fromSummits","topLeft","topRight","bottomLeft","diff","radians","atan","getAspectRatio","getSize","other","translate","union","thisBoundingBox","getBoundingBox","otherBoundingBox","intersection","getIntersection","abVector","cdVector","denom","s","EPSILON","intersectionPoints","thisTopLeft","containsPoint","thisTopRight","thisBottomLeft","thisBottomRight","rectTopLeft","rectTopRight","rectBottomLeft","rectBottomRight","thisSegments","_getSegments","rectSegments","thisSegment","rectSegment","intersect","minX","maxX","minY","maxY","k","bottomRight","newTopRight","getIntegerBoundingBox","boundingBox","epsilon","topDiff","leftDiff","onStripDrag","marginLeft","marginTop","scrollWidth","scrollHeight","dragging","loadPanels","onStripScroll","strip","panelSize","activePanelsStart","activePanelsEnd","miniViewer","panelWidth","panelHeight","panels","activePanel","onStripEnter","marginBottom","onStripExit","marginRight","currentSelected","stiffness","exp","Spring","initial","exponential","_exponential","current","start","_logValue","resetTo","springTo","shiftBy","setExponential","startValue","targetValue","currentValue","isAtTargetValue","ImageJob","jobId","completeJob","loader","job","nextJob","jobsInProgress","jobQueue","errorMsg","finish","onabort","successful","addJob","complete","jobOptions","abort","newJob","Tile","exists","loaded","loading","imgElement","blendStart","beingDrawn","lastTouchTime","_hasTransparencyChannel","cacheImageRecord","getImage","cloneNode","msInterpolationMode","drawCanvas","drawingHandler","rendered","getRenderedContext","save","globalAlpha","clearRect","tile","restore","getScaleForEdgeSmoothing","getTranslationForEdgeSmoothing","canvasSize","sketchCanvasSize","unload","OverlayPlacement","OverlayRotationMode","NO_ROTATION","EXACT","BOUNDING_BOX","_init","scales","adjust","transformOriginProp","transformProp","positionAndSize","_getOverlayPositionAndSize","_getTransformOrigin","_getSizeInPixels","_getBoundingBox","scaledSize","deltaPixelsFromPointsNoRotate","eltSize","refPoint","_getPlacementPoint","deltaPointsFromPixelsNoRotate","_adjustBoundsForRotation","viewerElementToViewportRectangle","sketchCanvas","sketchContext","dir","viewportSize","_calculateCanvasSize","getOpacity","maxOpacity","needsUpdate","numTilesLoaded","reset","resetItems","_calculateSketchCanvasSize","_clear","useSketch","_getContext","viewportToDrawerRectangle","rectangle","drawTile","resizeSketchCanvas","saveContext","restoreContext","setClip","beginPath","drawRectangle","fillStyle","fillRect","blendSketch","globalCompositeOperation","widthExt","heightExt","widthDiff","heightDiff","drawDebugInfo","lineWidth","font","strokeStyle","_offsetForRotation","strokeRect","tileCenterX","tileCenterY","fillText","_restoreRotationChanges","debugRect","getCanvasSize","sketch","cx","cy","getContainerSize","contentSize","_margins","zoomPoint","_updateContainerInnerSize","centerSpringX","centerSpringY","zoomSpring","_oldCenterX","_oldCenterY","_oldZoom","resetContentSize","setHomeBounds","contentFactor","_contentBoundsNoRotate","_contentSizeNoRotate","_contentBounds","_contentSize","_contentAspectRatio","homeBounds","contentBounds","getHomeZoom","aspectFactor","output","getHomeBoundsNoRotate","getMinZoom","homeZoom","getMaxZoom","_containerInnerSize","getMargins","setMargins","getBoundsWithMargins","getBoundsNoRotateWithMargins","oldZoomPixel","newZoomPixel","deltaZoomPixels","deltaZoomPoints","centerCurrent","centerTarget","_pixelFromPoint","_applyZoomConstraints","_applyBoundaryConstraints","newBounds","horizontalThreshold","verticalThreshold","dx","thresholdLeft","contentRight","thresholdRight","newDx","dy","thresholdTop","contentBottom","thresholdBottom","newDy","actualZoom","constrainedZoom","constrainedBounds","ensureVisible","_fitBounds","constraints","aspect","newZoom","newBoundsAspectRatio","newConstrainedZoom","oldZoom","referencePoint","fitVertically","box","fitHorizontally","isNaN","newContainerSize","maintain","widthDeltaFactor","changed","deltaPoints","deltaPixelsFromPoints","deltaPixels","_pixelFromPointNoRotate","pointFromPixelNoRotate","_viewportToImageDelta","viewerX","viewerY","viewportToImageCoordinates","_imageToViewportDelta","imageX","imageY","imageToViewportCoordinates","pixelWidth","pixelHeight","coordA","coordB","viewportToImageRectangle","pointWidth","pointHeight","viewerElementToImageCoordinates","imageToViewerElementCoordinates","windowToImageCoordinates","viewerCoordinates","imageToWindowCoordinates","viewerElementToViewportCoordinates","viewportToViewerElementCoordinates","viewportToViewerElementRectangle","windowToViewportCoordinates","viewportToWindowCoordinates","viewportToImageZoom","viewportZoom","imageWidth","containerWidth","viewportToImageZoomRatio","imageToViewportZoom","imageZoom","updateViewport","_needsDraw","renderPixelRatioC","renderPixelRatioT","zeroRatioT","optimalRatio","levelOpacity","levelVisibility","best","haveDrawn","viewportBounds","zeroRatioC","_scaleSpring","lowestLevel","highestLevel","lastDrawn","tiledImageBounds","getClippedBounds","_xSpring","_ySpring","viewportTL","viewportBR","_worldWidthCurrent","_worldHeightCurrent","drawLevel","updateLevel","providesCoverage","coverage","drawTiles","loadTile","tileTL","tileBR","numberOfTiles","viewportCenter","havedrawn","currenttime","resetCoverage","updateTile","getTile","tilesMatrix","setCoverage","isCovered","positionTile","setTileLoaded","imageRecord","_tileCache","getImageRecord","blendTile","compareTiles","worldWidth","worldHeight","xMod","yMod","_imageLoader","onTileLoad","lastResetTime","cutoff","_midDraw","getCompletionCallback","increment","completionCallback","cacheTile","overlap","boundsTL","boundsSize","positionC","positionT","sizeC","sizeT","tileCenter","tileDistance","blendTimeMillis","_hasOpaqueTile","cols","covers","previousBest","_isBottomItem","sketchScale","sketchTranslate","_drawer","usedClip","_clip","clipRect","placeholderRect","_drawingHandler","offsetForRotation","normHeight","contentAspectX","_updateForScale","clearTilesFor","oldX","oldY","oldScale","_worldWidthTarget","_worldHeightTarget","getWorldBounds","ratio","getContentSize","sameTarget","_raiseBoundsChange","_setScale","setHeight","anchorProperties","xOffset","yOffset","displayedWidthRatio","displayedHeightRatio","getClip","newClip","getCompositeOperation","setCompositeOperation","TileRecord","ImageRecord","_tiles","_renderedContext","setRenderedContext","renderedContext","addTile","removeTile","getTileCount","_maxImageCacheCount","_tilesLoaded","_imagesLoaded","_imagesLoadedCount","insertionIndex","worstTile","worstTileIndex","worstTileRecord","prevTile","worstTime","worstLevel","prevTime","prevLevel","prevTileRecord","_unloadTile","tileRecord","_items","_autoRefigureSizes","_needsSizesFigured","_delegatedFigureSizes","_figureSizes","oldIndex","_raiseRemoveItem","removedItems","_homeBounds","_contentFactor","wrap","oldHomeBounds","oldContentSize","oldContentFactor","clippedBounds"],"mappings":"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","file":"openseadragon.min.js"} -
zoom-openseadragon/tags/1.3/readme.txt
r1407764 r1426069 5 5 Requires at least: 4.0.0 6 6 Tested up to: 4.5.1 7 Stable tag: 1. 27 Stable tag: 1.3 8 8 License: New BSD License 9 9 License URI: http://altert.net/BSD-LICENSE.txt … … 83 83 == Changelog == 84 84 85 = 1.3 = 86 * Updated OpenSeadragon library to version 2.2.0 87 85 88 86 89 = 1.2 = -
zoom-openseadragon/tags/1.3/zoom-openseadragon.php
r1372734 r1426069 4 4 Plugin URI: http://altert.net/demo/openseadragon-zoom 5 5 Author URI: http://altert.net 6 Version: 1. 26 Version: 1.3 7 7 Text Domain: zoom-openseadragon 8 8 Domain Path: /lang -
zoom-openseadragon/trunk/readme.txt
r1407764 r1426069 5 5 Requires at least: 4.0.0 6 6 Tested up to: 4.5.1 7 Stable tag: 1. 27 Stable tag: 1.3 8 8 License: New BSD License 9 9 License URI: http://altert.net/BSD-LICENSE.txt … … 83 83 == Changelog == 84 84 85 = 1.3 = 86 * Updated OpenSeadragon library to version 2.2.0 87 85 88 86 89 = 1.2 = -
zoom-openseadragon/trunk/zoom-openseadragon.php
r1372734 r1426069 4 4 Plugin URI: http://altert.net/demo/openseadragon-zoom 5 5 Author URI: http://altert.net 6 Version: 1. 26 Version: 1.3 7 7 Text Domain: zoom-openseadragon 8 8 Domain Path: /lang
Note: See TracChangeset
for help on using the changeset viewer.