/*
 COPYRIGHT 2009 ESRI

 TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
 Unpublished material - all rights reserved under the
 Copyright Laws of the United States and applicable international
 laws, treaties, and conventions.

 For additional information, contact:
 Environmental Systems Research Institute, Inc.
 Attn: Contracts and Legal Services Department
 380 New York Street
 Redlands, California, 92373
 USA

 email: contracts@esri.com
 */
//>>built
define("esri/layers/TiledMapServiceLayer",["dojo/_base/declare","dojo/_base/connect","dojo/_base/lang","dojo/_base/array","dojo/_base/url","dojo/dom-construct","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojox/collections/ArrayList","dojox/gfx/matrix","esri/kernel","esri/config","esri/sniff","esri/domUtils","esri/tileUtils","esri/geometry/Point","esri/geometry/Rect","esri/layers/layer"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12,_13){var _14=_d.defaults.map.zoomDuration;var _15=_1(_13,{declaredClass:"esri.layers.TiledMapServiceLayer",constructor:function(url,_16){_2.connect(this,"onLoad",this,"_initTiledLayer");this._displayLevels=_16?_16.displayLevels:null;this._lowestLevel=this._displayLevels?this._displayLevels[0]:0;this._resampling=_16?_16.resampling:false;this._resamplingTolerance=_16?_16.resamplingTolerance:null;var dh=_3.hitch;this._addImage=dh(this,this._addImage);this._tileLoadHandler=dh(this,this._tileLoadHandler);this._tileErrorHandler=dh(this,this._tileErrorHandler);this._tilePopPop=dh(this,this._tilePopPop);this._cleanUpRemovedImages=dh(this,this._cleanUpRemovedImages);this._fireOnUpdateEvent=dh(this,this._fireOnUpdateEvent);this._transitionEnd=dh(this,this._transitionEnd);},opacity:1,isPNG32:false,_multiple:1,_initTiledLayer:function(){var ti=this.tileInfo,_17=ti.lods;this._tileW=ti.width;this._tileH=ti.height;var _18=(this.scales=[]),dl=this._displayLevels,_19=(this.declaredClass==="esri.layers.WMTSLayer"&&ti.dpi!=96),_1a=-Infinity,_1b=Infinity,fe=this.fullExtent,ul=new _11(fe.xmin,fe.ymax),lr=new _11(fe.xmax,fe.ymin),_1c=_10.getContainingTileCoords,_1d,lod,i,len=_17.length;for(i=0;i<len;i++){lod=_17[i];if(_19){lod.scale=lod.scale*96/ti.dpi;}_1d=_1c(ti,ul,lod);lod.startTileRow=_1d.row<0?0:_1d.row;lod.startTileCol=_1d.col<0?0:_1d.col;_1d=_1c(ti,lr,lod);lod.endTileRow=_1d.row;lod.endTileCol=_1d.col;if(!dl||_4.indexOf(dl,lod.level)!==-1){_18[i]=lod.scale;_1a=(lod.scale>_1a)?lod.scale:_1a;_1b=(lod.scale<_1b)?lod.scale:_1b;}}if(_19){ti.dpi=96;}if(_1a!==-Infinity&&!this._hasMin){this.setMinScale(_1a);}if(_1b!==Infinity&&!this._hasMax){this.setMaxScale(_1b);}this._patchIE=_e("ie")>=6&&_e("ie")<7&&(this.isPNG32||ti.format==="Mixed");},_isMapAtVisibleScale:function(){var _1e=this.inherited(arguments);if(_1e){var i,map=this._map,_1f=this.scales,_20=map.getScale(),_21=false,_22=(map.width>map.height)?map.width:map.height;for(i=0;i<_1f.length;i++){if((Math.abs(_1f[i]-_20)/_1f[i])<(1/_22)){_21=true;break;}}_1e=_21;}return _1e;},_setMap:function(map,_23,_24,lod){this.inherited(arguments);this._map=map;var d=(this._div=_6.create("div",null,_23)),_25=map.__visibleDelta,dc=_2.connect,_26=_c._css.names,css={position:"absolute",width:map.width+"px",height:map.height+"px",overflow:"visible"};if(map.navigationMode==="css-transforms"){css[_26.transform]=_c._css.translate(-_25.x,-_25.y);_9.set(d,css);delete css[_26.transform];css[_26.transition]=_26.transformName+" "+_14+"ms ease";_9.set((this._active=_6.create("div",null,d)),css);this._active._remove=0;this._passives=[];}else{css.left=-_25.x+"px";css.top=-_25.y+"px";_9.set(d,css);}this._onResizeHandler_connect=dc(map,"onResize",this,"_onResizeHandler");this._opacityChangeHandler_connect=dc(this,"onOpacityChange",this,"_opacityChangeHandler");var _27=this.tileInfo,sr=_27.spatialReference,_28=sr._getInfo();this._wrap=map.wrapAround180&&sr._isWrappable()&&Math.abs(_28.origin[0]-_27.origin.x)<=_28.dx;if(this._wrap){_10._addFrameInfo(_27,_28);}this.evaluateSuspension();if(this.suspended&&!map.loaded){var _29=_2.connect(map,"onLoad",this,function(){_2.disconnect(_29);_29=null;this.evaluateSuspension();});}return d;},_unsetMap:function(map,_2a){if(!this.suspended){this._suspendImpl();}_6.destroy(this._div);this._map=this._div=null;var dd=_2.disconnect;dd(this._onResizeHandler_connect);dd(this._opacityChangeHandler_connect);this.inherited(arguments);},onSuspend:function(){this.inherited(arguments);this._suspendImpl();},_suspendImpl:function(){_f.hide(this._div);clearTimeout(this._wakeTimer);this._wakeTimer=null;this._disableDrawConnectors();var _2b=this._tiles,_2c=this._tileIds,_2d=this._loadingList,img,i,id,_2e=_2.disconnect,_2f=_6.destroy;if(_2d&&_2d.count>0){_2d.forEach(function(_30){img=_2b[_30];if(img){_2e(img._onload_connect);_2e(img._onerror_connect);_2e(img._onabort_connect);img._onload_connect=img._onerror_connect=img._onabort_connect=null;}});_2d.clear();this._fireUpdateEnd();}this._removeList.clear();for(i=_2c.length-1;i>=0;i--){id=_2c[i];img=id&&_2b[id];if(img){_2f(img);}}if(this._map.navigationMode==="css-transforms"){var _31=this._active,_32=this._passives,_33;this._noDom=0;for(i=_32.length-1;i>=0;i--){_33=_32[i];if(_33._endHandle){_2e(_33._endHandle);}_33._matrix=_33._multiply=_33._endHandle=null;_33._marked=_33._remove=0;_32.splice(i,1);_2f(_33);}_31._matrix=_31._multiply=null;_31._marked=_31._remove=0;}this._tileIds=this._tiles=this._tileBounds=this._ct=this._loadingList=this._removeList=this._standby=null;},onResume:function(){this.inherited(arguments);this._tileIds=[];this._tiles=[];this._tileBounds=[];this._ct=null;this._removeList=new _a();this._loadingList=new _a();_f.show(this._div);this._enableDrawConnectors();this._wakeTimer=this._wakeTimer||setTimeout(_3.hitch(this,function(){if(!this.suspended){this._onExtentChangeHandler(this._map.extent,null,true,this._map.__LOD);}}),0);},_enableDrawConnectors:function(){var map=this._map,_34=_2.connect;if(map.navigationMode==="css-transforms"){this._onScaleHandler_connect=_34(map,"onScale",this,this._onScaleHandler);if(_e("esri-touch")||_e("esri-pointer")){this._standby=[];var _35=this,_36=function(){_35._noDom=1;};this._onPanStartHandler_connect=_34(map,"onPanStart",_36);this._onZoomStartHandler_connect=_34(map,"onZoomStart",_36);}}else{this._onZoomHandler_connect=_34(map,"onZoom",this,"_onZoomHandler");}this._onPanHandler_connect=_34(map,"onPan",this,"_onPanHandler");this._onExtentChangeHandler_connect=_34(map,"onExtentChange",this,"_onExtentChangeHandler");},_disableDrawConnectors:function(){var _37=_2.disconnect;_37(this._onPanHandler_connect);_37(this._onZoomHandler_connect);_37(this._onScaleHandler_connect);_37(this._onExtentChangeHandler_connect);_37(this._onPanStartHandler_connect);_37(this._onZoomStartHandler_connect);this._onPanHandler_connect=this._onZoomHandler_connect=this._onScaleHandler_connect=this._onExtentChangeHandler_connect=this._onPanStartHandler_connect=this._onZoomStartHandler_connect=null;},_onResizeHandler:function(_38,_39,_3a){var css={width:_39+"px",height:_3a+"px"},ds=_9.set,i;ds(this._div,css);if(this._map.navigationMode==="css-transforms"){if(this._active){ds(this._active,css);}for(i=this._passives.length-1;i>=0;i--){ds(this._passives[i],css);}}},_onExtentChangeHandler:function(_3b,_3c,_3d,lod){var map=this._map,i,_3e=this._standby,img,_3f;clearTimeout(this._wakeTimer);this._wakeTimer=null;if(map._isPanningOrZooming()){return;}if(map.navigationMode==="css-transforms"){if(_3d){for(i=this._passives.length-1;i>=0;i--){_3f=this._passives[i];_9.set(_3f,_c._css.names.transition,"none");if(_3f._marked){this._passives.splice(i,1);if(_3f.parentNode){_3f.parentNode.removeChild(_3f);}_6.destroy(_3f);}else{if(_3f.childNodes.length>0){_3f._multiply=_3f._multiply?_b.multiply(_3f._matrix,_3f._multiply):_3f._matrix;}}}}this._noDom=0;if(_3e&&_3e.length){for(i=_3e.length-1;i>=0;i--){img=_3e[i];_9.set(img,"visibility","visible");this._tilePopPop(img);_3e.splice(i,1);}}}this._fireUpdateStart();this._rrIndex=0;var ct=_10.getCandidateTileInfo(map,this.tileInfo,_3b),mv=map.__visibleDelta,id;if(!this._ct||ct.lod.level!==this._ct.lod.level||_3d){var _40=(ct&&this._ct&&ct.lod.level!==this._ct.lod.level);this._ct=ct;var _41=this._tiles,_42=this._tileIds,_43=this._tileBounds,_44=this._removeList,_45,il=_42.length;this._cleanUpRemovedImages();for(i=0;i<il;i++){id=_42[i];_45=_41[id];_43[id]=_42[i]=null;if((map.navigationMode==="css-transforms")&&_40&&_45.parentNode&&map.fadeOnZoom){_45._fadeOut=_40;_45.parentNode._remove++;}_44.add(_45);}if(_3d){this._tileIds=[];this._tiles=[];this._tileBounds=[];}}var mx=mv.x,my=mv.y;if(map.navigationMode==="css-transforms"){var css={};css[_c._css.names.transform]=_c._css.translate(mx,my);_9.set(this._div,css);}else{_9.set(this._div,{left:mx+"px",top:my+"px"});}this.__coords_dx=mx;this.__coords_dy=my;this._updateImages(new _12(0,0,mv.width,mv.height));if(this._loadingList.count===0){this.onUpdate();this._fireUpdateEnd();}else{this._fireOnUpdate=true;}var _46,_47,_48=this._tileW,_49=this._tileH;mv=new _12(-mv.x,-mv.y,mv.width,mv.height);for(i=this._tileIds.length-1;i>=0;i--){id=this._tileIds[i];if(id){img=this._tiles[id];_46=_8.getMarginBox(img);_47=new _12(_46.l,_46.t,_48,_49);if(map.navigationMode==="css-transforms"){_47.x=img._left;_47.y=img._top;}if(mv.intersects(_47)){this._tileBounds[id]=_47;}else{if(this._loadingList.contains(id)){this._tilePopPop(img);}_6.destroy(img);this._tileIds.splice(i,1);delete this._tileBounds[id];delete this._tiles[id];}}else{this._tileIds.splice(i,1);delete this._tileBounds[id];delete this._tiles[id];}}},_onPanHandler:function(_4a,_4b){var map=this._map,mv=map.__visibleDelta.offset(_4b.x,_4b.y);this.__coords_dx=this.__coords_dy=0;if(map.navigationMode==="css-transforms"){var css={};css[_c._css.names.transform]=_c._css.translate(mv.x,mv.y);_9.set(this._div,css);if(!_e("esri-touch")&&!_e("esri-pointer")){this._updateImages({x:-mv.x,y:-mv.y,width:mv.width,height:mv.height});}}else{_9.set(this._div,{left:mv.x+"px",top:mv.y+"px"});this._updateImages({x:-mv.x,y:-mv.y,width:mv.width,height:mv.height});}if(this._loadingList.count>0){this._fireUpdateStart();this._fireOnUpdate=true;}},_onScaleHandler:function(mtx,_4c){var i,css={},_4d=_c._css.names,map=this._map;for(i=this._passives.length-1;i>=0;i--){var _4e=this._passives[i];if(_4e.childNodes.length===0){this._passives.splice(i,1);_6.destroy(_4e);}else{if(_4e.style[_4d.transition]==="none"){_9.set(_4e,_4d.transition,_4d.transformName+" "+_14+"ms ease");}_9.set(_4e,_4d.transition,_4c?"none":(_4d.transformName+" "+_14+"ms ease"));_4e._matrix=mtx;css[_4d.transform]=_c._css.matrix(_4e._multiply?_b.multiply(mtx,_4e._multiply):mtx);_9.set(_4e,css);}}if(this._active&&this._active.childNodes.length===0){return;}_9.set(this._active,_4d.transition,_4c?"none":(_4d.transformName+" "+_14+"ms ease"));this._active._matrix=mtx;css[_4d.transform]=_c._css.matrix(this._active._matrix);_9.set(this._active,css);this._passives.push(this._active);css={position:"absolute",width:map.width+"px",height:map.height+"px",overflow:"visible"};css[_4d.transition]=_4d.transformName+" "+_14+"ms ease";_9.set((this._active=_6.create("div",null,this._div)),css);this._active._remove=0;if(map.fadeOnZoom){_6.place(this._active,this._div,"first");}},_onZoomHandler:function(_4f,_50,_51){var _52=_8.getMarginBox(this._div);_51=_51.offset(-_52.l,-_52.t);if(!this._previousScale||_50===1){this._previousScale=1;}var _53,_54=this._tileW*_50,_55=this._tileH*_50,_56=this._tileBounds,_57=this._tiles,_58=this._previousScale,_59=this._multiple,es=_9.set,_5a,_5b;var _5c=_e("ie");if(_5c&&_5c<8){_4.forEach(this._tileIds,function(id){_5b="";_53=_56[id];_5a=_57[id].style.margin.split(" ");_4.forEach(_5a,function(_5d){if(_5b!==""){_5b+=" ";}_5d=parseFloat(_5d);_5b+=(_5d/_58*_50+"px");});es(_57[id],{left:(_53.x-((_54-_53.width)*(_51.x-_53.x)/_53.width))+"px",top:(_53.y-((_55-_53.height)*(_51.y-_53.y)/_53.height))+"px",margin:_59!==1?_5b:"",zoom:_50});});}else{var _5e=_54*_59,_5f=_55*_59,_60,_61;_4.forEach(this._tileIds,function(id){_5b="";_53=_56[id];_60=(_53.x-((_54-_53.width)*(_51.x-_53.x)/_53.width));_61=(_53.y-((_55-_53.height)*(_51.y-_53.y)/_53.height));_5a=_57[id].style.margin.split(" ");_4.forEach(_5a,function(_62){if(_5b!==""){_5b+=" ";}_62=parseFloat(_62);_5b+=(_62/_58*_50+"px");});es(_57[id],{left:_60+"px",top:_61+"px",margin:_59!==1?_5b:"",width:_5e+"px",height:_5f+"px"});});}this._previousScale=_50;},_updateImages:function(_63){if(!this._ct){return;}var id,_64=this._tileW,_65=this._tileH,_66=this._ct,lod=_66.lod,_67=_66.tile,off=_67.offsets,_68=_67.coords,cr=_68.row,cc=_68.col,_69=lod.level,_6a=this.opacity,_6b=this._tileIds,_6c=this._loadingList,_6d=this._addImage,mId=this._map.id,tId=this.id,rx=_63.x,ry=_63.y,str=lod.startTileRow,etr=lod.endTileRow,stc=lod.startTileCol,etc=lod.endTileCol,_6e=_4.indexOf,r,c,mvx=-_63.x,mvy=-_63.y,_6f=off.x-this.__coords_dx,_70=off.y-this.__coords_dy,vx=((_64-_6f)+mvx),vy=((_65-_70)+mvy),_71=Math.ceil,_72=(vx>0)?(vx%_64):((_64-(Math.abs(vx)%_64))),_73=(vy>0)?(vy%_65):((_65-(Math.abs(vy)%_65))),_74=(rx>0)?Math.floor((rx+_6f)/_64):_71((rx-(_64-_6f))/_64),_75=(ry>0)?Math.floor((ry+_70)/_65):_71((ry-(_65-_70))/_65),_76=_74+_71((_63.width-_72)/_64),_77=_75+_71((_63.height-_73)/_65),_78,_79,_7a,_7b,col,row;if(this._wrap){_78=lod._frameInfo;_79=_78[0];_7a=_78[1];_7b=_78[2];}for(col=_74;col<=_76;col++){for(row=_75;row<=_77;row++){r=cr+row;c=cc+col;if(this._wrap){if(c<_7a){c=c%_79;c=c<_7a?c+_79:c;}else{if(c>_7b){c=c%_79;}}}if(r>=str&&r<=etr&&c>=stc&&c<=etc){id=mId+"_"+tId+"_tile_"+_69+"_"+row+"_"+col;if(_6e(_6b,id)===-1){_6c.add(id);_6b.push(id);_6d(_69,row,r,col,c,id,_64,_65,_6a,_67,off);}}}}},_cleanUpRemovedImages:function(){var _7c=this._removeList,dd=_6.destroy,i,_7d=_c._css.names;_7c.forEach(function(img){if(!img._fadeOut){img.style.filter="";img.style.zoom=1;dd(img);}});if(this._map.navigationMode==="css-transforms"){for(i=this._passives.length-1;i>=0;i--){var _7e=this._passives[i];if(_7e.childNodes.length===0){this._passives.splice(i,1);dd(_7e);}else{if(this._map.fadeOnZoom&&!_7e._marked&&(_7e._remove===_7e.childNodes.length)){_9.set(_7e,_7d.transition,"opacity 0.65s");_9.set(_7e,"opacity",0);_7e._marked=1;if(_e("ie")>=10){_7e.addEventListener(_7d.endEvent,this._transitionEnd,false);}else{_7e._endHandle=_2.connect(_7e,_7d.endEvent,this._transitionEnd);}}}}}_7c.clear();},_transitionEnd:function(evt){var _7f=evt.target,idx;if(evt.propertyName!=="opacity"){return;}if(_e("ie")>=10){_7f.removeEventListener(_c._css.names.endEvent,this._transitionEnd,false);}else{_2.disconnect(_7f._endHandle);_7f._endHandle=null;}idx=_4.indexOf(this._passives,_7f);if(idx>-1){this._passives.splice(idx,1);}if(_7f.parentNode){_7f.parentNode.removeChild(_7f);}_6.destroy(_7f);},_addImage:function(_80,row,r,col,c,id,_81,_82,_83,_84,_85){if(this._patchIE){var div=(this._tiles[id]=_6.create("div"));div.id=id;_7.add(div,"layerTile");_9.set(div,{left:((_81*col)-_85.x)+"px",top:((_82*row)-_85.y)+"px",width:_81+"px",height:_82+"px",filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+this.getTileUrl(_80,r,c)+"', sizingMethod='scale')"});if(_83<1){_9.set(div,"opacity",_83);}var _86=div.appendChild(_6.create("div"));_9.set(_86,{opacity:0,width:_81+"px",height:_82+"px"});this._div.appendChild(div);div=null;this._loadingList.remove(id);this._fireOnUpdateEvent();}else{var img=(this._tiles[id]=_6.create("img")),dc=_2.connect;img.id=id;_7.add(img,"layerTile");var _87=(_81*col)-_85.x,top=(_82*row)-_85.y,map=this._map,_88=_c._css.names,css={width:_81+"px",height:_82+"px",visibility:"hidden"};if(map.navigationMode==="css-transforms"){css[_88.transform]=_c._css.translate(_87,top);_9.set(img,css);img._left=_87;img._top=top;}else{css.left=_87+"px";css.top=top+"px";_9.set(img,css);}if(_83<1){_9.set(img,"opacity",_83);}img._onload_connect=dc(img,"onload",this,"_tileLoadHandler");img._onerror_connect=dc(img,"onerror",_3.hitch(this,"_tileErrorHandler",r,c));img._onabort_connect=dc(img,"onabort",this,"_tileAbortHandler");var url=this.getTileUrl(_80,r,c,img);if(url){if(this._failedRequests&&this._failedRequests[url]){_9.set(img,this._failedRequests[url].css);img.src=this._failedRequests[url].src;this._multiple=parseInt(this._failedRequests[url].css.width)/this._tileW;}else{this._multiple=1;img.src=url;}}if(map.navigationMode==="css-transforms"){this._active.appendChild(img);}else{this._div.appendChild(img);}img=null;}},getTileUrl:function(_89,row,col){},refresh:function(){if(!this.suspended){this._onExtentChangeHandler(this._map.extent,null,true,this._map.__LOD);}},_tilePopPop:function(img){var dd=_2.disconnect;dd(img._onload_connect);dd(img._onerror_connect);dd(img._onabort_connect);img._onload_connect=img._onerror_connect=img._onabort_connect=null;this._loadingList.remove(img.id);this._fireOnUpdateEvent();},_tileLoadHandler:function(evt){var img=evt.currentTarget;if(this._noDom){this._standby.push(img);return;}_9.set(img,"visibility","visible");this._tilePopPop(img);},_tileAbortHandler:function(evt){var img=evt.currentTarget;this.onError(new Error("Unable to load tile: "+img.src));_9.set(img,"visibility","hidden");this._tilePopPop(img);},_tileErrorHandler:function(r,c,evt){var img=evt.currentTarget,_8a=new _5(img.src),_8b=_8a.path.split("/"),_8c=parseInt(_8b[_8b.length-3]),_8d=this._ct.lod.level-_8c+1;this._multiple=Math.pow(2,_8d);if(!this._resampling||_8c===this._lowestLevel||this._resamplingTolerance===0||(this._resamplingTolerance&&Math.log(this._multiple)/Math.LN2>this._resamplingTolerance)){this.onError(new Error("Unable to load tile: "+img.src));_9.set(img,"visibility","hidden");this._tilePopPop(img);return;}this._resample(img,r,c);},_resample:function(img,r,c){var _8e=new _5(img.src),_8f=_8e.path.split("/"),_90=this._multiple,_91=parseInt(_8f[_8f.length-3])-1,_92=parseInt(r/_90),_93=parseInt(c/_90),_94=c%_90,_95=r%_90;var _96=this.getTileUrl(_91,_92,_93);var _97=this.getTileUrl(_91+Math.log(_90)/Math.LN2,r,c);var _98="-"+this._tileW*_95+"px",_99="-"+this._tileH*_94+"px",_9a=_98+" 0 0 "+_99,css={width:this._tileW*_90+"px",height:this._tileH*_90+"px",border:"4px",margin:_9a};if(!this._failedRequests){this._failedRequests={};}this._failedRequests[_97]={"src":_96,"css":css};_9.set(img,css);img.src=_96;},_fireOnUpdateEvent:function(){if(this._loadingList.count===0){this._cleanUpRemovedImages();if(this._fireOnUpdate){this._fireOnUpdate=false;this.onUpdate();this._fireUpdateEnd();}}},setOpacity:function(o){if(this.opacity!=o){this.onOpacityChange(this.opacity=o);}},onOpacityChange:function(){},_opacityChangeHandler:function(_9b){var djs=_9.set,i,j,_9c;if(this._map.navigationMode==="css-transforms"){if(this._active){_9c=this._active.childNodes;for(i=_9c.length-1;i>=0;i--){djs(_9c[i],"opacity",_9b);}}for(i=this._passives.length-1;i>=0;i--){_9c=this._passives[i].childNodes;for(j=_9c.length-1;j>=0;j--){djs(_9c[j],"opacity",_9b);}}return;}_9c=this._div.childNodes;for(i=_9c.length-1;i>=0;i--){djs(_9c[i],"opacity",_9b);}}});if(_e("extend-esri")){_3.setObject("layers.TiledMapServiceLayer",_15,_c);}return _15;});