1!function(R){var A,L,B,Y,S,j,b,O,Q,n,H,N,P;function G(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}function T(e,t,f){e.addEventListener(t,f,!1)}function ue(e,t,f){e.removeEventListener(t,f,!1)}function K(e){return n[e]?n[e].log:L}function c(e,t){q("log",e,t,K(e))}function Z(e,t){q("info",e,t,K(e))}function x(e,t){q("warn",e,t,!0)}function q(e,t,f,a){!0===a&&"object"==typeof window.console&&console[e](function fe(e){return S+"["+(t="Host page: "+e,(t=window.top!==window.self?window.parentIFrame&&window.parentIFrame.getId?window.parentIFrame.getId()+": "+e:"Nested host page: "+e:t)+"]");var t}(t),f)}function le(e){function t(){a("Height"),a("Width"),oe(function(){te(l),ee(r),E("onResized",l)},l,"init")}function a(g){var d=Number(n[r]["max"+g]),s=Number(n[r]["min"+g]),v=(g=g.toLowerCase(),Number(l[g]));c(r,"Checking "+g+" is in range "+s+"-"+d),v<s&&(v=s,c(r,"Set "+g+" to min value")),d<v&&(v=d,c(r,"Set "+g+" to max value")),l[g]=""+v}function i(m){return z.slice(z.indexOf(":")+Y+m)}function y(m,d){var s,v;s=function(){var F,h;I("Send Page Info","pageInfo:"+(F=document.body.getBoundingClientRect(),h=l.iframe.getBoundingClientRect(),JSON.stringify({iframeHeight:h.height,iframeWidth:h.width,clientHeight:Math.max(document.documentElement.clientHeight,window.innerHeight||0),clientWidth:Math.max(document.documentElement.clientWidth,window.innerWidth||0),offsetTop:parseInt(h.top-F.top,10),offsetLeft:parseInt(h.left-F.left,10),scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,documentHeight:document.documentElement.clientHeight,documentWidth:document.documentElement.clientWidth,windowHeight:window.innerHeight,windowWidth:window.innerWidth})),m,d)},P[v=d]||(P[v]=setTimeout(function(){P[v]=null,s()},32))}function M(m){return m=m.getBoundingClientRect(),$(r),{x:Math.floor(Number(m.left)+Number(b.x)),y:Math.floor(Number(m.top)+Number(b.y))}}function o(m){var d=m?M(l.iframe):{x:0,y:0},s={x:Number(l.width)+d.x,y:Number(l.height)+d.y};c(r,"Reposition requested from iFrame (offset x:"+d.x+" y:"+d.y+")"),window.top===window.self?(b=s,u(),c(r,"--")):window.parentIFrame?window.parentIFrame["scrollTo"+(m?"Offset":"")](s.x,s.y):x(r,"Unable to scroll to requested position, window.parentIFrame not found")}function u(){!1===E("onScroll",b)?ne():ee(r)}function k(m){var d,s;s=0===Number(l.width)&&0===Number(l.height)?{x:(d=i(9).split(":"))[1],y:d[0]}:{x:l.width,y:l.height},E(m,{iframe:l.iframe,screenX:Number(s.x),screenY:Number(s.y),type:l.type})}function E(m,d){return V(r,m,d)}var W,C,z=e.data,l={},r=null;if("[iFrameResizerChild]Ready"===z)for(var X in n)I("iFrame requested init",re(X),n[X].iframe,X);else S===(""+z).slice(0,j)&&z.slice(j).split(":")[0]in n?(l=function f(){var h,m=z.slice(j).split(":"),d=m[1]?parseInt(m[1],10):0,s=n[m[0]]&&n[m[0]].iframe,g=getComputedStyle(s);return{iframe:s,id:m[0],height:d+(h=g,"border-box"!==h.boxSizing?0:(h.paddingTop?parseInt(h.paddingTop,10):0)+(h=h.paddingBottom?parseInt(h.paddingBottom,10):0))+function(h){return"border-box"!==h.boxSizing?0:(h.borderTopWidth?parseInt(h.borderTopWidth,10):0)+(h=h.borderBottomWidth?parseInt(h.borderBottomWidth,10):0)}(g),width:m[2],type:m[3]}}(),n[r=l.id]&&(n[r].loaded=!0),(C=l.type in{true:1,false:1,undefined:1})&&c(r,"Ignoring init message from meta parent page"),!C&&(C=!0,n[W=r]||(C=!1,x(l.type+" No settings for "+W+". Message was: "+z)),C)&&(c(r,"Received: "+z),W=!0,null===l.iframe&&(x(r,"IFrame ("+l.id+") not found"),W=!1),W&&function p(){var m=e.origin,d=n[r]&&n[r].checkOrigin;if(d&&""+m!="null"&&!function(){if(d.constructor!==Array)return c(r,"Checking connection is from: "+(s=n[r]&&n[r].remoteHost)),m===s;var s,g=0,v=!1;for(c(r,"Checking connection is from allowed list of origins: "+d);g<d.length;g++)if(d[g]===m){v=!0;break}return v}())throw new Error("Unexpected message received from: "+m+" for "+l.iframe.id+". Message was: "+e.data+". This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.");return 1}()&&function he(){switch(n[r]&&n[r].firstRun&&n[r]&&(n[r].firstRun=!1),l.type){case"close"
1:U(l.iframe);break;case"message":g=i(6),c(r,"onMessage passed: {iframe: "+l.iframe.id+", message: "+g+"}"),E("onMessage",{iframe:l.iframe,message:JSON.parse(g)}),c(r,"--");break;case"mouseenter":k("onMouseEnter");break;case"mouseleave":k("onMouseLeave");break;case"autoResize":n[r].autoResize=JSON.parse(i(9));break;case"scrollTo":o(!1);break;case"scrollToOffset":o(!0);break;case"pageInfo":y(n[r]&&n[r].iframe,r),s=r,m("Add ",T),n[s]&&(n[s].stopPageInfo=d);break;case"pageInfoStop":n[r]&&n[r].stopPageInfo&&(n[r].stopPageInfo(),delete n[r].stopPageInfo);break;case"inPageLink":!function w(d){d=d.split("#")[1]||"";var s=decodeURIComponent(d);(s=document.getElementById(s)||document.getElementsByName(s)[0])?(s=M(s),c(r,"Moving to in page link (#"+d+") at x: "+s.x+" y: "+s.y),b={x:s.x,y:s.y},u(),c(r,"--")):window.top===window.self?c(r,"In page link #"+d+" not found"):window.parentIFrame?window.parentIFrame.moveToAnchor(d):c(r,"In page link #"+d+" not found and window.parentIFrame not found")}(i(9));break;case"reset":ie(l);break;case"init":t(),E("onInit",l.iframe);break;default:0===Number(l.width)&&0===Number(l.height)?x("Unsupported message received ("+l.type+"), this is likely due to the iframe containing a later version of iframe-resizer than the parent page"):t()}function m(v,F){function h(){n[s]?y(n[s].iframe,s):d()}["scroll","resize"].forEach(function(ce){c(s,v+ce+" listener for sendPageInfo"),F(window,ce,h)})}function d(){m("Remove ",ue)}var s,g}())):Z(r,"Ignored: "+z)}function V(e,t,f){var a=null,p=null;if(n[e]){if("function"!=typeof(a=n[e][t]))throw new TypeError(t+" on iFrame["+e+"] is not a function");p=a(f)}return p}function _(e){delete n[e=e.id]}function U(e){var t=e.id;if(!1===V(t,"onClose",t))c(t,"Close iframe cancelled by onClose event");else{c(t,"Removing iFrame: "+t);try{e.parentNode&&e.parentNode.removeChild(e)}catch(f){x(f)}V(t,"onClosed",t),c(t,"--"),_(e)}}function $(e){null===b&&c(e,"Get page position: "+(b={x:window.pageXOffset===R?document.documentElement.scrollLeft:window.pageXOffset,y:window.pageYOffset===R?document.documentElement.scrollTop:window.pageYOffset}).x+","+b.y)}function ee(e){null!==b&&(window.scrollTo(b.x,b.y),c(e,"Set page position: "+b.x+","+b.y),ne())}function ne(){b=null}function ie(e){c(e.id,"Size reset requested by "+("init"===e.type?"host page":"iFrame")),$(e.id),oe(function(){te(e),I("reset","reset",e.iframe,e.id)},e,"reset")}function te(e){function f(p){var i;i=p,e.id?(e.iframe.style[i]=e[i]+"px",c(e.id,"IFrame ("+a+") "+i+" set to "+e[i]+"px")):c("undefined","messageData id not set"),function t(p){var i;function y(){Object.keys(n).forEach(function(o){function u(k){return"0px"===(n[w]&&n[w].iframe.style[k])}var w;n[w=o]&&null!==n[w].iframe.offsetParent&&(u("height")||u("width"))&&I("Visibility change","resize",n[w].iframe,w)})}!B&&"0"===e[p]&&(B=!0,c(a,"Hidden iFrame detected, creating visibility listener"),p=G())&&(i=document.querySelector("body"),new p(function M(o){c("window","Mutation observed: "+o[0].target+" "+o[0].type),D(y,16)}).observe(i,{attributes:!0,attributeOldValue:!1,characterData:!0,characterDataOldValue:!1,childList:!0,subtree:!0}))}(p)}var a=e.iframe.id;n[a]&&(n[a].sizeHeight&&f("height"),n[a].sizeWidth)&&f("width")}function oe(e,t,f){f!==t.type&&O&&!window.jasmine?(c(t.id,"Requesting animation frame"),O(e)):e()}function I(e,t,f,a,p){var M=!1;n[a=a||f.id]&&(function i(){var o;f&&"contentWindow"in f&&null!==f.contentWindow?(c(a,"["+e+"] Sending msg to iframe["+a+"] ("+t+") targetOrigin: "+(o=n[a]&&n[a].targetOrigin)),f.contentWindow.postMessage(S+t,o)):x(a,"["+e+"] IFrame("+a+") not found")}(),function y(){p&&n[a]&&n[a].warningTimeout&&(n[a].msgTimeout=setTimeout(function(){!n[a]||n[a].loaded||M||(M=!0,x(a,"IFrame has not responded within "+n[a].warningTimeout/1e3+" seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning."))},n[a].warningTimeout))}())}function re(e){return e+":"+n[e].bodyMarginV1+":"+n[e].sizeWidth+":"+n[e].log+":"+n[e].interval+":"+n[e].enablePublicMethods+":"+n[e].autoResize+":"+n[e].bodyMargin+":"+n[e].heightCalculationMethod+":"+n[e].bodyBackgroun
1d+":"+n[e].bodyPadding+":"+n[e].tolerance+":"+n[e].inPageLinks+":"+n[e].resizeFrom+":"+n[e].widthCalculationMethod+":"+n[e].mouseEvents}function ae(e,t){function a(o){var u=o.split("Callback");2===u.length&&(this[u="on"+u[0].charAt(0).toUpperCase()+u[0].slice(1)]=this[o],delete this[o],x(i,"Deprecated: '"+o+"' has been renamed '"+u+"'. The old method will be removed in the next major version."))}var i=function(o){if("string"!=typeof o)throw new TypeError("Invaild id for iFrame. Expected String");var u;return""===o&&(e.id=(u=t&&t.id||N.id+A++,null!==document.getElementById(u)&&(u+=A++),o=u),L=(t||{}).log,c(o,"Added missing iframe ID: "+o+" ("+e.src+")")),o}(e.id);if(i in n&&"iFrameResizer"in e)x(i,"Ignored iFrame, already setup.");else{switch(function p(o){if(o=o||{},n[i]=Object.create(null),n[i].iframe=e,n[i].firstRun=!0,n[i].remoteHost=e.src&&e.src.split("/").slice(0,3).join("/"),"object"!=typeof o)throw new TypeError("Options is not an object");Object.keys(o).forEach(a,o);var u,w=o;for(u in N)Object.prototype.hasOwnProperty.call(N,u)&&(n[i][u]=(Object.prototype.hasOwnProperty.call(w,u)?w:N)[u]);n[i]&&(n[i].targetOrigin=!0!==n[i].checkOrigin||""===(o=n[i].remoteHost)||null!==o.match(/^(about:blank|javascript:|file:\/\/)/)?"*":o)}(t),c(i,"IFrame scrolling "+(n[i]&&n[i].scrolling?"enabled":"disabled")+" for "+i),e.style.overflow=!1===(n[i]&&n[i].scrolling)?"hidden":"auto",n[i]&&n[i].scrolling){case"omit":break;case!0:e.scrolling="yes";break;case!1:e.scrolling="no";break;default:e.scrolling=n[i]?n[i].scrolling:"no"}M("Height"),M("Width"),y("maxHeight"),y("minHeight"),y("maxWidth"),y("minWidth"),"number"!=typeof(n[i]&&n[i].bodyMargin)&&"0"!==(n[i]&&n[i].bodyMargin)||(n[i].bodyMarginV1=n[i].bodyMargin,n[i].bodyMargin=n[i].bodyMargin+"px"),function f(o){var u=G();u&&e.parentNode&&new u(function(w){w.forEach(function(k){Array.prototype.slice.call(k.removedNodes).forEach(function(E){E===e&&U(e)})})}).observe(e.parentNode,{childList:!0}),T(e,"load",function(){I("iFrame.onload",o,e,R,!0),(!n[i]||!n[i].firstRun)&&n[i]&&n[i].heightCalculationMethod in Q&&ie({iframe:e,height:0,width:0,type:"init"})}),I("init",o,e,R,!0)}(re(i)),n[i]&&(n[i].iframe.iFrameResizer={close:U.bind(null,n[i].iframe),removeListeners:_.bind(null,n[i].iframe),resize:I.bind(null,"Window resize","resize",n[i].iframe),moveToAnchor:function(o){I("Move to anchor","moveToAnchor:"+o,n[i].iframe,i)},sendMessage:function(o){I("Send Message","message:"+(o=JSON.stringify(o)),n[i].iframe,i)}})}function y(o){var u=n[i][o];1/0!==u&&0!==u&&(e.style[o]="number"==typeof u?u+"px":u,c(i,"Set "+o+" = "+e.style[o]))}function M(o){if(n[i]["min"+o]>n[i]["max"+o])throw new Error("Value for min"+o+" can not be greater than max"+o)}}function D(e,t){null===H&&(H=setTimeout(function(){H=null,e()},t))}function se(){"hidden"!==document.visibilityState&&(c("document","Trigger event: Visibility change"),D(function(){de("Tab Visible","resize")},16))}function de(e,t){Object.keys(n).forEach(function(f){var a;n[a=f]&&"parent"===n[a].resizeFrom&&n[a].autoResize&&!n[a].firstRun&&I(e,t,n[f].iframe,f)})}function J(){function e(p,i){if(i){if(!i.tagName)throw new TypeError("Object is not a valid DOM element");if("IFRAME"!==i.tagName.toUpperCase())throw new TypeError("Expected <IFRAME> tag, found <"+i.tagName+">");ae(i,p),t.push(i)}}for(var t,f=["moz","webkit","o","ms"],a=0;a<f.length&&!O;a+=1)O=window[f[a]+"RequestAnimationFrame"];return O?O=O.bind(window):c("setup","RequestAnimationFrame not supported"),function me(){T(window,"message",le),T(window,"resize",function(){c("window","Trigger event: resize"),D(function(){de("Window resize","resize")},16)}),T(document,"visibilitychange",se),T(document,"-webkit-visibilitychange",se)}(),function(p,i){var y;switch(t=[],(y=p)&&y.enablePublicMethods&&x("enablePublicMethods option has been removed, public methods are now always available in the iFrame"),typeof i){case"undefined":case"string":Array.prototype.forEach.call(document.querySelectorAll(i||"iframe"),e.bind(R,p));break;case"object":e(p,i);break;default:throw new TypeError("Unexpected data type ("+typeof i+")")}return t}}typeof window<"u"&&(A=0,B=L=!1,Y=7,j=(S="[iFrameSizer]").length,b=null,O=window.requestAnimationFrame,Q=Object.freeze({max:1,scroll:1,bodyScroll:1,documentElementScroll:1}),n={}
1,H=null,N=Object.freeze({autoResize:!0,bodyBackground:null,bodyMargin:null,bodyMarginV1:8,bodyPadding:null,checkOrigin:!0,inPageLinks:!1,enablePublicMethods:!0,heightCalculationMethod:"bodyOffset",id:"iFrameResizer",interval:32,log:!1,maxHeight:1/0,maxWidth:1/0,minHeight:0,minWidth:0,mouseEvents:!0,resizeFrom:"parent",scrolling:!1,sizeHeight:!0,sizeWidth:!1,warningTimeout:5e3,tolerance:0,widthCalculationMethod:"scroll",onClose:function(){return!0},onClosed:function(){},onInit:function(){},onMessage:function(){x("onMessage function not defined")},onMouseEnter:function(){},onMouseLeave:function(){},onResized:function(){},onScroll:function(){return!0}}),P={},window.jQuery!==R&&function ge(e){e.fn?e.fn.iFrameResize||(e.fn.iFrameResize=function(t){return this.filter("iframe").each(function(f,a){ae(a,t)}).end()}):Z("","Unable to bind to jQuery, it is not fully loaded.")}(window.jQuery),"function"==typeof define&&define.amd?define([],J):"object"==typeof module&&"object"==typeof module.exports&&(module.exports=J()),window.iFrameResize=window.iFrameResize||J())}();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.