chrome-devtools-frontend 1.0.1581449 → 1.0.1582745
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agents/prompts/merging-devtools-module.md +144 -0
- package/agents/prompts/ui-widgets.md +351 -0
- package/agents/prompts/verification.md +2 -1
- package/docs/contributing/README.md +5 -6
- package/docs/contributing/changes.md +1 -2
- package/docs/styleguide/ux/README.md +1 -1
- package/front_end/core/sdk/OverlayModel.ts +4 -2
- package/front_end/core/sdk/RemoteObject.ts +7 -1
- package/front_end/core/sdk/StorageKeyManager.ts +6 -1
- package/front_end/core/sdk/Target.ts +4 -2
- package/front_end/entrypoint_template.html +5 -1
- package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +31 -40
- package/front_end/entrypoints/greendev_floaty/floaty.css +41 -1
- package/front_end/entrypoints/greendev_floaty/floaty.html +8 -1
- package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +5 -5
- package/front_end/entrypoints/node_app/app/NodeMain.ts +19 -1
- package/front_end/entrypoints/node_app/node_app.ts +34 -0
- package/front_end/generated/InspectorBackendCommands.ts +1 -1
- package/front_end/generated/SupportedCSSProperties.js +2 -0
- package/front_end/generated/protocol.ts +0 -6
- package/front_end/models/ai_assistance/AiConversation.ts +10 -0
- package/front_end/models/ai_assistance/agents/AiAgent.ts +2 -0
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.snapshot.txt +26 -4
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +85 -7
- package/front_end/models/ai_assistance/agents/NetworkAgent.ts +2 -6
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +66 -2
- package/front_end/models/computed_style/ComputedStyleModel.ts +26 -0
- package/front_end/models/greendev/Prototypes.ts +1 -10
- package/front_end/models/issues_manager/ConnectionAllowlistIssue.ts +75 -0
- package/front_end/models/issues_manager/CookieIssue.ts +0 -28
- package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +0 -30
- package/front_end/models/issues_manager/IssuesManager.ts +5 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidAllowlistItemType.md +12 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidHeader.md +12 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistInvalidUrlPattern.md +8 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistItemNotInnerList.md +12 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistMoreThanOneList.md +7 -0
- package/front_end/models/issues_manager/descriptions/connectionAllowlistReportingEndpointNotToken.md +10 -0
- package/front_end/models/issues_manager/issues_manager.ts +2 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +93 -6
- package/front_end/panels/ai_assistance/components/ChatInput.ts +8 -4
- package/front_end/panels/application/ApplicationPanelSidebar.ts +13 -11
- package/front_end/panels/application/DOMStorageModel.ts +1 -1
- package/front_end/panels/application/ResourcesPanel.ts +10 -5
- package/front_end/panels/application/preloading/PreloadingView.ts +8 -1
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +4 -1
- package/front_end/panels/application/preloading/components/PreloadingGrid.ts +2 -1
- package/front_end/panels/application/preloading/components/PreloadingString.ts +12 -3
- package/front_end/panels/application/preloading/helper/PreloadingForward.ts +14 -0
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +37 -3
- package/front_end/panels/changes/ChangesSidebar.ts +2 -6
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +13 -3
- package/front_end/panels/common/aiCodeCompletionTeaser.css +6 -0
- package/front_end/panels/console/ConsoleSidebar.ts +3 -11
- package/front_end/panels/console_counters/WarningErrorCounter.ts +16 -10
- package/front_end/panels/elements/ComputedStyleWidget.ts +55 -37
- package/front_end/panels/elements/PlatformFontsWidget.ts +23 -10
- package/front_end/panels/greendev/GreenDevPanel.css +42 -1
- package/front_end/panels/greendev/GreenDevPanel.ts +30 -1
- package/front_end/panels/lighthouse/LighthouseStartView.ts +3 -5
- package/front_end/panels/lighthouse/lighthouseStartView.css +6 -0
- package/front_end/panels/network/NetworkLogView.ts +6 -6
- package/front_end/panels/network/RequestInitiatorView.ts +27 -19
- package/front_end/panels/network/RequestTimingView.ts +1 -1
- package/front_end/panels/settings/AISettingsTab.ts +1 -5
- package/front_end/panels/settings/KeybindsSettingsTab.ts +4 -3
- package/front_end/panels/settings/SettingsScreen.ts +0 -51
- package/front_end/panels/sources/OutlineQuickOpen.ts +19 -0
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +4 -1
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +1 -1
- package/front_end/panels/timeline/TimelinePanel.ts +25 -0
- package/front_end/panels/timeline/TimelineUIUtils.ts +13 -16
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/lighthouse/README.chromium +2 -2
- package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +145 -144
- package/front_end/third_party/lighthouse/report/bundle.js +12 -5
- package/front_end/third_party/lighthouse/report-assets/report-generator.mjs +2 -2
- package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +5 -1
- package/front_end/ui/legacy/ListControl.ts +28 -1
- package/front_end/ui/legacy/Toolbar.ts +4 -4
- package/front_end/ui/legacy/Treeoutline.ts +5 -5
- package/front_end/ui/legacy/UIUtils.ts +26 -10
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +10 -13
- package/front_end/ui/legacy/components/utils/Linkifier.ts +4 -7
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -0
- package/inspector_overlay/main.ts +18 -3
- package/inspector_overlay/tool_green_dev_anchors.css +54 -0
- package/inspector_overlay/tool_green_dev_anchors.ts +164 -0
- package/inspector_overlay/tool_persistent.ts +14 -0
- package/package.json +1 -1
- package/docs/contributing/design.md +0 -166
- package/docs/design_guidelines.md +0 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +0 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +0 -1
- package/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +0 -1
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Lighthouse v13.0.
|
|
2
|
+
* Lighthouse v13.0.2 (Feb 09 2026)
|
|
3
3
|
*
|
|
4
4
|
* Automated auditing, performance metrics, and best practices for the web.
|
|
5
5
|
*
|
|
6
6
|
* @homepage https://github.com/GoogleChrome/lighthouse#readme
|
|
7
|
-
* @author Copyright
|
|
7
|
+
* @author Copyright 2026 Google LLC
|
|
8
8
|
* @license Apache-2.0
|
|
9
9
|
*
|
|
10
10
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
11
11
|
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
|
12
12
|
*/
|
|
13
|
-
"use strict";(()=>{var EG=Object.create;var El=Object.defineProperty;var TG=Object.getOwnPropertyDescriptor;var xG=Object.getOwnPropertyNames;var SG=Object.getPrototypeOf,CG=Object.prototype.hasOwnProperty;var i=(e,t)=>El(e,"name",{value:t,configurable:!0});var g=(e,t)=>()=>(e&&(t=e(e=0)),t);var ve=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),x=(e,t)=>{for(var n in t)El(e,n,{get:t[n],enumerable:!0})},AI=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of xG(t))!CG.call(e,a)&&a!==n&&El(e,a,{get:()=>t[a],enumerable:!(r=TG(t,a))||r.enumerable});return e};var
|
|
14
|
-
function WG(e){throw new Error("process.binding is not supported")}function VG(){return"/"}function $G(e){throw new Error("process.chdir is not supported")}function YG(){return 0}function XG(e){var t=KG.call(Es)*.001,n=Math.floor(t),r=Math.floor(t%1*1e9);return e&&(n=n-e[0],r=r-e[1],r<0&&(n--,r+=1e9)),[n,r]}function ZG(){var e=new Date,t=e-JG;return t/1e3}var io,so,wa,Ts,gi,ip,IG,DG,AG,NG,MG,OG,PG,LG,FG,UG,BG,jG,HG,qG,zG,GG,Es,KG,JG,
|
|
15
|
-
YG,"umask");Es=globalThis.performance||{},KG=Es.now||Es.mozNow||Es.msNow||Es.oNow||Es.webkitNow||function(){return new Date().getTime()};i(XG,"hrtime");JG=new Date;i(ZG,"uptime");
|
|
13
|
+
"use strict";(()=>{var EG=Object.create;var El=Object.defineProperty;var TG=Object.getOwnPropertyDescriptor;var xG=Object.getOwnPropertyNames;var SG=Object.getPrototypeOf,CG=Object.prototype.hasOwnProperty;var i=(e,t)=>El(e,"name",{value:t,configurable:!0});var g=(e,t)=>()=>(e&&(t=e(e=0)),t);var ve=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),x=(e,t)=>{for(var n in t)El(e,n,{get:t[n],enumerable:!0})},AI=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of xG(t))!CG.call(e,a)&&a!==n&&El(e,a,{get:()=>t[a],enumerable:!(r=TG(t,a))||r.enumerable});return e};var En=(e,t,n)=>(n=e!=null?EG(SG(e)):{},AI(t||!e||!e.__esModule?El(n,"default",{value:e,enumerable:!0}):n,e)),kG=e=>AI(El({},"__esModule",{value:!0}),e);function NI(){throw new Error("setTimeout has not been defined")}function MI(){throw new Error("clearTimeout has not been defined")}function OI(e){if(io===setTimeout)return setTimeout(e,0);if((io===NI||!io)&&setTimeout)return io=setTimeout,setTimeout(e,0);try{return io(e,0)}catch{try{return io.call(null,e,0)}catch{return io.call(this,e,0)}}}function RG(e){if(so===clearTimeout)return clearTimeout(e);if((so===MI||!so)&&clearTimeout)return so=clearTimeout,clearTimeout(e);try{return so(e)}catch{try{return so.call(null,e)}catch{return so.call(this,e)}}}function _G(){!Ts||!gi||(Ts=!1,gi.length?wa=gi.concat(wa):ip=-1,wa.length&&PI())}function PI(){if(!Ts){var e=OI(_G);Ts=!0;for(var t=wa.length;t;){for(gi=wa,wa=[];++ip<t;)gi&&gi[ip].run();ip=-1,t=wa.length}gi=null,Ts=!1,RG(e)}}function Tn(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];wa.push(new LI(e,t)),wa.length===1&&!Ts&&OI(PI)}function LI(e,t){this.fun=e,this.array=t}function yi(){}
|
|
14
|
+
function WG(e){throw new Error("process.binding is not supported")}function VG(){return"/"}function $G(e){throw new Error("process.chdir is not supported")}function YG(){return 0}function XG(e){var t=KG.call(Es)*.001,n=Math.floor(t),r=Math.floor(t%1*1e9);return e&&(n=n-e[0],r=r-e[1],r<0&&(n--,r+=1e9)),[n,r]}function ZG(){var e=new Date,t=e-JG;return t/1e3}var io,so,wa,Ts,gi,ip,IG,DG,AG,NG,MG,OG,PG,LG,FG,UG,BG,jG,HG,qG,zG,GG,Es,KG,JG,xn,co=g(()=>{d();i(NI,"defaultSetTimout");i(MI,"defaultClearTimeout");io=NI,so=MI;typeof globalThis.setTimeout=="function"&&(io=setTimeout);typeof globalThis.clearTimeout=="function"&&(so=clearTimeout);i(OI,"runTimeout");i(RG,"runClearTimeout");wa=[],Ts=!1,ip=-1;i(_G,"cleanUpNextTick");i(PI,"drainQueue");i(Tn,"nextTick");i(LI,"Item");LI.prototype.run=function(){this.fun.apply(null,this.array)};IG="browser",DG="browser",AG=!0,NG={},MG=[],OG="",PG={},LG={},FG={};i(yi,"noop");UG=yi,BG=yi,jG=yi,HG=yi,qG=yi,zG=yi,GG=yi;i(WG,"binding");i(VG,"cwd");i($G,"chdir");i(
|
|
15
|
+
YG,"umask");Es=globalThis.performance||{},KG=Es.now||Es.mozNow||Es.msNow||Es.oNow||Es.webkitNow||function(){return new Date().getTime()};i(XG,"hrtime");JG=new Date;i(ZG,"uptime");xn={nextTick:Tn,title:IG,browser:AG,env:NG,argv:MG,version:OG,versions:PG,on:UG,addListener:BG,once:jG,off:HG,removeListener:qG,removeAllListeners:zG,emit:GG,binding:WG,cwd:VG,chdir:$G,umask:YG,hrtime:XG,platform:DG,release:LG,config:FG,uptime:ZG}});var d=g(()=>{"use strict";co();globalThis.process=xn});function jI(){M1=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,n=e.length;t<n;++t)Yr[t]=e[t],pr[e.charCodeAt(t)]=t;pr[45]=62,pr[95]=63}function eW(e){M1||jI();var t,n,r,a,o,s,c=e.length;if(c%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o=e[c-2]==="="?2:e[c-1]==="="?1:0,s=new QG(c*3/4-o),r=o>0?c-4:c;var l=0;for(t=0,n=0;t<r;t+=4,n+=3)a=pr[e.charCodeAt(t)]<<18|pr[e.charCodeAt(t+1)]<<12|pr[e.charCodeAt(t+2)]<<6|pr[e.charCodeAt(t+3)],s[l++]=a>>16&255,s[l++]=a>>8&255,s[l++]=a&255;return o===2?(a=pr[e.charCodeAt(t)]<<2|pr[e.charCodeAt(t+1)]>>4,s[l++]=a&255):o===1&&(a=pr[e.charCodeAt(t)]<<10|pr[e.charCodeAt(t+1)]<<4|pr[e.charCodeAt(t+2)]>>2,s[l++]=a>>8&255,s[l++]=a&255),s}function tW(e){return Yr[e>>18&63]+Yr[e>>12&63]+Yr[e>>6&63]+Yr[e&63]}function nW(e,t,n){for(var r,a=[],o=t;o<n;o+=3)r=(e[o]<<16)+(e[o+1]<<8)+e[o+2],a.push(tW(r));return a.join("")}function FI(e){M1||jI();for(var t,n=e.length,r=n%3,a="",o=[],s=16383,c=0,l=n-r;c<l;c+=
|
|
16
16
|
s)o.push(nW(e,c,c+s>l?l:c+s));return r===1?(t=e[n-1],a+=Yr[t>>2],a+=Yr[t<<4&63],a+="=="):r===2&&(t=(e[n-2]<<8)+e[n-1],a+=Yr[t>>10],a+=Yr[t>>4&63],a+=Yr[t<<2&63],a+="="),o.push(a),o.join("")}function lp(e,t,n,r,a){var o,s,c=a*8-r-1,l=(1<<c)-1,u=l>>1,m=-7,p=n?a-1:0,f=n?-1:1,h=e[t+p];for(p+=f,o=h&(1<<-m)-1,h>>=-m,m+=c;m>0;o=o*256+e[t+p],p+=f,m-=8);for(s=o&(1<<-m)-1,o>>=-m,m+=r;m>0;s=s*256+e[t+p],p+=f,m-=8);if(o===0)o=1-u;else{if(o===l)return s?NaN:(h?-1:1)*(1/0);s=s+Math.pow(2,r),o=o-u}return(h?-1:1)*s*Math.pow(2,o-r)}function HI(e,t,n,r,a,o){var s,c,l,u=o*8-a-1,m=(1<<u)-1,p=m>>1,f=a===23?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:o-1,y=r?1:-1,b=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(c=isNaN(t)?1:0,s=m):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),s+p>=1?t+=f/l:t+=f*Math.pow(2,1-p),t*l>=2&&(s++,l/=2),s+p>=m?(c=0,s=m):s+p>=1?(c=(t*l-1)*Math.pow(2,a),s=s+p):(c=t*Math.pow(2,p-1)*Math.pow(2,a),s=0));a>=8;e[n+h]=c&255,h+=y,c/=256,a-=8);for(s=s<<a|c,u+=
|
|
17
17
|
a;u>0;e[n+h]=s&255,h+=y,s/=256,u-=8);e[n+h-y]|=b*128}function sp(){return H.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Ea(e,t){if(sp()<t)throw new RangeError("Invalid typed array length");return H.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=H.prototype):(e===null&&(e=new H(t)),e.length=t),e}function H(e,t,n){if(!H.TYPED_ARRAY_SUPPORT&&!(this instanceof H))return new H(e,t,n);if(typeof e=="number"){if(typeof t=="string")throw new Error("If encoding is specified then the first argument must be a string");return O1(this,e)}return zI(this,e,t,n)}function zI(e,t,n,r){if(typeof t=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer?sW(e,t,n,r):typeof t=="string"?iW(e,t,n):cW(e,t)}function GI(e){if(typeof e!="number")throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function oW(e,t,n,r){return GI(t),t<=0?Ea(e,t):n!==void 0?typeof r==
|
|
18
18
|
"string"?Ea(e,t).fill(n,r):Ea(e,t).fill(n):Ea(e,t)}function O1(e,t){if(GI(t),e=Ea(e,t<0?0:P1(t)|0),!H.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function iW(e,t,n){if((typeof n!="string"||n==="")&&(n="utf8"),!H.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=WI(t,n)|0;e=Ea(e,r);var a=e.write(t,n);return a!==r&&(e=e.slice(0,a)),e}function N1(e,t){var n=t.length<0?0:P1(t.length)|0;e=Ea(e,n);for(var r=0;r<n;r+=1)e[r]=t[r]&255;return e}function sW(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return n===void 0&&r===void 0?t=new Uint8Array(t):r===void 0?t=new Uint8Array(t,n):t=new Uint8Array(t,n,r),H.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=H.prototype):e=N1(e,t),e}function cW(e,t){if(Kr(t)){var n=P1(t.length)|0;return e=Ea(e,n),e.length===0||t.copy(e,0,0,n),e}if(t){if(typeof ArrayBuffer<"u"&&t.buffer instanceof ArrayBuffer||
|
|
@@ -46,10 +46,10 @@ return}}}}i(jW,"parse");function HW(e){var t=Math.abs(e);return t>=bi?Math.round
|
|
|
46
46
|
n.namespaces&&(h=n.namespaces,y=n.enabled(m)),y),"get"),set:i(w=>{f=w},"set")}),typeof n.init=="function"&&n.init(b),b}i(n,"createDebug");function r(m,p){let f=n(this.namespace+(typeof p>"u"?":":p)+m);return f.log=this.log,f}i(r,"extend");function a(m){n.save(m),n.namespaces=m,n.names=[],n.skips=[];let p,f=(typeof m=="string"?m:"").split(/[\s,]+/),h=f.length;for(p=0;p<h;p++)f[p]&&(m=f[p].replace(/\*/g,".*?"),m[0]==="-"?n.skips.push(new RegExp("^"+m.slice(1)+"$")):n.names.push(new RegExp("^"+m+"$")))}i(a,"enable");function o(){let m=[...n.names.map(c),...n.skips.map(c).map(p=>"-"+p)].join(",");return n.enable(""),m}i(o,"disable");function s(m){if(m[m.length-1]==="*")return!0;let p,f;for(p=0,f=n.skips.length;p<f;p++)if(n.skips[p].test(m))return!1;for(p=0,f=n.names.length;p<f;p++)if(n.names[p].test(m))return!0;return!1}i(s,"enabled");function c(m){return m.toString().substring(2,m.toString().length-2).replace(/\.\*\?$/,"*")}i(c,"toNamespace");function l(m){return m instanceof Error?m.stack||
|
|
47
47
|
m.message:m}i(l,"coerce");function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return i(u,"destroy"),n.enable(n.load()),n}i(zW,"setup");iD.exports=zW});var cD=ve((ar,fp)=>{d();ar.formatArgs=WW;ar.save=VW;ar.load=$W;ar.useColors=GW;ar.storage=YW();ar.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();ar.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#\
|
|
48
48
|
FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function GW(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}i(GW,"useColors");function WW(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+fp.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(
|
|
49
|
-
1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(n++,a==="%c"&&(r=n))}),e.splice(r,0,t)}i(WW,"formatArgs");ar.log=console.debug||console.log||(()=>{});function VW(e){try{e?ar.storage.setItem("debug",e):ar.storage.removeItem("debug")}catch{}}i(VW,"save");function $W(){let e;try{e=ar.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}i($W,"load");function YW(){try{return localStorage}catch{}}i(YW,"localstorage");fp.exports=sD()(ar);var{formatters:KW}=fp.exports;KW.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});function hp(e){if(!e)throw new Error("name must be non-empty")}function XW(e,t){for(var n=0,r=e.length,a;n<r;)a=n+r>>>1,e[a].startTime<t.startTime?n=a+1:r=a;e.splice(n,0,t)}var
|
|
50
|
-
|
|
51
|
-
mo.default.enable("LH:*, -LH:*:verbose")}}static formatProtocol(t,n,r){let a=!
|
|
52
|
-
|
|
49
|
+
1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(n++,a==="%c"&&(r=n))}),e.splice(r,0,t)}i(WW,"formatArgs");ar.log=console.debug||console.log||(()=>{});function VW(e){try{e?ar.storage.setItem("debug",e):ar.storage.removeItem("debug")}catch{}}i(VW,"save");function $W(){let e;try{e=ar.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}i($W,"load");function YW(){try{return localStorage}catch{}}i(YW,"localstorage");fp.exports=sD()(ar);var{formatters:KW}=fp.exports;KW.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});function hp(e){if(!e)throw new Error("name must be non-empty")}function XW(e,t){for(var n=0,r=e.length,a;n<r;)a=n+r>>>1,e[a].startTime<t.startTime?n=a+1:r=a;e.splice(n,0,t)}var Pn,lD,vp,bp,Sl,wp,gp,yp,uD=g(()=>{d();Pn=typeof performance<"u"&&performance,lD=Pn&&Pn.now?function(){return Pn.now()}:function(){return Date.now()};i(hp,"throwIfEmpty");i(XW,"insertSorted");Pn&&Pn.mark&&Pn.getEntriesByName&&Pn.getEntriesByType&&Pn.clearMeasures?(vp=i(function(e){hp(e),Pn.mark("start "+e)},"mark"),bp=i(function(e){hp(e),Pn.mark("end "+e),Pn.measure(e,"start "+e,"end "+e);var t=Pn.getEntriesByName(e);return t[t.length-1]},"stop"),Sl=i(function(){return Pn.getEntriesByType("measure")},"getEntries"),wp=i(function(){Pn.clearMarks(),Pn.clearMeasures()},"clear")):(gp={},yp=[],vp=i(function(e){hp(e);var t=lD();gp["$"+e]=t},"mark"),bp=i(function(e){hp(e);var t=lD(),n=gp["$"+e];if(!n)throw new Error("no known mark: "+e);var r={startTime:n,name:e,duration:t-n,entryType:"measure"};return XW(yp,r),r},"stop"),
|
|
50
|
+
Sl=i(function(){return yp},"getEntries"),wp=i(function(){gp={},yp=[]},"clear"))});var mo,uo,ks,Rs,F1,dD,ZW,mD,_s,M,Ve=g(()=>{"use strict";d();co();Ta();mo=En(cD(),1);uD();uo=xn.platform==="win32",ks=xn.browser,Rs={red:ks?"crimson":1,yellow:ks?"gold":3,cyan:ks?"darkturquoise":6,green:ks?"forestgreen":2,blue:ks?"steelblue":4,magenta:ks?"palevioletred":5};mo.default.colors=[Rs.cyan,Rs.green,Rs.blue,Rs.magenta];F1=class extends Ye{static{i(this,"Emitter")}constructor(t){super(t)}issueStatus(t,n){(t==="status"||t==="statusEnd")&&this.emit(t,[t,...n])}issueWarning(t,n){this.emit("warning",[t,...n])}},dD={},ZW=25,_s=class e{static{i(this,"Log")}static _logToStdErr(t,n){e.loggerfn(t)(...n)}static loggerfn(t){t=`LH:${t}`;let n=dD[t];return n||(n=(0,mo.default)(t),dD[t]=n,t.endsWith("error")?n.color=Rs.red:t.endsWith("warn")&&(n.color=Rs.yellow)),n}static setLevel(t){switch(mD=t,t){case"silent":mo.default.enable("-LH:*");break;case"verbose":mo.default.enable("LH:*");break;case"warn":mo.default.enable("-LH:*, LH:*:warn, LH:*:error");break;case"error":mo.default.enable("-LH:*, \
|
|
51
|
+
LH:*:error");break;default:mo.default.enable("LH:*, -LH:*:verbose")}}static formatProtocol(t,n,r){let a=!xn||xn.browser?1/0:xn.stdout.columns,o=n.method||"?????",s=a-o.length-t.length-ZW,c=n.params&&o!=="IO.read"?JSON.stringify(n.params).substr(0,s):"";e._logToStdErr(`${t}:${r||""}`,[o,c])}static isVerbose(){return mD==="verbose"}static time({msg:t,id:n,args:r=[]},a="log"){vp(n),e[a]("status",t,...r)}static timeEnd({msg:t,id:n,args:r=[]},a="verbose"){e[a]("statusEnd",t,...r),bp(n)}static log(t,...n){return e.events.issueStatus(t,n),e._logToStdErr(t,n)}static warn(t,...n){return e.events.issueWarning(t,n),e._logToStdErr(`${t}:warn`,n)}static error(t,...n){return e._logToStdErr(`${t}:error`,n)}static verbose(t,...n){return e.events.issueStatus(t,n),e._logToStdErr(`${t}:verbose`,n)}static greenify(t){return`${e.green}${t}${e.reset}`}static redify(t){return`${e.red}${t}${e.reset}`}static get green(){return"\x1B[32m"}static get red(){return"\x1B[31m"}static get yellow(){return"\x1B[33m"}static get purple(){
|
|
52
|
+
return"\x1B[95m"}static get reset(){return"\x1B[0m"}static get bold(){return"\x1B[1m"}static get dim(){return"\x1B[2m"}static get tick(){return uo?"√":"✓"}static get cross(){return uo?"×":"✘"}static get whiteSmallSquare(){return uo?"·":"▫"}static get heavyHorizontal(){return uo?"─":"━"}static get heavyVertical(){return uo?"│ ":"┃ "}static get heavyUpAndRight(){return uo?"└":"┗"}static get heavyVerticalAndRight(){return uo?"├":"┣"}static get heavyDownAndHorizontal(){return uo?"┬":"┳"}static get doubleLightHorizontal(){return"──"}};_s.events=new F1;_s.takeTimeEntries=()=>{let e=Sl();return wp(),e};_s.getTimeEntries=()=>Sl();M=_s});var Sn=g(()=>{"use strict";d();});var U1,fe,bt=g(()=>{"use strict";d();Sn();U1=class{static{i(this,"BaseGatherer")}meta={supportedModes:[]};startInstrumentation(t){}startSensitiveInstrumentation(t){}stopSensitiveInstrumentation(t){}stopInstrumentation(t){}getArtifact(t){}},fe=U1});var QW,eV,tV,nV,rV,aV,Ln,po=g(()=>{"use strict";d();Ve();QW=/^(chrome|https?):/,eV=16,tV="RunTask",nV="ThreadControllerImpl::RunTask",rV="ThreadControllerImpl::DoWork",aV="TaskQueueManager::ProcessTaskFromWorkQueue",Ln=class e{static{i(this,"TraceProcessor")}static get TIMESPAN_MARKER_ID(){return"__lighthouseTimespanStart__"}static createNoNavstartError(){return new Error("No navigationStart event found")}static createNoResourceSendRequestError(){return new Error("No ResourceSendRequest event found")}static createNoTracingStartedError(){return new Error("No tracingStartedInBrowser event found")}static createNoFirstContentfulPaintError(){return new Error("No FirstContentfulPaint event found")}static createNoLighthouseMarkerError(){return new Error("No Lighthouse timespan marker event found")}static _isNavigationStartOfInterest(t){return t.name!=="navigationStart"?!1:t.args.data?.documentLoaderURL===void 0?!0:t.args.data?.documentLoaderURL?QW.test(t.args.data.documentLoaderURL):!1}static _sortTimestampEventGroup(t,n,r,a){
|
|
53
53
|
let o=i(p=>n[p],"lookupArrayIndexByTsIndex"),s=i(p=>a[o(p)],"lookupEventByTsIndex"),c=[],l=[],u=[];for(let p of t){let f=o(p),h=s(p);h.ph==="E"?c.push(f):h.ph==="X"||h.ph==="B"?l.push(f):u.push(f)}let m=new Map;for(let p of l){let f=a[p];if(f.ph==="X")m.set(p,f.dur);else{let h=Number.MAX_SAFE_INTEGER,y=0,b=r+t.length;for(let w=b;w<n.length;w++){let C=s(w);if(C.name===f.name&&C.pid===f.pid&&C.tid===f.tid)if(C.ph==="E"&&y===0){h=C.ts-f.ts;break}else C.ph==="E"?y--:C.ph==="B"&&y++}m.set(p,h)}}return l.sort((p,f)=>(m.get(f)||0)-(m.get(p)||0)||p-f),u.sort((p,f)=>p-f),[...c,...l,...u]}static filteredTraceSort(t,n){let r=[];for(let o=0;o<t.length;o++)n(t[o])&&r.push(o);r.sort((o,s)=>t[o].ts-t[s].ts);for(let o=0;o<r.length-1;o++){let s=t[r[o]].ts,c=[o];for(let u=o+1;u<r.length&&t[r[u]].ts===s;u++)c.push(u);if(c.length===1)continue;let l=e._sortTimestampEventGroup(c,r,o,t);r.splice(o,l.length,...l),o+=c.length-1}let a=[];for(let o=0;o<r.length;o++)a.push(t[r[o]]);return a}static assertHasToplevelEvents(t){
|
|
54
54
|
if(!t.some(this.isScheduleableTask))throw new Error("Could not find any top level events")}static _riskPercentiles(t,n,r,a=0){let o=0;for(let f=0;f<t.length;f++)o+=t[f];o-=a;let s=n-o,c=0,l=s,u=[],m=-1,p=t.length+1;a>0&&p--;for(let f of r){let h=f*n;for(;l<h&&m<t.length-1;)s+=c,p-=c<0?-1:1,a>0&&a<t[m+1]?(c=-a,a=0):(m++,c=t[m]),l=s+Math.abs(c)*p;u.push({percentile:f,time:Math.max(0,(h-s)/p)+eV})}return u}static getRiskToResponsiveness(t,n,r,a=[.5,.75,.9,.99,1]){let o=r-n;a.sort((c,l)=>c-l);let s=this.getMainThreadTopLevelEventDurations(t,n,r);return this._riskPercentiles(s.durations,o,a,s.clippedLength)}static getMainThreadTopLevelEventDurations(t,n=0,r=1/0){let a=[],o=0;for(let s of t){if(s.end<n||s.start>r)continue;let c=s.duration,l=s.start;l<n&&(l=n,c=s.end-n),s.end>r&&(o=c-(r-l)),a.push(c)}return a.sort((s,c)=>s-c),{durations:a,clippedLength:o}}static getMainThreadTopLevelEvents(t,n=0,r=1/0){let a=[],o;for(let s of t.mainThreadEvents){if(!this.isScheduleableTask(s)||!s.dur)continue;
|
|
55
55
|
let c=(s.ts-t.timeOriginEvt.ts)/1e3,l=(s.ts+s.dur-t.timeOriginEvt.ts)/1e3;c>r||l<n||(o&&c<o.end&&(o.end=c-.001),o={start:c,end:l,duration:s.dur/1e3},a.push(o))}return a}static findMainFrameIds(t){let n=t.find(s=>s.name==="TracingStartedInBrowser");if(n?.args.data?.frames){let s=n.args.data.frames.find(u=>!u.parent),c=s?.frame,l=s?.processId;if(l&&c)return{startingPid:l,frameId:c}}let r=t.find(s=>s.name==="TracingStartedInPage");if(r?.args?.data){let s=r.args.data.page;if(s)return{startingPid:r.pid,frameId:s}}let a=t.find(s=>this._isNavigationStartOfInterest(s)&&s.args.data?.isLoadingMainFrame),o=t.find(s=>s.name==="ResourceSendRequest");if(a?.args?.data&&o&&o.pid===a.pid&&o.tid===a.tid){let s=a.args.frame;if(s)return{startingPid:a.pid,frameId:s}}throw this.createNoTracingStartedError()}static findMainFramePidTids(t,n){let r=n.filter(s=>(s.name==="FrameCommittedInBrowser"||s.name==="ProcessReadyInBrowser")&&s.args?.data?.frame===t.frameId&&s?.args?.data?.processId),a=r.length?r.map(s=>s?.
|
|
@@ -62,10 +62,10 @@ ker":{let o=a();if(!o)throw this.createNoLighthouseMarkerError();return o}case"a
|
|
|
62
62
|
firstContentfulPaintEvt:o,largestContentfulPaintEvt:s.lcp,loadEvt:c,domContentLoadedEvt:l,lcpInvalidated:s.invalidated}}}});var pD={};x(pD,{default:()=>wi});var B1,wi,Cl=g(()=>{"use strict";d();bt();po();B1=class e extends fe{static{i(this,"Trace")}_trace={traceEvents:[]};static getDefaultTraceCategories(){return["-*","disabled-by-default-lighthouse","loading","v8","v8.execute","blink.user_timing","blink.console","devtools.timeline","disabled-by-default-devtools.timeline","disabled-by-default-devtools.screenshot","disabled-by-default-devtools.timeline.stack","disabled-by-default-devtools.timeline.frame","latencyInfo","disabled-by-default-devtools.target-rundown","disabled-by-default-devtools.v8-source-rundown-sources","disabled-by-default-devtools.v8-source-rundown"]}static async endTraceAndCollectEvents(t){let n=[],r=i(function(a){n.push(...a.value)},"dataListener");return t.on("Tracing.dataCollected",r),new Promise((a,o)=>{t.once("Tracing.tracingComplete",s=>{t.off("Tracing.dataCollected",r),a({traceEvents:n})}),t.sendCommand("Tracing.end").catch(o)})}static symbol=Symbol("Trace");meta={symbol:e.symbol,supportedModes:[
|
|
63
63
|
"timespan","navigation"]};async startSensitiveInstrumentation({driver:t,gatherMode:n,settings:r}){let a=e.getDefaultTraceCategories().concat(r.additionalTraceCategories||[]);await t.defaultSession.sendCommand("Page.enable"),await t.defaultSession.sendCommand("Tracing.start",{categories:a.join(","),options:"sampling-frequency=10000"}),n==="timespan"&&await t.defaultSession.sendCommand("Tracing.recordClockSyncMarker",{syncId:Ln.TIMESPAN_MARKER_ID})}async stopSensitiveInstrumentation({driver:t}){this._trace=await e.endTraceAndCollectEvents(t.defaultSession)}getDebugData(){return this._trace}getArtifact(){return this._trace}},wi=B1});var fD={};x(fD,{default:()=>hr});var hr,fo=g(()=>{d();hr={}});function hD(e,t){for(var n=0,r=e.length-1;r>=0;r--){var a=e[r];a==="."?e.splice(r,1):a===".."?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function j1(){for(var e="",t=!1,n=arguments.length-1;n>=-1&&!t;n--){var r=n>=0?arguments[n]:"/";if(typeof r!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!r)continue;e=r+"/"+e,t=r.charAt(0)==="/"}return e=hD(q1(e.split("/"),function(a){return!!a}),!t).join("/"),(t?"/":"")+e||"."}function gD(e){var t=yD(e),n=pV(e,-1)==="/";return e=hD(q1(e.split("/"),function(r){return!!r}),!t).join("/"),!e&&!t&&(e="."),e&&n&&(e+="/"),(t?"/":"")+e}function yD(e){return e.charAt(0)==="/"}function iV(){var e=Array.prototype.slice.call(arguments,0);return gD(q1(e,function(t,n){if(typeof t!="string")throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))}function sV(e,t){e=j1(e).substr(1),t=j1(t).substr(1);function n(u){for(var m=0;m<u.length&&u[m]==="";m++);for(var p=u.length-
|
|
64
64
|
1;p>=0&&u[p]==="";p--);return m>p?[]:u.slice(m,p-m+1)}i(n,"trim");for(var r=n(e.split("/")),a=n(t.split("/")),o=Math.min(r.length,a.length),s=o,c=0;c<o;c++)if(r[c]!==a[c]){s=c;break}for(var l=[],c=s;c<r.length;c++)l.push("..");return l=l.concat(a.slice(s)),l.join("/")}function uV(e){var t=H1(e),n=t[0],r=t[1];return!n&&!r?".":(r&&(r=r.substr(0,r.length-1)),n+r)}function dV(e,t){var n=H1(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n}function mV(e){return H1(e)[3]}function q1(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}var oV,H1,cV,lV,At,pV,ho=g(()=>{d();i(hD,"normalizeArray");oV=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,H1=i(function(e){return oV.exec(e).slice(1)},"splitPath");i(j1,"resolve");i(gD,"normalize");i(yD,"isAbsolute");i(iV,"join");i(sV,"relative");cV="/",lV=":";i(uV,"dirname");i(dV,"basename");i(mV,"extname");At={extname:mV,basename:dV,dirname:uV,sep:cV,delimiter:lV,
|
|
65
|
-
relative:sV,join:iV,isAbsolute:yD,normalize:gD,resolve:j1};i(q1,"filter");pV="ab".substr(-1)==="b"?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}});var fV,Ep,z1=g(()=>{d();fV=typeof globalThis=="object"&&globalThis&&globalThis.Object===Object&&globalThis,Ep=fV});var hV,gV,sn,Xr=g(()=>{d();z1();hV=typeof self=="object"&&self&&self.Object===Object&&self,gV=Ep||hV||Function("return this")(),sn=gV});var yV,xa,Tp=g(()=>{d();Xr();yV=sn.Symbol,xa=yV});function wV(e){var t=vV.call(e,kl),n=e[kl];try{e[kl]=void 0;var r=!0}catch{}var a=bV.call(e);return r&&(t?e[kl]=n:delete e[kl]),a}var vD,vV,bV,kl,bD,wD=g(()=>{d();Tp();vD=Object.prototype,vV=vD.hasOwnProperty,bV=vD.toString,kl=xa?xa.toStringTag:void 0;i(wV,"getRawTag");bD=wV});function xV(e){return TV.call(e)}var EV,TV,ED,TD=g(()=>{d();EV=Object.prototype,TV=EV.toString;i(xV,"objectToString");ED=xV});function kV(e){return e==null?e===void 0?CV:SV:xD&&xD in Object(e)?bD(e):ED(e)}var SV,CV,xD,Sa,Rl=g(()=>{d();Tp();wD();TD();SV="[object Null]",CV="[object Undefined]",xD=xa?xa.toStringTag:void 0;i(kV,"baseGetTag");Sa=kV});function RV(e){return e!=null&&typeof e=="object"}var Ca,_l=g(()=>{d();i(RV,"isObjectLike");Ca=RV});var _V,Ei,xp=g(()=>{d();_V=Array.isArray,Ei=_V});function IV(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Sp,G1=g(()=>{d();i(IV,"isObject");Sp=IV});function OV(e){if(!Sp(e))return!1;var t=Sa(e);return t==AV||t==NV||t==DV||t==MV}var DV,AV,NV,MV,Cp,W1=g(()=>{d();Rl();G1();DV="[object AsyncFunction]",AV="[object Function]",NV="[object GeneratorFunction]",MV="[object Proxy]";i(OV,"isFunction");Cp=OV});var PV,kp,SD=g(()=>{d();Xr();PV=sn["__core-js_shared__"],kp=PV});function LV(e){return!!CD&&CD in e}var CD,kD,RD=g(()=>{d();SD();CD=(function(){var e=/[^.]+$/.exec(kp&&kp.keys&&kp.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();i(LV,"isMasked");kD=LV});function BV(e){if(e!=null){try{return UV.call(e)}catch{}try{return e+""}catch{}}return""}var FV,UV,ka,V1=g(()=>{d();FV=Function.prototype,UV=FV.toString;i(BV,"toSource");ka=BV});function $V(e){if(!Sp(e)||kD(e))return!1;var t=Cp(e)?VV:HV;return t.test(ka(e))}var jV,HV,qV,zV,GV,WV,VV,_D,ID=g(()=>{d();W1();RD();G1();V1();jV=/[\\^$.*+?()[\]{}|]/g,HV=/^\[object .+?Constructor\]$/,qV=Function.prototype,zV=Object.prototype,GV=qV.toString,WV=zV.hasOwnProperty,VV=RegExp("^"+GV.call(WV).replace(jV,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");i($V,"baseIsNative");_D=$V});function YV(e,t){return e?.[t]}var DD,AD=g(()=>{d();i(YV,"getValue");DD=YV});function KV(e,t){var n=DD(e,t);return _D(n)?n:void 0}var gr,Ti=g(()=>{d();ID();AD();i(KV,"getNative");gr=KV});var XV,Rp,ND=g(()=>{d();Ti();Xr();XV=gr(sn,"WeakMap"),Rp=XV});function QV(e,t){var n=typeof e;return t=t??JV,!!t&&(n=="number"||n!="symbol"&&ZV.test(e))&&e>-1&&e%1==0&&e<t}var JV,ZV,MD,OD=g(()=>{d();JV=9007199254740991,ZV=/^(?:0|[1-9]\d*)$/;i(QV,"isIndex");MD=QV});function e$(e,t){return e===t||e!==e&&t!==t}var _p,$1=g(()=>{d();i(e$,"eq");_p=e$});function n$(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=t$}var t$,Ip,Y1=g(()=>{d();t$=9007199254740991;i(n$,"isLength");Ip=n$});function r$(e){return e!=null&&Ip(e.length)&&!Cp(e)}var PD,LD=g(()=>{d();W1();Y1();i(r$,"isArrayLike");PD=r$});function o$(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||a$;return e===n}var a$,FD,UD=g(()=>{d();a$=Object.prototype;i(o$,"isPrototype");FD=o$});function i$(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var BD,jD=g(()=>{d();i(i$,"baseTimes");BD=i$});function c$(e){return Ca(e)&&Sa(e)==s$}var s$,K1,HD=g(()=>{d();Rl();_l();s$="[object Arguments]";i(c$,"baseIsArguments");K1=c$});var qD,l$,u$,d$,zD,GD=g(()=>{d();HD();_l();qD=Object.prototype,l$=qD.hasOwnProperty,u$=qD.propertyIsEnumerable,d$=K1((function(){return arguments})())?K1:function(e){return Ca(e)&&l$.call(e,"callee")&&!u$.call(e,"callee")},zD=d$});function m$(){return!1}var WD,VD=g(()=>{d();i(m$,"stubFalse");WD=m$});var KD,$D,p$,YD,f$,h$,Il,X1=g(()=>{d();Xr();VD();KD=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$D=KD&&typeof module=="object"&&module&&!module.nodeType&&module,p$=$D&&$D.exports===KD,YD=p$?sn.Buffer:void 0,f$=YD?YD.isBuffer:void 0,h$=f$||WD,Il=h$});function j$(e){return Ca(e)&&Ip(e.length)&&!!_t[Sa(e)]}var g$,y$,v$,b$,w$,E$,T$,x$,S$,C$,k$,R$,_$,I$,D$,A$,N$,M$,O$,P$,L$,F$,U$,B$,_t,XD,JD=g(()=>{d();Rl();Y1();_l();g$="[object Arguments]",y$="[object Array]",v$="[object Boolean]",b$="[object Date]",w$="[object Error]",E$="[object Function]",T$="[object Map]",x$="[object Number]",S$="[object Object]",C$="[object RegExp]",k$="[object Set]",R$="[object String]",_$="[object WeakMap]",I$="[object ArrayBuffer]",D$="[object DataView]",A$="[object Float32Array]",N$="[object Float64Array]",M$="[object Int8Array]",O$="[object Int16Array]",P$="[object Int32Array]",L$="[object Uint8Array]",F$="[object Uint8ClampedArray]",U$="[object Uint16Array]",B$="[object Uint32Array]",_t={};_t[A$]=_t[N$]=_t[M$]=_t[O$]=_t[P$]=_t[L$]=_t[F$]=_t[U$]=_t[B$]=!0;_t[g$]=_t[y$]=_t[I$]=_t[v$]=_t[D$]=_t[b$]=_t[w$]=_t[E$]=_t[T$]=_t[x$]=_t[S$]=_t[C$]=_t[k$]=_t[R$]=_t[_$]=!1;i(j$,"baseIsTypedArray");XD=j$});function H$(e){return function(t){return e(t)}}var ZD,QD=g(()=>{d();i(H$,"baseUnary");ZD=H$});var eA,Dl,q$,J1,z$,Z1,tA=g(()=>{d();z1();eA=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dl=eA&&typeof module=="object"&&module&&!module.nodeType&&module,q$=Dl&&Dl.exports===eA,J1=q$&&Ep.process,z$=(function(){try{var e=Dl&&Dl.require&&Dl.require("util").types;return e||J1&&J1.binding&&J1.binding("util")}catch{}})(),Z1=z$});var nA,G$,Dp,Q1=g(()=>{d();JD();QD();tA();nA=Z1&&Z1.isTypedArray,G$=nA?ZD(nA):XD,Dp=G$});function $$(e,t){var n=Ei(e),r=!n&&zD(e),a=!n&&!r&&Il(e),o=!n&&!r&&!a&&Dp(e),s=n||r||a||o,c=s?BD(e.length,String):[],l=c.length;for(var u in e)(t||V$.call(e,u))&&!(s&&(u=="length"||a&&(u=="offset"||u=="parent")||o&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||MD(u,l)))&&c.push(u);return c}var W$,V$,rA,aA=g(()=>{d();jD();GD();xp();X1();OD();Q1();W$=Object.prototype,V$=W$.hasOwnProperty;i($$,"arrayLikeKeys");rA=$$});function Y$(e,t){return function(n){return e(t(n))}}var oA,iA=g(()=>{d();i(Y$,"overArg");oA=Y$});var K$,sA,cA=g(()=>{d();iA();K$=oA(Object.keys,Object),sA=K$});function Z$(e){if(!FD(e))return sA(e);var t=[];for(var n in Object(e))J$.call(e,n)&&n!="constructor"&&t.push(n);return t}var X$,J$,lA,uA=g(()=>{d();UD();cA();X$=Object.prototype,J$=X$.hasOwnProperty;i(Z$,"baseKeys");lA=Z$});function Q$(e){return PD(e)?rA(e):lA(e)}var dA,mA=g(()=>{d();aA();uA();LD();i(Q$,"keys");dA=Q$});var eY,Ra,Al=g(()=>{d();Ti();eY=gr(Object,"create"),Ra=eY});function tY(){this.__data__=Ra?Ra(null):{},this.size=0}var pA,fA=g(()=>{d();Al();i(tY,"hashClear");pA=tY});function nY(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var hA,gA=g(()=>{d();i(nY,"hashDelete");hA=nY});function iY(e){var t=this.__data__;if(Ra){var n=t[e];return n===rY?void 0:n}return oY.call(t,e)?t[e]:void 0}var rY,aY,oY,yA,vA=g(()=>{d();Al();rY="__lodash_hash_undefined__",aY=Object.prototype,oY=aY.hasOwnProperty;i(iY,"hashGet");yA=iY});function lY(e){var t=this.__data__;return Ra?t[e]!==void 0:cY.call(t,e)}var sY,cY,bA,wA=g(()=>{d();Al();sY=Object.prototype,cY=sY.hasOwnProperty;i(lY,"hashHas");bA=lY});function dY(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ra&&t===void 0?uY:t,this}var uY,EA,TA=g(()=>{d();Al();uY="__lodash_hash_undefined__";i(dY,"hashSet");EA=dY});function Is(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var ey,xA=g(()=>{d();fA();gA();vA();wA();TA();i(Is,"Hash");Is.prototype.clear=pA;Is.prototype.delete=hA;Is.prototype.get=yA;Is.prototype.has=bA;Is.prototype.set=EA;ey=Is});function mY(){this.__data__=[],this.size=0}var SA,CA=g(()=>{d();i(mY,"listCacheClear");SA=mY});function pY(e,t){for(var n=e.length;n--;)if(_p(e[n][0],t))return n;return-1}var go,Nl=g(()=>{d();$1();i(pY,"assocIndexOf");go=pY});function gY(e){var t=this.__data__,n=go(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():hY.call(t,n,1),--this.size,!0}var fY,hY,kA,RA=g(()=>{d();Nl();fY=Array.prototype,hY=fY.splice;i(gY,"listCacheDelete");kA=gY});function yY(e){var t=this.__data__,n=go(t,e);return n<0?void 0:t[n][1]}var _A,IA=g(()=>{d();Nl();i(yY,"listCacheGet");_A=yY});function vY(e){return go(this.__data__,e)>-1}var DA,AA=g(()=>{d();Nl();i(vY,"listCacheHas");DA=vY});function bY(e,t){var n=this.__data__,r=go(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var NA,MA=g(()=>{d();Nl();i(bY,"listCacheSet");NA=bY});function Ds(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var yo,Ml=g(()=>{d();CA();RA();IA();AA();MA();i(Ds,"ListCache");Ds.prototype.clear=SA;Ds.prototype.delete=kA;Ds.prototype.get=_A;Ds.prototype.has=DA;Ds.prototype.set=NA;yo=Ds});var wY,vo,Ap=g(()=>{d();Ti();Xr();wY=gr(sn,"Map"),vo=wY});function EY(){this.size=0,this.__data__={hash:new ey,map:new(vo||yo),string:new ey}}var OA,PA=g(()=>{d();xA();Ml();Ap();i(EY,"mapCacheClear");OA=EY});function TY(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var LA,FA=g(()=>{d();i(TY,"isKeyable");LA=TY});function xY(e,t){var n=e.__data__;return LA(t)?n[typeof t=="string"?"string":"hash"]:n.map}var bo,Ol=g(()=>{d();FA();i(xY,"getMapData");bo=xY});function SY(e){var t=bo(this,e).delete(e);return this.size-=t?1:0,t}var UA,BA=g(()=>{d();Ol();i(SY,"mapCacheDelete");UA=SY});function CY(e){return bo(this,e).get(e)}var jA,HA=g(()=>{d();Ol();i(CY,"mapCacheGet");jA=CY});function kY(e){return bo(this,e).has(e)}var qA,zA=g(()=>{d();Ol();i(kY,"mapCacheHas");qA=kY});function RY(e,t){var n=bo(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var GA,WA=g(()=>{d();Ol();i(RY,"mapCacheSet");GA=RY});function As(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var Np,ty=g(()=>{d();PA();BA();HA();zA();WA();i(As,"MapCache");As.prototype.clear=OA;As.prototype.delete=UA;As.prototype.get=jA;As.prototype.has=qA;As.prototype.set=GA;Np=As});function _Y(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}var VA,$A=g(()=>{d();i(_Y,"arrayPush");VA=_Y});function IY(){this.__data__=new yo,this.size=0}var YA,KA=g(()=>{d();Ml();i(IY,"stackClear");YA=IY});function DY(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var XA,JA=g(()=>{d();i(DY,"stackDelete");XA=DY});function AY(e){return this.__data__.get(e)}var ZA,QA=g(()=>{d();i(AY,"stackGet");ZA=AY});function NY(e){return this.__data__.has(e)}var eN,tN=g(()=>{d();i(NY,"stackHas");eN=NY});function OY(e,t){var n=this.__data__;if(n instanceof yo){var r=n.__data__;if(!vo||r.length<MY-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Np(r)}return n.set(e,t),this.size=n.size,this}var MY,nN,rN=g(()=>{d();Ml();Ap();ty();MY=200;i(OY,"stackSet");nN=OY});function Ns(e){var t=this.__data__=new yo(e);this.size=t.size}var Mp,aN=g(()=>{d();Ml();KA();JA();QA();tN();rN();i(Ns,"Stack");Ns.prototype.clear=YA;Ns.prototype.delete=XA;Ns.prototype.get=ZA;Ns.prototype.has=eN;Ns.prototype.set=nN;Mp=Ns});function PY(e,t){for(var n=-1,r=e==null?0:e.length,a=0,o=[];++n<r;){var s=e[n];t(s,n,e)&&(o[a++]=s)}return o}var oN,iN=g(()=>{d();i(PY,"arrayFilter");oN=PY});function LY(){return[]}var sN,cN=g(()=>{d();i(LY,"stubArray");sN=LY});var FY,UY,lN,BY,uN,dN=g(()=>{d();iN();cN();FY=Object.prototype,UY=FY.propertyIsEnumerable,lN=Object.getOwnPropertySymbols,BY=lN?function(e){return e==null?[]:(e=Object(e),oN(lN(e),function(t){return UY.call(e,t)}))}:sN,uN=BY});function jY(e,t,n){var r=t(e);return Ei(e)?r:VA(r,n(e))}var mN,pN=g(()=>{d();$A();xp();i(jY,"baseGetAllKeys");mN=jY});function HY(e){return mN(e,dA,uN)}var ny,fN=g(()=>{d();pN();dN();mA();i(HY,"getAllKeys");ny=HY});var qY,Op,hN=g(()=>{d();Ti();Xr();qY=gr(sn,"DataView"),Op=qY});var zY,Pp,gN=g(()=>{d();Ti();Xr();zY=gr(sn,"Promise"),Pp=zY});var GY,Lp,yN=g(()=>{d();Ti();Xr();GY=gr(sn,"Set"),Lp=GY});var vN,WY,bN,wN,EN,TN,VY,$Y,YY,KY,XY,xi,ry,xN=g(()=>{d();hN();Ap();gN();yN();ND();Rl();V1();vN="[object Map]",WY="[object Object]",bN="[object Promise]",wN="[object Set]",EN="[object WeakMap]",TN="[object DataView]",VY=ka(Op),$Y=ka(vo),YY=ka(Pp),KY=ka(Lp),XY=ka(Rp),xi=Sa;(Op&&xi(new Op(new ArrayBuffer(1)))!=TN||vo&&xi(new vo)!=vN||Pp&&xi(Pp.resolve())!=bN||Lp&&xi(new Lp)!=wN||Rp&&xi(new Rp)!=EN)&&(xi=i(function(e){var t=Sa(e),n=t==WY?e.constructor:void 0,r=n?ka(n):"";if(r)switch(r){case VY:return TN;case $Y:return vN;case YY:return bN;case KY:return wN;case XY:return EN}return t},"getTag"));ry=xi});var JY,ay,SN=g(()=>{d();Xr();JY=sn.Uint8Array,ay=JY});function QY(e){return this.__data__.set(e,ZY),this}var ZY,CN,kN=g(()=>{d();ZY="__lodash_hash_undefined__";i(QY,"setCacheAdd");CN=QY});function eK(e){return this.__data__.has(e)}var RN,_N=g(()=>{d();i(eK,"setCacheHas");RN=eK});function Fp(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Np;++t<n;)this.add(e[t])}var IN,DN=g(()=>{d();ty();kN();_N();i(Fp,"SetCache");Fp.prototype.add=Fp.prototype.push=CN;Fp.prototype.has=RN;IN=Fp});function tK(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var AN,NN=g(()=>{d();i(tK,"arraySome");AN=tK});function nK(e,t){return e.has(t)}var MN,ON=g(()=>{d();i(nK,"cacheHas");MN=nK});function oK(e,t,n,r,a,o){var s=n&rK,c=e.length,l=t.length;if(c!=l&&!(s&&l>c))return!1;var u=o.get(e),m=o.get(t);if(u&&m)return u==t&&m==e;var p=-1,f=!0,h=n&aK?new IN:void 0;for(o.set(e,t),o.set(t,e);++p<c;){var y=e[p],b=t[p];if(r)var w=s?r(b,y,p,t,e,o):r(y,b,p,e,t,o);if(w!==void 0){if(w)continue;f=!1;break}if(h){if(!AN(t,function(C,k){if(!MN(h,k)&&(y===C||a(y,C,n,r,o)))return h.push(k)})){f=!1;break}}else if(!(y===b||a(y,b,n,r,o))){f=!1;break}}return o.delete(e),o.delete(t),f}var rK,aK,Up,oy=g(()=>{d();DN();NN();ON();rK=1,aK=2;i(oK,"equalArrays");Up=oK});function iK(e){var t=-1,n=Array(e.size);return e.forEach(function(r,a){n[++t]=[a,r]}),n}var PN,LN=g(()=>{d();i(iK,"mapToArray");PN=iK});function sK(e){var t=-1,n=Array(e.size);return e.forEach(function(r){n[++t]=r}),n}var FN,UN=g(()=>{d();i(sK,"setToArray");FN=sK});function EK(e,t,n,r,a,o,s){switch(n){case wK:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case bK:return!(e.byteLength!=t.byteLength||!o(new ay(e),new ay(t)));case uK:case dK:case fK:return _p(+e,+t);case mK:return e.name==t.name&&e.message==t.message;case hK:case yK:return e==t+"";case pK:var c=PN;case gK:var l=r&cK;if(c||(c=FN),e.size!=t.size&&!l)return!1;var u=s.get(e);if(u)return u==t;r|=lK,s.set(e,t);var m=Up(c(e),c(t),r,a,o,s);return s.delete(e),m;case vK:if(iy)return iy.call(e)==iy.call(t)}return!1}var cK,lK,uK,dK,mK,pK,fK,hK,gK,yK,vK,bK,wK,BN,iy,jN,HN=g(()=>{d();Tp();SN();$1();oy();LN();UN();cK=1,lK=2,uK="[object Boolean]",dK="[object Date]",mK="[object Error]",pK="[object Map]",fK="[object Number]",hK="[object RegExp]",gK="[object Set]",yK="[object String]",vK="[object Symbol]",bK="[object ArrayBuffer]",wK="[object DataView]",BN=xa?xa.prototype:void 0,iy=BN?BN.valueOf:void 0;i(EK,"equalByTag");jN=EK});function CK(e,t,n,r,a,o){var s=n&TK,c=ny(e),l=c.length,u=ny(t),m=u.length;if(l!=m&&!s)return!1;for(var p=l;p--;){var f=c[p];if(!(s?f in t:SK.call(t,f)))return!1}var h=o.get(e),y=o.get(t);if(h&&y)return h==t&&y==e;var b=!0;o.set(e,t),o.set(t,e);for(var w=s;++p<l;){f=c[p];var C=e[f],k=t[f];if(r)var R=s?r(k,C,f,t,e,o):r(C,k,f,e,t,o);if(!(R===void 0?C===k||a(C,k,n,r,o):R)){b=!1;break}w||(w=f=="constructor")}if(b&&!w){var S=e.constructor,_=t.constructor;S!=_&&"constructor"in e&&"constructor"in t&&!(typeof S=="function"&&S instanceof S&&typeof _=="function"&&_ instanceof _)&&(b=!1)}return o.delete(e),o.delete(t),b}var TK,xK,SK,qN,zN=g(()=>{d();fN();TK=1,xK=Object.prototype,SK=xK.hasOwnProperty;i(CK,"equalObjects");qN=CK});function _K(e,t,n,r,a,o){var s=Ei(e),c=Ei(t),l=s?WN:ry(e),u=c?WN:ry(t);l=l==GN?Bp:l,u=u==GN?Bp:u;var m=l==Bp,p=u==Bp,f=l==u;if(f&&Il(e)){if(!Il(t))return!1;s=!0,m=!1}if(f&&!m)return o||(o=new Mp),s||Dp(e)?Up(e,t,n,r,a,o):jN(e,t,l,n,r,a,o);if(!(n&kK)){var h=m&&VN.call(e,"__wrapped__"),y=p&&VN.call(t,"__wrapped__");if(h||y){var b=h?e.value():e,w=y?t.value():t;return o||(o=new Mp),a(b,w,n,r,o)}}return f?(o||(o=new Mp),qN(e,t,n,r,a,o)):!1}var kK,GN,WN,Bp,RK,VN,$N,YN=g(()=>{d();aN();oy();HN();zN();xN();xp();X1();Q1();kK=1,GN="[object Arguments]",WN="[object Array]",Bp="[object Object]",RK=Object.prototype,VN=RK.hasOwnProperty;i(_K,"baseIsEqualDeep");$N=_K});function KN(e,t,n,r,a){return e===t?!0:e==null||t==null||!Ca(e)&&!Ca(t)?e!==e&&t!==t:$N(e,t,n,r,KN,a)}var XN,JN=g(()=>{d();YN();_l();i(KN,"baseIsEqual");XN=KN});function IK(e,t){return XN(e,t)}var Jr,ZN=g(()=>{d();JN();i(IK,"isEqual");Jr=IK});var Pl=g(()=>{d();ZN();});var Ms,jp=g(()=>{"use strict";d();co();Ms=!!Sn.env.CI||Sn.env.NODE_ENV==="test"});function MK(e){let t=Math.sign(e);e=Math.abs(e);let n=.254829592,r=-.284496736,a=1.421413741,o=-1.453152027,s=1.061405429,l=1/(1+.3275911*e),u=l*(n+l*(r+l*(a+l*(o+l*s))));return t*(1-u*Math.exp(-e*e))}function QN({median:e,p10:t},n){if(e<=0)throw new Error("median must be greater than zero");if(t<=0)throw new Error("p10 must be greater than zero");if(t>=e)throw new Error("p10 must be less than the median");if(n<=0)return 1;let r=.9061938024368232,a=Math.max(Number.MIN_VALUE,n/e),o=Math.log(a),s=Math.max(Number.MIN_VALUE,t/e),c=-Math.log(s),l=o*r/c,u=(1-MK(l))/2,m;return n<=t?m=Math.max(.9,Math.min(1,u)):n<=e?m=Math.max(AK,Math.min(DK,u)):m=Math.max(0,Math.min(NK,u)),m}var DK,AK,NK,eM=g(()=>{"use strict";d();DK=.8999999999999999,AK=.5,NK=.49999999999999994;i(MK,"erf");i(QN,"getLogNormalScore")});var _a,PK,tM,LK,FK,ot,Zr=g(()=>{"use strict";d();eM();_a="…",PK=" ",tM=.9,LK={PASS:{label:"pass",minScore:tM},AVERAGE:{label:"average",minScore:.5},FAIL:{label:"fail"},ERROR:{label:"error"}},FK=["com","co","gov","edu","ac","org","go","gob","or","net","in","ne","nic","gouv","web","spb","blog","jus","kiev","mil","wi","qc","ca","bel","on"],ot=class e{static{i(this,"Util")}static get RATINGS(){return LK}static get PASS_THRESHOLD(){return tM}static get MS_DISPLAY_VALUE(){return`%10d${PK}ms`}static getFinalDisplayedUrl(t){if(t.finalDisplayedUrl)return t.finalDisplayedUrl;if(t.finalUrl)return t.finalUrl;throw new Error("Could not determine final displayed URL")}static getMainDocumentUrl(t){return t.mainDocumentUrl||t.finalUrl}static getFullPageScreenshot(t){return t.fullPageScreenshot?t.fullPageScreenshot:t.audits["full-page-screenshot"]?.details}static getEntityFromUrl(t,n){return n&&n.find(a=>a.origins.find(o=>t.startsWith(o)))||e.getPseudoRootDomain(t)}static splitMarkdownCodeSpans(t){let n=[],
|
|
65
|
+
relative:sV,join:iV,isAbsolute:yD,normalize:gD,resolve:j1};i(q1,"filter");pV="ab".substr(-1)==="b"?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}});var fV,Ep,z1=g(()=>{d();fV=typeof globalThis=="object"&&globalThis&&globalThis.Object===Object&&globalThis,Ep=fV});var hV,gV,sn,Xr=g(()=>{d();z1();hV=typeof self=="object"&&self&&self.Object===Object&&self,gV=Ep||hV||Function("return this")(),sn=gV});var yV,xa,Tp=g(()=>{d();Xr();yV=sn.Symbol,xa=yV});function wV(e){var t=vV.call(e,kl),n=e[kl];try{e[kl]=void 0;var r=!0}catch{}var a=bV.call(e);return r&&(t?e[kl]=n:delete e[kl]),a}var vD,vV,bV,kl,bD,wD=g(()=>{d();Tp();vD=Object.prototype,vV=vD.hasOwnProperty,bV=vD.toString,kl=xa?xa.toStringTag:void 0;i(wV,"getRawTag");bD=wV});function xV(e){return TV.call(e)}var EV,TV,ED,TD=g(()=>{d();EV=Object.prototype,TV=EV.toString;i(xV,"objectToString");ED=xV});function kV(e){return e==null?e===void 0?CV:SV:xD&&xD in Object(e)?bD(e):ED(e)}var SV,CV,xD,Sa,Rl=g(()=>{d();Tp();wD();TD();SV="[object Null]",CV="[object Undefined]",xD=xa?xa.toStringTag:void 0;i(kV,"baseGetTag");Sa=kV});function RV(e){return e!=null&&typeof e=="object"}var Ca,_l=g(()=>{d();i(RV,"isObjectLike");Ca=RV});var _V,Ei,xp=g(()=>{d();_V=Array.isArray,Ei=_V});function IV(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Sp,G1=g(()=>{d();i(IV,"isObject");Sp=IV});function OV(e){if(!Sp(e))return!1;var t=Sa(e);return t==AV||t==NV||t==DV||t==MV}var DV,AV,NV,MV,Cp,W1=g(()=>{d();Rl();G1();DV="[object AsyncFunction]",AV="[object Function]",NV="[object GeneratorFunction]",MV="[object Proxy]";i(OV,"isFunction");Cp=OV});var PV,kp,SD=g(()=>{d();Xr();PV=sn["__core-js_shared__"],kp=PV});function LV(e){return!!CD&&CD in e}var CD,kD,RD=g(()=>{d();SD();CD=(function(){var e=/[^.]+$/.exec(kp&&kp.keys&&kp.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();i(LV,"isMasked");kD=LV});function BV(e){if(e!=null){try{return UV.call(e)}catch{}try{return e+""}catch{}}return""}var FV,UV,ka,V1=g(()=>{d();FV=Function.prototype,UV=FV.toString;i(BV,"toSource");ka=BV});function $V(e){if(!Sp(e)||kD(e))return!1;var t=Cp(e)?VV:HV;return t.test(ka(e))}var jV,HV,qV,zV,GV,WV,VV,_D,ID=g(()=>{d();W1();RD();G1();V1();jV=/[\\^$.*+?()[\]{}|]/g,HV=/^\[object .+?Constructor\]$/,qV=Function.prototype,zV=Object.prototype,GV=qV.toString,WV=zV.hasOwnProperty,VV=RegExp("^"+GV.call(WV).replace(jV,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");i($V,"baseIsNative");_D=$V});function YV(e,t){return e?.[t]}var DD,AD=g(()=>{d();i(YV,"getValue");DD=YV});function KV(e,t){var n=DD(e,t);return _D(n)?n:void 0}var gr,Ti=g(()=>{d();ID();AD();i(KV,"getNative");gr=KV});var XV,Rp,ND=g(()=>{d();Ti();Xr();XV=gr(sn,"WeakMap"),Rp=XV});function QV(e,t){var n=typeof e;return t=t??JV,!!t&&(n=="number"||n!="symbol"&&ZV.test(e))&&e>-1&&e%1==0&&e<t}var JV,ZV,MD,OD=g(()=>{d();JV=9007199254740991,ZV=/^(?:0|[1-9]\d*)$/;i(QV,"isIndex");MD=QV});function e$(e,t){return e===t||e!==e&&t!==t}var _p,$1=g(()=>{d();i(e$,"eq");_p=e$});function n$(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=t$}var t$,Ip,Y1=g(()=>{d();t$=9007199254740991;i(n$,"isLength");Ip=n$});function r$(e){return e!=null&&Ip(e.length)&&!Cp(e)}var PD,LD=g(()=>{d();W1();Y1();i(r$,"isArrayLike");PD=r$});function o$(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||a$;return e===n}var a$,FD,UD=g(()=>{d();a$=Object.prototype;i(o$,"isPrototype");FD=o$});function i$(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var BD,jD=g(()=>{d();i(i$,"baseTimes");BD=i$});function c$(e){return Ca(e)&&Sa(e)==s$}var s$,K1,HD=g(()=>{d();Rl();_l();s$="[object Arguments]";i(c$,"baseIsArguments");K1=c$});var qD,l$,u$,d$,zD,GD=g(()=>{d();HD();_l();qD=Object.prototype,l$=qD.hasOwnProperty,u$=qD.propertyIsEnumerable,d$=K1((function(){return arguments})())?K1:function(e){return Ca(e)&&l$.call(e,"callee")&&!u$.call(e,"callee")},zD=d$});function m$(){return!1}var WD,VD=g(()=>{d();i(m$,"stubFalse");WD=m$});var KD,$D,p$,YD,f$,h$,Il,X1=g(()=>{d();Xr();VD();KD=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$D=KD&&typeof module=="object"&&module&&!module.nodeType&&module,p$=$D&&$D.exports===KD,YD=p$?sn.Buffer:void 0,f$=YD?YD.isBuffer:void 0,h$=f$||WD,Il=h$});function j$(e){return Ca(e)&&Ip(e.length)&&!!_t[Sa(e)]}var g$,y$,v$,b$,w$,E$,T$,x$,S$,C$,k$,R$,_$,I$,D$,A$,N$,M$,O$,P$,L$,F$,U$,B$,_t,XD,JD=g(()=>{d();Rl();Y1();_l();g$="[object Arguments]",y$="[object Array]",v$="[object Boolean]",b$="[object Date]",w$="[object Error]",E$="[object Function]",T$="[object Map]",x$="[object Number]",S$="[object Object]",C$="[object RegExp]",k$="[object Set]",R$="[object String]",_$="[object WeakMap]",I$="[object ArrayBuffer]",D$="[object DataView]",A$="[object Float32Array]",N$="[object Float64Array]",M$="[object Int8Array]",O$="[object Int16Array]",P$="[object Int32Array]",L$="[object Uint8Array]",F$="[object Uint8ClampedArray]",U$="[object Uint16Array]",B$="[object Uint32Array]",_t={};_t[A$]=_t[N$]=_t[M$]=_t[O$]=_t[P$]=_t[L$]=_t[F$]=_t[U$]=_t[B$]=!0;_t[g$]=_t[y$]=_t[I$]=_t[v$]=_t[D$]=_t[b$]=_t[w$]=_t[E$]=_t[T$]=_t[x$]=_t[S$]=_t[C$]=_t[k$]=_t[R$]=_t[_$]=!1;i(j$,"baseIsTypedArray");XD=j$});function H$(e){return function(t){return e(t)}}var ZD,QD=g(()=>{d();i(H$,"baseUnary");ZD=H$});var eA,Dl,q$,J1,z$,Z1,tA=g(()=>{d();z1();eA=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dl=eA&&typeof module=="object"&&module&&!module.nodeType&&module,q$=Dl&&Dl.exports===eA,J1=q$&&Ep.process,z$=(function(){try{var e=Dl&&Dl.require&&Dl.require("util").types;return e||J1&&J1.binding&&J1.binding("util")}catch{}})(),Z1=z$});var nA,G$,Dp,Q1=g(()=>{d();JD();QD();tA();nA=Z1&&Z1.isTypedArray,G$=nA?ZD(nA):XD,Dp=G$});function $$(e,t){var n=Ei(e),r=!n&&zD(e),a=!n&&!r&&Il(e),o=!n&&!r&&!a&&Dp(e),s=n||r||a||o,c=s?BD(e.length,String):[],l=c.length;for(var u in e)(t||V$.call(e,u))&&!(s&&(u=="length"||a&&(u=="offset"||u=="parent")||o&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||MD(u,l)))&&c.push(u);return c}var W$,V$,rA,aA=g(()=>{d();jD();GD();xp();X1();OD();Q1();W$=Object.prototype,V$=W$.hasOwnProperty;i($$,"arrayLikeKeys");rA=$$});function Y$(e,t){return function(n){return e(t(n))}}var oA,iA=g(()=>{d();i(Y$,"overArg");oA=Y$});var K$,sA,cA=g(()=>{d();iA();K$=oA(Object.keys,Object),sA=K$});function Z$(e){if(!FD(e))return sA(e);var t=[];for(var n in Object(e))J$.call(e,n)&&n!="constructor"&&t.push(n);return t}var X$,J$,lA,uA=g(()=>{d();UD();cA();X$=Object.prototype,J$=X$.hasOwnProperty;i(Z$,"baseKeys");lA=Z$});function Q$(e){return PD(e)?rA(e):lA(e)}var dA,mA=g(()=>{d();aA();uA();LD();i(Q$,"keys");dA=Q$});var eY,Ra,Al=g(()=>{d();Ti();eY=gr(Object,"create"),Ra=eY});function tY(){this.__data__=Ra?Ra(null):{},this.size=0}var pA,fA=g(()=>{d();Al();i(tY,"hashClear");pA=tY});function nY(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var hA,gA=g(()=>{d();i(nY,"hashDelete");hA=nY});function iY(e){var t=this.__data__;if(Ra){var n=t[e];return n===rY?void 0:n}return oY.call(t,e)?t[e]:void 0}var rY,aY,oY,yA,vA=g(()=>{d();Al();rY="__lodash_hash_undefined__",aY=Object.prototype,oY=aY.hasOwnProperty;i(iY,"hashGet");yA=iY});function lY(e){var t=this.__data__;return Ra?t[e]!==void 0:cY.call(t,e)}var sY,cY,bA,wA=g(()=>{d();Al();sY=Object.prototype,cY=sY.hasOwnProperty;i(lY,"hashHas");bA=lY});function dY(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ra&&t===void 0?uY:t,this}var uY,EA,TA=g(()=>{d();Al();uY="__lodash_hash_undefined__";i(dY,"hashSet");EA=dY});function Is(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var ey,xA=g(()=>{d();fA();gA();vA();wA();TA();i(Is,"Hash");Is.prototype.clear=pA;Is.prototype.delete=hA;Is.prototype.get=yA;Is.prototype.has=bA;Is.prototype.set=EA;ey=Is});function mY(){this.__data__=[],this.size=0}var SA,CA=g(()=>{d();i(mY,"listCacheClear");SA=mY});function pY(e,t){for(var n=e.length;n--;)if(_p(e[n][0],t))return n;return-1}var go,Nl=g(()=>{d();$1();i(pY,"assocIndexOf");go=pY});function gY(e){var t=this.__data__,n=go(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():hY.call(t,n,1),--this.size,!0}var fY,hY,kA,RA=g(()=>{d();Nl();fY=Array.prototype,hY=fY.splice;i(gY,"listCacheDelete");kA=gY});function yY(e){var t=this.__data__,n=go(t,e);return n<0?void 0:t[n][1]}var _A,IA=g(()=>{d();Nl();i(yY,"listCacheGet");_A=yY});function vY(e){return go(this.__data__,e)>-1}var DA,AA=g(()=>{d();Nl();i(vY,"listCacheHas");DA=vY});function bY(e,t){var n=this.__data__,r=go(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var NA,MA=g(()=>{d();Nl();i(bY,"listCacheSet");NA=bY});function Ds(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var yo,Ml=g(()=>{d();CA();RA();IA();AA();MA();i(Ds,"ListCache");Ds.prototype.clear=SA;Ds.prototype.delete=kA;Ds.prototype.get=_A;Ds.prototype.has=DA;Ds.prototype.set=NA;yo=Ds});var wY,vo,Ap=g(()=>{d();Ti();Xr();wY=gr(sn,"Map"),vo=wY});function EY(){this.size=0,this.__data__={hash:new ey,map:new(vo||yo),string:new ey}}var OA,PA=g(()=>{d();xA();Ml();Ap();i(EY,"mapCacheClear");OA=EY});function TY(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var LA,FA=g(()=>{d();i(TY,"isKeyable");LA=TY});function xY(e,t){var n=e.__data__;return LA(t)?n[typeof t=="string"?"string":"hash"]:n.map}var bo,Ol=g(()=>{d();FA();i(xY,"getMapData");bo=xY});function SY(e){var t=bo(this,e).delete(e);return this.size-=t?1:0,t}var UA,BA=g(()=>{d();Ol();i(SY,"mapCacheDelete");UA=SY});function CY(e){return bo(this,e).get(e)}var jA,HA=g(()=>{d();Ol();i(CY,"mapCacheGet");jA=CY});function kY(e){return bo(this,e).has(e)}var qA,zA=g(()=>{d();Ol();i(kY,"mapCacheHas");qA=kY});function RY(e,t){var n=bo(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var GA,WA=g(()=>{d();Ol();i(RY,"mapCacheSet");GA=RY});function As(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var Np,ty=g(()=>{d();PA();BA();HA();zA();WA();i(As,"MapCache");As.prototype.clear=OA;As.prototype.delete=UA;As.prototype.get=jA;As.prototype.has=qA;As.prototype.set=GA;Np=As});function _Y(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}var VA,$A=g(()=>{d();i(_Y,"arrayPush");VA=_Y});function IY(){this.__data__=new yo,this.size=0}var YA,KA=g(()=>{d();Ml();i(IY,"stackClear");YA=IY});function DY(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var XA,JA=g(()=>{d();i(DY,"stackDelete");XA=DY});function AY(e){return this.__data__.get(e)}var ZA,QA=g(()=>{d();i(AY,"stackGet");ZA=AY});function NY(e){return this.__data__.has(e)}var eN,tN=g(()=>{d();i(NY,"stackHas");eN=NY});function OY(e,t){var n=this.__data__;if(n instanceof yo){var r=n.__data__;if(!vo||r.length<MY-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Np(r)}return n.set(e,t),this.size=n.size,this}var MY,nN,rN=g(()=>{d();Ml();Ap();ty();MY=200;i(OY,"stackSet");nN=OY});function Ns(e){var t=this.__data__=new yo(e);this.size=t.size}var Mp,aN=g(()=>{d();Ml();KA();JA();QA();tN();rN();i(Ns,"Stack");Ns.prototype.clear=YA;Ns.prototype.delete=XA;Ns.prototype.get=ZA;Ns.prototype.has=eN;Ns.prototype.set=nN;Mp=Ns});function PY(e,t){for(var n=-1,r=e==null?0:e.length,a=0,o=[];++n<r;){var s=e[n];t(s,n,e)&&(o[a++]=s)}return o}var oN,iN=g(()=>{d();i(PY,"arrayFilter");oN=PY});function LY(){return[]}var sN,cN=g(()=>{d();i(LY,"stubArray");sN=LY});var FY,UY,lN,BY,uN,dN=g(()=>{d();iN();cN();FY=Object.prototype,UY=FY.propertyIsEnumerable,lN=Object.getOwnPropertySymbols,BY=lN?function(e){return e==null?[]:(e=Object(e),oN(lN(e),function(t){return UY.call(e,t)}))}:sN,uN=BY});function jY(e,t,n){var r=t(e);return Ei(e)?r:VA(r,n(e))}var mN,pN=g(()=>{d();$A();xp();i(jY,"baseGetAllKeys");mN=jY});function HY(e){return mN(e,dA,uN)}var ny,fN=g(()=>{d();pN();dN();mA();i(HY,"getAllKeys");ny=HY});var qY,Op,hN=g(()=>{d();Ti();Xr();qY=gr(sn,"DataView"),Op=qY});var zY,Pp,gN=g(()=>{d();Ti();Xr();zY=gr(sn,"Promise"),Pp=zY});var GY,Lp,yN=g(()=>{d();Ti();Xr();GY=gr(sn,"Set"),Lp=GY});var vN,WY,bN,wN,EN,TN,VY,$Y,YY,KY,XY,xi,ry,xN=g(()=>{d();hN();Ap();gN();yN();ND();Rl();V1();vN="[object Map]",WY="[object Object]",bN="[object Promise]",wN="[object Set]",EN="[object WeakMap]",TN="[object DataView]",VY=ka(Op),$Y=ka(vo),YY=ka(Pp),KY=ka(Lp),XY=ka(Rp),xi=Sa;(Op&&xi(new Op(new ArrayBuffer(1)))!=TN||vo&&xi(new vo)!=vN||Pp&&xi(Pp.resolve())!=bN||Lp&&xi(new Lp)!=wN||Rp&&xi(new Rp)!=EN)&&(xi=i(function(e){var t=Sa(e),n=t==WY?e.constructor:void 0,r=n?ka(n):"";if(r)switch(r){case VY:return TN;case $Y:return vN;case YY:return bN;case KY:return wN;case XY:return EN}return t},"getTag"));ry=xi});var JY,ay,SN=g(()=>{d();Xr();JY=sn.Uint8Array,ay=JY});function QY(e){return this.__data__.set(e,ZY),this}var ZY,CN,kN=g(()=>{d();ZY="__lodash_hash_undefined__";i(QY,"setCacheAdd");CN=QY});function eK(e){return this.__data__.has(e)}var RN,_N=g(()=>{d();i(eK,"setCacheHas");RN=eK});function Fp(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Np;++t<n;)this.add(e[t])}var IN,DN=g(()=>{d();ty();kN();_N();i(Fp,"SetCache");Fp.prototype.add=Fp.prototype.push=CN;Fp.prototype.has=RN;IN=Fp});function tK(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var AN,NN=g(()=>{d();i(tK,"arraySome");AN=tK});function nK(e,t){return e.has(t)}var MN,ON=g(()=>{d();i(nK,"cacheHas");MN=nK});function oK(e,t,n,r,a,o){var s=n&rK,c=e.length,l=t.length;if(c!=l&&!(s&&l>c))return!1;var u=o.get(e),m=o.get(t);if(u&&m)return u==t&&m==e;var p=-1,f=!0,h=n&aK?new IN:void 0;for(o.set(e,t),o.set(t,e);++p<c;){var y=e[p],b=t[p];if(r)var w=s?r(b,y,p,t,e,o):r(y,b,p,e,t,o);if(w!==void 0){if(w)continue;f=!1;break}if(h){if(!AN(t,function(C,k){if(!MN(h,k)&&(y===C||a(y,C,n,r,o)))return h.push(k)})){f=!1;break}}else if(!(y===b||a(y,b,n,r,o))){f=!1;break}}return o.delete(e),o.delete(t),f}var rK,aK,Up,oy=g(()=>{d();DN();NN();ON();rK=1,aK=2;i(oK,"equalArrays");Up=oK});function iK(e){var t=-1,n=Array(e.size);return e.forEach(function(r,a){n[++t]=[a,r]}),n}var PN,LN=g(()=>{d();i(iK,"mapToArray");PN=iK});function sK(e){var t=-1,n=Array(e.size);return e.forEach(function(r){n[++t]=r}),n}var FN,UN=g(()=>{d();i(sK,"setToArray");FN=sK});function EK(e,t,n,r,a,o,s){switch(n){case wK:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case bK:return!(e.byteLength!=t.byteLength||!o(new ay(e),new ay(t)));case uK:case dK:case fK:return _p(+e,+t);case mK:return e.name==t.name&&e.message==t.message;case hK:case yK:return e==t+"";case pK:var c=PN;case gK:var l=r&cK;if(c||(c=FN),e.size!=t.size&&!l)return!1;var u=s.get(e);if(u)return u==t;r|=lK,s.set(e,t);var m=Up(c(e),c(t),r,a,o,s);return s.delete(e),m;case vK:if(iy)return iy.call(e)==iy.call(t)}return!1}var cK,lK,uK,dK,mK,pK,fK,hK,gK,yK,vK,bK,wK,BN,iy,jN,HN=g(()=>{d();Tp();SN();$1();oy();LN();UN();cK=1,lK=2,uK="[object Boolean]",dK="[object Date]",mK="[object Error]",pK="[object Map]",fK="[object Number]",hK="[object RegExp]",gK="[object Set]",yK="[object String]",vK="[object Symbol]",bK="[object ArrayBuffer]",wK="[object DataView]",BN=xa?xa.prototype:void 0,iy=BN?BN.valueOf:void 0;i(EK,"equalByTag");jN=EK});function CK(e,t,n,r,a,o){var s=n&TK,c=ny(e),l=c.length,u=ny(t),m=u.length;if(l!=m&&!s)return!1;for(var p=l;p--;){var f=c[p];if(!(s?f in t:SK.call(t,f)))return!1}var h=o.get(e),y=o.get(t);if(h&&y)return h==t&&y==e;var b=!0;o.set(e,t),o.set(t,e);for(var w=s;++p<l;){f=c[p];var C=e[f],k=t[f];if(r)var R=s?r(k,C,f,t,e,o):r(C,k,f,e,t,o);if(!(R===void 0?C===k||a(C,k,n,r,o):R)){b=!1;break}w||(w=f=="constructor")}if(b&&!w){var S=e.constructor,_=t.constructor;S!=_&&"constructor"in e&&"constructor"in t&&!(typeof S=="function"&&S instanceof S&&typeof _=="function"&&_ instanceof _)&&(b=!1)}return o.delete(e),o.delete(t),b}var TK,xK,SK,qN,zN=g(()=>{d();fN();TK=1,xK=Object.prototype,SK=xK.hasOwnProperty;i(CK,"equalObjects");qN=CK});function _K(e,t,n,r,a,o){var s=Ei(e),c=Ei(t),l=s?WN:ry(e),u=c?WN:ry(t);l=l==GN?Bp:l,u=u==GN?Bp:u;var m=l==Bp,p=u==Bp,f=l==u;if(f&&Il(e)){if(!Il(t))return!1;s=!0,m=!1}if(f&&!m)return o||(o=new Mp),s||Dp(e)?Up(e,t,n,r,a,o):jN(e,t,l,n,r,a,o);if(!(n&kK)){var h=m&&VN.call(e,"__wrapped__"),y=p&&VN.call(t,"__wrapped__");if(h||y){var b=h?e.value():e,w=y?t.value():t;return o||(o=new Mp),a(b,w,n,r,o)}}return f?(o||(o=new Mp),qN(e,t,n,r,a,o)):!1}var kK,GN,WN,Bp,RK,VN,$N,YN=g(()=>{d();aN();oy();HN();zN();xN();xp();X1();Q1();kK=1,GN="[object Arguments]",WN="[object Array]",Bp="[object Object]",RK=Object.prototype,VN=RK.hasOwnProperty;i(_K,"baseIsEqualDeep");$N=_K});function KN(e,t,n,r,a){return e===t?!0:e==null||t==null||!Ca(e)&&!Ca(t)?e!==e&&t!==t:$N(e,t,n,r,KN,a)}var XN,JN=g(()=>{d();YN();_l();i(KN,"baseIsEqual");XN=KN});function IK(e,t){return XN(e,t)}var Jr,ZN=g(()=>{d();JN();i(IK,"isEqual");Jr=IK});var Pl=g(()=>{d();ZN();});var Ms,jp=g(()=>{"use strict";d();co();Ms=!!xn.env.CI||xn.env.NODE_ENV==="test"});function MK(e){let t=Math.sign(e);e=Math.abs(e);let n=.254829592,r=-.284496736,a=1.421413741,o=-1.453152027,s=1.061405429,l=1/(1+.3275911*e),u=l*(n+l*(r+l*(a+l*(o+l*s))));return t*(1-u*Math.exp(-e*e))}function QN({median:e,p10:t},n){if(e<=0)throw new Error("median must be greater than zero");if(t<=0)throw new Error("p10 must be greater than zero");if(t>=e)throw new Error("p10 must be less than the median");if(n<=0)return 1;let r=.9061938024368232,a=Math.max(Number.MIN_VALUE,n/e),o=Math.log(a),s=Math.max(Number.MIN_VALUE,t/e),c=-Math.log(s),l=o*r/c,u=(1-MK(l))/2,m;return n<=t?m=Math.max(.9,Math.min(1,u)):n<=e?m=Math.max(AK,Math.min(DK,u)):m=Math.max(0,Math.min(NK,u)),m}var DK,AK,NK,eM=g(()=>{"use strict";d();DK=.8999999999999999,AK=.5,NK=.49999999999999994;i(MK,"erf");i(QN,"getLogNormalScore")});var _a,PK,tM,LK,FK,ot,Zr=g(()=>{"use strict";d();eM();_a="…",PK=" ",tM=.9,LK={PASS:{label:"pass",minScore:tM},AVERAGE:{label:"average",minScore:.5},FAIL:{label:"fail"},ERROR:{label:"error"}},FK=["com","co","gov","edu","ac","org","go","gob","or","net","in","ne","nic","gouv","web","spb","blog","jus","kiev","mil","wi","qc","ca","bel","on"],ot=class e{static{i(this,"Util")}static get RATINGS(){return LK}static get PASS_THRESHOLD(){return tM}static get MS_DISPLAY_VALUE(){return`%10d${PK}ms`}static getFinalDisplayedUrl(t){if(t.finalDisplayedUrl)return t.finalDisplayedUrl;if(t.finalUrl)return t.finalUrl;throw new Error("Could not determine final displayed URL")}static getMainDocumentUrl(t){return t.mainDocumentUrl||t.finalUrl}static getFullPageScreenshot(t){return t.fullPageScreenshot?t.fullPageScreenshot:t.audits["full-page-screenshot"]?.details}static getEntityFromUrl(t,n){return n&&n.find(a=>a.origins.find(o=>t.startsWith(o)))||e.getPseudoRootDomain(t)}static splitMarkdownCodeSpans(t){let n=[],
|
|
66
66
|
r=t.split(/`(.*?)`/g);for(let a=0;a<r.length;a++){let o=r[a];if(!o)continue;let s=a%2!==0;n.push({isCode:s,text:o})}return n}static splitMarkdownLink(t){let n=[],r=t.split(/\[([^\]]+?)\]\((https?:\/\/.*?)\)/g);for(;r.length;){let[a,o,s]=r.splice(0,3);a&&n.push({isLink:!1,text:a}),o&&s&&n.push({isLink:!0,text:o,linkHref:s})}return n}static truncate(t,n,r="…"){if(t.length<=n)return t;let o=new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(t)[Symbol.iterator](),s=0;for(let c=0;c<=n-r.length;c++){let l=o.next();if(l.done)return t;s=l.value.index}for(let c=0;c<r.length;c++)if(o.next().done)return t;return t.slice(0,s)+r}static getURLDisplayName(t,n){n=n||{numPathParts:void 0,preserveQuery:void 0,preserveHost:void 0};let r=n.numPathParts!==void 0?n.numPathParts:2,a=n.preserveQuery!==void 0?n.preserveQuery:!0,o=n.preserveHost||!1,s;if(t.protocol==="about:"||t.protocol==="data:")s=t.href;else{s=t.pathname;let l=s.split("/").filter(u=>u.length);r&&l.length>r&&(s=_a+l.slice(-1*r).join(
|
|
67
67
|
"/")),o&&(s=`${t.host}/${s.replace(/^\//,"")}`),a&&(s=`${s}${t.search}`)}let c=64;if(t.protocol!=="data:"&&(s=s.slice(0,200),s=s.replace(/([a-f0-9]{7})[a-f0-9]{13}[a-f0-9]*/g,`$1${_a}`),s=s.replace(/([a-zA-Z0-9-_]{9})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9-_]{10,}/g,`$1${_a}`),s=s.replace(/(\d{3})\d{6,}/g,`$1${_a}`),s=s.replace(/\u2026+/g,_a),s.length>c&&s.includes("?")&&(s=s.replace(/\?([^=]*)(=)?.*/,`?$1$2${_a}`),s.length>c&&(s=s.replace(/\?.*/,`?${_a}`)))),s.length>c){let l=s.lastIndexOf(".");l>=0?s=s.slice(0,c-1-(s.length-l))+`${_a}${s.slice(l)}`:s=s.slice(0,c-1)+_a}return s}static getChromeExtensionOrigin(t){let n=new URL(t);return n.protocol+"//"+n.host}static parseURL(t){let n=new URL(t);return{file:e.getURLDisplayName(n),hostname:n.hostname,origin:n.protocol==="chrome-extension:"?e.getChromeExtensionOrigin(t):n.origin}}static createOrReturnURL(t){return t instanceof URL?t:new URL(t)}static getPseudoTld(t){let n=t.split(".").slice(-2);return FK.includes(n[0])?`.${n.join(".")}`:
|
|
68
|
-
`.${n[n.length-1]}`}static getPseudoRootDomain(t){let n=e.createOrReturnURL(t).hostname,a=e.getPseudoTld(n).split(".");return n.split(".").slice(-a.length).join(".")}static filterRelevantLines(t,n,r){if(n.length===0)return t.slice(0,r*2+1);let a=3,o=new Set;return n=n.sort((s,c)=>(s.lineNumber||0)-(c.lineNumber||0)),n.forEach(({lineNumber:s})=>{let c=s-r,l=s+r;for(;c<1;)c++,l++;o.has(c-a-1)&&(c-=a);for(let u=c;u<=l;u++){let m=u;o.add(m)}}),t.filter(s=>o.has(s.lineNumber))}static computeLogNormalScore(t,n){let r=QN(t,n);return r>.9&&(r+=.05*(r-.9)),Math.floor(r*100)/100}}});var UK,BK,E,$=g(()=>{"use strict";d();
|
|
68
|
+
`.${n[n.length-1]}`}static getPseudoRootDomain(t){let n=e.createOrReturnURL(t).hostname,a=e.getPseudoTld(n).split(".");return n.split(".").slice(-a.length).join(".")}static filterRelevantLines(t,n,r){if(n.length===0)return t.slice(0,r*2+1);let a=3,o=new Set;return n=n.sort((s,c)=>(s.lineNumber||0)-(c.lineNumber||0)),n.forEach(({lineNumber:s})=>{let c=s-r,l=s+r;for(;c<1;)c++,l++;o.has(c-a-1)&&(c-=a);for(let u=c;u<=l;u++){let m=u;o.add(m)}}),t.filter(s=>o.has(s.lineNumber))}static computeLogNormalScore(t,n){let r=QN(t,n);return r>.9&&(r+=.05*(r-.9)),Math.floor(r*100)/100}}});var UK,BK,E,$=g(()=>{"use strict";d();Sn();jp();Zr();UK={FCP:50,LCP:50,INP:50,TBT:50,CLS:.001},BK=i(e=>Math.round(e*100)/100,"clampTo2Decimals"),E=class e{static{i(this,"Audit")}static get SCORING_MODES(){return{NUMERIC:"numeric",METRIC_SAVINGS:"metricSavings",BINARY:"binary",MANUAL:"manual",INFORMATIVE:"informative",NOT_APPLICABLE:"notApplicable",ERROR:"error"}}static get meta(){throw new Error("Audit meta information must be overridden.")}static get defaultOptions(){return{}}static audit(t,n){throw new Error("audit() method must be overridden")}static computeLogNormalScore(t,n){return ot.computeLogNormalScore(t,n)}static assertHeadingKeysExist(t,n){if(n.length&&Ms)for(let r of t){if(r.key===null)continue;let a=r.key;if(!n.some(o=>a in o))throw new Error(`"${r.key}" is missing from items`)}}static makeChecklistDetails(t){return{type:"checklist",items:t}}static makeTableDetails(t,n,r={}){let{wastedBytes:a,wastedMs:o,sortedBy:s,skipSumming:c,isEntityGrouped:l}=r,u=a||o?{wastedBytes:a,wastedMs:o}:
|
|
69
69
|
void 0;return n.length===0?{type:"table",headings:t,items:[],summary:u}:(e.assertHeadingKeysExist(t,n),{type:"table",headings:t,items:n,summary:u,sortedBy:s,skipSumming:c,isEntityGrouped:l})}static makeListDetails(t){return{type:"list",items:t}}static makeListDetailSectionItem(t,n,r){return{type:"list-section",title:n,description:r,value:t}}static makeSnippetDetails({content:t,title:n,lineMessages:r,generalMessages:a,node:o,maxLineLength:s=200,maxLinesAroundMessage:c=20}){let l=e._makeSnippetLinesArray(t,s);return{type:"snippet",lines:ot.filterRelevantLines(l,r,c),title:n,lineMessages:r,generalMessages:a,lineCount:l.length,node:o}}static _makeSnippetLinesArray(t,n){return t.split(`
|
|
70
70
|
`).map((r,a)=>{let o=a+1,s={content:ot.truncate(r,n),lineNumber:o};return r.length>n&&(s.truncated=!0),s})}static makeOpportunityDetails(t,n,r){e.assertHeadingKeysExist(t,n);let{overallSavingsMs:a,overallSavingsBytes:o,sortedBy:s,skipSumming:c,isEntityGrouped:l}=r;return{type:"opportunity",headings:n.length===0?[]:t,items:n,overallSavingsMs:a,overallSavingsBytes:o,sortedBy:s,skipSumming:c,isEntityGrouped:l}}static makeNodeItem(t){return{type:"node",lhId:t.lhId,path:t.devtoolsNodePath,selector:t.selector,boundingRect:t.boundingRect,snippet:t.snippet,nodeLabel:t.nodeLabel}}static _findOriginalLocation(t,n,r){let a=t?.map.findEntry(n,r);if(a)return{file:a.sourceURL||"",line:a.sourceLineNumber||0,column:a.sourceColumnNumber||0}}static makeSourceLocation(t,n,r,a){return{type:"source-location",url:t,urlProvider:"network",line:n,column:r,original:a&&this._findOriginalLocation(a,n,r)}}static makeSourceLocationFromConsoleMessage(t,n){if(!t.url)return;let r=t.lineNumber||0,a=t.columnNumber||0;return this.
|
|
71
71
|
makeSourceLocation(t.url,r,a,n)}static _normalizeAuditScore(t,n,r){if(n===e.SCORING_MODES.INFORMATIVE)return 1;if(n!==e.SCORING_MODES.BINARY&&n!==e.SCORING_MODES.NUMERIC&&n!==e.SCORING_MODES.METRIC_SAVINGS)return null;if(t===null||!Number.isFinite(t))throw new Error(`Invalid score for ${r}: ${t}`);if(t>1)throw new Error(`Audit score for ${r} is > 1`);if(t<0)throw new Error(`Audit score for ${r} is < 0`);return t=BK(t),t}static _quantizeMetricSavings(t){if(!t)return;let n={...t};for(let r of Object.keys(t)){let a=t[r];if(a===void 0)continue;a=Math.max(a,0);let o=UK[r];o!==void 0&&(a=Math.round(a/o)*o),n[r]=a}return n}static generateErrorAuditResult(t,n,r){return e.generateAuditResult(t,{score:null,errorMessage:n,errorStack:r})}static generateAuditResult(t,n){if(n.score===void 0)throw new Error("generateAuditResult requires a score");let r=t.meta.scoreDisplayMode||e.SCORING_MODES.BINARY,a=n.score;n.errorMessage!==void 0?r=e.SCORING_MODES.ERROR:n.notApplicable?r=e.SCORING_MODES.NOT_APPLICABLE:
|
|
@@ -102,11 +102,11 @@ for(var o=!1,s=0;!this.isEOF();){var c=this.char();if(c>=48&&c<=57)o=!0,s=s*10+(
|
|
|
102
102
|
2)}},e.prototype.bumpIf=function(t){if(kM(this.message,t,this.offset())){for(var n=0;n<t.length;n++)this.bump();return!0}return!1},e.prototype.bumpUntil=function(t){var n=this.offset(),r=this.message.indexOf(t,n);return r>=0?(this.bumpTo(r),!0):(this.bumpTo(this.message.length),!1)},e.prototype.bumpTo=function(t){if(this.offset()>t)throw Error("targetOffset ".concat(t," must be greater than or equal to the current offset ").concat(this.offset()));for(t=Math.min(t,this.message.length);;){var n=this.offset();if(n===t)break;if(n>t)throw Error("targetOffset ".concat(t," is at invalid UTF-16 code unit boundary"));if(this.bump(),this.isEOF())break}},e.prototype.bumpSpace=function(){for(;!this.isEOF()&&AM(this.char());)this.bump()},e.prototype.peek=function(){if(this.isEOF())return null;var t=this.char(),n=this.offset(),r=this.message.charCodeAt(n+(t>=65536?2:1));return r??null},e})();i(vy,"_isAlpha");i(aX,"_isAlphaOrSlash");i(oX,"_isPotentialElementNameChar");i(AM,"_isWhiteSpace");i(iX,"_isP\
|
|
103
103
|
atternSyntax")});function by(e){e.forEach(function(t){if(delete t.location,Vp(t)||$p(t))for(var n in t.options)delete t.options[n].location,by(t.options[n].value);else zp(t)&&Kp(t.style)||(Gp(t)||Wp(t))&&Fl(t.style)?delete t.style.location:Yp(t)&&by(t.children)})}function MM(e,t){t===void 0&&(t={}),t=Os({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var n=new DM(e,t).parse();if(n.err){var r=SyntaxError(Ke[n.err.kind]);throw r.location=n.err.location,r.originalMessage=n.err.message,r}return t?.captureLocation||by(n.val),n.val}var wy=g(()=>{d();ly();uy();NM();Xp();Xp();i(by,"pruneLocation");i(MM,"parse")});function Jp(e,t){var n=t&&t.cache?t.cache:mX,r=t&&t.serializer?t.serializer:dX,a=t&&t.strategy?t.strategy:cX;return a(e,{cache:n,serializer:r})}function sX(e){return e==null||typeof e=="number"||typeof e=="boolean"}function OM(e,t,n,r){var a=sX(r)?r:n(r),o=t.get(a);return typeof o>"u"&&(o=e.call(this,r),t.set(a,o)),o}function PM(e,t,n){var r=Array.prototype.slice.call(arguments,3),a=n(r),o=t.get(a);return typeof o>"u"&&(o=e.apply(this,r),t.set(a,o)),o}function Ey(e,t,n,r,a){return n.bind(t,e,r,a)}function cX(e,t){var n=e.length===1?OM:PM;return Ey(e,this,n,t.cache.create(),t.serializer)}function lX(e,t){return Ey(e,this,PM,t.cache.create(),t.serializer)}function uX(e,t){return Ey(e,this,OM,t.cache.create(),t.serializer)}function Ty(){this.cache=Object.create(null)}var dX,mX,Zp,LM=g(()=>{d();i(Jp,"memoize");i(sX,"isPrimitive");i(OM,"monadic");i(PM,"variadic");i(Ey,"assemble");i(cX,"strategyDefault");i(lX,"strategyVariadic");i(uX,"strategyMonadic");dX=i(function(){return JSON.stringify(arguments)},
|
|
104
104
|
"serializerDefault");i(Ty,"ObjectWithoutPrototypeCache");Ty.prototype.get=function(e){return this.cache[e]};Ty.prototype.set=function(e,t){this.cache[e]=t};mX={create:i(function(){return new Ty},"create")},Zp={variadic:lX,monadic:uX}});var Ci,Bl,xy,FM,UM,Sy=g(()=>{d();cy();(function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"})(Ci||(Ci={}));Bl=(function(e){Ll(t,e);function t(n,r,a){var o=e.call(this,n)||this;return o.code=r,o.originalMessage=a,o}return i(t,"FormatError"),t.prototype.toString=function(){return"[formatjs Error: ".concat(this.code,"] ").concat(this.message)},t})(Error),xy=(function(e){Ll(t,e);function t(n,r,a,o){return e.call(this,'Invalid values for "'.concat(n,'": "').concat(r,'". Options are "').concat(Object.keys(a).join('", "'),'"'),Ci.INVALID_VALUE,o)||this}return i(t,"InvalidValueError"),t})(Bl),FM=(function(e){Ll(t,e);function t(n,r,a){return e.call(this,'Value for "'.concat(n,'" must be of type ').concat(r),Ci.INVALID_VALUE,a)||this}return i(t,"InvalidValueTypeError"),t})(Bl),UM=(function(e){Ll(t,e);function t(n,r){return e.call(this,'The intl string context variable "'.concat(n,'" was not provided to the string "').concat(r,'"'),Ci.MISSING_VALUE,
|
|
105
|
-
r)||this}return i(t,"MissingValueError"),t})(Bl)});function pX(e){return e.length<2?e:e.reduce(function(t,n){var r=t[t.length-1];return!r||r.type!==
|
|
106
|
-
parsedOptions:r.time.medium;c.push({type:
|
|
105
|
+
r)||this}return i(t,"MissingValueError"),t})(Bl)});function pX(e){return e.length<2?e:e.reduce(function(t,n){var r=t[t.length-1];return!r||r.type!==Cn.literal||n.type!==Cn.literal?t.push(n):r.value+=n.value,t},[])}function fX(e){return typeof e=="function"}function jl(e,t,n,r,a,o,s){if(e.length===1&&dy(e[0]))return[{type:Cn.literal,value:e[0].value}];for(var c=[],l=0,u=e;l<u.length;l++){var m=u[l];if(dy(m)){c.push({type:Cn.literal,value:m.value});continue}if(oM(m)){typeof o=="number"&&c.push({type:Cn.literal,value:n.getNumberFormat(t).format(o)});continue}var p=m.value;if(!(a&&p in a))throw new UM(p,s);var f=a[p];if(aM(m)){(!f||typeof f=="string"||typeof f=="number")&&(f=typeof f=="string"||typeof f=="number"?String(f):""),c.push({type:typeof f=="string"?Cn.literal:Cn.object,value:f});continue}if(Gp(m)){var h=typeof m.style=="string"?r.date[m.style]:Fl(m.style)?m.style.parsedOptions:void 0;c.push({type:Cn.literal,value:n.getDateTimeFormat(t,h).format(f)});continue}if(Wp(m)){var h=typeof m.style=="string"?r.time[m.style]:Fl(m.style)?m.style.
|
|
106
|
+
parsedOptions:r.time.medium;c.push({type:Cn.literal,value:n.getDateTimeFormat(t,h).format(f)});continue}if(zp(m)){var h=typeof m.style=="string"?r.number[m.style]:Kp(m.style)?m.style.parsedOptions:void 0;h&&h.scale&&(f=f*(h.scale||1)),c.push({type:Cn.literal,value:n.getNumberFormat(t,h).format(f)});continue}if(Yp(m)){var y=m.children,b=m.value,w=a[b];if(!fX(w))throw new FM(b,"function",s);var C=jl(y,t,n,r,a,o),k=w(C.map(function(_){return _.value}));Array.isArray(k)||(k=[k]),c.push.apply(c,k.map(function(_){return{type:typeof _=="string"?Cn.literal:Cn.object,value:_}}))}if(Vp(m)){var R=m.options[f]||m.options.other;if(!R)throw new xy(m.value,f,Object.keys(m.options),s);c.push.apply(c,jl(R.value,t,n,r,a));continue}if($p(m)){var R=m.options["=".concat(f)];if(!R){if(!Intl.PluralRules)throw new Bl(`Intl.PluralRules is not available in this environment.
|
|
107
107
|
Try polyfilling it using "@formatjs/intl-pluralrules"
|
|
108
|
-
`,Ci.MISSING_INTL_API,s);var S=n.getPluralRules(t,{type:m.pluralType}).select(f-(m.offset||0));R=m.options[S]||m.options.other}if(!R)throw new xy(m.value,f,Object.keys(m.options),s);c.push.apply(c,jl(R.value,t,n,r,a,f-(m.offset||0)));continue}}return pX(c)}var
|
|
109
|
-
n,!1)))},{cache:ky(e.pluralRules),strategy:Zp.variadic})}}var BM,Ry=g(()=>{d();cy();wy();LM();Cy();i(hX,"mergeConfig");i(gX,"mergeConfigs");i(ky,"createFastMemoizeCache");i(yX,"createDefaultFormatters");BM=(function(){function e(t,n,r,a){n===void 0&&(n=e.defaultLocale);var o=this;if(this.formatterCache={number:{},dateTime:{},pluralRules:{}},this.format=function(u){var m=o.formatToParts(u);if(m.length===1)return m[0].value;var p=m.reduce(function(f,h){return!f.length||h.type!==
|
|
108
|
+
`,Ci.MISSING_INTL_API,s);var S=n.getPluralRules(t,{type:m.pluralType}).select(f-(m.offset||0));R=m.options[S]||m.options.other}if(!R)throw new xy(m.value,f,Object.keys(m.options),s);c.push.apply(c,jl(R.value,t,n,r,a,f-(m.offset||0)));continue}}return pX(c)}var Cn,Cy=g(()=>{d();wy();Sy();(function(e){e[e.literal=0]="literal",e[e.object=1]="object"})(Cn||(Cn={}));i(pX,"mergeLiteral");i(fX,"isFormatXMLElementFn");i(jl,"formatToParts")});function hX(e,t){return t?Ur(Ur(Ur({},e||{}),t||{}),Object.keys(e).reduce(function(n,r){return n[r]=Ur(Ur({},e[r]),t[r]||{}),n},{})):e}function gX(e,t){return t?Object.keys(e).reduce(function(n,r){return n[r]=hX(e[r],t[r]),n},Ur({},e)):e}function ky(e){return{create:i(function(){return{get:i(function(t){return e[t]},"get"),set:i(function(t,n){e[t]=n},"set")}},"create")}}function yX(e){return e===void 0&&(e={number:{},dateTime:{},pluralRules:{}}),{getNumberFormat:Jp(function(){for(var t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return new((t=Intl.NumberFormat).bind.apply(t,qp([void 0],n,!1)))},{cache:ky(e.number),strategy:Zp.variadic}),getDateTimeFormat:Jp(function(){for(var t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return new((t=Intl.DateTimeFormat).bind.apply(t,qp([void 0],n,!1)))},{cache:ky(e.dateTime),strategy:Zp.variadic}),getPluralRules:Jp(function(){for(var t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return new((t=Intl.PluralRules).bind.apply(t,qp([void 0],
|
|
109
|
+
n,!1)))},{cache:ky(e.pluralRules),strategy:Zp.variadic})}}var BM,Ry=g(()=>{d();cy();wy();LM();Cy();i(hX,"mergeConfig");i(gX,"mergeConfigs");i(ky,"createFastMemoizeCache");i(yX,"createDefaultFormatters");BM=(function(){function e(t,n,r,a){n===void 0&&(n=e.defaultLocale);var o=this;if(this.formatterCache={number:{},dateTime:{},pluralRules:{}},this.format=function(u){var m=o.formatToParts(u);if(m.length===1)return m[0].value;var p=m.reduce(function(f,h){return!f.length||h.type!==Cn.literal||typeof f[f.length-1]!="string"?f.push(h.value):f[f.length-1]+=h.value,f},[]);return p.length<=1?p[0]||"":p},this.formatToParts=function(u){return jl(o.ast,o.locales,o.formatters,o.formats,u,void 0,o.message)},this.resolvedOptions=function(){var u;return{locale:((u=o.resolvedLocale)===null||u===void 0?void 0:u.toString())||Intl.NumberFormat.supportedLocalesOf(o.locales)[0]}},this.getAst=function(){return o.ast},this.locales=n,this.resolvedLocale=e.resolveLocale(n),typeof t=="string"){if(this.message=t,!e.
|
|
110
110
|
__parse)throw new TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");var s=a||{},c=s.formatters,l=rM(s,["formatters"]);this.ast=e.__parse(t,Ur(Ur({},l),{locale:this.resolvedLocale}))}else this.ast=t;if(!Array.isArray(this.ast))throw new TypeError("A message must be provided as a String or AST.");this.formats=gX(e.formats,r),this.formatters=a&&a.formatters||yX(this.formatterCache)}return i(e,"IntlMessageFormat"),Object.defineProperty(e,"defaultLocale",{get:i(function(){return e.memoizedDefaultLocale||(e.memoizedDefaultLocale=new Intl.NumberFormat().resolvedOptions().locale),e.memoizedDefaultLocale},"get"),enumerable:!1,configurable:!0}),e.memoizedDefaultLocale=null,e.resolveLocale=function(t){if(!(typeof Intl.Locale>"u")){var n=Intl.NumberFormat.supportedLocalesOf(t);return n.length>0?new Intl.Locale(n[0]):new Intl.Locale(typeof t=="string"?t:t[0])}},e.__parse=MM,e.formats={number:{integer:{maximumFractionDigits:0},currency:{style:"currency"},percent:{
|
|
111
111
|
style:"percent"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}},e})()});var _y,jM=g(()=>{d();Ry();Cy();Ry();Sy();_y=BM});var ki,Ps=g(()=>{d();ki=i(()=>({resolve(){throw new Error("createRequire.resolve is not supported in bundled Lighthouse")}}),"createRequire")});var vX,bX,Ri,Hl=g(()=>{d();vX=globalThis.URL,bX=i(e=>e,"fileURLToPath"),Ri={URL:vX,fileURLToPath:bX}});function HM(e){return Ri.fileURLToPath(e.url)}var _i=g(()=>{"use strict";d();Ps();Hl();ho();i(HM,"getModulePath")});function Iy(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function qM(e){return typeof e=="object"&&e!==null}var zM=g(()=>{"use strict";d();i(Iy,"isObjectOfUnknownValues");i(qM,"isObjectOrArrayOfUnknownValues")});var GM,WM=g(()=>{d();GM={}});function $M(e,t=new Map){for(let n of e)if(!(n.type===Qp.literal||n.type===Qp.pound)&&(t.set(n.value,n),n.type===Qp.plural))for(let r of Object.values(n.options))$M(r.value,t);return t}function TX(e,t={},n){let r=$M(e.getAst()),a={};for(let[o,s]of r){if(!(o in t))throw new Error(`ICU Message "${n}" contains a value reference ("${o}") that wasn't provided`);let c=t[o];if(s.type!==Qp.number){a[o]=c;continue}if(typeof c!="number")throw new Error(`ICU Message "${n}" contains a numeric reference ("${o}") but provided value was not a number`);s.style==="milliseconds"?a[o]=Math.round(c/10)*10:s.style==="seconds"&&o==="timeInMs"?a[o]=Math.round(c/100)/10:s.style==="bytes"?a[o]=c/1024:a[o]=c}for(let o of Object.keys(t))if(!(o in a)){if(o==="errorCode"){a.errorCode=t.errorCode;continue}throw new Error(`Provided value "${o}" does not match any placeholder in ICU message "${n}"`)}return a}function xX(e){return e.replace(/'/g,"''").replace(/\\{/g,"'{").replace(/\\}/g,"'}")}function Ay(e,t,n){e=xX(e);
|
|
112
112
|
let r=n==="en-XA"||n==="en-XL"?"de-DE":n,a=_y.IntlMessageFormat||_y,o=new a(e,r,EX,{ignoreTag:!0}),s=TX(o,t,e),c=o.format(s);if(typeof c!="string")throw new Error("unexpected formatted result");return c}function SX(e,t){let r=KM(t)[e.i18nId];return r?Ay(r.message,e.values,t):e.formattedDefault}function YM(e){let t=KM(e),n=Object.keys(t).filter(a=>a.startsWith("report/renderer/report-utils.js")),r={};for(let a of n){let{filename:o,key:s}=kX(a);if(!o.endsWith("report-utils.js"))throw new Error(`Unexpected message: ${a}`);r[s]=t[a].message}return r}function Fs(e){if(!Iy(e))return!1;let{i18nId:t,values:n,formattedDefault:r}=e;if(typeof t!="string"||typeof r!="string")return!1;if(n!==void 0){if(!Iy(n))return!1;for(let a of Object.values(n))if(typeof a!="string"&&typeof a!="number")return!1}return VM.test(t)}function Ii(e,t){if(Fs(e))return SX(e,t);if(typeof e=="string")return e;throw new Error("Attempted to format invalid icuMessage type")}function CX(e){let t="";for(let n of e)if(/^[a-z]+$/i.
|
|
@@ -167,7 +167,7 @@ minify-combine) in 'WP Rocket' to fix this issue. Empty spaces and comments will
|
|
|
167
167
|
e [LazyLoad](https://docs.wp-rocket.me/article/1141-lazyload-for-images) in WP Rocket to fix this recommendation. This feature delays the loading of the images until the visitor scrolls down the page and actually needs to see them."};RO.exports={id:"wp-rocket",title:"WP Rocket",icon:tJ,UIStrings:nJ}});var DO=ve((pRe,IO)=>{d();var rJ=[eO(),nO(),aO(),iO(),cO(),uO(),mO(),fO(),gO(),vO(),wO(),TO(),SO(),kO(),_O()];IO.exports=rJ});var NO=ve((hRe,AO)=>{d();AO.exports=i(function(t,n){if(typeof t=="string"&&n[t])return t;for(var r=[].concat(t||[]),a=0,o=r.length;a<o;++a)for(var s=r[a].split("-");s.length;){var c=s.join("-");if(n[c])return c;s.pop()}},"lookupClosestLocale")});var ef,aJ,MO,tf=g(()=>{"use strict";d();fo();ho();_i();ef=At.dirname(""),aJ=JSON.parse(`{
|
|
168
168
|
"name": "lighthouse",
|
|
169
169
|
"type": "module",
|
|
170
|
-
"version": "13.0.
|
|
170
|
+
"version": "13.0.2",
|
|
171
171
|
"description": "Automated auditing, performance metrics, and best practices for the web.",
|
|
172
172
|
"main": "./core/index.js",
|
|
173
173
|
"bin": {
|
|
@@ -181,7 +181,7 @@ e [LazyLoad](https://docs.wp-rocket.me/article/1141-lazyload-for-images) in WP R
|
|
|
181
181
|
"scripts": {
|
|
182
182
|
"prepack": "yarn build-report --standalone --flow --esm && yarn build-types",
|
|
183
183
|
"postpack": "yarn clean-types",
|
|
184
|
-
"build-all": "yarn build-report && yarn build-cdt-strings && yarn build-devtools && concurrently 'yarn build-extension' 'yarn build-lr' 'yarn build-viewer' 'yarn build-treemap' 'yarn build-smokehouse-bundle' 'yarn build-legacy-javascript' && yarn build-pack",
|
|
184
|
+
"build-all": "yarn build-report && yarn build-cdt-strings && yarn build-devtools && concurrently 'yarn build-extension' 'yarn build-lr' 'yarn build-viewer' 'yarn build-treemap' 'yarn build-smokehouse-bundle' 'yarn build-legacy-javascript' 'yarn build-devtools-mcp' && yarn build-pack",
|
|
185
185
|
"build-cdt-lib": "node ./build/build-cdt-lib.js",
|
|
186
186
|
"build-cdt-strings": "node ./build/build-cdt-strings.js",
|
|
187
187
|
"build-extension": "yarn build-extension-chrome && yarn build-extension-firefox",
|
|
@@ -189,6 +189,7 @@ e [LazyLoad](https://docs.wp-rocket.me/article/1141-lazyload-for-images) in WP R
|
|
|
189
189
|
"build-extension-firefox": "node ./build/build-extension.js firefox",
|
|
190
190
|
"build-devtools": "yarn reset-link && node ./build/build-bundle.js clients/devtools/devtools-entry.js dist/lighthouse-dt-bundle.js && node ./build/build-dt-report-resources.js",
|
|
191
191
|
"build-legacy-javascript": "node ./build/build-legacy-javascript.js",
|
|
192
|
+
"build-devtools-mcp": "node ./build/build-bundle-mcp.js clients/devtools-mcp/devtools-mcp-entry.js dist/lighthouse-devtools-mcp-bundle.js",
|
|
192
193
|
"build-smokehouse-bundle": "node ./build/build-smokehouse-bundle.js",
|
|
193
194
|
"build-lr": "yarn reset-link && node --max-old-space-size=4096 ./build/build-lightrider-bundles.js",
|
|
194
195
|
"build-pack": "bash build/build-pack.sh",
|
|
@@ -392,10 +393,10 @@ e [LazyLoad](https://docs.wp-rocket.me/article/1141-lazyload-for-images) in WP R
|
|
|
392
393
|
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
393
394
|
}
|
|
394
395
|
`),MO=aJ.version});function nf(e,t){if(typeof Intl!="object")throw new Error("Lighthouse must be run in Node with `Intl` support. See https://nodejs.org/api/intl.html for help");let n=Intl.getCanonicalLocales(e),r=Intl.NumberFormat.supportedLocalesOf(n),a=t||JM(),o=Object.fromEntries(a.map(c=>[c,{}])),s=(0,OO.default)(r,o);return s||(Intl.NumberFormat.supportedLocalesOf("es").length===0&&M.warn("i18n","Requested locale not available in this version of node. The `full-icu` npm module can provide additional locales. For help, see https://github.com/GoogleChrome/lighthouse/blob/main/readme.md#how-do-i-get-localized-lighthouse-results-via-the-cli"),M.warn("i18n",`locale(s) '${e}' not available. Falling back to default '${Ls}'`)),s||Ls}function T(e,t={}){e.startsWith("file://")&&(e=Ri.fileURLToPath(e)),At.isAbsolute(e)&&(e=At.relative(ef,e));let n={...D,...t};return i((a,o)=>{let s=Object.keys(n).find(m=>n[m]===a);if(!s)throw new Error(`Could not locate: ${a}`);return{i18nId:`${(s in t?e:At.relative(ef,HM({url:"\
|
|
395
|
-
core/lib/i18n/i18n.js"}))).replace(/\\/g,"/")} | ${s}`,values:o,formattedDefault:Ay(a,o,Ls)}},"getIcuMessageFn")}function Qr(e){return typeof e=="string"||Fs(e)}var OO,D,A=g(()=>{"use strict";d();ho();Hl();OO=
|
|
396
|
+
core/lib/i18n/i18n.js"}))).replace(/\\/g,"/")} | ${s}`,values:o,formattedDefault:Ay(a,o,Ls)}},"getIcuMessageFn")}function Qr(e){return typeof e=="string"||Fs(e)}var OO,D,A=g(()=>{"use strict";d();ho();Hl();OO=En(NO(),1);Ve();Ia();tf();Ia();_i();D={ms:"{timeInMs, number, milliseconds} ms",seconds:"{timeInMs, number, seconds} s",displayValueByteSavings:"Est savings of {wastedBytes, number, bytes} KiB",displayValueMsSavings:"Est savings of {wastedMs, number, milliseconds} ms",displayValueElementsFound:"{nodeCount, plural, =1 {1 element found} other {# elements found}}",columnURL:"URL",columnSize:"Size",columnResourceSize:"Resource Size",columnTransferSize:"Transfer Size",columnCacheTTL:"Cache TTL",columnWastedBytes:"Est Savings",columnWastedMs:"Est Savings",columnBlockingTime:"Main-Thread Blocking Time",columnTimeSpent:"Time Spent",columnLocation:"Location",columnResourceType:"Resource Type",columnRequests:"Requests",columnName:"Name",columnSource:"Source",columnElement:"Element",columnStartTime:"\
|
|
396
397
|
Start Time",columnDuration:"Duration",columnFailingElem:"Failing Elements",columnDescription:"Description",total:"Total",totalResourceType:"Total",documentResourceType:"Document",scriptResourceType:"Script",stylesheetResourceType:"Stylesheet",imageResourceType:"Image",mediaResourceType:"Media",fontResourceType:"Font",otherResourceType:"Other",thirdPartyResourceType:"Third-party",otherResourcesLabel:"Other resources",firstContentfulPaintMetric:"First Contentful Paint",interactiveMetric:"Time to Interactive",firstMeaningfulPaintMetric:"First Meaningful Paint",totalBlockingTimeMetric:"Total Blocking Time",maxPotentialFIDMetric:"Max Potential First Input Delay",speedIndexMetric:"Speed Index",largestContentfulPaintMetric:"Largest Contentful Paint",cumulativeLayoutShiftMetric:"Cumulative Layout Shift",interactionToNextPaint:"Interaction to Next Paint",itemSeverityLow:"Low",itemSeverityMedium:"Medium",itemSeverityHigh:"High"};i(nf,"lookupLocale");i(T,"createIcuMessageFn");i(Qr,"isStringOrIcuM\
|
|
397
|
-
essage")});function LO(e){if(!e)return[];let t=[];for(let n of e){let r=Oy.find(l=>l.requiredStacks.includes(`${n.detector}:${n.id}`));if(!r)continue;let a=PO.default.find(l=>l.id===r.packId);if(!a){M.warn("StackPacks",`'${r.packId}' stack pack was matched but is not found in stack-packs lib`);continue}let o=T(`node_modules/lighthouse-stack-packs/packs/${a.id}.js`,a.UIStrings),s={},c=a.UIStrings;for(let l in c)c[l]&&(s[l]=o(c[l]));t.push({id:a.id,title:a.title,iconDataURL:a.icon,descriptions:s})}return t.sort((n,r)=>{let a=Oy.findIndex(s=>s.packId===n.id),o=Oy.findIndex(s=>s.packId===r.id);return a-o})}var PO,Oy,FO=g(()=>{"use strict";d();Ve();PO=
|
|
398
|
-
{packId:"amp",requiredStacks:["js:amp"]},{packId:"magento",requiredStacks:["js:magento"]},{packId:"octobercms",requiredStacks:["js:octobercms"]},{packId:"joomla",requiredStacks:["js:joomla"]},{packId:"next.js",requiredStacks:["js:next"]},{packId:"nuxt",requiredStacks:["js:nuxt"]},{packId:"angular",requiredStacks:["js:angular"]},{packId:"react",requiredStacks:["js:react"]}];i(LO,"getStackPacks")});var Py,Ht,UO=g(()=>{d();typeof Object.create=="function"?Py=i(function(t,n){t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})},"inherits"):Py=i(function(t,n){t.super_=n;var r=i(function(){},"TempCtor");r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t},"inherits");Ht=Py});function cJ(e){if(!Gy(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(Eo(arguments[n]));return t.join(" ")}for(var n=1,r=arguments,a=r.length,o=String(e).replace(sJ,function(c){if(c==="%%")return"%";if(n>=a)return c;switch(c){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch{return"[Circular]"}default:return c}}),s=r[n];n<a;s=r[++n])zy(s)||!ql(s)?o+=" "+s:o+=" "+Eo(s);return o}function qy(e,t){if(wo(globalThis.process))return function(){return qy(e,t).apply(this,arguments)};if(
|
|
398
|
+
essage")});function LO(e){if(!e)return[];let t=[];for(let n of e){let r=Oy.find(l=>l.requiredStacks.includes(`${n.detector}:${n.id}`));if(!r)continue;let a=PO.default.find(l=>l.id===r.packId);if(!a){M.warn("StackPacks",`'${r.packId}' stack pack was matched but is not found in stack-packs lib`);continue}let o=T(`node_modules/lighthouse-stack-packs/packs/${a.id}.js`,a.UIStrings),s={},c=a.UIStrings;for(let l in c)c[l]&&(s[l]=o(c[l]));t.push({id:a.id,title:a.title,iconDataURL:a.icon,descriptions:s})}return t.sort((n,r)=>{let a=Oy.findIndex(s=>s.packId===n.id),o=Oy.findIndex(s=>s.packId===r.id);return a-o})}var PO,Oy,FO=g(()=>{"use strict";d();Ve();PO=En(DO(),1);A();Oy=[{packId:"gatsby",requiredStacks:["js:gatsby"]},{packId:"wordpress",requiredStacks:["js:wordpress"]},{packId:"wix",requiredStacks:["js:wix"]},{packId:"wp-rocket",requiredStacks:["js:wp-rocket"]},{packId:"ezoic",requiredStacks:["js:ezoic"]},{packId:"drupal",requiredStacks:["js:drupal"]},{packId:"nitropack",requiredStacks:["js:nitropack"]},
|
|
399
|
+
{packId:"amp",requiredStacks:["js:amp"]},{packId:"magento",requiredStacks:["js:magento"]},{packId:"octobercms",requiredStacks:["js:octobercms"]},{packId:"joomla",requiredStacks:["js:joomla"]},{packId:"next.js",requiredStacks:["js:next"]},{packId:"nuxt",requiredStacks:["js:nuxt"]},{packId:"angular",requiredStacks:["js:angular"]},{packId:"react",requiredStacks:["js:react"]}];i(LO,"getStackPacks")});var Py,Ht,UO=g(()=>{d();typeof Object.create=="function"?Py=i(function(t,n){t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})},"inherits"):Py=i(function(t,n){t.super_=n;var r=i(function(){},"TempCtor");r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t},"inherits");Ht=Py});function cJ(e){if(!Gy(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(Eo(arguments[n]));return t.join(" ")}for(var n=1,r=arguments,a=r.length,o=String(e).replace(sJ,function(c){if(c==="%%")return"%";if(n>=a)return c;switch(c){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch{return"[Circular]"}default:return c}}),s=r[n];n<a;s=r[++n])zy(s)||!ql(s)?o+=" "+s:o+=" "+Eo(s);return o}function qy(e,t){if(wo(globalThis.process))return function(){return qy(e,t).apply(this,arguments)};if(xn.noDeprecation===!0)return e;var n=!1;function r(){if(!n){if(xn.throwDeprecation)throw new Error(t);xn.traceDeprecation?console.trace(t):console.error(t),n=!0}return e.apply(this,arguments)}return i(r,"deprecated"),r}function jO(e){if(wo(Ly)&&(Ly=xn.env.NODE_DEBUG||""),e=e.toUpperCase(),!rf[e])if(new RegExp("\\b"+e+"\\b","i").test(Ly)){var t=0;rf[e]=function(){var n=cJ.apply(null,arguments);console.error("%s %d: %s",e,t,n)}}else rf[e]=function(){};
|
|
399
400
|
return rf[e]}function Eo(e,t){var n={seen:[],stylize:uJ};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),HO(t)?n.showHidden=t:t&&yJ(n,t),wo(n.showHidden)&&(n.showHidden=!1),wo(n.depth)&&(n.depth=2),wo(n.colors)&&(n.colors=!1),wo(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=lJ),af(n,e,n.depth)}function lJ(e,t){var n=Eo.styles[t];return n?"\x1B["+Eo.colors[n][0]+"m"+e+"\x1B["+Eo.colors[n][1]+"m":e}function uJ(e,t){return e}function dJ(e){var t={};return e.forEach(function(n,r){t[n]=!0}),t}function af(e,t,n){if(e.customInspect&&t&&jy(t.inspect)&&t.inspect!==Eo&&!(t.constructor&&t.constructor.prototype===t)){var r=t.inspect(n,e);return Gy(r)||(r=af(e,r,n)),r}var a=mJ(e,t);if(a)return a;var o=Object.keys(t),s=dJ(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),By(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return Fy(t);if(o.length===0){if(jy(t)){var c=t.name?": "+t.name:"";return e.stylize("[Function"+c+"]","\
|
|
400
401
|
special")}if(Uy(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(BO(t))return e.stylize(Date.prototype.toString.call(t),"date");if(By(t))return Fy(t)}var l="",u=!1,m=["{","}"];if(hJ(t)&&(u=!0,m=["[","]"]),jy(t)){var p=t.name?": "+t.name:"";l=" [Function"+p+"]"}if(Uy(t)&&(l=" "+RegExp.prototype.toString.call(t)),BO(t)&&(l=" "+Date.prototype.toUTCString.call(t)),By(t)&&(l=" "+Fy(t)),o.length===0&&(!u||t.length==0))return m[0]+l+m[1];if(n<0)return Uy(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var f;return u?f=pJ(e,t,n,s,o):f=o.map(function(h){return Hy(e,t,n,s,h,u)}),e.seen.pop(),fJ(f,l,m)}function mJ(e,t){if(wo(t))return e.stylize("undefined","undefined");if(Gy(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(gJ(t))return e.stylize(""+t,"number");if(HO(t))return e.stylize(""+t,"boolean");if(zy(t))return e.stylize("null","null")}function Fy(e){
|
|
401
402
|
return"["+Error.prototype.toString.call(e)+"]"}function pJ(e,t,n,r,a){for(var o=[],s=0,c=t.length;s<c;++s)qO(t,String(s))?o.push(Hy(e,t,n,r,String(s),!0)):o.push("");return a.forEach(function(l){l.match(/^\d+$/)||o.push(Hy(e,t,n,r,l,!0))}),o}function Hy(e,t,n,r,a,o){var s,c,l;if(l=Object.getOwnPropertyDescriptor(t,a)||{value:t[a]},l.get?l.set?c=e.stylize("[Getter/Setter]","special"):c=e.stylize("[Getter]","special"):l.set&&(c=e.stylize("[Setter]","special")),qO(r,a)||(s="["+a+"]"),c||(e.seen.indexOf(l.value)<0?(zy(n)?c=af(e,l.value,null):c=af(e,l.value,n-1),c.indexOf(`
|
|
@@ -411,23 +412,23 @@ return"["+Error.prototype.toString.call(e)+"]"}function pJ(e,t,n,r,a){for(var o=
|
|
|
411
412
|
ust be of type Function');return Object.defineProperty(t,Di,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var n,r,a=new Promise(function(c,l){n=c,r=l}),o=[],s=0;s<arguments.length;s++)o.push(arguments[s]);o.push(function(c,l){c?r(c):n(l)});try{e.apply(this,o)}catch(c){r(c)}return a}return i(t,"fn"),Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Di&&Object.defineProperty(t,Di,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,iJ(e))}var iJ,sJ,rf,Ly,Di,To=g(()=>{d();co();UO();iJ=Object.getOwnPropertyDescriptors||i(function(t){for(var n=Object.keys(t),r={},a=0;a<n.length;a++)r[n[a]]=Object.getOwnPropertyDescriptor(t,n[a]);return r},"getOwnPropertyDescriptors"),sJ=/%[sdj%]/g;i(cJ,"format");i(qy,"deprecate");rf={};i(jO,"debuglog");i(Eo,"inspect");Eo.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};
|
|
412
413
|
Eo.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};i(lJ,"stylizeWithColor");i(uJ,"stylizeNoColor");i(dJ,"arrayToHash");i(af,"formatValue");i(mJ,"formatPrimitive");i(Fy,"formatError");i(pJ,"formatArray");i(Hy,"formatProperty");i(fJ,"reduceToSingleString");i(hJ,"isArray");i(HO,"isBoolean");i(zy,"isNull");i(gJ,"isNumber");i(Gy,"isString");i(wo,"isUndefined");i(Uy,"isRegExp");i(ql,"isObject");i(BO,"isDate");i(By,"isError");i(jy,"isFunction");i(Wy,"objectToString");i(yJ,"_extend");i(qO,"hasOwnProperty");Di=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;i(vJ,"promisify");vJ.custom=Di});function Ai(){this.head=null,this.tail=null,this.length=0}var zO,GO=g(()=>{d();Tl();zO=Ai;i(Ai,"BufferList");Ai.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length};Ai.prototype.unshift=function(e){var t={data:e,next:this.head};this.length===0&&(this.tail=t),this.head=t,++this.length};Ai.prototype.shift=function(){if(this.length!==0){var e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}};Ai.prototype.clear=function(){this.head=this.tail=null,this.length=0};Ai.prototype.join=function(e){if(this.length===0)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n};Ai.prototype.concat=function(e){if(this.length===0)return H.alloc(0);if(this.length===1)return this.head.data;for(var t=H.allocUnsafe(e>>>0),n=this.head,r=0;n;)n.data.copy(t,r),r+=n.data.length,n=n.next;return t}});function wJ(e){if(e&&!bJ(e))throw new Error("Unknown encoding: "+e)}function Us(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),wJ(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=TJ;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=xJ;break;default:this.write=EJ;return}this.charBuffer=new H(6),this.charReceived=0,this.charLength=0}function EJ(e){return e.toString(this.encoding)}function TJ(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function xJ(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}var bJ,WO=g(()=>{d();Tl();bJ=H.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};i(wJ,"assertEncoding");i(Us,"StringDecoder");Us.prototype.write=function(e){for(var t="";this.charLength;){
|
|
413
414
|
var n=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,n),this.charReceived+=n,this.charReceived<this.charLength)return"";e=e.slice(n,e.length),t=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var a=t.charCodeAt(t.length-1);if(a>=55296&&a<=56319){this.charLength+=this.surrogateSize,t="";continue}if(this.charReceived=this.charLength=0,e.length===0)return t;break}this.detectIncompleteChar(e);var r=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,r),r-=this.charReceived),t+=e.toString(this.encoding,0,r);var r=t.length-1,a=t.charCodeAt(r);if(a>=55296&&a<=56319){var o=this.surrogateSize;return this.charLength+=o,this.charReceived+=o,this.charBuffer.copy(this.charBuffer,o,0,o),e.copy(this.charBuffer,0,0,o),t.substring(0,r)}return t};Us.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var n=e[e.length-t];if(t==1&&n>>5==6){this.
|
|
414
|
-
charLength=2;break}if(t<=2&&n>>4==14){this.charLength=3;break}if(t<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=t};Us.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var n=this.charReceived,r=this.charBuffer,a=this.encoding;t+=r.slice(0,n).toString(a)}return t};i(EJ,"passThroughWrite");i(TJ,"utf16DetectIncompleteChar");i(xJ,"base64DetectIncompleteChar")});function SJ(e,t,n){if(typeof e.prependListener=="function")return e.prependListener(t,n);!e._events||!e._events[t]?e.on(t,n):Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]}function CJ(e,t){return e.listeners(t).length}function KO(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof
|
|
415
|
+
charLength=2;break}if(t<=2&&n>>4==14){this.charLength=3;break}if(t<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=t};Us.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var n=this.charReceived,r=this.charBuffer,a=this.encoding;t+=r.slice(0,n).toString(a)}return t};i(EJ,"passThroughWrite");i(TJ,"utf16DetectIncompleteChar");i(xJ,"base64DetectIncompleteChar")});function SJ(e,t,n){if(typeof e.prependListener=="function")return e.prependListener(t,n);!e._events||!e._events[t]?e.on(t,n):Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]}function CJ(e,t){return e.listeners(t).length}function KO(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof kn&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark,r=this.objectMode?16:16*1024;this.highWaterMark=n||n===0?n:r,this.highWaterMark=~~this.highWaterMark,this.buffer=new zO,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new Us(e.encoding),this.encoding=e.encoding)}function Nt(e){if(!(this instanceof Nt))return new Nt(
|
|
415
416
|
e);this._readableState=new KO(e,this),this.readable=!0,e&&typeof e.read=="function"&&(this._read=e.read),fr.call(this)}function XO(e,t,n,r,a){var o=_J(t,n);if(o)e.emit("error",o);else if(n===null)t.reading=!1,IJ(e,t);else if(t.objectMode||n&&n.length>0)if(t.ended&&!a){var s=new Error("stream.push() after EOF");e.emit("error",s)}else if(t.endEmitted&&a){var c=new Error("stream.unshift() after end event");e.emit("error",c)}else{var l;t.decoder&&!a&&!r&&(n=t.decoder.write(n),l=!t.objectMode&&n.length===0),a||(t.reading=!1),l||(t.flowing&&t.length===0&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,a?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&of(e))),DJ(e,t)}else a||(t.reading=!1);return kJ(t)}function kJ(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||e.length===0)}function RJ(e){return e>=VO?e=VO:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function $O(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.
|
|
416
|
-
length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=RJ(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _J(e,t){var n=null;return!Buffer.isBuffer(t)&&typeof t!="string"&&t!==null&&t!==void 0&&!e.objectMode&&(n=new TypeError("Invalid non-string/buffer chunk")),n}function IJ(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,of(e)}}function of(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(yt("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?
|
|
417
|
-
t.awaitDrain--,t.awaitDrain===0&&e.listeners("data").length&&(t.flowing=!0,$y(e))}}function MJ(e){yt("readable nexttick read 0"),e.read(0)}function OJ(e,t){t.resumeScheduled||(t.resumeScheduled=!0,
|
|
418
|
-
a+=o:a+=o.slice(0,e),e-=s,e===0){s===o.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(s));break}++r}return t.length-=r,a}function UJ(e,t){var n=Buffer.allocUnsafe(e),r=t.head,a=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var o=r.data,s=e>o.length?o.length:e;if(o.copy(n,n.length-e,0,s),e-=s,e===0){s===o.length?(++a,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(s));break}++a}return t.length-=a,n}function Vy(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,
|
|
417
|
+
length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=RJ(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _J(e,t){var n=null;return!Buffer.isBuffer(t)&&typeof t!="string"&&t!==null&&t!==void 0&&!e.objectMode&&(n=new TypeError("Invalid non-string/buffer chunk")),n}function IJ(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,of(e)}}function of(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(yt("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?Tn(YO,e):YO(e))}function YO(e){yt("emit readable"),e.emit("readable"),$y(e)}function DJ(e,t){t.readingMore||(t.readingMore=!0,Tn(AJ,e,t))}function AJ(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(yt("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function NJ(e){return function(){var t=e._readableState;yt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&
|
|
418
|
+
t.awaitDrain--,t.awaitDrain===0&&e.listeners("data").length&&(t.flowing=!0,$y(e))}}function MJ(e){yt("readable nexttick read 0"),e.read(0)}function OJ(e,t){t.resumeScheduled||(t.resumeScheduled=!0,Tn(PJ,e,t))}function PJ(e,t){t.reading||(yt("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),$y(e),t.flowing&&!t.reading&&e.read(0)}function $y(e){var t=e._readableState;for(yt("flow",t.flowing);t.flowing&&e.read()!==null;);}function JO(e,t){if(t.length===0)return null;var n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(t.decoder?n=t.buffer.join(""):t.buffer.length===1?n=t.buffer.head.data:n=t.buffer.concat(t.length),t.buffer.clear()):n=LJ(e,t.buffer,t.decoder),n}function LJ(e,t,n){var r;return e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):e===t.head.data.length?r=t.shift():r=n?FJ(e,t):UJ(e,t),r}function FJ(e,t){var n=t.head,r=1,a=n.data;for(e-=a.length;n=n.next;){var o=n.data,s=e>o.length?o.length:e;if(s===o.length?
|
|
419
|
+
a+=o:a+=o.slice(0,e),e-=s,e===0){s===o.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(s));break}++r}return t.length-=r,a}function UJ(e,t){var n=Buffer.allocUnsafe(e),r=t.head,a=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var o=r.data,s=e>o.length?o.length:e;if(o.copy(n,n.length-e,0,s),e-=s,e===0){s===o.length?(++a,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(s));break}++a}return t.length-=a,n}function Vy(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,Tn(BJ,t,e))}function BJ(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function jJ(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n)}function ZO(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}var yt,VO,Yy=g(()=>{"use strict";d();Ta();To();GO();WO();zl();co();Nt.ReadableState=KO;yt=jO("stream");Ht(Nt,fr);i(SJ,"prependListener");i(CJ,"listenerCount");i(KO,"Re\
|
|
419
420
|
adableState");i(Nt,"Readable");Nt.prototype.push=function(e,t){var n=this._readableState;return!n.objectMode&&typeof e=="string"&&(t=t||n.defaultEncoding,t!==n.encoding&&(e=Buffer.from(e,t),t="")),XO(this,n,e,t,!1)};Nt.prototype.unshift=function(e){var t=this._readableState;return XO(this,t,e,"",!0)};Nt.prototype.isPaused=function(){return this._readableState.flowing===!1};i(XO,"readableAddChunk");i(kJ,"needMoreData");Nt.prototype.setEncoding=function(e){return this._readableState.decoder=new Us(e),this._readableState.encoding=e,this};VO=8388608;i(RJ,"computeNewHighWaterMark");i($O,"howMuchToRead");Nt.prototype.read=function(e){yt("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return yt("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?Vy(this):of(this),null;if(e=$O(e,t),e===0&&t.ended)return t.length===0&&Vy(this),null;var r=t.needReadable;yt("need readable",r),(t.length===
|
|
420
|
-
0||t.length-e<t.highWaterMark)&&(r=!0,yt("length less than watermark",r)),t.ended||t.reading?(r=!1,yt("reading or ended",r)):r&&(yt("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=$O(n,t)));var a;return e>0?a=JO(e,t):a=null,a===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&Vy(this)),a!==null&&this.emit("data",a),a};i(_J,"chunkInvalid");i(IJ,"onEofChunk");i(of,"emitReadable");i(YO,"emitReadable_");i(DJ,"maybeReadMore");i(AJ,"maybeReadMore_");Nt.prototype._read=function(e){this.emit("error",new Error("not implemented"))};Nt.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e);break}r.pipesCount+=1,yt("pipe count=%d opts=%j",r.pipesCount,t);var a=!t||t.end!==!1,o=a?c:m;r.endEmitted?
|
|
421
|
+
0||t.length-e<t.highWaterMark)&&(r=!0,yt("length less than watermark",r)),t.ended||t.reading?(r=!1,yt("reading or ended",r)):r&&(yt("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=$O(n,t)));var a;return e>0?a=JO(e,t):a=null,a===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&Vy(this)),a!==null&&this.emit("data",a),a};i(_J,"chunkInvalid");i(IJ,"onEofChunk");i(of,"emitReadable");i(YO,"emitReadable_");i(DJ,"maybeReadMore");i(AJ,"maybeReadMore_");Nt.prototype._read=function(e){this.emit("error",new Error("not implemented"))};Nt.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e);break}r.pipesCount+=1,yt("pipe count=%d opts=%j",r.pipesCount,t);var a=!t||t.end!==!1,o=a?c:m;r.endEmitted?Tn(o):n.once("end",o),e.on("unpipe",s);function s(C){yt("onunpipe"),C===n&&
|
|
421
422
|
m()}i(s,"onunpipe");function c(){yt("onend"),e.end()}i(c,"onend");var l=NJ(n);e.on("drain",l);var u=!1;function m(){yt("cleanup"),e.removeListener("close",y),e.removeListener("finish",b),e.removeListener("drain",l),e.removeListener("error",h),e.removeListener("unpipe",s),n.removeListener("end",c),n.removeListener("end",m),n.removeListener("data",f),u=!0,r.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&l()}i(m,"cleanup");var p=!1;n.on("data",f);function f(C){yt("ondata"),p=!1;var k=e.write(C);k===!1&&!p&&((r.pipesCount===1&&r.pipes===e||r.pipesCount>1&&ZO(r.pipes,e)!==-1)&&!u&&(yt("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,p=!0),n.pause())}i(f,"ondata");function h(C){yt("onerror",C),w(),e.removeListener("error",h),CJ(e,"error")===0&&e.emit("error",C)}i(h,"onerror"),SJ(e,"error",h);function y(){e.removeListener("finish",b),w()}i(y,"onclose"),e.once("close",y);function b(){yt("onfinish"),e.removeListener("close",y),w()}i(b,"onfin\
|
|
422
|
-
ish"),e.once("finish",b);function w(){yt("unpipe"),n.unpipe(e)}return i(w,"unpipe"),e.emit("pipe",n),r.flowing||(yt("pipe resume"),n.resume()),e};i(NJ,"pipeOnDrain");Nt.prototype.unpipe=function(e){var t=this._readableState;if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<r;a++)n[a].emit("unpipe",this);return this}var o=ZO(t.pipes,e);return o===-1?this:(t.pipes.splice(o,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)};Nt.prototype.on=function(e,t){var n=fr.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var r=this._readableState;!r.endEmitted&&!r.readableListening&&(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&of(this,r):
|
|
423
|
+
ish"),e.once("finish",b);function w(){yt("unpipe"),n.unpipe(e)}return i(w,"unpipe"),e.emit("pipe",n),r.flowing||(yt("pipe resume"),n.resume()),e};i(NJ,"pipeOnDrain");Nt.prototype.unpipe=function(e){var t=this._readableState;if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<r;a++)n[a].emit("unpipe",this);return this}var o=ZO(t.pipes,e);return o===-1?this:(t.pipes.splice(o,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)};Nt.prototype.on=function(e,t){var n=fr.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var r=this._readableState;!r.endEmitted&&!r.readableListening&&(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&of(this,r):Tn(MJ,this))}return n};Nt.
|
|
423
424
|
prototype.addListener=Nt.prototype.on;i(MJ,"nReadingNextTick");Nt.prototype.resume=function(){var e=this._readableState;return e.flowing||(yt("resume"),e.flowing=!0,OJ(this,e)),this};i(OJ,"resume");i(PJ,"resume_");Nt.prototype.pause=function(){return yt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(yt("pause"),this._readableState.flowing=!1,this.emit("pause")),this};i($y,"flow");Nt.prototype.wrap=function(e){var t=this._readableState,n=!1,r=this;e.on("end",function(){if(yt("wrapped end"),t.decoder&&!t.ended){var s=t.decoder.end();s&&s.length&&r.push(s)}r.push(null)}),e.on("data",function(s){if(yt("wrapped data"),t.decoder&&(s=t.decoder.write(s)),!(t.objectMode&&s==null)&&!(!t.objectMode&&(!s||!s.length))){var c=r.push(s);c||(n=!0,e.pause())}});for(var a in e)this[a]===void 0&&typeof e[a]=="function"&&(this[a]=(function(s){return function(){return e[s].apply(e,arguments)}})(a));var o=["error","close","destroy","pause","resume"];return jJ(o,function(s){
|
|
424
|
-
e.on(s,r.emit.bind(r,s))}),r._read=function(s){yt("wrapped _read",s),n&&(n=!1,e.resume())},r};Nt._fromList=JO;i(JO,"fromList");i(LJ,"fromListPartial");i(FJ,"copyFromBufferString");i(UJ,"copyFromBuffer");i(Vy,"endReadable");i(BJ,"endReadableNT");i(jJ,"forEach");i(ZO,"indexOf")});function HJ(){}function qJ(e,t,n){this.chunk=e,this.encoding=t,this.callback=n,this.next=null}function Xy(e,t){Object.defineProperty(this,"buffer",{get:qy(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),e=e||{},this.objectMode=!!e.objectMode,t instanceof
|
|
425
|
-
if(!(this instanceof cn)&&!(this instanceof
|
|
426
|
-
1}else Ky(e,t,!1,o,n,r,a);return s}function Ky(e,t,n,r,a,o,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,n?e._writev(a,t.onwrite):e._write(a,o,t.onwrite),t.sync=!1}function $J(e,t,n,r,a){--t.pendingcb,n?
|
|
427
|
-
t.corkedRequestsFree=new aP(t)}else{for(;n;){var c=n.chunk,l=n.encoding,u=n.callback,m=t.objectMode?1:c.length;if(Ky(e,t,!1,m,c,l,u),n=n.next,t.writing)break}n===null&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}function nP(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function eP(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function rP(e,t){var n=nP(t);return n&&(t.pendingcb===0?(eP(e,t),t.finished=!0,e.emit("finish")):eP(e,t)),n}function JJ(e,t,n){t.ending=!0,rP(e,t),n&&(t.finished?
|
|
425
|
+
e.on(s,r.emit.bind(r,s))}),r._read=function(s){yt("wrapped _read",s),n&&(n=!1,e.resume())},r};Nt._fromList=JO;i(JO,"fromList");i(LJ,"fromListPartial");i(FJ,"copyFromBufferString");i(UJ,"copyFromBuffer");i(Vy,"endReadable");i(BJ,"endReadableNT");i(jJ,"forEach");i(ZO,"indexOf")});function HJ(){}function qJ(e,t,n){this.chunk=e,this.encoding=t,this.callback=n,this.next=null}function Xy(e,t){Object.defineProperty(this,"buffer",{get:qy(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),e=e||{},this.objectMode=!!e.objectMode,t instanceof kn&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,r=this.objectMode?16:16*1024;this.highWaterMark=n||n===0?n:r,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var a=e.decodeStrings===!1;this.decodeStrings=!a,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(o){KJ(t,o)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new aP(this)}function cn(e){
|
|
426
|
+
if(!(this instanceof cn)&&!(this instanceof kn))return new cn(e);this._writableState=new Xy(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev)),Ye.call(this)}function zJ(e,t){var n=new Error("write after end");e.emit("error",n),Tn(t,n)}function GJ(e,t,n,r){var a=!0,o=!1;return n===null?o=new TypeError("May not write null values to stream"):!H.isBuffer(n)&&typeof n!="string"&&n!==void 0&&!t.objectMode&&(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),Tn(r,o),a=!1),a}function WJ(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=H.from(t,n)),t}function VJ(e,t,n,r,a){n=WJ(t,n,r),H.isBuffer(n)&&(r="buffer");var o=t.objectMode?1:n.length;t.length+=o;var s=t.length<t.highWaterMark;if(s||(t.needDrain=!0),t.writing||t.corked){var c=t.lastBufferedRequest;t.lastBufferedRequest=new qJ(n,r,a),c?c.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=
|
|
427
|
+
1}else Ky(e,t,!1,o,n,r,a);return s}function Ky(e,t,n,r,a,o,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,n?e._writev(a,t.onwrite):e._write(a,o,t.onwrite),t.sync=!1}function $J(e,t,n,r,a){--t.pendingcb,n?Tn(a,r):a(r),e._writableState.errorEmitted=!0,e.emit("error",r)}function YJ(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function KJ(e,t){var n=e._writableState,r=n.sync,a=n.writecb;if(YJ(n),t)$J(e,n,r,t,a);else{var o=nP(n);!o&&!n.corked&&!n.bufferProcessing&&n.bufferedRequest&&tP(e,n),r?Tn(QO,e,n,o,a):QO(e,n,o,a)}}function QO(e,t,n,r){n||XJ(e,t),t.pendingcb--,r(),rP(e,t)}function XJ(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function tP(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,a=new Array(r),o=t.corkedRequestsFree;o.entry=n;for(var s=0;n;)a[s]=n,n=n.next,s+=1;Ky(e,t,!0,t.length,a,"",o.finish),t.pendingcb++,t.lastBufferedRequest=null,o.next?(t.corkedRequestsFree=o.next,o.next=null):
|
|
428
|
+
t.corkedRequestsFree=new aP(t)}else{for(;n;){var c=n.chunk,l=n.encoding,u=n.callback,m=t.objectMode?1:c.length;if(Ky(e,t,!1,m,c,l,u),n=n.next,t.writing)break}n===null&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}function nP(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function eP(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function rP(e,t){var n=nP(t);return n&&(t.pendingcb===0?(eP(e,t),t.finished=!0,e.emit("finish")):eP(e,t)),n}function JJ(e,t,n){t.ending=!0,rP(e,t),n&&(t.finished?Tn(n):e.once("finish",n)),t.ended=!0,e.writable=!1}function aP(e){var t=this;this.next=null,this.entry=null,this.finish=function(n){var r=t.entry;for(t.entry=null;r;){var a=r.callback;e.pendingcb--,a(n),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}var Jy=g(()=>{d();To();Tl();Ta();zl();co();cn.WritableState=Xy;Ht(cn,Ye);i(HJ,"nop");i(qJ,"WriteReq");i(Xy,"WritableState");
|
|
428
429
|
Xy.prototype.getBuffer=i(function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n},"writableStateGetBuffer");i(cn,"Writable");cn.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};i(zJ,"writeAfterEnd");i(GJ,"validChunk");cn.prototype.write=function(e,t,n){var r=this._writableState,a=!1;return typeof t=="function"&&(n=t,t=null),H.isBuffer(e)?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=HJ),r.ended?zJ(this,n):GJ(this,r,e,n)&&(r.pendingcb++,a=VJ(this,r,e,t,n)),a};cn.prototype.cork=function(){var e=this._writableState;e.corked++};cn.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.finished&&!e.bufferProcessing&&e.bufferedRequest&&tP(this,e))};cn.prototype.setDefaultEncoding=i(function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError(
|
|
429
|
-
"Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},"setDefaultEncoding");i(WJ,"decodeChunk");i(VJ,"writeOrBuffer");i(Ky,"doWrite");i($J,"onwriteError");i(YJ,"onwriteStateUpdate");i(KJ,"onwrite");i(QO,"afterWrite");i(XJ,"onwriteDrain");i(tP,"clearBuffer");cn.prototype._write=function(e,t,n){n(new Error("not implemented"))};cn.prototype._writev=null;cn.prototype.end=function(e,t,n){var r=this._writableState;typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null),e!=null&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),!r.ending&&!r.finished&&JJ(this,r,n)};i(nP,"needFinish");i(eP,"prefinish");i(rP,"finishMaybe");i(JJ,"endWritable");i(aP,"CorkedRequest")});function
|
|
430
|
-
"Calling transform done when ws.length != 0");if(r.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}var Zy=g(()=>{d();zl();To();Ht(Fn,
|
|
430
|
+
"Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},"setDefaultEncoding");i(WJ,"decodeChunk");i(VJ,"writeOrBuffer");i(Ky,"doWrite");i($J,"onwriteError");i(YJ,"onwriteStateUpdate");i(KJ,"onwrite");i(QO,"afterWrite");i(XJ,"onwriteDrain");i(tP,"clearBuffer");cn.prototype._write=function(e,t,n){n(new Error("not implemented"))};cn.prototype._writev=null;cn.prototype.end=function(e,t,n){var r=this._writableState;typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null),e!=null&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),!r.ending&&!r.finished&&JJ(this,r,n)};i(nP,"needFinish");i(eP,"prefinish");i(rP,"finishMaybe");i(JJ,"endWritable");i(aP,"CorkedRequest")});function kn(e){if(!(this instanceof kn))return new kn(e);Nt.call(this,e),cn.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",ZJ)}function ZJ(){this.allowHalfOpen||this._writableState.ended||Tn(QJ,this)}function QJ(e){e.end()}var oP,cf,sf,zl=g(()=>{d();To();co();Yy();Jy();Ht(kn,Nt);oP=Object.keys(cn.prototype);for(sf=0;sf<oP.length;sf++)cf=oP[sf],kn.prototype[cf]||(kn.prototype[cf]=cn.prototype[cf]);i(kn,"Duplex");i(ZJ,"onend");i(QJ,"onEndNT")});function eZ(e){this.afterTransform=function(t,n){return tZ(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function tZ(e,t,n){var r=e._transformState;r.transforming=!1;var a=r.writecb;if(!a)return e.emit("error",new Error("no writecb in Transform class"));r.writechunk=null,r.writecb=null,n!=null&&e.push(n),a(t);var o=e._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&e._read(o.highWaterMark)}function Fn(e){if(!(this instanceof Fn))return new Fn(e);kn.call(this,e),this._transformState=new eZ(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.once("prefinish",function(){typeof this._flush=="function"?this._flush(function(n){iP(t,n)}):iP(t)})}function iP(e,t){if(t)return e.emit("error",t);var n=e._writableState,r=e._transformState;if(n.length)throw new Error(
|
|
431
|
+
"Calling transform done when ws.length != 0");if(r.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}var Zy=g(()=>{d();zl();To();Ht(Fn,kn);i(eZ,"TransformState");i(tZ,"afterTransform");i(Fn,"Transform");Fn.prototype.push=function(e,t){return this._transformState.needTransform=!1,kn.prototype.push.call(this,e,t)};Fn.prototype._transform=function(e,t,n){throw new Error("Not implemented")};Fn.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var a=this._readableState;(r.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};Fn.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};i(iP,"done")});function Bs(e){if(!(this instanceof Bs))return new Bs(e);Fn.call(this,e)}var sP=g(()=>{d();Zy();To();Ht(Bs,Fn);i(Bs,"PassThrough");Bs.prototype._transform=function(e,t,n){n(null,e)}});function ea(){fr.call(this)}var Qy,ev=g(()=>{d();Ta();To();zl();Yy();Jy();Zy();sP();Ht(ea,fr);ea.Readable=Nt;ea.Writable=cn;ea.Duplex=kn;ea.Transform=Fn;ea.PassThrough=Bs;ea.Stream=ea;Qy=ea;i(ea,"Stream");ea.prototype.pipe=function(e,t){var n=this;function r(m){e.writable&&e.write(m)===!1&&n.pause&&n.pause()}i(r,"ondata"),n.on("data",r);function a(){n.readable&&n.resume&&n.resume()}i(a,"ondrain"),e.on("drain",a),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",s),n.on("close",c));var o=!1;function s(){o||(o=!0,e.end())}i(s,"onend");function c(){o||(o=!0,typeof e.destroy=="function"&&e.destroy())}i(c,"onclose");function l(m){if(u(),fr.listenerCount(this,"error")===0)throw m}i(l,"onerror"),n.on("error",l),e.on("error",l);function u(){n.removeListener("data",r),e.removeListener("drain",a),n.removeListener("end",s),n.removeListener("close",c),n.removeListener("error",l),e.removeListener("error",l),n.removeListener("end",u),n.removeListener("close",u),e.removeListener("close",u)}return i(u,"clean\
|
|
431
432
|
up"),n.on("end",u),n.on("close",u),e.on("close",u),e.emit("pipe",n),e}});var lf,tv=g(()=>{d();lf={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});function nZ(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var cP,lP=g(()=>{d();i(nZ,"ZStream");cP=nZ});function js(e,t,n,r,a){if(t.subarray&&e.subarray){e.set(t.subarray(n,n+r),a);return}for(var o=0;o<r;o++)e[a+o]=t[n+o]}var nv,Da,rv=g(()=>{"use strict";d();i(js,"arraySet");nv=Uint8Array,Da=Uint16Array});function qs(e){for(var t=e.length;--t>=0;)e[t]=0}function ov(e,t,n,r,a){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=a,this.has_stree=e&&e.length}function iv(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function kP(e){return e<256?Vl[e]:Vl[256+(e>>>7)]}function Yl(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function $n(e,t,n){e.bi_valid>av-n?(e.bi_buf|=t<<e.bi_valid&65535,Yl(e,e.bi_buf),e.bi_buf=t>>av-e.bi_valid,e.bi_valid+=n-av):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function ta(e,t,n){$n(e,n[t*2],n[t*2+1])}function RP(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function mZ(e){e.bi_valid===16?(Yl(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function pZ(e,t){var n=t.dyn_tree,r=t.max_code,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,c=t.stat_desc.extra_base,l=t.stat_desc.max_length,
|
|
432
433
|
u,m,p,f,h,y,b=0;for(f=0;f<=Ni;f++)e.bl_count[f]=0;for(n[e.heap[e.heap_max]*2+1]=0,u=e.heap_max+1;u<vP;u++)m=e.heap[u],f=n[n[m*2+1]*2+1]+1,f>l&&(f=l,b++),n[m*2+1]=f,!(m>r)&&(e.bl_count[f]++,h=0,m>=c&&(h=s[m-c]),y=n[m*2],e.opt_len+=y*(f+h),o&&(e.static_len+=y*(a[m*2+1]+h)));if(b!==0){do{for(f=l-1;e.bl_count[f]===0;)f--;e.bl_count[f]--,e.bl_count[f+1]+=2,e.bl_count[l]--,b-=2}while(b>0);for(f=l;f!==0;f--)for(m=e.bl_count[f];m!==0;)p=e.heap[--u],!(p>r)&&(n[p*2+1]!==f&&(e.opt_len+=(f-n[p*2+1])*n[p*2],n[p*2+1]=f),m--)}}function _P(e,t,n){var r=new Array(Ni+1),a=0,o,s;for(o=1;o<=Ni;o++)r[o]=a=a+n[o-1]<<1;for(s=0;s<=t;s++){var c=e[s*2+1];c!==0&&(e[s*2]=RP(r[c]++,c))}}function fZ(){var e,t,n,r,a,o=new Array(Ni+1);for(n=0,r=0;r<uv-1;r++)for(pv[r]=n,e=0;e<1<<cv[r];e++)$l[n++]=r;for($l[n-1]=r,a=0,r=0;r<16;r++)for(df[r]=a,e=0;e<1<<uf[r];e++)Vl[a++]=r;for(a>>=7;r<Hs;r++)for(df[r]=a<<7,e=0;e<1<<uf[r]-7;e++)Vl[256+a++]=r;for(t=0;t<=Ni;t++)o[t]=0;for(e=0;e<=143;)Aa[e*2+1]=8,e++,o[8]++;for(;e<=255;)Aa[e*
|
|
433
434
|
2+1]=9,e++,o[9]++;for(;e<=279;)Aa[e*2+1]=7,e++,o[7]++;for(;e<=287;)Aa[e*2+1]=8,e++,o[8]++;for(_P(Aa,Wl+1,o),e=0;e<Hs;e++)Gl[e*2+1]=5,Gl[e*2]=RP(e,5);xP=new ov(Aa,cv,Kl+1,Wl,Ni),SP=new ov(Gl,uf,0,Hs,Ni),CP=new ov(new Array(0),uZ,0,dv,lZ)}function IP(e){var t;for(t=0;t<Wl;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Hs;t++)e.dyn_dtree[t*2]=0;for(t=0;t<dv;t++)e.bl_tree[t*2]=0;e.dyn_ltree[mv*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function DP(e){e.bi_valid>8?Yl(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function hZ(e,t,n,r){DP(e),r&&(Yl(e,n),Yl(e,~n)),js(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function mP(e,t,n,r){var a=t*2,o=n*2;return e[a]<e[o]||e[a]===e[o]&&r[t]<=r[n]}function sv(e,t,n){for(var r=e.heap[n],a=n<<1;a<=e.heap_len&&(a<e.heap_len&&mP(t,e.heap[a+1],e.heap[a],e.depth)&&a++,!mP(t,r,e.heap[a],e.depth));)e.heap[n]=e.heap[a],n=a,a<<=1;e.heap[n]=r}function pP(e,t,n){var r,a,o=0,s,c;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+
|
|
@@ -435,20 +436,20 @@ o*2]<<8|e.pending_buf[e.d_buf+o*2+1],a=e.pending_buf[e.l_buf+o],o++,r===0?ta(e,a
|
|
|
435
436
|
0&&(l=138,u=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=s,s=t[(r+1)*2+1],!(++c<l&&o===s)&&(c<u?e.bl_tree[o*2]+=c:o!==0?(o!==a&&e.bl_tree[o*2]++,e.bl_tree[bP*2]++):c<=10?e.bl_tree[wP*2]++:e.bl_tree[EP*2]++,c=0,a=o,s===0?(l=138,u=3):o===s?(l=6,u=3):(l=7,u=4))}function hP(e,t,n){var r,a=-1,o,s=t[1],c=0,l=7,u=4;for(s===0&&(l=138,u=3),r=0;r<=n;r++)if(o=s,s=t[(r+1)*2+1],!(++c<l&&o===s)){if(c<u)do ta(e,o,e.bl_tree);while(--c!==0);else o!==0?(o!==a&&(ta(e,o,e.bl_tree),c--),ta(e,bP,e.bl_tree),$n(e,c-3,2)):c<=10?(ta(e,wP,e.bl_tree),$n(e,c-3,3)):(ta(e,EP,e.bl_tree),$n(e,c-11,7));c=0,a=o,s===0?(l=138,u=3):o===s?(l=6,u=3):(l=7,u=4)}}function gZ(e){var t;for(fP(e,e.dyn_ltree,e.l_desc.max_code),fP(e,e.dyn_dtree,e.d_desc.max_code),lv(e,e.bl_desc),t=dv-1;t>=3&&e.bl_tree[TP[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function yZ(e,t,n,r){var a;for($n(e,t-257,5),$n(e,n-1,5),$n(e,r-4,4),a=0;a<r;a++)$n(e,e.bl_tree[TP[a]*2+1],3);hP(e,e.dyn_ltree,t-1),hP(e,e.dyn_dtree,n-1)}function vZ(e){var t=4093624447,n;for(n=
|
|
436
437
|
0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return uP;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return dP;for(n=32;n<Kl;n++)if(e.dyn_ltree[n*2]!==0)return dP;return uP}function AP(e){gP||(fZ(),gP=!0),e.l_desc=new iv(e.dyn_ltree,xP),e.d_desc=new iv(e.dyn_dtree,SP),e.bl_desc=new iv(e.bl_tree,CP),e.bi_buf=0,e.bi_valid=0,IP(e)}function fv(e,t,n,r){$n(e,(oZ<<1)+(r?1:0),3),hZ(e,t,n,!0)}function NP(e){$n(e,yP<<1,3),ta(e,mv,Aa),mZ(e)}function MP(e,t,n,r){var a,o,s=0;e.level>0?(e.strm.data_type===aZ&&(e.strm.data_type=vZ(e)),lv(e,e.l_desc),lv(e,e.d_desc),s=gZ(e),a=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=a&&(a=o)):a=o=n+5,n+4<=a&&t!==-1?fv(e,t,n,r):e.strategy===rZ||o===a?($n(e,(yP<<1)+(r?1:0),3),pP(e,Aa,Gl)):($n(e,(iZ<<1)+(r?1:0),3),yZ(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),pP(e,e.dyn_ltree,e.dyn_dtree)),IP(e),r&&DP(e)}function Na(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.
|
|
437
438
|
last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[($l[n]+Kl+1)*2]++,e.dyn_dtree[kP(t)*2]++),e.last_lit===e.lit_bufsize-1}var rZ,uP,dP,aZ,oZ,yP,iZ,sZ,cZ,uv,Kl,Wl,Hs,dv,vP,Ni,av,lZ,mv,bP,wP,EP,cv,uf,uZ,TP,dZ,Aa,Gl,Vl,$l,pv,df,xP,SP,CP,gP,OP=g(()=>{"use strict";d();rv();rZ=4,uP=0,dP=1,aZ=2;i(qs,"zero");oZ=0,yP=1,iZ=2,sZ=3,cZ=258,uv=29,Kl=256,Wl=Kl+1+uv,Hs=30,dv=19,vP=2*Wl+1,Ni=15,av=16,lZ=7,mv=256,bP=16,wP=17,EP=18,cv=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],uf=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],uZ=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],TP=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],dZ=512,Aa=new Array((Wl+2)*2);qs(Aa);Gl=new Array(Hs*2);qs(Gl);Vl=new Array(dZ);qs(Vl);$l=new Array(cZ-sZ+1);qs($l);pv=new Array(uv);qs(pv);df=new Array(Hs);qs(df);i(ov,"StaticTreeDesc");i(iv,"TreeDesc");i(kP,"d_code");i(Yl,"put_short");i($n,"send_bits");i(ta,"send_code");i(RP,"bi_reverse");i(mZ,"bi_flush");i(pZ,"gen_b\
|
|
438
|
-
itlen");i(_P,"gen_codes");i(fZ,"tr_static_init");i(IP,"init_block");i(DP,"bi_windup");i(hZ,"copy_block");i(mP,"smaller");i(sv,"pqdownheap");i(pP,"compress_block");i(lv,"build_tree");i(fP,"scan_tree");i(hP,"send_tree");i(gZ,"build_bl_tree");i(yZ,"send_all_trees");i(vZ,"detect_data_type");gP=!1;i(AP,"_tr_init");i(fv,"_tr_stored_block");i(NP,"_tr_align");i(MP,"_tr_flush_block");i(Na,"_tr_tally")});function bZ(e,t,n,r){for(var a=e&65535|0,o=e>>>16&65535|0,s=0;n!==0;){s=n>2e3?2e3:n,n-=s;do a=a+t[r++]|0,o=o+a|0;while(--s);a%=65521,o%=65521}return a|o<<16|0}var PP,LP=g(()=>{d();i(bZ,"adler32");PP=bZ});function wZ(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}function TZ(e,t,n,r){var a=EZ,o=r+n;e^=-1;for(var s=r;s<o;s++)e=e>>>8^a[(e^t[s])&255];return e^-1}var EZ,Ma,FP=g(()=>{d();i(wZ,"makeTable");EZ=wZ();i(TZ,"crc32");Ma=TZ});function ko(e,t){return e.msg=lf[t],t}function jP(e){return(e<<1)-(e>4?9:0)}function Mi(e){for(var t=e.length;--t>=0;)e[t]=0}function xo(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(js(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function
|
|
439
|
+
itlen");i(_P,"gen_codes");i(fZ,"tr_static_init");i(IP,"init_block");i(DP,"bi_windup");i(hZ,"copy_block");i(mP,"smaller");i(sv,"pqdownheap");i(pP,"compress_block");i(lv,"build_tree");i(fP,"scan_tree");i(hP,"send_tree");i(gZ,"build_bl_tree");i(yZ,"send_all_trees");i(vZ,"detect_data_type");gP=!1;i(AP,"_tr_init");i(fv,"_tr_stored_block");i(NP,"_tr_align");i(MP,"_tr_flush_block");i(Na,"_tr_tally")});function bZ(e,t,n,r){for(var a=e&65535|0,o=e>>>16&65535|0,s=0;n!==0;){s=n>2e3?2e3:n,n-=s;do a=a+t[r++]|0,o=o+a|0;while(--s);a%=65521,o%=65521}return a|o<<16|0}var PP,LP=g(()=>{d();i(bZ,"adler32");PP=bZ});function wZ(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}function TZ(e,t,n,r){var a=EZ,o=r+n;e^=-1;for(var s=r;s<o;s++)e=e>>>8^a[(e^t[s])&255];return e^-1}var EZ,Ma,FP=g(()=>{d();i(wZ,"makeTable");EZ=wZ();i(TZ,"crc32");Ma=TZ});function ko(e,t){return e.msg=lf[t],t}function jP(e){return(e<<1)-(e>4?9:0)}function Mi(e){for(var t=e.length;--t>=0;)e[t]=0}function xo(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(js(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function fn(e,t){MP(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,xo(e.strm)}function st(e,t){e.pending_buf[e.pending++]=t}function Xl(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function jZ(e,t,n,r){var a=e.avail_in;return a>r&&(a=r),a===0?0:(e.avail_in-=a,js(t,e.input,e.next_in,a,n),e.state.wrap===1?e.adler=PP(e.adler,t,a,n):e.state.wrap===2&&(e.adler=Ma(e.adler,t,a,n)),e.next_in+=a,e.total_in+=a,a)}function HP(e,t){var n=e.max_chain_length,r=e.strstart,a,o,s=e.prev_length,c=e.nice_match,l=e.strstart>e.w_size-Br?e.strstart-(e.w_size-Br):0,u=e.window,m=e.
|
|
439
440
|
w_mask,p=e.prev,f=e.strstart+Co,h=u[r+s-1],y=u[r+s];e.prev_length>=e.good_match&&(n>>=2),c>e.lookahead&&(c=e.lookahead);do if(a=t,!(u[a+s]!==y||u[a+s-1]!==h||u[a]!==u[r]||u[++a]!==u[r+1])){r+=2,a++;do;while(u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&u[++r]===u[++a]&&r<f);if(o=Co-(f-r),r=f-Co,o>s){if(e.match_start=t,s=o,o>=c)break;h=u[r+s-1],y=u[r+s]}}while((t=p[t&m])>l&&--n!==0);return s<=e.lookahead?s:e.lookahead}function Ql(e){var t=e.w_size,n,r,a,o,s;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Br)){js(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do a=e.head[--n],e.head[n]=a>=t?a-t:0;while(--r);r=t,n=r;do a=e.prev[--n],e.prev[n]=a>=t?a-t:0;while(--r);o+=t}if(e.strm.avail_in===0)break;if(r=jZ(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=ft)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^
|
|
440
|
-
e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+ft-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<ft)););}while(e.lookahead<Br&&e.strm.avail_in!==0)}function HZ(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ql(e),e.lookahead===0&&t===Li)return en;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,
|
|
441
|
-
n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Br&&(e.match_length=HP(e,n)),e.match_length>=ft)if(r=Na(e,e.strstart-e.match_start,e.match_length-ft),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ft){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ft-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=Na(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(
|
|
442
|
-
lookahead===0)break}if(n=0,e.lookahead>=ft&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ft-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ft-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Br&&(e.match_length=HP(e,n),e.match_length<=5&&(e.strategy===RZ||e.match_length===ft&&e.strstart-e.match_start>4096)&&(e.match_length=ft-1)),e.prev_length>=ft&&e.match_length<=e.prev_length){a=e.strstart+e.lookahead-ft,r=Na(e,e.strstart-1-e.prev_match,e.prev_length-ft),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=a&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ft-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=ft-1,e.strstart++,r&&(
|
|
443
|
-
|
|
444
|
-
0))return en}return e.insert=0,t===Ro?(
|
|
441
|
+
e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+ft-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<ft)););}while(e.lookahead<Br&&e.strm.avail_in!==0)}function HZ(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Ql(e),e.lookahead===0&&t===Li)return en;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,fn(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Br&&(fn(e,!1),e.strm.avail_out===0))return en}return e.insert=0,t===Ro?(fn(e,!0),e.strm.avail_out===0?Pi:Ws):(e.strstart>e.block_start&&(fn(e,!1),e.strm.avail_out===0),en)}function gv(e,t){for(var n,r;;){if(e.lookahead<Br){if(Ql(e),e.lookahead<Br&&t===Li)return en;if(e.lookahead===0)break}if(n=0,e.lookahead>=ft&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ft-1])&e.hash_mask,
|
|
442
|
+
n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Br&&(e.match_length=HP(e,n)),e.match_length>=ft)if(r=Na(e,e.strstart-e.match_start,e.match_length-ft),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ft){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ft-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=Na(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(fn(e,!1),e.strm.avail_out===0))return en}return e.insert=e.strstart<ft-1?e.strstart:ft-1,t===Ro?(fn(e,!0),e.strm.avail_out===0?Pi:Ws):e.last_lit&&(fn(e,!1),e.strm.avail_out===0)?en:Zl}function zs(e,t){for(var n,r,a;;){if(e.lookahead<Br){if(Ql(e),e.lookahead<Br&&t===Li)return en;if(e.
|
|
443
|
+
lookahead===0)break}if(n=0,e.lookahead>=ft&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ft-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ft-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Br&&(e.match_length=HP(e,n),e.match_length<=5&&(e.strategy===RZ||e.match_length===ft&&e.strstart-e.match_start>4096)&&(e.match_length=ft-1)),e.prev_length>=ft&&e.match_length<=e.prev_length){a=e.strstart+e.lookahead-ft,r=Na(e,e.strstart-1-e.prev_match,e.prev_length-ft),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=a&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ft-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=ft-1,e.strstart++,r&&(fn(e,!1),e.strm.avail_out===0))return en}else if(e.match_available){if(r=Na(e,0,e.window[e.strstart-1]),r&&
|
|
444
|
+
fn(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return en}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Na(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ft-1?e.strstart:ft-1,t===Ro?(fn(e,!0),e.strm.avail_out===0?Pi:Ws):e.last_lit&&(fn(e,!1),e.strm.avail_out===0)?en:Zl}function qZ(e,t){for(var n,r,a,o,s=e.window;;){if(e.lookahead<=Co){if(Ql(e),e.lookahead<=Co&&t===Li)return en;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ft&&e.strstart>0&&(a=e.strstart-1,r=s[a],r===s[++a]&&r===s[++a]&&r===s[++a])){o=e.strstart+Co;do;while(r===s[++a]&&r===s[++a]&&r===s[++a]&&r===s[++a]&&r===s[++a]&&r===s[++a]&&r===s[++a]&&r===s[++a]&&a<o);e.match_length=Co-(o-a),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ft?(n=Na(e,1,e.match_length-ft),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Na(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(fn(e,!1),e.strm.avail_out===
|
|
445
|
+
0))return en}return e.insert=0,t===Ro?(fn(e,!0),e.strm.avail_out===0?Pi:Ws):e.last_lit&&(fn(e,!1),e.strm.avail_out===0)?en:Zl}function zZ(e,t){for(var n;;){if(e.lookahead===0&&(Ql(e),e.lookahead===0)){if(t===Li)return en;break}if(e.match_length=0,n=Na(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(fn(e,!1),e.strm.avail_out===0))return en}return e.insert=0,t===Ro?(fn(e,!0),e.strm.avail_out===0?Pi:Ws):e.last_lit&&(fn(e,!1),e.strm.avail_out===0)?en:Zl}function na(e,t,n,r,a){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=a}function GZ(e){e.window_size=2*e.w_size,Mi(e.head),e.max_lazy_match=Gs[e.level].max_lazy,e.good_match=Gs[e.level].good_length,e.nice_match=Gs[e.level].nice_length,e.max_chain_length=Gs[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ft-1,e.match_available=0,e.ins_h=0}function WZ(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.
|
|
445
446
|
pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=bv,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Da(LZ*2),this.dyn_dtree=new Da((2*OZ+1)*2),this.bl_tree=new Da((2*PZ+1)*2),Mi(this.dyn_ltree),Mi(this.dyn_dtree),Mi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Da(FZ+1),this.heap=new Da(2*yv+1),Mi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Da(2*yv+1),Mi(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=
|
|
446
447
|
0,this.bi_buf=0,this.bi_valid=0}function VZ(e){var t;return!e||!e.state?ko(e,_o):(e.total_in=e.total_out=0,e.data_type=DZ,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?wv:Oi,e.adler=t.wrap===2?0:1,t.last_flush=Li,AP(t),So)}function Ev(e){var t=VZ(e);return t===So&&GZ(e.state),t}function qP(e,t,n,r,a,o){if(!e)return _o;var s=1;if(t===kZ&&(t=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),a<1||a>AZ||n!==bv||r<8||r>15||t<0||t>9||o<0||o>IZ)return ko(e,_o);r===8&&(r=9);var c=new WZ;return e.state=c,c.strm=e,c.wrap=s,c.gzhead=null,c.w_bits=r,c.w_size=1<<c.w_bits,c.w_mask=c.w_size-1,c.hash_bits=a+7,c.hash_size=1<<c.hash_bits,c.hash_mask=c.hash_size-1,c.hash_shift=~~((c.hash_bits+ft-1)/ft),c.window=new nv(c.w_size*2),c.head=new Da(c.hash_size),c.prev=new Da(c.w_size),c.lit_bufsize=1<<a+6,c.pending_buf_size=c.lit_bufsize*4,c.pending_buf=new nv(c.pending_buf_size),c.d_buf=1*c.lit_bufsize,c.l_buf=3*c.lit_bufsize,c.level=t,c.strategy=o,c.method=n,Ev(e)}function zP(e,t){var n,
|
|
447
448
|
r,a,o;if(!e||!e.state||t>UP||t<0)return e?ko(e,_o):_o;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===Jl&&t!==Ro)return ko(e,e.avail_out===0?hv:_o);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===wv)if(r.wrap===2)e.adler=0,st(r,31),st(r,139),st(r,8),r.gzhead?(st(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),st(r,r.gzhead.time&255),st(r,r.gzhead.time>>8&255),st(r,r.gzhead.time>>16&255),st(r,r.gzhead.time>>24&255),st(r,r.level===9?2:r.strategy>=mf||r.level<2?4:0),st(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(st(r,r.gzhead.extra.length&255),st(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Ma(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=vv):(st(r,0),st(r,0),st(r,0),st(r,0),st(r,0),st(r,r.level===9?2:r.strategy>=mf||r.level<2?4:0),st(r,BZ),r.status=Oi);else{var s=bv+(r.w_bits-8<<4)<<8,c=-1;r.strategy>=mf||r.level<2?c=0:r.level<6?c=1:r.level===6?c=2:c=3,s|=c<<6,r.strstart!==
|
|
448
449
|
0&&(s|=UZ),s+=31-s%31,r.status=Oi,Xl(r,s),r.strstart!==0&&(Xl(r,e.adler>>>16),Xl(r,e.adler&65535)),e.adler=1}if(r.status===vv)if(r.gzhead.extra){for(a=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=Ma(e.adler,r.pending_buf,r.pending-a,a)),xo(e),a=r.pending,r.pending===r.pending_buf_size));)st(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>a&&(e.adler=Ma(e.adler,r.pending_buf,r.pending-a,a)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=pf)}else r.status=pf;if(r.status===pf)if(r.gzhead.name){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=Ma(e.adler,r.pending_buf,r.pending-a,a)),xo(e),a=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.name.length?o=r.gzhead.name.charCodeAt(r.gzindex++)&255:o=0,st(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>a&&(e.adler=Ma(e.adler,r.pending_buf,r.pending-a,a)),o===0&&(r.gzindex=0,r.status=
|
|
449
450
|
ff)}else r.status=ff;if(r.status===ff)if(r.gzhead.comment){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=Ma(e.adler,r.pending_buf,r.pending-a,a)),xo(e),a=r.pending,r.pending===r.pending_buf_size)){o=1;break}r.gzindex<r.gzhead.comment.length?o=r.gzhead.comment.charCodeAt(r.gzindex++)&255:o=0,st(r,o)}while(o!==0);r.gzhead.hcrc&&r.pending>a&&(e.adler=Ma(e.adler,r.pending_buf,r.pending-a,a)),o===0&&(r.status=hf)}else r.status=hf;if(r.status===hf&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&xo(e),r.pending+2<=r.pending_buf_size&&(st(r,e.adler&255),st(r,e.adler>>8&255),e.adler=0,r.status=Oi)):r.status=Oi),r.pending!==0){if(xo(e),e.avail_out===0)return r.last_flush=-1,So}else if(e.avail_in===0&&jP(t)<=jP(n)&&t!==Ro)return ko(e,hv);if(r.status===Jl&&e.avail_in!==0)return ko(e,hv);if(e.avail_in!==0||r.lookahead!==0||t!==Li&&r.status!==Jl){var l=r.strategy===mf?zZ(r,t):r.strategy===_Z?qZ(r,t):Gs[r.level].func(r,t);if((l===Pi||l===Ws)&&(r.status=Jl),l===
|
|
450
451
|
en||l===Pi)return e.avail_out===0&&(r.last_flush=-1),So;if(l===Zl&&(t===xZ?NP(r):t!==UP&&(fv(r,0,0,!1),t===SZ&&(Mi(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),xo(e),e.avail_out===0))return r.last_flush=-1,So}return t!==Ro?So:r.wrap<=0?BP:(r.wrap===2?(st(r,e.adler&255),st(r,e.adler>>8&255),st(r,e.adler>>16&255),st(r,e.adler>>24&255),st(r,e.total_in&255),st(r,e.total_in>>8&255),st(r,e.total_in>>16&255),st(r,e.total_in>>24&255)):(Xl(r,e.adler>>>16),Xl(r,e.adler&65535)),xo(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?So:BP)}function GP(e){var t;return!e||!e.state?_o:(t=e.state.status,t!==wv&&t!==vv&&t!==pf&&t!==ff&&t!==hf&&t!==Oi&&t!==Jl?ko(e,_o):(e.state=null,t===Oi?ko(e,CZ):So))}var Li,xZ,SZ,Ro,UP,So,BP,_o,CZ,hv,kZ,RZ,mf,_Z,IZ,DZ,bv,AZ,NZ,MZ,yv,OZ,PZ,LZ,FZ,ft,Co,Br,UZ,wv,vv,pf,ff,hf,Oi,Jl,en,Zl,Pi,Ws,BZ,Gs,WP=g(()=>{d();rv();OP();LP();FP();tv();Li=0,xZ=1,SZ=3,Ro=4,UP=5,So=0,BP=1,_o=-2,CZ=-3,hv=-5,kZ=-1,RZ=1,mf=2,_Z=3,IZ=4,DZ=2,bv=8,AZ=9,NZ=29,MZ=256,yv=MZ+1+NZ,OZ=
|
|
451
|
-
30,PZ=19,LZ=2*yv+1,FZ=15,ft=3,Co=258,Br=Co+ft+1,UZ=32,wv=42,vv=69,pf=73,ff=91,hf=103,Oi=113,Jl=666,en=1,Zl=2,Pi=3,Ws=4,BZ=3;i(ko,"err");i(jP,"rank");i(Mi,"zero");i(xo,"flush_pending");i(
|
|
452
|
+
30,PZ=19,LZ=2*yv+1,FZ=15,ft=3,Co=258,Br=Co+ft+1,UZ=32,wv=42,vv=69,pf=73,ff=91,hf=103,Oi=113,Jl=666,en=1,Zl=2,Pi=3,Ws=4,BZ=3;i(ko,"err");i(jP,"rank");i(Mi,"zero");i(xo,"flush_pending");i(fn,"flush_block_only");i(st,"put_byte");i(Xl,"putShortMSB");i(jZ,"read_buf");i(HP,"longest_match");i(Ql,"fill_window");i(HZ,"deflate_stored");i(gv,"deflate_fast");i(zs,"deflate_slow");i(qZ,"deflate_rle");i(zZ,"deflate_huff");i(na,"Config");Gs=[new na(0,0,0,0,HZ),new na(4,4,8,4,gv),new na(4,5,16,8,gv),new na(4,6,32,32,gv),new na(4,4,16,16,zs),new na(8,16,32,32,zs),new na(8,16,128,128,zs),new na(8,32,128,256,zs),new na(32,128,258,1024,zs),new na(32,258,258,4096,zs)];i(GZ,"lm_init");i(WZ,"DeflateState");i(VZ,"deflateResetKeep");i(Ev,"deflateReset");i(qP,"deflateInit2");i(zP,"deflate");i(GP,"deflateEnd")});var VP=g(()=>{d()});var wf={};x(wf,{DEFLATE:()=>$s,DEFLATERAW:()=>Vs,GUNZIP:()=>yf,GZIP:()=>eu,INFLATE:()=>vf,INFLATERAW:()=>tu,NONE:()=>Tv,UNZIP:()=>nu,Z_BEST_COMPRESSION:()=>tQ,Z_BEST_SPEED:()=>eQ,Z_BINARY:()=>cQ,Z_BLOCK:()=>ZP,Z_BUF_ERROR:()=>ZZ,Z_DATA_ERROR:()=>JZ,Z_DEFAULT_COMPRESSION:()=>nQ,Z_DEFAULT_STRATEGY:()=>sQ,Z_DEFLATED:()=>eL,Z_ERRNO:()=>KZ,Z_FILTERED:()=>rQ,Z_FINISH:()=>JP,Z_FIXED:()=>iQ,Z_FULL_FLUSH:()=>XP,Z_HUFFMAN_ONLY:()=>aQ,Z_NEED_DICT:()=>YZ,Z_NO_COMPRESSION:()=>QZ,Z_NO_FLUSH:()=>$P,Z_OK:()=>bf,Z_PARTIAL_FLUSH:()=>YP,Z_RLE:()=>oQ,Z_STREAM_END:()=>QP,Z_STREAM_ERROR:()=>XZ,Z_SYNC_FLUSH:()=>KP,Z_TEXT:()=>lQ,Z_TREES:()=>$Z,Z_UNKNOWN:()=>uQ,Zlib:()=>ra});function ra(e){if(e<$s||e>nu)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function dQ(e,t){for(var n=0;n<e.length;n++)this[t+n]=e[n]}var Tv,$s,vf,eu,yf,Vs,tu,nu,$P,YP,KP,XP,JP,ZP,$Z,bf,QP,
|
|
452
453
|
YZ,KZ,XZ,JZ,ZZ,QZ,eQ,tQ,nQ,rQ,aQ,oQ,iQ,sQ,cQ,lQ,uQ,eL,gf,tL=g(()=>{d();tv();lP();WP();VP();Tv=0,$s=1,vf=2,eu=3,yf=4,Vs=5,tu=6,nu=7,$P=0,YP=1,KP=2,XP=3,JP=4,ZP=5,$Z=6,bf=0,QP=1,YZ=2,KZ=-1,XZ=-2,JZ=-3,ZZ=-5,QZ=0,eQ=1,tQ=9,nQ=-1,rQ=1,aQ=2,oQ=3,iQ=4,sQ=0,cQ=0,lQ=1,uQ=2,eL=8;i(ra,"Zlib");ra.prototype.init=function(e,t,n,r,a){this.windowBits=e,this.level=t,this.memLevel=n,this.strategy=r,(this.mode===eu||this.mode===yf)&&(this.windowBits+=16),this.mode===nu&&(this.windowBits+=32),(this.mode===Vs||this.mode===tu)&&(this.windowBits=-this.windowBits),this.strm=new cP;var o;switch(this.mode){case $s:case eu:case Vs:o=qP(this.strm,this.level,eL,this.windowBits,this.memLevel,this.strategy);break;case vf:case yf:case tu:case nu:o=(this.strm,this.windowBits,void 0);break;default:throw new Error("Unknown mode "+this.mode)}if(o!==bf){this._error(o);return}this.write_in_progress=!1,this.init_done=!0};ra.prototype.params=function(){throw new Error("deflateParams Not supported")};ra.prototype._writeCheck=
|
|
453
454
|
function(){if(!this.init_done)throw new Error("write before init");if(this.mode===Tv)throw new Error("already finalized");if(this.write_in_progress)throw new Error("write already in progress");if(this.pending_close)throw new Error("close is pending")};ra.prototype.write=function(e,t,n,r,a,o,s){this._writeCheck(),this.write_in_progress=!0;var c=this;return process.nextTick(function(){c.write_in_progress=!1;var l=c._write(e,t,n,r,a,o,s);c.callback(l[0],l[1]),c.pending_close&&c.close()}),this};i(dQ,"bufferSet");ra.prototype.writeSync=function(e,t,n,r,a,o,s){return this._writeCheck(),this._write(e,t,n,r,a,o,s)};ra.prototype._write=function(e,t,n,r,a,o,s){if(this.write_in_progress=!0,e!==$P&&e!==YP&&e!==KP&&e!==XP&&e!==JP&&e!==ZP)throw new Error("Invalid flush value");t==null&&(t=new Buffer(0),r=0,n=0),a._set?a.set=a._set:a.set=dQ;var c=this.strm;c.avail_in=r,c.input=t,c.next_in=n,c.avail_out=s,c.output=a,c.next_out=o;var l;switch(this.mode){case $s:case eu:case Vs:l=zP(c,e);break;case nu:case vf:case yf:case tu:
|
|
454
455
|
l=void 0;break;default:throw new Error("Unknown mode "+this.mode)}return l!==QP&&l!==bf&&this._error(l),this.write_in_progress=!1,[c.avail_in,c.avail_out]};ra.prototype.close=function(){if(this.write_in_progress){this.pending_close=!0;return}this.pending_close=!1,this.mode===$s||this.mode===eu||this.mode===Vs?GP(this.strm):(this.strm,void 0),this.mode=Tv};ra.prototype.reset=function(){switch(this.mode){case $s:case Vs:gf=Ev(this.strm);break;case vf:case tu:gf=(this.strm,void 0);break}gf!==bf&&this._error(gf)};ra.prototype._error=function(e){this.onerror(lf[e]+": "+this.strm.msg,e),this.write_in_progress=!1,this.pending_close&&this.close()}});function mQ(e,t){if(!e)throw new Error(t)}function nL(e){return new Ef(e)}function rL(e,t){return pQ(new Tf(t),e)}function pQ(e,t){if(typeof t=="string"&&(t=new Buffer(t)),!Buffer.isBuffer(t))throw new TypeError("Not a string or buffer");var n=ee.Z_FINISH;return e._processChunk(t,n)}function Sv(e){if(!(this instanceof Sv))return new Sv(e);qt.call(this,e,ee.DEFLATE)}function Cv(e){if(!(this instanceof Cv))return new Cv(e);qt.call(this,e,ee.INFLATE)}function Ef(e){if(!(this instanceof Ef))return new Ef(e);qt.call(this,e,ee.GZIP)}function Tf(e){if(!(this instanceof Tf))return new Tf(e);qt.call(this,e,ee.GUNZIP)}function kv(e){if(!(this instanceof kv))return new kv(e);qt.call(this,e,ee.DEFLATERAW)}function Rv(e){if(!(this instanceof Rv))return new Rv(e);qt.call(this,e,ee.INFLATERAW)}function _v(e){if(!(this instanceof _v))return new _v(e);qt.call(this,e,ee.UNZIP)}function qt(e,t){if(this._opts=e=e||{},this._chunkSize=e.chunkSize||ee.Z_DEFAULT_CHUNK,Fn.call(this,e),e.flush&&e.flush!==ee.Z_NO_FLUSH&&
|
|
@@ -472,13 +473,13 @@ f=!0),!(y||h.duration>=u)&&(h.getNumberOfDependencies()===1||h.getNumberOfDepend
|
|
|
472
473
|
url:a.url,protocol:a.protocol,parsedURL:a.parsedURL,documentURL:a.documentURL,rendererStartTime:a.rendererStartTime,networkRequestTime:a.networkRequestTime,responseHeadersEndTime:a.responseHeadersEndTime,networkEndTime:a.networkEndTime,transferSize:a.transferSize,resourceSize:a.resourceSize,fromDiskCache:a.fromDiskCache,fromMemoryCache:a.fromMemoryCache,finished:a.finished,statusCode:a.statusCode,redirectSource:a.redirectSource,redirectDestination:a.redirectDestination,redirects:a.redirects,failed:a.failed,initiator:a.initiator,timing:a.timing?{requestTime:a.timing.requestTime,proxyStart:a.timing.proxyStart,proxyEnd:a.timing.proxyEnd,dnsStart:a.timing.dnsStart,dnsEnd:a.timing.dnsEnd,connectStart:a.timing.connectStart,connectEnd:a.timing.connectEnd,sslStart:a.timing.sslStart,sslEnd:a.timing.sslEnd,workerStart:a.timing.workerStart,workerReady:a.timing.workerReady,workerFetchStart:a.timing.workerFetchStart,workerRespondWithSettled:a.timing.workerRespondWithSettled,sendStart:a.timing.sendStart,
|
|
473
474
|
sendEnd:a.timing.sendEnd,pushStart:a.timing.pushStart,pushEnd:a.timing.pushEnd,receiveHeadersStart:a.timing.receiveHeadersStart,receiveHeadersEnd:a.timing.receiveHeadersEnd}:a.timing,resourceType:a.resourceType,mimeType:a.mimeType,priority:a.priority,initiatorRequest:a.initiatorRequest,frameId:a.frameId,fromWorker:a.fromWorker,isLinkPreload:a.isLinkPreload,serverResponseTime:a.serverResponseTime})).filter(a=>!a.fromWorker);console.log(r)}static createGraph(t,n,r){let a=e.getNetworkNodeOutput(n),o=e.getCPUNodes(t),{requestedUrl:s,mainDocumentUrl:c}=r;if(!s)throw new Z("requestedUrl is required to get the root request");if(!c)throw new Z("mainDocumentUrl is required to get the main resource");let l=Oa.findResourceForUrl(n,s);if(!l)throw new Z("rootRequest not found");let u=a.idToNodeMap.get(l.requestId);if(!u)throw new Z("rootNode not found");let m=Oa.findLastDocumentForUrl(n,c);if(!m)throw new Z("mainDocumentRequest not found");let p=a.idToNodeMap.get(m.requestId);if(!p)throw new Z("mai\
|
|
474
475
|
nDocumentNode not found");if(e.linkNetworkNodes(u,a),e.linkCPUNodes(u,a,o),p.setIsMainDocument(!0),Fi.findCycle(u))throw new Z("Invalid dependency graph created, cycle detected");return u}static printGraph(t,n=80){function r(p,f,h=" "){return p+h.repeat(Math.max(f-p.length,0))}i(r,"padRight");let a=[];t.traverse(p=>a.push(p)),a.sort((p,f)=>p.startTime-f.startTime);let o=new Map;t.traverse(p=>{let f=65+o.size,h;f>90?h=`Z${f-90}`:h=String.fromCharCode(f),o.set(p,h)});let s=a[0].startTime,u=(a.reduce((p,f)=>Math.max(p,f.endTime),0)-s)/n;a.forEach(p=>{let f=Math.round((p.startTime-s)/u),h=Math.ceil((p.endTime-p.startTime)/u),y=r("",f)+r("",h,"="),b=p.request?p.request.url:p.type;console.log(r(y,n),`| ${b.slice(0,50)}`)}),console.log(),a.forEach(p=>{let f=p.request?p.request.url:p.type;console.log(o.get(p),f.slice(0,n-5));for(let h of p.dependents){let y=h.request?h.request.url:h.type;console.log(" ->",o.get(h),y.slice(0,n-10))}console.log()});let m=Fi.findCycle(t);if(console.log("Cycle?",
|
|
475
|
-
m?"yes":"no"),m){let p=[...m];p.push(p[0]),console.log(p.map(f=>o.get(f)).join(" -> "))}}}});var
|
|
476
|
-
1e3):1;return{timing:y.intercept*b+y.optimistic*f.timeInMs+y.pessimistic*h.timeInMs,optimisticEstimate:f,pessimisticEstimate:h,optimisticGraph:c,pessimisticGraph:l}}}});var Ys,Mv=g(()=>{d();aa();Io();Ys=class extends
|
|
477
|
-
cutoffTimestamp:n,treatNodeAsRenderBlocking:r,additionalCpuNodesToTreatAsRenderBlocking:a}){let o=this.getRenderBlockingNodeData(t,{cutoffTimestamp:n,treatNodeAsRenderBlocking:r,additionalCpuNodesToTreatAsRenderBlocking:a}),{definitelyNotRenderBlockingScriptUrls:s,renderBlockingCpuNodeIds:c}=o;return t.cloneWithRelationships(l=>{if(l.type===et.types.NETWORK){if((l.endTime>n||l.startTime>n)&&!l.isMainDocument())return!1;let m=l.request.url;return s.has(m)?!1:r(l)}return c.has(l.id)})}static getOptimisticGraph(t,n){return this.getFirstPaintBasedGraph(t,{cutoffTimestamp:n.timestamps.firstContentfulPaint,treatNodeAsRenderBlocking:i(r=>r.hasRenderBlockingPriority()&&r.initiatorType!=="script","treatNodeAsRenderBlocking")})}static getPessimisticGraph(t,n){return this.getFirstPaintBasedGraph(t,{cutoffTimestamp:n.timestamps.firstContentfulPaint,treatNodeAsRenderBlocking:i(r=>r.hasRenderBlockingPriority(),"treatNodeAsRenderBlocking")})}}});var xQ,Ov,lL=g(()=>{d();or();aa();Io();xQ=20,Ov=class e extends
|
|
478
|
-
from(t.entries()).filter(([r,a])=>r.type!==et.types.CPU?!1:a.duration>n).map(([r,a])=>a.endTime).reduce((r,a)=>Math.max(r||0,a||0),0)}}});var Pv,uL=g(()=>{d();or();Mv();Io();Pv=class e extends
|
|
479
|
-
r[0])).map(r=>r[1].endTime);return{timeInMs:Math.max(...n),nodeTimings:t.nodeTimings}}static compute(t,n){let r=n?.fcpResult;if(!r)throw new Z("FCP is required to calculate the LCP metric");let a=super.compute(t,n);return a.timing=Math.max(a.timing,r.timing),a}}});var Lv,dL=g(()=>{d();or();aa();Io();Lv=class e extends
|
|
480
|
-
for(let[s,c]of t.entries())if(s.type===et.types.CPU&&s.childEvents.some(l=>l.name==="Layout")){let l=Math.max(Math.log2(c.endTime-c.startTime),0);r.push({time:c.endTime,weight:l})}let a=r.map(s=>s.weight*Math.max(s.time,n)).reduce((s,c)=>s+c,0),o=r.map(s=>s.weight).reduce((s,c)=>s+c,0);return o?a/o:n}}});var jv={};x(jv,{BLOCKING_TIME_THRESHOLD:()=>Uv,calculateSumOfBlockingTime:()=>Bv,calculateTbtImpactForEvent:()=>pL});function pL(e,t,n,r){let a=50;if(r&&(a*=e.duration/r.duration),e.duration<a||e.end<t||e.start>n)return 0;let o=Math.max(e.start,t),c=Math.min(e.end,n)-o;return c<a?0:c-a}function Bv(e,t,n){if(n<=t)return 0;let r=0;for(let a of e)r+=pL(a,t,n);return r}var Uv,Hv=g(()=>{d();Uv=50;i(pL,"calculateTbtImpactForEvent");i(Bv,"calculateSumOfBlockingTime")});var qv,fL=g(()=>{d();or();aa();Io();Hv();qv=class e extends
|
|
481
|
-
CPU&&(o.duration<n||r.push({start:o.startTime,end:o.endTime,duration:o.duration}));return r}}});var Ft={};x(Ft,{FirstContentfulPaint:()=>Ys,Interactive:()=>Ov,LargestContentfulPaint:()=>Pv,MaxPotentialFID:()=>Lv,Metric:()=>
|
|
476
|
+
m?"yes":"no"),m){let p=[...m];p.push(p[0]),console.log(p.map(f=>o.get(f)).join(" -> "))}}}});var hn={};x(hn,{BaseNode:()=>et,CPUNode:()=>ru,NetworkNode:()=>Fi,PageDependencyGraph:()=>Nv});var aa=g(()=>{d();Sf();Dv();Av();cL()});var Rn,Io=g(()=>{d();or();aa();Rn=class{static{i(this,"Metric")}static getScriptUrls(t,n){let r=new Set;return t.traverse(a=>{a.type===et.types.NETWORK&&a.request.resourceType==="Script"&&n?.(a)&&r.add(a.request.url)}),r}static get coefficients(){throw new Z("coefficients unimplemented!")}static getScaledCoefficients(t){return this.coefficients}static getOptimisticGraph(t,n){throw new Z("Optimistic graph unimplemented!")}static getPessimisticGraph(t,n){throw new Z("Pessmistic graph unimplemented!")}static getEstimateFromSimulation(t,n){return t}static compute(t,n){let{simulator:r,graph:a,processedNavigation:o}=t,s=this.name.replace("Lantern",""),c=this.getOptimisticGraph(a,o),l=this.getPessimisticGraph(a,o),u={label:`optimistic${s}`},m=r.simulate(c,u);u={label:`pessimistic${s}`};let p=r.simulate(l,u),f=this.getEstimateFromSimulation(m,{...n,optimistic:!0}),h=this.getEstimateFromSimulation(p,{...n,optimistic:!1}),y=this.getScaledCoefficients(r.rtt),b=y.intercept>0?Math.min(1,f.timeInMs/
|
|
477
|
+
1e3):1;return{timing:y.intercept*b+y.optimistic*f.timeInMs+y.pessimistic*h.timeInMs,optimisticEstimate:f,pessimisticEstimate:h,optimisticGraph:c,pessimisticGraph:l}}}});var Ys,Mv=g(()=>{d();aa();Io();Ys=class extends Rn{static{i(this,"FirstContentfulPaint")}static get coefficients(){return{intercept:0,optimistic:.5,pessimistic:.5}}static getRenderBlockingNodeData(t,{cutoffTimestamp:n,treatNodeAsRenderBlocking:r,additionalCpuNodesToTreatAsRenderBlocking:a}){let o=new Map,s=[];t.traverse(h=>{if(h.type===et.types.CPU){h.startTime<=n&&s.push(h);let y=h.getEvaluateScriptURLs();for(let b of y){let w=o.get(b)||h;o.set(b,h.startTime<w.startTime?h:w)}}}),s.sort((h,y)=>h.startTime-y.startTime);let c=Rn.getScriptUrls(t,h=>h.endTime<=n&&r(h)),l=new Set,u=new Set;for(let h of c){let y=o.get(h);if(y){if(s.includes(y)){u.add(y.id);continue}l.add(h)}}let m=s.find(h=>h.didPerformLayout());m&&u.add(m.id);let p=s.find(h=>h.childEvents.some(y=>y.name==="Paint"));p&&u.add(p.id);let f=s.find(h=>h.childEvents.some(y=>y.name==="ParseHTML"));return f&&u.add(f.id),a&&s.filter(a).forEach(h=>u.add(h.id)),{definitelyNotRenderBlockingScriptUrls:l,renderBlockingCpuNodeIds:u}}static getFirstPaintBasedGraph(t,{
|
|
478
|
+
cutoffTimestamp:n,treatNodeAsRenderBlocking:r,additionalCpuNodesToTreatAsRenderBlocking:a}){let o=this.getRenderBlockingNodeData(t,{cutoffTimestamp:n,treatNodeAsRenderBlocking:r,additionalCpuNodesToTreatAsRenderBlocking:a}),{definitelyNotRenderBlockingScriptUrls:s,renderBlockingCpuNodeIds:c}=o;return t.cloneWithRelationships(l=>{if(l.type===et.types.NETWORK){if((l.endTime>n||l.startTime>n)&&!l.isMainDocument())return!1;let m=l.request.url;return s.has(m)?!1:r(l)}return c.has(l.id)})}static getOptimisticGraph(t,n){return this.getFirstPaintBasedGraph(t,{cutoffTimestamp:n.timestamps.firstContentfulPaint,treatNodeAsRenderBlocking:i(r=>r.hasRenderBlockingPriority()&&r.initiatorType!=="script","treatNodeAsRenderBlocking")})}static getPessimisticGraph(t,n){return this.getFirstPaintBasedGraph(t,{cutoffTimestamp:n.timestamps.firstContentfulPaint,treatNodeAsRenderBlocking:i(r=>r.hasRenderBlockingPriority(),"treatNodeAsRenderBlocking")})}}});var xQ,Ov,lL=g(()=>{d();or();aa();Io();xQ=20,Ov=class e extends Rn{static{i(this,"Interactive")}static get coefficients(){return{intercept:0,optimistic:.45,pessimistic:.55}}static getOptimisticGraph(t){let n=xQ*1e3;return t.cloneWithRelationships(r=>{if(r.type===et.types.CPU)return r.duration>n;let a=r.request.resourceType==="Image",o=r.request.resourceType==="Script";return!a&&(o||r.request.priority==="High"||r.request.priority==="VeryHigh")})}static getPessimisticGraph(t){return t}static getEstimateFromSimulation(t,n){if(!n.lcpResult)throw new Z("missing lcpResult");let r=e.getLastLongTaskEndTime(t.nodeTimings),a=n.optimistic?n.lcpResult.optimisticEstimate.timeInMs:n.lcpResult.pessimisticEstimate.timeInMs;return{timeInMs:Math.max(a,r),nodeTimings:t.nodeTimings}}static compute(t,n){let r=n?.lcpResult;if(!r)throw new Z("LCP is required to calculate the Interactive metric");let a=super.compute(t,n);return a.timing=Math.max(a.timing,r.timing),a}static getLastLongTaskEndTime(t,n=50){return Array.
|
|
479
|
+
from(t.entries()).filter(([r,a])=>r.type!==et.types.CPU?!1:a.duration>n).map(([r,a])=>a.endTime).reduce((r,a)=>Math.max(r||0,a||0),0)}}});var Pv,uL=g(()=>{d();or();Mv();Io();Pv=class e extends Rn{static{i(this,"LargestContentfulPaint")}static get coefficients(){return{intercept:0,optimistic:.5,pessimistic:.5}}static isNotLowPriorityImageNode(t){if(t.type!=="network")return!0;let n=t.request.resourceType==="Image",r=t.request.priority==="Low"||t.request.priority==="VeryLow";return!n||!r}static getOptimisticGraph(t,n){let r=n.timestamps.largestContentfulPaint;if(!r)throw new Z("NO_LCP");return Ys.getFirstPaintBasedGraph(t,{cutoffTimestamp:r,treatNodeAsRenderBlocking:e.isNotLowPriorityImageNode})}static getPessimisticGraph(t,n){let r=n.timestamps.largestContentfulPaint;if(!r)throw new Z("NO_LCP");return Ys.getFirstPaintBasedGraph(t,{cutoffTimestamp:r,treatNodeAsRenderBlocking:i(a=>!0,"treatNodeAsRenderBlocking"),additionalCpuNodesToTreatAsRenderBlocking:i(a=>a.didPerformLayout(),"additionalCpuNodesToTreatAsRenderBlocking")})}static getEstimateFromSimulation(t){let n=Array.from(t.nodeTimings.entries()).filter(r=>e.isNotLowPriorityImageNode(
|
|
480
|
+
r[0])).map(r=>r[1].endTime);return{timeInMs:Math.max(...n),nodeTimings:t.nodeTimings}}static compute(t,n){let r=n?.fcpResult;if(!r)throw new Z("FCP is required to calculate the LCP metric");let a=super.compute(t,n);return a.timing=Math.max(a.timing,r.timing),a}}});var Lv,dL=g(()=>{d();or();aa();Io();Lv=class e extends Rn{static{i(this,"MaxPotentialFID")}static get coefficients(){return{intercept:0,optimistic:.5,pessimistic:.5}}static getOptimisticGraph(t){return t}static getPessimisticGraph(t){return t}static getEstimateFromSimulation(t,n){if(!n.fcpResult)throw new Z("missing fcpResult");let r=n.optimistic?n.fcpResult.pessimisticEstimate.timeInMs:n.fcpResult.optimisticEstimate.timeInMs,a=e.getTimingsAfterFCP(t.nodeTimings,r);return{timeInMs:Math.max(...a.map(o=>o.duration),16),nodeTimings:t.nodeTimings}}static compute(t,n){if(!n?.fcpResult)throw new Z("FCP is required to calculate the Max Potential FID metric");return super.compute(t,n)}static getTimingsAfterFCP(t,n){return Array.from(t.entries()).filter(([r,a])=>r.type===et.types.CPU&&a.endTime>n).map(([r,a])=>a)}}});var SQ,Fv,mL=g(()=>{d();or();aa();Io();SQ=150,Fv=class e extends Rn{static{i(this,"SpeedIndex")}static get coefficients(){return{intercept:0,optimistic:1.4,pessimistic:.4}}static getScaledCoefficients(t){let n=this.coefficients,r=SQ-30,a=Math.max((t-30)/r,0);return{intercept:n.intercept*a,optimistic:.5+(n.optimistic-.5)*a,pessimistic:.5+(n.pessimistic-.5)*a}}static getOptimisticGraph(t){return t}static getPessimisticGraph(t){return t}static getEstimateFromSimulation(t,n){if(!n.fcpResult)throw new Z("missing fcpResult");if(n.observedSpeedIndex===void 0)throw new Z("missing observedSpeedIndex");let r=n.fcpResult.pessimisticEstimate.timeInMs;return{timeInMs:n.optimistic?n.observedSpeedIndex:e.computeLayoutBasedSpeedIndex(t.nodeTimings,r),nodeTimings:t.nodeTimings}}static compute(t,n){let r=n?.fcpResult;if(!r)throw new Z("FCP is required to calculate the SpeedIndex metric");let a=super.compute(t,n);return a.timing=Math.max(a.timing,r.timing),a}static computeLayoutBasedSpeedIndex(t,n){let r=[];
|
|
481
|
+
for(let[s,c]of t.entries())if(s.type===et.types.CPU&&s.childEvents.some(l=>l.name==="Layout")){let l=Math.max(Math.log2(c.endTime-c.startTime),0);r.push({time:c.endTime,weight:l})}let a=r.map(s=>s.weight*Math.max(s.time,n)).reduce((s,c)=>s+c,0),o=r.map(s=>s.weight).reduce((s,c)=>s+c,0);return o?a/o:n}}});var jv={};x(jv,{BLOCKING_TIME_THRESHOLD:()=>Uv,calculateSumOfBlockingTime:()=>Bv,calculateTbtImpactForEvent:()=>pL});function pL(e,t,n,r){let a=50;if(r&&(a*=e.duration/r.duration),e.duration<a||e.end<t||e.start>n)return 0;let o=Math.max(e.start,t),c=Math.min(e.end,n)-o;return c<a?0:c-a}function Bv(e,t,n){if(n<=t)return 0;let r=0;for(let a of e)r+=pL(a,t,n);return r}var Uv,Hv=g(()=>{d();Uv=50;i(pL,"calculateTbtImpactForEvent");i(Bv,"calculateSumOfBlockingTime")});var qv,fL=g(()=>{d();or();aa();Io();Hv();qv=class e extends Rn{static{i(this,"TotalBlockingTime")}static get coefficients(){return{intercept:0,optimistic:.5,pessimistic:.5}}static getOptimisticGraph(t){return t}static getPessimisticGraph(t){return t}static getEstimateFromSimulation(t,n){if(!n.fcpResult)throw new Z("missing fcpResult");if(!n.interactiveResult)throw new Z("missing interactiveResult");let r=n.optimistic?n.fcpResult.pessimisticEstimate.timeInMs:n.fcpResult.optimisticEstimate.timeInMs,a=n.optimistic?n.interactiveResult.optimisticEstimate.timeInMs:n.interactiveResult.pessimisticEstimate.timeInMs,o=50,s=e.getTopLevelEvents(t.nodeTimings,o);return{timeInMs:Bv(s,r,a),nodeTimings:t.nodeTimings}}static compute(t,n){if(!n?.fcpResult)throw new Z("FCP is required to calculate the TBT metric");if(!n?.fcpResult)throw new Z("Interactive is required to calculate the TBT metric");return super.compute(t,n)}static getTopLevelEvents(t,n){let r=[];for(let[a,o]of t.entries())a.type===et.types.
|
|
482
|
+
CPU&&(o.duration<n||r.push({start:o.startTime,end:o.endTime,duration:o.duration}));return r}}});var Ft={};x(Ft,{FirstContentfulPaint:()=>Ys,Interactive:()=>Ov,LargestContentfulPaint:()=>Pv,MaxPotentialFID:()=>Lv,Metric:()=>Rn,SpeedIndex:()=>Fv,TBTUtils:()=>jv,TotalBlockingTime:()=>qv});var hL=g(()=>{d();Mv();lL();uL();dL();Io();mL();fL();Hv()});var Ui,Cf=g(()=>{d();Ui=class e{static{i(this,"TCPConnection")}warmed;ssl;h2;rtt;throughput;serverLatency;_congestionWindow;h2OverflowBytesDownloaded;constructor(t,n,r=0,a=!0,o=!1){this.warmed=!1,this.ssl=a,this.h2=o,this.rtt=t,this.throughput=n,this.serverLatency=r,this._congestionWindow=10,this.h2OverflowBytesDownloaded=0}static maximumSaturatedConnections(t,n){let s=1e3/t*1460*8;return Math.floor(n/s)}computeMaximumCongestionWindowInSegments(){let t=this.throughput/8,n=this.rtt/1e3,r=t*n;return Math.floor(r/1460)}setThroughput(t){this.throughput=t}setCongestionWindow(t){this._congestionWindow=t}setWarmed(t){this.warmed=t}isH2(){return this.h2}get congestionWindow(){return this._congestionWindow}setH2OverflowBytesDownloaded(t){this.h2&&(this.h2OverflowBytesDownloaded=t)}clone(){return Object.assign(new e(this.rtt,this.throughput),this)}simulateDownloadUntil(t,n){let{timeAlreadyElapsed:r=0,maximumTimeToElapse:a=1/0,dnsResolutionTime:o=0}=n||{};this.warmed&&this.h2&&(t-=this.h2OverflowBytesDownloaded);
|
|
482
483
|
let s=this.rtt,c=s/2,l=this.computeMaximumCongestionWindowInSegments(),u=c;this.warmed||(u=o+c+c+c+(this.ssl?s:0));let m=Math.ceil(u/s),p=u+this.serverLatency+c;this.warmed&&this.h2&&(p=0);let f=Math.max(p-r,0),h=a-f,y=Math.min(this._congestionWindow,l),b=0;f>0?b=y*1460:m=0;let w=0,C=t-b;for(;C>0&&w<=h;){m++,w+=s,y=Math.max(Math.min(l,y*2),1);let q=y*1460;b+=q,C-=q}let k=f+w,R=this.h2?Math.max(b-t,0):0,S=Math.max(Math.min(b,t),0),_;return this.warmed?this.h2?_={timeToFirstByte:p}:_={connectionTime:u,timeToFirstByte:p}:_={dnsResolutionTime:o,connectionTime:u-o,sslTime:this.ssl?s:void 0,timeToFirstByte:p},{roundTrips:m,timeElapsed:k,bytesDownloaded:S,extraBytesDownloaded:R,congestionWindow:y,connectionTiming:_}}}});var CQ,kQ,RQ,au,zv=g(()=>{d();or();Cf();CQ=30,kQ=["https","wss"],RQ=6,au=class{static{i(this,"ConnectionPool")}options;records;connectionsByOrigin;connectionsByRequest;_connectionsInUse;connectionReusedByRequestId;constructor(t,n){this.options=n,this.records=t,this.connectionsByOrigin=new Map,this.connectionsByRequest=new Map,this._connectionsInUse=new Set,this.connectionReusedByRequestId=Oa.estimateIfConnectionWasReused(t,{forceCoarseEstimates:!0}),this.initializeConnections()}connectionsInUse(){return Array.from(this._connectionsInUse)}initializeConnections(){let t=this.connectionReusedByRequestId,n=this.options.additionalRttByOrigin,r=this.options.serverResponseTimeByOrigin,a=Oa.groupByOrigin(this.records);for(let[o,s]of a.entries()){let c=[],l=n.get(o)||0,u=r.get(o)||CQ;for(let p of s){if(t.get(p.requestId))continue;let f=kQ.includes(p.parsedURL.scheme),h=p.protocol==="h2",y=new Ui(this.options.rtt+l,this.options.throughput,u,f,h);c.push(y)}if(!c.length)throw new Z(`Could not find \
|
|
483
484
|
a connection for origin: ${o}`);let m=c[0].isH2()?1:RQ;for(;c.length<m;)c.push(c[0].clone());this.connectionsByOrigin.set(o,c)}}findAvailableConnectionWithLargestCongestionWindow(t){let n=null;for(let r=0;r<t.length;r++){let a=t[r];if(this._connectionsInUse.has(a))continue;let o=n?.congestionWindow||-1/0;a.congestionWindow>o&&(n=a)}return n}acquire(t){if(this.connectionsByRequest.has(t))throw new Z("Record already has a connection");let n=t.parsedURL.securityOrigin,r=this.connectionsByOrigin.get(n)||[],a=this.findAvailableConnectionWithLargestCongestionWindow(r);return a?(this._connectionsInUse.add(a),this.connectionsByRequest.set(t,a),a):null}acquireActiveConnectionFromRequest(t){let n=this.connectionsByRequest.get(t);if(!n)throw new Z("Could not find an active connection for request");return n}release(t){let n=this.connectionsByRequest.get(t);this.connectionsByRequest.delete(t),n&&this._connectionsInUse.delete(n)}}});var _Q,ou,Gv=g(()=>{d();_Q={DEVTOOLS_RTT_ADJUSTMENT_FACTOR:3.75,DEVTOOLS_THROUGHPUT_ADJUSTMENT_FACTOR:.9,mobileSlow4G:{rttMs:150,throughputKbps:1638.4,requestLatencyMs:562.5,downloadThroughputKbps:1474.5600000000002,uploadThroughputKbps:675,cpuSlowdownMultiplier:4},mobileRegular3G:{rttMs:300,throughputKbps:700,requestLatencyMs:1125,downloadThroughputKbps:630,uploadThroughputKbps:630,cpuSlowdownMultiplier:4},desktopDense4G:{rttMs:40,throughputKbps:10240,cpuSlowdownMultiplier:1,requestLatencyMs:0,downloadThroughputKbps:0,uploadThroughputKbps:0}},ou={throttling:_Q}});var Ks,Wv=g(()=>{d();Ks=class e{static{i(this,"DNSCache")}static rttMultiplier=2;rtt;resolvedDomainNames;constructor({rtt:t}){this.rtt=t,this.resolvedDomainNames=new Map}getTimeUntilResolution(t,n){let{requestedAt:r=0,shouldUpdateCache:a=!1}=n||{},o=t.parsedURL.host,s=this.resolvedDomainNames.get(o),c=this.rtt*e.rttMultiplier;if(s){let u=Math.max(s.resolvedAt-r,0);c=Math.min(u,c)}let l=r+c;return a&&this.updateCacheResolvedAtIfNeeded(t,l),c}updateCacheResolvedAtIfNeeded(t,n){let r=t.parsedURL.host,a=this.resolvedDomainNames.get(r)||{resolvedAt:n};a.resolvedAt=Math.min(a.resolvedAt,n),this.resolvedDomainNames.set(r,a)}setResolvedAt(t,n){this.resolvedDomainNames.set(t,{resolvedAt:n})}}});var Xs,Vv=g(()=>{d();or();aa();Xs=class{static{i(this,"SimulatorTimingMap")}nodeTimings;constructor(){this.nodeTimings=new Map}getNodes(){return Array.from(this.nodeTimings.keys())}setReadyToStart(t,n){this.nodeTimings.set(t,n)}setInProgress(t,n){let r={...this.getQueued(t),startTime:n.startTime,timeElapsed:0};this.nodeTimings.set(t,t.type===et.types.NETWORK?{...r,timeElapsedOvershoot:0,bytesDownloaded:0}:r)}setCompleted(t,n){let r={...this.getInProgress(t),endTime:n.endTime,connectionTiming:n.connectionTiming};this.nodeTimings.set(t,r)}setCpu(t,n){let r={...this.getCpuStarted(t),timeElapsed:n.timeElapsed};this.nodeTimings.set(t,r)}setCpuEstimated(t,n){let r={...this.getCpuStarted(t),estimatedTimeElapsed:n.estimatedTimeElapsed};this.nodeTimings.set(t,r)}setNetwork(t,n){let r={...this.getNetworkStarted(t),timeElapsed:n.timeElapsed,timeElapsedOvershoot:n.timeElapsedOvershoot,bytesDownloaded:n.bytesDownloaded};this.nodeTimings.set(t,r)}setNetworkEstimated(t,n){let r={...this.getNetworkStarted(
|
|
484
485
|
t),estimatedTimeElapsed:n.estimatedTimeElapsed};this.nodeTimings.set(t,r)}getQueued(t){let n=this.nodeTimings.get(t);if(!n)throw new Z(`Node ${t.id} not yet queued`);return n}getCpuStarted(t){let n=this.nodeTimings.get(t);if(!n)throw new Z(`Node ${t.id} not yet queued`);if(!("startTime"in n))throw new Z(`Node ${t.id} not yet started`);if("bytesDownloaded"in n)throw new Z(`Node ${t.id} timing not valid`);return n}getNetworkStarted(t){let n=this.nodeTimings.get(t);if(!n)throw new Z(`Node ${t.id} not yet queued`);if(!("startTime"in n))throw new Z(`Node ${t.id} not yet started`);if(!("bytesDownloaded"in n))throw new Z(`Node ${t.id} timing not valid`);return n}getInProgress(t){let n=this.nodeTimings.get(t);if(!n)throw new Z(`Node ${t.id} not yet queued`);if(!("startTime"in n))throw new Z(`Node ${t.id} not yet started`);if(!("estimatedTimeElapsed"in n))throw new Z(`Node ${t.id} not yet in progress`);return n}getCompleted(t){let n=this.nodeTimings.get(t);if(!n)throw new Z(`Node ${t.id} not ye\
|
|
@@ -751,7 +752,7 @@ ack.com"],examples:["matching.ivitrack.com"],totalExecutionTime:3746,totalOccurr
|
|
|
751
752
|
Partners",category:"ad",homepage:"https://www.mrpfd.com/",domains:["*.mrpdata.net"],examples:["j.mrpdata.net"]},{name:"iPROM",company:"iPROM",category:"ad",homepage:"https://iprom.eu/",domains:["*.iprom.net"],examples:["core.iprom.net"],totalExecutionTime:114801,totalOccurrences:72099},{name:"Plausible",company:"Plausible",homepage:"https://plausible.io/",category:"analytics",domains:["*.plausible.io"]},{name:"Micro Analytics",company:"Micro Analytics",homepage:"https://microanalytics.io/",category:"analytics",domains:["padmin.microanalytics.io","www.microanalytics.io","dev.microanalytics.io","status.microanalytics.io"]},{name:"Scale8",company:"Scale8",homepage:"https://scale8.com/",category:"analytics",domains:["www.scale8.com","api-dev.scale8.com","cdn.scale8.com","ui.scale8.com"]},{name:"Cabin",company:"Cabin",homepage:"https://withcabin.com/",category:"analytics",domains:["*.withcabin.com"],totalExecutionTime:3843,totalOccurrences:100},{name:"Appcues",company:"Appcues",homepage:"ht\
|
|
752
753
|
tps://www.appcues.com/",category:"analytics",domains:["*.appcues.com"],totalExecutionTime:2154145,totalOccurrences:2831},{name:"Fathom Analytics",company:"Fathom",homepage:"https://usefathom.com/",category:"analytics",domains:["*.usefathom.com"],totalExecutionTime:145389,totalOccurrences:1141},{name:"Clearbit",company:"Clearbit",homepage:"https://clearbit.com/",category:"analytics",domains:["*.clearbitjs.com","*.clearbitscripts.com","*.clearbit.com"],totalExecutionTime:967253,totalOccurrences:4171},{name:"G2",company:"G2",homepage:"https://www.g2.com/",category:"utility",domains:["*.g2.com","*.g2crowd.com"],totalExecutionTime:195752,totalOccurrences:406},{name:"Navu",company:"Navu",homepage:"https://navu.co/",category:"ad",domains:["*.navu.co"]},{name:"InZynk",company:"InZynk",homepage:"https://inzynk.com/",category:"ad",domains:["*.inzynk.com","*.inzynk.io"],totalExecutionTime:541,totalOccurrences:8},{name:"Integrate",company:"Integrate",homepage:"https://www.integrate.com/",category:"\
|
|
753
754
|
ad",domains:["*.integrate.com","*.listenloop.com"],totalExecutionTime:14260,totalOccurrences:39},{name:"Ad Lightning",company:"Boltive",homepage:"https://www.adlightning.com/",category:"ad",domains:["*.adlightning.com"],totalExecutionTime:6879067,totalOccurrences:3795},{name:"GeoEdge",company:"GeoEdge",homepage:"https://www.geoedge.com/",category:"ad",domains:["*.geoedge.com","*.geoedge.be"],totalExecutionTime:1039615,totalOccurrences:1796},{name:"Doofinder",company:"Doofinder",homepage:"https://www.doofinder.com/",category:"utility",domains:["cdn.doofinder.com"],totalExecutionTime:1750777,totalOccurrences:12550},{name:"Revlifter",company:"Revlifter",homepage:"https://www.revlifter.com/",category:"utility",domains:["assets.revlifter.com"]},{name:"Didomi",company:"Didomi",homepage:"https://www.didomi.io/",category:"consent-provider",domains:["sdk.privacy-center.org","api.privacy-center.org"],totalExecutionTime:85132161,totalOccurrences:84206},{name:"Pubperf Analytics",company:"Pubperf",
|
|
754
|
-
homepage:"https://www.pubperf.com/",category:"analytics",domains:["*.pubperf.com"],totalExecutionTime:51392,totalOccurrences:400}]});var IL=ve((OAe,_L)=>{d();var{createAPIFromDataset:HQ}=kL(),qQ=RL();_L.exports=HQ(qQ)});var Js,Jv=g(()=>{d();Js=
|
|
755
|
+
homepage:"https://www.pubperf.com/",category:"analytics",domains:["*.pubperf.com"],totalExecutionTime:51392,totalOccurrences:400}]});var IL=ve((OAe,_L)=>{d();var{createAPIFromDataset:HQ}=kL(),qQ=RL();_L.exports=HQ(qQ)});var Js,Jv=g(()=>{d();Js=En(IL(),1)});var oa={};x(oa,{configToCacheKey:()=>GQ,defaults:()=>zQ});function GQ(e){return JSON.stringify(e)}var zQ,AL=g(()=>{d();zQ=i(()=>({includeRuntimeCallStats:!1,showAllEvents:!1,debugMode:!1,maxInvalidationEventsPerEvent:20,enableAnimationsFrameHandler:!1}),"defaults");i(GQ,"configToCacheKey")});var Yn={};x(Yn,{extensionPalette:()=>WQ,isConsoleTimestampPayloadTrackEntry:()=>OL,isExtensionEntryObj:()=>ML,isExtensionPayloadMarker:()=>NL,isSyntheticExtensionEntry:()=>$Q,isValidExtensionPayload:()=>VQ});function NL(e){return e.dataType==="marker"}function ML(e){let t="track"in e&&!!e.track;return(e.dataType==="track-entry"||e.dataType===void 0)&&t}function OL(e){return e.url!==void 0&&e.description!==void 0}function VQ(e){return NL(e)||ML(e)||OL(e)}function $Q(e){return e.cat==="devtools.extension"}var WQ,PL=g(()=>{d();WQ=["primary","primary-light","primary-dark","secondary","secondary-light","secondary-dark","tertiary","tertiary-light","tertiary-dark","error","warning"];i(NL,"isExtensionPayloadMarker");i(ML,"isExtensionEntryObj");i(OL,"isConsoleTimestampPayloadTrackEntry");i(VQ,"isValidExtensionPayload");i($Q,"isSyntheticExtensionEntry")});var ji={};x(ji,{DataOrigin:()=>Zv,EntriesLinkState:()=>Qv,EventKeyType:()=>Bi,isEntriesLinkAnnotation:()=>XQ,isEntryLabelAnnotation:()=>KQ,isTimeRangeAnnotation:()=>YQ,traceEventKeyToValues:()=>JQ});function YQ(e){return e.type==="TIME_RANGE"}function KQ(e){return e.type==="ENTRY_LABEL"}function XQ(e){return e.type==="ENTRIES_LINK"}function JQ(e){let t=e.split("-"),n=t[0];switch(n){case Bi.PROFILE_CALL:if(t.length!==5||!t.every((r,a)=>a===0||typeof r=="number"||!isNaN(parseInt(r,10))))throw new Error(`Invalid ProfileCallKey: ${e}`);return{type:t[0],processID:parseInt(t[1],10),threadID:parseInt(t[2],10),sampleIndex:parseInt(t[3],10),protocol:parseInt(t[4],10)};case Bi.RAW_EVENT:if(t.length!==2||!(typeof t[1]=="number"||!isNaN(parseInt(t[1],10))))throw new Error(`Invalid RawEvent Key: ${e}`);return{type:t[0],rawIndex:parseInt(t[1],10)};case Bi.SYNTHETIC_EVENT:if(t.length!==2||!(typeof t[1]=="number"||!isNaN(parseInt(t[1],10))))throw new Error(`Invalid SyntheticEvent Key: ${e}`);return{type:t[0],
|
|
755
756
|
rawIndex:parseInt(t[1],10)};case Bi.LEGACY_TIMELINE_FRAME:{if(t.length!==2||Number.isNaN(parseInt(t[1],10)))throw new Error(`Invalid LegacyTimelineFrame Key: ${e}`);return{type:n,rawIndex:parseInt(t[1],10)}}default:throw new Error(`Unknown trace event key: ${e}`)}}var Zv,Qv,Bi,LL=g(()=>{d();(function(e){e.CPU_PROFILE="CPUProfile",e.TRACE_EVENTS="TraceEvents"})(Zv||(Zv={}));(function(e){e.CREATION_NOT_STARTED="creation_not_started",e.PENDING_TO_EVENT="pending_to_event",e.CONNECTED="connected"})(Qv||(Qv={}));(function(e){e.RAW_EVENT="r",e.SYNTHETIC_EVENT="s",e.PROFILE_CALL="p",e.LEGACY_TIMELINE_FRAME="l"})(Bi||(Bi={}));i(YQ,"isTimeRangeAnnotation");i(KQ,"isEntryLabelAnnotation");i(XQ,"isEntriesLinkAnnotation");i(JQ,"traceEventKeyToValues")});var FL=g(()=>{d()});var I={};x(I,{Micro:()=>ZQ,Milli:()=>QQ,Seconds:()=>eee});function ZQ(e){return e}function QQ(e){return e}function eee(e){return e}var UL=g(()=>{d();i(ZQ,"Micro");i(QQ,"Milli");i(eee,"Seconds")});var v={};x(v,{AuctionWorkletType:()=>tb,CallFrameID:()=>Xee,Categories:()=>Ene,InvalidationEventType:()=>ab,LayoutInvalidationReason:()=>nb,MarkerName:()=>lee,NO_NAVIGATION:()=>ib,Name:()=>W,Phase:()=>ge,ProcessID:()=>Zee,ProfileID:()=>Kee,SampleIndex:()=>Jee,Scope:()=>eb,SelectorTimingsKey:()=>zt,StyleRecalcInvalidationReason:()=>rb,ThreadID:()=>Qee,WorkerId:()=>ete,eventIsPageLoadEvent:()=>mee,isAbortPostTaskCallback:()=>yne,isActivateLayerTree:()=>Uee,isAnimation:()=>hte,isAnimationFrameAsyncEnd:()=>See,isAnimationFrameAsyncStart:()=>xee,isAnimationFramePresentation:()=>Cee,isAnyScriptSourceEvent:()=>Rne,isAuctionWorkletDoneWithProcess:()=>oee,isAuctionWorkletRunningInProcess:()=>aee,isBegin:()=>tte,isBeginCommitCompositorFrame:()=>fee,isBeginFrame:()=>Dee,isBeginMainThreadFrame:()=>Mee,isBeginRemoteFontLoad:()=>Hte,isCommit:()=>Pee,isCommitLoad:()=>fte,isComplete:()=>GL,isCompositeLayers:()=>Fee,isConsoleRunTask:()=>o3,isConsoleTime:()=>Wte,isConsoleTimeStamp:()=>Vte,isDOMStats:()=>lte,
|
|
756
757
|
isDebuggerAsyncTaskRun:()=>Yee,isDebuggerAsyncTaskScheduled:()=>$ee,isDecodeImage:()=>qee,isDecodeLazyPixelRef:()=>Hee,isDidCommitSameDocumentNavigation:()=>Lte,isDispatch:()=>rte,isDisplayListItemListSnapshot:()=>rne,isDomLoading:()=>jte,isDrawFrame:()=>Iee,isDrawLazyPixelRef:()=>jee,isDroppedFrame:()=>Aee,isEnd:()=>nte,isEventTiming:()=>sb,isEventTimingEnd:()=>wte,isEventTimingStart:()=>Ete,isFireAnimationFrame:()=>one,isFireIdleCallback:()=>ote,isFirstContentfulPaint:()=>$L,isFirstPaint:()=>XL,isFlowPhase:()=>tee,isFlowPhaseEvent:()=>bne,isFrameCommittedInBrowser:()=>pte,isFunctionCall:()=>fne,isGPUTask:()=>Tte,isHandlePostMessage:()=>ste,isInstant:()=>WL,isInteractiveTime:()=>ZL,isInvalidateLayout:()=>Vee,isInvalidationTracking:()=>Bee,isJSInvocationEvent:()=>vne,isLargestContentfulPaintCandidate:()=>YL,isLargestImagePaintCandidate:()=>vte,isLargestTextPaintCandidate:()=>bte,isLayerTreeHostImplSnapshot:()=>ane,isLayout:()=>Wee,isLayoutImageUnsized:()=>bee,isLayoutInvalidationTracking:()=>VL,
|
|
757
758
|
isLayoutShift:()=>yte,isLegacyScreenshot:()=>iee,isLegacySyntheticScreenshot:()=>see,isLegacyTimelineFrame:()=>Tne,isLinkPreconnect:()=>gee,isMainFrameViewport:()=>Fte,isMarkDOMContent:()=>JL,isMarkLoad:()=>KL,isMarkerEvent:()=>uee,isNavigationStart:()=>e3,isNeedsBeginFrameChanged:()=>Oee,isNestableAsyncPhase:()=>BL,isNetworkTrackEntry:()=>Ote,isPaint:()=>Zte,isPaintImage:()=>Qte,isPairableAsyncBegin:()=>wee,isPairableAsyncEnd:()=>Eee,isPairableAsyncInstant:()=>Tee,isParseAuthorStyleSheetEvent:()=>wne,isParseHTML:()=>Yte,isParseMetaViewport:()=>hee,isPerformanceMark:()=>Gte,isPerformanceMeasure:()=>t3,isPerformanceMeasureBegin:()=>zte,isPhaseAsync:()=>ob,isPipelineReporter:()=>kee,isPrePaint:()=>Pte,isProcessName:()=>dte,isProfile:()=>xte,isProfileCall:()=>Jte,isProfileChunk:()=>Cte,isRasterTask:()=>Lee,isRecalcStyle:()=>Gee,isReceivedDataEvent:()=>Mte,isRemoteFontLoaded:()=>qte,isRenderFrameImplCreateChildFrame:()=>vee,isRendererEvent:()=>ate,isRequestIdleCallback:()=>cne,isRequestMainThreadFrame:()=>Nee,
|
|
@@ -799,12 +800,12 @@ i(xre,"matchEvents");i(Nf,"getSyntheticId");i(Sre,"createSortedSyntheticEvents")
|
|
|
799
800
|
Name.COMPILE_MODULE,v.Name.COMPILE,v.Name.COMPOSITE_LAYERS,v.Name.COMPUTE_INTERSECTION,v.Name.CONSOLE_TIME,v.Name.CPPGC_SWEEP,v.Name.CRYPTO_DO_DECRYPT_REPLY,v.Name.CRYPTO_DO_DECRYPT,v.Name.CRYPTO_DO_DIGEST_REPLY,v.Name.CRYPTO_DO_DIGEST,v.Name.CRYPTO_DO_ENCRYPT_REPLY,v.Name.CRYPTO_DO_ENCRYPT,v.Name.CRYPTO_DO_SIGN_REPLY,v.Name.CRYPTO_DO_SIGN,v.Name.CRYPTO_DO_VERIFY_REPLY,v.Name.CRYPTO_DO_VERIFY,v.Name.DECODE_IMAGE,v.Name.EMBEDDER_CALLBACK,v.Name.EVALUATE_MODULE,v.Name.EVALUATE_SCRIPT,v.Name.EVENT_DISPATCH,v.Name.EVENT_TIMING,v.Name.FINALIZE_DESERIALIZATION,v.Name.FIRE_ANIMATION_FRAME,v.Name.FIRE_IDLE_CALLBACK,v.Name.FUNCTION_CALL,v.Name.GC_COLLECT_GARBARGE,v.Name.GC,v.Name.GPU_TASK,v.Name.HANDLE_POST_MESSAGE,v.Name.HIT_TEST,v.Name.JS_SAMPLE,v.Name.LAYERIZE,v.Name.LAYOUT,v.Name.MAJOR_GC,v.Name.MINOR_GC,v.Name.OPTIMIZE_CODE,v.Name.PAINT_SETUP,v.Name.PAINT,v.Name.PARSE_AUTHOR_STYLE_SHEET,v.Name.PARSE_HTML,v.Name.PRE_PAINT,v.Name.PROFILE_CALL,v.Name.PROGRAM,v.Name.RASTER_TASK,v.Name.REQUEST_ANIMATION_FRAME,
|
|
800
801
|
v.Name.REQUEST_IDLE_CALLBACK,v.Name.RESOURCE_FINISH,v.Name.RESOURCE_RECEIVE_DATA,v.Name.RESOURCE_RECEIVE_RESPONSE,v.Name.RESOURCE_SEND_REQUEST,v.Name.RESOURCE_WILL_SEND_REQUEST,v.Name.RUN_MICROTASKS,v.Name.RUN_POST_TASK_CALLBACK,v.Name.RUN_TASK,v.Name.SCHEDULE_POST_MESSAGE,v.Name.SCHEDULE_POST_TASK_CALLBACK,v.Name.SCHEDULE_STYLE_RECALCULATION,v.Name.SCROLL_LAYER,v.Name.START_PROFILING,v.Name.STREAMING_COMPILE_SCRIPT_PARSING,v.Name.STREAMING_COMPILE_SCRIPT_WAITING,v.Name.STREAMING_COMPILE_SCRIPT,v.Name.SYNTHETIC_LAYOUT_SHIFT_CLUSTER,v.Name.SYNTHETIC_LAYOUT_SHIFT,v.Name.TIME_STAMP,v.Name.TIMER_FIRE,v.Name.TIMER_INSTALL,v.Name.TIMER_REMOVE,v.Name.UPDATE_LAYER_TREE,v.Name.RECALC_STYLE,v.Name.USER_TIMING,v.Name.V8_CONSOLE_RUN_TASK,v.Name.WASM_CACHED_MODULE,v.Name.WASM_COMPILED_MODULE,v.Name.WASM_MODULE_CACHE_HIT,v.Name.WASM_MODULE_CACHE_INVALID,v.Name.WASM_STREAM_FROM_RESPONSE_CALLBACK,v.Name.WEB_SOCKET_CREATE,v.Name.WEB_SOCKET_DESTROY,v.Name.WEB_SOCKET_RECEIVE_HANDSHAKE_REQUEST,v.Name.WEB_SOCKET_RECEIVE,
|
|
801
802
|
v.Name.WEB_SOCKET_SEND_HANDSHAKE_REQUEST,v.Name.WEB_SOCKET_SEND,v.Name.XHR_LOAD,v.Name.XHR_READY_STATE_CHANGED])});var La={};x(La,{canBuildTreesFromEvents:()=>_b,makeEmptyTraceEntryNode:()=>L3,makeEmptyTraceEntryTree:()=>P3,makeTraceEntryNodeId:()=>O3,treify:()=>kb,walkEntireTree:()=>zre,walkTreeFromEntry:()=>qre});function kb(e,t){let n=new Map,r=[];Cb=-1;let a=P3();for(let o=0;o<e.length;o++){let s=e[o];if(t&&!t.filter.has(s.name))continue;let c=s.dur||0,l=O3(),u=L3(s,l);if(r.length===0){a.roots.add(u),u.selfTime=I.Micro(c),r.push(u),a.maxDepth=Math.max(a.maxDepth,r.length),n.set(s,u);continue}let m=r.at(-1);if(m===void 0)throw new Error("Impossible: no parent node found in the stack");let p=m.entry,f=s.ts,h=p.ts,y=p.dur||0,b=f+c,w=h+y;if(f<h)throw new Error("Impossible: current event starts before the parent event");if(f>=w){r.pop(),o--,Cb--;continue}b>w||(u.depth=r.length,u.parent=m,m.children.push(u),u.selfTime=I.Micro(c),m.selfTime!==void 0&&(m.selfTime=I.Micro(m.selfTime-(s.dur||0))),r.push(u),a.maxDepth=Math.max(a.maxDepth,r.length),n.set(s,u))}return{tree:a,entryToNode:n}}function qre(e,t,n,r){
|
|
802
|
-
let a=e.get(t);a&&Rb(e,a,n,r)}function zre(e,t,n,r,a,o){for(let s of t.roots)Rb(e,s,n,r,a,o)}function Rb(e,t,n,r,a,o){if(!(a&&!Gre(t,a))&&!(typeof o<"u"&&I.Micro(t.entry.ts+I.Micro(t.entry.dur??0))<o)){n(t.entry);for(let s of t.children)Rb(e,s,n,r,a,o);r(t.entry)}}function Gre(e,t){return wb(e.entry,t)}function _b(e){let t=[];for(let n of e){let r=n.ts,a=n.ts+(n.dur??0),o=t.at(-1);if(o===void 0){t.push(n);continue}let s=o.ts+(o.dur??0);for(;t.length&&r>=s&&(t.pop(),o=t.at(-1),o!==void 0);)s=o.ts+(o.dur??0);if(t.length&&a>s)return!1;t.push(n)}return!0}var Cb,O3,P3,L3,Ib=g(()=>{d();ie();du();Cb=0,O3=i(()=>++Cb,"makeTraceEntryNodeId"),P3=i(()=>({roots:new Set,maxDepth:0}),"makeEmptyTraceEntryTree"),L3=i((e,t)=>({entry:e,id:t,parent:null,children:[],depth:0}),"makeEmptyTraceEntryNode");i(kb,"treify");i(qre,"walkTreeFromEntry");i(zre,"walkEntireTree");i(Rb,"walkTreeByNode");i(Gre,"treeNodeIsInWindow");i(_b,"canBuildTreesFromEvents")});var hu={};x(hu,{buildTrackDataFromExtensionEntries:()=>Wre});function Wre(e,t,n){let r=new Map;for(let a of e){let o=a.devtoolsObj.trackGroup||`track-name-${a.devtoolsObj.track}`,s=me.getWithDefault(r,o,()=>({name:a.devtoolsObj.trackGroup||a.devtoolsObj.track,isTrackGroup:!!a.devtoolsObj.trackGroup,entriesByTrack:{[a.devtoolsObj.track]:[]}}));s.entriesByTrack[a.devtoolsObj.track]||(s.entriesByTrack[a.devtoolsObj.track]=[]),s.entriesByTrack[a.devtoolsObj.track].push(a)}for(let a of r.values()){for(let o of Object.values(a.entriesByTrack))if(qi(o),_b(o))for(let[s,c]of kb(o).entryToNode)n.set(s,c);t.push(a)}return{extensionTrackData:t,entryToNode:n}}var F3=g(()=>{d();wt();mu();Ib();i(Wre,"buildTrackDataFromExtensionEntries")});var
|
|
803
|
+
let a=e.get(t);a&&Rb(e,a,n,r)}function zre(e,t,n,r,a,o){for(let s of t.roots)Rb(e,s,n,r,a,o)}function Rb(e,t,n,r,a,o){if(!(a&&!Gre(t,a))&&!(typeof o<"u"&&I.Micro(t.entry.ts+I.Micro(t.entry.dur??0))<o)){n(t.entry);for(let s of t.children)Rb(e,s,n,r,a,o);r(t.entry)}}function Gre(e,t){return wb(e.entry,t)}function _b(e){let t=[];for(let n of e){let r=n.ts,a=n.ts+(n.dur??0),o=t.at(-1);if(o===void 0){t.push(n);continue}let s=o.ts+(o.dur??0);for(;t.length&&r>=s&&(t.pop(),o=t.at(-1),o!==void 0);)s=o.ts+(o.dur??0);if(t.length&&a>s)return!1;t.push(n)}return!0}var Cb,O3,P3,L3,Ib=g(()=>{d();ie();du();Cb=0,O3=i(()=>++Cb,"makeTraceEntryNodeId"),P3=i(()=>({roots:new Set,maxDepth:0}),"makeEmptyTraceEntryTree"),L3=i((e,t)=>({entry:e,id:t,parent:null,children:[],depth:0}),"makeEmptyTraceEntryNode");i(kb,"treify");i(qre,"walkTreeFromEntry");i(zre,"walkEntireTree");i(Rb,"walkTreeByNode");i(Gre,"treeNodeIsInWindow");i(_b,"canBuildTreesFromEvents")});var hu={};x(hu,{buildTrackDataFromExtensionEntries:()=>Wre});function Wre(e,t,n){let r=new Map;for(let a of e){let o=a.devtoolsObj.trackGroup||`track-name-${a.devtoolsObj.track}`,s=me.getWithDefault(r,o,()=>({name:a.devtoolsObj.trackGroup||a.devtoolsObj.track,isTrackGroup:!!a.devtoolsObj.trackGroup,entriesByTrack:{[a.devtoolsObj.track]:[]}}));s.entriesByTrack[a.devtoolsObj.track]||(s.entriesByTrack[a.devtoolsObj.track]=[]),s.entriesByTrack[a.devtoolsObj.track].push(a)}for(let a of r.values()){for(let o of Object.values(a.entriesByTrack))if(qi(o),_b(o))for(let[s,c]of kb(o).entryToNode)n.set(s,c);t.push(a)}return{extensionTrackData:t,entryToNode:n}}var F3=g(()=>{d();wt();mu();Ib();i(Wre,"buildTrackDataFromExtensionEntries")});var _n={};x(_n,{CACHEABLE_STATUS_CODES:()=>Xre,NON_NETWORK_SCHEMES:()=>Zre,STATIC_RESOURCE_TYPES:()=>Jre,isSyntheticNetworkRequestEventRenderBlocking:()=>$re,isSyntheticNetworkRequestHighPriority:()=>Kre,isSyntheticNetworkRequestLocalhost:()=>tae,parseCacheControl:()=>Qre});function $re(e){return!Vre.has(e.args.data.renderBlocking)}function Kre(e){return Yre.has(e.args.data.priority)}function Qre(e){if(!e)return null;let t=e.split(",").map(r=>r.trim()),n={};for(let r of t){let[a,o]=r.split("=").map(s=>s.trim());switch(a){case"max-age":{let s=parseInt(o,10);isNaN(s)||(n["max-age"]=s);break}case"no-cache":n["no-cache"]=!0;break;case"no-store":n["no-store"]=!0;break;case"must-revalidate":n["must-revalidate"]=!0;break;case"private":n.private=!0;break;default:break}}return n}function tae(e){try{let t=new URL(e.args.data.url).hostname;return eae.includes(t)||t.endsWith(".localhost")}catch{return!1}}var Vre,Yre,Xre,Jre,Zre,eae,U3=g(()=>{d();Vre=new Set(["non_blocking","dynamically_injected_no\
|
|
803
804
|
n_blocking","potentially_blocking"]);i($re,"isSyntheticNetworkRequestEventRenderBlocking");Yre=new Set(["VeryHigh","High","Medium"]);i(Kre,"isSyntheticNetworkRequestHighPriority");Xre=new Set([200,203,206]),Jre=new Set(["Font","Image","Media","Script","Stylesheet"]),Zre=["blob","data","intent","file","filesystem","chrome-extension"];i(Qre,"parseCacheControl");eae=["localhost","127.0.0.1"];i(tae,"isSyntheticNetworkRequestLocalhost")});var gu={};x(gu,{SamplesIntegrator:()=>Ua});var Fa,Ua,Db=g(()=>{d();ie();du();mu();Ua=class{static{i(this,"SamplesIntegrator")}#e=[];#t=[];#o;#n;#a=[];#c=!1;#r;#i=new Map;#l;#s;jsSampleEvents=[];constructor(t,n,r,a,o){this.#r=t,this.#n=a,this.#o=r,this.#l=o||oa.defaults(),this.#s=n}buildProfileCalls(t){let n=Sb(t,this.callsFromProfileSamples()),r=[];for(let a=0;a<n.length;a++){let o=n[a];if(o.ph===v.Phase.INSTANT&&!Mf(o))continue;if(r.length===0){if(v.isProfileCall(o)){this.#p(o);continue}r.push(o),this.#u(o);continue}let s=r.at(-1);if(s===void 0)continue;let c=o.ts,l=s.ts,u=s.dur||0,m=l+u;if(c>=m){this.#d(s),r.pop(),a--;continue}if(v.isProfileCall(o)){this.#p(o,s);continue}this.#u(o),r.push(o)}for(;r.length;){let a=r.pop();a&&this.#d(a)}return qi(this.jsSampleEvents),this.#e}#u(t){(t.name===v.Name.RUN_MICROTASKS||t.name===v.Name.RUN_TASK)&&(this.#a=[],this.#g(0,t.ts),this.#c=!1),this.#c&&(this.#g(this.#a.pop()||0,t.ts),this.#c=!1),this.#h(t),this.#a.push(this.#t.length)}#p(t,n){if(n&&v.
|
|
804
805
|
isJSInvocationEvent(n)||this.#c)this.#h(t);else if(v.isProfileCall(t)&&this.#t.length===0){this.#c=!0;let r=this.#t.length;this.#h(t),this.#a.push(r)}}#d(t){let n=I.Micro(t.ts+(t.dur??0));this.#g(this.#a.pop()||0,n)}callsFromProfileSamples(){let t=this.#r.samples,n=this.#r.timestamps;if(!t)return[];let r=[],a;for(let o=0;o<t.length;o++){let s=this.#r.nodeByIndex(o),c=Do(I.Milli(n[o]));if(!s)continue;let l=fu(s,this.#s,o,c,this.#o,this.#n);if(r.push(l),this.#l.debugMode){let u=this.#r.traceIds?.[o];this.jsSampleEvents.push(this.#y(l,c,u))}if(s.id===this.#r.gcNode?.id&&a){this.#i.set(l,a);continue}a=s}return r}#m(t,n){let r=this.#r.nodeById(t.nodeId),a=r?.id===this.#r.gcNode?.id;if(a&&(r=this.#i.get(t)||null),!r)return[];let o=new Array(r.depth+1+Number(a)),s=o.length-1;for(a&&(o[s--]=t);r;)o[s--]=fu(r,t.profileId,t.sampleIndex,n??t.ts,this.#o,this.#n),r=r.parent;return o}#f(t,n){let r=this.#r.traceIds?.[t],a=r&&this.#r.nodeById(r),o=a&&fu(a,this.#s,-1,n,this.#o,this.#n);return o?(this.#l.
|
|
805
806
|
debugMode&&this.jsSampleEvents.push(this.#y(o,n,t)),this.#m(o)):null}#h(t){let n=this.#t;v.isProfileCall(t)&&(n=this.#m(t));let r=Mf(t),a=r&&this.#f(r,t.ts);a&&(n=a),Fa.filterStackFrames(n,this.#l);let o=t.ts+(t.dur||0),s=Math.min(n.length,this.#t.length),c;for(c=this.#a.at(-1)||0;c<s;++c){let l=n[c].callFrame,u=this.#t[c].callFrame;if(!Fa.framesAreEqual(l,u))break;this.#t[c].dur=I.Micro(Math.max(this.#t[c].dur||0,o-this.#t[c].ts))}for(this.#g(c,t.ts);c<n.length;++c){let l=n[c];l.nodeId===this.#r.programNode?.id||l.nodeId===this.#r.root?.id||l.nodeId===this.#r.idleNode?.id||l.nodeId===this.#r.gcNode?.id||(this.#t.push(l),this.#e.push(l))}}#g(t,n){if(this.#a.length){let r=this.#a.at(-1);r&&t<r&&(console.error(`Child stack is shallower (${t}) than the parent stack (${r}) at ${n}`),t=r)}this.#t.length<t&&(console.error(`Trying to truncate higher than the current stack size at ${n}`),t=this.#t.length);for(let r=0;r<this.#t.length;++r)this.#t[r].dur=I.Micro(Math.max(n-this.#t[r].ts,0));this.#t.
|
|
806
807
|
length=t}#y(t,n,r){return{name:v.Name.JS_SAMPLE,cat:"devtools.timeline",args:{data:{traceId:r,stackTrace:this.#m(t).map(o=>o.callFrame)}},ph:v.Phase.INSTANT,ts:n,dur:I.Micro(0),pid:this.#o,tid:this.#n}}static framesAreEqual(t,n){return t.scriptId===n.scriptId&&t.functionName===n.functionName&&t.lineNumber===n.lineNumber}static showNativeName(t,n){return n&&!!Fa.nativeGroup(t)}static nativeGroup(t){return t.startsWith("Parse")?Fa.NativeGroups.PARSE:t.startsWith("Compile")||t.startsWith("Recompile")?Fa.NativeGroups.COMPILE:null}static isNativeRuntimeFrame(t){return t.url==="native V8Runtime"}static filterStackFrames(t,n){if(n.showAllEvents)return;let a=null,o=0;for(let s=0;s<t.length;++s){let c=t[s].callFrame,l=Fa.isNativeRuntimeFrame(c);if(l&&!Fa.showNativeName(c.functionName,n.includeRuntimeCallStats))continue;let u=l?Fa.nativeGroup(c.functionName):null;a&&a===u||(a=u,t[o++]=t[s])}t.length=o}static createFakeTraceFromCpuProfile(t,n){return t?{traceEvents:[{cat:"disabled-by-default-devt\
|
|
807
|
-
ools.timeline",name:v.Name.CPU_PROFILE,ph:v.Phase.COMPLETE,pid:v.ProcessID(1),tid:n,ts:I.Micro(t.startTime),dur:I.Micro(t.endTime-t.startTime),args:{data:{cpuProfile:t}},id:"0x1"}],metadata:{dataOrigin:ji.DataOrigin.CPU_PROFILE}}:{traceEvents:[],metadata:{}}}static extractCpuProfileFromFakeTrace(t){let r=t.find(a=>v.isSyntheticCpuProfile(a))?.args.data.cpuProfile;if(!r)throw new Error("Missing cpuProfile data");return r}};Fa=Ua;(function(e){let t;(function(n){n.COMPILE="Compile",n.PARSE="Parse"})(t=e.NativeGroups||(e.NativeGroups={}))})(Ua||(Ua={}))});var Ee={};x(Ee,{Extensions:()=>hu,Network:()=>
|
|
808
|
+
ools.timeline",name:v.Name.CPU_PROFILE,ph:v.Phase.COMPLETE,pid:v.ProcessID(1),tid:n,ts:I.Micro(t.startTime),dur:I.Micro(t.endTime-t.startTime),args:{data:{cpuProfile:t}},id:"0x1"}],metadata:{dataOrigin:ji.DataOrigin.CPU_PROFILE}}:{traceEvents:[],metadata:{}}}static extractCpuProfileFromFakeTrace(t){let r=t.find(a=>v.isSyntheticCpuProfile(a))?.args.data.cpuProfile;if(!r)throw new Error("Missing cpuProfile data");return r}};Fa=Ua;(function(e){let t;(function(n){n.COMPILE="Compile",n.PARSE="Parse"})(t=e.NativeGroups||(e.NativeGroups={}))})(Ua||(Ua={}))});var Ee={};x(Ee,{Extensions:()=>hu,Network:()=>_n,SamplesIntegrator:()=>gu,SyntheticEvents:()=>Ut,Timing:()=>j,Trace:()=>re,TreeHelpers:()=>La});var Se=g(()=>{d();F3();U3();Db();yb();du();mu();Ib()});var Pb={};x(Pb,{data:()=>iae,deps:()=>sae,finalize:()=>oae,handleEvent:()=>aae,handleUserConfig:()=>rae,reset:()=>nae});function B3(e){return`${e.pid}-${e.tid}`}function nae(){Of=new Map,Pf=new Map,Nb=[],Mb=new Map,Ab=new Map,Ob=!1}function rae(e){Ob=e.enableAnimationsFrameHandler}function aae(e){if(Ob)if(v.isAnimationFrameAsyncStart(e)){let t=B3(e),n=Of.get(t)??[];n.push(e),Of.set(t,n)}else if(v.isAnimationFrameAsyncEnd(e)){let t=B3(e),n=Pf.get(t)??[];n.push(e),Pf.set(t,n)}else v.isAnimationFramePresentation(e)&&e.args?.id&&Ab.set(e.args.id,e)}async function oae(){for(let[e,t]of Of.entries()){let n=Pf.get(e);if(n){re.sortTraceEventsInPlace(t),re.sortTraceEventsInPlace(n);for(let r=0;r<t.length;r++){let a=n.at(r);if(!a)break;let o=t[r],s=Ut.SyntheticEventsManager.registerSyntheticEvent({rawSourceEvent:o,...o,dur:I.Micro(a.ts-o.ts),args:{data:{beginEvent:o,endEvent:a}}});Nb.push(s);let c=o.args?.id;if(c){let l=Ab.get(c);l&&Mb.set(s,l)}}}}}function iae(){return{animationFrames:Nb,presentationForFrame:Mb}}
|
|
808
809
|
function sae(){return["Meta"]}var Of,Pf,Ab,Nb,Mb,Ob,j3=g(()=>{d();Se();ie();i(B3,"threadKey");Of=new Map,Pf=new Map,Ab=new Map,Nb=[],Mb=new Map;i(nae,"reset");Ob=!1;i(rae,"handleUserConfig");i(aae,"handleEvent");i(oae,"finalize");i(iae,"data");i(sae,"deps")});var Ub={};x(Ub,{data:()=>dae,finalize:()=>uae,handleEvent:()=>lae,reset:()=>cae});function cae(){Lb=[],Fb=[]}function lae(e){if(v.isAnimation(e)){Lb.push(e);return}}async function uae(){let e=re.createMatchedSortedSyntheticEvents(Lb);Fb.push(...e)}function dae(){return{animations:Fb}}var Lb,Fb,H3=g(()=>{d();Se();ie();Lb=[],Fb=[];i(cae,"reset");i(lae,"handleEvent");i(uae,"finalize");i(dae,"data")});var Wb={};x(Wb,{data:()=>vu,finalize:()=>yae,handleEvent:()=>pae,reset:()=>mae});function mae(){Gb=[],qb=[],zb=[],yu=new Map,jb=new Map,Hb=new Map}function pae(e){if(v.isFlowPhaseEvent(e)){qb.push(e);return}zb.push(e)}function fae(e){let t=jb.get(e.ts)?.get(e.pid)?.get(e.tid)?.get(e.cat);if(!t)return;let{flows:n,bindingParsed:r}=t;if(!r){for(let a of n)me.getWithDefault(Hb,a,()=>new Map).set(e.ts,e);t.bindingParsed=!0}}function hae(e){let t=gae(e);switch(e.ph){case v.Phase.FLOW_START:{let n={flowId:e.id,times:new Map([[e.ts,void 0]])};yu.set(t,e.id),Bb(e,n.flowId);return}case v.Phase.FLOW_STEP:{let n=yu.get(t);if(n===void 0)return;Bb(e,n);return}case v.Phase.FLOW_END:{let n=yu.get(t);if(n===void 0)return;Bb(e,n),yu.delete(t)}}}function Bb(e,t){let n=me.getWithDefault(jb,e.ts,()=>new Map),r=me.getWithDefault(n,e.pid,()=>new Map),a=me.getWithDefault(r,e.tid,()=>new Map);me.getWithDefault(a,e.cat,()=>({flows:new Set,bindingParsed:!1})).flows.add(t)}function gae(e){return`${e.cat}${q3}${e.
|
|
809
810
|
name}${q3}${e.id}`}async function yae(){qb.forEach(hae),zb.forEach(fae),Gb=[...Hb.values()].map(e=>[...e.values()]).map(e=>e.filter(t=>t!==void 0)).filter(e=>e.length>1)}function vu(){return{flows:Gb}}var yu,jb,Hb,qb,zb,Gb,q3,Lf=g(()=>{d();wt();ie();yu=new Map,jb=new Map,Hb=new Map,qb=[],zb=[],Gb=[],q3="-$-";i(mae,"reset");i(pae,"handleEvent");i(fae,"processNonFlowEvent");i(hae,"processFlowEvent");i(Bb,"addFlowIdToEventBinding");i(gae,"flowGroupTokenForFlowPhaseEvent");i(yae,"finalize");i(vu,"data")});var Jb={};x(Jb,{data:()=>bu,finalize:()=>Eae,handleEvent:()=>bae,reset:()=>vae});function vae(){Vb=new Map,$b=new Map,Yb=new Map,Kb=new Map,Xb=new Map}function bae(e){if(v.isAuctionWorkletRunningInProcess(e)){Vb.set(e.args.data.pid,e);return}if(v.isAuctionWorkletDoneWithProcess(e)){$b.set(e.args.data.pid,e);return}if(v.isThreadName(e)){if(e.args.name==="auction_worklet.CrUtilityMain"){Kb.set(e.pid,e);return}e.args.name==="AuctionV8HelperThread"&&Xb.set(e.pid,e)}}function wae(e){switch(e){case"seller":return v.AuctionWorkletType.SELLER;case"bidder":return v.AuctionWorkletType.BIDDER;default:return v.AuctionWorkletType.UNKNOWN}}function z3(e){return Ut.SyntheticEventsManager.registerSyntheticEvent({rawSourceEvent:e,name:"SyntheticAuctionWorklet",s:v.Scope.THREAD,cat:e.cat,tid:e.tid,ts:e.ts,ph:v.Phase.INSTANT,pid:e.args.data.pid,host:e.args.data.host,target:e.args.data.target,type:wae(e.args.data.type)})}async function Eae(){for(let[e,t]of Kb){let n=Xb.get(e);if(!n)continue;let r=Vb.get(e),
|
|
810
811
|
a=$b.get(e),o=null;r?(o={...z3(r),args:{data:{runningInProcessEvent:r,utilityThread:t,v8HelperThread:n}}},a&&(o.args.data.doneWithProcessEvent=a)):a&&(o={...z3(a),args:{data:{doneWithProcessEvent:a,utilityThread:t,v8HelperThread:n}}},r&&(o.args.data.runningInProcessEvent=r)),o!==null&&Yb.set(e,o)}}function bu(){return{worklets:Yb}}var Vb,$b,Yb,Kb,Xb,Ff=g(()=>{d();Se();ie();Vb=new Map,$b=new Map,Yb=new Map,Kb=new Map,Xb=new Map;i(vae,"reset");i(bae,"handleEvent");i(wae,"workletType");i(z3,"makeSyntheticEventBase");i(Eae,"finalize");i(bu,"data")});var ow={};x(ow,{data:()=>ht,finalize:()=>kae,handleEvent:()=>Cae,reset:()=>Sae});function W3(){return{min:I.Micro(Number.POSITIVE_INFINITY),max:I.Micro(Number.NEGATIVE_INFINITY),range:I.Micro(Number.POSITIVE_INFINITY)}}function Sae(){ec=new Map,Qs=new Map,Tu=new Map,rw=new Map,Su=[],ew=v.ProcessID(-1),tw=v.ThreadID(-1),nw=v.ProcessID(-1),Uf=v.ThreadID(-1),Bf=null,jf=new Set,aw=new Map,xu=new Map,Qb=new Map,ir=W3(),Hf=I.Micro(-1),qf=!0}function Zb(e,t){me.getWithDefault(Qb,t.processId,()=>new Map).set(t.frame,t);let r=me.getWithDefault(xu,t.frame,()=>new Map),a=me.getWithDefault(r,t.processId,()=>[]),o=a.at(-1);o&&o.frame.url===t.url||a.push({frame:t,window:{min:e.ts,max:I.Micro(0),range:I.Micro(0)}})}function Cae(e){if(qf&&xae.has(e.name)&&(qf=!1),v.isProcessName(e)&&rw.set(e.pid,e),e.ts!==0&&!e.name.endsWith("::UMA")&&Tae.has(e.ph)){ir.min=I.Micro(Math.min(e.ts,ir.min));let t=e.dur??I.Micro(0);ir.max=I.Micro(Math.max(e.ts+t,ir.max))}if(v.isProcessName(e)&&(e.args.name==="Browser"||e.args.
|
|
@@ -886,14 +887,14 @@ r=a);return{value:n,worstClusterEvent:r??null}}function i5(e){return $u({p10:250
|
|
|
886
887
|
a,"first_contentful_paint",n),lcp:Ki(a,"largest_contentful_paint",n),inp:Ki(a,"interaction_to_next_paint",n),cls:l5(a,"cumulative_layout_shift",n),lcpBreakdown:{ttfb:Ki(a,"largest_contentful_paint_image_time_to_first_byte",n),loadDelay:Ki(a,"largest_contentful_paint_image_resource_load_delay",n),loadDuration:Ki(a,"largest_contentful_paint_image_resource_load_duration",n),renderDelay:Ki(a,"largest_contentful_paint_image_element_render_delay",n)}}:null}function jse(e,t){let n={lcp:.3333333333333333,inp:.3333333333333333,cls:.3333333333333333};if(!t?.cruxFieldData)return n;let a=u5(e,t);if(!a)return n;let o=a.lcp?.value??null,s=a.inp?.value??null,c=a.cls?.value??null,l=o!==null?i5(j.microToMilli(o)):0,u=s!==null?s5(j.microToMilli(s)):0,m=c!==null?c5(c):0,p=1-l,f=1-u,h=1-m,y=p+f+h;return y&&(n.lcp=p/y,n.inp=f/y,n.cls=h/y),n}function o5(e,t,n){let r=t.simulate(n),a=new Map;n.traverse(c=>{if(c.type!=="network")return;let l=e.get(c.request.requestId);if(!l)return;let u=c.request.transferSize;
|
|
887
888
|
a.set(c.request.requestId,u),c.request.transferSize=Math.max(u-l,0)});let o=t.simulate(n);n.traverse(c=>{if(c.type!=="network")return;let l=a.get(c.request.requestId);l!==void 0&&(c.request.transferSize=l)});let s=r.timeInMs-o.timeInMs;return s=Math.round(s/a5)*a5,I.Milli(s)}function ja(e,t){if(!t.navigation||!t.lantern)return;if(!e.size)return{FCP:I.Milli(0),LCP:I.Milli(0)};let n=t.lantern.simulator,r=t.lantern.metrics.firstContentfulPaint.optimisticGraph,a=t.lantern.metrics.largestContentfulPaint.optimisticGraph;return{FCP:o5(e,n,r),LCP:o5(e,n,a)}}function Gh(e){if(!e.args.data.responseHeaders)return!1;let t=[/^content-encoding$/i,/^x-content-encoding-over-network$/i,/^x-original-content-encoding$/i],n=["gzip","br","deflate","zstd"];return e.args.data.responseHeaders.some(r=>t.some(a=>r.name.match(a))&&n.includes(r.value))}function d5(e){if(!e.args.data.responseHeaders||e.args.data.failed)return!1;if(e.args.data.statusCode===304)return!0;let{transferSize:t,resourceSize:n}=m5(e);return(n?
|
|
888
889
|
t/n:0)<.01}function m5(e){let t=e.args.data.decodedBodyLength,n=e.args.data.encodedDataLength;return{resourceSize:t,transferSize:n}}function p5(e,t,n){if(!e||d5(e))switch(n){case"Stylesheet":return Math.round(t*.2);case"Script":case"Document":return Math.round(t*.33);default:return Math.round(t*.5)}let{transferSize:r,resourceSize:a}=m5(e),o=r;if(Gh(e)||(o=a),e.args.data.resourceType===n)return o;let s=Number.isFinite(a)&&a>0?o/a:1;return Math.round(t*s)}function Yu(e){if(!e.request)return 1;let t=e.request,n=t.args.data.decodedBodyLength??e.content?.length??0,r=p5(t,n,"Script");return n===0||r===0?1:r/n}function Xi(e){if(e.args.data.protocol==="file")return e.ts;let t=e.args.data.timing;return t?I.Micro(j.secondsToMicro(t.requestTime)+j.milliToMicro(t.receiveHeadersStart??t.receiveHeadersEnd)):null}function Hse(e,t){let r=(e.createOverlays?.()??[]).map(j.traceWindowFromOverlay).filter(o=>!!o),a=j.combineTraceWindowsMicro(r);return a||t}var a5,ca=g(()=>{d();Se();ie();qh();$t();a5=50;i(zh,
|
|
889
|
-
"getInsight");i(Lse,"getLCP");i(Fse,"getINP");i(Use,"getCLS");i(i5,"evaluateLCPMetricScore");i(s5,"evaluateINPMetricScore");i(c5,"evaluateCLSMetricScore");i(Bse,"getPageResult");i(l5,"getMetricResult");i(Ki,"getMetricTimingResult");i(u5,"getFieldMetricsForInsightSet");i(jse,"calculateMetricWeightsForSorting");i(o5,"estimateSavingsWithGraphs");i(ja,"metricSavingsForWastedBytes");i(Gh,"isRequestCompressed");i(d5,"isRequestServedFromBrowserCache");i(m5,"getRequestSizes");i(p5,"estimateCompressedContentSize");i(Yu,"estimateCompressionRatioForScript");i(Xi,"calculateDocFirstByteTs");i(Hse,"insightBounds")});var Ku={};x(Ku,{UIStrings:()=>jr,cachingDisabled:()=>y5,computeCacheLifetimeInSeconds:()=>h5,createOverlayForRequest:()=>v5,createOverlays:()=>$se,generateInsight:()=>Vse,getCombinedHeaders:()=>g5,i18nString:()=>hE,isCacheInsight:()=>Wse,isCacheable:()=>f5});function zse(e){return{insightKey:ce.CACHE,strings:jr,title:hE(jr.title),description:hE(jr.description),docs:"https://developer.chrome.com/docs/performance/insights/cache",category:qe.ALL,state:e.requests.length>0?"fail":"pass",...e}}function f5(e){return
|
|
890
|
-
1)return 1;if(r===0)return 0;let a=t[r],o=t[r-1],s=r/10,c=(r-1)/10;return mE(o,c,a,s,n)}function g5(e){let t=new Map;for(let n of e){let r=n.name.toLowerCase();t.get(r)?t.set(r,`${t.get(r)}, ${n.value}`):t.set(r,n.value)}return t}function y5(e,t){let n=e?.get("cache-control")??null,r=e?.get("pragma")??null;return!!(!n&&r?.includes("no-cache")||t&&(t["must-revalidate"]||t["no-cache"]||t["no-store"]||t.private))}function Wse(e){return e.insightKey===ce.CACHE}function Vse(e,t){let n=i(c=>j.eventIsInBounds(c,t.bounds),"isWithinContext"),r=e.NetworkRequests.byTime.filter(n),a=[],o=0,s=new Map;for(let c of r){if(!c.args.data.responseHeaders||!f5(c))continue;let l=g5(c.args.data.responseHeaders),u=l.get("cache-control")??null,m=
|
|
890
|
+
"getInsight");i(Lse,"getLCP");i(Fse,"getINP");i(Use,"getCLS");i(i5,"evaluateLCPMetricScore");i(s5,"evaluateINPMetricScore");i(c5,"evaluateCLSMetricScore");i(Bse,"getPageResult");i(l5,"getMetricResult");i(Ki,"getMetricTimingResult");i(u5,"getFieldMetricsForInsightSet");i(jse,"calculateMetricWeightsForSorting");i(o5,"estimateSavingsWithGraphs");i(ja,"metricSavingsForWastedBytes");i(Gh,"isRequestCompressed");i(d5,"isRequestServedFromBrowserCache");i(m5,"getRequestSizes");i(p5,"estimateCompressedContentSize");i(Yu,"estimateCompressionRatioForScript");i(Xi,"calculateDocFirstByteTs");i(Hse,"insightBounds")});var Ku={};x(Ku,{UIStrings:()=>jr,cachingDisabled:()=>y5,computeCacheLifetimeInSeconds:()=>h5,createOverlayForRequest:()=>v5,createOverlays:()=>$se,generateInsight:()=>Vse,getCombinedHeaders:()=>g5,i18nString:()=>hE,isCacheInsight:()=>Wse,isCacheable:()=>f5});function zse(e){return{insightKey:ce.CACHE,strings:jr,title:hE(jr.title),description:hE(jr.description),docs:"https://developer.chrome.com/docs/performance/insights/cache",category:qe.ALL,state:e.requests.length>0?"fail":"pass",...e}}function f5(e){return _n.NON_NETWORK_SCHEMES.includes(e.args.data.protocol)?!1:!!(_n.CACHEABLE_STATUS_CODES.has(e.args.data.statusCode)&&_n.STATIC_RESOURCE_TYPES.has(e.args.data.resourceType||"Other"))}function h5(e,t){if(t?.["max-age"]!==void 0)return t["max-age"];let n=e.find(r=>r.name==="expires")?.value??null;if(n){let r=new Date(n).getTime();return r?Math.ceil((r-Date.now())/1e3):0}return null}function Gse(e){let t=[0,.2,1,3,8,12,24,48,72,168,8760,1/0],n=e/3600,r=t.findIndex(l=>l>=n);if(r===t.length-
|
|
891
|
+
1)return 1;if(r===0)return 0;let a=t[r],o=t[r-1],s=r/10,c=(r-1)/10;return mE(o,c,a,s,n)}function g5(e){let t=new Map;for(let n of e){let r=n.name.toLowerCase();t.get(r)?t.set(r,`${t.get(r)}, ${n.value}`):t.set(r,n.value)}return t}function y5(e,t){let n=e?.get("cache-control")??null,r=e?.get("pragma")??null;return!!(!n&&r?.includes("no-cache")||t&&(t["must-revalidate"]||t["no-cache"]||t["no-store"]||t.private))}function Wse(e){return e.insightKey===ce.CACHE}function Vse(e,t){let n=i(c=>j.eventIsInBounds(c,t.bounds),"isWithinContext"),r=e.NetworkRequests.byTime.filter(n),a=[],o=0,s=new Map;for(let c of r){if(!c.args.data.responseHeaders||!f5(c))continue;let l=g5(c.args.data.responseHeaders),u=l.get("cache-control")??null,m=_n.parseCacheControl(u);if(y5(l,m))continue;let p=h5(c.args.data.responseHeaders,m);if(p!==null&&(!Number.isFinite(p)||p<=0)||(p=p||0,p/86400>=30))continue;let h=Gse(p);if(h>qse)continue;let y=c.args.data.encodedDataLength||0,b=(1-h)*y;s.set(c.args.data.requestId,b),o+=
|
|
891
892
|
b,a.push({request:c,ttl:p,wastedBytes:b})}return a.sort((c,l)=>l.request.args.data.decodedBodyLength-c.request.args.data.decodedBodyLength||c.ttl-l.ttl),zse({relatedEvents:a.map(c=>c.request),requests:a,metricSavings:ja(s,t),wastedBytes:o})}function v5(e){return{type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"}}function $se(e){return e.requests.map(t=>v5(t.request))}var jr,hE,qse,Wh=g(()=>{d();Se();ca();qh();$t();jr={title:"Use efficient cache lifetimes",description:"A long cache lifetime can speed up repeat visits to your page. [Learn more about caching](https://developer.chrome.com/docs/performance/insights/cache).",requestColumn:"Request",cacheTTL:"Cache TTL",noRequestsToCache:"No requests with inefficient cache policies",others:"{PH1} others"},hE=i((e,t)=>({i18nId:e,values:t}),"i18nString"),qse=.925;i(zse,"finalize");i(f5,"isCacheable");i(h5,"computeCacheLifetimeInSeconds");i(Gse,"getCacheHitProbability");i(g5,"getCombinedHeaders");i(y5,"cachingDisabled");i(Wse,"isCacheInsight");
|
|
892
|
-
i(Vse,"generateInsight");i(v5,"createOverlayForRequest");i($se,"createOverlays")});var gE={};x(gE,{AnimationFailureReasons:()=>Yt,LayoutShiftType:()=>Ji,UIStrings:()=>
|
|
893
|
+
i(Vse,"generateInsight");i(v5,"createOverlayForRequest");i($se,"createOverlays")});var gE={};x(gE,{AnimationFailureReasons:()=>Yt,LayoutShiftType:()=>Ji,UIStrings:()=>gn,createOverlays:()=>oce,generateInsight:()=>ace,getNonCompositedFailure:()=>w5,i18nString:()=>Oo,isCLSCulpritsInsight:()=>ece});function b5(e,t){let n=e.dur?e.ts+e.dur:e.ts;return n<t.ts&&n>=t.ts-Kse}function w5(e){let t=[],n=e.args.data.beginEvent,r=e.args.data.instantEvents||[];for(let a of r){let o=a.args.data.compositeFailed,s=a.args.data.unsupportedProperties;if(!o)continue;let c=Yse.filter(u=>o&u.flag).map(u=>u.failure),l={name:n.args.data.displayName,failureReasons:c,unsupportedProperties:s,animation:e};t.push(l)}return t}function Xse(e,t,n,r){let a=[];for(let o of e){let s=w5(o);if(!s)continue;a.push(...s);let c=Vh(t,o);if(!c||!b5(o,c))continue;let l=n.get(c);if(l)for(let u of l){let m=r.get(u);if(!m)throw new Error("Unaccounted shift");m.nonCompositedAnimations.push(...s)}}return a}function Jse(e,t){let n=new Map;for(let r of t){let a=Wt.nearestIndexFromBeginning(e,o=>o.ts>=r.ts);if(a!==null)
|
|
893
894
|
for(let o=a;o<e.length;o++){let s=e[o];if(s.ts>=r.ts&&s.ts<=r.ts+r.dur&&me.getWithDefault(n,r,()=>[]).push(s),s.ts>r.ts+r.dur)break}}return n}function Vh(e,t){let n=Wt.nearestIndexFromBeginning(e,r=>r.ts>t.ts+(t.dur||0));if(n!==null)return e[n]}function Zse(e,t,n,r,a,o){for(let s of t){let c=Vh(n,s);if(!c)continue;let l=r.get(c);if(l)for(let u of l){let m=a.get(u);if(!m)throw new Error("Unaccounted shift");let p=o.find(f=>{let h=I.Micro(s.ts+(s.dur??0));return f.ts>=s.ts&&f.ts<=h});if(p?.args.frame){let f=p.args.frame,h,y=e.Meta.rendererProcessesByFrame.get(f);y&&y.size>0&&(h=[...y.values()][0]?.[0].frame.url),m.iframes.push({frame:f,url:h})}}}return a}function Qse(e,t,n,r){return n.forEach((a,o)=>{let s=Vh(t,o);if(!s)return;let c=e.find(l=>l.args.data.nodeId===s.args.data.nodeId);if(c)for(let l of a){let u=r.get(l);if(!u)throw new Error("Unaccounted shift");u.unsizedImages.push({backendNodeId:c.args.data.nodeId,paintImageEvent:s})}}),r}function ece(e){return e.insightKey===ce.CLS_CULPRITS}
|
|
894
|
-
function tce(e,t,n,r){let a=e.filter(o=>o.args.data.resourceType==="Font"&&o.args.data.mimeType.startsWith("font"));for(let o of a){let s=Vh(t,o);if(!s||!b5(o,s))continue;let c=n.get(s);if(c)for(let l of c){let u=r.get(l);if(!u)throw new Error("Unaccounted shift");u.webFonts.push(o)}}return r}function nce(e,t){let r=[],a=e.events;for(let o of a){let s=t.get(o);if(!s)continue;let c=s.webFonts,l=s.iframes,u=s.nonCompositedAnimations,m=s.unsizedImages;for(let p=0;p<c.length&&r.length<3;p++)r.push({type:Ji.WEB_FONT,description:Oo(
|
|
895
|
-
0,3)}function rce(e){let t="pass";return e.worstCluster&&(dt.LayoutShifts.scoreClassificationForLayoutShift(e.worstCluster.clusterCumulativeScore)===dt.PageLoadMetrics.ScoreClassification.GOOD?t="informative":t="fail"),{insightKey:ce.CLS_CULPRITS,strings:
|
|
896
|
-
filter(n),b=new Map,w=Jse(f,h);for(let S of f)b.set(S,{iframes:[],webFonts:[],nonCompositedAnimations:[],unsizedImages:[]});Zse(e,a,h,w,b,s),tce(o,h,w,b),Qse(c,y,w,b);let C=Xse(r,h,w,b),k=[...f];p&&k.push(p);let R=new Map;for(let S of u)R.set(S,nce(S,b));return rce({relatedEvents:k,animationFailures:C,shifts:b,clusters:u,worstCluster:p,topCulpritsByCluster:R})}function oce(e){let n=(e.clusters.toSorted((o,s)=>s.clusterCumulativeScore-o.clusterCumulativeScore)??[])[0];if(!n)return[];let r=I.Micro(n.dur??0),a=I.Micro(n.ts+r);return[{type:"TIMESPAN_BREAKDOWN",sections:[{bounds:{min:n.ts,range:r,max:a},label:Oo(
|
|
895
|
+
function tce(e,t,n,r){let a=e.filter(o=>o.args.data.resourceType==="Font"&&o.args.data.mimeType.startsWith("font"));for(let o of a){let s=Vh(t,o);if(!s||!b5(o,s))continue;let c=n.get(s);if(c)for(let l of c){let u=r.get(l);if(!u)throw new Error("Unaccounted shift");u.webFonts.push(o)}}return r}function nce(e,t){let r=[],a=e.events;for(let o of a){let s=t.get(o);if(!s)continue;let c=s.webFonts,l=s.iframes,u=s.nonCompositedAnimations,m=s.unsizedImages;for(let p=0;p<c.length&&r.length<3;p++)r.push({type:Ji.WEB_FONT,description:Oo(gn.webFont)});for(let p=0;p<l.length&&r.length<3;p++)r.push({type:Ji.IFRAMES,description:Oo(gn.injectedIframe)});for(let p=0;p<u.length&&r.length<3;p++)r.push({type:Ji.ANIMATIONS,description:Oo(gn.animation)});for(let p=0;p<m.length&&r.length<3;p++)r.push({type:Ji.UNSIZED_IMAGE,description:Oo(gn.unsizedImage),url:m[p].paintImageEvent.args.data.url||"",backendNodeId:m[p].backendNodeId,frame:m[p].paintImageEvent.args.data.frame||""});if(r.length>=3)break}return r.slice(
|
|
896
|
+
0,3)}function rce(e){let t="pass";return e.worstCluster&&(dt.LayoutShifts.scoreClassificationForLayoutShift(e.worstCluster.clusterCumulativeScore)===dt.PageLoadMetrics.ScoreClassification.GOOD?t="informative":t="fail"),{insightKey:ce.CLS_CULPRITS,strings:gn,title:Oo(gn.title),description:Oo(gn.description),docs:"https://developer.chrome.com/docs/performance/insights/cls-culprit",category:qe.CLS,state:t,...e}}function ace(e,t){let n=i(S=>j.eventIsInBounds(S,t.bounds),"isWithinContext"),r=e.Animations.animations.filter(n),a=e.LayoutShifts.renderFrameImplCreateChildFrameEvents.filter(n),o=e.NetworkRequests.byTime.filter(n),s=e.LayoutShifts.domLoadingEvents.filter(n),c=e.LayoutShifts.layoutImageUnsizedEvents.filter(n),l=t.navigation?t.navigationId:v.NO_NAVIGATION,u=e.LayoutShifts.clustersByNavigationId.get(l)??[],p=[...u].sort((S,_)=>_.clusterCumulativeScore-S.clusterCumulativeScore).at(0),f=u.flatMap(S=>S.events),h=e.LayoutShifts.prePaintEvents.filter(n),y=e.LayoutShifts.paintImageEvents.
|
|
897
|
+
filter(n),b=new Map,w=Jse(f,h);for(let S of f)b.set(S,{iframes:[],webFonts:[],nonCompositedAnimations:[],unsizedImages:[]});Zse(e,a,h,w,b,s),tce(o,h,w,b),Qse(c,y,w,b);let C=Xse(r,h,w,b),k=[...f];p&&k.push(p);let R=new Map;for(let S of u)R.set(S,nce(S,b));return rce({relatedEvents:k,animationFailures:C,shifts:b,clusters:u,worstCluster:p,topCulpritsByCluster:R})}function oce(e){let n=(e.clusters.toSorted((o,s)=>s.clusterCumulativeScore-o.clusterCumulativeScore)??[])[0];if(!n)return[];let r=I.Micro(n.dur??0),a=I.Micro(n.ts+r);return[{type:"TIMESPAN_BREAKDOWN",sections:[{bounds:{min:n.ts,range:r,max:a},label:Oo(gn.worstLayoutShiftCluster),showDuration:!1}],entry:n.events[0],renderLocation:"ABOVE_EVENT"}]}var gn,Oo,Yt,Ji,Yse,Kse,yE=g(()=>{d();wt();tn();Se();ie();$t();gn={title:"Layout shift culprits",description:"Layout shifts occur when elements move absent any user interaction. [Investigate the causes of layout shifts](https://developer.chrome.com/docs/performance/insights/cls-culprit), s\
|
|
897
898
|
uch as elements being added, removed, or their fonts changing as the page loads.",worstLayoutShiftCluster:"Worst layout shift cluster",worstCluster:"Worst cluster",layoutShiftCluster:"Layout shift cluster @ {PH1}",topCulprits:"Top layout shift culprits",injectedIframe:"Injected iframe",webFont:"Web font",animation:"Animation",unsizedImage:"Unsized image element",noLayoutShifts:"No layout shifts",noCulprits:"Could not detect any layout shift culprits"},Oo=i((e,t)=>({i18nId:e,values:t}),"i18nString");(function(e){e.ACCELERATED_ANIMATIONS_DISABLED="ACCELERATED_ANIMATIONS_DISABLED",e.EFFECT_SUPPRESSED_BY_DEVTOOLS="EFFECT_SUPPRESSED_BY_DEVTOOLS",e.INVALID_ANIMATION_OR_EFFECT="INVALID_ANIMATION_OR_EFFECT",e.EFFECT_HAS_UNSUPPORTED_TIMING_PARAMS="EFFECT_HAS_UNSUPPORTED_TIMING_PARAMS",e.EFFECT_HAS_NON_REPLACE_COMPOSITE_MODE="EFFECT_HAS_NON_REPLACE_COMPOSITE_MODE",e.TARGET_HAS_INVALID_COMPOSITING_STATE="TARGET_HAS_INVALID_COMPOSITING_STATE",e.TARGET_HAS_INCOMPATIBLE_ANIMATIONS="TARGET_HAS_INCOMP\
|
|
898
899
|
ATIBLE_ANIMATIONS",e.TARGET_HAS_CSS_OFFSET="TARGET_HAS_CSS_OFFSET",e.ANIMATION_AFFECTS_NON_CSS_PROPERTIES="ANIMATION_AFFECTS_NON_CSS_PROPERTIES",e.TRANSFORM_RELATED_PROPERTY_CANNOT_BE_ACCELERATED_ON_TARGET="TRANSFORM_RELATED_PROPERTY_CANNOT_BE_ACCELERATED_ON_TARGET",e.TRANSFROM_BOX_SIZE_DEPENDENT="TRANSFROM_BOX_SIZE_DEPENDENT",e.FILTER_RELATED_PROPERTY_MAY_MOVE_PIXELS="FILTER_RELATED_PROPERTY_MAY_MOVE_PIXELS",e.UNSUPPORTED_CSS_PROPERTY="UNSUPPORTED_CSS_PROPERTY",e.MIXED_KEYFRAME_VALUE_TYPES="MIXED_KEYFRAME_VALUE_TYPES",e.TIMELINE_SOURCE_HAS_INVALID_COMPOSITING_STATE="TIMELINE_SOURCE_HAS_INVALID_COMPOSITING_STATE",e.ANIMATION_HAS_NO_VISIBLE_CHANGE="ANIMATION_HAS_NO_VISIBLE_CHANGE",e.AFFECTS_IMPORTANT_PROPERTY="AFFECTS_IMPORTANT_PROPERTY",e.SVG_TARGET_HAS_INDEPENDENT_TRANSFORM_PROPERTY="SVG_TARGET_HAS_INDEPENDENT_TRANSFORM_PROPERTY"})(Yt||(Yt={}));(function(e){e[e.WEB_FONT=0]="WEB_FONT",e[e.IFRAMES=1]="IFRAMES",e[e.ANIMATIONS=2]="ANIMATIONS",e[e.UNSIZED_IMAGE=3]="UNSIZED_IMAGE"})(Ji||(Ji=
|
|
899
900
|
{}));Yse=[{flag:1,failure:Yt.ACCELERATED_ANIMATIONS_DISABLED},{flag:2,failure:Yt.EFFECT_SUPPRESSED_BY_DEVTOOLS},{flag:4,failure:Yt.INVALID_ANIMATION_OR_EFFECT},{flag:8,failure:Yt.EFFECT_HAS_UNSUPPORTED_TIMING_PARAMS},{flag:16,failure:Yt.EFFECT_HAS_NON_REPLACE_COMPOSITE_MODE},{flag:32,failure:Yt.TARGET_HAS_INVALID_COMPOSITING_STATE},{flag:64,failure:Yt.TARGET_HAS_INCOMPATIBLE_ANIMATIONS},{flag:128,failure:Yt.TARGET_HAS_CSS_OFFSET},{flag:512,failure:Yt.ANIMATION_AFFECTS_NON_CSS_PROPERTIES},{flag:1024,failure:Yt.TRANSFORM_RELATED_PROPERTY_CANNOT_BE_ACCELERATED_ON_TARGET},{flag:2048,failure:Yt.TRANSFROM_BOX_SIZE_DEPENDENT},{flag:4096,failure:Yt.FILTER_RELATED_PROPERTY_MAY_MOVE_PIXELS},{flag:8192,failure:Yt.UNSUPPORTED_CSS_PROPERTY},{flag:32768,failure:Yt.MIXED_KEYFRAME_VALUE_TYPES},{flag:65536,failure:Yt.TIMELINE_SOURCE_HAS_INVALID_COMPOSITING_STATE},{flag:1<<17,failure:Yt.ANIMATION_HAS_NO_VISIBLE_CHANGE},{flag:1<<18,failure:Yt.AFFECTS_IMPORTANT_PROPERTY},{flag:1<<19,failure:Yt.SVG_TARGET_HAS_INDEPENDENT_TRANSFORM_PROPERTY}],
|
|
@@ -901,9 +902,9 @@ Kse=j.secondsToMicro(I.Seconds(.5));i(b5,"isInRootCauseWindow");i(w5,"getNonComp
|
|
|
901
902
|
ont-truetype":case"image/svg+xml":case"image/x-icon":case"image/vnd.microsoft.icon":case"font/ttf":case"font/eot":case"font/otf":case"font/opentype":r=Math.round(n*.5);break;default:}return r<sce?0:r}function vE(e){let t=!1;return e.data&&(t=!e.data.checklist.usesCompression.value||!e.data.checklist.serverResponseIsFast.value||!e.data.checklist.noRedirects.value),{insightKey:ce.DOCUMENT_LATENCY,strings:ln,title:Tr(ln.title),description:Tr(ln.description),docs:"https://developer.chrome.com/docs/performance/insights/document-latency",category:qe.ALL,state:t?"fail":"pass",...e}}function dce(e,t){if(!t.navigation)return vE({});let n=t.options.insightTimeFormatters?.milli??(h=>({__i18nMillis:h})),r=e.NetworkRequests.byId.get(t.navigationId);if(!r)return vE({warnings:[Bn.NO_DOCUMENT_REQUEST]});let a=lce(r);if(a===null)throw new Error("missing document request timing");let o=a>E5,s=0;a>E5&&(s=Math.max(a-ice,0));let c=Math.round(r.args.data.syntheticData.redirectionDuration/1e3);s+=c;let l={FCP:s,
|
|
902
903
|
LCP:s},u=uce(r),m=c===0,p=!o,f=u===0;return vE({relatedEvents:[r],data:{serverResponseTime:a,redirectDuration:I.Milli(c),uncompressedResponseBytes:u,documentRequest:r,checklist:{noRedirects:{label:m?Tr(ln.passingRedirects):Tr(ln.failedRedirects,{PH1:r.args.data.redirects.length,PH2:n(c)}),value:m},serverResponseIsFast:{label:p?Tr(ln.passingServerResponseTime,{PH1:n(a)}):Tr(ln.failedServerResponseTime,{PH1:n(a)}),value:p},usesCompression:{label:Tr(f?ln.passingTextCompression:ln.failedTextCompression),value:f}}},metricSavings:l,wastedBytes:u})}function mce(e){if(!e.data?.documentRequest)return[];let t=[],n=e.data.documentRequest,r=j.milliToMicro(e.data.redirectDuration),a=[];if(e.data.redirectDuration){let o=j.traceWindowFromMicroSeconds(n.ts,n.ts+r);a.push({bounds:o,label:Tr(ln.redirectsLabel),showDuration:!0}),t.push({type:"CANDY_STRIPED_TIME_RANGE",bounds:o,entry:n})}if(!e.data.checklist.serverResponseIsFast.value){let o=j.milliToMicro(e.data.serverResponseTime),s=n.args.data.timing?.
|
|
903
904
|
sendEnd??I.Milli(0),c=j.milliToMicro(s),l=j.traceWindowFromMicroSeconds(c,c+o);a.push({bounds:l,label:Tr(ln.serverResponseTimeLabel),showDuration:!0})}if(e.data.uncompressedResponseBytes){let o=j.traceWindowFromMicroSeconds(n.args.data.syntheticData.downloadStart,n.args.data.syntheticData.downloadStart+n.args.data.syntheticData.download);a.push({bounds:o,label:Tr(ln.uncompressedDownload),showDuration:!0}),t.push({type:"CANDY_STRIPED_TIME_RANGE",bounds:o,entry:n})}return a.length&&t.push({type:"TIMESPAN_BREAKDOWN",sections:a,entry:e.data.documentRequest,renderLocation:"BELOW_EVENT"}),t.push({type:"ENTRY_SELECTED",entry:e.data.documentRequest}),t}var ln,Tr,E5,ice,sce,wE=g(()=>{d();Se();ie();ca();$t();ln={title:"Document request latency",description:"Your first network request is the most important. [Reduce its latency](https://developer.chrome.com/docs/performance/insights/document-latency) by avoiding redirects, ensuring a fast server response, and enabling text compression.",passingRedirects:"\
|
|
904
|
-
Avoids redirects",failedRedirects:"Had redirects ({PH1} redirects, +{PH2})",passingServerResponseTime:"Server responds quickly (observed {PH1})",failedServerResponseTime:"Server responded slowly (observed {PH1})",passingTextCompression:"Applies text compression",failedTextCompression:"No compression applied",redirectsLabel:"Redirects",serverResponseTimeLabel:"Server response time",uncompressedDownload:"Uncompressed download"},Tr=i((e,t)=>({i18nId:e,values:t}),"i18nString"),E5=600,ice=100,sce=1400;i(cce,"isDocumentLatencyInsight");i(lce,"getServerResponseTime");i(uce,"getCompressionSavings");i(vE,"finalize");i(dce,"generateInsight");i(mce,"createOverlays")});var EE={};x(EE,{UIStrings:()=>
|
|
905
|
-
w.ts+(w.dur??0)));if(j.boundsIncludeTimeRange({timeRange:C,bounds:t.bounds})){for(let k of h){if(k.dur<T5||!n(k))continue;let{dirtyObjects:R}=k.args.beginData;R>pce&&a.push(k)}for(let k of y){if(k.dur<T5||!n(k))continue;let{elementCount:R}=k.args;R>fce&&o.push(k)}}}let c=[...a.map(m=>{let p=m.dur/1e3,f=m.args.beginData.dirtyObjects;return{label:Xu(
|
|
906
|
-
()=>{d();tn();Se();ie();$t();
|
|
905
|
+
Avoids redirects",failedRedirects:"Had redirects ({PH1} redirects, +{PH2})",passingServerResponseTime:"Server responds quickly (observed {PH1})",failedServerResponseTime:"Server responded slowly (observed {PH1})",passingTextCompression:"Applies text compression",failedTextCompression:"No compression applied",redirectsLabel:"Redirects",serverResponseTimeLabel:"Server response time",uncompressedDownload:"Uncompressed download"},Tr=i((e,t)=>({i18nId:e,values:t}),"i18nString"),E5=600,ice=100,sce=1400;i(cce,"isDocumentLatencyInsight");i(lce,"getServerResponseTime");i(uce,"getCompressionSavings");i(vE,"finalize");i(dce,"generateInsight");i(mce,"createOverlays")});var EE={};x(EE,{UIStrings:()=>yn,createOverlays:()=>vce,generateInsight:()=>yce,i18nString:()=>Xu,isDomSizeInsight:()=>gce});function hce(e){let t=[...e.largeLayoutUpdates,...e.largeStyleRecalcs];return{insightKey:ce.DOM_SIZE,strings:yn,title:Xu(yn.title),description:Xu(yn.description),docs:"https://developer.chrome.com/docs/performance/insights/dom-size",category:qe.INP,state:t.length>0?"informative":"pass",...e,relatedEvents:t}}function gce(e){return e.insightKey===ce.DOM_SIZE}function yce(e,t){let n=i(m=>j.eventIsInBounds(m,t.bounds),"isWithinContext"),r=t.navigation?.tid,a=[],o=[],s=Yi.threadsInRenderer(e.Renderer,e.AuctionWorklets);for(let m of s){if(m.type!==Yi.ThreadType.MAIN_THREAD)continue;if(r===void 0){if(!m.processIsOnMainFrame)continue}else if(m.tid!==r)continue;let p=e.Renderer.processes.get(m.pid)?.threads.get(m.tid);if(!p)continue;let{entries:f,layoutEvents:h,recalcStyleEvents:y}=p;if(!f.length)continue;let b=f[0],w=f[f.length-1],C=j.traceWindowFromMicroSeconds(b.ts,I.Micro(
|
|
906
|
+
w.ts+(w.dur??0)));if(j.boundsIncludeTimeRange({timeRange:C,bounds:t.bounds})){for(let k of h){if(k.dur<T5||!n(k))continue;let{dirtyObjects:R}=k.args.beginData;R>pce&&a.push(k)}for(let k of y){if(k.dur<T5||!n(k))continue;let{elementCount:R}=k.args;R>fce&&o.push(k)}}}let c=[...a.map(m=>{let p=m.dur/1e3,f=m.args.beginData.dirtyObjects;return{label:Xu(yn.largeLayout,{PH1:f}),duration:p,size:f,event:m}}),...o.map(m=>{let p=m.dur/1e3,f=m.args.elementCount;return{label:Xu(yn.largeStyleRecalc,{PH1:f}),duration:p,size:f,event:m}})].sort((m,p)=>p.duration-m.duration).slice(0,5),l=e.DOMStats.domStatsByFrameId.get(t.frameId)?.filter(n)??[],u;for(let m of l){let p=t.navigation?.pid;p&&m.pid!==p||(!u||m.args.data.totalElements>u.args.data.totalElements)&&(u=m)}return hce({largeLayoutUpdates:a,largeStyleRecalcs:o,largeUpdates:c,maxDOMStats:u})}function vce(e){return[...e.largeStyleRecalcs,...e.largeLayoutUpdates].map(n=>({type:"ENTRY_OUTLINE",entry:n,outlineReason:"ERROR"}))}var yn,Xu,T5,pce,fce,TE=g(
|
|
907
|
+
()=>{d();tn();Se();ie();$t();yn={title:"Optimize DOM size",description:"A large DOM can increase the duration of style calculations and layout reflows, impacting page responsiveness. A large DOM will also increase memory usage. [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/performance/insights/dom-size).",statistic:"Statistic",value:"Value",element:"Element",totalElements:"Total elements",maxDOMDepth:"DOM depth",maxChildren:"Most children",topUpdatesDescription:"These are the largest layout and style recalculation events. Their performance impact may be reduced by making the DOM simpler.",duration:"Duration",largeLayout:"Layout ({PH1} objects)",largeStyleRecalc:"Style recalculation ({PH1} elements)"},Xu=i((e,t)=>({i18nId:e,values:t}),"i18nString"),T5=j.milliToMicro(I.Milli(40)),pce=100,fce=300;i(hce,"finalize");i(gce,"isDomSizeInsight");i(yce,"generateInsight");i(vce,"createOverlays")});var SE={};x(SE,{UIStrings:()=>la,createOverlays:()=>Tce,generateInsight:()=>Ece,i18nString:()=>xE,isDuplicatedJavaScriptInsight:()=>wce});function bce(e){let t=e.scriptsWithDuplication.map(n=>n.request).filter(n=>!!n);return{insightKey:ce.DUPLICATE_JAVASCRIPT,strings:la,title:xE(la.title),description:xE(la.description),docs:"https://developer.chrome.com/docs/performance/insights/duplicated-javascript",category:qe.LCP,state:e.duplication.values().next().value?"fail":"pass",relatedEvents:[...new Set(t)],...e}}function wce(e){return e.insightKey===ce.DUPLICATE_JAVASCRIPT}function Ece(e,t){let n=e.Scripts.scripts.filter(l=>l.frame!==t.frameId||l.url?.startsWith("chrome-extension://")?!1:j.timestampIsInBounds(t.bounds,l.ts)),r=new Map;for(let l of n)l.request&&r.set(l.request.args.data.requestId,Yu(l));let{duplication:a,duplicationGroupedByNodeModules:o}=Nh.computeScriptDuplication({scripts:n},r),s=[...a.values().flatMap(l=>l.duplicates.map(u=>u.script))],c=new Map;for(let{duplicates:l}of a.
|
|
907
908
|
values())for(let u=1;u<l.length;u++){let m=l[u];if(!m.script.request)continue;let p=m.attributedSize,f=m.script.request.args.data.requestId;c.set(f,(c.get(f)||0)+p)}return bce({duplication:a,duplicationGroupedByNodeModules:o,scriptsWithDuplication:[...new Set(s)],scripts:n,mainDocumentUrl:t.navigation?.args.data?.url??e.Meta.mainFrameURL,metricSavings:ja(c,t),wastedBytes:c.values().reduce((l,u)=>l+u,0)})}function Tce(e){return e.scriptsWithDuplication.map(t=>t.request).filter(t=>!!t).map(t=>({type:"ENTRY_OUTLINE",entry:t,outlineReason:"ERROR"}))}var la,xE,CE=g(()=>{d();Vu();Se();ca();$t();la={title:"Duplicated JavaScript",description:"Remove large, [duplicate JavaScript modules](https://developer.chrome.com/docs/performance/insights/duplicated-javascript) from bundles to reduce unnecessary bytes consumed by network activity.",columnSource:"Source",columnDuplicatedBytes:"Duplicated bytes"},xE=i((e,t)=>({i18nId:e,values:t}),"i18nString");i(bce,"finalize");i(wce,"isDuplicatedJavaScriptIns\
|
|
908
909
|
ight");i(Ece,"generateInsight");i(Tce,"createOverlays")});var RE={};x(RE,{UIStrings:()=>Ha,createOverlays:()=>kce,generateInsight:()=>Cce,i18nString:()=>kE,isFontDisplayInsight:()=>Sce});function xce(e){return{insightKey:ce.FONT_DISPLAY,strings:Ha,title:kE(Ha.title),description:kE(Ha.description),docs:"https://developer.chrome.com/docs/performance/insights/font-display",category:qe.INP,state:e.fonts.find(t=>t.wastedTime>0)?"fail":"pass",...e}}function Sce(e){return e.insightKey===ce.FONT_DISPLAY}function Cce(e,t){let n=[];for(let a of e.LayoutShifts.remoteFonts){let o=a.beginRemoteFontLoadEvent;if(!j.eventIsInBounds(o,t.bounds))continue;let s=`${o.pid}.${o.args.id}`,c=e.NetworkRequests.byId.get(s);if(!c||!/^(block|fallback|auto)$/.test(a.display))continue;let l=I.Micro(c.args.data.syntheticData.finishTime-c.args.data.syntheticData.sendStartTime),u=ia.floor(j.microToMilli(l),1/5);u!==0&&(u=Math.min(u,3e3),n.push({name:a.name,request:c,display:a.display,wastedTime:u}))}n.sort((a,o)=>o.wastedTime-a.wastedTime);let r=Math.max(...n.map(a=>a.wastedTime));
|
|
909
910
|
return xce({relatedEvents:n.map(a=>a.request),fonts:n,metricSavings:{FCP:r}})}function kce(e){return e.fonts.map(t=>({type:"ENTRY_OUTLINE",entry:t.request,outlineReason:t.wastedTime?"ERROR":"INFO"}))}var Ha,kE,_E=g(()=>{d();wt();Se();ie();$t();Ha={title:"Font display",description:"Consider setting [`font-display`](https://developer.chrome.com/docs/performance/insights/font-display) to `swap` or `optional` to ensure text is consistently visible. `swap` can be further optimized to mitigate layout shifts with [font metric overrides](https://developer.chrome.com/blog/font-fallbacks).",fontColumn:"Font",wastedTimeColumn:"Wasted time"},kE=i((e,t)=>({i18nId:e,values:t}),"i18nString");i(xce,"finalize");i(Sce,"isFontDisplayInsight");i(Cce,"generateInsight");i(kce,"createOverlays")});var AE={};x(AE,{UIStrings:()=>cr,createOverlayForEvents:()=>DE,createOverlays:()=>Nce,generateInsight:()=>Ace,i18nString:()=>IE,isForcedReflowInsight:()=>Dce});function x5(e){return e.scriptId+":"+e.lineNumber+":"+e.columnNumber}function Rce(e,t){let n=t.Renderer.entryToNode,r=new Map;if(e.length===0)return;for(let o of e){let s=n.get(o);if(!s)continue;let c=s.parent,l,u;for(;c;){let f=c.entry;if(v.isProfileCall(f))l=f.callFrame,u=f;else{v.isFunctionCall(f)&&f.args.data&&v.objectIsCallFrame(f.args.data)&&(l=f.args.data,u=f);break}c=c.parent}if(!l||!u)continue;let m=x5(l),p=me.getWithDefault(r,m,()=>({topLevelFunctionCall:l,totalReflowTime:0,topLevelFunctionCallEvents:[]}));p.totalReflowTime+=o.dur??0,p.topLevelFunctionCallEvents.push(u)}let a;return r.forEach(o=>{(!a||o.totalReflowTime>a.totalReflowTime)&&(a=o)}),a}function _ce(e){return{insightKey:ce.FORCED_REFLOW,strings:cr,title:IE(cr.title),description:IE(cr.description),docs:"https://developer.chrome.com/docs/performance/insights/\
|
|
@@ -912,8 +913,8 @@ ENTRY_OUTLINE",entry:n,outlineReason:t}))}var cr,IE,NE=g(()=>{d();wt();Vu();Se()
|
|
|
912
913
|
category:qe.LCP,state:e.optimizableImages.length>0?"fail":"pass",...e,relatedEvents:new Map(e.optimizableImages.map(t=>[t.request,t.optimizations.map(C5)]))}}function Uce(e){return Math.round(29.1*Math.log10(e.args.data.decodedBodyLength)-100.7)/100}function k5(e,t){return e.ImagePainting.paintEventToCorrectedDisplaySize.get(t)??{width:t.args.data.width,height:t.args.data.height}}function ME(e,t){let{width:n,height:r}=k5(e,t);return{filePixels:t.args.data.srcWidth*t.args.data.srcHeight,displayedPixels:n*r}}function Bce(e,t){let n=i(s=>j.eventIsInBounds(s,t.bounds),"isWithinContext"),r=e.NetworkRequests.byTime.filter(n),a=[];for(let s of r){if(s.args.data.resourceType!=="Image"||s.args.data.mimeType==="image/svg+xml")continue;let c=s.args.data.redirects[0]?.url??s.args.data.url,l=e.ImagePainting.paintImageEventForUrl.get(c)?.filter(n);if(!l?.length)continue;let u=l.reduce((k,R)=>{let S=ME(e,k).displayedPixels,_=ME(e,R).displayedPixels;return S>_?k:R}),{filePixels:m,displayedPixels:p}=ME(
|
|
913
914
|
e,u),f=Math.min(s.args.data.decodedBodyLength,s.args.data.encodedDataLength),h=f/m,y=[];if(s.args.data.mimeType==="image/gif"){if(f>Mce){let k=Uce(s),R=Math.round(f*k);y.push({type:Hr.VIDEO_FORMAT,byteSavings:R})}}else if(h>S5){let k=Math.round(S5*m),R=f-k;s.args.data.mimeType!=="image/webp"&&s.args.data.mimeType!=="image/avif"?y.push({type:Hr.MODERN_FORMAT_OR_COMPRESSION,byteSavings:R}):y.push({type:Hr.ADJUST_COMPRESSION,byteSavings:R})}let b=Math.max(0,...y.map(k=>k.byteSavings)),w=b,C=1-p/m;if(C>0&&!u.args.data.isCSS){let k=Math.round(C*f);if(!(u.args.data.isPicture||u.args.data.srcsetAttribute)||k>Pce){w+=Math.round(C*(f-b));let{width:S,height:_}=k5(e,u);y.push({type:Hr.RESPONSIVE_SIZE,byteSavings:k,fileDimensions:{width:Math.round(u.args.data.srcWidth),height:Math.round(u.args.data.srcHeight)},displayDimensions:{width:Math.round(S),height:Math.round(_)}})}}y=y.filter(k=>k.byteSavings>Oce),y.length>0&&a.push({request:s,largestImagePaint:u,optimizations:y,byteSavings:w})}let o=new Map;
|
|
914
915
|
for(let s of a)o.set(s.request.args.data.requestId,s.byteSavings);return a.sort((s,c)=>c.byteSavings!==s.byteSavings?c.byteSavings-s.byteSavings:c.request.args.data.decodedBodyLength-s.request.args.data.decodedBodyLength),Fce({optimizableImages:a,metricSavings:ja(o,t),wastedBytes:a.reduce((s,c)=>s+c.byteSavings,0)})}function R5(e){return{type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"}}function jce(e){return e.optimizableImages.map(t=>R5(t.request))}var Jn,Po,S5,Mce,Oce,Pce,Hr,Kh=g(()=>{d();Se();ca();$t();Jn={title:"Improve image delivery",description:"Reducing the download time of images can improve the perceived load time of the page and LCP. [Learn more about optimizing image size](https://developer.chrome.com/docs/performance/insights/image-delivery)",useCompression:"Increasing the image compression factor could improve this image's download size.",useModernFormat:"Using a modern image format (WebP, AVIF) or increasing the image compression could improve this image's download si\
|
|
915
|
-
ze.",useVideoFormat:"Using video formats instead of GIFs can improve the download size of animated content.",useResponsiveSize:"This image file is larger than it needs to be ({PH1}) for its displayed dimensions ({PH2}). Use responsive images to reduce the image download size.",optimizeFile:"Optimize file size",others:"{PH1} others",noOptimizableImages:"No optimizable images",estimatedSavings:"{PH1} (Est {PH2})"},Po=i((e,t)=>({i18nId:e,values:t}),"i18nString"),S5=2/12,Mce=100*1024,Oce=4096,Pce=12288;(function(e){e.ADJUST_COMPRESSION="ADJUST_COMPRESSION",e.MODERN_FORMAT_OR_COMPRESSION="MODERN_FORMAT_OR_COMPRESSION",e.VIDEO_FORMAT="VIDEO_FORMAT",e.RESPONSIVE_SIZE="RESPONSIVE_SIZE"})(Hr||(Hr={}));i(Lce,"isImageDeliveryInsight");i($h,"getOptimizationMessage");i(C5,"getOptimizationMessageWithBytes");i(Fce,"finalize");i(Uce,"estimateGIFPercentSavings");i(k5,"getDisplayedSize");i(ME,"getPixelCounts");i(Bce,"generateInsight");i(R5,"createOverlayForRequest");i(jce,"createOverlays")});var OE={};x(OE,{UIStrings:()=>
|
|
916
|
-
longestInteractionEvent:a[0],highPercentileInteractionEvent:a[o]})}function I5(e,t=-1){let n=j.traceWindowFromMicroSeconds(e.ts,e.ts+e.inputDelay),r=j.traceWindowFromMicroSeconds(n.max,n.max+e.mainThreadHandling),a=j.traceWindowFromMicroSeconds(r.max,r.max+e.presentationDelay),o=[{bounds:n,label:dc(
|
|
916
|
+
ze.",useVideoFormat:"Using video formats instead of GIFs can improve the download size of animated content.",useResponsiveSize:"This image file is larger than it needs to be ({PH1}) for its displayed dimensions ({PH2}). Use responsive images to reduce the image download size.",optimizeFile:"Optimize file size",others:"{PH1} others",noOptimizableImages:"No optimizable images",estimatedSavings:"{PH1} (Est {PH2})"},Po=i((e,t)=>({i18nId:e,values:t}),"i18nString"),S5=2/12,Mce=100*1024,Oce=4096,Pce=12288;(function(e){e.ADJUST_COMPRESSION="ADJUST_COMPRESSION",e.MODERN_FORMAT_OR_COMPRESSION="MODERN_FORMAT_OR_COMPRESSION",e.VIDEO_FORMAT="VIDEO_FORMAT",e.RESPONSIVE_SIZE="RESPONSIVE_SIZE"})(Hr||(Hr={}));i(Lce,"isImageDeliveryInsight");i($h,"getOptimizationMessage");i(C5,"getOptimizationMessageWithBytes");i(Fce,"finalize");i(Uce,"estimateGIFPercentSavings");i(k5,"getDisplayedSize");i(ME,"getPixelCounts");i(Bce,"generateInsight");i(R5,"createOverlayForRequest");i(jce,"createOverlays")});var OE={};x(OE,{UIStrings:()=>In,createOverlays:()=>zce,createOverlaysForSubpart:()=>I5,generateInsight:()=>qce,i18nString:()=>dc,isINPBreakdownInsight:()=>Hce});function Hce(e){return e.insightKey===ce.INP_BREAKDOWN}function _5(e){let t="pass";return e.longestInteractionEvent&&(dt.UserInteractions.scoreClassificationForInteractionToNextPaint(e.longestInteractionEvent.dur)===dt.PageLoadMetrics.ScoreClassification.GOOD?t="informative":t="fail"),{insightKey:ce.INP_BREAKDOWN,strings:In,title:dc(In.title),description:dc(In.description),docs:"https://developer.chrome.com/docs/performance/insights/inp-breakdown",category:qe.INP,state:t,...e}}function qce(e,t){let n=e.UserInteractions.interactionEventsWithNoNesting.filter(s=>j.eventIsInBounds(s,t.bounds));if(!n.length)return _5({});let r=new Map;for(let s of n){let c=s.interactionId,l=r.get(c);(!l||s.dur>l.dur)&&r.set(c,s)}let a=[...r.values()];a.sort((s,c)=>c.dur-s.dur);let o=Math.min(9,Math.floor(a.length/50));return _5({relatedEvents:[a[0]],
|
|
917
|
+
longestInteractionEvent:a[0],highPercentileInteractionEvent:a[o]})}function I5(e,t=-1){let n=j.traceWindowFromMicroSeconds(e.ts,e.ts+e.inputDelay),r=j.traceWindowFromMicroSeconds(n.max,n.max+e.mainThreadHandling),a=j.traceWindowFromMicroSeconds(r.max,r.max+e.presentationDelay),o=[{bounds:n,label:dc(In.inputDelay),showDuration:!0},{bounds:r,label:dc(In.processingDuration),showDuration:!0},{bounds:a,label:dc(In.presentationDelay),showDuration:!0}];return t!==-1&&(o=[o[t]]),[{type:"TIMESPAN_BREAKDOWN",sections:o,renderLocation:"BELOW_EVENT",entry:e}]}function zce(e){let t=e.longestInteractionEvent;return t?I5(t):[]}var In,dc,PE=g(()=>{d();tn();Se();$t();In={description:"Start investigating [how to improve INP](https://developer.chrome.com/docs/performance/insights/inp-breakdown) by looking at the longest subpart.",title:"INP breakdown",subpart:"Subpart",duration:"Duration",inputDelay:"Input delay",processingDuration:"Processing duration",presentationDelay:"Presentation delay",noInteractions:"\
|
|
917
918
|
No interactions detected"},dc=i((e,t)=>({i18nId:e,values:t}),"i18nString");i(Hce,"isINPBreakdownInsight");i(_5,"finalize");i(qce,"generateInsight");i(I5,"createOverlaysForSubpart");i(zce,"createOverlays")});var LE={};x(LE,{UIStrings:()=>nn,createOverlays:()=>$ce,generateInsight:()=>Vce,i18nString:()=>Lo,isLCPBreakdownInsight:()=>Gce});function Gce(e){return e.insightKey==="LCPBreakdown"}function D5(...e){return e.some(t=>Number.isNaN(t))}function Wce(e,t,n,r){let a=Xi(t);if(a===null)return null;let o=j.traceWindowFromMicroSeconds(e.ts,a);o.label=Lo(nn.timeToFirstByte);let s=j.traceWindowFromMicroSeconds(o.max,n.ts);if(s.label=Lo(nn.elementRenderDelay),!r)return D5(o.range,s.range)?null:{ttfb:o,renderDelay:s};let c=r.ts,l=r.args.data.syntheticData.finishTime,u=j.traceWindowFromMicroSeconds(o.max,c),m=j.traceWindowFromMicroSeconds(c,l);return s=j.traceWindowFromMicroSeconds(l,n.ts),u.label=Lo(nn.resourceLoadDelay),m.label=Lo(nn.resourceLoadDuration),s.label=Lo(nn.elementRenderDelay),D5(o.range,u.range,m.range,s.range)?null:{ttfb:o,loadDelay:u,loadDuration:m,renderDelay:s}}function Xh(e){let t=[];e.lcpEvent&&t.push(e.lcpEvent),e.lcpRequest&&t.push(e.lcpRequest);let n="pass";return e.lcpMs!==
|
|
918
919
|
void 0&&(dt.PageLoadMetrics.scoreClassificationForLargestContentfulPaint(j.milliToMicro(e.lcpMs))===dt.PageLoadMetrics.ScoreClassification.GOOD?n="informative":n="fail"),{insightKey:ce.LCP_BREAKDOWN,strings:nn,title:Lo(nn.title),description:Lo(nn.description),docs:"https://developer.chrome.com/docs/performance/insights/lcp-breakdown",category:qe.LCP,state:n,...e,relatedEvents:t}}function Vce(e,t){if(!t.navigation)return Xh({});let n=e.NetworkRequests,r=e.PageLoadMetrics.metricScoresByFrameId.get(t.frameId);if(!r)throw new Error("no frame metrics");let a=r.get(t.navigationId);if(!a)throw new Error("no navigation metrics");let o=a.get(dt.PageLoadMetrics.MetricName.LCP),s=o?.event;if(!s||!v.isLargestContentfulPaintCandidate(s))return Xh({warnings:[Bn.NO_LCP]});let c=j.microToMilli(o.timing),l=o.event?.ts?j.microToMilli(o.event?.ts):void 0,u=e.LargestImagePaint.lcpRequestByNavigationId.get(t.navigationId),m=n.byId.get(t.navigationId);return Xh(m?{lcpMs:c,lcpTs:l,lcpEvent:s,lcpRequest:u,subparts:Wce(
|
|
919
920
|
t.navigation,m,s,u)??void 0}:{lcpMs:c,lcpTs:l,lcpEvent:s,lcpRequest:u,warnings:[Bn.NO_DOCUMENT_REQUEST]})}function $ce(e){if(!e.subparts||!e.lcpTs)return[];let t=[{type:"TIMESPAN_BREAKDOWN",sections:Object.values(e.subparts).map(n=>({bounds:n,label:n.label,showDuration:!0}))}];return e.lcpRequest&&t.push({type:"ENTRY_OUTLINE",entry:e.lcpRequest,outlineReason:"INFO"}),t}var nn,Lo,FE=g(()=>{d();tn();Se();ie();ca();$t();nn={title:"LCP breakdown",description:"Each [subpart has specific improvement strategies](https://developer.chrome.com/docs/performance/insights/lcp-breakdown). Ideally, most of the LCP time should be spent on loading the resources, not within delays.",timeToFirstByte:"Time to first byte",resourceLoadDelay:"Resource load delay",resourceLoadDuration:"Resource load duration",elementRenderDelay:"Element render delay",subpart:"Subpart",duration:"Duration",fieldDuration:"Field p75",noLcp:"No LCP detected"},Lo=i((e,t)=>({i18nId:e,values:t}),"i18nString");i(Gce,"isLCPBreakdownIns\
|
|
@@ -937,11 +938,11 @@ e.findIndex":[0,5,15,21,22,26,53,59,69,76,78,105,106,116,155,170],"Array.prototy
|
|
|
937
938
|
|\r|
|
|
938
939
|
)|${s}`,"g")}this.re.lastIndex=0;let t=new Set,n=[],r,a=0,o=0;for(;(r=this.re.exec(e))!==null;){let s=r.slice(1),[c,...l]=s;if(c){a++,o=r.index+1;continue}let u=this.patterns[l.findIndex(Boolean)];t.has(u)||(t.add(u),n.push({name:u.name,line:a,column:r.index-o}))}return n}};i(ele,"buildPolyfillExpression");i(M5,"getCoreJsPolyfillData");i(tle,"getPolyfillPatterns");i(HE,"getTransformPatterns");i(nle,"estimateWastedBytes");rle=new Qce([...tle(),...HE()]);i(ale,"detectLegacyJavaScript");});var P5=g(()=>{d();O5()});var zE={};x(zE,{UIStrings:()=>ua,createOverlays:()=>ule,generateInsight:()=>lle,i18nString:()=>qE,isLegacyJavaScript:()=>cle});function sle(e){let t=[...e.legacyJavaScriptResults.keys()].map(n=>n.request).filter(n=>!!n);return{insightKey:ce.LEGACY_JAVASCRIPT,strings:ua,title:qE(ua.title),description:qE(ua.description),docs:"https://developer.chrome.com/docs/performance/insights/legacy-javascript",category:qe.ALL,state:t.length?"fail":"pass",relatedEvents:[...new Set(t)],...e}}function cle(e){return e.insightKey===ce.LEGACY_JAVASCRIPT}function lle(e,t){let n=e.Scripts.scripts.filter(s=>s.frame!==t.frameId||s.url?.startsWith("chrome-extension://")?!1:j.timestampIsInBounds(t.bounds,s.ts)||s.request&&j.eventIsInBounds(s.request,t.bounds)),r=new Map,a=new Map;for(let s of n){if(!s.content||s.content.length<L5)continue;let c=ile(s.content,s.sourceMap);if(c.estimatedByteSavings<L5)continue;let l=Yu(s),u=Math.round(c.estimatedByteSavings*l);if(c.estimatedByteSavings=u,r.set(s,c),s.request){let m=s.
|
|
939
940
|
request.args.data.requestId;a.set(m,u)}}let o=new Map([...r].sort((s,c)=>c[1].estimatedByteSavings-s[1].estimatedByteSavings));return sle({legacyJavaScriptResults:o,metricSavings:ja(a,t),wastedBytes:a.values().reduce((s,c)=>s+c,0)})}function ule(e){return[...e.legacyJavaScriptResults.keys()].map(t=>t.request).filter(t=>!!t).map(t=>({type:"ENTRY_OUTLINE",entry:t,outlineReason:"ERROR"}))}var ile,ua,qE,L5,GE=g(()=>{d();P5();Se();ca();$t();({detectLegacyJavaScript:ile}=Jh),ua={title:"Legacy JavaScript",description:"Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know you must support older browsers. [Learn why most sites can deploy ES6+ code without transpiling](https://developer.chrome.com/docs/performance/insights/legacy-javascript)",columnScript:"Script",columnWastedBytes:"\
|
|
940
|
-
Wasted bytes"},qE=i((e,t)=>({i18nId:e,values:t}),"i18nString"),L5=5e3;i(sle,"finalize");i(cle,"isLegacyJavaScript");i(lle,"generateInsight");i(ule,"createOverlays")});var Zu={};x(Zu,{UIStrings:()=>da,createOverlayForRequest:()=>B5,createOverlays:()=>gle,determineHttp1Requests:()=>U5,generateInsight:()=>hle,i18nString:()=>WE,isModernHTTPInsight:()=>dle});function dle(e){return e.insightKey===ce.MODERN_HTTP}function mle(e,t,n){if(!
|
|
941
|
+
Wasted bytes"},qE=i((e,t)=>({i18nId:e,values:t}),"i18nString"),L5=5e3;i(sle,"finalize");i(cle,"isLegacyJavaScript");i(lle,"generateInsight");i(ule,"createOverlays")});var Zu={};x(Zu,{UIStrings:()=>da,createOverlayForRequest:()=>B5,createOverlays:()=>gle,determineHttp1Requests:()=>U5,generateInsight:()=>hle,i18nString:()=>WE,isModernHTTPInsight:()=>dle});function dle(e){return e.insightKey===ce.MODERN_HTTP}function mle(e,t,n){if(!_n.STATIC_RESOURCE_TYPES.has(e.args.data.resourceType))return!1;if(e.args.data.decodedBodyLength<100){let r=t.entityByEvent.get(e);if(r){if(n?.name===r.name)return!0;if(!r.isUnrecognized)return!1}}return!0}function U5(e,t,n){let r=[],a=new Map;for(let s of e){let c=new URL(s.args.data.url);if(!mle(s,t,n)||_n.isSyntheticNetworkRequestLocalhost(s))continue;me.getWithDefault(a,c.origin,()=>[]).push(s)}let o=new Set;for(let s of e){if(o.has(s.args.data.url)||s.args.data.fromServiceWorker||!/HTTP\/[01][.\d]?/i.test(s.args.data.protocol))continue;let l=new URL(s.args.data.url);(a.get(l.origin)||[]).length<6||(o.add(s.args.data.url),r.push(s))}return r}function F5(e,t,n){let r=n.simulate(t),a=new Map;t.traverse(c=>{c.type==="networ\
|
|
941
942
|
k"&&e.has(c.request.url)&&(a.set(c.request.requestId,c.request.protocol),c.request.protocol="h2")});let o=n.simulate(t);t.traverse(c=>{if(c.type!=="network")return;let l=a.get(c.request.requestId);l!==void 0&&(c.request.protocol=l)});let s=r.timeInMs-o.timeInMs;return ia.floor(s,1/10)}function ple(e,t){if(!t.navigation||!t.lantern)return;let n=new Set(e.map(o=>o.args.data.url)),r=t.lantern.metrics.firstContentfulPaint.optimisticGraph,a=t.lantern.metrics.largestContentfulPaint.optimisticGraph;return{FCP:F5(n,r,t.lantern.simulator),LCP:F5(n,a,t.lantern.simulator)}}function fle(e){return{insightKey:ce.MODERN_HTTP,strings:da,title:WE(da.title),description:WE(da.description),docs:"https://developer.chrome.com/docs/performance/insights/modern-http",category:qe.LCP,state:e.http1Requests.length>0?"fail":"pass",...e,relatedEvents:e.http1Requests}}function hle(e,t){let n=i(l=>j.eventIsInBounds(l,t.bounds),"isWithinContext"),r=e.NetworkRequests.byTime.filter(n),a=e.NetworkRequests.entityMappings,
|
|
942
943
|
o=t.navigation?.args.data?.documentLoaderURL??e.Meta.mainFrameURL,s=vr.getEntityForUrl(o,a),c=U5(r,a,s??null);return fle({http1Requests:c,metricSavings:ple(c,t)})}function B5(e){return{type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"}}function gle(e){return e.http1Requests.map(t=>B5(t))??[]}var da,WE,Zh=g(()=>{d();wt();tn();Se();$t();da={title:"Modern HTTP",description:"HTTP/2 and HTTP/3 offer many benefits over HTTP/1.1, such as multiplexing. [Learn more about using modern HTTP](https://developer.chrome.com/docs/performance/insights/modern-http).",request:"Request",protocol:"Protocol",noOldProtocolRequests:"No requests used HTTP/1.1, or its current use of HTTP/1.1 does not present a significant optimization opportunity. HTTP/1.1 requests are only flagged if six or more static assets originate from the same origin, and they are not served from a local development environment or a third-party source."},WE=i((e,t)=>({i18nId:e,values:t}),"i18nString");i(dle,"isModernHTTPInsight");i(mle,
|
|
943
|
-
"isMultiplexableStaticAsset");i(U5,"determineHttp1Requests");i(F5,"computeWasteWithGraph");i(ple,"computeMetricSavings");i(fle,"finalize");i(hle,"generateInsight");i(B5,"createOverlayForRequest");i(gle,"createOverlays")});var YE={};x(YE,{ParsedURL:()=>Qu,TOO_MANY_PRECONNECTS_THRESHOLD:()=>eg,UIStrings:()=>Bt,createOverlays:()=>_le,generateInsight:()=>Rle,generatePreconnectCandidates:()=>W5,generatePreconnectedOrigins:()=>G5,handleLinkResponseHeader:()=>z5,i18nString:()=>Qh,isNetworkDependencyTreeInsight:()=>kle,normalizePath:()=>$E,schemeIs:()=>Ile});function j5(e){return{insightKey:ce.NETWORK_DEPENDENCY_TREE,strings:Bt,title:Qh(Bt.title),description:Qh(Bt.description),docs:"https://developer.chrome.com/docs/performance/insights/network-dependency-tree",category:qe.LCP,state:e.fail?"fail":"pass",...e}}function H5(e,t){if(e.args.data.requestId===t.navigationId)return!0;if(e.args.data.isLinkPreload)return!1;let n=e.args.data.resourceType==="Document"&&e.args.data.frame!==t.frameId;if(yle.has(e.args.data.resourceType)||n||e.args.data.mimeType.startsWith("image/")||!(e.args.data.initiator?.url||re.getStackTraceTopCallFrameInEventPayload(e)?.url))return!1;let a=
|
|
944
|
-
e);return
|
|
944
|
+
"isMultiplexableStaticAsset");i(U5,"determineHttp1Requests");i(F5,"computeWasteWithGraph");i(ple,"computeMetricSavings");i(fle,"finalize");i(hle,"generateInsight");i(B5,"createOverlayForRequest");i(gle,"createOverlays")});var YE={};x(YE,{ParsedURL:()=>Qu,TOO_MANY_PRECONNECTS_THRESHOLD:()=>eg,UIStrings:()=>Bt,createOverlays:()=>_le,generateInsight:()=>Rle,generatePreconnectCandidates:()=>W5,generatePreconnectedOrigins:()=>G5,handleLinkResponseHeader:()=>z5,i18nString:()=>Qh,isNetworkDependencyTreeInsight:()=>kle,normalizePath:()=>$E,schemeIs:()=>Ile});function j5(e){return{insightKey:ce.NETWORK_DEPENDENCY_TREE,strings:Bt,title:Qh(Bt.title),description:Qh(Bt.description),docs:"https://developer.chrome.com/docs/performance/insights/network-dependency-tree",category:qe.LCP,state:e.fail?"fail":"pass",...e}}function H5(e,t){if(e.args.data.requestId===t.navigationId)return!0;if(e.args.data.isLinkPreload)return!1;let n=e.args.data.resourceType==="Document"&&e.args.data.frame!==t.frameId;if(yle.has(e.args.data.resourceType)||n||e.args.data.mimeType.startsWith("image/")||!(e.args.data.initiator?.url||re.getStackTraceTopCallFrameInEventPayload(e)?.url))return!1;let a=_n.isSyntheticNetworkRequestEventRenderBlocking(
|
|
945
|
+
e);return _n.isSyntheticNetworkRequestHighPriority(e)||a}function VE(e){if(e.children.length===0)return e;let t=e.children[0];for(let n of e.children){let r=VE(n);r.timeFromInitialRequest>t.timeFromInitialRequest&&(t=r)}return t}function q5(e){for(let t of e)t.children.length>0&&(t.children.sort((n,r)=>{let a=VE(n);return VE(r).timeFromInitialRequest-a.timeFromInitialRequest}),q5(t.children))}function wle(e){let t=[],n=new Map,r=I.Micro(0),a=!1,o=[];function s(u){if(u.length===0)return;u.length>=2&&(a=!0);let m=u[0],p=u[u.length-1],f=I.Micro(p.ts+p.dur-m.ts);f>r&&(r=f,o=u);let h=t;for(let y=0;y<u.length;++y){let b=u[y],w=h.find(C=>C.request===b);if(!w){let C=I.Micro(b.ts+b.dur-m.ts);w={request:b,timeFromInitialRequest:C,children:[],relatedRequests:new Set},h.push(w)}u.forEach(C=>w?.relatedRequests.add(C)),n.set(b,y<2?[]:[Qh(Bt.warningDescription)]),h=w.children}}i(s,"addChain");let c=new Set;function l(u){return u.getDependents().filter(m=>m.getDependencies().every(p=>c.has(p)))}if(i(l,
|
|
945
946
|
"getNextNodes"),e.lantern?.graph.traverse((u,m)=>{if(c.add(u),u.type!=="network"||!H5(u.rawRequest,e))return;let f=m.filter(h=>h.type==="network").reverse().map(h=>h.rawRequest);f.some(h=>!H5(h,e))||u.isNonNetworkProtocol||s(f)},l),o.length>0){let u=t;for(let m of o){let p=u.find(f=>f.request===m);p?(p.isLongest=!0,u=p.children):console.error("Some request in the longest chain is not found")}}return q5(t),{rootNodes:t,maxTime:r,fail:a,relatedEvents:n}}function mc(e){return new Qu(e).securityOrigin()}function Ele(e){if(!e)return null;let t=e.indexOf("<"),n=e.indexOf(">");if(t!==0||n===-1||n<=t)return null;let r=e.substring(t+1,n).trim();if(!r)return null;let a=e.substring(n+1).trim();if(a){let o=a.split(";");for(let s of o){let c=s.trim();if(!c)continue;let l=c.indexOf("=");if(l===-1)continue;let u=c.substring(0,l).trim().toLowerCase(),m=c.substring(l+1).trim();if(m.startsWith('"')&&m.endsWith('"')&&(m=m.substring(1,m.length-1)),u==="rel"&&m==="preconnect")return{url:r,headerText:e}}}return null}
|
|
946
947
|
function z5(e){if(!e)return[];let t=[];for(let n=0;n<e.length;){let r=e.indexOf(">",n);if(r===-1)break;let a=e.indexOf(",",r),o=a!==-1?a:e.length,s=e.substring(n,o);if(o+1<=n){console.warn("unexpected infinite loop, bailing");break}n=o+1;let c=Ele(s.trim());c&&t.push(c)}return t}function G5(e,t,n,r){let a=[];for(let s of e.NetworkRequests.linkPreconnectEvents)a.push({node_id:s.args.data.node_id,frame:s.args.data.frame,url:s.args.data.url,unused:!n.some(c=>mc(s.args.data.url)===mc(c.args.data.url)),crossorigin:r.some(c=>c.origin===mc(s.args.data.url)),source:"DOM"});let o=e.NetworkRequests.byId.get(t.navigationId);return o?.args.data.responseHeaders?.forEach(s=>{s.name.toLowerCase()==="link"&&z5(s.value)?.forEach(l=>a.push({url:l.url,headerText:l.headerText,request:o,unused:!n.some(u=>mc(l.url)===mc(u.args.data.url)),crossorigin:r.some(u=>u.origin===mc(l.url)),source:"ResponseHeader"}))}),a}function Tle(e){return!!e.args.data.timing&&e.args.data.timing.connectEnd>=0&&e.args.data.timing.
|
|
947
948
|
connectStart>=0}function xle(e){let{timing:t}=e.args.data;return t?t.dnsStart===-1&&t.dnsEnd===-1&&t.connectStart===-1&&t.connectEnd===-1||t.dnsEnd-t.dnsStart===0&&t.connectEnd-t.connectStart===0:!1}function Sle(e,t){let n=Math.max(0,e.args.data.syntheticData.sendStartTime-t.args.data.syntheticData.finishTime);return j.microToMilli(n)<vle}function Cle(e,t,n,r){let a=new Map;return n.forEach(o=>{if(!Tle(o)||e.NetworkRequests.eventToInitiator.get(o)===t)return;let s=new URL(o.args.data.url);if(s.origin==="null")return;let c=new URL(t.args.data.url).origin;if(s.origin===c||!r.has(o.args.data.url)||xle(o)||!Sle(o,t))return;me.getWithDefault(a,s.origin,()=>[]).push(o)}),a}function W5(e,t,n){if(!t.lantern)return[];let r=e.NetworkRequests.byId.get(t.navigationId);if(!r)return[];let{rtt:a,additionalRttByOrigin:o}=t.lantern.simulator.getOptions(),s=t.lantern.metrics.largestContentfulPaint.pessimisticGraph,c=t.lantern.metrics.firstContentfulPaint.pessimisticGraph,l=new Set;s.traverse(y=>{y.type===
|
|
@@ -956,7 +957,7 @@ toLowerCase()}static isValidUrlString(t){return new e(t).isValid}static urlWitho
|
|
|
956
957
|
return n=r.indexOf("?"),n<0?r:r.substr(0,n)}static completeURL(t,n){if(n.startsWith("data:")||n.startsWith("blob:")||n.startsWith("javascript:")||n.startsWith("mailto:"))return n;let r=n.trim(),a=this.fromString(r);if(a?.scheme){let f=a.securityOrigin(),h=$E(a.path),y=a.queryParams&&`?${a.queryParams}`,b=a.fragment&&`#${a.fragment}`;return f+h+y+b}let o=this.fromString(t);if(!o)return null;if(o.isDataURL())return n;if(n.length>1&&n.charAt(0)==="/"&&n.charAt(1)==="/")return o.scheme+":"+n;let s=o.securityOrigin(),c=o.path,l=o.queryParams?"?"+o.queryParams:"";if(!n.length)return s+c+l;if(n.charAt(0)==="#")return s+c+l+n;if(n.charAt(0)==="?")return s+c+n;let u=n.match(/^[^#?]*/);if(!u||!n.length)throw new Error("Invalid href");let m=u[0],p=n.substring(m.length);return m.charAt(0)!=="/"&&(m=o.folderPathComponents+"/"+m),s+$E(m)+p}static splitLineAndColumn(t){let n=t.match(e.urlRegex()),r="",a=t;n&&(r=n[1],a=t.substring(n[1].length));let s=/(?::(\d+))?(?::(\d+))?$/.exec(a),c,l;if(console.assert(
|
|
957
958
|
!!s),!s)return{url:t,lineNumber:0,columnNumber:0};typeof s[1]=="string"&&(c=parseInt(s[1],10),c=isNaN(c)?void 0:c-1),typeof s[2]=="string"&&(l=parseInt(s[2],10),l=isNaN(l)?void 0:l-1);let u=r+a.substring(0,a.length-s[0].length);if(s[1]===void 0&&s[2]===void 0){let p=/wasm-function\[\d+\]:0x([a-z0-9]+)$/g.exec(a);p&&typeof p[1]=="string"&&(u=e.removeWasmFunctionInfoFromURL(u),l=parseInt(p[1],16),l=isNaN(l)?void 0:l)}return{url:u,lineNumber:c,columnNumber:l}}static removeWasmFunctionInfoFromURL(t){let n=/:wasm-function\[\d+\]/,r=t.search(n);return r===-1?t:e.substring(t,0,r)}static beginsWithWindowsDriveLetter(t){return/^[A-Za-z]:/.test(t)}static beginsWithScheme(t){return/^[A-Za-z][A-Za-z0-9+.-]*:/.test(t)}static isRelativeURL(t){return!this.beginsWithScheme(t)||this.beginsWithWindowsDriveLetter(t)}isAboutBlank(){return this.url==="about:blank"}isDataURL(){return this.scheme==="data"}extractDataUrlMimeType(){let t=/^data:((?<type>\w+)\/(?<subtype>\w+))?(;base64)?,/,n=this.url.match(t);return{
|
|
958
959
|
type:n?.groups?.type,subtype:n?.groups?.subtype}}isBlobURL(){return this.url.startsWith("blob:")}lastPathComponentWithFragment(){return this.lastPathComponent+(this.fragment?"#"+this.fragment:"")}domain(){return this.isDataURL()?"data:":this.host+(this.port?":"+this.port:"")}securityOrigin(){return this.isDataURL()?"data:":(this.isBlobURL()?this.blobInnerScheme:this.scheme)+"://"+this.domain()}urlWithoutScheme(){return this.scheme&&this.url.startsWith(this.scheme+"://")?this.url.substring(this.scheme.length+3):this.url}static urlRegexInstance=null}});var ZE={};x(ZE,{UIStrings:()=>qa,createOverlayForRequest:()=>V5,createOverlays:()=>Fle,generateInsight:()=>Lle,i18nString:()=>JE,isRenderBlockingInsight:()=>Dle});function Dle(e){return e.insightKey==="RenderBlocking"}function Nle(e){let t=new Map;for(let[n,r]of e)n.type==="network"&&t.set(n.request.requestId,{node:n,nodeTiming:r});return t}function Mle(e,t){let n=t.simulator,r=t.metrics.firstContentfulPaint.optimisticGraph,{nodeTimings:a}=t.simulator.simulate(r),o=new Map(a),s=0,c=r.cloneWithRelationships(f=>!e.has(f.id));if(c.type!=="network")throw new Error("minimalFCPGraph not a NetworkNode");let l=Math.max(...Array.from(Array.from(o).map(f=>f[1].endTime))),u=c.request.transferSize,m=u||0;c.request.transferSize=m+s;let p=n.simulate(c).timeInMs;return c.request.transferSize=u,Math.round(Math.max(l-p,0))}function Ole(e,t){return e.LargestImagePaint.lcpRequestByNavigationId.has(t.navigationId)}function Ple(e,t,n){if(!t.lantern)return;let r=Nle(t.lantern.metrics.firstContentfulPaint.optimisticEstimate.
|
|
959
|
-
nodeTimings),a={FCP:0,LCP:0},o=new Map,s=new Set;for(let c of n){let l=r.get(c.args.data.requestId);if(!l)continue;let{node:u,nodeTiming:m}=l;u.traverse(f=>s.add(f.id));let p=Math.round(m.duration);p<Ale||o.set(u.id,p)}return o.size&&(a.FCP=Mle(s,t.lantern),Ole(e,t)||(a.LCP=a.FCP)),{metricSavings:a,requestIdToWastedMs:o}}function XE(e){return{insightKey:ce.RENDER_BLOCKING,strings:qa,title:JE(qa.title),description:JE(qa.description),docs:"https://developer.chrome.com/docs/performance/insights/render-blocking",category:qe.LCP,state:e.renderBlockingRequests.length>0?"fail":"pass",...e}}function Lle(e,t){if(!t.navigation)return XE({renderBlockingRequests:[]});let n=e.PageLoadMetrics.metricScoresByFrameId.get(t.frameId)?.get(t.navigationId)?.get(dt.PageLoadMetrics.MetricName.FP)?.event?.ts;if(!n)return XE({renderBlockingRequests:[],warnings:[Bn.NO_FP]});let r=[];for(let o of e.NetworkRequests.byTime){if(o.args.data.frame!==t.frameId||!
|
|
960
|
+
nodeTimings),a={FCP:0,LCP:0},o=new Map,s=new Set;for(let c of n){let l=r.get(c.args.data.requestId);if(!l)continue;let{node:u,nodeTiming:m}=l;u.traverse(f=>s.add(f.id));let p=Math.round(m.duration);p<Ale||o.set(u.id,p)}return o.size&&(a.FCP=Mle(s,t.lantern),Ole(e,t)||(a.LCP=a.FCP)),{metricSavings:a,requestIdToWastedMs:o}}function XE(e){return{insightKey:ce.RENDER_BLOCKING,strings:qa,title:JE(qa.title),description:JE(qa.description),docs:"https://developer.chrome.com/docs/performance/insights/render-blocking",category:qe.LCP,state:e.renderBlockingRequests.length>0?"fail":"pass",...e}}function Lle(e,t){if(!t.navigation)return XE({renderBlockingRequests:[]});let n=e.PageLoadMetrics.metricScoresByFrameId.get(t.frameId)?.get(t.navigationId)?.get(dt.PageLoadMetrics.MetricName.FP)?.event?.ts;if(!n)return XE({renderBlockingRequests:[],warnings:[Bn.NO_FP]});let r=[];for(let o of e.NetworkRequests.byTime){if(o.args.data.frame!==t.frameId||!_n.isSyntheticNetworkRequestEventRenderBlocking(o)||o.args.
|
|
960
961
|
data.syntheticData.finishTime>n)continue;if(o.args.data.renderBlocking==="in_body_parser_blocking"){let c=o.args.data.priority,u=o.args.data.resourceType==="Script"&&c==="High";if(c!=="VeryHigh"&&!u)continue}re.getNavigationForTraceEvent(o,t.frameId,e.Meta.navigationsByFrameId)===t.navigation&&r.push(o)}let a=Ple(e,t,r);return r=r.sort((o,s)=>s.dur-o.dur),XE({relatedEvents:r,renderBlockingRequests:r,...a})}function V5(e){return{type:"ENTRY_OUTLINE",entry:e,outlineReason:"ERROR"}}function Fle(e){return e.renderBlockingRequests.map(t=>V5(t))}var qa,JE,Ale,QE=g(()=>{d();tn();Se();$t();qa={title:"Render blocking requests",description:"Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://developer.chrome.com/docs/performance/insights/render-blocking) can move these network requests out of the critical path.",renderBlockingRequest:"Request",duration:"Duration",noRenderBlocking:"No render blocking requests for this navigation"},JE=i((e,t)=>({i18nId:e,
|
|
961
962
|
values:t}),"i18nString");i(Dle,"isRenderBlockingInsight");Ale=50;i(Nle,"getNodesAndTimingByRequestId");i(Mle,"estimateSavingsWithGraphs");i(Ole,"hasImageLCP");i(Ple,"computeSavings");i(XE,"finalize");i(Lle,"generateInsight");i(V5,"createOverlayForRequest");i(Fle,"createOverlays")});var tT={};x(tT,{UIStrings:()=>za,createOverlays:()=>zle,generateInsight:()=>qle,i18nString:()=>eT,isSlowCSSSelectorInsight:()=>Hle});function Ble(e,t){let n=new Map;for(let[r,a]of e.dataForRecalcStyleEvent)if(r.args.beginData?.frame===t.frameId&&j.eventIsInBounds(r,t.bounds))for(let o of a.timings){let s=o[zt.Selector]+"_"+o[zt.StyleSheetId],c=n.get(s);c!==void 0?(c[zt.Elapsed]+=o[zt.Elapsed],c[zt.FastRejectCount]+=o[zt.FastRejectCount],c[zt.MatchAttempts]+=o[zt.MatchAttempts],c[zt.MatchCount]+=o[zt.MatchCount]):n.set(s,{...o})}return[...n.values()]}function jle(e){return{insightKey:ce.SLOW_CSS_SELECTOR,strings:za,title:eT(za.title),description:eT(za.description),docs:"https://developer.chrome.com/docs/performance/insights/slow-css-selector",category:qe.ALL,state:e.topSelectorElapsedMs&&e.topSelectorMatchAttempts?"informative":"pass",...e}}function Hle(e){return e.insightKey===ce.SLOW_CSS_SELECTOR}function qle(e,t){let n=e.SelectorStats;if(!n)throw new Error("no selector stats data");let r=Ble(
|
|
962
963
|
n,t),a=0,o=0,s=0;r.map(u=>{a+=u[zt.Elapsed],o+=u[zt.MatchAttempts],s+=u[zt.MatchCount]});let c=null,l=null;return r.length>0&&(c=r.reduce((u,m)=>u[zt.Elapsed]>m[zt.Elapsed]?u:m),c&&c[zt.Elapsed]<Ule&&(c=null),l=r.reduce((u,m)=>u[zt.MatchAttempts]>m[zt.MatchAttempts]?u:m)),jle({relatedEvents:[],totalElapsedMs:I.Milli(a/1e3),totalMatchAttempts:o,totalMatchCount:s,topSelectorElapsedMs:c,topSelectorMatchAttempts:l})}function zle(e){return[]}var za,eT,Ule,nT=g(()=>{d();Se();kf();ie();$t();za={title:"CSS Selector costs",description:"If Recalculate Style costs remain high, selector optimization can reduce them. [Optimize the selectors](https://developer.chrome.com/docs/performance/insights/slow-css-selector) with both high elapsed time and high slow-path %. Simpler selectors, fewer selectors, a smaller DOM, and a shallower DOM will all reduce matching costs.",matchAttempts:"Match attempts",matchCount:"Match count",elapsed:"Elapsed time",topSelectors:"Top selectors",total:"Total",enableSelectorData:"\
|
|
@@ -965,9 +966,9 @@ TRY_OUTLINE",entry:n,outlineReason:"INFO"};t.push(r)}return t}function Yle(e){le
|
|
|
965
966
|
1e3,c=ia.clamp(s,0,300);return iT({mobileOptimized:!1,viewportEvent:n,longPointerInteractions:o,metricSavings:{INP:c}})}return iT({mobileOptimized:!0,viewportEvent:n})}function Jle(e){return e.longPointerInteractions?e.longPointerInteractions.map(t=>{let n=Math.min(t.inputDelay,3e5),r=j.traceWindowFromMicroSeconds(I.Micro(t.ts),I.Micro(t.ts+n));return{type:"TIMESPAN_BREAKDOWN",entry:t,sections:[{bounds:r,label:tg(ma.mobileTapDelayLabel),showDuration:!0}],renderLocation:"ABOVE_EVENT"}}):[]}var ma,tg,cT=g(()=>{d();wt();tn();Se();ie();$t();ma={title:"Optimize viewport for mobile",description:"Tap interactions may be [delayed by up to 300 ms](https://developer.chrome.com/docs/performance/insights/viewport) if the viewport is not optimized for mobile.",mobileTapDelayLabel:"Mobile tap delay"},tg=i((e,t)=>({i18nId:e,values:t}),"i18nString");i(iT,"finalize");i(Kle,"isViewportInsight");i(Xle,"generateInsight");i(Jle,"createOverlays")});var ed={};x(ed,{CLSCulprits:()=>gE,Cache:()=>Ku,DOMSize:()=>EE,DocumentLatency:()=>bE,DuplicatedJavaScript:()=>SE,FontDisplay:()=>RE,ForcedReflow:()=>AE,INPBreakdown:()=>OE,ImageDelivery:()=>Yh,LCPBreakdown:()=>LE,LCPDiscovery:()=>UE,LegacyJavaScript:()=>zE,ModernHTTP:()=>Zu,NetworkDependencyTree:()=>YE,RenderBlocking:()=>ZE,SlowCSSSelector:()=>tT,ThirdParties:()=>aT,Viewport:()=>sT});var Y5=g(()=>{d();Wh();yE();wE();TE();CE();_E();NE();Kh();PE();FE();BE();GE();Zh();KE();QE();nT();oT();cT()});var td={};x(td,{Cache:()=>Ku,Common:()=>Xn,Models:()=>ed,ModernHTTP:()=>Zu,Statistics:()=>pE,Types:()=>fE});var lT=g(()=>{d();Wh();ca();Y5();Zh();qh();$t()});var Ga={};x(Ga,{createGraph:()=>mT,createNetworkRequests:()=>dT,createProcessedNavigation:()=>uT});function uT(e,t,n){let r=e.PageLoadMetrics.metricScoresByFrameId.get(t);if(!r)throw new ct.LanternError("missing metric scores for frame");let a=r.get(n);if(!a)throw new ct.LanternError("missing metric scores for specified navigation");let o=i(c=>{let l=a.get(c);if(l?.event)return l.event.ts},"getTimestampOrUndefined");return{timestamps:{firstContentfulPaint:i(c=>{let l=a.get(c);if(!l?.event)throw new ct.LanternError(`missing metric: ${c}`);return l.event.ts},"getTimestamp")(dt.PageLoadMetrics.MetricName.FCP),largestContentfulPaint:o(dt.PageLoadMetrics.MetricName.LCP)}}}function K5(e){return typeof e=="string"&&(e=new URL(e)),{scheme:e.protocol.split(":")[0],host:e.hostname,securityOrigin:e.origin}}function Zle(e){let t=new Map,n=["ServiceWorker thread","DedicatedWorker thread"];for(let r of e.traceEvents){if(r.name!=="thread_name"||!r.args.name||!n.includes(r.args.name))continue;let a=t.
|
|
966
967
|
get(r.pid);a?a.push(r.tid):t.set(r.pid,[r.tid])}return t}function Qle(e,t,n){if(n.args.data.hasResponse&&n.args.data.connectionId===void 0)throw new ct.LanternError("Trace is too old");let r;try{r=new URL(n.args.data.url)}catch{return}let a=n.args.data.timing?{workerFetchStart:-1,workerRespondWithSettled:-1,receiveHeadersStart:-1,...n.args.data.timing}:void 0,o=a?a.requestTime*1e3:n.args.data.syntheticData.downloadStart/1e3,s=!1;t.get(n.pid)?.includes(n.tid)&&(s=!0),e.Workers.workerIdByThread.has(n.tid)&&(s=!0);let l=n.args.data.initiator??{type:"other"};if(n.args.data.stackTrace){let p=n.args.data.stackTrace.map(f=>({scriptId:String(f.scriptId),url:f.url,lineNumber:f.lineNumber-1,columnNumber:f.columnNumber-1,functionName:f.functionName}));l.stack={callFrames:p}}let u=n.args.data.resourceType;n.args.data.initiator?.fetchType==="xmlhttprequest"?u="XHR":n.args.data.initiator?.fetchType==="fetch"&&(u="Fetch");let m=n.args.data.decodedBodyLength??0;if(r.protocol==="data:"&&m===0){let p=r.
|
|
967
968
|
pathname.indexOf(",");r.pathname.substring(0,p).includes(";base64")?m=atob(r.pathname.substring(p+1)).length:m=r.pathname.length-p-1}return{rawRequest:n,requestId:n.args.data.requestId,connectionId:n.args.data.connectionId??0,connectionReused:n.args.data.connectionReused??!1,url:n.args.data.url,protocol:n.args.data.protocol,parsedURL:K5(r),documentURL:n.args.data.requestingFrameUrl,rendererStartTime:n.ts/1e3,networkRequestTime:o,responseHeadersEndTime:n.args.data.syntheticData.downloadStart/1e3,networkEndTime:n.args.data.syntheticData.finishTime/1e3,transferSize:n.args.data.encodedDataLength,resourceSize:m,fromDiskCache:n.args.data.syntheticData.isDiskCached,fromMemoryCache:n.args.data.syntheticData.isMemoryCached,isLinkPreload:n.args.data.isLinkPreload,finished:n.args.data.finished,failed:n.args.data.failed,statusCode:n.args.data.statusCode,initiator:l,timing:a,resourceType:u,mimeType:n.args.data.mimeType,priority:n.args.data.priority,frameId:n.args.data.frame,fromWorker:s,serverResponseTime:n.
|
|
968
|
-
args.data.lrServerResponseTime??void 0,redirects:void 0,redirectSource:void 0,redirectDestination:void 0,initiatorRequest:void 0}}function eue(e,t){if(e.redirectSource)return e.redirectSource;let n=
|
|
969
|
+
args.data.lrServerResponseTime??void 0,redirects:void 0,redirectSource:void 0,redirectDestination:void 0,initiatorRequest:void 0}}function eue(e,t){if(e.redirectSource)return e.redirectSource;let n=hn.PageDependencyGraph.getNetworkInitiators(e)[0],r=t.get(n)||[];if(r=r.filter(a=>a.responseHeadersEndTime<=e.rendererStartTime&&a.finished&&!a.failed),r.length>1){let a=r.filter(o=>o.resourceType!==iu.NetworkRequestTypes.Other);a.length&&(r=a)}if(r.length>1){let a=r.filter(o=>o.frameId===e.frameId);a.length&&(r=a)}if(r.length>1&&e.initiator.type==="parser"){let a=r.filter(o=>o.resourceType===iu.NetworkRequestTypes.Document);a.length&&(r=a)}if(r.length>1){let a=r.filter(o=>o.isLinkPreload);if(a.length){let o=r.filter(c=>!c.isLinkPreload),s=o.every(c=>c.fromDiskCache||c.fromMemoryCache);o.length&&s&&(r=a)}}return r.length===1?r[0]:null}function tue(e){let t=new Map;for(let n of e){let r=t.get(n.url)||[];r.push(n),t.set(n.url,r)}for(let n of e){let r=eue(n,t);r&&(n.initiatorRequest=r)}}function dT(e,t,n=0,r=Number.
|
|
969
970
|
POSITIVE_INFINITY){let a=Zle(e),o=[];for(let c of t.NetworkRequests.byTime)if(c.ts>=n&&c.ts<r){let l=Qle(t,a,c);l&&o.push(l)}let s=[];for(let c of[...o]){if(!c.rawRequest)continue;let l=c.rawRequest.args.data.redirects;if(!l.length){s.push(c);continue}let u=[];for(let m of l){let p=structuredClone(c);p.networkRequestTime=m.ts/1e3,p.rendererStartTime=p.networkRequestTime,p.networkEndTime=(m.ts+m.dur)/1e3,p.responseHeadersEndTime=p.networkEndTime,p.timing={requestTime:p.networkRequestTime/1e3,receiveHeadersStart:p.responseHeadersEndTime,receiveHeadersEnd:p.responseHeadersEndTime,proxyStart:-1,proxyEnd:-1,dnsStart:-1,dnsEnd:-1,connectStart:-1,connectEnd:-1,sslStart:-1,sslEnd:-1,sendStart:-1,sendEnd:-1,workerStart:-1,workerReady:-1,workerFetchStart:-1,workerRespondWithSettled:-1,pushStart:-1,pushEnd:-1},p.url=m.url,p.parsedURL=K5(m.url),p.statusCode=302,p.resourceType=void 0,p.transferSize=400,u.push(p),s.push(p)}u.push(c),s.push(c);for(let m=0;m<u.length;m++){let p=u[m];m>0&&(p.redirectSource=
|
|
970
|
-
u[m-1],p.redirects=u.slice(0,m)),m!==u.length-1&&(p.redirectDestination=u[m+1])}for(let m=1;m<u.length;m++)u[m].requestId=`${u[m-1].requestId}:redirect`}return tue(s),s}function nue(e,t){let n=t.Meta,r=n.mainFrameNavigations.length?new Set(n.mainFrameNavigations.map(o=>o.pid)):n.topLevelRendererIds,a=new Map;for(let o of r){let s=n.threadsInProcess.get(o)??[],c=!1;for(let[l,u]of s)if(u.args.name==="CrRendererMain"){a.set(o,l),c=!0;break}if(!c){for(let[l,u]of s)if(u.args.name==="CrBrowserMain"){a.set(o,l),c=!0;break}}}return e.traceEvents.filter(o=>a.get(o.pid)===o.tid)}function mT(e,t,n,r){let a=nue(t,n);if(!r){r={requestedUrl:e[0].url,mainDocumentUrl:""};let o=e[0];for(;o.redirectDestination;)o=o.redirectDestination;r.mainDocumentUrl=o.url}return
|
|
971
|
+
u[m-1],p.redirects=u.slice(0,m)),m!==u.length-1&&(p.redirectDestination=u[m+1])}for(let m=1;m<u.length;m++)u[m].requestId=`${u[m-1].requestId}:redirect`}return tue(s),s}function nue(e,t){let n=t.Meta,r=n.mainFrameNavigations.length?new Set(n.mainFrameNavigations.map(o=>o.pid)):n.topLevelRendererIds,a=new Map;for(let o of r){let s=n.threadsInProcess.get(o)??[],c=!1;for(let[l,u]of s)if(u.args.name==="CrRendererMain"){a.set(o,l),c=!0;break}if(!c){for(let[l,u]of s)if(u.args.name==="CrBrowserMain"){a.set(o,l),c=!0;break}}}return e.traceEvents.filter(o=>a.get(o.pid)===o.tid)}function mT(e,t,n,r){let a=nue(t,n);if(!r){r={requestedUrl:e[0].url,mainDocumentUrl:""};let o=e[0];for(;o.redirectDestination;)o=o.redirectDestination;r.mainDocumentUrl=o.url}return hn.PageDependencyGraph.createGraph(a,e,r)}var pT=g(()=>{d();tn();su();i(uT,"createProcessedNavigation");i(K5,"createParsedUrl");i(Zle,"findWorkerThreads");i(Qle,"createLanternRequest");i(eue,"chooseInitiatorRequest");i(tue,"linkInitiators");i(
|
|
971
972
|
dT,"createNetworkRequests");i(nue,"collectMainThreadEvents");i(mT,"createGraph")});var ng={};x(ng,{TraceParseProgressEvent:()=>Qi,TraceProcessor:()=>nd,sortHandlers:()=>J5});function X5(e,t){return t===.8?e*(.8-.2)+.2:e*t}function J5(e){let t=new Map,n=new Set,r=i(a=>{if(t.has(a))return;if(n.has(a)){let c="";for(let l of n)(c||l===a)&&(c+=`${l}->`);throw c+=a,new Error(`Found dependency cycle in trace event handlers: ${c}`)}n.add(a);let o=e[a];if(!o)return;let s=o.deps?.();s&&s.forEach(r),t.set(a,o)},"visitHandler");for(let a of Object.keys(e))r(a);return t}var fT,Qi,nd,hT=g(()=>{d();tn();Se();lT();su();pT();ie();Qi=class e extends Event{static{i(this,"TraceParseProgressEvent")}data;static eventName="traceparseprogress";constructor(t,n={bubbles:!0}){super(e.eventName,n),this.data=t}};i(X5,"calculateProgress");nd=class extends EventTarget{static{i(this,"TraceProcessor")}#e;#t="IDLE";#o=oa.defaults();#n=null;#a=null;static createWithAllHandlers(){return new fT(dt,oa.defaults())}static getInsightRunners(){return{...ed}}constructor(t,n){super(),this.#r(t),this.#e={Meta:dt.
|
|
972
973
|
Meta,...t},n&&(this.#o=n),this.#c()}#c(){for(let t of Object.values(this.#e))"handleUserConfig"in t&&t.handleUserConfig&&t.handleUserConfig(this.#o)}#r(t){if(Object.keys(t).length===Object.keys(dt).length)return;let n=new Set;for(let[a,o]of Object.entries(t)){n.add(a);let s="deps"in o?o.deps():[];for(let c of s)n.add(c)}let r=new Set(Object.keys(t));n.delete("Meta");for(let a of n)if(!r.has(a))throw new Error(`Required handler ${a} not provided.`)}reset(){if(this.#t==="PARSING")throw new Error("Trace processor can't reset while parsing.");let t=Object.values(this.#e);for(let n of t)n.reset();this.#n=null,this.#a=null,this.#t="IDLE"}async parse(t,n){if(this.#t!=="IDLE")throw new Error(`Trace processor can't start parsing when not idle. Current state: ${this.#t}`);typeof n.isCPUProfile>"u"&&n.metadata&&(n.isCPUProfile=n.metadata.dataOrigin===ji.DataOrigin.CPU_PROFILE),n.logger?.start("total");try{this.#t="PARSING",n.logger?.start("parse"),await this.#i(t,n),n.logger?.end("parse"),this.#n&&
|
|
973
974
|
!n.isCPUProfile&&(n.logger?.start("insights"),this.#u(this.#n,t,n),n.logger?.end("insights")),this.#t="FINISHED_PARSING"}catch(r){throw this.#t="ERRORED_WHILE_PARSING",r}finally{n.logger?.end("total")}}async#i(t,n){let a=[...J5(this.#e).entries()];for(let[,c]of a)c.reset();n.logger?.start("parse:handleEvent");for(let c=0;c<t.length;++c){if(c%5e4===0&&c){let u=X5(c/t.length,.2);this.dispatchEvent(new Qi({percent:u})),await new Promise(m=>setTimeout(m,0))}let l=t[c];for(let u=0;u<a.length;++u){let[,m]=a[u];m.handleEvent(l)}}n.logger?.end("parse:handleEvent");let o={...n,allTraceEvents:t};for(let c=0;c<a.length;c++){let[l,u]=a[c];u.finalize&&(n.logger?.start(`parse:${l}:finalize`),await new Promise(p=>setTimeout(p,0)),await u.finalize(o),n.logger?.end(`parse:${l}:finalize`));let m=X5(c/a.length,.8);this.dispatchEvent(new Qi({percent:m}))}n.logger?.start("parse:handler.data()");let s={};for(let[c,l]of Object.entries(this.#e))Object.assign(s,{[c]:l.data()});n.logger?.end("parse:handler.data\
|
|
@@ -1050,7 +1051,7 @@ badTraceRecording,lhrRuntimeError:!0},NO_FMP:{code:"NO_FMP",message:it.badTraceR
|
|
|
1050
1051
|
lhrRuntimeError:!0},PAGE_HUNG:{code:"PAGE_HUNG",message:it.pageLoadFailedHung,lhrRuntimeError:!0},NOT_HTML:{code:"NOT_HTML",message:it.notHtml,lhrRuntimeError:!0},TRACING_ALREADY_STARTED:{code:"TRACING_ALREADY_STARTED",message:it.internalChromeError,pattern:/Tracing.*started/,lhrRuntimeError:!0},PARSING_PROBLEM:{code:"PARSING_PROBLEM",message:it.internalChromeError,pattern:/Parsing problem/,lhrRuntimeError:!0},READ_FAILED:{code:"READ_FAILED",message:it.internalChromeError,pattern:/Read failed/,lhrRuntimeError:!0},INVALID_URL:{code:"INVALID_URL",message:it.urlInvalid},PROTOCOL_TIMEOUT:{code:"PROTOCOL_TIMEOUT",message:it.protocolTimeout,lhrRuntimeError:!0},DNS_FAILURE:{code:"DNS_FAILURE",message:it.dnsFailure,lhrRuntimeError:!0},CRI_TIMEOUT:{code:"CRI_TIMEOUT",message:it.criTimeout,lhrRuntimeError:!0},MISSING_REQUIRED_ARTIFACT:{code:"MISSING_REQUIRED_ARTIFACT",message:it.missingRequiredArtifact},ERRORED_REQUIRED_ARTIFACT:{code:"ERRORED_REQUIRED_ARTIFACT",message:it.erroredRequiredArtifact},
|
|
1051
1052
|
TARGET_CRASHED:{code:"TARGET_CRASHED",message:it.targetCrashed,lhrRuntimeError:!0}};z.errors=fue;z.NO_ERROR="NO_ERROR";z.UNKNOWN_ERROR="UNKNOWN_ERROR"});function bue(e){return!e||!e.startsWith("chrome://")?e:(e.endsWith("/")&&(e=e.replace(/\/$/,"")),e.replace(/^chrome:\/\/chrome\//,"chrome://"))}var hue,gue,yue,vue,sg,Ce,un=g(()=>{"use strict";d();T4();Zr();rn();hue=["https:","http:","chrome:","chrome-extension:"],gue=["data","https","wss","blob","chrome","chrome-extension","about","filesystem"],yue=["localhost","127.0.0.1"],vue=["blob","data","intent","file","filesystem","chrome-extension"];i(bue,"rewriteChromeInternalUrl");sg=class e{static{i(this,"UrlUtils")}static isValid(t){try{return new URL(t),!0}catch{return!1}}static hostsMatch(t,n){try{return new URL(t).host===new URL(n).host}catch{return!1}}static originsMatch(t,n){try{return new URL(t).origin===new URL(n).origin}catch{return!1}}static getOrigin(t){try{let n=new URL(t);return n.protocol==="chrome-extension:"?ot.getChromeExtensionOrigin(t):n.host&&n.origin||null}catch{return null}}static getRootDomain(t){let n=ot.createOrReturnURL(t);return E4(n.href)||n.hostname}static rootDomainsMatch(t,n){
|
|
1052
1053
|
let r,a;try{r=ot.createOrReturnURL(t),a=ot.createOrReturnURL(n)}catch{return!1}if(!r.hostname||!a.hostname)return!1;let o=e.getRootDomain(r),s=e.getRootDomain(a);return o===s}static getURLDisplayName(t,n){return ot.getURLDisplayName(new URL(t),n)}static elideDataURI(t){try{return new URL(t).protocol==="data:"?ot.truncate(t,100):t}catch{return t}}static equalWithExcludedFragments(t,n){[t,n]=[t,n].map(bue);try{let r=new URL(t);r.hash="";let a=new URL(n);return a.hash="",r.href===a.href}catch{return!1}}static isProtocolAllowed(t){try{let n=new URL(t);return hue.includes(n.protocol)}catch{return!1}}static isLikeLocalhost(t){return yue.includes(t)||t.endsWith(".localhost")}static isSecureScheme(t){return gue.includes(t)}static isNonNetworkProtocol(t){let n=t.includes(":")?t.slice(0,t.indexOf(":")):t;return vue.includes(n)}static guessMimeType(t){let n;try{n=new URL(t)}catch{return}if(n.protocol==="data:"){let o=n.pathname.match(/^(image\/(png|jpeg|svg\+xml|webp|gif|avif))[;,]/);return o?o[1]:
|
|
1053
|
-
void 0}let r=n.pathname.toLowerCase().match(/\.(png|jpeg|jpg|svg|webp|gif|avif)$/);if(!r)return;let a=r[1];return a==="svg"?"image/svg+xml":a==="jpg"?"image/jpeg":`image/${a}`}static normalizeUrl(t){if(t&&this.isValid(t)&&this.isProtocolAllowed(t))return new URL(t).href;throw new z(z.errors.INVALID_URL)}};sg.INVALID_URL_DEBUG_STRING="Lighthouse was unable to determine the URL of some script executions. It's possible a Chrome extension or other eval'd code is the source.";Ce=sg});var C4,k4,R4,_4,I4,D4,A4,cg,lt,qr=g(()=>{"use strict";d();
|
|
1054
|
+
void 0}let r=n.pathname.toLowerCase().match(/\.(png|jpeg|jpg|svg|webp|gif|avif)$/);if(!r)return;let a=r[1];return a==="svg"?"image/svg+xml":a==="jpg"?"image/jpeg":`image/${a}`}static normalizeUrl(t){if(t&&this.isValid(t)&&this.isProtocolAllowed(t))return new URL(t).href;throw new z(z.errors.INVALID_URL)}};sg.INVALID_URL_DEBUG_STRING="Lighthouse was unable to determine the URL of some script executions. It's possible a Chrome extension or other eval'd code is the source.";Ce=sg});var C4,k4,R4,_4,I4,D4,A4,cg,lt,qr=g(()=>{"use strict";d();Sn();Jt();un();C4="X-TCPMs",k4="X-SSLMs",R4="X-RequestMs",_4="X-ResponseMs",I4="X-TotalMs",D4="X-TotalFetchedSize",A4="X-ProtocolIsH2",cg={XHR:"XHR",Fetch:"Fetch",EventSource:"EventSource",Script:"Script",Stylesheet:"Stylesheet",Image:"Image",Media:"Media",Font:"Font",Document:"Document",TextTrack:"TextTrack",WebSocket:"WebSocket",Other:"Other",Manifest:"Manifest",SignedExchange:"SignedExchange",Ping:"Ping",Preflight:"Preflight",CSPViolationReport:"CSPViolationReport",Prefetch:"Prefetch",FedCM:"FedCM"},lt=class e{static{i(this,"NetworkRequest")}constructor(){this.requestId="",this.connectionId=0,this.connectionReused=!1,this.url="",this.protocol="",this.isSecure=!1,this.isValid=!1,this.parsedURL={scheme:""},this.documentURL="",this.rendererStartTime=-1,this.networkRequestTime=-1,this.responseHeadersEndTime=-1,this.networkEndTime=-1,this.transferSize=0,this.responseHeadersTransferSize=0,this.resourceSize=0,this.fromDiskCache=!1,this.
|
|
1054
1055
|
fromMemoryCache=!1,this.fromPrefetchCache=!1,this.lrStatistics=void 0,this.finished=!1,this.requestMethod="",this.statusCode=-1,this.redirectSource=void 0,this.redirectDestination=void 0,this.redirects=void 0,this.failed=!1,this.localizedFailDescription="",this.initiator={type:"other"},this.timing=void 0,this.resourceType=void 0,this.mimeType="",this.priority="Low",this.initiatorRequest=void 0,this.responseHeaders=[],this.responseHeadersText="",this.fetchedViaServiceWorker=!1,this.frameId="",this.sessionId=void 0,this.sessionTargetType=void 0,this.fromWorker=!1,this.isLinkPreload=!1}hasErrorStatusCode(){return this.statusCode>=400}setInitiatorRequest(t){this.initiatorRequest=t}onRequestWillBeSent(t){this.requestId=t.requestId;let n;try{n=new URL(t.request.url)}catch{return}this.url=t.request.url,this.documentURL=t.documentURL,this.parsedURL={scheme:n.protocol.split(":")[0],host:n.hostname,securityOrigin:n.origin},this.isSecure=Ce.isSecureScheme(this.parsedURL.scheme),this.rendererStartTime=
|
|
1055
1056
|
t.timestamp*1e3,this.networkRequestTime=this.rendererStartTime,this.responseHeadersEndTime=this.rendererStartTime,this.requestMethod=t.request.method,this.initiator=t.initiator,this.resourceType=t.type&&cg[t.type],this.priority=t.request.initialPriority,this.frameId=t.frameId,this.isLinkPreload=t.initiator.type==="preload"||!!t.request.isLinkPreload,this.isValid=!0}onRequestServedFromCache(){this.fromMemoryCache=!0}onResponseReceived(t){this._onResponse(t.response,t.timestamp,t.type),this._updateProtocolForLightrider(),this.frameId=t.frameId}onResponseReceivedExtraInfo(t){this.responseHeadersText=t.headersText||""}onDataReceived(t){this.resourceSize+=t.dataLength,t.encodedDataLength!==-1&&(this.transferSize+=t.encodedDataLength)}onLoadingFinished(t){this.finished||(this.finished=!0,this.networkEndTime=t.timestamp*1e3,t.encodedDataLength>=0&&(this.transferSize=t.encodedDataLength),this._updateResponseHeadersEndTimeIfNecessary(),this._updateTransferSizeForLightrider(),this._updateTimingsForLightrider())}onLoadingFailed(t){
|
|
1056
1057
|
this.finished||(this.finished=!0,this.networkEndTime=t.timestamp*1e3,this.failed=!0,this.resourceType=t.type&&cg[t.type],this.localizedFailDescription=t.errorText,this._updateResponseHeadersEndTimeIfNecessary(),this._updateTransferSizeForLightrider(),this._updateTimingsForLightrider())}onResourceChangedPriority(t){this.priority=t.newPriority}onRedirectResponse(t){if(!t.redirectResponse)throw new Error("Missing redirectResponse data");this._onResponse(t.redirectResponse,t.timestamp,t.type),this.resourceType=void 0,this.finished=!0,this.networkEndTime=t.timestamp*1e3,this._updateResponseHeadersEndTimeIfNecessary()}setSession(t){this.sessionId=t}get isOutOfProcessIframe(){return this.sessionTargetType==="iframe"}_onResponse(t,n,r){this.url=t.url,this.connectionId=t.connectionId,this.connectionReused=t.connectionReused,t.protocol&&(this.protocol=t.protocol),this.responseTimestamp=n*1e3,this.transferSize=t.encodedDataLength,this.responseHeadersTransferSize=t.encodedDataLength,typeof t.fromDiskCache==
|
|
@@ -1058,11 +1059,11 @@ this.finished||(this.finished=!0,this.networkEndTime=t.timestamp*1e3,this.failed
|
|
|
1058
1059
|
this.responseHeadersEndTime=Math.min(this.networkEndTime,this.responseHeadersEndTime)}_updateTransferSizeForLightrider(){if(!globalThis.isLightrider)return;let t=this.responseHeaders.find(r=>r.name===D4);if(!t)return;let n=parseFloat(t.value);isNaN(n)||(this.transferSize=n)}_updateProtocolForLightrider(){globalThis.isLightrider&&this.responseHeaders.some(t=>t.name===A4)&&(this.protocol="h2")}_updateTimingsForLightrider(){if(!globalThis.isLightrider)return;let t=this.responseHeaders.find(p=>p.name===I4);if(!t)return;let n=parseInt(t.value),r=this.responseHeaders.find(p=>p.name===C4),a=this.responseHeaders.find(p=>p.name===k4),o=this.responseHeaders.find(p=>p.name===R4),s=this.responseHeaders.find(p=>p.name===_4),c=r?Math.max(0,parseInt(r.value)):0,l=a?Math.max(0,parseInt(a.value)):0,u=o?Math.max(0,parseInt(o.value)):0,m=s?Math.max(0,parseInt(s.value)):0;if(!Number.isNaN(c+u+m+n)){if(c+u+m!==n){if(Math.abs(c+u+m-n)>=25)return;n=c+u+m}l>c||(this.lrStatistics={endTimeDeltaMs:this.networkEndTime-
|
|
1059
1060
|
(this.networkRequestTime+n),TCPMs:c,requestMs:u,responseMs:m},this.serverResponseTime=m)}}static getRequestIdForBackend(t){return t.replace(/(:redirect)+$/,"")}static _headersDictToHeadersArray(t){let n=[];for(let r of Object.keys(t)){let a=t[r].split(`
|
|
1060
1061
|
`);for(let o=0;o<a.length;++o)n.push({name:r,value:a[o]})}return n}static get TYPES(){return cg}static asLanternNetworkRequest(t){let n=t.timing,r;return globalThis.isLightrider&&t.lrStatistics&&(t.protocol.startsWith("h3")?n={connectStart:0,connectEnd:t.lrStatistics.TCPMs}:(n={connectStart:0,sslStart:t.lrStatistics.TCPMs/2,connectEnd:t.lrStatistics.TCPMs,sslEnd:t.lrStatistics.TCPMs},r=t.lrStatistics.requestMs)),t.fromWorker=t.sessionTargetType==="worker",{rawRequest:t,...t,timing:n,serverResponseTime:r}}static isNonNetworkRequest(t){return Ce.isNonNetworkProtocol(t.protocol)||Ce.isNonNetworkProtocol(t.parsedURL.scheme)}static isSecureRequest(t){return Ce.isSecureScheme(t.parsedURL.scheme)||Ce.isSecureScheme(t.protocol)||Ce.isLikeLocalhost(t.parsedURL.host)||e.isHstsRequest(t)}static isHstsRequest(t){let n=t.redirectDestination;return n?t.responseHeaders.find(o=>o.name==="Non-Authoritative-Reason")?.value==="HSTS"&&e.isSecureRequest(n):!1}static isContentEncoded(t){let n=globalThis.isLightrider?
|
|
1061
|
-
[/^x-original-content-encoding$/i]:[/^content-encoding$/i,/^x-content-encoding-over-network$/i],r=["gzip","br","deflate","zstd"];return t.responseHeaders.some(a=>n.some(o=>a.name.match(o))&&r.includes(a.value))}static getResourceSizeOnNetwork(t){return Math.min(t.resourceSize||0,t.transferSize||1/0)}};lt.HEADER_TCP=C4;lt.HEADER_SSL=k4;lt.HEADER_REQ=R4;lt.HEADER_RES=_4;lt.HEADER_TOTAL=I4;lt.HEADER_FETCHED_SIZE=D4;lt.HEADER_PROTOCOL_IS_H2=A4});var wue,pc,IT=g(()=>{"use strict";d();Ta();Ve();
|
|
1062
|
+
[/^x-original-content-encoding$/i]:[/^content-encoding$/i,/^x-content-encoding-over-network$/i],r=["gzip","br","deflate","zstd"];return t.responseHeaders.some(a=>n.some(o=>a.name.match(o))&&r.includes(a.value))}static getResourceSizeOnNetwork(t){return Math.min(t.resourceSize||0,t.transferSize||1/0)}};lt.HEADER_TCP=C4;lt.HEADER_SSL=k4;lt.HEADER_REQ=R4;lt.HEADER_RES=_4;lt.HEADER_TOTAL=I4;lt.HEADER_FETCHED_SIZE=D4;lt.HEADER_PROTOCOL_IS_H2=A4});var wue,pc,IT=g(()=>{"use strict";d();Ta();Ve();Sn();Jt();qr();wue=Ye,pc=class e extends wue{static{i(this,"NetworkRecorder")}constructor(){super(),this._records=[],this._recordsById=new Map}getRawRecords(){return Array.from(this._records)}onRequestStarted(t){this._records.push(t),this._recordsById.set(t.requestId,t),this.emit("requeststarted",t)}onRequestFinished(t){this.emit("requestfinished",t)}onRequestWillBeSent(t){let n=t.params,r=this._findRealRequestAndSetSession(n.requestId,t.targetType,t.sessionId);if(!r){let s=new lt;s.onRequestWillBeSent(n),s.sessionId=t.sessionId,s.sessionTargetType=t.targetType,this.onRequestStarted(s),M.verbose("network",`request will be sent to ${s.url}`);return}if(!n.redirectResponse)return;let a={...n,initiator:r.initiator,requestId:`${r.requestId}:redirect`},o=new lt;o.onRequestWillBeSent(a),r.onRedirectResponse(n),M.verbose("network",`${r.url} redirected to ${o.url}`),r.redirectDestination=o,o.redirectSource=r,this.onRequestStarted(o),this.onRequestFinished(
|
|
1062
1063
|
r)}onRequestServedFromCache(t){let n=t.params,r=this._findRealRequestAndSetSession(n.requestId,t.targetType,t.sessionId);r&&(M.verbose("network",`${r.url} served from cache`),r.onRequestServedFromCache())}onResponseReceived(t){let n=t.params,r=this._findRealRequestAndSetSession(n.requestId,t.targetType,t.sessionId);r&&(M.verbose("network",`${r.url} response received`),r.onResponseReceived(n))}onResponseReceivedExtraInfo(t){let n=t.params,r=this._findRealRequestAndSetSession(n.requestId,t.targetType,t.sessionId);r&&(M.verbose("network",`${r.url} response received extra info`),r.onResponseReceivedExtraInfo(n))}onDataReceived(t){let n=t.params,r=this._findRealRequestAndSetSession(n.requestId,t.targetType,t.sessionId);r&&(M.verbose("network",`${r.url} data received`),r.onDataReceived(n))}onLoadingFinished(t){let n=t.params,r=this._findRealRequestAndSetSession(n.requestId,t.targetType,t.sessionId);r&&(M.verbose("network",`${r.url} loading finished`),r.onLoadingFinished(n),this.onRequestFinished(
|
|
1063
1064
|
r))}onLoadingFailed(t){let n=t.params,r=this._findRealRequestAndSetSession(n.requestId,t.targetType,t.sessionId);r&&(M.verbose("network",`${r.url} loading failed`),r.onLoadingFailed(n),this.onRequestFinished(r))}onResourceChangedPriority(t){let n=t.params,r=this._findRealRequestAndSetSession(n.requestId,t.targetType,t.sessionId);r&&r.onResourceChangedPriority(n)}dispatch(t){switch(t.method){case"Network.requestWillBeSent":return this.onRequestWillBeSent(t);case"Network.requestServedFromCache":return this.onRequestServedFromCache(t);case"Network.responseReceived":return this.onResponseReceived(t);case"Network.responseReceivedExtraInfo":return this.onResponseReceivedExtraInfo(t);case"Network.dataReceived":return this.onDataReceived(t);case"Network.loadingFinished":return this.onLoadingFinished(t);case"Network.loadingFailed":return this.onLoadingFailed(t);case"Network.resourceChangedPriority":return this.onResourceChangedPriority(t);default:return}}_findRealRequestAndSetSession(t,n,r){let a=this.
|
|
1064
|
-
_recordsById.get(t);if(!(!a||!a.isValid)){for(;a.redirectDestination;)a=a.redirectDestination;return a.setSession(r),a.sessionTargetType=n,a}}static _chooseInitiatorRequest(t,n){if(t.redirectSource)return t.redirectSource;let r=
|
|
1065
|
-
[];s.push(o),a.set(o.url,s)}for(let o of r){let s=e._chooseInitiatorRequest(o,a);s&&o.setInitiatorRequest(s);let c=o;for(;c.redirectDestination;)c=c.redirectDestination;if(c===o||c.redirects)continue;let l=[];for(let u=c.redirectSource;u;u=u.redirectSource)l.unshift(u);c.redirects=l}return r}}});var DT,Re,Mt=g(()=>{"use strict";d();
|
|
1065
|
+
_recordsById.get(t);if(!(!a||!a.isValid)){for(;a.redirectDestination;)a=a.redirectDestination;return a.setSession(r),a.sessionTargetType=n,a}}static _chooseInitiatorRequest(t,n){if(t.redirectSource)return t.redirectSource;let r=hn.PageDependencyGraph.getNetworkInitiators(t)[0],a=n.get(r)||[];if(a=a.filter(o=>o.responseHeadersEndTime<=t.rendererStartTime&&o.finished&&!o.failed),a.length>1){let o=a.filter(s=>s.resourceType!==lt.TYPES.Other);o.length&&(a=o)}if(a.length>1){let o=a.filter(s=>s.frameId===t.frameId);o.length&&(a=o)}if(a.length>1&&t.initiator.type==="parser"){let o=a.filter(s=>s.resourceType===lt.TYPES.Document);o.length&&(a=o)}if(a.length>1){let o=a.filter(s=>s.isLinkPreload);if(o.length){let s=a.filter(l=>!l.isLinkPreload),c=s.every(l=>l.fromDiskCache||l.fromMemoryCache);s.length&&c&&(a=o)}}return a.length===1?a[0]:null}static recordsFromLogs(t){let n=new e;t.forEach(o=>n.dispatch(o));let r=n.getRawRecords().filter(o=>o.isValid),a=new Map;for(let o of r){let s=a.get(o.url)||
|
|
1066
|
+
[];s.push(o),a.set(o.url,s)}for(let o of r){let s=e._chooseInitiatorRequest(o,a);s&&o.setInitiatorRequest(s);let c=o;for(;c.redirectDestination;)c=c.redirectDestination;if(c===o||c.redirects)continue;let l=[];for(let u=c.redirectSource;u;u=u.redirectSource)l.unshift(u);c.redirects=l}return r}}});var DT,Re,Mt=g(()=>{"use strict";d();Sn();Ae();IT();DT=class{static{i(this,"NetworkRecords")}static async compute_(t){return pc.recordsFromLogs(t)}},Re=Y(DT,null)});var AT,zr,es=g(()=>{"use strict";d();Ve();Jt();Ae();Mt();AT=class{static{i(this,"NetworkAnalysis")}static async compute_(t,n){let r=await Re.request(t,n),a=ct.NetworkAnalyzer.analyze(r);return a||(M.error("NetworkAnalysis","Network analysis failed due to lack of transfer data"),{throughput:0,rtt:Number.POSITIVE_INFINITY,additionalRttByOrigin:new Map,serverResponseTimeByOrigin:new Map})}},zr=Y(AT,null)});var NT,Fo,rd=g(()=>{"use strict";d();Ae();Jt();es();NT=class{static{i(this,"LoadSimulator")}static async compute_(t,n){let r=await zr.request(t.devtoolsLog,n);return Pa.Simulator.createSimulator({...t.settings,networkAnalysis:r})}static convertAnalysisToSaveableLanternData(t){let n={additionalRttByOrigin:{},serverResponseTimeByOrigin:{}};for(let[r,a]of t.additionalRttByOrigin.entries())r.startsWith("http")&&(n.additionalRttByOrigin[r]=a);for(let[r,a]of t.serverResponseTimeByOrigin.entries())r.startsWith("http")&&(n.serverResponseTimeByOrigin[r]=a);return n}},Fo=Y(NT,["devtoolsLog","settings"])});async function OT(e,t,n){let r=hr.createWriteStream(n?t+".gz":t);n?await Qy.promises.pipeline(e,nL(),r):await Qy.promises.pipeline(e,r)}function MT(e,t){if(hr.existsSync(e+".gz")&&(e=e+".gz"),!e.endsWith(".json.gz"))return JSON.parse(hr.readFileSync(e,"utf8"),t);let n=rL(hr.readFileSync(e));return JSON.parse(n.toString("utf8"),t)}function N4(e,t){return e.endsWith(t)||e.endsWith(t+".gz")}function P4(e){if(M.log("Reading artifacts from disk:",e),!hr.existsSync(e))throw new Error("No saved artifacts found at "+e);let t=MT(At.join(e,lg),z.parseReviver),n=hr.readdirSync(e);return n.filter(r=>N4(r,hc)).forEach(r=>{let a=MT(At.join(e,r));r.startsWith(hc)?t.DevtoolsLog=a:r.startsWith(ug)&&(t.DevtoolsLogError=a)}),n.filter(r=>N4(r,fc)).forEach(r=>{let a=MT(At.join(e,r));Array.isArray(a)&&(a={traceEvents:a}),r.startsWith(fc)?t.Trace=a:r.startsWith(ug)&&(t.TraceError=a)}),Array.isArray(t.Timing)&&t.Timing.forEach(r=>r.gather=!0),t}function Eue(e,t){return t instanceof Error?z.stringifyReplacer(t):
|
|
1066
1067
|
t}async function L4(e,t,n={}){let r={msg:"Saving artifacts",id:"lh:assetSaver:saveArtifacts"};M.time(r),hr.mkdirSync(t,{recursive:!0});let a=hr.readdirSync(t);for(let p of a)(p.endsWith(fc)||p.endsWith(hc)||p.endsWith(fc+".gz")||p.endsWith(hc+".gz")||p===lg||p===lg+".gz")&&hr.unlinkSync(`${t}/${p}`);let{DevtoolsLog:o,Trace:s,DevtoolsLogError:c,TraceError:l,...u}=e;s&&await M4(s,`${t}/${fc}`,n),l&&await M4(l,`${t}/${ug}${fc}`,n),o&&await O4(o,`${t}/${hc}`,n),c&&await O4(c,`${t}/${ug}${hc}`,n);let m=JSON.stringify(u,Eue,2);await OT(function*(){yield m,yield`
|
|
1067
1068
|
`},`${t}/${lg}`,!!n.gzip),M.log("Artifacts saved to disk in folder:",t),M.timeEnd(r)}function F4(e,t){hr.writeFileSync(`${t}/lhr.report.json`,JSON.stringify(e,null,2))}function*U4(e){if(yield`[
|
|
1068
1069
|
`,e.length>0){let n=e[Symbol.iterator](),r=n.next().value;yield` ${JSON.stringify(r)}`;let a=500,o="";for(let s of n)o+=`,
|
|
@@ -1072,7 +1073,7 @@ t}async function L4(e,t,n={}){let r={msg:"Saving artifacts",id:"lh:assetSaver:sa
|
|
|
1072
1073
|
"${r}": ${JSON.stringify(a,null,2)}`;yield`}
|
|
1073
1074
|
`}function M4(e,t,n={}){let r=Tue(e);return OT(r,t,!!n.gzip)}function O4(e,t,n={}){return OT(function*(){yield*U4(e),yield`
|
|
1074
1075
|
`},t,!!n.gzip)}var lg,fc,hc,ug,B4=g(()=>{"use strict";d();fo();ho();ev();Hl();aL();Ve();Jt();n4();r4();es();rd();rn();tf();lg="artifacts.json",fc="trace.json",hc="devtoolslog.json",ug="pageLoadError.";i(OT,"writeJson");i(MT,"readJson");i(N4,"endsWithSuffix");i(P4,"loadArtifacts");i(Eue,"stringifyReplacer");i(L4,"saveArtifacts");i(F4,"saveLhr");i(U4,"arrayOfObjectsJsonGenerator");i(Tue,"traceJsonGenerator");i(M4,"saveTrace");i(O4,"saveDevtoolsLog")});var Bo={};x(Bo,{defaultSettings:()=>Sr,nonSimulatedSettingsOverrides:()=>yc,screenEmulationMetrics:()=>dg,throttling:()=>gc,userAgents:()=>Uo});var gc,Sue,Cue,dg,kue,Rue,Uo,Sr,yc,Wa=g(()=>{"use strict";d();Jt();gc=Pa.Constants.throttling,Sue={mobile:!0,width:412,height:823,deviceScaleFactor:1.75,disabled:!1},Cue={mobile:!1,width:1350,height:940,deviceScaleFactor:1,disabled:!1},dg={mobile:Sue,desktop:Cue},kue="Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",Rue="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",Uo={mobile:kue,desktop:Rue},Sr={output:"json",maxWaitForFcp:30*1e3,maxWaitForLoad:45*1e3,pauseAfterFcpMs:1e3,pauseAfterLoadMs:1e3,networkQuietThresholdMs:1e3,cpuQuietThresholdMs:1e3,formFactor:"mobile",throttling:gc.mobileSlow4G,throttlingMethod:"simulate",screenEmulation:dg.mobile,emulatedUserAgent:Uo.mobile,auditMode:!1,gatherMode:!1,
|
|
1075
|
-
clearStorageTypes:["file_systems","shader_cache","service_workers","cache_storage"],disableStorageReset:!1,debugNavigation:!1,channel:"node",usePassiveGathering:!1,disableFullPageScreenshot:!1,skipAboutBlank:!1,blankPage:"about:blank",ignoreStatusCode:!1,locale:"en-US",blockedUrlPatterns:null,additionalTraceCategories:null,extraHeaders:null,precomputedLanternData:null,onlyAudits:null,onlyCategories:null,skipAudits:null},yc={pauseAfterFcpMs:5250,pauseAfterLoadMs:5250,networkQuietThresholdMs:5250,cpuQuietThresholdMs:5250}});var Le,ze,j4,mg,PT=g(()=>{"use strict";d();
|
|
1076
|
+
clearStorageTypes:["file_systems","shader_cache","service_workers","cache_storage"],disableStorageReset:!1,debugNavigation:!1,channel:"node",usePassiveGathering:!1,disableFullPageScreenshot:!1,skipAboutBlank:!1,blankPage:"about:blank",ignoreStatusCode:!1,locale:"en-US",blockedUrlPatterns:null,additionalTraceCategories:null,extraHeaders:null,precomputedLanternData:null,onlyAudits:null,onlyCategories:null,skipAudits:null},yc={pauseAfterFcpMs:5250,pauseAfterLoadMs:5250,networkQuietThresholdMs:5250,cpuQuietThresholdMs:5250}});var Le,ze,j4,mg,PT=g(()=>{"use strict";d();Sn();Wa();A();Le={performanceCategoryTitle:"Performance",metricGroupTitle:"Metrics",insightsGroupTitle:"Insights",insightsGroupDescription:"These insights are also available in the Chrome DevTools Performance Panel - [record a trace](https://developer.chrome.com/docs/devtools/performance/reference) to view more detailed information.",firstPaintImprovementsGroupTitle:"First Paint Improvements",firstPaintImprovementsGroupDescription:"The most critical aspect of performance is how quickly pixels are rendered onscreen. Key metrics: First Contentful Paint, First Meaningful Paint",overallImprovementsGroupTitle:"Overall Improvements",overallImprovementsGroupDescription:"Enhance the overall loading experience, so the page is responsive and ready to use as soon as possible. Key metrics: Time to Interactive, Speed Index",diagnosticsGroupTitle:"Diagnostics",diagnosticsGroupDescription:"More information about the performance of your application. These num\
|
|
1076
1077
|
bers don't [directly affect](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring/) the Performance score.",a11yCategoryTitle:"Accessibility",a11yCategoryDescription:"These checks highlight opportunities to [improve the accessibility of your web app](https://developer.chrome.com/docs/lighthouse/accessibility/). Automatic detection can only detect a subset of issues and does not guarantee the accessibility of your web app, so [manual testing](https://web.dev/articles/how-to-review) is also encouraged.",a11yCategoryManualDescription:"These items address areas which an automated testing tool cannot cover. Learn more in our guide on [conducting an accessibility review](https://web.dev/articles/how-to-review).",a11yBestPracticesGroupTitle:"Best practices",a11yBestPracticesGroupDescription:"These items highlight common accessibility best practices.",a11yColorContrastGroupTitle:"Contrast",a11yColorContrastGroupDescription:"These are opportunities to improve the legibil\
|
|
1077
1078
|
ity of your content.",a11yNamesLabelsGroupTitle:"Names and labels",a11yNamesLabelsGroupDescription:"These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.",a11yNavigationGroupTitle:"Navigation",a11yNavigationGroupDescription:"These are opportunities to improve keyboard navigation in your application.",a11yAriaGroupTitle:"ARIA",a11yAriaGroupDescription:"These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, like a screen reader.",a11yLanguageGroupTitle:"Internationalization and localization",a11yLanguageGroupDescription:"These are opportunities to improve the interpretation of your content by users in different locales.",a11yAudioVideoGroupTitle:"Audio and video",a11yAudioVideoGroupDescription:"These are opportunities to provide alternative content for audio and video. This may improv\
|
|
1078
1079
|
e the experience for users with hearing or vision impairments.",a11yTablesListsVideoGroupTitle:"Tables and lists",a11yTablesListsVideoGroupDescription:"These are opportunities to improve the experience of reading tabular or list data using assistive technology, like a screen reader.",seoCategoryTitle:"SEO",seoCategoryDescription:"These checks ensure that your page is following basic search engine optimization advice. There are many additional factors Lighthouse does not score here that may affect your search ranking, including performance on [Core Web Vitals](https://web.dev/explore/vitals). [Learn more about Google Search Essentials](https://support.google.com/webmasters/answer/35769).",seoCategoryManualDescription:"Run these additional validators on your site to check additional SEO best practices.",seoMobileGroupTitle:"Mobile Friendly",seoMobileGroupDescription:"Make sure your pages are mobile friendly so users don’t have to pinch or zoom in order to read the content pages. [Learn h\
|
|
@@ -1699,7 +1700,7 @@ function id(e){let t=e.toString().match(/function ([\w$]+)/);if(!t)throw new Err
|
|
|
1699
1700
|
"label-content-name-mismatch":{enabled:!0},"landmark-one-main":{enabled:!0},"link-in-text-block":{enabled:!0},marquee:{enabled:!1},"meta-viewport":{enabled:!0},"nested-interactive":{enabled:!1},"no-autoplay-audio":{enabled:!1},"role-img-alt":{enabled:!1},"scrollable-region-focusable":{enabled:!1},"select-name":{enabled:!0},"server-side-image-map":{enabled:!1},"skip-link":{enabled:!0},"summary-name":{enabled:!1},"svg-img-alt":{enabled:!1},tabindex:{enabled:!0},"table-duplicate-name":{enabled:!0},"table-fake-caption":{enabled:!0},"target-size":{enabled:!0},"td-has-header":{enabled:!0}}});return document.documentElement.scrollTop=0,{violations:n.violations.map(hg),incomplete:n.incomplete.map(hg),notApplicable:n.inapplicable.map(r=>({id:r.id})),passes:n.passes.map(r=>({id:r.id})),version:n.testEngine.version}}async function ede(){let e={x:window.scrollX,y:window.scrollY};try{return await GT()}finally{window.scrollTo(e.x,e.y)}}function hg(e){let t=e.nodes.map(a=>{let{target:o,failureSummary:s,
|
|
1700
1701
|
element:c}=a,l=getNodeDetails(c),u=new Set,m=i(h=>[null,"minor","moderate","serious","critical"].indexOf(h),"impactToNumber"),p=[...a.any,...a.all,...a.none].sort((h,y)=>m(y.impact)-m(h.impact));for(let h of p)for(let y of h.relatedNodes||[]){let b=y.element;if(u.size>=3)break;b&&c!==b&&u.add(b)}let f=[...u].map(getNodeDetails);return{target:o,failureSummary:s,node:l,relatedNodes:f}}),n=e.error,r;return n instanceof Error&&(r={name:n.name,message:n.message}),{id:e.id,impact:e.impact||void 0,tags:e.tags,nodes:t,error:r}}var WT,tde,a8=g(()=>{"use strict";d();bt();e8();ur();i(GT,"runA11yChecks");i(ede,"runA11yChecksAndResetScroll");i(hg,"createAxeRuleResultArtifact");WT=class extends fe{static{i(this,"Accessibility")}meta={supportedModes:["snapshot","navigation"]};static pageFns={runA11yChecks:GT,createAxeRuleResultArtifact:hg};getArtifact(t){return t.driver.executionContext.evaluate(ede,{args:[],useIsolation:!0,deps:[Q4,Je.getNodeDetails,hg,GT]})}},tde=WT});function o8(e){if(!(/No node.*found/.test(e.message)||/Node.*does not belong to the document/.test(e.message)))throw e}async function i8(e,t){try{return(await e.sendCommand("DOM.resolveNode",{backendNodeId:t})).object.objectId}catch(n){return o8(n)}}async function s8(e,t){try{let{nodeId:n}=await e.sendCommand("DOM.pushNodeByPathToFrontend",{path:t}),{object:{objectId:r}}=await e.sendCommand("DOM.resolveNode",{nodeId:n});return r}catch(n){return o8(n)}}var VT=g(()=>{"use strict";d();i(o8,"handlePotentialMissingNodeError");i(i8,"resolveNodeIdToObjectId");i(s8,"resolveDevtoolsNodePathToObjectId")});var c8={};x(c8,{default:()=>ade});function nde(){let e=i(c=>{try{return new URL(c,window.location.href).href}catch{return""}},"resolveURLOrEmpty");function t(c){return(c.getAttribute("onclick")||"").slice(0,1024)}i(t,"getTruncatedOnclick");function n(c){let l=null;for(let u of c.querySelectorAll("*")){if(!u.textContent)continue;let m=u.closest("[lang]")?.getAttribute("lang");if(m){if(!l){l=m;continue}if(l.split("-")[0]!==m.split("-")[0])return null}}return l??c.closest("[lang]")?.getAttribute("lang")??null}i(n,"getLangOfInnerText");let r=getElementsInDocument("a"),a=getElementsInDocument("[lang]"),s=a.length===1&&(a[0].nodeName==="BODY"||a[0].nodeName==="HTML")?a[0].getAttribute("lang"):null;return r.map(c=>c instanceof HTMLAnchorElement?{href:c.href,rawHref:c.getAttribute("href")||"",onclick:t(c),role:c.getAttribute("role")||"",name:c.name,text:c.innerText,textLang:s??n(c)??void 0,rel:c.rel,target:c.target,id:c.getAttribute("id")||"",attributeNames:c.getAttributeNames(),node:getNodeDetails(
|
|
1701
1702
|
c)}:{href:e(c.href.baseVal),rawHref:c.getAttribute("href")||"",onclick:t(c),role:c.getAttribute("role")||"",text:c.textContent||"",textLang:s??n(c)??void 0,rel:"",target:c.target.baseVal||"",id:c.getAttribute("id")||"",attributeNames:c.getAttributeNames(),node:getNodeDetails(c)})}async function rde(e,t){let n=await s8(e,t);return n?(await e.sendCommand("DOMDebugger.getEventListeners",{objectId:n})).listeners.map(({type:a})=>({type:a})):[]}var $T,ade,l8=g(()=>{"use strict";d();bt();ur();VT();i(nde,"collectAnchorElements");i(rde,"getEventListeners");$T=class extends fe{static{i(this,"AnchorElements")}meta={supportedModes:["snapshot","navigation"]};async getArtifact(t){let n=t.driver.defaultSession,r=await t.driver.executionContext.evaluate(nde,{args:[],useIsolation:!0,deps:[Je.getElementsInDocument,Je.getNodeDetails]});await n.sendCommand("DOM.enable"),await n.sendCommand("DOM.getDocument",{depth:-1,pierce:!0});let a=r.map(s=>rde(n,s.node.devtoolsNodePath).then(c=>({...s,listeners:c}))),
|
|
1702
|
-
o=await Promise.all(a);return await n.sendCommand("DOM.disable"),o}},ade=$T});var Ho,gg=g(()=>{"use strict";d();
|
|
1703
|
+
o=await Promise.all(a);return await n.sendCommand("DOM.disable"),o}},ade=$T});var Ho,gg=g(()=>{"use strict";d();Sn();ur();Ho=class e{static{i(this,"ExecutionContext")}constructor(t){this._session=t,this._executionContextId=void 0,this._executionContextIdentifiersCreated=0,t.on("Page.frameNavigated",()=>this.clearContextId()),t.on("Runtime.executionContextDestroyed",n=>{n.executionContextId===this._executionContextId&&this.clearContextId()})}getContextId(){return this._executionContextId}clearContextId(){this._executionContextId=void 0}async _getOrCreateIsolatedContextId(){if(typeof this._executionContextId=="number")return this._executionContextId;await this._session.sendCommand("Page.enable"),await this._session.sendCommand("Runtime.enable");let n=(await this._session.sendCommand("Page.getFrameTree")).frameTree.frame.id,r=await this._session.sendCommand("Page.createIsolatedWorld",{frameId:n,worldName:"lighthouse_isolated_context"});return this._executionContextId=r.executionContextId,this._executionContextIdentifiersCreated++,r.executionContextId}async _evaluateInContext(t,n,r){
|
|
1703
1704
|
let a=n===void 0?void 0:this._executionContextIdentifiersCreated,o={expression:`(function wrapInNativePromise() {
|
|
1704
1705
|
${e._cachedNativesPreamble};
|
|
1705
1706
|
globalThis.__lighthouseExecutionContextUniqueIdentifier =
|
|
@@ -1749,7 +1750,7 @@ lx=class extends fe{static{i(this,"Inputs")}meta={supportedModes:["snapshot","na
|
|
|
1749
1750
|
return this.refs.push(t),this}setUnique(t){return this.refs.some(n=>Qde(n,t))||this.refs.push(t),this}has(t,n){t=t.toLowerCase();for(var r=0;r<this.refs.length;r++)if(this.refs[r][t]===n)return!0;return!1}parse(t,o){o=o||0,t=o?t.slice(o):t,t=V8(t).replace(Yde,"");for(var r=Va.IDLE,a=t.length,o=0,s=null;o<a;)if(r===Va.IDLE){if(Sg(t[o])){o++;continue}else if(t[o]==="<"){s!=null&&(s.rel!=null?this.refs.push(...e.expandRelations(s)):this.refs.push(s));var c=t.indexOf(">",o);if(c===-1)throw new Error("Expected end of URI delimiter at offset "+o);s={uri:t.slice(o+1,c)},o=c,r=Va.URI}else throw new Error('Unexpected character "'+t[o]+'" at offset '+o);o++}else if(r===Va.URI)if(Sg(t[o])){o++;continue}else if(t[o]===";")r=Va.ATTR,o++;else if(t[o]===",")r=Va.IDLE,o++;else throw new Error('Unexpected character "'+t[o]+'" at offset '+o);else if(r===Va.ATTR){if(t[o]===";"||Sg(t[o])){o++;continue}var c=t.indexOf("=",o);c===-1&&(c=t.indexOf(";",o)),c===-1&&(c=t.length);var l=V8(t.slice(o,c)).toLowerCase(),
|
|
1750
1751
|
u="";if(o=c+1,o=Zde(t,o),t[o]==='"')for(o++;o<a;){if(t[o]==='"'){o++;break}t[o]==="\\"&&o++,u+=t[o],o++}else{for(var c=o+1;!Kde.test(t[c])&&c<a;)c++;u=t.slice(o,c),o=c}switch(s[l]&&e.isSingleOccurenceAttr(l)||(l[l.length-1]==="*"?s[l]=e.parseExtendedValue(u):(u=l==="type"?u.toLowerCase():u,s[l]!=null?Array.isArray(s[l])?s[l].push(u):s[l]=[s[l],u]:s[l]=u)),t[o]){case",":r=Va.IDLE;break;case";":r=Va.ATTR;break}o++}else throw new Error('Unknown parser state "'+r+'"');return s!=null&&(s.rel!=null?this.refs.push(...e.expandRelations(s)):this.refs.push(s)),s=null,this}toString(){for(var t=[],n="",r=null,a=0;a<this.refs.length;a++)r=this.refs[a],n=Object.keys(this.refs[a]).reduce(function(o,s){return s==="uri"?o:o+"; "+e.formatAttribute(s,r[s])},"<"+r.uri+">"),t.push(n);return t.join(", ")}};Kt.isCompatibleEncoding=function(e){return Wde.test(e)};Kt.parse=function(e,t){return new Kt().parse(e,t)};Kt.isSingleOccurenceAttr=function(e){return e==="rel"||e==="type"||e==="media"||e==="title"||e===
|
|
1751
1752
|
"title*"};Kt.isTokenAttr=function(e){return e==="rel"||e==="type"||e==="anchor"};Kt.escapeQuotes=function(e){return e.replace(/"/g,'\\"')};Kt.expandRelations=function(e){var t=e.rel.split(" ");return t.map(function(n){var r=Object.assign({},e);return r.rel=n,r})};Kt.parseExtendedValue=function(e){var t=/([^']+)?(?:'([^']*)')?(.+)/.exec(e);return{language:t[2].toLowerCase(),encoding:Kt.isCompatibleEncoding(t[1])?null:t[1].toLowerCase(),value:Kt.isCompatibleEncoding(t[1])?decodeURIComponent(t[3]):t[3]}};Kt.formatExtendedAttribute=function(e,t){var n=(t.encoding||"utf-8").toUpperCase(),r=t.language||"en",a="";return Buffer.isBuffer(t.value)&&Kt.isCompatibleEncoding(n)?a=t.value.toString(n):Buffer.isBuffer(t.value)?a=t.value.toString("hex").replace(/[0-9a-f]{2}/gi,"%$1"):a=encodeURIComponent(t.value),e+"="+n+"'"+r+"'"+a};Kt.formatAttribute=function(e,t){return Array.isArray(t)?t.map(n=>Kt.formatAttribute(e,n)).join("; "):e[e.length-1]==="*"||typeof t!="string"?Kt.formatExtendedAttribute(e,
|
|
1752
|
-
t):(Kt.isTokenAttr(e)?t=$8(t)?'"'+Kt.escapeQuotes(t)+'"':Kt.escapeQuotes(t):$8(t)&&(t=encodeURIComponent(t),t=t.replace(/%20/g," ").replace(/%2C/g,",").replace(/%3B/g,";"),t='"'+t+'"'),e+"="+t)};Y8.exports=Kt});var mx,Et,jn=g(()=>{"use strict";d();Jt();Ae();Mt();mx=class{static{i(this,"MainResource")}static async compute_(t,n){let{mainDocumentUrl:r}=t.URL;if(!r)throw new Error("mainDocumentUrl must exist to get the main resource");let a=await Re.request(t.devtoolsLog,n),o=ct.NetworkAnalyzer.findLastDocumentForUrl(a,r);if(!o)throw new Error("Unable to identify the main resource");return o}},Et=Y(mx,["URL","devtoolsLog"])});var J8={};x(J8,{UIStrings:()=>fx,default:()=>ame});function tme(e,t){try{return new URL(e,t).href}catch{return null}}function nme(e){return e==="anonymous"?"anonymous":e==="use-credentials"?"use-credentials":null}function rme(){let e=getElementsInDocument("link"),t=[];for(let n of e){if(!(n instanceof HTMLLinkElement))continue;let r=n.getAttribute("href")||"",a=n.closest("head")?"head":"body";t.push({rel:n.rel,href:n.href,hreflang:n.hreflang,as:n.as,crossOrigin:n.crossOrigin,hrefRaw:r,source:a,fetchPriority:n.fetchPriority,node:getNodeDetails(n)})}return t}var X8,fx,eme,px,ame,Z8=g(()=>{"use strict";d();X8=
|
|
1753
|
+
t):(Kt.isTokenAttr(e)?t=$8(t)?'"'+Kt.escapeQuotes(t)+'"':Kt.escapeQuotes(t):$8(t)&&(t=encodeURIComponent(t),t=t.replace(/%20/g," ").replace(/%2C/g,",").replace(/%3B/g,";"),t='"'+t+'"'),e+"="+t)};Y8.exports=Kt});var mx,Et,jn=g(()=>{"use strict";d();Jt();Ae();Mt();mx=class{static{i(this,"MainResource")}static async compute_(t,n){let{mainDocumentUrl:r}=t.URL;if(!r)throw new Error("mainDocumentUrl must exist to get the main resource");let a=await Re.request(t.devtoolsLog,n),o=ct.NetworkAnalyzer.findLastDocumentForUrl(a,r);if(!o)throw new Error("Unable to identify the main resource");return o}},Et=Y(mx,["URL","devtoolsLog"])});var J8={};x(J8,{UIStrings:()=>fx,default:()=>ame});function tme(e,t){try{return new URL(e,t).href}catch{return null}}function nme(e){return e==="anonymous"?"anonymous":e==="use-credentials"?"use-credentials":null}function rme(){let e=getElementsInDocument("link"),t=[];for(let n of e){if(!(n instanceof HTMLLinkElement))continue;let r=n.getAttribute("href")||"",a=n.closest("head")?"head":"body";t.push({rel:n.rel,href:n.href,hreflang:n.hreflang,as:n.as,crossOrigin:n.crossOrigin,hrefRaw:r,source:a,fetchPriority:n.fetchPriority,node:getNodeDetails(n)})}return t}var X8,fx,eme,px,ame,Z8=g(()=>{"use strict";d();X8=En(K8(),1);bt();ur();qo();jn();Zr();A();fx={headerParseWarning:"Error parsing `link` header ({error}): `{header}`"},eme=T("core/gather/gatherers/link-elements.js",fx);i(tme,"normalizeUrlOrNull");i(nme,"getCrossoriginFromHeader");i(rme,"getLinkElementsInDOM");px=class e extends fe{static{i(this,"LinkElements")}meta={supportedModes:["timespan","navigation"],dependencies:{DevtoolsLog:dr.
|
|
1753
1754
|
symbol}};static getLinkElementsInDOM(t){return t.driver.executionContext.evaluate(rme,{args:[],useIsolation:!0,deps:[Je.getNodeDetails,Je.getElementsInDocument]})}static async getLinkElementsInHeaders(t,n){let r=await Et.request({devtoolsLog:n,URL:t.baseArtifacts.URL},t),a=[];for(let o of r.responseHeaders){if(o.name.toLowerCase()!=="link")continue;let s=[];try{s=X8.default.parse(o.value).refs}catch(c){let l=ot.truncate(o.value,100),u=eme(fx.headerParseWarning,{error:c.message,header:l});t.baseArtifacts.LighthouseRunWarnings.push(u)}for(let c of s)a.push({rel:c.rel||"",href:tme(c.uri,t.baseArtifacts.URL.finalDisplayedUrl),hrefRaw:c.uri||"",hreflang:c.hreflang||"",as:c.as||"",crossOrigin:nme(c.crossorigin),source:"headers",fetchPriority:c.fetchpriority,node:null})}return a}async getArtifact(t){let n=t.dependencies.DevtoolsLog,r=await e.getLinkElementsInDOM(t),a=await e.getLinkElementsInHeaders(t,n),o=r.concat(a);for(let s of o)s.rel=s.rel.toLowerCase();return o}},ame=px});async function Q8(e,t,n=1e3){return t=lt.getRequestIdForBackend(t),e.setNextProtocolTimeout(n),(await e.sendCommand("Network.getResponseBody",{requestId:t})).body}var e6=g(()=>{"use strict";d();qr();i(Q8,"fetchResponseBodyFromCache")});var t6={};x(t6,{default:()=>ome});var hx,ome,n6=g(()=>{"use strict";d();bt();qo();e6();jn();hx=class extends fe{static{i(this,"MainDocumentContent")}meta={supportedModes:["navigation"],dependencies:{DevtoolsLog:dr.symbol}};async getArtifact(t){let n=t.dependencies.DevtoolsLog,r=await Et.request({devtoolsLog:n,URL:t.baseArtifacts.URL},t),a=t.driver.defaultSession;return Q8(a,r.requestId)}},ome=hx});var r6={};x(r6,{default:()=>sme});function ime(){let e={getElementsInDocument,getNodeDetails};return e.getElementsInDocument("head meta").map(n=>{let r=i(a=>{let o=n.attributes.getNamedItem(a);if(o)return o.value},"getAttribute");return{name:n.name.toLowerCase(),content:n.content,property:r("property"),httpEquiv:n.httpEquiv?n.httpEquiv.toLowerCase():void 0,charset:r("charset"),node:e.getNodeDetails(n)}})}var gx,sme,a6=g(()=>{"use strict";d();bt();ur();i(ime,"collectMetaElements");gx=class extends fe{static{i(this,"MetaElements")}meta={supportedModes:["snapshot","navigation"]};getArtifact(t){return t.driver.executionContext.evaluate(ime,{args:[],useIsolation:!0,deps:[Je.getElementsInDocument,Je.getNodeDetails]})}},sme=gx});var o6={};x(o6,{default:()=>cme});var yx,cme,i6=g(()=>{"use strict";d();bt();qo();yx=class e extends fe{static{i(this,"NetworkUserAgent")}meta={supportedModes:["timespan","navigation"],dependencies:{DevtoolsLog:dr.symbol}};static getNetworkUserAgent(t){for(let n of t){if(n.method!=="Network.requestWillBeSent")continue;let r=n.params.request.headers["User-Agent"];if(r)return r}return""}async getArtifact(t){return e.getNetworkUserAgent(t.dependencies.DevtoolsLog)}},cme=yx});var s6={};x(s6,{default:()=>bx});async function lme(e,t,n){if(n){let r=[];for(let a of e){let o=await t(a);r.push(o)}return r}else{let r=e.map(t);return await Promise.all(r)}}function ume(e){return e.embedderName?e.hasSourceURL&&e.url==="_lighthouse-eval.js":!0}var vx,bx,wx=g(()=>{"use strict";d();bt();i(lme,"runInSeriesOrParallel");i(ume,"isLighthouseRuntimeEvaluateScript");vx=class e extends fe{static{i(this,"Scripts")}static symbol=Symbol("Scripts");meta={symbol:e.symbol,supportedModes:["timespan","navigation"]};_scriptParsedEvents=[];_scriptContents=[];constructor(){super(),this.onScriptParsed=this.onScriptParsed.bind(this)}onScriptParsed(t){ume(t)||this._scriptParsedEvents.push(t)}async startInstrumentation(t){let n=t.driver.defaultSession;n.on("Debugger.scriptParsed",this.onScriptParsed),await n.sendCommand("Debugger.enable")}async stopInstrumentation(t){let n=t.driver.defaultSession,r=t.baseArtifacts.HostFormFactor;n.off("Debugger.scriptParsed",this.onScriptParsed),this._scriptContents=
|
|
1754
1755
|
await lme(this._scriptParsedEvents,({scriptId:a})=>n.sendCommand("Debugger.getScriptSource",{scriptId:a}).then(o=>o.scriptSource).catch(()=>{}),r==="mobile"),await n.sendCommand("Debugger.disable")}async getArtifact(){return this._scriptParsedEvents.map((n,r)=>({name:n.url,...n,url:n.embedderName||n.url,content:this._scriptContents[r]}))}},bx=vx});var c6={};x(c6,{default:()=>dme});var Ex,dme,l6=g(()=>{"use strict";d();bt();Ex=class extends fe{static{i(this,"RobotsTxt")}meta={supportedModes:["snapshot","navigation"]};async getArtifact(t){let{finalDisplayedUrl:n}=t.baseArtifacts.URL,r=new URL("/robots.txt",n).href;return t.driver.fetcher.fetchResource(r).catch(a=>({status:null,content:null,errorMessage:a.message}))}},dme=Ex});var u6=ve(bc=>{"use strict";d();Object.defineProperty(bc,"__esModule",{value:!0});bc.ParsedURL=void 0;bc.normalizePath=mme;bc.schemeIs=pme;function mme(e){if(e.indexOf("..")===-1&&e.indexOf(".")===-1)return e;let t=(e[0]==="/"?e.substring(1):e).split("/"),n=[];for(let a of t)a!=="."&&(a===".."?n.pop():n.push(a));let r=n.join("/");return e[0]==="/"&&r&&(r="/"+r),r[r.length-1]!=="/"&&(e[e.length-1]==="/"||t[t.length-1]==="."||t[t.length-1]==="..")&&(r=r+"/"),r}i(mme,"normalizePath");function pme(e,t){try{return new URL(e).protocol===t}catch{return!1}}i(pme,"schemeIs");var Tx=class e{static{i(this,"ParsedURL")}isValid;url;scheme;user;host;port;path;queryParams;fragment;folderPathComponents;lastPathComponent;blobInnerScheme;#e;#t;constructor(t){this.isValid=!1,this.url=t,this.scheme="",this.user="",this.host="",this.port="",this.path="",this.queryParams="",this.fragment="",this.folderPathComponents="",this.lastPathComponent="";let n=this.url.startsWith("blob:"),a=(n?t.substring(5):t).match(
|
|
1755
1756
|
e.urlRegex());if(a)this.isValid=!0,n?(this.blobInnerScheme=a[2].toLowerCase(),this.scheme="blob"):this.scheme=a[2].toLowerCase(),this.user=a[3]??"",this.host=a[4]??"",this.port=a[5]??"",this.path=a[6]??"/",this.queryParams=a[7]??"",this.fragment=a[8]??"";else{if(this.url.startsWith("data:")){this.scheme="data";return}if(this.url.startsWith("blob:")){this.scheme="blob";return}if(this.url==="about:blank"){this.scheme="about";return}this.path=this.url}let o=this.path.lastIndexOf("/",this.path.length-2);o!==-1?this.lastPathComponent=this.path.substring(o+1):this.lastPathComponent=this.path;let s=this.path.lastIndexOf("/");s!==-1&&(this.folderPathComponents=this.path.substring(0,s))}static concatenate(t,...n){return t.concat(...n)}static beginsWithWindowsDriveLetter(t){return/^[A-Za-z]:/.test(t)}static beginsWithScheme(t){return/^[A-Za-z][A-Za-z0-9+.-]*:/.test(t)}static isRelativeURL(t){return!this.beginsWithScheme(t)||this.beginsWithWindowsDriveLetter(t)}get displayName(){return this.#e?this.#e:
|
|
@@ -1761,7 +1762,7 @@ a[o[s-1]].sourceLineNumber&&a[o[c-1]].sourceColumnNumber===a[o[s-1]].sourceColum
|
|
|
1761
1762
|
s)),s.push(a)}for(let[a,o]of n.entries()){let s=this.#r.get(a);s&&(o.sort(r),s.reverseMappings=o)}function r(a,o){let s=t[a],c=t[o];return s.sourceLineNumber-c.sourceLineNumber||s.sourceColumnNumber-c.sourceColumnNumber||s.lineNumber-c.lineNumber||s.columnNumber-c.columnNumber}i(r,"sourceMappingComparator")}eachSection(t){if(this.#e)if("sections"in this.#e){let n=0;for(let r of this.#e.sections)"map"in r&&(t(r.map,n,r.offset.line,r.offset.column),n+=r.map.sources.length)}else t(this.#e,0,0,0)}parseSources(t){let n=t.sourceRoot??"",r=new Set(t.ignoreList??t.x_google_ignoreList);for(let a=0;a<t.sources.length;++a){let o=t.sources[a];h6.ParsedURL.ParsedURL.isRelativeURL(o)&&(n&&!n.endsWith("/")&&o&&!o.startsWith("/")?o=n.concat("/",o):o=n.concat(o));let s=o,c=t.sourcesContent&&t.sourcesContent[a],l={sourceURL:s,content:c??null,ignoreListHint:r.has(a),reverseMappings:null};this.#c.push(l),this.#r.has(s)||this.#r.set(s,l)}}parseMap(t,n,r,a){let o=n,s=r,c=a,l=0,u=0,m=0,p=t.names??[],f=new Cg(
|
|
1762
1763
|
t.mappings),h=this.#c[o].sourceURL;for(;;){if(f.peek()===",")f.next();else{for(;f.peek()===";";)s+=1,c=0,f.next();if(!f.hasNext())break}if(c+=f.nextVLQ(),!f.hasNext()||this.isSeparator(f.peek())){this.mappings().push(new ns(s,c));continue}let y=f.nextVLQ();if(y&&(o+=y,h=this.#c[o].sourceURL),l+=f.nextVLQ(),u+=f.nextVLQ(),!f.hasNext()||this.isSeparator(f.peek())){this.mappings().push(new ns(s,c,o,h,l,u));continue}m+=f.nextVLQ(),this.mappings().push(new ns(s,c,o,h,l,u,p[m]))}}isSeparator(t){return t===","||t===";"}mapsOrigin(){let t=this.mappings();if(t.length>0){let n=t[0];return n?.lineNumber===0||n.columnNumber===0}return!1}hasIgnoreListHint(t){return this.#r.get(t)?.ignoreListHint??!1}findRanges(t,n){let r=this.mappings(),a=[];if(!r.length)return[];let o=null;(r[0].lineNumber!==0||r[0].columnNumber!==0)&&n?.isStartMatching&&(o=TextUtils.TextRange.TextRange.createUnboundedFromLocation(0,0),a.push(o));for(let{sourceURL:s,lineNumber:c,columnNumber:l}of r){let u=s&&t(s);if(!o&&u){o=TextUtils.
|
|
1763
1764
|
TextRange.TextRange.createUnboundedFromLocation(c,l),a.push(o);continue}o&&!u&&(o.endLine=c,o.endColumn=l,o=null)}return a}expandCallFrame(t){return this.#s(),this.#i===null?[t]:this.#i.expandCallFrame(t)}resolveScopeChain(t){return this.#s(),this.#i===null?null:this.#i.resolveMappedScopeChain(t)}findOriginalFunctionName(t){return this.#s(),this.#i?.findOriginalFunctionName(t)??null}};$a.SourceMap=cd;var yme=5,vme=31,y6=32,Cg=class{static{i(this,"TokenIterator")}#e;#t;constructor(t){this.#e=t,this.#t=0}next(){return this.#e.charAt(this.#t++)}nextCharCode(){return this.#e.charCodeAt(this.#t++)}peek(){return this.#e.charAt(this.#t)}hasNext(){return this.#t<this.#e.length}nextVLQ(){let t=0,n=0,r=y6;for(;r&y6;){if(!this.hasNext())throw new Error("Unexpected end of input while decodling VLQ number!");let o=this.nextCharCode();if(r=v6[o],o!==65&&r===0)throw new Error(`Unexpected char '${String.fromCharCode(o)}' encountered while decoding`);t+=(r&vme)<<n,n+=yme}let a=t&1;return t>>=1,a?-t:t}peekVLQ(){
|
|
1764
|
-
let t=this.#t;try{return this.nextVLQ()}catch{return null}finally{this.#t=t}}};$a.TokenIterator=Cg;w6.exports=cd;cd.parseSourceMap=b6});var kg=ve((Q8e,x6)=>{"use strict";d();var T6={SourceMap:E6()};T6.SourceMap.prototype.computeLastGeneratedColumns=function(){let e=this.mappings();if(!(e.length&&e[0].lastColumnNumber!==void 0))for(let t=0;t<e.length-1;t++){let n=e[t],r=e[t+1];n.lineNumber===r.lineNumber&&(n.lastColumnNumber=r.columnNumber)}};x6.exports=T6});var S6={};x(S6,{default:()=>Cx});var xx,Sx,Cx,kx=g(()=>{"use strict";d();xx=
|
|
1765
|
+
let t=this.#t;try{return this.nextVLQ()}catch{return null}finally{this.#t=t}}};$a.TokenIterator=Cg;w6.exports=cd;cd.parseSourceMap=b6});var kg=ve((Q8e,x6)=>{"use strict";d();var T6={SourceMap:E6()};T6.SourceMap.prototype.computeLastGeneratedColumns=function(){let e=this.mappings();if(!(e.length&&e[0].lastColumnNumber!==void 0))for(let t=0;t<e.length-1;t++){let n=e[t],r=e[t+1];n.lineNumber===r.lineNumber&&(n.lastColumnNumber=r.columnNumber)}};x6.exports=T6});var S6={};x(S6,{default:()=>Cx});var xx,Sx,Cx,kx=g(()=>{"use strict";d();xx=En(kg(),1);bt();wx();Sx=class e extends fe{static{i(this,"SourceMaps")}static symbol=Symbol("SourceMaps");meta={symbol:e.symbol,supportedModes:["timespan","navigation"],dependencies:{Scripts:bx.symbol}};async fetchSourceMap(t,n){let r=await t.fetcher.fetchResource(n,{timeout:1500});if(r.content===null)throw new Error(`Failed fetching source map (${r.status})`);return xx.default.SourceMap.parseSourceMap(r.content)}parseSourceMapFromDataUrl(t){let n=Buffer.from(t.split(",")[1],"base64");return xx.default.SourceMap.parseSourceMap(n.toString())}_resolveUrl(t,n){try{return new URL(t,n).href}catch{return}}async _retrieveMapFromScript(t,n){if(!n.sourceMapURL)throw new Error("precondition failed: event.sourceMapURL should exist");let r=n.sourceMapURL.startsWith("data:"),a=n.name,o=r?n.sourceMapURL:this._resolveUrl(n.sourceMapURL,n.name);if(!o)return{scriptId:n.scriptId,scriptUrl:a,errorMessage:`Could not resolve map ur\
|
|
1765
1766
|
l: ${n.sourceMapURL}`};let s=r?void 0:o;try{let c=r?this.parseSourceMapFromDataUrl(o):await this.fetchSourceMap(t,o);if(typeof c.version!="number")throw new Error("Map has no numeric `version` field");if(!Array.isArray(c.sources))throw new Error("Map has no `sources` list");if(typeof c.mappings!="string")throw new Error("Map has no `mappings` field");return c.sections&&(c.sections=c.sections.filter(l=>l.map)),{scriptId:n.scriptId,scriptUrl:a,sourceMapUrl:s,map:c}}catch(c){return{scriptId:n.scriptId,scriptUrl:a,sourceMapUrl:s,errorMessage:c.toString()}}}async getArtifact(t){let n=t.dependencies.Scripts.filter(r=>r.sourceMapURL).map(r=>this._retrieveMapFromScript(t.driver,r));return Promise.all(n)}},Cx=Sx});var C6={};x(C6,{default:()=>Eme});async function wme(){let e=[],t=d41d8cd98f00b204e9800998ecf8427e_LibraryDetectorTests;for(let[n,r]of Object.entries(t))try{let a,o=new Promise(c=>a=setTimeout(()=>c(!1),1e3)),s=await Promise.race([r.test(window),o]);a&&clearTimeout(a),s&&e.push({id:r.id,name:n,version:s.version,npm:r.npm})}catch{}return e}var bme,Rx,Eme,k6=g(()=>{"use strict";d();fo();Ps();Ve();bt();bme=`function _createTimeoutHelper(){let e;return{timeoutPromise:new Promise(((t,o)=>{e=setTimeout((()=>o(new Error("Timed out"))),5e3)})),clearTimeout:()=>clearTimeout(e)}}var UNKNOWN_VERSION=null,d41d8cd98f00b204e9800998ecf8427e_LibraryDetectorTests={GWT:{id:"gwt",icon:"gwt",url:"http://www.gwtproject.org/",test:function(e){var t=e.document,o=t.getElementById("__gwt_historyFrame"),n=t.gwt_uid,r=t.body.__listener,i=t.body.__eventBits,s=e.__gwt_activeModules,c=e.__gwt_jsonp__,u=e.__gwt_scriptsLoaded||e.__gwt_stylesLoaded||e.__gwt_activeModules;if(o||n||r||i||s||c||u){for(var a=t.getElements\
|
|
1766
1767
|
ByTagName("iframe"),l=UNKNOWN_VERSION,N=0;N<a.length;N++)try{if(a[N].tabIndex<0&&a[N].contentWindow&&a[N].contentWindow.$gwt_version){l=a[N].contentWindow.$gwt_version;break}}catch(e){}return"0.0.999"==l&&(l="Google Internal"),{version:l}}return!1}},Ink:{id:"ink",icon:"ink",url:"http://ink.sapo.pt/",test:function(e){return!(!e.Ink||!e.Ink.createModule)&&{version:UNKNOWN_VERSION}}},Vaadin:{id:"vaadin",icon:"vaadin",url:"https://vaadin.com/",test:function(e){return!(!e.vaadin||!e.vaadin.registerWidgetset)&&{version:UNKNOWN_VERSION}}},Bootstrap:{id:"bootstrap",icon:"bootstrap",url:"http://getbootstrap.com/",npm:"bootstrap",test:function(e){var t,o=e.$&&e.$.fn;if(o&&(["affix","alert","button","carousel","collapse","dropdown","modal","popover","scrollspy","tab","tooltip"].some((function(o){if(e.$.fn[o]){if(e.$.fn[o].Constructor&&e.$.fn[o].Constructor.VERSION)return t=e.$.fn[o].Constructor.VERSION,!0;if(new RegExp("\\\\$this\\\\.data\\\\((?:'|\\")(?:bs\\\\.){1}"+o).test(e.$.fn[o].toString()))return t\
|
|
1767
1768
|
=">= 3.0.0 & <= 3.1.1",!0;if(new RegExp("\\\\$this\\\\.data\\\\((?:'|\\")"+o).test(e.$.fn[o].toString()))return t=">= 2.0.0 & <= 2.3.2",!0}return!1})),t))return{version:t};return!1}},Zurb:{id:"zurb",icon:"zurb",url:"https://foundation.zurb.com/",npm:"foundation-sites",test:function(e){return!(!e.Foundation||!e.Foundation.Toggler)&&{version:e.Foundation.version||UNKNOWN_VERSION}}},Polymer:{id:"polymer",icon:"polymer",url:"https://www.polymer-project.org/",npm:"@polymer/polymer",test:function(e){return!(!e.Polymer||!e.Polymer.dom)&&{version:e.Polymer.version||UNKNOWN_VERSION}}},LitElement:{id:"litelement",icon:"polymer",url:"https://lit-element.polymer-project.org/",npm:"lit-element",test:function(e){if(e.litElementVersions&&e.litElementVersions.length){var t=[...e.litElementVersions].sort(((e,t)=>e.localeCompare(t,void 0,{numeric:!0})));return{version:t[t.length-1]}}return!1}},"lit-html":{id:"lit-html",icon:"polymer",url:"https://lit-html.polymer-project.org/",npm:"lit-element",test:function(e\
|
|
@@ -1794,30 +1795,30 @@ sions;return{version:Array.isArray(e)?e.map((e=>\`core-js-\${e.mode}@\${e.versio
|
|
|
1794
1795
|
pp":{id:"create-react-app",icon:"cra",url:"https://create-react-app.dev/",npm:"react-scripts",test:function(e){let t,o,n=e.document.body.firstElementChild;do{"noscript"===n.localName?t=n:"root"===n.id&&(o=n)}while(n=n.nextElementSibling);return!!(o&&t&&/You need to enable JavaScript to run this app/.test(t.textContent))&&{version:UNKNOWN_VERSION}}},"Guess.js":{id:"guessjs",icon:"guessjs",url:"https://guess-js.github.io/",test:function(e){return!(!e.__GUESS__||!e.__GUESS__.guess)&&{version:UNKNOWN_VERSION}}},"October CMS":{id:"octobercms",icon:"october",url:"https://octobercms.com/",npm:null,test:function(e){const t=document.querySelector('meta[name="generator"][content^="OctoberCMS"]'),o=document.querySelector('meta[name="generator"][content^="October CMS"]'),n=/\\/modules\\/system\\/assets\\/(css|js)\\/framework(\\.extras|\\.combined)?(-min)?/,r=Array.from(document.querySelectorAll("link,style,script")||[]);return!!(t||o||r.some((e=>n.test(e.src||e.href))))&&{version:UNKNOWN_VERSION}}},Jooml\
|
|
1795
1796
|
a:{id:"joomla",icon:"joomla",url:"https://www.joomla.org/",npm:null,test:function(e){const t=document.querySelector('meta[name=generator][content^="Joomla"]'),o=!!document.querySelectorAll('script[src*="/media/jui/js/bootstrap.min.js"]').length;return t?{version:t.getAttribute("content").replace(/^\\w+\\s/,"")}:!(!e.Joomla&&!o)&&{version:UNKNOWN_VERSION}}},Sugar:{id:"sugar",icon:"sugar",url:"https://sugarjs.com",npm:"sugar",test:function(e){return e.Sugar?{version:e.Sugar.VERSION||UNKNOWN_VERSION}:!!e.Array.SugarMethods&&{version:UNKNOWN_VERSION}}},Bento:{id:"bentojs",icon:"bentojs",url:"https://bentojs.dev",npm:"https://www.npmjs.com/org/bentoproject",test:function(e){return!(!e.BENTO||!e.BENTO.push)&&{version:UNKNOWN_VERSION}}},"WP Rocket":{id:"wp-rocket",icon:"wp-rocket",url:"https://wp-rocket.me/",npm:null,test:async function(e){const t="undefined"!=typeof RocketLazyLoadScripts||"undefined"!=typeof RocketPreloadLinksConfig||"undefined"!=typeof rocket_lazy,o=!!document.querySelector("\
|
|
1796
1797
|
style#wpr-usedcss"),n=document.lastChild.nodeType===Node.COMMENT_NODE&&document.lastChild.textContent.includes("WP Rocket");return!!(o||t||n)&&{version:UNKNOWN_VERSION}}},NitroPack:{id:"nitropack",icon:"nitropack",url:"https://nitropack.io/",npm:null,test:async function(e){return!!document.querySelector('meta[name="generator"][content="NitroPack"]')&&{version:UNKNOWN_VERSION}}},Remix:{id:"remix",icon:"remix",url:"https://remix.run/",npm:"remix",test:function(e){return!!e.__remixContext&&{version:UNKNOWN_VERSION}}}};`;i(wme,"detectLibraries");Rx=class e extends fe{static{i(this,"Stacks")}constructor(){super(),this.meta={supportedModes:["snapshot","navigation"]}}static async collectStacks(t){let n={msg:"Collect stacks",id:"lh:gather:collectStacks"};M.time(n);let a=(await t.evaluate(wme,{args:[],deps:[bme]})).map(o=>({detector:"js",id:o.id,name:o.name,version:typeof o.version=="number"?String(o.version):o.version||void 0,npm:o.npm||void 0}));return M.timeEnd(n),a}async getArtifact(t){try{
|
|
1797
|
-
return await e.collectStacks(t.driver.executionContext)}catch{return[]}}},Eme=Rx});var R6={};x(R6,{default:()=>Tme});var _x,Tme,_6=g(()=>{"use strict";d();Ve();bt();zo();_x=class extends fe{static{i(this,"Stylesheets")}constructor(){super(),this._session=void 0,this._sheetPromises=new Map,this._onStylesheetAdded=this._onStylesheetAdded.bind(this)}meta={supportedModes:["snapshot","timespan","navigation"]};_onStylesheetAdded(t){if(!this._session)throw new Error("Session not initialized");let n=t.header.styleSheetId,r=this._session.sendCommand("CSS.getStyleSheetText",{styleSheetId:n}).then(a=>({header:t.header,content:a.text})).catch(a=>(M.warn("Stylesheets",`Error fetching content of stylesheet with URL "${t.header.sourceURL}"`),
|
|
1798
|
+
return await e.collectStacks(t.driver.executionContext)}catch{return[]}}},Eme=Rx});var R6={};x(R6,{default:()=>Tme});var _x,Tme,_6=g(()=>{"use strict";d();Ve();bt();zo();_x=class extends fe{static{i(this,"Stylesheets")}constructor(){super(),this._session=void 0,this._sheetPromises=new Map,this._onStylesheetAdded=this._onStylesheetAdded.bind(this)}meta={supportedModes:["snapshot","timespan","navigation"]};_onStylesheetAdded(t){if(!this._session)throw new Error("Session not initialized");let n=t.header.styleSheetId,r=this._session.sendCommand("CSS.getStyleSheetText",{styleSheetId:n}).then(a=>({header:t.header,content:a.text})).catch(a=>(M.warn("Stylesheets",`Error fetching content of stylesheet with URL "${t.header.sourceURL}"`),bn.captureException(a,{tags:{gatherer:"Stylesheets"},extra:{url:t.header.sourceURL},level:"error"}),null));this._sheetPromises.set(n,r)}async getArtifact(t){let n=t.driver.executionContext,r=t.driver.defaultSession;this._session=r,r.on("CSS.styleSheetAdded",this._onStylesheetAdded),await r.sendCommand("DOM.enable"),await r.sendCommand("CSS.enab\
|
|
1798
1799
|
le"),await n.evaluate(()=>window.getComputedStyle(document.body),{args:[]}),r.off("CSS.styleSheetAdded",this._onStylesheetAdded);let a=await Promise.all(this._sheetPromises.values());await r.sendCommand("CSS.disable"),await r.sendCommand("DOM.disable");let o=new Map;for(let s of a)s&&s.header.length!==0&&o.set(s.content,s);return Array.from(o.values())}},Tme=_x});var Ix,ld,Dx=g(()=>{"use strict";d();rn();po();Ix=class extends Ln{static{i(this,"LHTraceProcessor")}static createNoNavstartError(){return new z(z.errors.NO_NAVSTART)}static createNoResourceSendRequestError(){return new z(z.errors.NO_RESOURCE_REQUEST)}static createNoTracingStartedError(){return new z(z.errors.NO_TRACING_STARTED)}static createNoFirstContentfulPaintError(){return new z(z.errors.NO_FCP)}},ld=Ix});var Ax,Be,Xt=g(()=>{"use strict";d();Ae();Dx();Ax=class{static{i(this,"ProcessedTrace")}static async compute_(t){return ld.processTrace(t)}},Be=Y(Ax,null)});var xme,I6,Sme,Nx,Rg,Mx=g(()=>{"use strict";d();Xt();Ae();rn();xme=new Set(["keydown","keypress","keyup"]),I6=new Set(["mousedown","mouseup","pointerdown","pointerup","click"]),Sme={keyboard:xme,tapOrClick:I6,drag:I6},Nx=class e{static{i(this,"Responsiveness")}static getHighPercentileResponsiveness(t){let n=t.frameTreeEvents.filter(a=>a.name==="Responsiveness.Renderer.UserInteraction").sort((a,o)=>o.args.data.maxDuration-a.args.data.maxDuration);if(n.length===0)return null;let r=Math.min(9,Math.floor(n.length/50));return n[r]}static findInteractionEvent(t,{traceEvents:n}){let r=n.filter(l=>l.name==="EventTiming"&&l.ph!=="e");if(r.length&&r.every(l=>!l.args.data?.frame))throw new z(z.errors.UNSUPPORTED_OLD_CHROME,{featureName:"detailed EventTiming trace events"});let{maxDuration:a,interactionType:o}=t.args.data,s,c=Number.POSITIVE_INFINITY;for(let l of r){if(l.args.data.frame!==t.args.frame)continue;let{type:u,duration:m}=l.args.data,p=Sme[o];if(!p)throw new Error(`unexpected responsive\
|
|
1799
1800
|
ness interactionType '${o}'`);if(!p.has(u))continue;let f=Math.abs(m-a);f<c&&(s=l,c=f)}if(!s)throw new Error(`no interaction event found for responsiveness type '${o}'`);if(c>5)throw new Error(`no interaction event found within 5ms of responsiveness maxDuration (max: ${a}, closest ${s.args.data.duration})`);return s}static async compute_(t,n){let{settings:r,trace:a}=t;if(r.throttlingMethod==="simulate")throw new Error("Responsiveness currently unsupported by simulated throttling");let o=await Be.request(a,n),s=e.getHighPercentileResponsiveness(o);if(!s)return null;let c=e.findInteractionEvent(s,a);return JSON.parse(JSON.stringify(c))}},Rg=Y(Nx,["trace","settings"])});function Cme({x:e,y:t,width:n,height:r}){return{left:e,top:t,right:e+n,bottom:t+r,width:n,height:r}}function D6(e,t){let n=Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top);if(n<=0)return 0;let r=Math.min(e.right,t.right)-Math.max(e.left,t.left);return r<=0?0:r*n}function Ox(e){return e.width*e.height}function Px(e){let t={x:e[0],y:e[1],width:e[2],height:e[3]};return Cme(t)}var A6=g(()=>{"use strict";d();i(Cme,"addRectTopAndBottom");i(D6,"getRectOverlapArea");i(Ox,"getRectArea");i(Px,"traceRectToLHRect")});function N6(){(function(e){function t(a){return a===void 0?0:Number(a)}i(t,"number");function n(a,o){return a!==o&&!(isNaN(a)&&isNaN(o))}i(n,"different");function r(a,o,s,c){let l,u,m,p,f,h,y,b;l=t(a),u=t(o),m=t(s),p=t(c),Object.defineProperties(this,{x:{get:i(function(){return l},"get"),set:i(function(w){n(l,w)&&(l=w,f=h=void 0)},"set"),enumerable:!0},y:{get:i(function(){return u},"get"),set:i(function(w){n(u,w)&&(u=w,y=b=void 0)},"set"),enumerable:!0},width:{get:i(function(){return m},"get"),set:i(function(w){n(m,w)&&(m=w,f=h=void 0)},"set"),enumerable:!0},height:{get:i(function(){return p},"get"),set:i(function(w){n(p,w)&&(p=w,y=b=void 0)},"set"),enumerable:!0},left:{get:i(function(){return f===void 0&&(f=l+Math.min(0,m)),f},"get"),enumerable:!0},right:{get:i(function(){return h===void 0&&(h=l+Math.max(0,m)),h},"get"),enumerable:!0},top:{get:i(function(){return y===void 0&&(y=u+Math.min(0,p)),y},"get"),enumerable:!0},bottom:{get:i(function(){return b===void 0&&(b=u+Math.max(0,p)),b},
|
|
1800
1801
|
"get"),enumerable:!0}})}i(r,"DOMRect"),globalThis.DOMRect=r})(globalThis)}var M6=g(()=>{"use strict";d();i(N6,"polyfillDOMRect")});var _g,ud,Lx,O6,Fx=g(()=>{"use strict";d();yT();M6();N6();_g=ng.TraceProcessor,ud=Vt.ModelHandlers,Lx=td,O6=Ee});var Rme,Ux,Cr,rs=g(()=>{"use strict";d();Ae();Xt();A6();Fx();zo();Rme=500,Ux=class e{static{i(this,"CumulativeLayoutShift")}static getLayoutShiftEvents(t){let n=[],r=!1,a=t.timestamps.timeOrigin,o=t.frameEvents.find(s=>s.name==="viewport");o&&(a=o.ts);for(let s of t.frameTreeEvents)if(!(s.name!=="LayoutShift"||!s.args.data||s.args.data.is_main_frame===void 0)){if(s.args.data.weighted_score_delta===void 0)throw new Error("CLS missing weighted_score_delta");if(s.args.data.had_recent_input){if((s.ts-a)/1e3>Rme||r)continue}else r=!0;n.push({ts:s.ts,isMainFrame:s.args.data.is_main_frame,weightedScore:s.args.data.weighted_score_delta,impactedNodes:s.args.data.impacted_nodes,event:s})}return n}static getImpactByNodeId(t){let n=new Map;for(let r of t){if(!r.impactedNodes)continue;let a=0,o=new Map;for(let s of r.impactedNodes){if(!s.node_id||!s.old_rect||!s.new_rect)continue;let c=Px(s.old_rect),l=Px(s.new_rect),u=Ox(c)+Ox(l)-D6(c,l);o.set(s.node_id,u),a+=u}for(let[s,c]of o.entries()){let l=n.
|
|
1801
1802
|
get(s)||0;l+=c/a*r.weightedScore,n.set(s,l)}}return n}static calculate(t){let a=0,o=0,s=Number.NEGATIVE_INFINITY,c=Number.NEGATIVE_INFINITY;for(let l of t)(l.ts-s>5e6||l.ts-c>1e6)&&(s=l.ts,o=0),c=l.ts,o+=l.weightedScore,a=Math.max(a,o);return a}static async computeWithSharedTraceEngine(t,n){let r=i(async s=>{let c=new _g({LayoutShifts:ud.LayoutShifts,Screenshots:ud.Screenshots});if(await c.parse(s,{}),!c.data)throw new Error("null trace engine result");return c.data.LayoutShifts.sessionMaxScore},"run"),a=await r(t.map(s=>s.event)),o=await r(n.map(s=>s.event));return{cumulativeLayoutShift:a,cumulativeLayoutShiftMainFrame:o}}static async compute_(t,n){let r=await Be.request(t,n),a=e.getLayoutShiftEvents(r),o=e.getImpactByNodeId(a),s=a.filter(f=>f.isMainFrame),c=e.calculate(a),l=e.calculate(s),u,m=!1,p=!0;if(a.some(f=>f.event.args.data?.had_recent_input)&&(p=!1),p)try{if(u=await this.computeWithSharedTraceEngine(a,s),m=u.cumulativeLayoutShift!==c||u.cumulativeLayoutShiftMainFrame!==l,m){m=
|
|
1802
|
-
!0;let f=JSON.stringify({cumulativeLayoutShift:c,cumulativeLayoutShiftMainFrame:l}),h=JSON.stringify(u);throw new Error(`new trace engine differed. expected: ${f}, got: ${h}`)}}catch(f){console.error(f),m=!0;let h=new Error("Error when using new trace engine",{cause:f});if(globalThis.expect)throw h;
|
|
1803
|
+
!0;let f=JSON.stringify({cumulativeLayoutShift:c,cumulativeLayoutShiftMainFrame:l}),h=JSON.stringify(u);throw new Error(`new trace engine differed. expected: ${f}, got: ${h}`)}}catch(f){console.error(f),m=!0;let h=new Error("Error when using new trace engine",{cause:f});if(globalThis.expect)throw h;bn.captureException(h,{tags:{computed:"new-trace-engine"},level:"error",extra:{errorMsg:f.toString()}})}return{cumulativeLayoutShift:c,cumulativeLayoutShiftMainFrame:l,impactByNodeId:o,newEngineResult:u,newEngineResultDiffered:m}}},Cr=Y(Ux,null)});var L6,Bx,Dn,Ya=g(()=>{"use strict";d();Ve();A();Fx();Ae();rs();Xt();L6=En(kg(),1);Sn();Bx=class e{static{i(this,"TraceEngineResult")}static async runTraceEngine(t,n,r,a){let o=new _g(ud),s=t,c={};if(n.throttlingMethod&&(c.throttlingMethod=n.throttlingMethod),n.throttling&&(c.throttling=n.throttling),n.precomputedLanternData&&(c.precomputedLanternData=n.precomputedLanternData),O6.SyntheticEvents.SyntheticEventsManager.createAndActivate(s),await o.parse(s,{logger:{start(l){let u=`lh:computed:TraceEngineResult:${l}`;M.time({msg:`Trace Engine ${l}`,id:u})},end(l){let u=`lh:computed:TraceEngineResult:${l}`;M.timeEnd({msg:`Trace Engine ${l}`,id:u})}},lanternSettings:c,metadata:{hostDPR:a},async resolveSourceMap(l){let u=r.find(f=>f.scriptId===l.scriptId);if(!u||!u.map)return null;let m=u.scriptUrl||"compiled.js",p=u.sourceMapUrl||"compiled.js.map";return new L6.default.SourceMap(m,p,u.map)}}),!o.data)throw new Error("No data");if(!o.insights)throw new Error("No insights");return this.localizeInsights(
|
|
1803
1804
|
o.insights),{data:o.data,insights:o.insights}}static localizeFunction(t,n){return(...r)=>this.localize(t,n(...r))}static localize(t,n){let r;if(n.values){r={};for(let[a,o]of Object.entries(n.values))o&&typeof o=="object"&&"__i18nBytes"in o?r[a]=o.__i18nBytes:o&&typeof o=="object"&&"__i18nMillis"in o?r[a]=`${o.__i18nMillis} ms`:o&&typeof o=="object"&&"i18nId"in o?r[a]=t(o.i18nId,o.values).formattedDefault:r[a]=o}return t(n.i18nId,r)}static localizeObject(t,n){function r(a,o,s){if(!s.has(s)){if(s.add(a),a instanceof Map)for(let[c,l]of a)l&&typeof l=="object"&&"i18nId"in l?a.set(c,o(l)):r(l,o,s);else if(a&&typeof a=="object"&&!Array.isArray(a))Object.keys(a).forEach(c=>{let l=a[c];l&&typeof l=="object"&&"i18nId"in l?a[c]=o(l):r(l,o,s)});else if(Array.isArray(a))for(let c=0;c<a.length;c++){let l=a[c];l&&typeof l=="object"&&"i18nId"in l?a[c]=o(l):r(l,o,s)}}}i(r,"recursiveReplaceLocalizableStrings"),r(n,a=>{let o=a.values;if(o){o=structuredClone(o);for(let[s,c]of Object.entries(o))c&&typeof c==
|
|
1804
|
-
"object"&&"__i18nBytes"in c?o[s]=c.__i18nBytes:c&&typeof c=="object"&&"__i18nMillis"in c?o[s]=`${c.__i18nMillis} ms`:c&&typeof c=="object"&&"i18nId"in c&&(o[s]=t(c.i18nId,c.values).formattedDefault)}return t(a.i18nId,o)},new Set)}static localizeInsights(t){for(let n of t.values())for(let[r,a]of Object.entries(n.model)){if(a instanceof Error)continue;let o;if(r in Lx.Models){let l=r;o=Lx.Models[l].UIStrings}else throw new Error(`insight missing UIStrings: ${r}`);let s=`node_modules/@paulirish/trace_engine/models/trace/insights/${r}.js`,c=T(s,o);this.localizeObject(c,a)}}static async compute_(t,n){let r=await Be.request(t.trace,n),a=new Set(Cr.getLayoutShiftEvents(r).map(c=>c.event)),o=[...t.trace.traceEvents];for(let c=0;c<o.length;c++){let l=o[c];if(l.name!=="LayoutShift"||!l.args.data)continue;let u=a.has(l);l.args.data.had_recent_input&&u&&(l=JSON.parse(JSON.stringify(l)),l.args.data.had_recent_input=!1,o[c]=l)}return await e.runTraceEngine(o,t.settings,t.SourceMaps,t.HostDPR)}},
|
|
1805
|
+
"object"&&"__i18nBytes"in c?o[s]=c.__i18nBytes:c&&typeof c=="object"&&"__i18nMillis"in c?o[s]=`${c.__i18nMillis} ms`:c&&typeof c=="object"&&"i18nId"in c&&(o[s]=t(c.i18nId,c.values).formattedDefault)}return t(a.i18nId,o)},new Set)}static localizeInsights(t){for(let n of t.values())for(let[r,a]of Object.entries(n.model)){if(a instanceof Error)continue;let o;if(r in Lx.Models){let l=r;o=Lx.Models[l].UIStrings}else throw new Error(`insight missing UIStrings: ${r}`);let s=`node_modules/@paulirish/trace_engine/models/trace/insights/${r}.js`,c=T(s,o);this.localizeObject(c,a)}}static async compute_(t,n){let r=await Be.request(t.trace,n),a=new Set(Cr.getLayoutShiftEvents(r).map(c=>c.event)),o=[...t.trace.traceEvents];for(let c=0;c<o.length;c++){let l=o[c];if(l.name!=="LayoutShift"||!l.args.data)continue;let u=a.has(l);l.args.data.had_recent_input&&u&&(l=JSON.parse(JSON.stringify(l)),l.args.data.had_recent_input=!1,o[c]=l)}return await e.runTraceEngine(o,t.settings,t.SourceMaps,t.HostDPR)}},Dn=Y(
|
|
1805
1806
|
Bx,["trace","settings","SourceMaps","HostDPR"])});var F6={};x(F6,{default:()=>dd});function Ime(){let e=this.nodeType===document.ELEMENT_NODE?this:this.parentElement;!e&&this instanceof ShadowRoot&&(e=this.host);let t;return e&&(t={node:getNodeDetails(e)}),t}var _me,jx,dd,Ig=g(()=>{"use strict";d();bt();VT();ur();zo();Cl();Xt();Mx();rs();gg();Ya();kx();_me=15;i(Ime,"getNodeDetailsData");jx=class e extends fe{static{i(this,"TraceElements")}meta={supportedModes:["timespan","navigation"],dependencies:{Trace:wi.symbol,SourceMaps:Cx.symbol}};animationIdToName=new Map;constructor(){super(),this._onAnimationStarted=this._onAnimationStarted.bind(this)}_onAnimationStarted({animation:{id:t,name:n}}){n&&this.animationIdToName.set(t,n)}static async getTraceEngineElements(t,n){let r=[...t.insights.values()].at(-1);if(!r)return[];if(n){if(r.navigation?.args.data?.navigationId!==n)return[]}else if(r.navigation)return[];function a(s,c,l){if(!l.has(l))if(l.add(s),s&&typeof s=="object"&&!Array.isArray(s))if(s instanceof Map)for(let[u,m]of s)typeof m=="\
|
|
1806
1807
|
object"?a(m,c,l):c(m,u);else Object.keys(s).forEach(u=>{typeof s[u]=="object"?a(s[u],c,l):c(s[u],u)});else Array.isArray(s)&&s.forEach(u=>{(typeof u=="object"||Array.isArray(u))&&a(u,c,l)})}i(a,"recursiveObjectEnumerate");let o=[];a(r.model,(s,c)=>{typeof s=="number"&&["nodeId","node_id","backendNodeId"].includes(c)&&o.push(s)},new Set);for(let s of r.model.CLSCulprits.shifts.values())o.push(...s.unsizedImages.map(c=>c.backendNodeId));return[...new Set(o)].map(s=>({nodeId:s}))}static getBiggestImpactNodeForShiftEvent(t,n){let r,a=Number.NEGATIVE_INFINITY;for(let o of t){let s=n.get(o.node_id);s!==void 0&&s>a&&(r=o.node_id,a=s)}return r}static async getTopLayoutShifts(t,n,r){let{impactByNodeId:a}=await Cr.request(t,r);return(n.data.LayoutShifts.clusters??[]).flatMap(c=>c.events).sort((c,l)=>l.args.data.weighted_score_delta-c.args.data.weighted_score_delta).slice(0,_me).flatMap(c=>{let l=[],u=c.args.data.impacted_nodes||[],m=this.getBiggestImpactNodeForShiftEvent(u,a);return m!==void 0&&
|
|
1807
1808
|
l.push(m),l.map(p=>({nodeId:p}))})}static async getResponsivenessElement(t,n){let{settings:r}=n;try{let a=await Rg.request({trace:t,settings:r},n);return a?{nodeId:a.args.data.nodeId}:void 0}catch{return}}async getAnimatedElements(t){let n=new Map;for(let o of t){if(o.name!=="Animation"||!o.id2||!o.id2.local)continue;let s=o.id2.local,c=n.get(s)||{begin:void 0,status:void 0};o.ph==="b"?c.begin=o:o.ph==="n"&&o.args.data&&o.args.data.compositeFailed!==void 0&&(c.status=o),n.set(s,c)}let r=new Map;for(let{begin:o,status:s}of n.values()){let c=o?.args?.data?.nodeId,l=o?.args?.data?.id,u=s?.args?.data?.compositeFailed,m=s?.args?.data?.unsupportedProperties;if(!c||!l)continue;let p=r.get(c)||new Set;p.add({animationId:l,failureReasonsMask:u,unsupportedProperties:m}),r.set(c,p)}let a=[];for(let[o,s]of r){let c=[];for(let{animationId:l,failureReasonsMask:u,unsupportedProperties:m}of s){let p=this.animationIdToName.get(l);c.push({name:p,failureReasonsMask:u,unsupportedProperties:m})}a.push({nodeId:o,
|
|
1808
1809
|
animations:c})}return a}async startInstrumentation(t){await t.driver.defaultSession.sendCommand("Animation.enable"),t.driver.defaultSession.on("Animation.animationStarted",this._onAnimationStarted)}async stopInstrumentation(t){t.driver.defaultSession.off("Animation.animationStarted",this._onAnimationStarted),await t.driver.defaultSession.sendCommand("Animation.disable")}async getNodeDetails(t,n){try{let r=await i8(t,n);if(!r)return null;let a=Ho.serializeDeps([Je.getNodeDetails,Ime]);return await t.sendCommand("Runtime.callFunctionOn",{objectId:r,functionDeclaration:`function () {
|
|
1809
1810
|
${a}
|
|
1810
1811
|
return getNodeDetailsData.call(this);
|
|
1811
|
-
}`,returnByValue:!0,awaitPromise:!0})}catch(r){
|
|
1812
|
-
ode"},label:Nme(j6.failingElementsHeader)}],y;return(m||p)&&(y={type:"debugdata",impact:m,tags:p}),{score:+(u===void 0),details:{...E.makeTableDetails(h,f),debugData:y}}}},O=qx});var H6={};x(H6,{UIStrings:()=>md,default:()=>Mme});var md,zx,Gx,Mme,q6=g(()=>{"use strict";d();te();A();md={title:"`[accesskey]` values are unique",failureTitle:"`[accesskey]` values are not unique",description:"Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more about access keys](https://dequeuniversity.com/rules/axe/4.11/accesskeys)."},zx=T("core/audits/accessibility/accesskeys.js",md),Gx=class extends O{static{i(this,"Accesskeys")}static get meta(){return{id:"accesskeys",title:zx(md.title),failureTitle:zx(md.failureTitle),description:zx(md.description),requiredArtifacts:["Accessibility"]}}},Mme=Gx});var z6={};x(z6,{UIStrings:()=>pd,default:()=>Ome});var pd,Wx,Vx,Ome,G6=g(()=>{"use strict";d();te();A();pd={title:"`[aria-*]` attributes match their roles",failureTitle:"`[aria-*]` attributes do not match their roles",description:"Each ARIA `role` supports a specific subset of `aria-*` attributes. Mismatching these invalidates the `aria-*` attributes. [Learn how to match ARIA attributes to their roles](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-attr)."},Wx=T("core/audits/accessibility/aria-allowed-attr.js",pd),Vx=class extends O{static{i(this,"ARIAAllowedAttr")}static get meta(){return{id:"aria-allowed-attr",title:Wx(pd.title),failureTitle:Wx(pd.failureTitle),description:Wx(pd.description),requiredArtifacts:["Accessibility"]}}},Ome=Vx});var W6={};x(W6,{UIStrings:()=>fd,default:()=>Pme});var fd,$x,Yx,Pme,V6=g(()=>{"use strict";d();te();A();fd={title:"Uses ARIA roles only on compatible elements",failureTitle:"Uses ARIA roles on incompatible elements",description:"Many HTML elements can only be assigned certain ARIA roles. Using ARIA roles where they are not allowed can interfere with the accessibility of the web page. [Learn more about ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-role)."},$x=T("core/audits/accessibility/aria-allowed-role.js",fd),Yx=class extends O{static{i(this,"ARIAAllowedRole")}static get meta(){return{id:"aria-allowed-role",title:$x(fd.title),failureTitle:$x(fd.failureTitle),description:$x(fd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},Pme=Yx});var $6={};x($6,{UIStrings:()=>hd,default:()=>Lme});var hd,Kx,Xx,Lme,Y6=g(()=>{"use strict";d();te();A();hd={title:"`button`, `link`, and `menuitem` elements have accessible names",failureTitle:"`button`, `link`, and `menuitem` elements do not have accessible names.",description:"When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to make command elements more accessible](https://dequeuniversity.com/rules/axe/4.11/aria-command-name)."},Kx=T("core/audits/accessibility/aria-command-name.js",hd),Xx=class extends O{static{i(this,"AriaCommandName")}static get meta(){return{id:"aria-command-name",title:Kx(hd.title),failureTitle:Kx(hd.failureTitle),description:Kx(hd.description),requiredArtifacts:["Accessibility"]}}},Lme=Xx});var K6={};x(K6,{UIStrings:()=>gd,default:()=>Fme});var gd,Jx,Zx,Fme,X6=g(()=>{"use strict";d();te();A();gd={title:"ARIA attributes are used as specified for the element's role",failureTitle:"ARIA attributes are not used as specified for the element's role",description:"Some ARIA attributes are only allowed on an element under certain conditions. [Learn more about conditional ARIA attributes](https://dequeuniversity.com/rules/axe/4.11/aria-conditional-attr)."},Jx=T("core/audits/accessibility/aria-conditional-attr.js",gd),Zx=class extends O{static{i(this,"AriaConditionalAttr")}static get meta(){return{id:"aria-conditional-attr",title:Jx(gd.title),failureTitle:Jx(gd.failureTitle),description:Jx(gd.description),requiredArtifacts:["Accessibility"]}}},Fme=Zx});var J6={};x(J6,{UIStrings:()=>yd,default:()=>Ume});var yd,Qx,eS,Ume,Z6=g(()=>{"use strict";d();te();A();yd={title:"Deprecated ARIA roles were not used",failureTitle:"Deprecated ARIA roles were used",description:"Deprecated ARIA roles may not be processed correctly by assistive technology. [Learn more about deprecated ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-deprecated-role)."},Qx=T("core/audits/accessibility/aria-deprecated-role.js",yd),eS=class extends O{static{i(this,"AriaDeprecatedRole")}static get meta(){return{id:"aria-deprecated-role",title:Qx(yd.title),failureTitle:Qx(yd.failureTitle),description:Qx(yd.description),requiredArtifacts:["Accessibility"]}}},Ume=eS});var Q6={};x(Q6,{UIStrings:()=>vd,default:()=>Bme});var vd,tS,nS,Bme,eU=g(()=>{"use strict";d();te();A();vd={title:'Elements with `role="dialog"` or `role="alertdialog"` have accessible names.',failureTitle:'Elements with `role="dialog"` or `role="alertdialog"` do not have accessible names.',description:"ARIA dialog elements without accessible names may prevent screen readers users from discerning the purpose of these elements. [Learn how to make ARIA dialog elements more accessible](https://dequeuniversity.com/rules/axe/4.11/aria-dialog-name)."},tS=T("core/audits/accessibility/aria-dialog-name.js",vd),nS=class extends O{static{i(this,"AriaDialogName")}static get meta(){return{id:"aria-dialog-name",title:tS(vd.title),failureTitle:tS(vd.failureTitle),description:tS(vd.description),requiredArtifacts:["Accessibility"]}}},Bme=nS});var tU={};x(tU,{UIStrings:()=>bd,default:()=>jme});var bd,rS,aS,jme,nU=g(()=>{"use strict";d();te();A();bd={title:'`[aria-hidden="true"]` is not present on the document `<body>`',failureTitle:'`[aria-hidden="true"]` is present on the document `<body>`',description:'Assistive technologies, like screen readers, work inconsistently when `aria-hidden="true"` is set on the document `<body>`. [Learn how `aria-hidden` affects the document body](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-body).'},rS=T("core/audits/accessibility/aria-hidden-body.js",bd),aS=class extends O{static{i(this,"AriaHiddenBody")}static get meta(){return{id:"aria-hidden-body",title:rS(bd.title),failureTitle:rS(bd.failureTitle),description:rS(bd.description),requiredArtifacts:["Accessibility"]}}},jme=aS});var rU={};x(rU,{UIStrings:()=>wd,default:()=>Hme});var wd,oS,iS,Hme,aU=g(()=>{"use strict";d();te();A();wd={title:'`[aria-hidden="true"]` elements do not contain focusable descendents',failureTitle:'`[aria-hidden="true"]` elements contain focusable descendents',description:'Focusable descendents within an `[aria-hidden="true"]` element prevent those interactive elements from being available to users of assistive technologies like screen readers. [Learn how `aria-hidden` affects focusable elements](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-focus).'},oS=T("core/audits/accessibility/aria-hidden-focus.js",wd),iS=class extends O{static{i(this,"AriaHiddenFocus")}static get meta(){return{id:"aria-hidden-focus",title:oS(wd.title),failureTitle:oS(wd.failureTitle),description:oS(wd.description),requiredArtifacts:["Accessibility"]}}},Hme=iS});var oU={};x(oU,{UIStrings:()=>Ed,default:()=>qme});var Ed,sS,cS,qme,iU=g(()=>{"use strict";d();te();A();Ed={title:"ARIA input fields have accessible names",failureTitle:"ARIA input fields do not have accessible names",description:"When an input field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about input field labels](https://dequeuniversity.com/rules/axe/4.11/aria-input-field-name)."},sS=T("core/audits/accessibility/aria-input-field-name.js",Ed),cS=class extends O{static{i(this,"AriaInputFieldName")}static get meta(){return{id:"aria-input-field-name",title:sS(Ed.title),failureTitle:sS(Ed.failureTitle),description:sS(Ed.description),requiredArtifacts:["Accessibility"]}}},qme=cS});var sU={};x(sU,{UIStrings:()=>Td,default:()=>zme});var Td,lS,uS,zme,cU=g(()=>{"use strict";d();te();A();Td={title:"ARIA `meter` elements have accessible names",failureTitle:"ARIA `meter` elements do not have accessible names.",description:"When a meter element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `meter` elements](https://dequeuniversity.com/rules/axe/4.11/aria-meter-name)."},lS=T("core/audits/accessibility/aria-meter-name.js",Td),uS=class extends O{static{i(this,"AriaMeterName")}static get meta(){return{id:"aria-meter-name",title:lS(Td.title),failureTitle:lS(Td.failureTitle),description:lS(Td.description),requiredArtifacts:["Accessibility"]}}},zme=uS});var lU={};x(lU,{UIStrings:()=>xd,default:()=>Gme});var xd,dS,mS,Gme,uU=g(()=>{"use strict";d();te();A();xd={title:"ARIA `progressbar` elements have accessible names",failureTitle:"ARIA `progressbar` elements do not have accessible names.",description:"When a `progressbar` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to label `progressbar` elements](https://dequeuniversity.com/rules/axe/4.11/aria-progressbar-name)."},dS=T("core/audits/accessibility/aria-progressbar-name.js",xd),mS=class extends O{static{i(this,"AriaProgressbarName")}static get meta(){return{id:"aria-progressbar-name",title:dS(xd.title),failureTitle:dS(xd.failureTitle),description:dS(xd.description),requiredArtifacts:["Accessibility"]}}},Gme=mS});var dU={};x(dU,{UIStrings:()=>Sd,default:()=>Wme});var Sd,pS,fS,Wme,mU=g(()=>{"use strict";d();te();A();Sd={title:"Elements use only permitted ARIA attributes",failureTitle:"Elements use prohibited ARIA attributes",description:"Using ARIA attributes in roles where they are prohibited can mean that important information is not communicated to users of assistive technologies. [Learn more about prohibited ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr)."},pS=T("core/audits/accessibility/aria-prohibited-attr.js",Sd),fS=class extends O{static{i(this,"AriaProhibitedAttr")}static get meta(){return{id:"aria-prohibited-attr",title:pS(Sd.title),failureTitle:pS(Sd.failureTitle),description:pS(Sd.description),requiredArtifacts:["Accessibility"]}}},Wme=fS});var pU={};x(pU,{UIStrings:()=>Cd,default:()=>Vme});var Cd,hS,gS,Vme,fU=g(()=>{"use strict";d();te();A();Cd={title:"`[role]`s have all required `[aria-*]` attributes",failureTitle:"`[role]`s do not have all required `[aria-*]` attributes",description:"Some ARIA roles have required attributes that describe the state of the element to screen readers. [Learn more about roles and required attributes](https://dequeuniversity.com/rules/axe/4.11/aria-required-attr)."},hS=T("core/audits/accessibility/aria-required-attr.js",Cd),gS=class extends O{static{i(this,"ARIARequiredAttr")}static get meta(){return{id:"aria-required-attr",title:hS(Cd.title),failureTitle:hS(Cd.failureTitle),description:hS(Cd.description),requiredArtifacts:["Accessibility"]}}},Vme=gS});var hU={};x(hU,{UIStrings:()=>kd,default:()=>$me});var kd,yS,vS,$me,gU=g(()=>{"use strict";d();te();A();kd={title:"Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children.",failureTitle:"Elements with an ARIA `[role]` that require children to contain a specific `[role]` are missing some or all of those required children.",description:"Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. [Learn more about roles and required children elements](https://dequeuniversity.com/rules/axe/4.11/aria-required-children)."},yS=T("core/audits/accessibility/aria-required-children.js",kd),vS=class extends O{static{i(this,"AriaRequiredChildren")}static get meta(){return{id:"aria-required-children",title:yS(kd.title),failureTitle:yS(kd.failureTitle),description:yS(kd.description),requiredArtifacts:["Accessibility"]}}},$me=vS});var yU={};x(yU,{UIStrings:()=>Rd,default:()=>Yme});var Rd,bS,wS,Yme,vU=g(()=>{"use strict";d();te();A();Rd={title:"`[role]`s are contained by their required parent element",failureTitle:"`[role]`s are not contained by their required parent element",description:"Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. [Learn more about ARIA roles and required parent element](https://dequeuniversity.com/rules/axe/4.11/aria-required-parent)."},bS=T("core/audits/accessibility/aria-required-parent.js",Rd),wS=class extends O{static{i(this,"AriaRequiredParent")}static get meta(){return{id:"aria-required-parent",title:bS(Rd.title),failureTitle:bS(Rd.failureTitle),description:bS(Rd.description),requiredArtifacts:["Accessibility"]}}},Yme=wS});var bU={};x(bU,{UIStrings:()=>_d,default:()=>Kme});var _d,ES,TS,Kme,wU=g(()=>{"use strict";d();te();A();_d={title:"`[role]` values are valid",failureTitle:"`[role]` values are not valid",description:"ARIA roles must have valid values in order to perform their intended accessibility functions. [Learn more about valid ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-roles)."},ES=T("core/audits/accessibility/aria-roles.js",_d),TS=class extends O{static{i(this,"AriaRoles")}static get meta(){return{id:"aria-roles",title:ES(_d.title),failureTitle:ES(_d.failureTitle),description:ES(_d.description),requiredArtifacts:["Accessibility"]}}},Kme=TS});var EU={};x(EU,{UIStrings:()=>Id,default:()=>Xme});var Id,xS,SS,Xme,TU=g(()=>{"use strict";d();te();A();Id={title:"Elements with the `role=text` attribute do not have focusable descendents.",failureTitle:"Elements with the `role=text` attribute do have focusable descendents.",description:"Adding `role=text` around a text node split by markup enables VoiceOver to treat it as one phrase, but the element's focusable descendents will not be announced. [Learn more about the `role=text` attribute](https://dequeuniversity.com/rules/axe/4.11/aria-text)."},xS=T("core/audits/accessibility/aria-text.js",Id),SS=class extends O{static{i(this,"AriaText")}static get meta(){return{id:"aria-text",title:xS(Id.title),failureTitle:xS(Id.failureTitle),description:xS(Id.description),requiredArtifacts:["Accessibility"]}}},Xme=SS});var xU={};x(xU,{UIStrings:()=>Dd,default:()=>Jme});var Dd,CS,kS,Jme,SU=g(()=>{"use strict";d();te();A();Dd={title:"ARIA toggle fields have accessible names",failureTitle:"ARIA toggle fields do not have accessible names",description:"When a toggle field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about toggle fields](https://dequeuniversity.com/rules/axe/4.11/aria-toggle-field-name)."},CS=T("core/audits/accessibility/aria-toggle-field-name.js",Dd),kS=class extends O{static{i(this,"AriaToggleFieldName")}static get meta(){return{id:"aria-toggle-field-name",title:CS(Dd.title),failureTitle:CS(Dd.failureTitle),description:CS(Dd.description),requiredArtifacts:["Accessibility"]}}},Jme=kS});var CU={};x(CU,{UIStrings:()=>Ad,default:()=>Zme});var Ad,RS,_S,Zme,kU=g(()=>{"use strict";d();te();A();Ad={title:"ARIA `tooltip` elements have accessible names",failureTitle:"ARIA `tooltip` elements do not have accessible names.",description:"When a tooltip element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `tooltip` elements](https://dequeuniversity.com/rules/axe/4.11/aria-tooltip-name)."},RS=T("core/audits/accessibility/aria-tooltip-name.js",Ad),_S=class extends O{static{i(this,"AriaTooltipName")}static get meta(){return{id:"aria-tooltip-name",title:RS(Ad.title),failureTitle:RS(Ad.failureTitle),description:RS(Ad.description),requiredArtifacts:["Accessibility"]}}},Zme=_S});var RU={};x(RU,{UIStrings:()=>Nd,default:()=>Qme});var Nd,IS,DS,Qme,_U=g(()=>{"use strict";d();te();A();Nd={title:"ARIA `treeitem` elements have accessible names",failureTitle:"ARIA `treeitem` elements do not have accessible names.",description:"When a `treeitem` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about labeling `treeitem` elements](https://dequeuniversity.com/rules/axe/4.11/aria-treeitem-name)."},IS=T("core/audits/accessibility/aria-treeitem-name.js",Nd),DS=class extends O{static{i(this,"AriaTreeitemName")}static get meta(){return{id:"aria-treeitem-name",title:IS(Nd.title),failureTitle:IS(Nd.failureTitle),description:IS(Nd.description),requiredArtifacts:["Accessibility"]}}},Qme=DS});var IU={};x(IU,{UIStrings:()=>Md,default:()=>epe});var Md,AS,NS,epe,DU=g(()=>{"use strict";d();te();A();Md={title:"`[aria-*]` attributes have valid values",failureTitle:"`[aria-*]` attributes do not have valid values",description:"Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid values. [Learn more about valid values for ARIA attributes](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr-value)."},AS=T("core/audits/accessibility/aria-valid-attr-value.js",Md),NS=class extends O{static{i(this,"ARIAValidAttr")}static get meta(){return{id:"aria-valid-attr-value",title:AS(Md.title),failureTitle:AS(Md.failureTitle),description:AS(Md.description),requiredArtifacts:["Accessibility"]}}},epe=NS});var AU={};x(AU,{UIStrings:()=>Od,default:()=>tpe});var Od,MS,OS,tpe,NU=g(()=>{"use strict";d();te();A();Od={title:"`[aria-*]` attributes are valid and not misspelled",failureTitle:"`[aria-*]` attributes are not valid or misspelled",description:"Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid names. [Learn more about valid ARIA attributes](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr)."},MS=T("core/audits/accessibility/aria-valid-attr.js",Od),OS=class extends O{static{i(this,"ARIAValidAttr")}static get meta(){return{id:"aria-valid-attr",title:MS(Od.title),failureTitle:MS(Od.failureTitle),description:MS(Od.description),requiredArtifacts:["Accessibility"]}}},tpe=OS});var MU={};x(MU,{UIStrings:()=>Pd,default:()=>npe});var Pd,PS,LS,npe,OU=g(()=>{"use strict";d();te();A();Pd={title:"Buttons have an accessible name",failureTitle:"Buttons do not have an accessible name",description:`When a button doesn't have an accessible name, screen readers announce it as "button", making it unusable for users who rely on screen readers. [Learn how to make buttons more accessible](https://dequeuniversity.com/rules/axe/4.11/button-name).`},PS=T("core/audits/accessibility/button-name.js",Pd),LS=class extends O{static{i(this,"ButtonName")}static get meta(){return{id:"button-name",title:PS(Pd.title),failureTitle:PS(Pd.failureTitle),description:PS(Pd.description),requiredArtifacts:["Accessibility"]}}},npe=LS});var PU={};x(PU,{UIStrings:()=>Ld,default:()=>rpe});var Ld,FS,US,rpe,LU=g(()=>{"use strict";d();te();A();Ld={title:"The page contains a heading, skip link, or landmark region",failureTitle:"The page does not contain a heading, skip link, or landmark region",description:"Adding ways to bypass repetitive content lets keyboard users navigate the page more efficiently. [Learn more about bypass blocks](https://dequeuniversity.com/rules/axe/4.11/bypass)."},FS=T("core/audits/accessibility/bypass.js",Ld),US=class extends O{static{i(this,"Bypass")}static get meta(){return{id:"bypass",title:FS(Ld.title),failureTitle:FS(Ld.failureTitle),description:FS(Ld.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},rpe=US});var FU={};x(FU,{UIStrings:()=>Fd,default:()=>ape});var Fd,BS,jS,ape,UU=g(()=>{"use strict";d();te();A();Fd={title:"Background and foreground colors have a sufficient contrast ratio",failureTitle:"Background and foreground colors do not have a sufficient contrast ratio.",description:"Low-contrast text is difficult or impossible for many users to read. [Learn how to provide sufficient color contrast](https://dequeuniversity.com/rules/axe/4.11/color-contrast)."},BS=T("core/audits/accessibility/color-contrast.js",Fd),jS=class extends O{static{i(this,"ColorContrast")}static get meta(){return{id:"color-contrast",title:BS(Fd.title),failureTitle:BS(Fd.failureTitle),description:BS(Fd.description),requiredArtifacts:["Accessibility"]}}},ape=jS});var BU={};x(BU,{UIStrings:()=>Ud,default:()=>ope});var Ud,HS,qS,ope,jU=g(()=>{"use strict";d();te();A();Ud={title:"`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements.",failureTitle:"`<dl>`'s do not contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements.",description:"When definition lists are not properly marked up, screen readers may produce confusing or inaccurate output. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.11/definition-list)."},HS=T("core/audits/accessibility/definition-list.js",Ud),qS=class extends O{static{i(this,"DefinitionList")}static get meta(){return{id:"definition-list",title:HS(Ud.title),failureTitle:HS(Ud.failureTitle),description:HS(Ud.description),requiredArtifacts:["Accessibility"]}}},ope=qS});var HU={};x(HU,{UIStrings:()=>Bd,default:()=>ipe});var Bd,zS,GS,ipe,qU=g(()=>{"use strict";d();te();A();Bd={title:"Definition list items are wrapped in `<dl>` elements",failureTitle:"Definition list items are not wrapped in `<dl>` elements",description:"Definition list items (`<dt>` and `<dd>`) must be wrapped in a parent `<dl>` element to ensure that screen readers can properly announce them. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.11/dlitem)."},zS=T("core/audits/accessibility/dlitem.js",Bd),GS=class extends O{static{i(this,"DLItem")}static get meta(){return{id:"dlitem",title:zS(Bd.title),failureTitle:zS(Bd.failureTitle),description:zS(Bd.description),requiredArtifacts:["Accessibility"]}}},ipe=GS});var zU={};x(zU,{UIStrings:()=>jd,default:()=>spe});var jd,WS,VS,spe,GU=g(()=>{"use strict";d();te();A();jd={title:"Document has a `<title>` element",failureTitle:"Document doesn't have a `<title>` element",description:"The title gives screen reader users an overview of the page, and search engine users rely on it heavily to determine if a page is relevant to their search. [Learn more about document titles](https://dequeuniversity.com/rules/axe/4.11/document-title)."},WS=T("core/audits/accessibility/document-title.js",jd),VS=class extends O{static{i(this,"DocumentTitle")}static get meta(){return{id:"document-title",title:WS(jd.title),failureTitle:WS(jd.failureTitle),description:WS(jd.description),requiredArtifacts:["Accessibility"]}}},spe=VS});var WU={};x(WU,{UIStrings:()=>Hd,default:()=>cpe});var Hd,$S,YS,cpe,VU=g(()=>{"use strict";d();te();A();Hd={title:"ARIA IDs are unique",failureTitle:"ARIA IDs are not unique",description:"The value of an ARIA ID must be unique to prevent other instances from being overlooked by assistive technologies. [Learn how to fix duplicate ARIA IDs](https://dequeuniversity.com/rules/axe/4.11/duplicate-id-aria)."},$S=T("core/audits/accessibility/duplicate-id-aria.js",Hd),YS=class extends O{static{i(this,"DuplicateIdAria")}static get meta(){return{id:"duplicate-id-aria",title:$S(Hd.title),failureTitle:$S(Hd.failureTitle),description:$S(Hd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},cpe=YS});var $U={};x($U,{UIStrings:()=>qd,default:()=>lpe});var qd,KS,XS,lpe,YU=g(()=>{"use strict";d();te();A();qd={title:"All heading elements contain content.",failureTitle:"Heading elements do not contain content.",description:"A heading with no content or inaccessible text prevent screen reader users from accessing information on the page's structure. [Learn more about headings](https://dequeuniversity.com/rules/axe/4.11/empty-heading)."},KS=T("core/audits/accessibility/empty-heading.js",qd),XS=class extends O{static{i(this,"EmptyHeading")}static get meta(){return{id:"empty-heading",title:KS(qd.title),failureTitle:KS(qd.failureTitle),description:KS(qd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},lpe=XS});var KU={};x(KU,{UIStrings:()=>zd,default:()=>upe});var zd,JS,ZS,upe,XU=g(()=>{"use strict";d();te();A();zd={title:"No form fields have multiple labels",failureTitle:"Form fields have multiple labels",description:"Form fields with multiple labels can be confusingly announced by assistive technologies like screen readers which use either the first, the last, or all of the labels. [Learn how to use form labels](https://dequeuniversity.com/rules/axe/4.11/form-field-multiple-labels)."},JS=T("core/audits/accessibility/form-field-multiple-labels.js",zd),ZS=class extends O{static{i(this,"FormFieldMultipleLabels")}static get meta(){return{id:"form-field-multiple-labels",title:JS(zd.title),failureTitle:JS(zd.failureTitle),description:JS(zd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},upe=ZS});var JU={};x(JU,{UIStrings:()=>Gd,default:()=>dpe});var Gd,QS,eC,dpe,ZU=g(()=>{"use strict";d();te();A();Gd={title:"`<frame>` or `<iframe>` elements have a title",failureTitle:"`<frame>` or `<iframe>` elements do not have a title",description:"Screen reader users rely on frame titles to describe the contents of frames. [Learn more about frame titles](https://dequeuniversity.com/rules/axe/4.11/frame-title)."},QS=T("core/audits/accessibility/frame-title.js",Gd),eC=class extends O{static{i(this,"FrameTitle")}static get meta(){return{id:"frame-title",title:QS(Gd.title),failureTitle:QS(Gd.failureTitle),description:QS(Gd.description),requiredArtifacts:["Accessibility"]}}},dpe=eC});var QU={};x(QU,{UIStrings:()=>Wd,default:()=>mpe});var Wd,tC,nC,mpe,e9=g(()=>{"use strict";d();te();A();Wd={title:"Heading elements appear in a sequentially-descending order",failureTitle:"Heading elements are not in a sequentially-descending order",description:"Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. [Learn more about heading order](https://dequeuniversity.com/rules/axe/4.11/heading-order)."},tC=T("core/audits/accessibility/heading-order.js",Wd),nC=class extends O{static{i(this,"HeadingOrder")}static get meta(){return{id:"heading-order",title:tC(Wd.title),failureTitle:tC(Wd.failureTitle),description:tC(Wd.description),requiredArtifacts:["Accessibility"]}}},mpe=nC});var t9={};x(t9,{UIStrings:()=>Vd,default:()=>ppe});var Vd,rC,aC,ppe,n9=g(()=>{"use strict";d();te();A();Vd={title:"`<html>` element has a `[lang]` attribute",failureTitle:"`<html>` element does not have a `[lang]` attribute",description:"If a page doesn't specify a `lang` attribute, a screen reader assumes that the page is in the default language that the user chose when setting up the screen reader. If the page isn't actually in the default language, then the screen reader might not announce the page's text correctly. [Learn more about the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/html-has-lang)."},rC=T("core/audits/accessibility/html-has-lang.js",Vd),aC=class extends O{static{i(this,"HTMLHasLang")}static get meta(){return{id:"html-has-lang",title:rC(Vd.title),failureTitle:rC(Vd.failureTitle),description:rC(Vd.description),requiredArtifacts:["Accessibility"]}}},ppe=aC});var r9={};x(r9,{UIStrings:()=>$d,default:()=>fpe});var $d,oC,iC,fpe,a9=g(()=>{"use strict";d();te();A();$d={title:"`<html>` element has a valid value for its `[lang]` attribute",failureTitle:"`<html>` element does not have a valid value for its `[lang]` attribute.",description:"Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) helps screen readers announce text properly. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/html-lang-valid)."},oC=T("core/audits/accessibility/html-lang-valid.js",$d),iC=class extends O{static{i(this,"HTMLLangValid")}static get meta(){return{id:"html-lang-valid",title:oC($d.title),failureTitle:oC($d.failureTitle),description:oC($d.description),requiredArtifacts:["Accessibility"]}}},fpe=iC});var o9={};x(o9,{UIStrings:()=>Yd,default:()=>hpe});var Yd,sC,cC,hpe,i9=g(()=>{"use strict";d();te();A();Yd={title:"`<html>` element has an `[xml:lang]` attribute with the same base language as the `[lang]` attribute.",failureTitle:"`<html>` element does not have an `[xml:lang]` attribute with the same base language as the `[lang]` attribute.",description:"If the webpage does not specify a consistent language, then the screen reader might not announce the page's text correctly. [Learn more about the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/html-xml-lang-mismatch)."},sC=T("core/audits/accessibility/html-xml-lang-mismatch.js",Yd),cC=class extends O{static{i(this,"HTMLXMLLangMismatch")}static get meta(){return{id:"html-xml-lang-mismatch",title:sC(Yd.title),failureTitle:sC(Yd.failureTitle),description:sC(Yd.description),requiredArtifacts:["Accessibility"]}}},hpe=cC});var s9={};x(s9,{UIStrings:()=>Kd,default:()=>gpe});var Kd,lC,uC,gpe,c9=g(()=>{"use strict";d();te();A();Kd={title:"Identical links have the same purpose.",failureTitle:"Identical links do not have the same purpose.",description:"Links with the same destination should have the same description, to help users understand the link's purpose and decide whether to follow it. [Learn more about identical links](https://dequeuniversity.com/rules/axe/4.11/identical-links-same-purpose)."},lC=T("core/audits/accessibility/identical-links-same-purpose.js",Kd),uC=class extends O{static{i(this,"IdenticalLinksSamePurpose")}static get meta(){return{id:"identical-links-same-purpose",title:lC(Kd.title),failureTitle:lC(Kd.failureTitle),description:lC(Kd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},gpe=uC});var l9={};x(l9,{UIStrings:()=>Xd,default:()=>ype});var Xd,dC,mC,ype,u9=g(()=>{"use strict";d();te();A();Xd={title:"Image elements have `[alt]` attributes",failureTitle:"Image elements do not have `[alt]` attributes",description:"Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. [Learn more about the `alt` attribute](https://dequeuniversity.com/rules/axe/4.11/image-alt)."},dC=T("core/audits/accessibility/image-alt.js",Xd),mC=class extends O{static{i(this,"ImageAlt")}static get meta(){return{id:"image-alt",title:dC(Xd.title),failureTitle:dC(Xd.failureTitle),description:dC(Xd.description),requiredArtifacts:["Accessibility"]}}},ype=mC});var d9={};x(d9,{UIStrings:()=>Jd,default:()=>vpe});var Jd,pC,fC,vpe,m9=g(()=>{"use strict";d();te();A();Jd={title:"Image elements do not have `[alt]` attributes that are redundant text.",failureTitle:"Image elements have `[alt]` attributes that are redundant text.",description:"Informative elements should aim for short, descriptive alternative text. Alternative text that is exactly the same as the text adjacent to the link or image is potentially confusing for screen reader users, because the text will be read twice. [Learn more about the `alt` attribute](https://dequeuniversity.com/rules/axe/4.11/image-redundant-alt)."},pC=T("core/audits/accessibility/image-redundant-alt.js",Jd),fC=class extends O{static{i(this,"ImageRedundantAlt")}static get meta(){return{id:"image-redundant-alt",title:pC(Jd.title),failureTitle:pC(Jd.failureTitle),description:pC(Jd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},vpe=fC});var p9={};x(p9,{UIStrings:()=>Zd,default:()=>bpe});var Zd,hC,gC,bpe,f9=g(()=>{"use strict";d();te();A();Zd={title:"Input buttons have discernible text.",failureTitle:"Input buttons do not have discernible text.",description:"Adding discernable and accessible text to input buttons may help screen reader users understand the purpose of the input button. [Learn more about input buttons](https://dequeuniversity.com/rules/axe/4.11/input-button-name)."},hC=T("core/audits/accessibility/input-button-name.js",Zd),gC=class extends O{static{i(this,"InputButtonName")}static get meta(){return{id:"input-button-name",title:hC(Zd.title),failureTitle:hC(Zd.failureTitle),description:hC(Zd.description),requiredArtifacts:["Accessibility"]}}},bpe=gC});var h9={};x(h9,{UIStrings:()=>Qd,default:()=>wpe});var Qd,yC,vC,wpe,g9=g(()=>{"use strict";d();te();A();Qd={title:'`<input type="image">` elements have `[alt]` text',failureTitle:'`<input type="image">` elements do not have `[alt]` text',description:"When an image is being used as an `<input>` button, providing alternative text can help screen reader users understand the purpose of the button. [Learn about input image alt text](https://dequeuniversity.com/rules/axe/4.11/input-image-alt)."},yC=T("core/audits/accessibility/input-image-alt.js",Qd),vC=class extends O{static{i(this,"InputImageAlt")}static get meta(){return{id:"input-image-alt",title:yC(Qd.title),failureTitle:yC(Qd.failureTitle),description:yC(Qd.description),requiredArtifacts:["Accessibility"]}}},wpe=vC});var y9={};x(y9,{UIStrings:()=>em,default:()=>Epe});var em,bC,wC,Epe,v9=g(()=>{"use strict";d();te();A();em={title:"Elements with visible text labels have matching accessible names.",failureTitle:"Elements with visible text labels do not have matching accessible names.",description:"Visible text labels that do not match the accessible name can result in a confusing experience for screen reader users. [Learn more about accessible names](https://dequeuniversity.com/rules/axe/4.11/label-content-name-mismatch)."},bC=T("core/audits/accessibility/label-content-name-mismatch.js",em),wC=class extends O{static{i(this,"LabelContentNameMismatch")}static get meta(){return{id:"label-content-name-mismatch",title:bC(em.title),failureTitle:bC(em.failureTitle),description:bC(em.description),requiredArtifacts:["Accessibility"]}}},Epe=wC});var b9={};x(b9,{UIStrings:()=>tm,default:()=>Tpe});var tm,EC,TC,Tpe,w9=g(()=>{"use strict";d();te();A();tm={title:"Form elements have associated labels",failureTitle:"Form elements do not have associated labels",description:"Labels ensure that form controls are announced properly by assistive technologies, like screen readers. [Learn more about form element labels](https://dequeuniversity.com/rules/axe/4.11/label)."},EC=T("core/audits/accessibility/label.js",tm),TC=class extends O{static{i(this,"Label")}static get meta(){return{id:"label",title:EC(tm.title),failureTitle:EC(tm.failureTitle),description:EC(tm.description),requiredArtifacts:["Accessibility"]}}},Tpe=TC});var E9={};x(E9,{UIStrings:()=>nm,default:()=>xpe});var nm,xC,SC,xpe,T9=g(()=>{"use strict";d();te();A();nm={title:"Document has a main landmark.",failureTitle:"Document does not have a main landmark.",description:"One main landmark helps screen reader users navigate a web page. [Learn more about landmarks](https://dequeuniversity.com/rules/axe/4.11/landmark-one-main)."},xC=T("core/audits/accessibility/landmark-one-main.js",nm),SC=class extends O{static{i(this,"LandmarkOneMain")}static get meta(){return{id:"landmark-one-main",title:xC(nm.title),failureTitle:xC(nm.failureTitle),description:xC(nm.description),requiredArtifacts:["Accessibility"]}}},xpe=SC});var x9={};x(x9,{UIStrings:()=>rm,default:()=>Spe});var rm,CC,kC,Spe,S9=g(()=>{"use strict";d();te();A();rm={title:"Links are distinguishable without relying on color.",failureTitle:"Links rely on color to be distinguishable.",description:"Low-contrast text is difficult or impossible for many users to read. Link text that is discernible improves the experience for users with low vision. [Learn how to make links distinguishable](https://dequeuniversity.com/rules/axe/4.11/link-in-text-block)."},CC=T("core/audits/accessibility/link-in-text-block.js",rm),kC=class extends O{static{i(this,"LinkInTextBlock")}static get meta(){return{id:"link-in-text-block",title:CC(rm.title),failureTitle:CC(rm.failureTitle),description:CC(rm.description),requiredArtifacts:["Accessibility"]}}},Spe=kC});var C9={};x(C9,{UIStrings:()=>am,default:()=>Cpe});var am,RC,_C,Cpe,k9=g(()=>{"use strict";d();te();A();am={title:"Links have a discernible name",failureTitle:"Links do not have a discernible name",description:"Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. [Learn how to make links accessible](https://dequeuniversity.com/rules/axe/4.11/link-name)."},RC=T("core/audits/accessibility/link-name.js",am),_C=class extends O{static{i(this,"LinkName")}static get meta(){return{id:"link-name",title:RC(am.title),failureTitle:RC(am.failureTitle),description:RC(am.description),requiredArtifacts:["Accessibility"]}}},Cpe=_C});var R9={};x(R9,{UIStrings:()=>om,default:()=>kpe});var om,IC,DC,kpe,_9=g(()=>{"use strict";d();te();A();om={title:"Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).",failureTitle:"Lists do not contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).",description:"Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. [Learn more about proper list structure](https://dequeuniversity.com/rules/axe/4.11/list)."},IC=T("core/audits/accessibility/list.js",om),DC=class extends O{static{i(this,"List")}static get meta(){return{id:"list",title:IC(om.title),failureTitle:IC(om.failureTitle),description:IC(om.description),requiredArtifacts:["Accessibility"]}}},kpe=DC});var I9={};x(I9,{UIStrings:()=>im,default:()=>Rpe});var im,AC,NC,Rpe,D9=g(()=>{"use strict";d();te();A();im={title:"List items (`<li>`) are contained within `<ul>`, `<ol>` or `<menu>` parent elements",failureTitle:"List items (`<li>`) are not contained within `<ul>`, `<ol>` or `<menu>` parent elements.",description:"Screen readers require list items (`<li>`) to be contained within a parent `<ul>`, `<ol>` or `<menu>` to be announced properly. [Learn more about proper list structure](https://dequeuniversity.com/rules/axe/4.11/listitem)."},AC=T("core/audits/accessibility/listitem.js",im),NC=class extends O{static{i(this,"ListItem")}static get meta(){return{id:"listitem",title:AC(im.title),failureTitle:AC(im.failureTitle),description:AC(im.description),requiredArtifacts:["Accessibility"]}}},Rpe=NC});var MC,Gt,kr=g(()=>{"use strict";d();$();MC=class extends E{static{i(this,"ManualAudit")}static get partialMeta(){return{scoreDisplayMode:E.SCORING_MODES.MANUAL,requiredArtifacts:[]}}static audit(){return{score:0}}},Gt=MC});var A9={};x(A9,{default:()=>_pe});var OC,_pe,N9=g(()=>{"use strict";d();kr();OC=class extends Gt{static{i(this,"CustomControlsLabels")}static get meta(){return Object.assign({id:"custom-controls-labels",description:"Custom interactive controls have associated labels, provided by aria-label or aria-labelledby. [Learn more about custom controls and labels](https://developer.chrome.com/docs/lighthouse/accessibility/custom-controls-labels/).",title:"Custom controls have associated labels"},super.partialMeta)}},_pe=OC});var M9={};x(M9,{default:()=>Ipe});var PC,Ipe,O9=g(()=>{"use strict";d();kr();PC=class extends Gt{static{i(this,"CustomControlsRoles")}static get meta(){return Object.assign({id:"custom-controls-roles",description:"Custom interactive controls have appropriate ARIA roles. [Learn how to add roles to custom controls](https://developer.chrome.com/docs/lighthouse/accessibility/custom-control-roles/).",title:"Custom controls have ARIA roles"},super.partialMeta)}},Ipe=PC});var P9={};x(P9,{default:()=>Dpe});var LC,Dpe,L9=g(()=>{"use strict";d();kr();LC=class extends Gt{static{i(this,"FocusTraps")}static get meta(){return Object.assign({id:"focus-traps",description:"A user can tab into and out of any control or region without accidentally trapping their focus. [Learn how to avoid focus traps](https://developer.chrome.com/docs/lighthouse/accessibility/focus-traps/).",title:"User focus is not accidentally trapped in a region"},super.partialMeta)}},Dpe=LC});var F9={};x(F9,{default:()=>Ape});var FC,Ape,U9=g(()=>{"use strict";d();kr();FC=class extends Gt{static{i(this,"FocusableControls")}static get meta(){return Object.assign({id:"focusable-controls",description:"Custom interactive controls are keyboard focusable and display a focus indicator. [Learn how to make custom controls focusable](https://developer.chrome.com/docs/lighthouse/accessibility/focusable-controls/).",title:"Interactive controls are keyboard focusable"},super.partialMeta)}},Ape=FC});var B9={};x(B9,{default:()=>Npe});var UC,Npe,j9=g(()=>{"use strict";d();kr();UC=class extends Gt{static{i(this,"InteractiveElementAffordance")}static get meta(){return Object.assign({id:"interactive-element-affordance",description:"Interactive elements, such as links and buttons, should indicate their state and be distinguishable from non-interactive elements. [Learn how to decorate interactive elements with affordance hints](https://developer.chrome.com/docs/lighthouse/accessibility/interactive-element-affordance/).",title:"Interactive elements indicate their purpose and state"},super.partialMeta)}},Npe=UC});var H9={};x(H9,{default:()=>Mpe});var BC,Mpe,q9=g(()=>{"use strict";d();kr();BC=class extends Gt{static{i(this,"LogicalTabOrder")}static get meta(){return Object.assign({id:"logical-tab-order",description:"Tabbing through the page follows the visual layout. Users cannot focus elements that are offscreen. [Learn more about logical tab ordering](https://developer.chrome.com/docs/lighthouse/accessibility/logical-tab-order/).",title:"The page has a logical tab order"},super.partialMeta)}},Mpe=BC});var z9={};x(z9,{default:()=>Ope});var jC,Ope,G9=g(()=>{"use strict";d();kr();jC=class extends Gt{static{i(this,"ManagedFocus")}static get meta(){return Object.assign({id:"managed-focus",description:"If new content, such as a dialog, is added to the page, the user's focus is directed to it. [Learn how to direct focus to new content](https://developer.chrome.com/docs/lighthouse/accessibility/managed-focus/).",title:"The user's focus is directed to new content added to the page"},super.partialMeta)}},Ope=jC});var W9={};x(W9,{default:()=>Ppe});var HC,Ppe,V9=g(()=>{"use strict";d();kr();HC=class extends Gt{static{i(this,"OffscreenContentHidden")}static get meta(){return Object.assign({id:"offscreen-content-hidden",description:"Offscreen content is hidden with display: none or aria-hidden=true. [Learn how to properly hide offscreen content](https://developer.chrome.com/docs/lighthouse/accessibility/offscreen-content-hidden/).",title:"Offscreen content is hidden from assistive technology"},super.partialMeta)}},Ppe=HC});var $9={};x($9,{default:()=>Lpe});var qC,Lpe,Y9=g(()=>{"use strict";d();kr();qC=class extends Gt{static{i(this,"UseLandmarks")}static get meta(){return Object.assign({id:"use-landmarks",description:"Landmark elements (`<main>`, `<nav>`, etc.) are used to improve the keyboard navigation of the page for assistive technology. [Learn more about landmark elements](https://developer.chrome.com/docs/lighthouse/accessibility/use-landmarks/).",title:"HTML5 landmark elements are used to improve navigation"},super.partialMeta)}},Lpe=qC});var K9={};x(K9,{default:()=>Fpe});var zC,Fpe,X9=g(()=>{"use strict";d();kr();zC=class extends Gt{static{i(this,"VisualOrderFollowsDOM")}static get meta(){return Object.assign({id:"visual-order-follows-dom",description:"DOM order matches the visual order, improving navigation for assistive technology. [Learn more about DOM and visual ordering](https://developer.chrome.com/docs/lighthouse/accessibility/visual-order-follows-dom/).",title:"Visual order on the page follows DOM order"},super.partialMeta)}},Fpe=zC});var J9={};x(J9,{UIStrings:()=>sm,default:()=>Upe});var sm,GC,WC,Upe,Z9=g(()=>{"use strict";d();te();A();sm={title:'The document does not use `<meta http-equiv="refresh">`',failureTitle:'The document uses `<meta http-equiv="refresh">`',description:"Users do not expect a page to refresh automatically, and doing so will move focus back to the top of the page. This may create a frustrating or confusing experience. [Learn more about the refresh meta tag](https://dequeuniversity.com/rules/axe/4.11/meta-refresh)."},GC=T("core/audits/accessibility/meta-refresh.js",sm),WC=class extends O{static{i(this,"MetaRefresh")}static get meta(){return{id:"meta-refresh",title:GC(sm.title),failureTitle:GC(sm.failureTitle),description:GC(sm.description),requiredArtifacts:["Accessibility"]}}},Upe=WC});var Q9={};x(Q9,{UIStrings:()=>cm,default:()=>Bpe});var cm,VC,$C,Bpe,e7=g(()=>{"use strict";d();te();A();cm={title:'`[user-scalable="no"]` is not used in the `<meta name="viewport">` element and the `[maximum-scale]` attribute is not less than 5.',failureTitle:'`[user-scalable="no"]` is used in the `<meta name="viewport">` element or the `[maximum-scale]` attribute is less than 5.',description:"Disabling zooming is problematic for users with low vision who rely on screen magnification to properly see the contents of a web page. [Learn more about the viewport meta tag](https://dequeuniversity.com/rules/axe/4.11/meta-viewport)."},VC=T("core/audits/accessibility/meta-viewport.js",cm),$C=class extends O{static{i(this,"MetaViewport")}static get meta(){return{id:"meta-viewport",title:VC(cm.title),failureTitle:VC(cm.failureTitle),description:VC(cm.description),requiredArtifacts:["Accessibility"]}}},Bpe=$C});var t7={};x(t7,{UIStrings:()=>lm,default:()=>jpe});var lm,YC,KC,jpe,n7=g(()=>{"use strict";d();te();A();lm={title:"`<object>` elements have alternate text",failureTitle:"`<object>` elements do not have alternate text",description:"Screen readers cannot translate non-text content. Adding alternate text to `<object>` elements helps screen readers convey meaning to users. [Learn more about alt text for `object` elements](https://dequeuniversity.com/rules/axe/4.11/object-alt)."},YC=T("core/audits/accessibility/object-alt.js",lm),KC=class extends O{static{i(this,"ObjectAlt")}static get meta(){return{id:"object-alt",title:YC(lm.title),failureTitle:YC(lm.failureTitle),description:YC(lm.description),requiredArtifacts:["Accessibility"]}}},jpe=KC});var r7={};x(r7,{UIStrings:()=>um,default:()=>Hpe});var um,XC,JC,Hpe,a7=g(()=>{"use strict";d();te();A();um={title:"Select elements have associated label elements.",failureTitle:"Select elements do not have associated label elements.",description:"Form elements without effective labels can create frustrating experiences for screen reader users. [Learn more about the `select` element](https://dequeuniversity.com/rules/axe/4.11/select-name)."},XC=T("core/audits/accessibility/select-name.js",um),JC=class extends O{static{i(this,"SelectName")}static get meta(){return{id:"select-name",title:XC(um.title),failureTitle:XC(um.failureTitle),description:XC(um.description),requiredArtifacts:["Accessibility"]}}},Hpe=JC});var o7={};x(o7,{UIStrings:()=>dm,default:()=>qpe});var dm,ZC,QC,qpe,i7=g(()=>{"use strict";d();te();A();dm={title:"Skip links are focusable.",failureTitle:"Skip links are not focusable.",description:"Including a skip link can help users skip to the main content to save time. [Learn more about skip links](https://dequeuniversity.com/rules/axe/4.11/skip-link)."},ZC=T("core/audits/accessibility/skip-link.js",dm),QC=class extends O{static{i(this,"SkipLink")}static get meta(){return{id:"skip-link",title:ZC(dm.title),failureTitle:ZC(dm.failureTitle),description:ZC(dm.description),requiredArtifacts:["Accessibility"]}}},qpe=QC});var s7={};x(s7,{UIStrings:()=>mm,default:()=>zpe});var mm,ek,tk,zpe,c7=g(()=>{"use strict";d();te();A();mm={title:"No element has a `[tabindex]` value greater than 0",failureTitle:"Some elements have a `[tabindex]` value greater than 0",description:"A value greater than 0 implies an explicit navigation ordering. Although technically valid, this often creates frustrating experiences for users who rely on assistive technologies. [Learn more about the `tabindex` attribute](https://dequeuniversity.com/rules/axe/4.11/tabindex)."},ek=T("core/audits/accessibility/tabindex.js",mm),tk=class extends O{static{i(this,"TabIndex")}static get meta(){return{id:"tabindex",title:ek(mm.title),failureTitle:ek(mm.failureTitle),description:ek(mm.description),requiredArtifacts:["Accessibility"]}}},zpe=tk});var l7={};x(l7,{UIStrings:()=>pm,default:()=>Gpe});var pm,nk,rk,Gpe,u7=g(()=>{"use strict";d();te();A();pm={title:"Tables have different content in the summary attribute and `<caption>`.",failureTitle:"Tables have the same content in the summary attribute and `<caption>.`",description:"The summary attribute should describe the table structure, while `<caption>` should have the onscreen title. Accurate table mark-up helps users of screen readers. [Learn more about summary and caption](https://dequeuniversity.com/rules/axe/4.11/table-duplicate-name)."},nk=T("core/audits/accessibility/table-duplicate-name.js",pm),rk=class extends O{static{i(this,"TableDuplicateName")}static get meta(){return{id:"table-duplicate-name",title:nk(pm.title),failureTitle:nk(pm.failureTitle),description:nk(pm.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},Gpe=rk});var d7={};x(d7,{UIStrings:()=>fm,default:()=>Wpe});var fm,ak,ok,Wpe,m7=g(()=>{"use strict";d();te();A();fm={title:"Tables use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption.",failureTitle:"Tables do not use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption.",description:"Screen readers have features to make navigating tables easier. Ensuring that tables use the actual caption element instead of cells with the `[colspan]` attribute may improve the experience for screen reader users. [Learn more about captions](https://dequeuniversity.com/rules/axe/4.11/table-fake-caption)."},ak=T("core/audits/accessibility/table-fake-caption.js",fm),ok=class extends O{static{i(this,"TableFakeCaption")}static get meta(){return{id:"table-fake-caption",title:ak(fm.title),failureTitle:ak(fm.failureTitle),description:ak(fm.description),requiredArtifacts:["Accessibility"]}}},Wpe=ok});var p7={};x(p7,{UIStrings:()=>hm,default:()=>Vpe});var hm,ik,sk,Vpe,f7=g(()=>{"use strict";d();te();A();hm={title:"Touch targets have sufficient size and spacing.",failureTitle:"Touch targets do not have sufficient size or spacing.",description:"Touch targets with sufficient size and spacing help users who may have difficulty targeting small controls to activate the targets. [Learn more about touch targets](https://dequeuniversity.com/rules/axe/4.11/target-size)."},ik=T("core/audits/accessibility/target-size.js",hm),sk=class extends O{static{i(this,"TargetSize")}static get meta(){return{id:"target-size",title:ik(hm.title),failureTitle:ik(hm.failureTitle),description:ik(hm.description),requiredArtifacts:["Accessibility"]}}},Vpe=sk});var h7={};x(h7,{UIStrings:()=>gm,default:()=>$pe});var gm,ck,lk,$pe,g7=g(()=>{"use strict";d();te();A();gm={title:"`<td>` elements in a large `<table>` have one or more table headers.",failureTitle:"`<td>` elements in a large `<table>` do not have table headers.",description:"Screen readers have features to make navigating tables easier. Ensuring that `<td>` elements in a large table (3 or more cells in width and height) have an associated table header may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.11/td-has-header)."},ck=T("core/audits/accessibility/td-has-header.js",gm),lk=class extends O{static{i(this,"TDHasHeader")}static get meta(){return{id:"td-has-header",title:ck(gm.title),failureTitle:ck(gm.failureTitle),description:ck(gm.description),requiredArtifacts:["Accessibility"]}}},$pe=lk});var y7={};x(y7,{UIStrings:()=>ym,default:()=>Ype});var ym,uk,dk,Ype,v7=g(()=>{"use strict";d();te();A();ym={title:"Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table.",failureTitle:"Cells in a `<table>` element that use the `[headers]` attribute refer to an element `id` not found within the same table.",description:"Screen readers have features to make navigating tables easier. Ensuring `<td>` cells using the `[headers]` attribute only refer to other cells in the same table may improve the experience for screen reader users. [Learn more about the `headers` attribute](https://dequeuniversity.com/rules/axe/4.11/td-headers-attr)."},uk=T("core/audits/accessibility/td-headers-attr.js",ym),dk=class extends O{static{i(this,"TDHeadersAttr")}static get meta(){return{id:"td-headers-attr",title:uk(ym.title),failureTitle:uk(ym.failureTitle),description:uk(ym.description),requiredArtifacts:["Accessibility"]}}},Ype=dk});var b7={};x(b7,{UIStrings:()=>vm,default:()=>Kpe});var vm,mk,pk,Kpe,w7=g(()=>{"use strict";d();te();A();vm={title:'`<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe.',failureTitle:'`<th>` elements and elements with `[role="columnheader"/"rowheader"]` do not have data cells they describe.',description:"Screen readers have features to make navigating tables easier. Ensuring table headers always refer to some set of cells may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.11/th-has-data-cells)."},mk=T("core/audits/accessibility/th-has-data-cells.js",vm),pk=class extends O{static{i(this,"THHasDataCells")}static get meta(){return{id:"th-has-data-cells",title:mk(vm.title),failureTitle:mk(vm.failureTitle),description:mk(vm.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},Kpe=pk});var E7={};x(E7,{UIStrings:()=>bm,default:()=>Xpe});var bm,fk,hk,Xpe,T7=g(()=>{"use strict";d();te();A();bm={title:"`[lang]` attributes have a valid value",failureTitle:"`[lang]` attributes do not have a valid value",description:"Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) on elements helps ensure that text is pronounced correctly by a screen reader. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/valid-lang)."},fk=T("core/audits/accessibility/valid-lang.js",bm),hk=class extends O{static{i(this,"ValidLang")}static get meta(){return{id:"valid-lang",title:fk(bm.title),failureTitle:fk(bm.failureTitle),description:fk(bm.description),requiredArtifacts:["Accessibility"]}}},Xpe=hk});var x7={};x(x7,{UIStrings:()=>wm,default:()=>Jpe});var wm,gk,yk,Jpe,S7=g(()=>{"use strict";d();te();A();wm={title:'`<video>` elements contain a `<track>` element with `[kind="captions"]`',failureTitle:'`<video>` elements do not contain a `<track>` element with `[kind="captions"]`.',description:"When a video provides a caption it is easier for deaf and hearing impaired users to access its information. [Learn more about video captions](https://dequeuniversity.com/rules/axe/4.11/video-caption)."},gk=T("core/audits/accessibility/video-caption.js",wm),yk=class extends O{static{i(this,"VideoCaption")}static get meta(){return{id:"video-caption",title:gk(wm.title),failureTitle:gk(wm.failureTitle),description:gk(wm.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},Jpe=yk});var k7={};x(k7,{UIStrings:()=>Nn,default:()=>efe});var Nn,Hn,Zpe,Qpe,C7,vk,efe,R7=g(()=>{"use strict";d();Ve();$();A();Nn={title:"`<input>` elements correctly use `autocomplete`",failureTitle:"`<input>` elements do not have correct `autocomplete` attributes",description:"`autocomplete` helps users submit forms quicker. To reduce user effort, consider enabling by setting the `autocomplete` attribute to a valid value. [Learn more about `autocomplete` in forms](https://developers.google.com/web/fundamentals/design-and-ux/input/forms#use_metadata_to_enable_auto-complete)",columnSuggestions:"Suggested Token",columnCurrent:"Current Value",warningInvalid:'`autocomplete` token(s): "{token}" is invalid in {snippet}',warningOrder:'Review order of tokens: "{tokens}" in {snippet}',reviewOrder:"Review order of tokens",manualReview:"Requires manual review"},Hn=T("core/audits/autocomplete.js",Nn),Zpe=["name","honorific-prefix","given-name","additional-name","family-name","honorific-suffix","nickname",
|
|
1813
|
-
"username","new-password","current-password","one-time-code","organization-title","organization","street-address","address-line1","address-line2","address-line3","address-level4","address-level3","address-level2","address-level1","country","country-name","postal-code","cc-name","cc-given-name","cc-additional-name","cc-family-name","cc-number","cc-exp","cc-exp-month","cc-exp-year","cc-csc","cc-type","transaction-currency","transaction-amount","language","bday","bday-day","bday-month","bday-year","sex","url","photo","tel","tel-country-code","tel-national","tel-area-code","on","tel-local","tel-local-prefix","tel-local-suffix","tel-extension","email","impp","off","additional-name-initial","home","work","mobile","fax","pager","shipping","billing"],Qpe=["NO_SERVER_DATA","UNKNOWN_TYPE","EMPTY_TYPE","HTML_TYPE_UNSPECIFIED","HTML_TYPE_UNRECOGNIZED"],C7={NO_SERVER_DATA:Hn(
|
|
1812
|
+
}`,returnByValue:!0,awaitPromise:!0})}catch(r){bn.captureException(r,{tags:{gatherer:"TraceElements"},level:"error"})}return null}async getArtifact(t){let n=t.driver.defaultSession,r=t.dependencies.Trace,a=t.dependencies.SourceMaps,o=t.settings,s=t.baseArtifacts.HostDPR,c=await Dn.request({trace:r,settings:o,SourceMaps:a,HostDPR:s},t),l=await Be.request(r,t),{mainThreadEvents:u}=l,m=l.timeOriginEvt.args.data?.navigationId,p=await e.getTraceEngineElements(c,m),f=await e.getTopLayoutShifts(r,c,t),h=await this.getAnimatedElements(u),y=new Map([["trace-engine",p],["layout-shift",f],["animation",h]]),b=new Map,w=[];for(let[C,k]of y)for(let R=0;R<k.length;R++){let S=k[R].nodeId,_=b.get(S);_===void 0&&(_=await this.getNodeDetails(n,S),b.set(S,_)),_?.result?.value&&w.push({..._.result.value,traceEventType:C,animations:k[R].animations,nodeId:S,type:k[R].type})}return w}},dd=jx});var U6={};x(U6,{default:()=>Ame});function Dme(){return{innerWidth:window.innerWidth,innerHeight:window.innerHeight,outerWidth:window.outerWidth,outerHeight:window.outerHeight,devicePixelRatio:window.devicePixelRatio}}var Hx,Ame,B6=g(()=>{"use strict";d();bt();i(Dme,"getViewportDimensions");Hx=class extends fe{static{i(this,"ViewportDimensions")}meta={supportedModes:["snapshot","timespan","navigation"]};async getArtifact(t){let r=await t.driver.executionContext.evaluate(Dme,{args:[],useIsolation:!0});if(!Object.values(r).every(Number.isFinite)){let o=JSON.stringify(r);throw new Error(`ViewportDimensions results were not numeric: ${o}`)}return r}},Ame=Hx});var j6,Nme,qx,O,te=g(()=>{"use strict";d();$();A();j6={failingElementsHeader:"Failing Elements"},Nme=T("core/audits/accessibility/axe-audit.js",j6),qx=class extends E{static{i(this,"AxeAudit")}static audit(t){if((t.Accessibility.notApplicable||[]).find(b=>b.id===this.meta.id))return{score:null,notApplicable:!0};let a=t.Accessibility.incomplete||[],o=a.find(b=>b.id===this.meta.id);if(o?.error)return{score:null,errorMessage:`axe-core Error: ${o.error.message||"Unknown error"}`};let s=this.meta.scoreDisplayMode===E.SCORING_MODES.INFORMATIVE,c=t.Accessibility.violations||[],u=(s?c.concat(a):c).find(b=>b.id===this.meta.id),m=u?.impact,p=u?.tags;if(s&&!u)return{score:null,notApplicable:!0};let f=[];u?.nodes&&(f=u.nodes.map(b=>({node:{...E.makeNodeItem(b.node),explanation:b.failureSummary},subItems:b.relatedNodes.length?{type:"subitems",items:b.relatedNodes.map(w=>({relatedNode:E.makeNodeItem(w)}))}:void 0})));let h=[{key:"node",valueType:"node",subItemsHeading:{key:"relatedNode",valueType:"n\
|
|
1813
|
+
ode"},label:Nme(j6.failingElementsHeader)}],y;return(m||p)&&(y={type:"debugdata",impact:m,tags:p}),{score:+(u===void 0),details:{...E.makeTableDetails(h,f),debugData:y}}}},O=qx});var H6={};x(H6,{UIStrings:()=>md,default:()=>Mme});var md,zx,Gx,Mme,q6=g(()=>{"use strict";d();te();A();md={title:"`[accesskey]` values are unique",failureTitle:"`[accesskey]` values are not unique",description:"Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more about access keys](https://dequeuniversity.com/rules/axe/4.11/accesskeys)."},zx=T("core/audits/accessibility/accesskeys.js",md),Gx=class extends O{static{i(this,"Accesskeys")}static get meta(){return{id:"accesskeys",title:zx(md.title),failureTitle:zx(md.failureTitle),description:zx(md.description),requiredArtifacts:["Accessibility"]}}},Mme=Gx});var z6={};x(z6,{UIStrings:()=>pd,default:()=>Ome});var pd,Wx,Vx,Ome,G6=g(()=>{"use strict";d();te();A();pd={title:"`[aria-*]` attributes match their roles",failureTitle:"`[aria-*]` attributes do not match their roles",description:"Each ARIA `role` supports a specific subset of `aria-*` attributes. Mismatching these invalidates the `aria-*` attributes. [Learn how to match ARIA attributes to their roles](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-attr)."},Wx=T("core/audits/accessibility/aria-allowed-attr.js",pd),Vx=class extends O{static{i(this,"ARIAAllowedAttr")}static get meta(){return{id:"aria-allowed-attr",title:Wx(pd.title),failureTitle:Wx(pd.failureTitle),description:Wx(pd.description),requiredArtifacts:["Accessibility"]}}},Ome=Vx});var W6={};x(W6,{UIStrings:()=>fd,default:()=>Pme});var fd,$x,Yx,Pme,V6=g(()=>{"use strict";d();te();A();fd={title:"Uses ARIA roles only on compatible elements",failureTitle:"Uses ARIA roles on incompatible elements",description:"Many HTML elements can only be assigned certain ARIA roles. Using ARIA roles where they are not allowed can interfere with the accessibility of the web page. [Learn more about ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-role)."},$x=T("core/audits/accessibility/aria-allowed-role.js",fd),Yx=class extends O{static{i(this,"ARIAAllowedRole")}static get meta(){return{id:"aria-allowed-role",title:$x(fd.title),failureTitle:$x(fd.failureTitle),description:$x(fd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},Pme=Yx});var $6={};x($6,{UIStrings:()=>hd,default:()=>Lme});var hd,Kx,Xx,Lme,Y6=g(()=>{"use strict";d();te();A();hd={title:"`button`, `link`, and `menuitem` elements have accessible names",failureTitle:"`button`, `link`, and `menuitem` elements do not have accessible names.",description:"When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to make command elements more accessible](https://dequeuniversity.com/rules/axe/4.11/aria-command-name)."},Kx=T("core/audits/accessibility/aria-command-name.js",hd),Xx=class extends O{static{i(this,"AriaCommandName")}static get meta(){return{id:"aria-command-name",title:Kx(hd.title),failureTitle:Kx(hd.failureTitle),description:Kx(hd.description),requiredArtifacts:["Accessibility"]}}},Lme=Xx});var K6={};x(K6,{UIStrings:()=>gd,default:()=>Fme});var gd,Jx,Zx,Fme,X6=g(()=>{"use strict";d();te();A();gd={title:"ARIA attributes are used as specified for the element's role",failureTitle:"ARIA attributes are not used as specified for the element's role",description:"Some ARIA attributes are only allowed on an element under certain conditions. [Learn more about conditional ARIA attributes](https://dequeuniversity.com/rules/axe/4.11/aria-conditional-attr)."},Jx=T("core/audits/accessibility/aria-conditional-attr.js",gd),Zx=class extends O{static{i(this,"AriaConditionalAttr")}static get meta(){return{id:"aria-conditional-attr",title:Jx(gd.title),failureTitle:Jx(gd.failureTitle),description:Jx(gd.description),requiredArtifacts:["Accessibility"]}}},Fme=Zx});var J6={};x(J6,{UIStrings:()=>yd,default:()=>Ume});var yd,Qx,eS,Ume,Z6=g(()=>{"use strict";d();te();A();yd={title:"Deprecated ARIA roles were not used",failureTitle:"Deprecated ARIA roles were used",description:"Deprecated ARIA roles may not be processed correctly by assistive technology. [Learn more about deprecated ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-deprecated-role)."},Qx=T("core/audits/accessibility/aria-deprecated-role.js",yd),eS=class extends O{static{i(this,"AriaDeprecatedRole")}static get meta(){return{id:"aria-deprecated-role",title:Qx(yd.title),failureTitle:Qx(yd.failureTitle),description:Qx(yd.description),requiredArtifacts:["Accessibility"]}}},Ume=eS});var Q6={};x(Q6,{UIStrings:()=>vd,default:()=>Bme});var vd,tS,nS,Bme,eU=g(()=>{"use strict";d();te();A();vd={title:'Elements with `role="dialog"` or `role="alertdialog"` have accessible names.',failureTitle:'Elements with `role="dialog"` or `role="alertdialog"` do not have accessible names.',description:"ARIA dialog elements without accessible names may prevent screen readers users from discerning the purpose of these elements. [Learn how to make ARIA dialog elements more accessible](https://dequeuniversity.com/rules/axe/4.11/aria-dialog-name)."},tS=T("core/audits/accessibility/aria-dialog-name.js",vd),nS=class extends O{static{i(this,"AriaDialogName")}static get meta(){return{id:"aria-dialog-name",title:tS(vd.title),failureTitle:tS(vd.failureTitle),description:tS(vd.description),requiredArtifacts:["Accessibility"]}}},Bme=nS});var tU={};x(tU,{UIStrings:()=>bd,default:()=>jme});var bd,rS,aS,jme,nU=g(()=>{"use strict";d();te();A();bd={title:'`[aria-hidden="true"]` is not present on the document `<body>`',failureTitle:'`[aria-hidden="true"]` is present on the document `<body>`',description:'Assistive technologies, like screen readers, work inconsistently when `aria-hidden="true"` is set on the document `<body>`. [Learn how `aria-hidden` affects the document body](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-body).'},rS=T("core/audits/accessibility/aria-hidden-body.js",bd),aS=class extends O{static{i(this,"AriaHiddenBody")}static get meta(){return{id:"aria-hidden-body",title:rS(bd.title),failureTitle:rS(bd.failureTitle),description:rS(bd.description),requiredArtifacts:["Accessibility"]}}},jme=aS});var rU={};x(rU,{UIStrings:()=>wd,default:()=>Hme});var wd,oS,iS,Hme,aU=g(()=>{"use strict";d();te();A();wd={title:'`[aria-hidden="true"]` elements do not contain focusable descendents',failureTitle:'`[aria-hidden="true"]` elements contain focusable descendents',description:'Focusable descendents within an `[aria-hidden="true"]` element prevent those interactive elements from being available to users of assistive technologies like screen readers. [Learn how `aria-hidden` affects focusable elements](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-focus).'},oS=T("core/audits/accessibility/aria-hidden-focus.js",wd),iS=class extends O{static{i(this,"AriaHiddenFocus")}static get meta(){return{id:"aria-hidden-focus",title:oS(wd.title),failureTitle:oS(wd.failureTitle),description:oS(wd.description),requiredArtifacts:["Accessibility"]}}},Hme=iS});var oU={};x(oU,{UIStrings:()=>Ed,default:()=>qme});var Ed,sS,cS,qme,iU=g(()=>{"use strict";d();te();A();Ed={title:"ARIA input fields have accessible names",failureTitle:"ARIA input fields do not have accessible names",description:"When an input field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about input field labels](https://dequeuniversity.com/rules/axe/4.11/aria-input-field-name)."},sS=T("core/audits/accessibility/aria-input-field-name.js",Ed),cS=class extends O{static{i(this,"AriaInputFieldName")}static get meta(){return{id:"aria-input-field-name",title:sS(Ed.title),failureTitle:sS(Ed.failureTitle),description:sS(Ed.description),requiredArtifacts:["Accessibility"]}}},qme=cS});var sU={};x(sU,{UIStrings:()=>Td,default:()=>zme});var Td,lS,uS,zme,cU=g(()=>{"use strict";d();te();A();Td={title:"ARIA `meter` elements have accessible names",failureTitle:"ARIA `meter` elements do not have accessible names.",description:"When a meter element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `meter` elements](https://dequeuniversity.com/rules/axe/4.11/aria-meter-name)."},lS=T("core/audits/accessibility/aria-meter-name.js",Td),uS=class extends O{static{i(this,"AriaMeterName")}static get meta(){return{id:"aria-meter-name",title:lS(Td.title),failureTitle:lS(Td.failureTitle),description:lS(Td.description),requiredArtifacts:["Accessibility"]}}},zme=uS});var lU={};x(lU,{UIStrings:()=>xd,default:()=>Gme});var xd,dS,mS,Gme,uU=g(()=>{"use strict";d();te();A();xd={title:"ARIA `progressbar` elements have accessible names",failureTitle:"ARIA `progressbar` elements do not have accessible names.",description:"When a `progressbar` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to label `progressbar` elements](https://dequeuniversity.com/rules/axe/4.11/aria-progressbar-name)."},dS=T("core/audits/accessibility/aria-progressbar-name.js",xd),mS=class extends O{static{i(this,"AriaProgressbarName")}static get meta(){return{id:"aria-progressbar-name",title:dS(xd.title),failureTitle:dS(xd.failureTitle),description:dS(xd.description),requiredArtifacts:["Accessibility"]}}},Gme=mS});var dU={};x(dU,{UIStrings:()=>Sd,default:()=>Wme});var Sd,pS,fS,Wme,mU=g(()=>{"use strict";d();te();A();Sd={title:"Elements use only permitted ARIA attributes",failureTitle:"Elements use prohibited ARIA attributes",description:"Using ARIA attributes in roles where they are prohibited can mean that important information is not communicated to users of assistive technologies. [Learn more about prohibited ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr)."},pS=T("core/audits/accessibility/aria-prohibited-attr.js",Sd),fS=class extends O{static{i(this,"AriaProhibitedAttr")}static get meta(){return{id:"aria-prohibited-attr",title:pS(Sd.title),failureTitle:pS(Sd.failureTitle),description:pS(Sd.description),requiredArtifacts:["Accessibility"]}}},Wme=fS});var pU={};x(pU,{UIStrings:()=>Cd,default:()=>Vme});var Cd,hS,gS,Vme,fU=g(()=>{"use strict";d();te();A();Cd={title:"`[role]`s have all required `[aria-*]` attributes",failureTitle:"`[role]`s do not have all required `[aria-*]` attributes",description:"Some ARIA roles have required attributes that describe the state of the element to screen readers. [Learn more about roles and required attributes](https://dequeuniversity.com/rules/axe/4.11/aria-required-attr)."},hS=T("core/audits/accessibility/aria-required-attr.js",Cd),gS=class extends O{static{i(this,"ARIARequiredAttr")}static get meta(){return{id:"aria-required-attr",title:hS(Cd.title),failureTitle:hS(Cd.failureTitle),description:hS(Cd.description),requiredArtifacts:["Accessibility"]}}},Vme=gS});var hU={};x(hU,{UIStrings:()=>kd,default:()=>$me});var kd,yS,vS,$me,gU=g(()=>{"use strict";d();te();A();kd={title:"Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children.",failureTitle:"Elements with an ARIA `[role]` that require children to contain a specific `[role]` are missing some or all of those required children.",description:"Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. [Learn more about roles and required children elements](https://dequeuniversity.com/rules/axe/4.11/aria-required-children)."},yS=T("core/audits/accessibility/aria-required-children.js",kd),vS=class extends O{static{i(this,"AriaRequiredChildren")}static get meta(){return{id:"aria-required-children",title:yS(kd.title),failureTitle:yS(kd.failureTitle),description:yS(kd.description),requiredArtifacts:["Accessibility"]}}},$me=vS});var yU={};x(yU,{UIStrings:()=>Rd,default:()=>Yme});var Rd,bS,wS,Yme,vU=g(()=>{"use strict";d();te();A();Rd={title:"`[role]`s are contained by their required parent element",failureTitle:"`[role]`s are not contained by their required parent element",description:"Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. [Learn more about ARIA roles and required parent element](https://dequeuniversity.com/rules/axe/4.11/aria-required-parent)."},bS=T("core/audits/accessibility/aria-required-parent.js",Rd),wS=class extends O{static{i(this,"AriaRequiredParent")}static get meta(){return{id:"aria-required-parent",title:bS(Rd.title),failureTitle:bS(Rd.failureTitle),description:bS(Rd.description),requiredArtifacts:["Accessibility"]}}},Yme=wS});var bU={};x(bU,{UIStrings:()=>_d,default:()=>Kme});var _d,ES,TS,Kme,wU=g(()=>{"use strict";d();te();A();_d={title:"`[role]` values are valid",failureTitle:"`[role]` values are not valid",description:"ARIA roles must have valid values in order to perform their intended accessibility functions. [Learn more about valid ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-roles)."},ES=T("core/audits/accessibility/aria-roles.js",_d),TS=class extends O{static{i(this,"AriaRoles")}static get meta(){return{id:"aria-roles",title:ES(_d.title),failureTitle:ES(_d.failureTitle),description:ES(_d.description),requiredArtifacts:["Accessibility"]}}},Kme=TS});var EU={};x(EU,{UIStrings:()=>Id,default:()=>Xme});var Id,xS,SS,Xme,TU=g(()=>{"use strict";d();te();A();Id={title:"Elements with the `role=text` attribute do not have focusable descendents.",failureTitle:"Elements with the `role=text` attribute do have focusable descendents.",description:"Adding `role=text` around a text node split by markup enables VoiceOver to treat it as one phrase, but the element's focusable descendents will not be announced. [Learn more about the `role=text` attribute](https://dequeuniversity.com/rules/axe/4.11/aria-text)."},xS=T("core/audits/accessibility/aria-text.js",Id),SS=class extends O{static{i(this,"AriaText")}static get meta(){return{id:"aria-text",title:xS(Id.title),failureTitle:xS(Id.failureTitle),description:xS(Id.description),requiredArtifacts:["Accessibility"]}}},Xme=SS});var xU={};x(xU,{UIStrings:()=>Dd,default:()=>Jme});var Dd,CS,kS,Jme,SU=g(()=>{"use strict";d();te();A();Dd={title:"ARIA toggle fields have accessible names",failureTitle:"ARIA toggle fields do not have accessible names",description:"When a toggle field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about toggle fields](https://dequeuniversity.com/rules/axe/4.11/aria-toggle-field-name)."},CS=T("core/audits/accessibility/aria-toggle-field-name.js",Dd),kS=class extends O{static{i(this,"AriaToggleFieldName")}static get meta(){return{id:"aria-toggle-field-name",title:CS(Dd.title),failureTitle:CS(Dd.failureTitle),description:CS(Dd.description),requiredArtifacts:["Accessibility"]}}},Jme=kS});var CU={};x(CU,{UIStrings:()=>Ad,default:()=>Zme});var Ad,RS,_S,Zme,kU=g(()=>{"use strict";d();te();A();Ad={title:"ARIA `tooltip` elements have accessible names",failureTitle:"ARIA `tooltip` elements do not have accessible names.",description:"When a tooltip element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `tooltip` elements](https://dequeuniversity.com/rules/axe/4.11/aria-tooltip-name)."},RS=T("core/audits/accessibility/aria-tooltip-name.js",Ad),_S=class extends O{static{i(this,"AriaTooltipName")}static get meta(){return{id:"aria-tooltip-name",title:RS(Ad.title),failureTitle:RS(Ad.failureTitle),description:RS(Ad.description),requiredArtifacts:["Accessibility"]}}},Zme=_S});var RU={};x(RU,{UIStrings:()=>Nd,default:()=>Qme});var Nd,IS,DS,Qme,_U=g(()=>{"use strict";d();te();A();Nd={title:"ARIA `treeitem` elements have accessible names",failureTitle:"ARIA `treeitem` elements do not have accessible names.",description:"When a `treeitem` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about labeling `treeitem` elements](https://dequeuniversity.com/rules/axe/4.11/aria-treeitem-name)."},IS=T("core/audits/accessibility/aria-treeitem-name.js",Nd),DS=class extends O{static{i(this,"AriaTreeitemName")}static get meta(){return{id:"aria-treeitem-name",title:IS(Nd.title),failureTitle:IS(Nd.failureTitle),description:IS(Nd.description),requiredArtifacts:["Accessibility"]}}},Qme=DS});var IU={};x(IU,{UIStrings:()=>Md,default:()=>epe});var Md,AS,NS,epe,DU=g(()=>{"use strict";d();te();A();Md={title:"`[aria-*]` attributes have valid values",failureTitle:"`[aria-*]` attributes do not have valid values",description:"Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid values. [Learn more about valid values for ARIA attributes](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr-value)."},AS=T("core/audits/accessibility/aria-valid-attr-value.js",Md),NS=class extends O{static{i(this,"ARIAValidAttr")}static get meta(){return{id:"aria-valid-attr-value",title:AS(Md.title),failureTitle:AS(Md.failureTitle),description:AS(Md.description),requiredArtifacts:["Accessibility"]}}},epe=NS});var AU={};x(AU,{UIStrings:()=>Od,default:()=>tpe});var Od,MS,OS,tpe,NU=g(()=>{"use strict";d();te();A();Od={title:"`[aria-*]` attributes are valid and not misspelled",failureTitle:"`[aria-*]` attributes are not valid or misspelled",description:"Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid names. [Learn more about valid ARIA attributes](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr)."},MS=T("core/audits/accessibility/aria-valid-attr.js",Od),OS=class extends O{static{i(this,"ARIAValidAttr")}static get meta(){return{id:"aria-valid-attr",title:MS(Od.title),failureTitle:MS(Od.failureTitle),description:MS(Od.description),requiredArtifacts:["Accessibility"]}}},tpe=OS});var MU={};x(MU,{UIStrings:()=>Pd,default:()=>npe});var Pd,PS,LS,npe,OU=g(()=>{"use strict";d();te();A();Pd={title:"Buttons have an accessible name",failureTitle:"Buttons do not have an accessible name",description:`When a button doesn't have an accessible name, screen readers announce it as "button", making it unusable for users who rely on screen readers. [Learn how to make buttons more accessible](https://dequeuniversity.com/rules/axe/4.11/button-name).`},PS=T("core/audits/accessibility/button-name.js",Pd),LS=class extends O{static{i(this,"ButtonName")}static get meta(){return{id:"button-name",title:PS(Pd.title),failureTitle:PS(Pd.failureTitle),description:PS(Pd.description),requiredArtifacts:["Accessibility"]}}},npe=LS});var PU={};x(PU,{UIStrings:()=>Ld,default:()=>rpe});var Ld,FS,US,rpe,LU=g(()=>{"use strict";d();te();A();Ld={title:"The page contains a heading, skip link, or landmark region",failureTitle:"The page does not contain a heading, skip link, or landmark region",description:"Adding ways to bypass repetitive content lets keyboard users navigate the page more efficiently. [Learn more about bypass blocks](https://dequeuniversity.com/rules/axe/4.11/bypass)."},FS=T("core/audits/accessibility/bypass.js",Ld),US=class extends O{static{i(this,"Bypass")}static get meta(){return{id:"bypass",title:FS(Ld.title),failureTitle:FS(Ld.failureTitle),description:FS(Ld.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},rpe=US});var FU={};x(FU,{UIStrings:()=>Fd,default:()=>ape});var Fd,BS,jS,ape,UU=g(()=>{"use strict";d();te();A();Fd={title:"Background and foreground colors have a sufficient contrast ratio",failureTitle:"Background and foreground colors do not have a sufficient contrast ratio.",description:"Low-contrast text is difficult or impossible for many users to read. [Learn how to provide sufficient color contrast](https://dequeuniversity.com/rules/axe/4.11/color-contrast)."},BS=T("core/audits/accessibility/color-contrast.js",Fd),jS=class extends O{static{i(this,"ColorContrast")}static get meta(){return{id:"color-contrast",title:BS(Fd.title),failureTitle:BS(Fd.failureTitle),description:BS(Fd.description),requiredArtifacts:["Accessibility"]}}},ape=jS});var BU={};x(BU,{UIStrings:()=>Ud,default:()=>ope});var Ud,HS,qS,ope,jU=g(()=>{"use strict";d();te();A();Ud={title:"`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements.",failureTitle:"`<dl>`'s do not contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements.",description:"When definition lists are not properly marked up, screen readers may produce confusing or inaccurate output. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.11/definition-list)."},HS=T("core/audits/accessibility/definition-list.js",Ud),qS=class extends O{static{i(this,"DefinitionList")}static get meta(){return{id:"definition-list",title:HS(Ud.title),failureTitle:HS(Ud.failureTitle),description:HS(Ud.description),requiredArtifacts:["Accessibility"]}}},ope=qS});var HU={};x(HU,{UIStrings:()=>Bd,default:()=>ipe});var Bd,zS,GS,ipe,qU=g(()=>{"use strict";d();te();A();Bd={title:"Definition list items are wrapped in `<dl>` elements",failureTitle:"Definition list items are not wrapped in `<dl>` elements",description:"Definition list items (`<dt>` and `<dd>`) must be wrapped in a parent `<dl>` element to ensure that screen readers can properly announce them. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.11/dlitem)."},zS=T("core/audits/accessibility/dlitem.js",Bd),GS=class extends O{static{i(this,"DLItem")}static get meta(){return{id:"dlitem",title:zS(Bd.title),failureTitle:zS(Bd.failureTitle),description:zS(Bd.description),requiredArtifacts:["Accessibility"]}}},ipe=GS});var zU={};x(zU,{UIStrings:()=>jd,default:()=>spe});var jd,WS,VS,spe,GU=g(()=>{"use strict";d();te();A();jd={title:"Document has a `<title>` element",failureTitle:"Document doesn't have a `<title>` element",description:"The title gives screen reader users an overview of the page, and search engine users rely on it heavily to determine if a page is relevant to their search. [Learn more about document titles](https://dequeuniversity.com/rules/axe/4.11/document-title)."},WS=T("core/audits/accessibility/document-title.js",jd),VS=class extends O{static{i(this,"DocumentTitle")}static get meta(){return{id:"document-title",title:WS(jd.title),failureTitle:WS(jd.failureTitle),description:WS(jd.description),requiredArtifacts:["Accessibility"]}}},spe=VS});var WU={};x(WU,{UIStrings:()=>Hd,default:()=>cpe});var Hd,$S,YS,cpe,VU=g(()=>{"use strict";d();te();A();Hd={title:"ARIA IDs are unique",failureTitle:"ARIA IDs are not unique",description:"The value of an ARIA ID must be unique to prevent other instances from being overlooked by assistive technologies. [Learn how to fix duplicate ARIA IDs](https://dequeuniversity.com/rules/axe/4.11/duplicate-id-aria)."},$S=T("core/audits/accessibility/duplicate-id-aria.js",Hd),YS=class extends O{static{i(this,"DuplicateIdAria")}static get meta(){return{id:"duplicate-id-aria",title:$S(Hd.title),failureTitle:$S(Hd.failureTitle),description:$S(Hd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},cpe=YS});var $U={};x($U,{UIStrings:()=>qd,default:()=>lpe});var qd,KS,XS,lpe,YU=g(()=>{"use strict";d();te();A();qd={title:"All heading elements contain content.",failureTitle:"Heading elements do not contain content.",description:"A heading with no content or inaccessible text prevent screen reader users from accessing information on the page's structure. [Learn more about headings](https://dequeuniversity.com/rules/axe/4.11/empty-heading)."},KS=T("core/audits/accessibility/empty-heading.js",qd),XS=class extends O{static{i(this,"EmptyHeading")}static get meta(){return{id:"empty-heading",title:KS(qd.title),failureTitle:KS(qd.failureTitle),description:KS(qd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},lpe=XS});var KU={};x(KU,{UIStrings:()=>zd,default:()=>upe});var zd,JS,ZS,upe,XU=g(()=>{"use strict";d();te();A();zd={title:"No form fields have multiple labels",failureTitle:"Form fields have multiple labels",description:"Form fields with multiple labels can be confusingly announced by assistive technologies like screen readers which use either the first, the last, or all of the labels. [Learn how to use form labels](https://dequeuniversity.com/rules/axe/4.11/form-field-multiple-labels)."},JS=T("core/audits/accessibility/form-field-multiple-labels.js",zd),ZS=class extends O{static{i(this,"FormFieldMultipleLabels")}static get meta(){return{id:"form-field-multiple-labels",title:JS(zd.title),failureTitle:JS(zd.failureTitle),description:JS(zd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},upe=ZS});var JU={};x(JU,{UIStrings:()=>Gd,default:()=>dpe});var Gd,QS,eC,dpe,ZU=g(()=>{"use strict";d();te();A();Gd={title:"`<frame>` or `<iframe>` elements have a title",failureTitle:"`<frame>` or `<iframe>` elements do not have a title",description:"Screen reader users rely on frame titles to describe the contents of frames. [Learn more about frame titles](https://dequeuniversity.com/rules/axe/4.11/frame-title)."},QS=T("core/audits/accessibility/frame-title.js",Gd),eC=class extends O{static{i(this,"FrameTitle")}static get meta(){return{id:"frame-title",title:QS(Gd.title),failureTitle:QS(Gd.failureTitle),description:QS(Gd.description),requiredArtifacts:["Accessibility"]}}},dpe=eC});var QU={};x(QU,{UIStrings:()=>Wd,default:()=>mpe});var Wd,tC,nC,mpe,e9=g(()=>{"use strict";d();te();A();Wd={title:"Heading elements appear in a sequentially-descending order",failureTitle:"Heading elements are not in a sequentially-descending order",description:"Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. [Learn more about heading order](https://dequeuniversity.com/rules/axe/4.11/heading-order)."},tC=T("core/audits/accessibility/heading-order.js",Wd),nC=class extends O{static{i(this,"HeadingOrder")}static get meta(){return{id:"heading-order",title:tC(Wd.title),failureTitle:tC(Wd.failureTitle),description:tC(Wd.description),requiredArtifacts:["Accessibility"]}}},mpe=nC});var t9={};x(t9,{UIStrings:()=>Vd,default:()=>ppe});var Vd,rC,aC,ppe,n9=g(()=>{"use strict";d();te();A();Vd={title:"`<html>` element has a `[lang]` attribute",failureTitle:"`<html>` element does not have a `[lang]` attribute",description:"If a page doesn't specify a `lang` attribute, a screen reader assumes that the page is in the default language that the user chose when setting up the screen reader. If the page isn't actually in the default language, then the screen reader might not announce the page's text correctly. [Learn more about the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/html-has-lang)."},rC=T("core/audits/accessibility/html-has-lang.js",Vd),aC=class extends O{static{i(this,"HTMLHasLang")}static get meta(){return{id:"html-has-lang",title:rC(Vd.title),failureTitle:rC(Vd.failureTitle),description:rC(Vd.description),requiredArtifacts:["Accessibility"]}}},ppe=aC});var r9={};x(r9,{UIStrings:()=>$d,default:()=>fpe});var $d,oC,iC,fpe,a9=g(()=>{"use strict";d();te();A();$d={title:"`<html>` element has a valid value for its `[lang]` attribute",failureTitle:"`<html>` element does not have a valid value for its `[lang]` attribute.",description:"Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) helps screen readers announce text properly. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/html-lang-valid)."},oC=T("core/audits/accessibility/html-lang-valid.js",$d),iC=class extends O{static{i(this,"HTMLLangValid")}static get meta(){return{id:"html-lang-valid",title:oC($d.title),failureTitle:oC($d.failureTitle),description:oC($d.description),requiredArtifacts:["Accessibility"]}}},fpe=iC});var o9={};x(o9,{UIStrings:()=>Yd,default:()=>hpe});var Yd,sC,cC,hpe,i9=g(()=>{"use strict";d();te();A();Yd={title:"`<html>` element has an `[xml:lang]` attribute with the same base language as the `[lang]` attribute.",failureTitle:"`<html>` element does not have an `[xml:lang]` attribute with the same base language as the `[lang]` attribute.",description:"If the webpage does not specify a consistent language, then the screen reader might not announce the page's text correctly. [Learn more about the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/html-xml-lang-mismatch)."},sC=T("core/audits/accessibility/html-xml-lang-mismatch.js",Yd),cC=class extends O{static{i(this,"HTMLXMLLangMismatch")}static get meta(){return{id:"html-xml-lang-mismatch",title:sC(Yd.title),failureTitle:sC(Yd.failureTitle),description:sC(Yd.description),requiredArtifacts:["Accessibility"]}}},hpe=cC});var s9={};x(s9,{UIStrings:()=>Kd,default:()=>gpe});var Kd,lC,uC,gpe,c9=g(()=>{"use strict";d();te();A();Kd={title:"Identical links have the same purpose.",failureTitle:"Identical links do not have the same purpose.",description:"Links with the same destination should have the same description, to help users understand the link's purpose and decide whether to follow it. [Learn more about identical links](https://dequeuniversity.com/rules/axe/4.11/identical-links-same-purpose)."},lC=T("core/audits/accessibility/identical-links-same-purpose.js",Kd),uC=class extends O{static{i(this,"IdenticalLinksSamePurpose")}static get meta(){return{id:"identical-links-same-purpose",title:lC(Kd.title),failureTitle:lC(Kd.failureTitle),description:lC(Kd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},gpe=uC});var l9={};x(l9,{UIStrings:()=>Xd,default:()=>ype});var Xd,dC,mC,ype,u9=g(()=>{"use strict";d();te();A();Xd={title:"Image elements have `[alt]` attributes",failureTitle:"Image elements do not have `[alt]` attributes",description:"Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. [Learn more about the `alt` attribute](https://dequeuniversity.com/rules/axe/4.11/image-alt)."},dC=T("core/audits/accessibility/image-alt.js",Xd),mC=class extends O{static{i(this,"ImageAlt")}static get meta(){return{id:"image-alt",title:dC(Xd.title),failureTitle:dC(Xd.failureTitle),description:dC(Xd.description),requiredArtifacts:["Accessibility"]}}},ype=mC});var d9={};x(d9,{UIStrings:()=>Jd,default:()=>vpe});var Jd,pC,fC,vpe,m9=g(()=>{"use strict";d();te();A();Jd={title:"Image elements do not have `[alt]` attributes that are redundant text.",failureTitle:"Image elements have `[alt]` attributes that are redundant text.",description:"Informative elements should aim for short, descriptive alternative text. Alternative text that is exactly the same as the text adjacent to the link or image is potentially confusing for screen reader users, because the text will be read twice. [Learn more about the `alt` attribute](https://dequeuniversity.com/rules/axe/4.11/image-redundant-alt)."},pC=T("core/audits/accessibility/image-redundant-alt.js",Jd),fC=class extends O{static{i(this,"ImageRedundantAlt")}static get meta(){return{id:"image-redundant-alt",title:pC(Jd.title),failureTitle:pC(Jd.failureTitle),description:pC(Jd.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},vpe=fC});var p9={};x(p9,{UIStrings:()=>Zd,default:()=>bpe});var Zd,hC,gC,bpe,f9=g(()=>{"use strict";d();te();A();Zd={title:"Input buttons have discernible text.",failureTitle:"Input buttons do not have discernible text.",description:"Adding discernable and accessible text to input buttons may help screen reader users understand the purpose of the input button. [Learn more about input buttons](https://dequeuniversity.com/rules/axe/4.11/input-button-name)."},hC=T("core/audits/accessibility/input-button-name.js",Zd),gC=class extends O{static{i(this,"InputButtonName")}static get meta(){return{id:"input-button-name",title:hC(Zd.title),failureTitle:hC(Zd.failureTitle),description:hC(Zd.description),requiredArtifacts:["Accessibility"]}}},bpe=gC});var h9={};x(h9,{UIStrings:()=>Qd,default:()=>wpe});var Qd,yC,vC,wpe,g9=g(()=>{"use strict";d();te();A();Qd={title:'`<input type="image">` elements have `[alt]` text',failureTitle:'`<input type="image">` elements do not have `[alt]` text',description:"When an image is being used as an `<input>` button, providing alternative text can help screen reader users understand the purpose of the button. [Learn about input image alt text](https://dequeuniversity.com/rules/axe/4.11/input-image-alt)."},yC=T("core/audits/accessibility/input-image-alt.js",Qd),vC=class extends O{static{i(this,"InputImageAlt")}static get meta(){return{id:"input-image-alt",title:yC(Qd.title),failureTitle:yC(Qd.failureTitle),description:yC(Qd.description),requiredArtifacts:["Accessibility"]}}},wpe=vC});var y9={};x(y9,{UIStrings:()=>em,default:()=>Epe});var em,bC,wC,Epe,v9=g(()=>{"use strict";d();te();A();em={title:"Elements with visible text labels have matching accessible names.",failureTitle:"Elements with visible text labels do not have matching accessible names.",description:"Visible text labels that do not match the accessible name can result in a confusing experience for screen reader users. [Learn more about accessible names](https://dequeuniversity.com/rules/axe/4.11/label-content-name-mismatch)."},bC=T("core/audits/accessibility/label-content-name-mismatch.js",em),wC=class extends O{static{i(this,"LabelContentNameMismatch")}static get meta(){return{id:"label-content-name-mismatch",title:bC(em.title),failureTitle:bC(em.failureTitle),description:bC(em.description),requiredArtifacts:["Accessibility"]}}},Epe=wC});var b9={};x(b9,{UIStrings:()=>tm,default:()=>Tpe});var tm,EC,TC,Tpe,w9=g(()=>{"use strict";d();te();A();tm={title:"Form elements have associated labels",failureTitle:"Form elements do not have associated labels",description:"Labels ensure that form controls are announced properly by assistive technologies, like screen readers. [Learn more about form element labels](https://dequeuniversity.com/rules/axe/4.11/label)."},EC=T("core/audits/accessibility/label.js",tm),TC=class extends O{static{i(this,"Label")}static get meta(){return{id:"label",title:EC(tm.title),failureTitle:EC(tm.failureTitle),description:EC(tm.description),requiredArtifacts:["Accessibility"]}}},Tpe=TC});var E9={};x(E9,{UIStrings:()=>nm,default:()=>xpe});var nm,xC,SC,xpe,T9=g(()=>{"use strict";d();te();A();nm={title:"Document has a main landmark.",failureTitle:"Document does not have a main landmark.",description:"One main landmark helps screen reader users navigate a web page. [Learn more about landmarks](https://dequeuniversity.com/rules/axe/4.11/landmark-one-main)."},xC=T("core/audits/accessibility/landmark-one-main.js",nm),SC=class extends O{static{i(this,"LandmarkOneMain")}static get meta(){return{id:"landmark-one-main",title:xC(nm.title),failureTitle:xC(nm.failureTitle),description:xC(nm.description),requiredArtifacts:["Accessibility"]}}},xpe=SC});var x9={};x(x9,{UIStrings:()=>rm,default:()=>Spe});var rm,CC,kC,Spe,S9=g(()=>{"use strict";d();te();A();rm={title:"Links are distinguishable without relying on color.",failureTitle:"Links rely on color to be distinguishable.",description:"Low-contrast text is difficult or impossible for many users to read. Link text that is discernible improves the experience for users with low vision. [Learn how to make links distinguishable](https://dequeuniversity.com/rules/axe/4.11/link-in-text-block)."},CC=T("core/audits/accessibility/link-in-text-block.js",rm),kC=class extends O{static{i(this,"LinkInTextBlock")}static get meta(){return{id:"link-in-text-block",title:CC(rm.title),failureTitle:CC(rm.failureTitle),description:CC(rm.description),requiredArtifacts:["Accessibility"]}}},Spe=kC});var C9={};x(C9,{UIStrings:()=>am,default:()=>Cpe});var am,RC,_C,Cpe,k9=g(()=>{"use strict";d();te();A();am={title:"Links have a discernible name",failureTitle:"Links do not have a discernible name",description:"Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. [Learn how to make links accessible](https://dequeuniversity.com/rules/axe/4.11/link-name)."},RC=T("core/audits/accessibility/link-name.js",am),_C=class extends O{static{i(this,"LinkName")}static get meta(){return{id:"link-name",title:RC(am.title),failureTitle:RC(am.failureTitle),description:RC(am.description),requiredArtifacts:["Accessibility"]}}},Cpe=_C});var R9={};x(R9,{UIStrings:()=>om,default:()=>kpe});var om,IC,DC,kpe,_9=g(()=>{"use strict";d();te();A();om={title:"Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).",failureTitle:"Lists do not contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).",description:"Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. [Learn more about proper list structure](https://dequeuniversity.com/rules/axe/4.11/list)."},IC=T("core/audits/accessibility/list.js",om),DC=class extends O{static{i(this,"List")}static get meta(){return{id:"list",title:IC(om.title),failureTitle:IC(om.failureTitle),description:IC(om.description),requiredArtifacts:["Accessibility"]}}},kpe=DC});var I9={};x(I9,{UIStrings:()=>im,default:()=>Rpe});var im,AC,NC,Rpe,D9=g(()=>{"use strict";d();te();A();im={title:"List items (`<li>`) are contained within `<ul>`, `<ol>` or `<menu>` parent elements",failureTitle:"List items (`<li>`) are not contained within `<ul>`, `<ol>` or `<menu>` parent elements.",description:"Screen readers require list items (`<li>`) to be contained within a parent `<ul>`, `<ol>` or `<menu>` to be announced properly. [Learn more about proper list structure](https://dequeuniversity.com/rules/axe/4.11/listitem)."},AC=T("core/audits/accessibility/listitem.js",im),NC=class extends O{static{i(this,"ListItem")}static get meta(){return{id:"listitem",title:AC(im.title),failureTitle:AC(im.failureTitle),description:AC(im.description),requiredArtifacts:["Accessibility"]}}},Rpe=NC});var MC,Gt,kr=g(()=>{"use strict";d();$();MC=class extends E{static{i(this,"ManualAudit")}static get partialMeta(){return{scoreDisplayMode:E.SCORING_MODES.MANUAL,requiredArtifacts:[]}}static audit(){return{score:0}}},Gt=MC});var A9={};x(A9,{default:()=>_pe});var OC,_pe,N9=g(()=>{"use strict";d();kr();OC=class extends Gt{static{i(this,"CustomControlsLabels")}static get meta(){return Object.assign({id:"custom-controls-labels",description:"Custom interactive controls have associated labels, provided by aria-label or aria-labelledby. [Learn more about custom controls and labels](https://developer.chrome.com/docs/lighthouse/accessibility/custom-controls-labels/).",title:"Custom controls have associated labels"},super.partialMeta)}},_pe=OC});var M9={};x(M9,{default:()=>Ipe});var PC,Ipe,O9=g(()=>{"use strict";d();kr();PC=class extends Gt{static{i(this,"CustomControlsRoles")}static get meta(){return Object.assign({id:"custom-controls-roles",description:"Custom interactive controls have appropriate ARIA roles. [Learn how to add roles to custom controls](https://developer.chrome.com/docs/lighthouse/accessibility/custom-control-roles/).",title:"Custom controls have ARIA roles"},super.partialMeta)}},Ipe=PC});var P9={};x(P9,{default:()=>Dpe});var LC,Dpe,L9=g(()=>{"use strict";d();kr();LC=class extends Gt{static{i(this,"FocusTraps")}static get meta(){return Object.assign({id:"focus-traps",description:"A user can tab into and out of any control or region without accidentally trapping their focus. [Learn how to avoid focus traps](https://developer.chrome.com/docs/lighthouse/accessibility/focus-traps/).",title:"User focus is not accidentally trapped in a region"},super.partialMeta)}},Dpe=LC});var F9={};x(F9,{default:()=>Ape});var FC,Ape,U9=g(()=>{"use strict";d();kr();FC=class extends Gt{static{i(this,"FocusableControls")}static get meta(){return Object.assign({id:"focusable-controls",description:"Custom interactive controls are keyboard focusable and display a focus indicator. [Learn how to make custom controls focusable](https://developer.chrome.com/docs/lighthouse/accessibility/focusable-controls/).",title:"Interactive controls are keyboard focusable"},super.partialMeta)}},Ape=FC});var B9={};x(B9,{default:()=>Npe});var UC,Npe,j9=g(()=>{"use strict";d();kr();UC=class extends Gt{static{i(this,"InteractiveElementAffordance")}static get meta(){return Object.assign({id:"interactive-element-affordance",description:"Interactive elements, such as links and buttons, should indicate their state and be distinguishable from non-interactive elements. [Learn how to decorate interactive elements with affordance hints](https://developer.chrome.com/docs/lighthouse/accessibility/interactive-element-affordance/).",title:"Interactive elements indicate their purpose and state"},super.partialMeta)}},Npe=UC});var H9={};x(H9,{default:()=>Mpe});var BC,Mpe,q9=g(()=>{"use strict";d();kr();BC=class extends Gt{static{i(this,"LogicalTabOrder")}static get meta(){return Object.assign({id:"logical-tab-order",description:"Tabbing through the page follows the visual layout. Users cannot focus elements that are offscreen. [Learn more about logical tab ordering](https://developer.chrome.com/docs/lighthouse/accessibility/logical-tab-order/).",title:"The page has a logical tab order"},super.partialMeta)}},Mpe=BC});var z9={};x(z9,{default:()=>Ope});var jC,Ope,G9=g(()=>{"use strict";d();kr();jC=class extends Gt{static{i(this,"ManagedFocus")}static get meta(){return Object.assign({id:"managed-focus",description:"If new content, such as a dialog, is added to the page, the user's focus is directed to it. [Learn how to direct focus to new content](https://developer.chrome.com/docs/lighthouse/accessibility/managed-focus/).",title:"The user's focus is directed to new content added to the page"},super.partialMeta)}},Ope=jC});var W9={};x(W9,{default:()=>Ppe});var HC,Ppe,V9=g(()=>{"use strict";d();kr();HC=class extends Gt{static{i(this,"OffscreenContentHidden")}static get meta(){return Object.assign({id:"offscreen-content-hidden",description:"Offscreen content is hidden with display: none or aria-hidden=true. [Learn how to properly hide offscreen content](https://developer.chrome.com/docs/lighthouse/accessibility/offscreen-content-hidden/).",title:"Offscreen content is hidden from assistive technology"},super.partialMeta)}},Ppe=HC});var $9={};x($9,{default:()=>Lpe});var qC,Lpe,Y9=g(()=>{"use strict";d();kr();qC=class extends Gt{static{i(this,"UseLandmarks")}static get meta(){return Object.assign({id:"use-landmarks",description:"Landmark elements (`<main>`, `<nav>`, etc.) are used to improve the keyboard navigation of the page for assistive technology. [Learn more about landmark elements](https://developer.chrome.com/docs/lighthouse/accessibility/use-landmarks/).",title:"HTML5 landmark elements are used to improve navigation"},super.partialMeta)}},Lpe=qC});var K9={};x(K9,{default:()=>Fpe});var zC,Fpe,X9=g(()=>{"use strict";d();kr();zC=class extends Gt{static{i(this,"VisualOrderFollowsDOM")}static get meta(){return Object.assign({id:"visual-order-follows-dom",description:"DOM order matches the visual order, improving navigation for assistive technology. [Learn more about DOM and visual ordering](https://developer.chrome.com/docs/lighthouse/accessibility/visual-order-follows-dom/).",title:"Visual order on the page follows DOM order"},super.partialMeta)}},Fpe=zC});var J9={};x(J9,{UIStrings:()=>sm,default:()=>Upe});var sm,GC,WC,Upe,Z9=g(()=>{"use strict";d();te();A();sm={title:'The document does not use `<meta http-equiv="refresh">`',failureTitle:'The document uses `<meta http-equiv="refresh">`',description:"Users do not expect a page to refresh automatically, and doing so will move focus back to the top of the page. This may create a frustrating or confusing experience. [Learn more about the refresh meta tag](https://dequeuniversity.com/rules/axe/4.11/meta-refresh)."},GC=T("core/audits/accessibility/meta-refresh.js",sm),WC=class extends O{static{i(this,"MetaRefresh")}static get meta(){return{id:"meta-refresh",title:GC(sm.title),failureTitle:GC(sm.failureTitle),description:GC(sm.description),requiredArtifacts:["Accessibility"]}}},Upe=WC});var Q9={};x(Q9,{UIStrings:()=>cm,default:()=>Bpe});var cm,VC,$C,Bpe,e7=g(()=>{"use strict";d();te();A();cm={title:'`[user-scalable="no"]` is not used in the `<meta name="viewport">` element and the `[maximum-scale]` attribute is not less than 5.',failureTitle:'`[user-scalable="no"]` is used in the `<meta name="viewport">` element or the `[maximum-scale]` attribute is less than 5.',description:"Disabling zooming is problematic for users with low vision who rely on screen magnification to properly see the contents of a web page. [Learn more about the viewport meta tag](https://dequeuniversity.com/rules/axe/4.11/meta-viewport)."},VC=T("core/audits/accessibility/meta-viewport.js",cm),$C=class extends O{static{i(this,"MetaViewport")}static get meta(){return{id:"meta-viewport",title:VC(cm.title),failureTitle:VC(cm.failureTitle),description:VC(cm.description),requiredArtifacts:["Accessibility"]}}},Bpe=$C});var t7={};x(t7,{UIStrings:()=>lm,default:()=>jpe});var lm,YC,KC,jpe,n7=g(()=>{"use strict";d();te();A();lm={title:"`<object>` elements have alternate text",failureTitle:"`<object>` elements do not have alternate text",description:"Screen readers cannot translate non-text content. Adding alternate text to `<object>` elements helps screen readers convey meaning to users. [Learn more about alt text for `object` elements](https://dequeuniversity.com/rules/axe/4.11/object-alt)."},YC=T("core/audits/accessibility/object-alt.js",lm),KC=class extends O{static{i(this,"ObjectAlt")}static get meta(){return{id:"object-alt",title:YC(lm.title),failureTitle:YC(lm.failureTitle),description:YC(lm.description),requiredArtifacts:["Accessibility"]}}},jpe=KC});var r7={};x(r7,{UIStrings:()=>um,default:()=>Hpe});var um,XC,JC,Hpe,a7=g(()=>{"use strict";d();te();A();um={title:"Select elements have associated label elements.",failureTitle:"Select elements do not have associated label elements.",description:"Form elements without effective labels can create frustrating experiences for screen reader users. [Learn more about the `select` element](https://dequeuniversity.com/rules/axe/4.11/select-name)."},XC=T("core/audits/accessibility/select-name.js",um),JC=class extends O{static{i(this,"SelectName")}static get meta(){return{id:"select-name",title:XC(um.title),failureTitle:XC(um.failureTitle),description:XC(um.description),requiredArtifacts:["Accessibility"]}}},Hpe=JC});var o7={};x(o7,{UIStrings:()=>dm,default:()=>qpe});var dm,ZC,QC,qpe,i7=g(()=>{"use strict";d();te();A();dm={title:"Skip links are focusable.",failureTitle:"Skip links are not focusable.",description:"Including a skip link can help users skip to the main content to save time. [Learn more about skip links](https://dequeuniversity.com/rules/axe/4.11/skip-link)."},ZC=T("core/audits/accessibility/skip-link.js",dm),QC=class extends O{static{i(this,"SkipLink")}static get meta(){return{id:"skip-link",title:ZC(dm.title),failureTitle:ZC(dm.failureTitle),description:ZC(dm.description),requiredArtifacts:["Accessibility"]}}},qpe=QC});var s7={};x(s7,{UIStrings:()=>mm,default:()=>zpe});var mm,ek,tk,zpe,c7=g(()=>{"use strict";d();te();A();mm={title:"No element has a `[tabindex]` value greater than 0",failureTitle:"Some elements have a `[tabindex]` value greater than 0",description:"A value greater than 0 implies an explicit navigation ordering. Although technically valid, this often creates frustrating experiences for users who rely on assistive technologies. [Learn more about the `tabindex` attribute](https://dequeuniversity.com/rules/axe/4.11/tabindex)."},ek=T("core/audits/accessibility/tabindex.js",mm),tk=class extends O{static{i(this,"TabIndex")}static get meta(){return{id:"tabindex",title:ek(mm.title),failureTitle:ek(mm.failureTitle),description:ek(mm.description),requiredArtifacts:["Accessibility"]}}},zpe=tk});var l7={};x(l7,{UIStrings:()=>pm,default:()=>Gpe});var pm,nk,rk,Gpe,u7=g(()=>{"use strict";d();te();A();pm={title:"Tables have different content in the summary attribute and `<caption>`.",failureTitle:"Tables have the same content in the summary attribute and `<caption>.`",description:"The summary attribute should describe the table structure, while `<caption>` should have the onscreen title. Accurate table mark-up helps users of screen readers. [Learn more about summary and caption](https://dequeuniversity.com/rules/axe/4.11/table-duplicate-name)."},nk=T("core/audits/accessibility/table-duplicate-name.js",pm),rk=class extends O{static{i(this,"TableDuplicateName")}static get meta(){return{id:"table-duplicate-name",title:nk(pm.title),failureTitle:nk(pm.failureTitle),description:nk(pm.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},Gpe=rk});var d7={};x(d7,{UIStrings:()=>fm,default:()=>Wpe});var fm,ak,ok,Wpe,m7=g(()=>{"use strict";d();te();A();fm={title:"Tables use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption.",failureTitle:"Tables do not use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption.",description:"Screen readers have features to make navigating tables easier. Ensuring that tables use the actual caption element instead of cells with the `[colspan]` attribute may improve the experience for screen reader users. [Learn more about captions](https://dequeuniversity.com/rules/axe/4.11/table-fake-caption)."},ak=T("core/audits/accessibility/table-fake-caption.js",fm),ok=class extends O{static{i(this,"TableFakeCaption")}static get meta(){return{id:"table-fake-caption",title:ak(fm.title),failureTitle:ak(fm.failureTitle),description:ak(fm.description),requiredArtifacts:["Accessibility"]}}},Wpe=ok});var p7={};x(p7,{UIStrings:()=>hm,default:()=>Vpe});var hm,ik,sk,Vpe,f7=g(()=>{"use strict";d();te();A();hm={title:"Touch targets have sufficient size and spacing.",failureTitle:"Touch targets do not have sufficient size or spacing.",description:"Touch targets with sufficient size and spacing help users who may have difficulty targeting small controls to activate the targets. [Learn more about touch targets](https://dequeuniversity.com/rules/axe/4.11/target-size)."},ik=T("core/audits/accessibility/target-size.js",hm),sk=class extends O{static{i(this,"TargetSize")}static get meta(){return{id:"target-size",title:ik(hm.title),failureTitle:ik(hm.failureTitle),description:ik(hm.description),requiredArtifacts:["Accessibility"]}}},Vpe=sk});var h7={};x(h7,{UIStrings:()=>gm,default:()=>$pe});var gm,ck,lk,$pe,g7=g(()=>{"use strict";d();te();A();gm={title:"`<td>` elements in a large `<table>` have one or more table headers.",failureTitle:"`<td>` elements in a large `<table>` do not have table headers.",description:"Screen readers have features to make navigating tables easier. Ensuring that `<td>` elements in a large table (3 or more cells in width and height) have an associated table header may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.11/td-has-header)."},ck=T("core/audits/accessibility/td-has-header.js",gm),lk=class extends O{static{i(this,"TDHasHeader")}static get meta(){return{id:"td-has-header",title:ck(gm.title),failureTitle:ck(gm.failureTitle),description:ck(gm.description),requiredArtifacts:["Accessibility"]}}},$pe=lk});var y7={};x(y7,{UIStrings:()=>ym,default:()=>Ype});var ym,uk,dk,Ype,v7=g(()=>{"use strict";d();te();A();ym={title:"Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table.",failureTitle:"Cells in a `<table>` element that use the `[headers]` attribute refer to an element `id` not found within the same table.",description:"Screen readers have features to make navigating tables easier. Ensuring `<td>` cells using the `[headers]` attribute only refer to other cells in the same table may improve the experience for screen reader users. [Learn more about the `headers` attribute](https://dequeuniversity.com/rules/axe/4.11/td-headers-attr)."},uk=T("core/audits/accessibility/td-headers-attr.js",ym),dk=class extends O{static{i(this,"TDHeadersAttr")}static get meta(){return{id:"td-headers-attr",title:uk(ym.title),failureTitle:uk(ym.failureTitle),description:uk(ym.description),requiredArtifacts:["Accessibility"]}}},Ype=dk});var b7={};x(b7,{UIStrings:()=>vm,default:()=>Kpe});var vm,mk,pk,Kpe,w7=g(()=>{"use strict";d();te();A();vm={title:'`<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe.',failureTitle:'`<th>` elements and elements with `[role="columnheader"/"rowheader"]` do not have data cells they describe.',description:"Screen readers have features to make navigating tables easier. Ensuring table headers always refer to some set of cells may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.11/th-has-data-cells)."},mk=T("core/audits/accessibility/th-has-data-cells.js",vm),pk=class extends O{static{i(this,"THHasDataCells")}static get meta(){return{id:"th-has-data-cells",title:mk(vm.title),failureTitle:mk(vm.failureTitle),description:mk(vm.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},Kpe=pk});var E7={};x(E7,{UIStrings:()=>bm,default:()=>Xpe});var bm,fk,hk,Xpe,T7=g(()=>{"use strict";d();te();A();bm={title:"`[lang]` attributes have a valid value",failureTitle:"`[lang]` attributes do not have a valid value",description:"Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) on elements helps ensure that text is pronounced correctly by a screen reader. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/valid-lang)."},fk=T("core/audits/accessibility/valid-lang.js",bm),hk=class extends O{static{i(this,"ValidLang")}static get meta(){return{id:"valid-lang",title:fk(bm.title),failureTitle:fk(bm.failureTitle),description:fk(bm.description),requiredArtifacts:["Accessibility"]}}},Xpe=hk});var x7={};x(x7,{UIStrings:()=>wm,default:()=>Jpe});var wm,gk,yk,Jpe,S7=g(()=>{"use strict";d();te();A();wm={title:'`<video>` elements contain a `<track>` element with `[kind="captions"]`',failureTitle:'`<video>` elements do not contain a `<track>` element with `[kind="captions"]`.',description:"When a video provides a caption it is easier for deaf and hearing impaired users to access its information. [Learn more about video captions](https://dequeuniversity.com/rules/axe/4.11/video-caption)."},gk=T("core/audits/accessibility/video-caption.js",wm),yk=class extends O{static{i(this,"VideoCaption")}static get meta(){return{id:"video-caption",title:gk(wm.title),failureTitle:gk(wm.failureTitle),description:gk(wm.description),scoreDisplayMode:O.SCORING_MODES.INFORMATIVE,requiredArtifacts:["Accessibility"]}}},Jpe=yk});var k7={};x(k7,{UIStrings:()=>An,default:()=>efe});var An,Hn,Zpe,Qpe,C7,vk,efe,R7=g(()=>{"use strict";d();Ve();$();A();An={title:"`<input>` elements correctly use `autocomplete`",failureTitle:"`<input>` elements do not have correct `autocomplete` attributes",description:"`autocomplete` helps users submit forms quicker. To reduce user effort, consider enabling by setting the `autocomplete` attribute to a valid value. [Learn more about `autocomplete` in forms](https://developers.google.com/web/fundamentals/design-and-ux/input/forms#use_metadata_to_enable_auto-complete)",columnSuggestions:"Suggested Token",columnCurrent:"Current Value",warningInvalid:'`autocomplete` token(s): "{token}" is invalid in {snippet}',warningOrder:'Review order of tokens: "{tokens}" in {snippet}',reviewOrder:"Review order of tokens",manualReview:"Requires manual review"},Hn=T("core/audits/autocomplete.js",An),Zpe=["name","honorific-prefix","given-name","additional-name","family-name","honorific-suffix","nickname",
|
|
1814
|
+
"username","new-password","current-password","one-time-code","organization-title","organization","street-address","address-line1","address-line2","address-line3","address-level4","address-level3","address-level2","address-level1","country","country-name","postal-code","cc-name","cc-given-name","cc-additional-name","cc-family-name","cc-number","cc-exp","cc-exp-month","cc-exp-year","cc-csc","cc-type","transaction-currency","transaction-amount","language","bday","bday-day","bday-month","bday-year","sex","url","photo","tel","tel-country-code","tel-national","tel-area-code","on","tel-local","tel-local-prefix","tel-local-suffix","tel-extension","email","impp","off","additional-name-initial","home","work","mobile","fax","pager","shipping","billing"],Qpe=["NO_SERVER_DATA","UNKNOWN_TYPE","EMPTY_TYPE","HTML_TYPE_UNSPECIFIED","HTML_TYPE_UNRECOGNIZED"],C7={NO_SERVER_DATA:Hn(An.manualReview),UNKNOWN_TYPE:Hn(An.manualReview),EMPTY_TYPE:Hn(An.manualReview),NAME_FIRST:"given-name",NAME_MIDDLE:"additio\
|
|
1814
1815
|
nal-name",NAME_LAST:"family-name",NAME_FULL:"name",NAME_MIDDLE_INITIAL:"additional-name-initial",NAME_SUFFIX:"honorific-suffix",NAME_BILLING_FIRST:"billing given-name",NAME_BILLING_MIDDLE:"billing additional-name",NAME_BILLING_LAST:"billing family-name",NAME_BILLING_MIDDLE_INITIAL:"billing additional-name-initial",NAME_BILLING_FULL:"billing name",NAME_BILLING_SUFFIX:"billing honorific-suffix",EMAIL_ADDRESS:"email",MERCHANT_EMAIL_SIGNUP:"email",PHONE_HOME_NUMBER:"tel-local",PHONE_HOME_CITY_CODE:"tel-area-code",PHONE_HOME_COUNTRY_CODE:"tel-country-code",PHONE_HOME_CITY_AND_NUMBER:"tel-national",PHONE_HOME_WHOLE_NUMBER:"tel",PHONE_HOME_EXTENSION:"tel-extension",PHONE_BILLING_NUMBER:"billing tel-local",PHONE_BILLING_CITY_CODE:"billing tel-area-code",PHONE_BILLING_COUNTRY_CODE:"tel-country-code",PHONE_BILLING_CITY_AND_NUMBER:"tel-national",PHONE_BILLING_WHOLE_NUMBER:"tel",ADDRESS_HOME_STREET_ADDRESS:"street-address",ADDRESS_HOME_LINE1:"address-line1",ADDRESS_HOME_LINE2:"address-line2",ADDRESS_HOME_LINE3:"\
|
|
1815
1816
|
address-line3",ADDRESS_HOME_STATE:"address-level1",ADDRESS_HOME_CITY:"address-level2",ADDRESS_HOME_DEPENDENT_LOCALITY:"address-level3",ADDRESS_HOME_ZIP:"postal-code",ADDRESS_HOME_COUNTRY:"country-name",ADDRESS_BILLING_DEPENDENT_LOCALITY:"billing address-level3",ADDRESS_BILLING_STREET_ADDRESS:"billing street-address",ADDRESS_BILLING_LINE1:"billing address-line1",ADDRESS_BILLING_LINE2:"billing address-line2",ADDRESS_BILLING_LINE3:"billing address-line3",ADDRESS_BILLING_APT_NUM:"billing address-level3",ADDRESS_BILLING_CITY:"billing address-level2",ADDRESS_BILLING_STATE:"billing address-level1",ADDRESS_BILLING_ZIP:"billing postal-code",ADDRESS_BILLING_COUNTRY:"billing country-name",CREDIT_CARD_NAME_FULL:"cc-name",CREDIT_CARD_NAME_FIRST:"cc-given-name",CREDIT_CARD_NAME_LAST:"cc-family-name",CREDIT_CARD_NUMBER:"cc-number",CREDIT_CARD_EXP_MONTH:"cc-exp-month",CREDIT_CARD_EXP_2_DIGIT_YEAR:"cc-exp-year",CREDIT_CARD_EXP_4_DIGIT_YEAR:"cc-exp-year",CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR:"cc-exp",CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR:"\
|
|
1816
|
-
cc-exp",CREDIT_CARD_TYPE:"cc-type",CREDIT_CARD_VERIFICATION_CODE:"cc-csc",COMPANY_NAME:"organization",PASSWORD:"current-password",ACCOUNT_CREATION_PASSWORD:"new-password",HTML_TYPE_UNSPECIFIED:Hn(
|
|
1817
|
-
cc-family-name",HTML_TYPE_CREDIT_CARD_NUMBER:"cc-number",HTML_TYPE_CREDIT_CARD_EXP:"cc-exp",HTML_TYPE_CREDIT_CARD_EXP_MONTH:"cc-exp-month",HTML_TYPE_CREDIT_CARD_EXP_YEAR:"cc-exp-year",HTML_TYPE_CREDIT_CARD_VERIFICATION_CODE:"cc-csc",HTML_TYPE_CREDIT_CARD_TYPE:"cc-csc",HTML_TYPE_TEL:"tel",HTML_TYPE_TEL_COUNTRY_CODE:"tel-country-code",HTML_TYPE_TEL_NATIONAL:"tel-national",HTML_TYPE_TEL_AREA_CODE:"tel-area-code",HTML_TYPE_TEL_LOCAL:"tel-local",HTML_TYPE_TEL_LOCAL_PREFIX:"tel-local-prefix",HTML_TYPE_TEL_LOCAL_SUFFIX:"tel-local-suffix",HTML_TYPE_TEL_EXTENSION:"tel-extension",HTML_TYPE_EMAIL:"email",HTML_TYPE_ADDITIONAL_NAME_INITIAL:"additional-name-initial",HTML_TYPE_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR:"cc-exp-year",HTML_TYPE_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR:"cc-exp-year",HTML_TYPE_CREDIT_CARD_EXP_2_DIGIT_YEAR:"cc-exp-year",HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR:"cc-exp-year",HTML_TYPE_UPI_VPA:Hn(
|
|
1818
|
-
HTML_TYPE_TRANSACTION_AMOUNT:"transaction-amount",HTML_TYPE_TRANSACTION_CURRENCY:"transaction-currency"},vk=class extends E{static{i(this,"AutocompleteAudit")}static get meta(){return{id:"autocomplete",title:Hn(
|
|
1819
|
-
r.push(Hn(
|
|
1820
|
-
not found in our mapping`);continue}n.push({node:E.makeNodeItem(l.node),suggestion:m,current:l.autocomplete.attribute})}let o=[{key:"node",valueType:"node",label:Hn(D.columnFailingElem)},{key:"current",valueType:"text",label:Hn(
|
|
1817
|
+
cc-exp",CREDIT_CARD_TYPE:"cc-type",CREDIT_CARD_VERIFICATION_CODE:"cc-csc",COMPANY_NAME:"organization",PASSWORD:"current-password",ACCOUNT_CREATION_PASSWORD:"new-password",HTML_TYPE_UNSPECIFIED:Hn(An.manualReview),HTML_TYPE_NAME:"name",HTML_TYPE_HONORIFIC_PREFIX:"honorific-prefix",HTML_TYPE_GIVEN_NAME:"given-name",HTML_TYPE_ADDITIONAL_NAME:"additional-name",HTML_TYPE_FAMILY_NAME:"family-name",HTML_TYPE_ORGANIZATION:"organization",HTML_TYPE_STREET_ADDRESS:"street-address",HTML_TYPE_ADDRESS_LINE1:"address-line1",HTML_TYPE_ADDRESS_LINE2:"address-line2",HTML_TYPE_ADDRESS_LINE3:"address-line3",HTML_TYPE_ADDRESS_LEVEL1:"address-level1",HTML_TYPE_ADDRESS_LEVEL2:"address-level2",HTML_TYPE_ADDRESS_LEVEL3:"address-level3",HTML_TYPE_COUNTRY_CODE:"tel-country-code",HTML_TYPE_COUNTRY_NAME:"country-name",HTML_TYPE_POSTAL_CODE:"postal-code",HTML_TYPE_FULL_ADDRESS:"street-address",HTML_TYPE_CREDIT_CARD_NAME_FULL:"cc-name",HTML_TYPE_CREDIT_CARD_NAME_FIRST:"cc-given-name",HTML_TYPE_CREDIT_CARD_NAME_LAST:"\
|
|
1818
|
+
cc-family-name",HTML_TYPE_CREDIT_CARD_NUMBER:"cc-number",HTML_TYPE_CREDIT_CARD_EXP:"cc-exp",HTML_TYPE_CREDIT_CARD_EXP_MONTH:"cc-exp-month",HTML_TYPE_CREDIT_CARD_EXP_YEAR:"cc-exp-year",HTML_TYPE_CREDIT_CARD_VERIFICATION_CODE:"cc-csc",HTML_TYPE_CREDIT_CARD_TYPE:"cc-csc",HTML_TYPE_TEL:"tel",HTML_TYPE_TEL_COUNTRY_CODE:"tel-country-code",HTML_TYPE_TEL_NATIONAL:"tel-national",HTML_TYPE_TEL_AREA_CODE:"tel-area-code",HTML_TYPE_TEL_LOCAL:"tel-local",HTML_TYPE_TEL_LOCAL_PREFIX:"tel-local-prefix",HTML_TYPE_TEL_LOCAL_SUFFIX:"tel-local-suffix",HTML_TYPE_TEL_EXTENSION:"tel-extension",HTML_TYPE_EMAIL:"email",HTML_TYPE_ADDITIONAL_NAME_INITIAL:"additional-name-initial",HTML_TYPE_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR:"cc-exp-year",HTML_TYPE_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR:"cc-exp-year",HTML_TYPE_CREDIT_CARD_EXP_2_DIGIT_YEAR:"cc-exp-year",HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR:"cc-exp-year",HTML_TYPE_UPI_VPA:Hn(An.manualReview),HTML_TYPE_ONE_TIME_CODE:"one-time-code",HTML_TYPE_UNRECOGNIZED:Hn(An.manualReview),
|
|
1819
|
+
HTML_TYPE_TRANSACTION_AMOUNT:"transaction-amount",HTML_TYPE_TRANSACTION_CURRENCY:"transaction-currency"},vk=class extends E{static{i(this,"AutocompleteAudit")}static get meta(){return{id:"autocomplete",title:Hn(An.title),failureTitle:Hn(An.failureTitle),description:Hn(An.description),requiredArtifacts:["Inputs"]}}static checkAttributeValidity(t){if(!t.autocomplete.attribute)return{hasValidTokens:!1};let n=t.autocomplete.attribute.split(" ");for(let r of n)if(r.slice(0,8)!=="section-"&&!Zpe.includes(r))return{hasValidTokens:!1};return t.autocomplete.property?{hasValidTokens:!0,isValidOrder:!0}:{hasValidTokens:!0,isValidOrder:!1}}static audit(t){let n=[],r=[],a=!1;for(let l of t.Inputs.inputs){let u=this.checkAttributeValidity(l);if(u.hasValidTokens&&u.isValidOrder||!l.autocomplete.prediction||Qpe.includes(l.autocomplete.prediction)&&!l.autocomplete.attribute)continue;a=!0;let m=C7[l.autocomplete.prediction];if(l.autocomplete.attribute||(l.autocomplete.attribute=""),l.autocomplete.attribute&&
|
|
1820
|
+
r.push(Hn(An.warningInvalid,{token:l.autocomplete.attribute,snippet:l.node.snippet})),u.isValidOrder===!1&&(r.push(Hn(An.warningOrder,{tokens:l.autocomplete.attribute,snippet:l.node.snippet})),m=An.reviewOrder),!(l.autocomplete.prediction in C7)&&u.isValidOrder){M.warn(`Autocomplete prediction (${l.autocomplete.prediction})
|
|
1821
|
+
not found in our mapping`);continue}n.push({node:E.makeNodeItem(l.node),suggestion:m,current:l.autocomplete.attribute})}let o=[{key:"node",valueType:"node",label:Hn(D.columnFailingElem)},{key:"current",valueType:"text",label:Hn(An.columnCurrent)},{key:"suggestion",valueType:"text",label:Hn(An.columnSuggestions)}],s=E.makeTableDetails(o,n),c;return n.length>0&&(c=Hn(D.displayValueElementsFound,{nodeCount:n.length})),{score:n.length>0?0:1,notApplicable:!a,displayValue:c,details:s,warnings:r}}},efe=vk});var P,L,_7,I7=g(()=>{"use strict";d();A();P={notMainFrame:"Navigation happened in a frame other than the main frame.",backForwardCacheDisabled:"Back/forward cache is disabled by flags. Visit chrome://flags/#back-forward-cache to enable it locally on this device.",relatedActiveContentsExist:"The page was opened using '`window.open()`' and another tab has a reference to it, or the page opened a window.",HTTPStatusNotOK:"Only pages with a status code of 2XX can be cached.",schemeNotHTTPOrHTTPS:"Only pages whose URL scheme is HTTP / HTTPS can be cached.",loading:"The page did not finish loading before navigating away.",wasGrantedMediaAccess:"Pages that have granted access to record video or audio are not currently eligible for back/forward cache.",HTTPMethodNotGET:"Only pages loaded via a GET request are eligible for back/forward cache.",subframeIsNavigating:"An iframe on the page started a navigation that did not complete.",timeout:"The page exceeded the maximum time in back/forward cache\
|
|
1821
1822
|
and was expired.",cacheLimit:"The page was evicted from the cache to allow another page to be cached.",JavaScriptExecution:"Chrome detected an attempt to execute JavaScript while in the cache.",rendererProcessKilled:"The renderer process for the page in back/forward cache was killed.",rendererProcessCrashed:"The renderer process for the page in back/forward cache crashed.",grantedMediaStreamAccess:"Pages that have granted media stream access are not currently eligible for back/forward cache.",cacheFlushed:"The cache was intentionally cleared.",serviceWorkerVersionActivation:"The page was evicted from back/forward cache due to a service worker activation.",sessionRestored:"Chrome restarted and cleared the back/forward cache entries.",serviceWorkerPostMessage:"A service worker attempted to send the page in back/forward cache a `MessageEvent`.",enteredBackForwardCacheBeforeServiceWorkerHostAdded:"A service worker was activated while the page was in back/forward cache.",serviceWorkerClaim:"\
|
|
1822
1823
|
The page was claimed by a service worker while it is in back/forward cache.",haveInnerContents:"Pages that have certain kinds of embedded content (e.g. PDFs) are not currently eligible for back/forward cache.",timeoutPuttingInCache:"The page timed out entering back/forward cache (likely due to long-running pagehide handlers).",backForwardCacheDisabledByLowMemory:"Back/forward cache is disabled due to insufficient memory.",backForwardCacheDisabledByCommandLine:"Back/forward cache is disabled by the command line.",networkRequestDatapipeDrainedAsBytesConsumer:"Pages that have inflight fetch() or XHR are not currently eligible for back/forward cache.",networkRequestRedirected:"The page was evicted from back/forward cache because an active network request involved a redirect.",networkRequestTimeout:"The page was evicted from the cache because a network connection was open too long. Chrome limits the amount of time that a page may receive data while cached.",networkExceedsBufferLimit:"The pa\
|
|
1823
1824
|
ge was evicted from the cache because an active network connection received too much data. Chrome limits the amount of data that a page may receive while cached.",navigationCancelledWhileRestoring:"Navigation was cancelled before the page could be restored from back/forward cache.",backForwardCacheDisabledForPrerender:"Back/forward cache is disabled for prerenderer.",userAgentOverrideDiffers:"Browser has changed the user agent override header.",foregroundCacheLimit:"The page was evicted from the cache to allow another page to be cached.",backForwardCacheDisabledForDelegate:"Back/forward cache is not supported by delegate.",unloadHandlerExistsInMainFrame:"The page has an unload handler in the main frame.",unloadHandlerExistsInSubFrame:"The page has an unload handler in a sub frame.",serviceWorkerUnregistration:"ServiceWorker was unregistered while a page was in back/forward cache.",noResponseHead:"Pages that do not have a valid response head cannot enter back/forward cache.",cacheControlNoStore:"\
|
|
@@ -1843,7 +1844,7 @@ ocumentStartJavascriptChanged"},CacheControlNoStoreDeviceBoundSessionTerminated:
|
|
|
1843
1844
|
other {# failure reasons}
|
|
1844
1845
|
}`},pa=T("core/audits/bf-cache.js",Rr),tfe=["PageSupportNeeded","SupportPending","Circumstantial"],nfe={PageSupportNeeded:pa(Rr.actionableFailureType),Circumstantial:pa(Rr.notActionableFailureType),SupportPending:pa(Rr.supportPendingFailureType)},bk=class extends E{static{i(this,"BFCache")}static get meta(){return{id:"bf-cache",title:pa(Rr.title),failureTitle:pa(Rr.failureTitle),description:pa(Rr.description),supportedModes:["navigation","timespan"],guidanceLevel:4,requiredArtifacts:["BFCacheFailures","HostProduct"],scoreDisplayMode:E.SCORING_MODES.BINARY}}static async audit(t){if(/HeadlessChrome/.test(t.HostProduct))return{score:null,notApplicable:!0,warnings:[pa(Rr.warningHeadless)]};let n=t.BFCacheFailures;if(!n.length)return{score:1};let{notRestoredReasonsTree:r}=n[0],a=0,o=[];for(let u of tfe){let m=r[u];for(let[p,f]of Object.entries(m))a+=f.length,o.push({reason:_7[p]?.name??p,failureType:nfe[u],subItems:{type:"subitems",items:f.map(h=>({frameUrl:h}))},protocolReason:p})}let s=[
|
|
1845
1846
|
{key:"reason",valueType:"text",subItemsHeading:{key:"frameUrl",valueType:"url"},label:pa(Rr.failureReasonColumn)},{key:"failureType",valueType:"text",label:pa(Rr.failureTypeColumn)}],c=E.makeTableDetails(s,o),l=a?pa(Rr.displayValue,{itemCount:a}):void 0;return{score:o.length?0:1,displayValue:l,details:c}}},rfe=bk});var Ka,wk,Dg=g(()=>{"use strict";d();Ka={parseHTML:{id:"parseHTML",label:"Parse HTML & CSS",traceEventNames:["ParseHTML","ParseAuthorStyleSheet"]},styleLayout:{id:"styleLayout",label:"Style & Layout",traceEventNames:["ScheduleStyleRecalculation","UpdateLayoutTree","InvalidateLayout","Layout"]},paintCompositeRender:{id:"paintCompositeRender",label:"Rendering",traceEventNames:["Animation","HitTest","PaintSetup","Paint","PaintImage","RasterTask","ScrollLayer","UpdateLayer","UpdateLayerTree","CompositeLayers","PrePaint"]},scriptParseCompile:{id:"scriptParseCompile",label:"Script Parsing & Compilation",traceEventNames:["v8.compile","v8.compileModule","v8.parseOnBackground"]},scriptEvaluation:{id:"scriptEvaluation",label:"Script Evaluation",traceEventNames:["EventDispatch","EvaluateScript","v8.evaluateModule","FunctionCall","TimerFire","FireIdleCallback","FireAnimationFrame","RunMicrotasks","V8.Execute"]},garbageCollection:{id:"garbageCollection",label:"Garbage Collection",traceEventNames:["\
|
|
1846
|
-
MinorGC","MajorGC","BlinkGC.AtomicPhase","ThreadState::performIdleLazySweep","ThreadState::completeSweep","BlinkGCMarking"]},other:{id:"other",label:"Other",traceEventNames:["MessageLoop::RunTask","TaskQueueManager::ProcessTaskFromWorkQueue","ThreadControllerImpl::DoWork"]}},wk={};for(let e of Object.values(Ka))for(let t of e.traceEventNames)wk[t]=e});var Ag,N7=g(()=>{"use strict";d();
|
|
1847
|
+
MinorGC","MajorGC","BlinkGC.AtomicPhase","ThreadState::performIdleLazySweep","ThreadState::completeSweep","BlinkGCMarking"]},other:{id:"other",label:"Other",traceEventNames:["MessageLoop::RunTask","TaskQueueManager::ProcessTaskFromWorkQueue","ThreadControllerImpl::DoWork"]}},wk={};for(let e of Object.values(Ka))for(let t of e.traceEventNames)wk[t]=e});var Ag,N7=g(()=>{"use strict";d();Sn();Dg();Ag=class e{static{i(this,"MainThreadTasks")}static _createNewTaskNode(t,n){let r=t.ph==="X"&&!n,a=t.ph==="B"&&n&&n.ph==="E";if(!r&&!a)throw new Error("Invalid parameters for _createNewTaskNode");let o=t.ts,s=n?n.ts:t.ts+Number(t.dur||0);return{event:t,endEvent:n,startTime:o,endTime:s,duration:s-o,unbounded:!1,parent:void 0,children:[],attributableURLs:[],group:Ka.other,selfTime:NaN}}static _assignAllTimersUntilTs(t,n,r,a){for(;a.length;){let o=a.pop();if(!o)break;if(o.ts>n){a.push(o);break}if(o.ts<t.startTime)continue;let s=o.args.data.timerId;r.timers.set(s,t)}}static _createTasksFromStartAndEndEvents(t,n,r){let a=[],o=n.slice().reverse();for(let s=0;s<t.length;s++){let c=t[s];if(c.ph==="X"){a.push(e._createNewTaskNode(c));continue}let l=-1,u=0,m=s+1;for(let y=o.length-1;y>=0;y--){let b=o[y];for(;m<t.length&&!(t[m].ts>=b.ts);m++)t[m].name===c.name&&u++;if(b.name===c.name&&!(b.ts<c.ts)){if(u>0){u--;continue}l=y;break}}let p,f=!1;l===-1?(p={...c,
|
|
1847
1848
|
ph:"E",ts:r},f=!0):l===o.length-1?p=o.pop():p=o.splice(l,1)[0];let h=e._createNewTaskNode(c,p);h.unbounded=f,a.push(h)}if(o.length)throw new Error(`Fatal trace logic error - ${o.length} unmatched end events`);return a}static _createTaskRelationships(t,n,r){let a,o=n.slice().reverse();for(let s=0;s<t.length;s++){let c=t[s];if(c.event.name==="XHRReadyStateChange"){let l=c.event.args.data,u=l?.url;l&&u&&l.readyState===1&&r.xhrs.set(u,c)}for(;a&&Number.isFinite(a.endTime)&&a.endTime<=c.startTime;)e._assignAllTimersUntilTs(a,a.endTime,r,o),a=a.parent;if(a){if(c.endTime>a.endTime){let l=c.endTime-a.endTime;if(l<1e3){a.endTime=c.endTime,a.duration+=l;let u=a.parent;for(;u&&u.endTime<c.endTime;)u.duration+=c.endTime-u.endTime,u.endTime=c.endTime,u=u.parent}else if(c.unbounded)c.endTime=a.endTime,c.duration=c.endTime-c.startTime;else if(c.startTime-a.startTime<1e3&&!a.children.length){let u=c,m=a,p=a.parent;if(p){let f=p.children.length-1;if(p.children[f]!==m)throw new Error("Fatal trace logic \
|
|
1848
1849
|
error - impossible children");p.children.pop(),p.children.push(u)}u.parent=p,u.startTime=m.startTime,u.duration=u.endTime-u.startTime,a=u,c=m}else{let u=new Error("Fatal trace logic error - child cannot end after parent");throw u.timeDelta=l,u.nextTaskEvent=c.event,u.nextTaskEndEvent=c.endEvent,u.nextTaskEndTime=c.endTime,u.currentTaskEvent=a.event,u.currentTaskEndEvent=a.endEvent,u.currentTaskEndTime=a.endTime,u}}c.parent=a,a.children.push(c),e._assignAllTimersUntilTs(a,c.startTime,r,o)}a=c}a&&e._assignAllTimersUntilTs(a,a.endTime,r,o)}static _createTasksFromEvents(t,n,r){let a=[],o=[],s=[];for(let u of t)(u.ph==="X"||u.ph==="B")&&a.push(u),u.ph==="E"&&o.push(u),u.name==="TimerInstall"&&s.push(u);let l=e._createTasksFromStartAndEndEvents(a,o,r).sort((u,m)=>u.startTime-m.startTime||m.duration-u.duration);return e._createTaskRelationships(l,s,n),l.sort((u,m)=>u.startTime-m.startTime||m.duration-u.duration)}static _computeRecursiveSelfTime(t,n){if(n&&t.endTime>n.endTime)throw new Error("\
|
|
1849
1850
|
Fatal trace logic error - child cannot end after parent");let r=t.children.map(a=>e._computeRecursiveSelfTime(a,t)).reduce((a,o)=>a+o,0);return t.selfTime=t.duration-r,t.duration}static _computeRecursiveAttributableURLs(t,n,r,a){let o=t.event.args,s={...o.beginData||{},...o.data||{}},c=s.frame||"",l=a.frameURLsById.get(c),u=(s.stackTrace||[]).map(h=>h.url),m=u[0];c&&l&&l.startsWith("about:")&&m&&(a.frameURLsById.set(c,m),l=m);let p=[];switch(t.event.name){case"v8.compile":case"EvaluateScript":case"FunctionCall":p=[s.url,l];break;case"v8.compileModule":p=[t.event.args.fileName];break;case"TimerFire":{let h=t.event.args.data.timerId,y=a.timers.get(h);if(!y)break;p=y.attributableURLs;break}case"ParseHTML":p=[s.url,l];break;case"ParseAuthorStyleSheet":p=[s.styleSheetUrl,l];break;case"UpdateLayoutTree":case"Layout":case"Paint":if(l){p=[l];break}if(r.length)break;p=a.lastTaskURLs;break;case"XHRReadyStateChange":case"XHRLoad":{let h=s.url,y=s.readyState;if(!h||typeof y=="number"&&y!==4)break;
|
|
@@ -1851,14 +1852,14 @@ let b=a.xhrs.get(h);if(!b)break;p=b.attributableURLs;break}default:p=[];break}le
|
|
|
1851
1852
|
lastTaskURLs=f.attributableURLs);let p=a??m[0].startTime;for(let f of m)if(f.startTime=(f.startTime-p)/1e3,f.endTime=(f.endTime-p)/1e3,f.duration/=1e3,f.selfTime/=1e3,!Number.isFinite(f.selfTime))throw new Error("Invalid task timing data");return m}static printTaskTreeToDebugString(t,n={}){let r=Math.max(...t.map(b=>b.endTime),0),{printWidth:a=100,startTime:o=0,endTime:s=r,taskLabelFn:c=i(b=>b.event.name,"taskLabelFn")}=n;function l(b){let w=0;for(;b.parent;b=b.parent)w++;return w}i(l,"computeTaskDepth");let m=(s-o)/a,p=new Map,f=new Map;for(let b of t){if(b.startTime>s||b.endTime<o)continue;let w=l(b),C=f.get(w)||[];C.push(b),f.set(w,C);let k=String.fromCharCode(65+p.size%26);p.set(b,{id:k,task:b})}let h=[`Trace Duration: ${r.toFixed(0)}ms`,`Range: [${o}, ${s}]`,`█ = ${m.toFixed(2)}ms`,""],y=Array.from(f.entries()).sort((b,w)=>b[0]-w[0]);for(let[,b]of y){let w=Array.from({length:a}).map(()=>" ");for(let C of b){let k=Math.max(C.startTime,o),R=Math.min(C.endTime,s),{id:S}=p.get(C)||{
|
|
1852
1853
|
id:"?"},_=Math.floor(k/m),q=Math.floor(R/m),F=Math.floor((_+q)/2);for(let G=_;G<=q;G++)w[G]="█";for(let G=0;G<S.length;G++)w[F]=S}h.push(w.join(""))}h.push("");for(let{id:b,task:w}of p.values())h.push(`${b} = ${c(w)}`);return h.join(`
|
|
1853
1854
|
`)}}});var Ek,_r,as=g(()=>{"use strict";d();Ae();N7();Xt();Ek=class{static{i(this,"MainThreadTasks")}static async compute_(t,n){let{mainThreadEvents:r,frames:a,timestamps:o}=await Be.request(t,n);return Ag.getMainThreadTasks(r,a,o.traceEnd,o.timeOrigin)}},_r=Y(Ek,null)});function Tk(e){let t=new Set;for(let n of e)n.resourceType===lt.TYPES.Script&&t.add(n.url);return t}function Ng(e,t){let n=e.attributableURLs.find(o=>t.has(o)),r=e.attributableURLs[0],a=n||r;return(!a||a==="about:blank")&&(afe.has(e.event.name)?a="Browser":ofe.has(e.event.name)?a="Browser GC":a="Unattributable"),a}function M7(e,t){let n=Tk(t),r=new Map;for(let a of e){let o=Ng(a,n),s=r.get(o)||{},c=s[a.group.id]||0;s[a.group.id]=c+a.selfTime,r.set(o,s)}return r}var afe,ofe,xk=g(()=>{"use strict";d();qr();afe=new Set(["CpuProfiler::StartProfiling"]),ofe=new Set(["V8.GCCompactor","MajorGC","MinorGC"]);i(Tk,"getJavaScriptURLs");i(Ng,"getAttributableURLForTask");i(M7,"getExecutionTimingsByURL")});var Sk,Ir,os=g(()=>{"use strict";d();Ae();Xt();Dx();Sk=class{static{i(this,"ProcessedNavigation")}static isProcessedTrace(t){return"timeOriginEvt"in t}static async compute_(t,n){if(this.isProcessedTrace(t))return ld.processNavigation(t);let r=await Be.request(t,n);return ld.processNavigation(r)}},Ir=Y(Sk,null)});var Ck,wc,kk=g(()=>{"use strict";d();po();Xt();os();Mt();Ck=class{static{i(this,"Metric")}constructor(){}static getMetricComputationInput(t){return{trace:t.trace,devtoolsLog:t.devtoolsLog,gatherContext:t.gatherContext,settings:t.settings,URL:t.URL,SourceMaps:t.SourceMaps,HostDPR:t.HostDPR,simulator:null}}static computeSimulatedMetric(t,n){throw new Error("Unimplemented")}static computeObservedMetric(t,n){throw new Error("Unimplemented")}static async compute_(t,n){let{trace:r,devtoolsLog:a,settings:o,gatherContext:s}=t;if(!r||!a||!o)throw new Error("Did not provide necessary metric computation data");let c=await Be.request(r,n),l=s.gatherMode==="timespan"?void 0:await Ir.request(r,n),u=Object.assign({networkRecords:await Re.request(a,n),gatherContext:s,processedTrace:c,processedNavigation:l},t);switch(Ln.assertHasToplevelEvents(u.processedTrace.mainThreadEvents),o.throttlingMethod){case"simulate":if(s.gatherMode!=="navigation")throw new Error(`${s.gatherMode} does not support throttling\
|
|
1854
|
-
Method simulate`);return this.computeSimulatedMetric(u,n);case"provided":case"devtools":return this.computeObservedMetric(u,n);default:throw new TypeError(`Unrecognized throttling method: ${o.throttlingMethod}`)}}},wc=Ck});var jt,Xa=g(()=>{"use strict";d();kk();jt=class extends wc{static{i(this,"NavigationMetric")}static computeSimulatedMetric(t,n){throw new Error("Unimplemented")}static computeObservedMetric(t,n){throw new Error("Unimplemented")}static async compute_(t,n){if(t.gatherContext.gatherMode!=="navigation")throw new Error(`${this.name} can only be computed on navigations`);return super.compute_(t,n)}}});var Rk,Em,_k=g(()=>{"use strict";d();Jt();Ae();qr();Xt();Mt();Ya();Rk=class{static{i(this,"PageDependencyGraph")}static async compute_(t,n){let{trace:r,settings:a,devtoolsLog:o,URL:s,SourceMaps:c,HostDPR:l}=t,[{mainThreadEvents:u},m]=await Promise.all([Be.request(r,n),Re.request(o,n)]);if(t.fromTrace){let h=(await
|
|
1855
|
-
sfe(e,t):ife(e,t)}var is=g(()=>{"use strict";d();Jt();rn();rd();os();_k();Ya();i(ife,"getComputationDataParamsFromDevtoolsLog");i(sfe,"getComputationDataParamsFromTrace");i(fa,"lanternErrorAdapter");i(Dr,"getComputationDataParams")});var Ik,Zn,Go=g(()=>{"use strict";d();Jt();Ae();is();Ik=class extends Ft.FirstContentfulPaint{static{i(this,"LanternFirstContentfulPaint")}static async computeMetricWithGraphs(t,n,r){let a=await Dr(t,n);return Promise.resolve(this.compute(a,r)).catch(fa)}static async compute_(t,n){return this.computeMetricWithGraphs(t,n)}},Zn=Y(Ik,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var Dk,Ec,Mg=g(()=>{"use strict";d();Ae();Xa();Go();Dk=class extends jt{static{i(this,"FirstContentfulPaint")}static computeSimulatedMetric(t,n){let r=jt.getMetricComputationInput(t);return Zn.request(r,n)}static async computeObservedMetric(t){let{processedNavigation:n}=t;return{timing:n.timings.firstContentfulPaint,timestamp:n.timestamps.firstContentfulPaint}}},Ec=Y(Dk,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var Ak,Wo,Tm=g(()=>{"use strict";d();Jt();Ae();is();Go();Ak=class extends Ft.LargestContentfulPaint{static{i(this,"LanternLargestContentfulPaint")}static async computeMetricWithGraphs(t,n,r){let a=await Dr(t,n);return Promise.resolve(this.compute(a,r)).catch(fa)}static async compute_(t,n){let r=await Zn.request(t,n);return this.computeMetricWithGraphs(t,n,{fcpResult:r})}},Wo=Y(Ak,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var Nk,Vo,xm=g(()=>{"use strict";d();Jt();Ae();Tm();is();Nk=class extends Ft.Interactive{static{i(this,"LanternInteractive")}static async computeMetricWithGraphs(t,n,r){let a=await Dr(t,n);return Promise.resolve(this.compute(a,r)).catch(fa)}static async compute_(t,n){let r=await Wo.request(t,n);return this.computeMetricWithGraphs(t,n,{lcpResult:r})}},Vo=Y(Nk,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var cfe,Tc,Mk=g(()=>{"use strict";d();Ta();Ve();
|
|
1855
|
+
Method simulate`);return this.computeSimulatedMetric(u,n);case"provided":case"devtools":return this.computeObservedMetric(u,n);default:throw new TypeError(`Unrecognized throttling method: ${o.throttlingMethod}`)}}},wc=Ck});var jt,Xa=g(()=>{"use strict";d();kk();jt=class extends wc{static{i(this,"NavigationMetric")}static computeSimulatedMetric(t,n){throw new Error("Unimplemented")}static computeObservedMetric(t,n){throw new Error("Unimplemented")}static async compute_(t,n){if(t.gatherContext.gatherMode!=="navigation")throw new Error(`${this.name} can only be computed on navigations`);return super.compute_(t,n)}}});var Rk,Em,_k=g(()=>{"use strict";d();Jt();Ae();qr();Xt();Mt();Ya();Rk=class{static{i(this,"PageDependencyGraph")}static async compute_(t,n){let{trace:r,settings:a,devtoolsLog:o,URL:s,SourceMaps:c,HostDPR:l}=t,[{mainThreadEvents:u},m]=await Promise.all([Be.request(r,n),Re.request(o,n)]);if(t.fromTrace){let h=(await Dn.request({trace:r,settings:a,SourceMaps:c,HostDPR:l},n)).data,y=Ga.createNetworkRequests(r,h);return Ga.createGraph(y,r,h,s)}let p=m.map(lt.asLanternNetworkRequest);return hn.PageDependencyGraph.createGraph(u,p,s)}},Em=Y(Rk,["devtoolsLog","settings","trace","URL","SourceMaps","HostDPR","fromTrace"])});async function ife(e,t){if(e.gatherContext.gatherMode!=="navigation")throw new Error("Lantern metrics can only be computed on navigations");let n=await Em.request({...e,fromTrace:!1},t),r=await Ir.request(e.trace,t);return{simulator:e.simulator||await Fo.request(e,t),graph:n,processedNavigation:r}}async function sfe(e,t){if(e.gatherContext.gatherMode!=="navigation")throw new Error("Lantern metrics can only be computed on navigations");let n=await Em.request({...e,fromTrace:!0},t),r=await Dn.request(e,t),a=r.data.Meta.mainFrameId,o=r.data.Meta.mainFrameNavigations[0].args.data?.navigationId;if(!o)throw new Error("Lantern metrics could not be calculated due to missing navigation id");let s=Ga.createProcessedNavigation(r.data,a,o);return{simulator:e.simulator||await Fo.request(e,t),graph:n,processedNavigation:s}}function fa(e){if(!(e instanceof ct.LanternError))throw e;let t=e.message;throw z.errors[t]?new z(z.errors[t]):e}function Dr(e,t){return process.env.INTERNAL_LANTERN_USE_TRACE!==void 0?
|
|
1856
|
+
sfe(e,t):ife(e,t)}var is=g(()=>{"use strict";d();Jt();rn();rd();os();_k();Ya();i(ife,"getComputationDataParamsFromDevtoolsLog");i(sfe,"getComputationDataParamsFromTrace");i(fa,"lanternErrorAdapter");i(Dr,"getComputationDataParams")});var Ik,Zn,Go=g(()=>{"use strict";d();Jt();Ae();is();Ik=class extends Ft.FirstContentfulPaint{static{i(this,"LanternFirstContentfulPaint")}static async computeMetricWithGraphs(t,n,r){let a=await Dr(t,n);return Promise.resolve(this.compute(a,r)).catch(fa)}static async compute_(t,n){return this.computeMetricWithGraphs(t,n)}},Zn=Y(Ik,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var Dk,Ec,Mg=g(()=>{"use strict";d();Ae();Xa();Go();Dk=class extends jt{static{i(this,"FirstContentfulPaint")}static computeSimulatedMetric(t,n){let r=jt.getMetricComputationInput(t);return Zn.request(r,n)}static async computeObservedMetric(t){let{processedNavigation:n}=t;return{timing:n.timings.firstContentfulPaint,timestamp:n.timestamps.firstContentfulPaint}}},Ec=Y(Dk,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var Ak,Wo,Tm=g(()=>{"use strict";d();Jt();Ae();is();Go();Ak=class extends Ft.LargestContentfulPaint{static{i(this,"LanternLargestContentfulPaint")}static async computeMetricWithGraphs(t,n,r){let a=await Dr(t,n);return Promise.resolve(this.compute(a,r)).catch(fa)}static async compute_(t,n){let r=await Zn.request(t,n);return this.computeMetricWithGraphs(t,n,{fcpResult:r})}},Wo=Y(Ak,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var Nk,Vo,xm=g(()=>{"use strict";d();Jt();Ae();Tm();is();Nk=class extends Ft.Interactive{static{i(this,"LanternInteractive")}static async computeMetricWithGraphs(t,n,r){let a=await Dr(t,n);return Promise.resolve(this.compute(a,r)).catch(fa)}static async compute_(t,n){let r=await Wo.request(t,n);return this.computeMetricWithGraphs(t,n,{lcpResult:r})}},Vo=Y(Nk,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var cfe,Tc,Mk=g(()=>{"use strict";d();Ta();Ve();Sn();IT();qr();un();cfe=Ye,Tc=class extends cfe{static{i(this,"NetworkMonitor")}_networkRecorder=void 0;_frameNavigations=[];constructor(t){super(),this._targetManager=t,this._session=t.rootSession(),this._onFrameNavigated=n=>this._frameNavigations.push(n.frame),this._onProtocolMessage=n=>{this._networkRecorder&&this._networkRecorder.dispatch(n)}}async enable(){if(this._networkRecorder)return;this._frameNavigations=[],this._networkRecorder=new pc;let t=i(n=>r=>{this.emit(n,r),this._emitNetworkStatus()},"reEmit");this._networkRecorder.on("requeststarted",t("requeststarted")),this._networkRecorder.on("requestfinished",t("requestfinished")),this._session.on("Page.frameNavigated",this._onFrameNavigated),this._targetManager.on("protocolevent",this._onProtocolMessage)}async disable(){this._networkRecorder&&(this._session.off("Page.frameNavigated",this._onFrameNavigated),this._targetManager.off("protocolevent",this._onProtocolMessage),this._frameNavigations=
|
|
1856
1857
|
[],this._networkRecorder=void 0)}async getNavigationUrls(){let t=this._frameNavigations;if(!t.length)return{};let n=t.filter(a=>!a.parentId);n.length||M.warn("NetworkMonitor","No detected navigations");let r=n[0]?.url;if(this._networkRecorder){let o=this._networkRecorder.getRawRecords().find(s=>s.url===r);for(;o?.redirectSource;)o=o.redirectSource,r=o.url}return{requestedUrl:r,mainDocumentUrl:n[n.length-1]?.url}}getInflightRequests(){return this._networkRecorder?this._networkRecorder.getRawRecords().filter(t=>!t.finished):[]}isIdle(){return this._isIdlePeriod(0)}isCriticalIdle(){if(!this._networkRecorder)return!1;let r=this._networkRecorder.getRawRecords().find(a=>a.resourceType==="Document")?.frameId;return this._isIdlePeriod(0,a=>a.frameId===r&&a.resourceType!=="WebSocket"&&a.resourceType!=="EventSource"&&(a.priority==="VeryHigh"||a.priority==="High"))}is2Idle(){return this._isIdlePeriod(2)}_isIdlePeriod(t,n){if(!this._networkRecorder)return!1;let r=this._networkRecorder.getRawRecords(),
|
|
1857
1858
|
a=0;for(let o=0;o<r.length;o++){let s=r[o];s.finished||n?.(s)!==!1&&(lt.isNonNetworkRequest(s)||a++)}return a<=t}_emitNetworkStatus(){let t=this.isIdle(),n=this.is2Idle(),r=this.isCriticalIdle();this.emit(t?"networkidle":"networkbusy"),this.emit(n?"network-2-idle":"network-2-busy"),this.emit(r?"network-critical-idle":"network-critical-busy"),n&&t?M.verbose("NetworkRecorder","network fully-quiet"):n&&!t?M.verbose("NetworkRecorder","network semi-quiet"):M.verbose("NetworkRecorder","network busy")}static findNetworkQuietPeriods(t,n,r=1/0){let a=[];t.forEach(l=>{Ce.isNonNetworkProtocol(l.protocol)||l.protocol==="ws"||l.protocol==="wss"||(a.push({time:l.networkRequestTime,isStart:!0}),l.finished&&a.push({time:l.networkEndTime,isStart:!1}))}),a=a.filter(l=>l.time<=r).sort((l,u)=>l.time-u.time);let o=0,s=0,c=[];return a.forEach(l=>{l.isStart?(o===n&&c.push({start:s,end:l.time}),o++):(o--,o===n&&(s=l.time))}),o<=n&&c.push({start:s,end:r}),c.filter(l=>l.start!==l.end)}}});var Og,lfe,Ok,$o,Sm=g(()=>{"use strict";d();Ae();Xa();xm();Mk();po();rn();Og=5e3,lfe=2,Ok=class e extends jt{static{i(this,"Interactive")}static _findNetworkQuietPeriods(t,n){let r=n.timestamps.traceEnd/1e3,a=t.filter(o=>o.finished&&o.requestMethod==="GET"&&!o.failed&&o.statusCode<400);return Tc.findNetworkQuietPeriods(a,lfe,r)}static _findCPUQuietPeriods(t,n){let r=n.timestamps.timeOrigin/1e3,a=n.timestamps.traceEnd/1e3;if(t.length===0)return[{start:0,end:a}];let o=[];return t.forEach((s,c)=>{c===0&&o.push({start:0,end:s.start+r}),c===t.length-1?o.push({start:s.end+r,end:a}):o.push({start:s.end+r,end:t[c+1].start+r})}),o}static findOverlappingQuietPeriods(t,n,r){let a=r.timestamps.firstContentfulPaint/1e3,o=i(f=>f.end>a+Og&&f.end-f.start>=Og,"isLongEnoughQuietPeriod"),s=this._findNetworkQuietPeriods(n,r).filter(o),c=this._findCPUQuietPeriods(t,r).filter(o),l=c.slice(),u=s.slice(),m=l.shift(),p=u.shift();for(;m&&p;)if(m.start>=p.start){if(p.end>=m.start+Og)return{cpuQuietPeriod:m,networkQuietPeriod:p,
|
|
1858
1859
|
cpuQuietPeriods:c,networkQuietPeriods:s};p=u.shift()}else{if(m.end>=p.start+Og)return{cpuQuietPeriod:m,networkQuietPeriod:p,cpuQuietPeriods:c,networkQuietPeriods:s};m=l.shift()}throw new z(m?z.errors.NO_TTI_NETWORK_IDLE_PERIOD:z.errors.NO_TTI_CPU_IDLE_PERIOD)}static computeSimulatedMetric(t,n){let r=jt.getMetricComputationInput(t);return Vo.request(r,n)}static computeObservedMetric(t){let{processedTrace:n,processedNavigation:r,networkRecords:a}=t;if(!r.timestamps.domContentLoaded)throw new z(z.errors.NO_DCL);let o=Ln.getMainThreadTopLevelEvents(n).filter(m=>m.duration>=50),c=e.findOverlappingQuietPeriods(o,a,r).cpuQuietPeriod,l=Math.max(c.start,r.timestamps.firstContentfulPaint/1e3,r.timestamps.domContentLoaded/1e3)*1e3,u=(l-r.timestamps.timeOrigin)/1e3;return Promise.resolve({timing:u,timestamp:l})}},$o=Y(Ok,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var Pk,O7,P7=g(()=>{"use strict";d();Jt();Ae();Go();xm();is();Pk=class extends Ft.TotalBlockingTime{static{i(this,"LanternTotalBlockingTime")}static async computeMetricWithGraphs(t,n,r){return this.compute(await Dr(t,n),r)}static async compute_(t,n){let r=await Zn.request(t,n),a=await Vo.request(t,n);return this.computeMetricWithGraphs(t,n,{fcpResult:r,interactiveResult:a})}},O7=Y(Pk,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var L7,Lk,ha,xc=g(()=>{"use strict";d();Jt();Ae();kk();po();P7();Sm();({calculateSumOfBlockingTime:L7}=Ft.TBTUtils),Lk=class extends wc{static{i(this,"TotalBlockingTime")}static computeSimulatedMetric(t,n){let r=wc.getMetricComputationInput(t);return O7.request(r,n)}static async computeObservedMetric(t,n){let r=Ln.getMainThreadTopLevelEvents(t.processedTrace);if(t.processedNavigation){let{firstContentfulPaint:a}=t.processedNavigation.timings,o=wc.getMetricComputationInput(t),s=(await $o.request(o,n)).timing;return{timing:L7(r,a,s)}}else return{timing:L7(r,0,t.processedTrace.timings.traceEnd)}}},ha=Y(Lk,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var Sc,Fk,F7,U7=g(()=>{"use strict";d();Jt();Ae();as();Mg();Sm();xc();Xt();({calculateTbtImpactForEvent:Sc}=Ft.TBTUtils),Fk=class{static{i(this,"TBTImpactTasks")}static getTopLevelTask(t){let n=t;for(;n.parent;)n=n.parent;return n}static async getTbtBounds(t,n){let r=await Be.request(t.trace,n);if(t.gatherContext.gatherMode!=="navigation")return{startTimeMs:0,endTimeMs:r.timings.traceEnd};let a=await Ec.request(t,n),o=await $o.request(t,n),s=a.timing,c=o.timing;return"optimisticEstimate"in a&&(s=a.optimisticEstimate.timeInMs),"pessimisticEstimate"in o&&(c=o.pessimisticEstimate.timeInMs),{startTimeMs:s,endTimeMs:c}}static createImpactTasks(t,n,r){let a=[];for(let o of t){let s=n.get(o)||0,c=s,u=r.get(o)||0;for(let m of o.children){let p=n.get(m)||0;c-=p;let f=r.get(m)||0;u-=f}a.push({...o,tbtImpact:Math.max(s,0),selfTbtImpact:Math.max(c,0),selfBlockingTime:Math.max(u,0)})}return a}static computeImpactsFromObservedTasks(t,n,r){let a=new Map,o=new Map;for(let s of t){let c={start:s.startTime,
|
|
1859
1860
|
end:s.endTime,duration:s.duration},l=this.getTopLevelTask(s),u={start:l.startTime,end:l.endTime,duration:l.duration},m=Sc(c,n,r,u),p=Sc(c,-1/0,1/0,u);a.set(s,m),o.set(s,p)}return this.createImpactTasks(t,a,o)}static computeImpactsFromLantern(t,n,r,a){let o=new Map,s=new Map,c=new Map,l=new Map;for(let u of t)l.set(u.event,u);for(let[u,m]of n){if(u.type!=="cpu")continue;let p={start:m.startTime,end:m.endTime,duration:m.duration},f=Sc(p,r,a),h=Sc(p,-1/0,1/0),y=l.get(u.event);y&&(c.set(y,p),o.set(y,f),s.set(y,h))}for(let u of t){if(o.has(u)||s.has(u))continue;let m=this.getTopLevelTask(u),p=c.get(m);if(!p)continue;let h=(u.startTime-m.startTime)/m.duration*p.duration+p.start,y=(m.endTime-u.endTime)/m.duration,b=p.end-y*p.duration,w={start:h,end:b,duration:b-h},C=Sc(w,r,a,p),k=Sc(w,-1/0,1/0,p);o.set(u,C),s.set(u,k)}return this.createImpactTasks(t,o,s)}static async compute_(t,n){let r=await ha.request(t,n),a=await _r.request(t.trace,n),{startTimeMs:o,endTimeMs:s}=await this.getTbtBounds(t,n);
|
|
1860
1861
|
return"pessimisticEstimate"in r?this.computeImpactsFromLantern(a,r.pessimisticEstimate.nodeTimings,o,s):this.computeImpactsFromObservedTasks(a,o,s)}},F7=Y(Fk,["trace","devtoolsLog","URL","SourceMaps","gatherContext","settings","simulator","HostDPR"])});var B7={};x(B7,{UIStrings:()=>Za,default:()=>ufe});var Za,Ja,Uk,ufe,j7=g(()=>{"use strict";d();Ve();$();Dg();A();Mt();as();xk();U7();zo();Za={title:"JavaScript execution time",failureTitle:"Reduce JavaScript execution time",description:"Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. [Learn how to reduce Javascript execution time](https://developer.chrome.com/docs/lighthouse/performance/bootup-time/).",columnTotal:"Total CPU Time",columnScriptEval:"Script Evaluation",columnScriptParse:"Script Parse",chromeExtensionsWarning:"Chrome extensions negatively affected this page's load performance. Try auditing the page in incognito mode or from a Chrome profile without extensions."},Ja=T("core/audits/bootup-time.js",Za),Uk=class e extends E{static{i(this,"BootupTime")}static get meta(){return{id:"bootup-time",title:Ja(Za.title),failureTitle:Ja(Za.failureTitle),description:Ja(Za.description),scoreDisplayMode:E.
|
|
1861
|
-
SCORING_MODES.METRIC_SAVINGS,guidanceLevel:1,requiredArtifacts:["Trace","DevtoolsLog","URL","GatherContext","SourceMaps","HostDPR"]}}static get defaultOptions(){return{p10:1282,median:3500,thresholdInMs:50}}static async getTbtImpact(t,n){let r=0;try{let a=E.makeMetricComputationDataInput(t,n),o=await F7.request(a,n);for(let s of o){let c=s.group.id;c!=="scriptEvaluation"&&c!=="scriptParseCompile"||(r+=s.selfTbtImpact)}}catch(a){
|
|
1862
|
+
SCORING_MODES.METRIC_SAVINGS,guidanceLevel:1,requiredArtifacts:["Trace","DevtoolsLog","URL","GatherContext","SourceMaps","HostDPR"]}}static get defaultOptions(){return{p10:1282,median:3500,thresholdInMs:50}}static async getTbtImpact(t,n){let r=0;try{let a=E.makeMetricComputationDataInput(t,n),o=await F7.request(a,n);for(let s of o){let c=s.group.id;c!=="scriptEvaluation"&&c!=="scriptParseCompile"||(r+=s.selfTbtImpact)}}catch(a){bn.captureException(a,{tags:{audit:this.meta.id},level:"error"}),M.error(this.meta.id,a.message)}return r}static async audit(t,n){let r=n.settings||{},a=t.Trace,o=t.DevtoolsLog,s=await Re.request(o,n),c=await _r.request(a,n),l=r.throttlingMethod==="simulate"?r.throttling.cpuSlowdownMultiplier:1,u=M7(c,s);u.delete("_lighthouse-eval.js");let m=await this.getTbtImpact(t,n),p=!1,f=0,h=Array.from(u).map(([k,R])=>{let S=0;for(let[F,G]of Object.entries(R))R[F]=G*l,S+=G*l;let _=R[Ka.scriptEvaluation.id]||0,q=R[Ka.scriptParseCompile.id]||0;return S>=n.options.thresholdInMs&&
|
|
1862
1863
|
(f+=_+q),p=p||k.startsWith("chrome-extension:")&&_>100,{url:k,total:S,scripting:_,scriptParseCompile:q}}).filter(k=>k.total>=n.options.thresholdInMs).sort((k,R)=>R.total-k.total),y;p&&(y=[Ja(Za.chromeExtensionsWarning)]);let b=[{key:"url",valueType:"url",label:Ja(D.columnURL)},{key:"total",granularity:1,valueType:"ms",label:Ja(Za.columnTotal)},{key:"scripting",granularity:1,valueType:"ms",label:Ja(Za.columnScriptEval)},{key:"scriptParseCompile",granularity:1,valueType:"ms",label:Ja(Za.columnScriptParse)}],w=e.makeTableDetails(b,h,{wastedMs:f,sortedBy:["total"]});return{score:E.computeLogNormalScore({p10:n.options.p10,median:n.options.median},f),notApplicable:!h.length,numericValue:f,numericUnit:"millisecond",displayValue:f>0?Ja(D.seconds,{timeInMs:f}):"",details:w,runWarnings:y,metricSavings:{TBT:m}}}},ufe=Uk});var H7={};x(H7,{UIStrings:()=>kc,default:()=>dfe});var kc,Cc,Bk,dfe,q7=g(()=>{"use strict";d();$();A();qr();Mt();kc={title:"Avoids enormous network payloads",failureTitle:"Avoid enormous network payloads",description:"Large network payloads cost users real money and are highly correlated with long load times. [Learn how to reduce payload sizes](https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight/).",displayValue:"Total size was {totalBytes, number, bytes} KiB"},Cc=T("core/audits/byte-efficiency/total-byte-weight.js",kc),Bk=class extends E{static{i(this,"TotalByteWeight")}static get meta(){return{id:"total-byte-weight",title:Cc(kc.title),failureTitle:Cc(kc.failureTitle),description:Cc(kc.description),scoreDisplayMode:E.SCORING_MODES.METRIC_SAVINGS,guidanceLevel:1,requiredArtifacts:["DevtoolsLog"]}}static get defaultOptions(){return{p10:2667*1024,median:4e3*1024}}static async audit(t,n){let r=t.DevtoolsLog,a=await Re.request(r,n),o=0,s=[];a.forEach(m=>{if(lt.isNonNetworkRequest(
|
|
1863
1864
|
m)||!m.transferSize)return;let p={url:m.url,totalBytes:m.transferSize};o+=p.totalBytes,s.push(p)}),s=s.sort((m,p)=>p.totalBytes-m.totalBytes||m.url.localeCompare(p.url)).slice(0,10);let c=E.computeLogNormalScore({p10:n.options.p10,median:n.options.median},o),l=[{key:"url",valueType:"url",label:Cc(D.columnURL)},{key:"totalBytes",valueType:"bytes",label:Cc(D.columnTransferSize)}],u=E.makeTableDetails(l,s,{sortedBy:["totalBytes"]});return{score:c,numericValue:o,numericUnit:"byte",displayValue:Cc(kc.displayValue,{totalBytes:o}),details:u}}},dfe=Bk});var jk,Pg,Hk=g(()=>{"use strict";d();Ae();Mt();os();rn();jk=class{static{i(this,"LCPImageRecord")}static async compute_(t,n){let{trace:r,devtoolsLog:a}=t,o=await Re.request(a,n),s=await Ir.request(r,n);if(s.timings.largestContentfulPaint===void 0)throw new z(z.errors.NO_LCP);let c=s.largestContentfulPaintEvt;if(!c)return;let l=r.traceEvents.filter(p=>p.name==="LargestImagePaint::Candidate"&&p.args.frame===c.args.frame&&p.args.data?.DOMNodeId===c.args.data?.nodeId&&p.args.data?.size===c.args.data?.size).sort((p,f)=>f.ts-p.ts)[0],u=l?.args.data?.imageUrl;return u?o.filter(p=>p.url===u&&p.finished&&p.frameId===l.args.frame&&p.networkRequestTime<(s.timestamps.largestContentfulPaint||0)).map(p=>{for(;p.redirectDestination;)p=p.redirectDestination;return p}).filter(p=>p.resourceType==="Image").sort((p,f)=>p.networkEndTime-f.networkEndTime)[0]:void 0}},Pg=Y(jk,["devtoolsLog","trace"])});var mfe,pfe,ffe,Qn,Cm=g(()=>{"use strict";d();$();A();Mt();rd();Tm();Go();Hk();mfe=T("core/audits/byte-efficiency/byte-efficiency-audit.js",{}),pfe=150,ffe=935,Qn=class extends E{static{i(this,"ByteEfficiencyAudit")}static scoreForWastedMs(t){return E.computeLogNormalScore({p10:pfe,median:ffe},t)}static async audit(t,n){let r=t.GatherContext,a=t.DevtoolsLog,o=n?.settings||{},s={devtoolsLog:a,settings:o},c=await Re.request(a,n);if(!c.some(f=>f.transferSize)&&r.gatherMode==="timespan")return{score:1,notApplicable:!0};let u=E.makeMetricComputationDataInput(t,n),[m,p]=await Promise.all([this.audit_(t,c,n),Fo.request(s,n)]);return this.createAuditProduct(m,p,u,n)}static computeWasteWithGraph(t,n,r,a){a=Object.assign({label:""},a);let o=`${this.meta.id}-${a.label}-before`,s=`${this.meta.id}-${a.label}-after`,c=r.simulate(n,{label:o}),l=a.providedWastedBytesByUrl||new Map;if(!a.providedWastedBytesByUrl)for(let{url:f,wastedBytes:h}of t)l.set(f,(l.get(f)||0)+h);let u=new Map;n.traverse(f=>{if(f.
|
|
1864
1865
|
type!=="network")return;let h=l.get(f.request.url);if(!h)return;let y=f.request.transferSize;u.set(f.request.requestId,y),f.request.transferSize=Math.max(y-h,0)});let m=r.simulate(n,{label:s});n.traverse(f=>{if(f.type!=="network")return;let h=u.get(f.request.requestId);h!==void 0&&(f.request.transferSize=h)});let p=c.timeInMs-m.timeInMs;return{savings:Math.round(Math.max(p,0)/10)*10,simulationBeforeChanges:c,simulationAfterChanges:m}}static async createAuditProduct(t,n,r,a){let o=t.items.sort((f,h)=>h.wastedBytes-f.wastedBytes),s=o.reduce((f,h)=>f+h.wastedBytes,0),c={FCP:0,LCP:0},l;if(r.gatherContext.gatherMode==="navigation"){let f=(await Zn.request(r,a)).optimisticGraph,h=(await Wo.request(r,a)).optimisticGraph,{savings:y}=this.computeWasteWithGraph(o,f,n,{providedWastedBytesByUrl:t.wastedBytesByUrl,label:"fcp"}),{savings:b}=this.computeWasteWithGraph(o,h,n,{providedWastedBytesByUrl:t.wastedBytesByUrl,label:"lcp"}),w=0,C=await Pg.request(r,a);if(C){let k=o.find(R=>R.url===C.url);k&&(w=
|
|
@@ -1872,7 +1873,7 @@ wastedPercent:100*c}}static audit_(t,n){let r=[];for(let o of t.Stylesheets){let
|
|
|
1872
1873
|
let c=km(n,s),l=Lg(s)?`inline: ${ot.truncate(s.content,40)}`:s.url;try{let u=e.computeWaste(s.content,l,c);if(u.wastedPercent<Efe||u.wastedBytes<Tfe||!Number.isFinite(u.wastedBytes))continue;r.push(u)}catch(u){a.push(`Unable to process script ${s.url}: ${u.message}`)}}let o=[{key:"url",valueType:"url",label:Im(D.columnURL)},{key:"totalBytes",valueType:"bytes",label:Im(D.columnTransferSize)},{key:"wastedBytes",valueType:"bytes",label:Im(D.columnWastedBytes)}];return{items:r,warnings:a,headings:o}}},xfe=Vk});var Z7={};x(Z7,{UIStrings:()=>jg,default:()=>Cfe});var jg,Dm,Sfe,$k,Cfe,Q7=g(()=>{"use strict";d();Cm();zk();A();jg={title:"Reduce unused CSS",description:"Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/)."},Dm=T("core/audits/byte-efficiency/unused-css-rules.js",jg),Sfe=10*1024,$k=class extends Qn{static{i(this,"UnusedCSSRules")}static get meta(){return{id:"unused-css-rules",title:Dm(jg.title),description:Dm(jg.description),scoreDisplayMode:Qn.SCORING_MODES.METRIC_SAVINGS,guidanceLevel:1,requiredArtifacts:["Stylesheets","CSSUsage","URL","DevtoolsLog","Trace","GatherContext","SourceMaps","HostDPR"]}}static async audit_(t,n,r){let o=(await Fg.request({Stylesheets:t.Stylesheets,CSSUsage:t.CSSUsage,devtoolsLog:t.DevtoolsLog},r)).filter(c=>c&&c.wastedBytes>Sfe),s=[{key:"url",valueType:"url",label:Dm(
|
|
1873
1874
|
D.columnURL)},{key:"totalBytes",valueType:"bytes",label:Dm(D.columnTransferSize)},{key:"wastedBytes",valueType:"bytes",label:Dm(D.columnWastedBytes)}];return{items:o,headings:s}}},Cfe=$k});var Yk,Hg,Kk=g(()=>{"use strict";d();Ae();Yk=class e{static{i(this,"UnusedJavascriptSummary")}static computeWaste(t){let n=0;for(let o of t.functions)n=Math.max(n,...o.ranges.map(s=>s.endOffset));let r=new Uint8Array(n);for(let o of t.functions)for(let s of o.ranges)if(s.count===0)for(let c=s.startOffset;c<s.endOffset;c++)r[c]=1;let a=0;for(let o of r)a+=o;return{unusedByIndex:r,unusedLength:a,contentLength:n}}static createItem(t,n){let r=n.unusedLength/n.contentLength||0,a=Math.round(n.contentLength*r);return{scriptId:t,totalBytes:n.contentLength,wastedBytes:a,wastedPercent:100*r}}static createSourceWastedBytes(t,n){if(!n.script.content)return;let r={},a=n.script.content.split(`
|
|
1874
1875
|
`).map(u=>u.length),o=0,s=a.map(u=>{let m=o;return o+=u+1,m});n.map.computeLastGeneratedColumns();for(let u of n.map.mappings()){let m=s[u.lineNumber];m+=u.columnNumber;let p=u.lastColumnNumber!==void 0?u.lastColumnNumber-1:a[u.lineNumber];for(let f=u.columnNumber;f<=p;f++){if(t.unusedByIndex[m]===1){let h=u.sourceURL||"(unmapped)";r[h]=(r[h]||0)+1}m+=1}}let c=Object.entries(r).sort(([u,m],[p,f])=>f-m),l={};for(let[u,m]of c)l[u]=m;return l}static async compute_(t){let{scriptId:n,scriptCoverage:r,bundle:a}=t,o=e.computeWaste(r),s=e.createItem(n,o);return a?{...s,sourcesWastedBytes:e.createSourceWastedBytes(o,a)}:s}},Hg=Y(Yk,["bundle","scriptCoverage","scriptId"])});function kfe(e,t,n){let r=n.split(`
|
|
1875
|
-
`),a={},o=t,s=o;e.computeLastGeneratedColumns();for(let c of e.mappings()){let l=c.sourceURL,u=c.lineNumber,m=c.columnNumber,p=c.lastColumnNumber;if(!l)continue;let f=r[u];if(f==null){let y=`${e.url()} mapping for line out of bounds: ${u+1}`;return M.error("JSBundles",y),{errorMessage:y}}if(m>f.length){let y=`${e.url()} mapping for column out of bounds: ${u+1}:${m}`;return M.error("JSBundles",y),{errorMessage:y}}let h=0;if(p!==void 0){if(p>f.length){let y=`${e.url()} mapping for last column out of bounds: ${u+1}:${p}`;return M.error("JSBundles",y),{errorMessage:y}}h=p-m}else h=f.length-m+1;a[l]=(a[l]||0)+h,s-=h}return{files:a,unmappedBytes:s,totalBytes:o}}var eB,Xk,er,Yo=g(()=>{"use strict";d();Ve();Ae();eB=
|
|
1876
|
+
`),a={},o=t,s=o;e.computeLastGeneratedColumns();for(let c of e.mappings()){let l=c.sourceURL,u=c.lineNumber,m=c.columnNumber,p=c.lastColumnNumber;if(!l)continue;let f=r[u];if(f==null){let y=`${e.url()} mapping for line out of bounds: ${u+1}`;return M.error("JSBundles",y),{errorMessage:y}}if(m>f.length){let y=`${e.url()} mapping for column out of bounds: ${u+1}:${m}`;return M.error("JSBundles",y),{errorMessage:y}}let h=0;if(p!==void 0){if(p>f.length){let y=`${e.url()} mapping for last column out of bounds: ${u+1}:${p}`;return M.error("JSBundles",y),{errorMessage:y}}h=p-m}else h=f.length-m+1;a[l]=(a[l]||0)+h,s-=h}return{files:a,unmappedBytes:s,totalBytes:o}}var eB,Xk,er,Yo=g(()=>{"use strict";d();Ve();Ae();eB=En(kg(),1);i(kfe,"computeGeneratedFileSizes");Xk=class{static{i(this,"JSBundles")}static async compute_(t){let{SourceMaps:n,Scripts:r}=t,a=[];for(let o of n){if(!o.map)continue;let{scriptId:s,map:c}=o;if(!c.mappings)continue;let l=r.find(y=>y.scriptId===s);if(!l)continue;let u=o.scriptUrl||
|
|
1876
1877
|
"compiled.js",m=o.sourceMapUrl||"compiled.js.map",p=new eB.default.SourceMap(u,m,c),f=kfe(p,l.length||0,l.content||""),h={rawMap:c,script:l,map:p,sizes:f};a.push(h)}return a}},er=Y(Xk,["Scripts","SourceMaps"])});var tB={};x(tB,{UIStrings:()=>qg,default:()=>Afe});function Ife(e){if(!e.length)return"";let t=e.reduce((r,a)=>r>a?r:a),n=e.reduce((r,a)=>r>a?a:r);for(;!t.startsWith(n);)n=n.slice(0,-1);return n}function Dfe(e,t){return t&&e.startsWith(t)?"…"+e.slice(t.length):e}var qg,Am,Rfe,_fe,Jk,Afe,nB=g(()=>{"use strict";d();Cm();Kk();Yo();A();Rc();qg={title:"Reduce unused JavaScript",description:"Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/)."},Am=T("core/audits/byte-efficiency/unused-javascript.js",qg),Rfe=20*1024,_fe=512;i(Ife,"commonPrefix");i(Dfe,"trimCommonPrefix");Jk=class extends Qn{static{i(this,"UnusedJavaScript")}static get meta(){return{id:"unused-javascript",title:Am(qg.title),description:Am(qg.description),scoreDisplayMode:Qn.SCORING_MODES.METRIC_SAVINGS,guidanceLevel:1,requiredArtifacts:["J\
|
|
1877
1878
|
sUsage","Scripts","SourceMaps","GatherContext","DevtoolsLog","Trace","URL","HostDPR"]}}static async audit_(t,n,r){let a=await er.request(t,r),{unusedThreshold:o=Rfe,bundleSourceUnusedThreshold:s=_fe}=r.options||{},c=new Map,l=[];for(let[u,m]of Object.entries(t.JsUsage)){let p=t.Scripts.find(C=>C.scriptId===u);if(!p)continue;let f=a.find(C=>C.script.scriptId===u)??null,h=await Hg.request({scriptId:u,scriptCoverage:m,bundle:f},r);if(h.wastedBytes===0||h.totalBytes===0)continue;let y=G7(c,p.url,t,n),b={url:p.url,totalBytes:Math.round(y*h.totalBytes),wastedBytes:Math.round(y*h.wastedBytes),wastedPercent:h.wastedPercent};if(b.wastedBytes<=o||(l.push(b),!f||"errorMessage"in f.sizes))continue;let w=f.sizes;if(h.sourcesWastedBytes){let C=Object.entries(h.sourcesWastedBytes).sort((R,S)=>S[1]-R[1]).slice(0,5).map(([R,S])=>{let _=R==="(unmapped)"?w.unmappedBytes:w.files[R];return{source:R,unused:Math.round(S*y),total:Math.round(_*y)}}).filter(R=>R.unused>=s),k=Ife(f.map.sourceURLs());b.subItems={
|
|
1878
1879
|
type:"subitems",items:C.map(({source:R,unused:S,total:_})=>({source:Dfe(R,k),sourceBytes:_,sourceWastedBytes:S}))}}}return{items:l,headings:[{key:"url",valueType:"url",subItemsHeading:{key:"source",valueType:"code"},label:Am(D.columnURL)},{key:"totalBytes",valueType:"bytes",subItemsHeading:{key:"sourceBytes"},label:Am(D.columnTransferSize)},{key:"wastedBytes",valueType:"bytes",subItemsHeading:{key:"sourceWastedBytes"},label:Am(D.columnWastedBytes)}]}}},Afe=Jk});var rB={};x(rB,{UIStrings:()=>Dc,default:()=>Nfe});var Dc,Ic,Zk,Nfe,aB=g(()=>{"use strict";d();$();jn();A();Dc={title:"Mitigate clickjacking with XFO or CSP",description:"The `X-Frame-Options` (XFO) header or the `frame-ancestors` directive in the `Content-Security-Policy` (CSP) header control where a page can be embedded. These can mitigate clickjacking attacks by blocking some or all sites from embedding the page. [Learn more about mitigating clickjacking](https://developer.chrome.com/docs/lighthouse/best-practices/clickjacking-mitigation).",noClickjackingMitigation:"No frame control policy found",columnSeverity:"Severity"},Ic=T("core/audits/clickjacking-mitigation.js",Dc),Zk=class extends E{static{i(this,"ClickjackingMitigation")}static get meta(){return{id:"clickjacking-mitigation",scoreDisplayMode:E.SCORING_MODES.INFORMATIVE,title:Ic(Dc.title),description:Ic(Dc.description),requiredArtifacts:["DevtoolsLog","URL"],supportedModes:["navigation"]}}static async getRawCspsAndXfo(t,n){let r=t.
|
|
@@ -1909,11 +1910,11 @@ Finding(zn.Type.STRICT_DYNAMIC,"Host allowlists can frequently be bypassed. Cons
|
|
|
1909
1910
|
mpatible with older browsers.",zn.Severity.STRICT_CSP,t)]}i(hhe,"checkUnsafeInlineFallback");dn.checkUnsafeInlineFallback=hhe;function ghe(e){let t=e.getEffectiveDirective(ss.Directive.SCRIPT_SRC),n=e.directives[t]||[];return n.includes($g.Keyword.STRICT_DYNAMIC)?n.some(r=>["http:","https:","*"].includes(r)||r.includes("."))?[]:[new zn.Finding(zn.Type.ALLOWLIST_FALLBACK,"Consider adding https: and http: url schemes (ignored by browsers supporting 'strict-dynamic') to be backward compatible with older browsers.",zn.Severity.STRICT_CSP,t)]:[]}i(ghe,"checkAllowlistFallback");dn.checkAllowlistFallback=ghe;function yhe(e){let t=e.getEffectiveDirective(ss.Directive.REQUIRE_TRUSTED_TYPES_FOR);return(e.directives[t]||[]).includes(ss.TrustedTypesSink.SCRIPT)?[]:[new zn.Finding(zn.Type.REQUIRE_TRUSTED_TYPES_FOR_SCRIPTS,`Consider requiring Trusted Types for scripts to lock down DOM XSS injection sinks. You can do this by adding "require-trusted-types-for 'script'" to your policy.`,zn.Severity.INFO,
|
|
1910
1911
|
ss.Directive.REQUIRE_TRUSTED_TYPES_FOR)]}i(yhe,"checkRequiresTrustedTypesForScripts");dn.checkRequiresTrustedTypesForScripts=yhe});var CB=ve(Jo=>{"use strict";d();Object.defineProperty(Jo,"__esModule",{value:!0});Jo.evaluateForSyntaxErrors=Jo.evaluateForWarnings=Jo.evaluateForFailure=void 0;var a2=sB(),Xo=wB(),o2=EB(),TB=Gr();function SB(e,t){return e.some(n=>n.equals(t))}i(SB,"arrayContains");function vhe(e){let t=[];if(e.length===0)return t;let n=e[0];for(let r of n)e.every(a=>SB(a,r))&&t.push(r);return t}i(vhe,"setIntersection");function bhe(e){let t=[];for(let n of e)for(let r of n)SB(t,r)||t.push(r);return t}i(bhe,"setUnion");function Oc(e,t){let n=[];for(let r of e)n.push(t(r));return vhe(n)}i(Oc,"atLeastOnePasses");function xB(e,t){let n=[];for(let r of e)n.push(t(r));return bhe(n)}i(xB,"atLeastOneFails");function whe(e){let t=[...Oc(e,Xo.checkMissingScriptSrcDirective),...Oc(e,Xo.checkMissingObjectSrcDirective),...Xo.checkMultipleMissingBaseUriDirective(e)],n=e.map(o=>o.getEffectiveCsp(TB.Version.CSP3)),r=n.filter(o=>{let s=o.getEffectiveDirective(TB.Directive.SCRIPT_SRC);return o.directives[s]}),a=[...Oc(
|
|
1911
1912
|
r,o2.checkStrictDynamic),...Oc(r,Xo.checkScriptUnsafeInline),...Oc(n,Xo.checkWildcards),...Oc(n,Xo.checkPlainUrlSchemes)];return[...t,...a]}i(whe,"evaluateForFailure");Jo.evaluateForFailure=whe;function Ehe(e){return[...xB(e,o2.checkUnsafeInlineFallback),...xB(e,o2.checkAllowlistFallback)]}i(Ehe,"evaluateForWarnings");Jo.evaluateForWarnings=Ehe;function The(e){let t=[];for(let n of e){let r=[...Xo.checkNonceLength(n),...a2.checkUnknownDirective(n),...Xo.checkDeprecatedDirective(n),...a2.checkMissingSemicolon(n),...a2.checkInvalidKeyword(n)];t.push(r)}return t}i(The,"evaluateForSyntaxErrors");Jo.evaluateForSyntaxErrors=The});var RB=ve(Ar=>{"use strict";d();var xhe=Ar&&Ar.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:i(function(){return t[n]},"get")})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),She=Ar&&Ar.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Che=Ar&&Ar.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&xhe(t,e,n);return She(t,e),t};Object.defineProperty(Ar,"__esModule",{value:!0});Ar.TEST_ONLY=Ar.CspParser=void 0;var Mm=Che(Gr()),i2=class{static{i(this,"CspParser")}constructor(t){this.csp=new Mm.Csp,this.parse(t)}parse(t){this.csp=new Mm.Csp;let n=t.split(";");for(let r=0;r<n.length;r++){let o=n[r].trim().match(/\S+/g);if(Array.isArray(o)){let s=o[0].toLowerCase();if(s in this.csp.directives)continue;Mm.isDirective(s);let c=[];for(let l,u=1;l=
|
|
1912
|
-
o[u];u++)l=kB(l),c.includes(l)||c.push(l);this.csp.directives[s]=c}}return this.csp}};Ar.CspParser=i2;function kB(e){e=e.trim();let t=e.toLowerCase();return Mm.isKeyword(t)||Mm.isUrlScheme(e)?t:e}i(kB,"normalizeDirectiveValue");Ar.TEST_ONLY={normalizeDirectiveValue:kB}});function IB(e){let t=khe[e.type];return t?Fs(t)?t:typeof t=="string"?
|
|
1913
|
+
o[u];u++)l=kB(l),c.includes(l)||c.push(l);this.csp.directives[s]=c}}return this.csp}};Ar.CspParser=i2;function kB(e){e=e.trim();let t=e.toLowerCase();return Mm.isKeyword(t)||Mm.isUrlScheme(e)?t:e}i(kB,"normalizeDirectiveValue");Ar.TEST_ONLY={normalizeDirectiveValue:kB}});function IB(e){let t=khe[e.type];return t?Fs(t)?t:typeof t=="string"?Mn(t,{keyword:e.value||""}):(t=t[e.directive],t||(M.warn("CSP Evaluator",`No translation found for description: ${e.description}`),e.description)):(M.warn("CSP Evaluator",`No translation found for description: ${e.description}`),e.description)}function s2(e){return new _B.CspParser(e).csp}function c2(e){let t=e.map(s2),n=(0,Pc.evaluateForFailure)(t),r=(0,Pc.evaluateForWarnings)(t),a=(0,Pc.evaluateForSyntaxErrors)(t);return{bypasses:n,warnings:r,syntax:a}}var Pc,Nn,_B,cs,Zt,Mn,khe,l2=g(()=>{"use strict";d();Pc=En(CB(),1),Nn=En(Ac(),1),_B=En(RB(),1),cs=En(Gr(),1);Ve();A();Ia();Zt={missingBaseUri:"Missing `base-uri` allows injected `<base>` tags to set the base URL for all relative URLs (e.g. scripts) to an attacker controlled domain. Consider setting `base-uri` to `'none'` or `'self'`.",missingScriptSrc:"`script-src` directive is missing. This can allow the execution of unsafe scripts.",missingObjectSrc:"Missing `object\
|
|
1913
1914
|
-src` allows the injection of plugins that execute unsafe scripts. Consider setting `object-src` to `'none'` if you can.",strictDynamic:"Host allowlists can frequently be bypassed. Consider using CSP nonces or hashes instead, along with `'strict-dynamic'` if necessary.",unsafeInline:"`'unsafe-inline'` allows the execution of unsafe in-page scripts and event handlers. Consider using CSP nonces or hashes to allow scripts individually.",unsafeInlineFallback:"Consider adding `'unsafe-inline'` (ignored by browsers supporting nonces/hashes) to be backward compatible with older browsers.",allowlistFallback:"Consider adding https: and http: URL schemes (ignored by browsers supporting `'strict-dynamic'`) to be backward compatible with older browsers.",reportToOnly:"The reporting destination is only configured via the report-to directive. This directive is only supported in Chromium-based browsers so it is recommended to also use a `report-uri` directive.",reportingDestinationMissing:"No CSP con\
|
|
1914
1915
|
figures a reporting destination. This makes it difficult to maintain the CSP over time and monitor for any breakages.",nonceLength:"Nonces should be at least 8 characters long.",nonceCharset:"Nonces should use the base64 charset.",missingSemicolon:"Did you forget the semicolon? {keyword} seems to be a directive, not a keyword.",unknownDirective:"Unknown CSP directive.",unknownKeyword:"{keyword} seems to be an invalid keyword.",deprecatedReflectedXSS:"`reflected-xss` is deprecated since CSP2. Please, use the X-XSS-Protection header instead.",deprecatedReferrer:"`referrer` is deprecated since CSP2. Please, use the Referrer-Policy header instead.",deprecatedDisownOpener:"`disown-opener` is deprecated since CSP3. Please, use the Cross-Origin-Opener-Policy header instead.",plainWildcards:"Avoid using plain wildcards ({keyword}) in this directive. Plain wildcards allow scripts to be sourced from an unsafe domain.",plainUrlScheme:"Avoid using plain URL schemes ({keyword}) in this directive. P\
|
|
1915
|
-
lain URL schemes allow scripts to be sourced from an unsafe domain."},
|
|
1916
|
-
allowlistFallback),[
|
|
1916
|
+
lain URL schemes allow scripts to be sourced from an unsafe domain."},Mn=T("core/lib/csp-evaluator.js",Zt),khe={[Nn.Type.MISSING_SEMICOLON]:Zt.missingSemicolon,[Nn.Type.UNKNOWN_DIRECTIVE]:Mn(Zt.unknownDirective),[Nn.Type.INVALID_KEYWORD]:Zt.unknownKeyword,[Nn.Type.MISSING_DIRECTIVES]:{[cs.Directive.BASE_URI]:Mn(Zt.missingBaseUri),[cs.Directive.SCRIPT_SRC]:Mn(Zt.missingScriptSrc),[cs.Directive.OBJECT_SRC]:Mn(Zt.missingObjectSrc)},[Nn.Type.SCRIPT_UNSAFE_INLINE]:Mn(Zt.unsafeInline),[Nn.Type.PLAIN_WILDCARD]:Zt.plainWildcards,[Nn.Type.PLAIN_URL_SCHEMES]:Zt.plainUrlScheme,[Nn.Type.NONCE_LENGTH]:Mn(Zt.nonceLength),[Nn.Type.NONCE_CHARSET]:Mn(Zt.nonceCharset),[Nn.Type.DEPRECATED_DIRECTIVE]:{[cs.Directive.REFLECTED_XSS]:Mn(Zt.deprecatedReflectedXSS),[cs.Directive.REFERRER]:Mn(Zt.deprecatedReferrer),[cs.Directive.DISOWN_OPENER]:Mn(Zt.deprecatedDisownOpener)},[Nn.Type.STRICT_DYNAMIC]:Mn(Zt.strictDynamic),[Nn.Type.UNSAFE_INLINE_FALLBACK]:Mn(Zt.unsafeInlineFallback),[Nn.Type.ALLOWLIST_FALLBACK]:Mn(Zt.
|
|
1917
|
+
allowlistFallback),[Nn.Type.REPORTING_DESTINATION_MISSING]:Mn(Zt.reportingDestinationMissing),[Nn.Type.REPORT_TO_ONLY]:Mn(Zt.reportToOnly)};i(IB,"getTranslatedDescription");i(s2,"parseCsp");i(c2,"evaluateRawCspsForXss")});var DB={};x(DB,{UIStrings:()=>eo,default:()=>Rhe});var eo,Nr,u2,Rhe,AB=g(()=>{"use strict";d();$();jn();A();l2();eo={title:"Ensure CSP is effective against XSS attacks",description:"A strong Content Security Policy (CSP) significantly reduces the risk of cross-site scripting (XSS) attacks. [Learn how to use a CSP to prevent XSS](https://developer.chrome.com/docs/lighthouse/best-practices/csp-xss/)",noCsp:"No CSP found in enforcement mode",metaTagMessage:"The page contains a CSP defined in a `<meta>` tag. Consider moving the CSP to an HTTP header or defining another strict CSP in an HTTP header.",columnDirective:"Directive",columnSeverity:"Severity",itemSeveritySyntax:"Syntax"},Nr=T("core/audits/csp-xss.js",eo),u2=class extends E{static{i(this,"CspXss")}static get meta(){return{id:"csp-xss",scoreDisplayMode:E.SCORING_MODES.INFORMATIVE,title:Nr(eo.title),description:Nr(eo.description),requiredArtifacts:["DevtoolsLog","MetaElements","URL"]}}static async getRawCsps(t,n){let r=t.DevtoolsLog,
|
|
1917
1918
|
a=await Et.request({devtoolsLog:r,URL:t.URL},n),o=t.MetaElements.filter(c=>c.httpEquiv&&c.httpEquiv.toLowerCase()==="content-security-policy").flatMap(c=>(c.content||"").split(",")).filter(c=>c.replace(/\s/g,""));return{cspHeaders:a.responseHeaders.filter(c=>c.name.toLowerCase()==="content-security-policy").flatMap(c=>c.value.split(",")).filter(c=>c.replace(/\s/g,"")),cspMetaTags:o}}static findingToTableItem(t,n){return{directive:t.directive,description:IB(t),severity:n}}static constructSyntaxResults(t,n){let r=[];for(let a=0;a<t.length;++a){let o=t[a].map(s=>this.findingToTableItem(s));o.length&&r.push({severity:Nr(eo.itemSeveritySyntax),description:{type:"code",value:n[a]},subItems:{type:"subitems",items:o}})}return r}static constructResults(t,n){let r=[...t,...n];if(!r.length)return{score:0,results:[{severity:Nr(D.itemSeverityHigh),description:Nr(eo.noCsp),directive:void 0}]};let{bypasses:a,warnings:o,syntax:s}=c2(r),c=[...this.constructSyntaxResults(s,r),...a.map(m=>this.findingToTableItem(
|
|
1918
1919
|
m,Nr(D.itemSeverityHigh))),...o.map(m=>this.findingToTableItem(m,Nr(D.itemSeverityMedium)))],u=c2(t).bypasses.length>0||t.length===0;return n.length>0&&u&&c.push({severity:Nr(D.itemSeverityMedium),description:Nr(eo.metaTagMessage),directive:void 0}),{score:a.length?0:1,results:c}}static async audit(t,n){let{cspHeaders:r,cspMetaTags:a}=await this.getRawCsps(t,n),{score:o,results:s}=this.constructResults(r,a),c=[{key:"description",valueType:"text",subItemsHeading:{key:"description"},label:Nr(D.columnDescription)},{key:"directive",valueType:"code",subItemsHeading:{key:"directive"},label:Nr(eo.columnDirective)},{key:"severity",valueType:"text",subItemsHeading:{key:"severity"},label:Nr(eo.columnSeverity)}],l=E.makeTableDetails(c,s);return{score:o,notApplicable:!s.length,details:l}}},Rhe=u2});var d2,NB,MB=g(()=>{"use strict";d();d2={AuthorizationCoveredByWildcard:"Authorization will not be covered by the wildcard symbol (*) in CORS `Access-Control-Allow-Headers` handling.",CanRequestURLHTTPContainingNewline:"Resource requests whose URLs contained both removed whitespace `(n|r|t)` characters and less-than characters (`<`) are blocked. Please remove newlines and encode less-than characters from places like element attribute values in order to load these resources.",ChromeLoadTimesConnectionInfo:"`chrome.loadTimes()` is deprecated, instead use standardized API: Navigation Timing 2.",ChromeLoadTimesFirstPaintAfterLoadTime:"`chrome.loadTimes()` is deprecated, instead use standardized API: Paint Timing.",ChromeLoadTimesWasAlternateProtocolAvailable:"`chrome.loadTimes()` is deprecated, instead use standardized API: `nextHopProtocol` in Navigation Timing 2.",CookieWithTruncatingChar:"Cookies containing a `(0|r|n)` character will be rejected instead of truncated.",CrossOriginAccessBasedOnDocumentDomain:"\
|
|
1919
1920
|
Relaxing the same-origin policy by setting `document.domain` is deprecated, and will be disabled by default. This deprecation warning is for a cross-origin access that was enabled by setting `document.domain`.",CrossOriginWindowAlert:"Triggering window.alert from cross origin iframes has been deprecated and will be removed in the future.",CrossOriginWindowConfirm:"Triggering window.confirm from cross origin iframes has been deprecated and will be removed in the future.",CSSSelectorInternalMediaControlsOverlayCastButton:"The `disableRemotePlayback` attribute should be used in order to disable the default Cast integration instead of using `-internal-media-controls-overlay-cast-button` selector.",CSSValueAppearanceSliderVertical:"CSS appearance value `slider-vertical` is not standardized and will be removed.",DataUrlInSvgUse:"Support for data: URLs in SVGUseElement is deprecated and it will be removed in the future.",GeolocationInsecureOrigin:"`getCurrentPosition()` and `watchPosition()` \
|
|
@@ -1950,28 +1951,28 @@ uj:Math.abs(s-t.displayedWidth)<uj;return{url:n,node:E.makeNodeItem(t.node),disp
|
|
|
1950
1951
|
(${r.toFixed(2)})`,doRatiosMatch:c}}static audit(t){let n=t.ImageElements,r=[];n.filter(o=>!o.isCss&&Ce.guessMimeType(o.src)!=="image/svg+xml"&&o.naturalDimensions&&o.naturalDimensions.height>5&&o.naturalDimensions.width>5&&o.displayedWidth&&o.displayedHeight&&o.computedStyles.objectFit==="fill").forEach(o=>{let s=o,c=e.computeAspectRatios(s);c.doRatiosMatch||r.push(c)});let a=[{key:"node",valueType:"node",label:""},{key:"url",valueType:"url",label:Uc(D.columnURL)},{key:"displayedAspectRatio",valueType:"text",label:Uc(us.columnDisplayed)},{key:"actualAspectRatio",valueType:"text",label:Uc(us.columnActual)}];return{score:+(r.length===0),details:E.makeTableDetails(a,r)}}},Whe=D2});var A2,pj,fj=g(()=>{"use strict";d();un();Ae();A2=class e{static{i(this,"ImageRecords")}static indexNetworkRecords(t){return t.reduce((n,r)=>((/^image/.test(r.mimeType)||/\.(avif|webp)$/i.test(r.url))&&r.finished&&r.statusCode===200&&(n[r.url]=r),n),{})}static async compute_(t){let n=e.indexNetworkRecords(t.networkRecords),r=[];for(let a of t.ImageElements){let s=n[a.src]?.mimeType;r.push({...a,mimeType:s||Ce.guessMimeType(a.src)})}return r.sort((a,o)=>{let s=n[a.src]||{};return(n[o.src]||{}).resourceSize-s.resourceSize}),r}},pj=Y(A2,["ImageElements","networkRecords"])});var gj={};x(gj,{UIStrings:()=>ei,default:()=>age});function Yhe(e,t){return(e.bottom-e.top)*(e.right-e.left)>0&&e.top<=t.innerHeight&&e.bottom>=0&&e.left<=t.innerWidth&&e.right>=0}function Khe(e,t){return e.bottom-e.top<=t.innerHeight&&e.right-e.left<=t.innerWidth}function Xhe(e,t){let n=["pixelated","crisp-edges"],r=/ \d+(\.\d+)?x/;return!(e.displayedWidth<=1||e.displayedHeight<=1||!e.naturalDimensions||!e.naturalDimensions.width||!e.naturalDimensions.height||t?.mimeType==="image/svg+xml"||Ce.guessMimeType(e.src)==="image/svg+xml"||e.isCss||e.computedStyles.objectFit!=="fill"||n.includes(e.computedStyles.imageRendering)||r.test(e.srcset))}function Jhe(e){return!!e.naturalDimensions}function Zhe(e,t){let[n,r]=ege(e.displayedWidth,e.displayedHeight,t);return e.naturalDimensions.width>=n&&e.naturalDimensions.height>=r}function Qhe(e,t){let[n,r]=tge(e.displayedWidth,e.displayedHeight,t);return{url:Ce.elideDataURI(e.src),node:E.makeNodeItem(e.node),displayedSize:`${e.displayedWidth} x ${e.
|
|
1951
1952
|
displayedHeight}`,actualSize:`${e.naturalDimensions.width} x ${e.naturalDimensions.height}`,actualPixels:e.naturalDimensions.width*e.naturalDimensions.height,expectedSize:`${n} x ${r}`,expectedPixels:n*r}}function ege(e,t,n){let r=Vhe;(e>hj||t>hj)&&(r=$he);let a=M2(n),o=Math.ceil(r*a*e),s=Math.ceil(r*a*t);return[o,s]}function tge(e,t,n){let r=Math.ceil(M2(n)*e),a=Math.ceil(M2(n)*t);return[r,a]}function nge(e){e.sort((n,r)=>n.url===r.url?0:n.url<r.url?-1:1);let t=[];for(let n of e){let r=t[t.length-1];r&&r.url===n.url?r.expectedPixels<n.expectedPixels&&(t[t.length-1]=n):t.push(n)}return t}function rge(e){return e.sort((t,n)=>n.expectedPixels-n.actualPixels-(t.expectedPixels-t.actualPixels))}function M2(e){return e>=2?2:e>=1.5?1.5:1}var ei,ds,Vhe,$he,hj,N2,age,yj=g(()=>{"use strict";d();$();fj();Mt();un();A();ei={title:"Serves images with appropriate resolution",failureTitle:"Serves images with low resolution",description:"Image natural dimensions should be proportional to the display si\
|
|
1952
1953
|
ze and the pixel ratio to maximize image clarity. [Learn how to provide responsive images](https://web.dev/articles/serve-responsive-images).",columnDisplayed:"Displayed size",columnActual:"Actual size",columnExpected:"Expected size"},ds=T("core/audits/image-size-responsive.js",ei),Vhe=1,$he=.75,hj=64;i(Yhe,"isVisible");i(Khe,"isSmallerThanViewport");i(Xhe,"isCandidate");i(Jhe,"imageHasNaturalDimensions");i(Zhe,"imageHasRightSize");i(Qhe,"getResult");i(ege,"allowedImageSize");i(tge,"expectedImageSize");i(nge,"deduplicateResultsByUrl");i(rge,"sortResultsBySizeDelta");N2=class extends E{static{i(this,"ImageSizeResponsive")}static get meta(){return{id:"image-size-responsive",title:ds(ei.title),failureTitle:ds(ei.failureTitle),description:ds(ei.description),requiredArtifacts:["ImageElements","ViewportDimensions"],__internalOptionalArtifacts:["DevtoolsLog"]}}static async audit(t,n){let r=t.ViewportDimensions.devicePixelRatio,a=new Map;if(t.DevtoolsLog){let l=await Re.request(t.DevtoolsLog,n);
|
|
1953
|
-
(await pj.request({ImageElements:t.ImageElements,networkRecords:l},n)).forEach(m=>a.set(m.src,m))}let o=Array.from(t.ImageElements).filter(l=>Xhe(l,a.get(l.src))).filter(Jhe).filter(l=>!Zhe(l,r)).filter(l=>Yhe(l.clientRect,t.ViewportDimensions)).filter(l=>Khe(l.clientRect,t.ViewportDimensions)).map(l=>Qhe(l,r)),s=[{key:"node",valueType:"node",label:""},{key:"url",valueType:"url",label:ds(D.columnURL)},{key:"displayedSize",valueType:"text",label:ds(ei.columnDisplayed)},{key:"actualSize",valueType:"text",label:ds(ei.columnActual)},{key:"expectedSize",valueType:"text",label:ds(ei.columnExpected)}],c=rge(nge(o));return{score:+(o.length===0),details:E.makeTableDetails(s,c)}}};i(M2,"quantizeDpr");age=N2});async function oge(e,t){let n=t.settings,r=e.Trace,a=await Be.request(r,t),{SourceMaps:o,HostDPR:s}=e,c=await
|
|
1954
|
+
(await pj.request({ImageElements:t.ImageElements,networkRecords:l},n)).forEach(m=>a.set(m.src,m))}let o=Array.from(t.ImageElements).filter(l=>Xhe(l,a.get(l.src))).filter(Jhe).filter(l=>!Zhe(l,r)).filter(l=>Yhe(l.clientRect,t.ViewportDimensions)).filter(l=>Khe(l.clientRect,t.ViewportDimensions)).map(l=>Qhe(l,r)),s=[{key:"node",valueType:"node",label:""},{key:"url",valueType:"url",label:ds(D.columnURL)},{key:"displayedSize",valueType:"text",label:ds(ei.columnDisplayed)},{key:"actualSize",valueType:"text",label:ds(ei.columnActual)},{key:"expectedSize",valueType:"text",label:ds(ei.columnExpected)}],c=rge(nge(o));return{score:+(o.length===0),details:E.makeTableDetails(s,c)}}};i(M2,"quantizeDpr");age=N2});async function oge(e,t){let n=t.settings,r=e.Trace,a=await Be.request(r,t),{SourceMaps:o,HostDPR:s}=e,c=await Dn.request({trace:r,settings:n,SourceMaps:o,HostDPR:s},t),u=a.timeOriginEvt.args.data?.navigationId??ib;return{insights:c.insights.get(u),data:c.data}}async function Ze(e,t,n,r){let{data:a,insights:o}=await oge(e,t);if(!o)return{scoreDisplayMode:E.SCORING_MODES.NOT_APPLICABLE,score:null};let s=o.model[n];if(s instanceof Error)return{errorMessage:s.message,errorStack:s.stack,score:null};let c=r(s,{data:a,insights:o}),l=[...s.warnings??[]],u,m,p;if(c&&"details"in c?(p=c.details,c.warnings&&l.push(...c.warnings),u=c.numericValue,m=c.numericUnit):p=c,!p)return{scoreDisplayMode:E.SCORING_MODES.NOT_APPLICABLE,score:null,details:p};if(s.wastedBytes!==void 0&&(p.debugData||(p.debugData={type:"debugdata"}),p.debugData.wastedBytes=s.wastedBytes),s.metricSavings)for(let[w,C]of Object.entries(s.metricSavings))Number.isFinite(C)||delete s.metricSavings[w];let f=s.metricSavings;s.category===
|
|
1954
1955
|
"INP"&&!f?.INP?f={...f,INP:0}:s.category==="CLS"&&!f?.CLS?f={...f,CLS:0}:s.category==="LCP"&&!f?.LCP&&(f={...f,LCP:0});let h;if(s.wastedBytes)h=vj(D.displayValueByteSavings,{wastedBytes:s.wastedBytes});else{let w;switch(s.insightKey){case"DocumentLatency":case"DuplicatedJavaScript":case"FontDisplay":case"LegacyJavaScript":case"RenderBlocking":{w=f?.FCP;break}case"LCPDiscovery":case"ModernHTTP":{w=f?.LCP;break}case"Viewport":{w=f?.INP;break}}w&&(h=vj(D.displayValueMsSavings,{wastedMs:w}))}let y,b;return s.state==="fail"||s.state==="pass"?(y=s.state==="fail"?0:1,b=s.metricSavings?E.SCORING_MODES.METRIC_SAVINGS:E.SCORING_MODES.NUMERIC):(y=null,b=E.SCORING_MODES.INFORMATIVE),u!==void 0&&m!==void 0?{scoreDisplayMode:b,score:y,numericValue:u,numericUnit:m,metricSavings:f,warnings:l.length?l:void 0,displayValue:h,details:p}:{scoreDisplayMode:b,score:y,metricSavings:f,warnings:l.length?l:void 0,displayValue:h,details:p}}function mn(e,t){if(typeof t!="number")return;let r=e.find(a=>a.traceEventType===
|
|
1955
1956
|
"trace-engine"&&a.nodeId===t)?.node;if(r)return E.makeNodeItem(r)}var vj,an=g(()=>{"use strict";d();kf();Xt();Ya();$();A();vj=T("core/audits/insights/insight-audit.js",{});i(oge,"getInsightSet");i(Ze,"adaptInsightToAuditProduct");i(mn,"makeNodeItemForNodeId")});var bj={};x(bj,{default:()=>ige});var Bc,O2,ige,wj=g(()=>{"use strict";d();Wh();$();A();an();Bc=T("node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js",jr),O2=class extends E{static{i(this,"CacheInsight")}static get meta(){return{id:"cache-insight",title:Bc(jr.title),failureTitle:Bc(jr.title),description:Bc(jr.description),guidanceLevel:3,requiredArtifacts:["Trace","SourceMaps","HostDPR"],replacesAudits:["uses-long-cache-ttl"]}}static async audit(t,n){return Ze(t,n,"Cache",r=>{let a=[{key:"url",valueType:"url",label:Bc(jr.requestColumn)},{key:"cacheLifetimeMs",valueType:"ms",label:Bc(jr.cacheTTL),displayUnit:"duration"},{key:"totalBytes",valueType:"bytes",label:Bc(D.columnTransferSize),displayUnit:"kb",granularity:1}],s=r.requests.sort((c,l)=>l.wastedBytes-c.wastedBytes).map(c=>({url:c.request.args.data.url,cacheLifetimeMs:c.ttl*1e3,totalBytes:c.request.args.data.encodedDataLength||0,wastedBytes:c.wastedBytes}));return E.makeTableDetails(a,s,{sortedBy:["wastedBytes"],skipSumming:[
|
|
1956
|
-
"cacheLifetimeMs"]})})}},ige=O2});var Ej={};x(Ej,{UIStrings:()=>L2,default:()=>lge});var sge,ti,L2,cge,P2,lge,Tj=g(()=>{"use strict";d();yE();$();A();an();Ig();rs();sge=5,ti=T("node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js",
|
|
1957
|
+
"cacheLifetimeMs"]})})}},ige=O2});var Ej={};x(Ej,{UIStrings:()=>L2,default:()=>lge});var sge,ti,L2,cge,P2,lge,Tj=g(()=>{"use strict";d();yE();$();A();an();Ig();rs();sge=5,ti=T("node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js",gn),L2={columnScore:"Layout shift score"},cge=T("core/audits/insights/cls-culprits-insight.js",L2),P2=class extends E{static{i(this,"CLSCulpritsInsight")}static get meta(){return{id:"cls-culprits-insight",title:ti(gn.title),failureTitle:ti(gn.title),description:ti(gn.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["layout-shifts"]}}static getCulpritSubItems(t,n,r){let a=t.shifts.get(n);if(!a)return;let o=[];for(let s of a.unsizedImages)o.push({extra:mn(r,s.backendNodeId),cause:ti(gn.unsizedImage)});for(let s of a.webFonts){let c=s.args.data.url;o.push({extra:{type:"url",value:c},cause:ti(gn.webFont)})}for(let s of a.iframes)o.push({extra:s.url?{type:"url",value:s.url}:void 0,cause:ti(gn.injectedIframe)});if(o.
|
|
1957
1958
|
length)return{type:"subitems",items:o}}static async audit(t,n){return Ze(t,n,"CLSCulprits",r=>{let a=[{key:"node",valueType:"node",subItemsHeading:{key:"extra"},label:ti(D.columnElement)},{key:"score",valueType:"numeric",subItemsHeading:{key:"cause",valueType:"text"},granularity:.001,label:cge(L2.columnScore)}],o=r.clusters.map(s=>{let c=s.events.filter(m=>!!m.args.data).sort((m,p)=>p.args.data.weighted_score_delta-m.args.data.weighted_score_delta).slice(0,sge),l=Cr.getImpactByNodeId(c.map(m=>({impactedNodes:m.args.data.impacted_nodes,ts:m.ts,isMainFrame:m.args.data.is_main_frame,weightedScore:m.args.data.weighted_score_delta,event:m}))),u=c.map(m=>{let p=dd.getBiggestImpactNodeForShiftEvent(m.args.data.impacted_nodes||[],l);return{node:mn(t.TraceElements,p),score:m.args.data?.weighted_score_delta,subItems:this.getCulpritSubItems(r,m,t.TraceElements)}});return u.unshift({node:{type:"text",value:ti(D.total)},score:s.clusterCumulativeScore}),E.makeTableDetails(a,u)});return E.makeListDetails(
|
|
1958
|
-
o)})}},lge=P2});var xj={};x(xj,{default:()=>uge});var F2,U2,uge,Sj=g(()=>{"use strict";d();wE();$();A();an();F2=T("node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js",ln),U2=class extends E{static{i(this,"DocumentLatencyInsight")}static get meta(){return{id:"document-latency-insight",title:F2(ln.title),failureTitle:F2(ln.title),description:F2(ln.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["redirects","server-response-time","uses-text-compression"]}}static async audit(t,n){return Ze(t,n,"DocumentLatency",r=>{if(!r.data)return;let a=E.makeChecklistDetails(r.data.checklist);return a.debugData={type:"debugdata",redirectDuration:r.data.redirectDuration,serverResponseTime:r.data.serverResponseTime,uncompressedResponseBytes:r.data.uncompressedResponseBytes},a})}},uge=U2});var Cj={};x(Cj,{default:()=>dge});var no,B2,dge,kj=g(()=>{"use strict";d();TE();$();A();an();no=T("node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js",
|
|
1959
|
-
value:s.depth}},{statistic:no(
|
|
1959
|
+
o)})}},lge=P2});var xj={};x(xj,{default:()=>uge});var F2,U2,uge,Sj=g(()=>{"use strict";d();wE();$();A();an();F2=T("node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js",ln),U2=class extends E{static{i(this,"DocumentLatencyInsight")}static get meta(){return{id:"document-latency-insight",title:F2(ln.title),failureTitle:F2(ln.title),description:F2(ln.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["redirects","server-response-time","uses-text-compression"]}}static async audit(t,n){return Ze(t,n,"DocumentLatency",r=>{if(!r.data)return;let a=E.makeChecklistDetails(r.data.checklist);return a.debugData={type:"debugdata",redirectDuration:r.data.redirectDuration,serverResponseTime:r.data.serverResponseTime,uncompressedResponseBytes:r.data.uncompressedResponseBytes},a})}},uge=U2});var Cj={};x(Cj,{default:()=>dge});var no,B2,dge,kj=g(()=>{"use strict";d();TE();$();A();an();no=T("node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js",yn),B2=class extends E{static{i(this,"DOMSizeInsight")}static get meta(){return{id:"dom-size-insight",title:no(yn.title),failureTitle:no(yn.title),description:no(yn.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["dom-size"]}}static async audit(t,n){return Ze(t,n,"DOMSize",r=>{if(!r.maxDOMStats?.args.data.maxChildren||!r.maxDOMStats?.args.data.maxDepth)return;let{totalElements:a,maxChildren:o,maxDepth:s}=r.maxDOMStats.args.data,c=[{key:"statistic",valueType:"text",label:no(yn.statistic)},{key:"node",valueType:"node",label:no(yn.element)},{key:"value",valueType:"numeric",label:no(yn.value)}],l=[{statistic:no(yn.totalElements),value:{type:"numeric",granularity:1,value:a}},{statistic:no(yn.maxDOMDepth),node:mn(t.TraceElements,s.nodeId),value:{type:"numeric",granularity:1,
|
|
1960
|
+
value:s.depth}},{statistic:no(yn.maxChildren),node:mn(t.TraceElements,o.nodeId),value:{type:"numeric",granularity:1,value:o.numChildren}}],u=E.makeTableDetails(c,l);return u.debugData={type:"debugdata",totalElements:a,maxChildren:o.numChildren,maxDepth:s.depth},{details:u,numericValue:a,numericUnit:"element"}})}},dge=B2});var Rj={};x(Rj,{default:()=>mge});var Hm,j2,mge,_j=g(()=>{"use strict";d();CE();$();A();an();Hm=T("node_modules/@paulirish/trace_engine/models/trace/insights/DuplicatedJavaScript.js",la),j2=class extends E{static{i(this,"DuplicatedJavaScriptInsight")}static get meta(){return{id:"duplicated-javascript-insight",title:Hm(la.title),failureTitle:Hm(la.title),description:Hm(la.description),guidanceLevel:2,requiredArtifacts:["Trace","SourceMaps","HostDPR"],replacesAudits:["duplicated-javascript"]}}static async audit(t,n){return Ze(t,n,"DuplicatedJavaScript",r=>{let a=[{key:"source",valueType:"code",subItemsHeading:{key:"url",valueType:"url"},label:Hm(D.columnSource)},{key:"wastedBytes",valueType:"bytes",subItemsHeading:{key:"sourceTransferBytes"},granularity:10,label:Hm(la.columnDuplicatedBytes)}],s=[...r.duplicationGroupedByNodeModules.entries()].slice(0,10).map(([c,l])=>{let u={source:c,wastedBytes:l.estimatedDuplicateBytes,subItems:{type:"subitems",items:[]}};for(let[m,{script:p,attributedSize:f}]of l.
|
|
1960
1961
|
duplicates.entries()){let h={url:p.url??"",sourceTransferBytes:m===0?{type:"text",value:"--"}:f};u.subItems.items.push(h)}return u});return E.makeTableDetails(a,s)})}},mge=j2});var Ij={};x(Ij,{default:()=>pge});var qm,H2,pge,Dj=g(()=>{"use strict";d();_E();$();A();an();qm=T("node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js",Ha),H2=class extends E{static{i(this,"FontDisplayInsight")}static get meta(){return{id:"font-display-insight",title:qm(Ha.title),failureTitle:qm(Ha.title),description:qm(Ha.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["font-display"]}}static async audit(t,n){return Ze(t,n,"FontDisplay",r=>{let a=[{key:"url",valueType:"url",label:qm(D.columnURL)},{key:"wastedMs",valueType:"ms",label:qm(D.columnWastedMs)}],o=r.fonts.map(c=>({url:c.request.args.data.url,wastedMs:c.wastedTime})),s=E.makeTableDetails(a,o);return s.skipSumming=["wastedMs"],s})}},pge=H2});var Aj={};x(Aj,{default:()=>fge});var ni,q2,fge,Nj=g(()=>{"use strict";d();NE();$();A();an();ni=T("node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js",cr),q2=class extends E{static{i(this,"ForcedReflowInsight")}static get meta(){return{id:"forced-reflow-insight",title:ni(cr.title),failureTitle:ni(cr.title),description:ni(cr.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"]}}static makeTopFunctionTable(t){let{topLevelFunctionCall:n}=t,r=[{key:"source",valueType:"source-location",label:ni(cr.topTimeConsumingFunctionCall)},{key:"reflowTime",valueType:"ms",granularity:1,label:ni(cr.totalReflowTime)}],a=[{source:E.makeSourceLocation(n.url,n.lineNumber,n.columnNumber),reflowTime:t.totalReflowTime/1e3}];return E.makeTableDetails(r,a)}static makeBottomUpTable(t){let n=[{key:"source",valueType:"source-location",label:ni(D.columnSource)},{key:"reflowTime",valueType:"ms",granularity:1,label:ni(cr.totalReflowTime)}],r=t.aggregatedBottomUpData.
|
|
1961
|
-
map(a=>{let{bottomUpData:o,totalTime:s}=a;return{source:o?E.makeSourceLocation(o.url,o.lineNumber,o.columnNumber):{type:"text",value:ni(cr.unattributed)},reflowTime:s/1e3}});return E.makeTableDetails(n,r)}static async audit(t,n){return Ze(t,n,"ForcedReflow",r=>{let a=[this.makeBottomUpTable(r)];return r.topLevelFunctionCallData&&a.unshift(this.makeTopFunctionTable(r.topLevelFunctionCallData)),E.makeListDetails(a)})}},fge=q2});var Mj={};x(Mj,{default:()=>gge});var ms,hge,z2,gge,Oj=g(()=>{"use strict";d();Kh();Kh();$();A();an();Ya();ms=T("node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js",Jn),hge=
|
|
1962
|
-
s"}}],o=r.optimizableImages.map(s=>({node:mn(t.TraceElements,s.largestImagePaint.args.data.nodeId),url:s.request.args.data.url,totalBytes:s.request.args.data.decodedBodyLength,wastedBytes:s.byteSavings,subItems:{type:"subitems",items:s.optimizations.map(c=>({reason:hge(c),wastedBytes:c.byteSavings}))}}));return E.makeTableDetails(a,o)})}},gge=z2});var Pj={};x(Pj,{default:()=>yge});var ri,G2,yge,Lj=g(()=>{"use strict";d();PE();$();A();an();ri=T("node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js",
|
|
1962
|
+
map(a=>{let{bottomUpData:o,totalTime:s}=a;return{source:o?E.makeSourceLocation(o.url,o.lineNumber,o.columnNumber):{type:"text",value:ni(cr.unattributed)},reflowTime:s/1e3}});return E.makeTableDetails(n,r)}static async audit(t,n){return Ze(t,n,"ForcedReflow",r=>{let a=[this.makeBottomUpTable(r)];return r.topLevelFunctionCallData&&a.unshift(this.makeTopFunctionTable(r.topLevelFunctionCallData)),E.makeListDetails(a)})}},fge=q2});var Mj={};x(Mj,{default:()=>gge});var ms,hge,z2,gge,Oj=g(()=>{"use strict";d();Kh();Kh();$();A();an();Ya();ms=T("node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js",Jn),hge=Dn.localizeFunction(ms,$h),z2=class extends E{static{i(this,"ImageDeliveryInsight")}static get meta(){return{id:"image-delivery-insight",title:ms(Jn.title),failureTitle:ms(Jn.title),description:ms(Jn.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["modern-image-formats","uses-optimized-images","efficient-animated-content","uses-responsive-images"]}}static async audit(t,n){return Ze(t,n,"ImageDelivery",r=>{let a=[{key:"node",valueType:"node",label:""},{key:"url",valueType:"url",label:ms(D.columnURL),subItemsHeading:{key:"reason",valueType:"text"}},{key:"totalBytes",valueType:"bytes",label:ms(D.columnResourceSize)},{key:"wastedBytes",valueType:"bytes",label:ms(D.columnWastedBytes),subItemsHeading:{key:"wastedBytes",valueType:"byte\
|
|
1963
|
+
s"}}],o=r.optimizableImages.map(s=>({node:mn(t.TraceElements,s.largestImagePaint.args.data.nodeId),url:s.request.args.data.url,totalBytes:s.request.args.data.decodedBodyLength,wastedBytes:s.byteSavings,subItems:{type:"subitems",items:s.optimizations.map(c=>({reason:hge(c),wastedBytes:c.byteSavings}))}}));return E.makeTableDetails(a,o)})}},gge=z2});var Pj={};x(Pj,{default:()=>yge});var ri,G2,yge,Lj=g(()=>{"use strict";d();PE();$();A();an();ri=T("node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js",In),G2=class extends E{static{i(this,"INPBreakdownInsight")}static get meta(){return{id:"inp-breakdown-insight",title:ri(In.title),failureTitle:ri(In.title),description:ri(In.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["work-during-interaction"]}}static async audit(t,n){return Ze(t,n,"INPBreakdown",r=>{let a=r.longestInteractionEvent;if(!a)return;let o=[{key:"label",valueType:"text",label:ri(In.subpart)},{key:"duration",valueType:"ms",label:ri(D.columnDuration)}],s=[{subpart:"inputDelay",label:ri(In.inputDelay),duration:a.inputDelay/1e3},{subpart:"processingDuration",label:ri(In.processingDuration),duration:a.mainThreadHandling/1e3},{subpart:"presentationDelay",label:ri(In.presentationDelay),duration:a.presentationDelay/1e3}];return E.makeListDetails(
|
|
1963
1964
|
[E.makeTableDetails(o,s),mn(t.TraceElements,a.args.data.beginEvent.args.data.nodeId)].filter(c=>!!c))})}},yge=G2});var Fj={};x(Fj,{default:()=>vge});var ro,W2,vge,Uj=g(()=>{"use strict";d();FE();$();A();an();ro=T("node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js",nn),W2=class e extends E{static{i(this,"LCPBreakdownInsight")}static get meta(){return{id:"lcp-breakdown-insight",title:ro(nn.title),failureTitle:ro(nn.title),description:ro(nn.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["largest-contentful-paint-element"]}}static makeSubpartsTable(t){let{ttfb:n,loadDelay:r,loadDuration:a,renderDelay:o}=t,s=[{key:"label",valueType:"text",label:ro(nn.subpart)},{key:"duration",valueType:"ms",label:ro(D.columnDuration)}],c=[{subpart:"timeToFirstByte",label:ro(nn.timeToFirstByte),duration:n.range/1e3},{subpart:"resourceLoadDelay",label:ro(nn.resourceLoadDelay),duration:(r?.range??0)/1e3},{subpart:"resourceLoadDuration",label:ro(nn.resourceLoadDuration),duration:(a?.range??0)/1e3},{subpart:"elementRenderDelay",label:ro(
|
|
1964
1965
|
nn.elementRenderDelay),duration:o.range/1e3}];return r===void 0&&(c=c.filter(l=>l.subpart!=="resourceLoadDelay")),a===void 0&&(c=c.filter(l=>l.subpart!=="resourceLoadDuration")),E.makeTableDetails(s,c)}static async audit(t,n){return Ze(t,n,"LCPBreakdown",r=>{if(r.subparts)return E.makeListDetails([e.makeSubpartsTable(r.subparts),mn(t.TraceElements,r.lcpEvent?.args.data?.nodeId)].filter(a=>a!==void 0))})}},vge=W2});var Bj={};x(Bj,{default:()=>bge});var V2,$2,bge,jj=g(()=>{"use strict";d();BE();$();A();an();V2=T("node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js",lr),$2=class extends E{static{i(this,"LCPDiscoveryInsight")}static get meta(){return{id:"lcp-discovery-insight",title:V2(lr.title),failureTitle:V2(lr.title),description:V2(lr.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["prioritize-lcp-image","lcp-lazy-loaded"]}}static async audit(t,n){return Ze(t,n,"LCPDiscovery",r=>{if(r.checklist)return E.makeListDetails([E.makeChecklistDetails(r.checklist),mn(t.TraceElements,r.lcpEvent?.args.data?.nodeId)].filter(a=>!!a))})}},bge=$2});var Hj={};x(Hj,{default:()=>wge});var zm,Y2,wge,qj=g(()=>{"use strict";d();GE();$();A();Yo();an();zm=T("node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js",ua),Y2=class extends E{static{i(this,"LegacyJavaScriptInsight")}static get meta(){return{id:"legacy-javascript-insight",title:zm(ua.title),failureTitle:zm(ua.title),description:zm(ua.description),guidanceLevel:2,requiredArtifacts:["Trace","Scripts","SourceMaps","HostDPR"]}}static async audit(t,n){let r=await er.request(t,n);return Ze(t,n,"LegacyJavaScript",a=>{let o=[{key:"url",valueType:"url",subItemsHeading:{key:"location",valueType:"source-location"},label:zm(D.columnURL)},{key:null,valueType:"code",subItemsHeading:{key:"signal"},label:""},{key:"wastedBytes",valueType:"bytes",label:zm(ua.columnWastedBytes)}],s=[];for(let[c,l]of a.legacyJavaScriptResults){let u=r.find(p=>p.script.scriptId===c.scriptId),m={url:c.url??"",wastedBytes:l.estimatedByteSavings,subItems:{type:"subitems",items:[]}};for(let p of l.
|
|
1965
|
-
matches){let{name:f,line:h,column:y}=p,b={signal:f,location:E.makeSourceLocation(c.url??"",h,y,u)};m.subItems.items.push(b)}s.push(m)}return E.makeTableDetails(o,s)})}},wge=Y2});var zj={};x(zj,{default:()=>Ege});var Gm,K2,Ege,Gj=g(()=>{"use strict";d();Zh();$();A();an();Gm=T("node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js",da),K2=class extends E{static{i(this,"ModernHTTPInsight")}static get meta(){return{id:"modern-http-insight",title:Gm(da.title),failureTitle:Gm(da.title),description:Gm(da.description),guidanceLevel:3,requiredArtifacts:["Trace","SourceMaps","HostDPR"]}}static async audit(t,n){return Ze(t,n,"ModernHTTP",r=>{let a=[{key:"url",valueType:"url",label:Gm(D.columnURL)},{key:"protocol",valueType:"text",label:Gm(da.protocol)}],o=r.http1Requests.map(s=>({url:s.args.data.url,protocol:s.args.data.protocol}));return E.makeTableDetails(a,o)})}},Ege=K2});var Wj={};x(Wj,{default:()=>Tge});var
|
|
1966
|
-
r.rootNodes),longestChain:{duration:Math.round(r.maxTime/1e3)}},a.push(E.makeListDetailSectionItem(o)),r.preconnectedOrigins.length){let c=[{key:"origin",valueType:"text",subItemsHeading:{key:"warning"},label:
|
|
1967
|
-
wastedMs}));o=E.makeTableDetails(c,l)}else o={type:"text",value:
|
|
1966
|
+
matches){let{name:f,line:h,column:y}=p,b={signal:f,location:E.makeSourceLocation(c.url??"",h,y,u)};m.subItems.items.push(b)}s.push(m)}return E.makeTableDetails(o,s)})}},wge=Y2});var zj={};x(zj,{default:()=>Ege});var Gm,K2,Ege,Gj=g(()=>{"use strict";d();Zh();$();A();an();Gm=T("node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js",da),K2=class extends E{static{i(this,"ModernHTTPInsight")}static get meta(){return{id:"modern-http-insight",title:Gm(da.title),failureTitle:Gm(da.title),description:Gm(da.description),guidanceLevel:3,requiredArtifacts:["Trace","SourceMaps","HostDPR"]}}static async audit(t,n){return Ze(t,n,"ModernHTTP",r=>{let a=[{key:"url",valueType:"url",label:Gm(D.columnURL)},{key:"protocol",valueType:"text",label:Gm(da.protocol)}],o=r.http1Requests.map(s=>({url:s.args.data.url,protocol:s.args.data.protocol}));return E.makeTableDetails(a,o)})}},Ege=K2});var Wj={};x(Wj,{default:()=>Tge});var On,X2,Tge,Vj=g(()=>{"use strict";d();KE();$();A();an();On=T("node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js",Bt),X2=class extends E{static{i(this,"NetworkDependencyTreeInsight")}static get meta(){return{id:"network-dependency-tree-insight",title:On(Bt.title),failureTitle:On(Bt.title),description:On(Bt.description),guidanceLevel:1,requiredArtifacts:["Trace","SourceMaps","TraceElements","HostDPR"],replacesAudits:["critical-request-chains","uses-rel-preconnect"]}}static traceEngineNodesToDetailsNodes(t){let n={};for(let r of t){let{request:a}=r;n[a.args.data.requestId]={url:a.args.data.url,navStartToEndTime:Math.round(r.timeFromInitialRequest/1e3),transferSize:a.args.data.encodedDataLength,isLongest:r.isLongest,children:this.traceEngineNodesToDetailsNodes(r.children)}}return n}static async audit(t,n){return Ze(t,n,"NetworkDependencyTree",r=>{let a=[],o;if(o={type:"network-tree",chains:this.traceEngineNodesToDetailsNodes(
|
|
1967
|
+
r.rootNodes),longestChain:{duration:Math.round(r.maxTime/1e3)}},a.push(E.makeListDetailSectionItem(o)),r.preconnectedOrigins.length){let c=[{key:"origin",valueType:"text",subItemsHeading:{key:"warning"},label:On(Bt.columnOrigin)},{key:"source",valueType:"node",label:On(Bt.columnSource)}],l=r.preconnectedOrigins.map(u=>{let m=[];u.unused&&m.push(On(Bt.unusedWarning)),u.crossorigin&&m.push(On(Bt.crossoriginWarning));let p={type:"subitems",items:m.map(f=>({warning:f}))};return{origin:u.url,source:u.source==="DOM"?mn(t.TraceElements,u.node_id):{type:"text",value:u.headerText},subItems:p}});o=E.makeTableDetails(c,l)}else o={type:"text",value:On(Bt.noPreconnectOrigins)};if(a.push(E.makeListDetailSectionItem(o,On(Bt.preconnectOriginsTableTitle),On(Bt.preconnectOriginsTableDescription))),r.preconnectCandidates.length){let c=[{key:"origin",valueType:"text",label:On(Bt.columnOrigin)},{key:"wastedMs",valueType:"ms",label:On(Bt.columnWastedMs)}],l=r.preconnectCandidates.map(u=>({origin:u.origin,wastedMs:u.
|
|
1968
|
+
wastedMs}));o=E.makeTableDetails(c,l)}else o={type:"text",value:On(Bt.noPreconnectCandidates)};a.push(E.makeListDetailSectionItem(o,On(Bt.estSavingTableTitle),On(Bt.estSavingTableDescription)));let s=[];return r.preconnectedOrigins.length>eg&&s.push(On(Bt.tooManyPreconnectLinksWarning)),{details:E.makeListDetails(a),warnings:s}})}},Tge=X2});var $j={};x($j,{default:()=>xge});var jc,J2,xge,Yj=g(()=>{"use strict";d();QE();$();A();an();jc=T("node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js",qa),J2=class extends E{static{i(this,"RenderBlockingInsight")}static get meta(){return{id:"render-blocking-insight",title:jc(qa.title),failureTitle:jc(qa.title),description:jc(qa.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["render-blocking-resources"]}}static async audit(t,n){return Ze(t,n,"RenderBlocking",r=>{let a=[{key:"url",valueType:"url",label:jc(D.columnURL)},{key:"totalBytes",valueType:"bytes",label:jc(D.columnTransferSize)},{key:"wastedMs",valueType:"timespanMs",label:jc(D.columnDuration)}],o=r.renderBlockingRequests.map(s=>({url:s.args.data.url,totalBytes:s.args.data.encodedDataLength,wastedMs:r.requestIdToWastedMs?.get(s.args.data.requestId)}));return E.makeTableDetails(a,o)})}},xge=J2});var Kj={};x(Kj,{default:()=>Sge});var Z2,Q2,Sge,Xj=g(()=>{"use strict";d();nT();$();A();an();Z2=T("node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js",za),Q2=class extends E{static{i(this,"SlowCSSSelectorInsight")}static get meta(){return{id:"slow-css-selector-insight",title:Z2(za.title),failureTitle:Z2(za.title),description:Z2(za.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"]}}static async audit(t,n){return Ze(t,n,"SlowCSSSelector",r=>{let a=[],o=[];return E.makeTableDetails(a,o)})}},Sge=Q2});var Jj={};x(Jj,{default:()=>Cge});var Hc,eR,Cge,Zj=g(()=>{"use strict";d();oT();dE();$();A();an();Hc=T("node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js",xr),eR=class e extends E{static{i(this,"ThirdPartiesInsight")}static get meta(){return{id:"third-parties-insight",title:Hc(xr.title),failureTitle:Hc(xr.title),description:Hc(xr.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["third-party-summary"]}}static makeSubItems(t,n){return n=n.filter(r=>r.entity===t),n.filter(r=>r.entity===t).map(r=>({url:r.url,mainThreadTime:r.mainThreadTime,transferSize:r.transferSize})).sort((r,a)=>a.mainThreadTime-r.mainThreadTime||a.transferSize-r.transferSize)}static async audit(t,n){return Ze(t,n,"ThirdParties",(r,a)=>{let o=uE(a.data,a.insights.bounds),s=r.entitySummaries.filter(u=>u.entity!==r.firstPartyEntity||null).sort((u,m)=>m.mainThreadTime-u.mainThreadTime),c=[{key:"entity",valueType:"text",label:Hc(xr.columnThirdParty),
|
|
1968
1969
|
subItemsHeading:{key:"url",valueType:"url"}},{key:"transferSize",granularity:1,valueType:"bytes",label:Hc(xr.columnTransferSize),subItemsHeading:{key:"transferSize"}},{key:"mainThreadTime",granularity:1,valueType:"ms",label:Hc(xr.columnMainThreadTime),subItemsHeading:{key:"mainThreadTime"}}],l=s.map(u=>({entity:u.entity.name,mainThreadTime:u.mainThreadTime,transferSize:u.transferSize,subItems:{type:"subitems",items:e.makeSubItems(u.entity,o)}}));return E.makeTableDetails(c,l,{isEntityGrouped:!0})})}},Cge=eR});var Qj={};x(Qj,{default:()=>kge});var tR,nR,kge,eH=g(()=>{"use strict";d();cT();$();A();an();tR=T("node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js",ma),nR=class extends E{static{i(this,"ViewportInsight")}static get meta(){return{id:"viewport-insight",title:tR(ma.title),failureTitle:tR(ma.title),description:tR(ma.description),guidanceLevel:3,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"],replacesAudits:["viewport"]}}static async audit(t,n){return Ze(t,n,"Viewport",r=>{let a=r.viewportEvent?.args.data.node_id,o=[{key:"node",valueType:"node",label:""}],s=[{node:mn(t.TraceElements,a)}];return E.makeTableDetails(o,s)})}},kge=nR});var nH={};x(nH,{UIStrings:()=>Or,default:()=>Rge});var Or,tH,ai,rR,Rge,rH=g(()=>{"use strict";d();$();un();qr();Mt();A();Or={title:"Uses HTTPS",failureTitle:"Does not use HTTPS",description:"All sites should be protected with HTTPS, even ones that don't handle sensitive data. This includes avoiding [mixed content](https://developers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content), where some resources are loaded over HTTP despite the initial request being served over HTTPS. HTTPS prevents intruders from tampering with or passively listening in on the communications between your app and your users, and is a prerequisite for HTTP/2 and many new web platform APIs. [Learn more about HTTPS](https://developer.chrome.com/docs/lighthouse/pwa/is-on-https/).",displayValue:`{itemCount, plural,
|
|
1969
1970
|
=1 {1 insecure request found}
|
|
1970
1971
|
other {# insecure requests found}
|
|
1971
1972
|
}`,columnInsecureURL:"Insecure URL",columnResolution:"Request Resolution",allowed:"Allowed",blocked:"Blocked",warning:"Allowed with warning",upgraded:"Automatically upgraded to HTTPS"},tH={MixedContentAutomaticallyUpgraded:Or.upgraded,MixedContentBlocked:Or.blocked,MixedContentWarning:Or.warning},ai=T("core/audits/is-on-https.js",Or),rR=class extends E{static{i(this,"HTTPS")}static get meta(){return{id:"is-on-https",title:ai(Or.title),failureTitle:ai(Or.failureTitle),description:ai(Or.description),requiredArtifacts:["DevtoolsLog","InspectorIssues"]}}static async audit(t,n){let r=t.DevtoolsLog,o=(await Re.request(r,n)).filter(u=>!lt.isSecureRequest(u)).map(u=>Ce.elideDataURI(u.url)),s=Array.from(new Set(o)).map(u=>({url:u,resolution:void 0})),c=[{key:"url",valueType:"url",label:ai(Or.columnInsecureURL)},{key:"resolution",valueType:"text",label:ai(Or.columnResolution)}];for(let u of t.InspectorIssues.mixedContentIssue??[]){let m=s.find(p=>p.url===u.insecureURL);m||(m={url:u.insecureURL},
|
|
1972
1973
|
s.push(m)),m.resolution=tH[u.resolutionStatus]?ai(tH[u.resolutionStatus]):u.resolutionStatus}for(let u of s)u.resolution||(u.resolution=ai(Or.allowed));let l;return s.length>0&&(l=ai(Or.displayValue,{itemCount:s.length})),{score:+(s.length===0),displayValue:l,details:E.makeTableDetails(c,s)}}},Rge=rR});var oH={};x(oH,{UIStrings:()=>oR,default:()=>iR});var oR,aH,aR,iR,sR=g(()=>{"use strict";d();$();rs();A();oR={description:"Cumulative Layout Shift measures the movement of visible elements within the viewport. [Learn more about the Cumulative Layout Shift metric](https://web.dev/articles/cls)."},aH=T("core/audits/metrics/cumulative-layout-shift.js",oR),aR=class extends E{static{i(this,"CumulativeLayoutShift")}static get meta(){return{id:"cumulative-layout-shift",title:aH(D.cumulativeLayoutShiftMetric),description:aH(oR.description),scoreDisplayMode:E.SCORING_MODES.NUMERIC,requiredArtifacts:["Trace"]}}static get defaultOptions(){return{p10:.1,median:.25}}static async audit(t,n){let r=t.Trace,{cumulativeLayoutShift:a,impactByNodeId:o,...s}=await Cr.request(r,n),c={type:"debugdata",items:[s]},l={p10:n.options.p10,median:n.options.median};return{score:E.computeLogNormalScore(l,a),scoringOptions:l,numericValue:a,numericUnit:"unitless",displayValue:a.toLocaleString(n.settings.locale),details:c}}},
|
|
1973
1974
|
iR=aR});var iH={};x(iH,{UIStrings:()=>ao,default:()=>Ige});var _ge,ao,oi,cR,Ige,sH=g(()=>{"use strict";d();$();A();rs();sR();Ig();Ya();_ge=15,ao={title:"Avoid large layout shifts",description:"These are the largest layout shifts observed on the page. Each table item represents a single layout shift, and shows the element that shifted the most. Below each item are possible root causes that led to the layout shift. Some of these layout shifts may not be included in the CLS metric value due to [windowing](https://web.dev/articles/cls#what_is_cls). [Learn how to improve CLS](https://web.dev/articles/optimize-cls)",columnScore:"Layout shift score",rootCauseUnsizedMedia:"Media element lacking an explicit size",rootCauseFontChanges:"Web font loaded",rootCauseInjectedIframe:"Injected iframe",displayValueShiftsFound:"{shiftCount, plural, =1 {1 layout shift found} other {# layout shifts found}}"},oi=T("core/audits/layout-shifts.js",ao),cR=class extends E{static{i(this,"LayoutShifts")}static get meta(){return{
|
|
1974
|
-
id:"layout-shifts",title:oi(ao.title),description:oi(ao.description),scoreDisplayMode:E.SCORING_MODES.METRIC_SAVINGS,guidanceLevel:2,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"]}}static async audit(t,n){let r=n.settings,a=t.Trace,{SourceMaps:o,HostDPR:s}=t,c=await
|
|
1975
|
+
id:"layout-shifts",title:oi(ao.title),description:oi(ao.description),scoreDisplayMode:E.SCORING_MODES.METRIC_SAVINGS,guidanceLevel:2,requiredArtifacts:["Trace","TraceElements","SourceMaps","HostDPR"]}}static async audit(t,n){let r=n.settings,a=t.Trace,{SourceMaps:o,HostDPR:s}=t,c=await Dn.request({trace:a,settings:r,SourceMaps:o,HostDPR:s},n),l=c.data.LayoutShifts.clusters??[],{cumulativeLayoutShift:u,impactByNodeId:m}=await Cr.request(a,n),p=t.TraceElements.filter(S=>S.traceEventType==="layout-shift"),f={layoutShifts:new Map};for(let S of c.insights.values())for(let[_,q]of S.model.CLSCulprits.shifts)f.layoutShifts.set(_,q);let h=[],b=l.flatMap(S=>S.events).filter(S=>!!S.args.data).sort((S,_)=>_.args.data.weighted_score_delta-S.args.data.weighted_score_delta).slice(0,_ge);for(let S of b){let _=dd.getBiggestImpactNodeForShiftEvent(S.args.data.impacted_nodes||[],m),q=p.find(K=>K.nodeId===_),F=f.layoutShifts.get(S),G=[];if(F){for(let K of F.unsizedImages){let ne=t.TraceElements.find(he=>he.
|
|
1975
1976
|
traceEventType==="trace-engine"&&he.nodeId===K.backendNodeId);G.push({extra:ne?E.makeNodeItem(ne.node):void 0,cause:oi(ao.rootCauseUnsizedMedia)})}for(let K of F.webFonts){let ne=K.args.data.url;G.push({extra:{type:"url",value:ne},cause:oi(ao.rootCauseFontChanges)})}for(let K of F.iframes)G.push({extra:K.url?{type:"url",value:K.url}:void 0,cause:oi(ao.rootCauseInjectedIframe)})}h.push({node:q?E.makeNodeItem(q.node):void 0,score:S.args.data.weighted_score_delta,subItems:G.length?{type:"subitems",items:G}:void 0})}let w=[{key:"node",valueType:"node",subItemsHeading:{key:"extra"},label:oi(D.columnElement)},{key:"score",valueType:"numeric",subItemsHeading:{key:"cause",valueType:"text"},granularity:.001,label:oi(ao.columnScore)}],C=E.makeTableDetails(w,h),k;h.length>0&&(k=oi(ao.displayValueShiftsFound,{shiftCount:h.length}));let R=u<=iR.defaultOptions.p10;return{score:R?1:0,scoreDisplayMode:R?E.SCORING_MODES.INFORMATIVE:void 0,metricSavings:{CLS:u},notApplicable:C.items.length===0,displayValue:k,
|
|
1976
1977
|
details:C}}},Ige=cR});var cH={};x(cH,{UIStrings:()=>Wm,default:()=>Mge});function Nge(e,t){let n=e.indexOf(t);return n>-1?n:e.push(t)-1}function lR(e){return Math.round(e*10)/10}var Dge,Age,Wm,qc,uR,Mge,lH=g(()=>{"use strict";d();Jt();$();Mt();A();as();_k();rd();xk();xc();Dge={startTime:0,endTime:0,duration:0},Age=20,Wm={title:"Avoid long main-thread tasks",description:"Lists the longest tasks on the main thread, useful for identifying worst contributors to input delay. [Learn how to avoid long main-thread tasks](https://web.dev/articles/optimize-long-tasks)",displayValue:`{itemCount, plural,
|
|
1977
1978
|
=1 {# long task found}
|
|
@@ -1979,7 +1980,7 @@ details:C}}},Ige=cR});var cH={};x(cH,{UIStrings:()=>Wm,default:()=>Mge});functio
|
|
|
1979
1980
|
}`},qc=T("core/audits/long-tasks.js",Wm);i(Nge,"insertUrl");i(lR,"roundTenths");uR=class e extends E{static{i(this,"LongTasks")}static get meta(){return{id:"long-tasks",scoreDisplayMode:E.SCORING_MODES.INFORMATIVE,title:qc(Wm.title),description:qc(Wm.description),requiredArtifacts:["Trace","DevtoolsLog","URL","GatherContext","SourceMaps","HostDPR"],guidanceLevel:1}}static getTimingBreakdown(t,n,r=new Map){let a=e.getTiming(t,n),o=0;if(a.duration>0)for(let l of t.children){let{duration:u}=e.getTimingBreakdown(l,n,r);o+=u}let s=a.duration-o,c=r.get(t.group.id)||0;return r.set(t.group.id,c+s),{startTime:a.startTime,duration:a.duration,timeByTaskGroup:r}}static makeDebugData(t,n,r){let a=[],o=[];for(let s of t){let c=Ng(s,n),{startTime:l,duration:u,timeByTaskGroup:m}=e.getTimingBreakdown(s,r),p=[...m].map(([f,h])=>[f,lR(h)]).sort((f,h)=>f[0].localeCompare(h[0]));o.push({urlIndex:Nge(a,c),startTime:lR(l),duration:lR(u),...Object.fromEntries(p)})}return{type:"debugdata",urls:a,tasks:o}}static getTiming(t,n){
|
|
1980
1981
|
let r=t;n&&(r=n.get(t.event)||Dge);let{duration:a,startTime:o}=r;return{duration:a,startTime:o}}static async audit(t,n){let r=n.settings||{},{URL:a,HostDPR:o,SourceMaps:s}=t,c=t.Trace,l=await _r.request(c,n),u=t.DevtoolsLog,m=await Re.request(u,n),p=E.makeMetricComputationDataInput(t,n),f=await ha.request(p,n),h;if(r.throttlingMethod==="simulate"){h=new Map;let S={devtoolsLog:u,settings:n.settings},_=await Em.request({settings:r,trace:c,devtoolsLog:u,URL:a,SourceMaps:s,HostDPR:o,fromTrace:!1},n),F=(await Fo.request(S,n)).simulate(_,{label:"long-tasks-diagnostic"});for(let[G,K]of F.nodeTimings.entries())G.type==="cpu"&&h.set(G.event,K)}let y=Tk(m),b=l.map(S=>{let{duration:_}=e.getTiming(S,h);return{task:S,duration:_}}).filter(({task:S,duration:_})=>_>=50&&!S.unbounded&&!S.parent).sort((S,_)=>_.duration-S.duration).map(({task:S})=>S),w=b.map(S=>{let _=e.getTiming(S,h);return{url:Ng(S,y),duration:_.duration,startTime:_.startTime}}).slice(0,Age),C=[{key:"url",valueType:"url",label:qc(D.columnURL)},
|
|
1981
1982
|
{key:"startTime",valueType:"ms",granularity:1,label:qc(D.columnStartTime)},{key:"duration",valueType:"ms",granularity:1,label:qc(D.columnDuration)}],k=E.makeTableDetails(C,w,{sortedBy:["duration"],skipSumming:["startTime"]});k.debugData=e.makeDebugData(b,y,h);let R;return w.length>0&&(R=qc(Wm.displayValue,{itemCount:w.length})),{score:w.length===0?1:0,notApplicable:w.length===0,details:k,displayValue:R,metricSavings:{TBT:f.timing}}}},Mge=uR});var uH={};x(uH,{default:()=>Oge});var dR,Oge,dH=g(()=>{"use strict";d();$();as();dR=class extends E{static{i(this,"MainThreadTasks")}static get meta(){return{id:"main-thread-tasks",scoreDisplayMode:E.SCORING_MODES.INFORMATIVE,title:"Tasks",description:"Lists the toplevel main thread tasks that executed during page load.",requiredArtifacts:["Trace"]}}static async audit(t,n){let r=t.Trace,o=(await _r.request(r,n)).filter(l=>l.duration>5&&!l.parent).map(l=>({duration:l.duration,startTime:l.startTime})),s=[{key:"startTime",valueType:"ms",granularity:1,label:"Start Time"},{key:"duration",valueType:"ms",granularity:1,label:"End Time"}];return{score:1,details:E.makeTableDetails(s,o)}}},Oge=dR});var mH={};x(mH,{UIStrings:()=>Gc,default:()=>Pge});var Gc,zc,mR,Pge,pH=g(()=>{"use strict";d();Ve();$();Dg();A();as();xc();zo();Gc={title:"Minimizes main-thread work",failureTitle:"Minimize main-thread work",description:"Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. [Learn how to minimize main-thread work](https://developer.chrome.com/docs/lighthouse/performance/mainthread-work-breakdown/)",columnCategory:"Category"},zc=T("core/audits/mainthread-work-breakdown.js",Gc),mR=class e extends E{static{i(this,"MainThreadWorkBreakdown")}static get meta(){return{id:"mainthread-work-breakdown",title:zc(Gc.title),failureTitle:zc(Gc.failureTitle),description:zc(Gc.description),scoreDisplayMode:E.SCORING_MODES.METRIC_SAVINGS,guidanceLevel:1,requiredArtifacts:["Trace","DevtoolsLog","URL","GatherContext","SourceMaps","HostDPR"]}}static get defaultOptions(){return{p10:2017,median:4e3}}static getExecutionTimingsByGroup(t){
|
|
1982
|
-
let n=new Map;for(let r of t){let a=n.get(r.group.id)||0;n.set(r.group.id,a+r.selfTime)}return n}static async audit(t,n){let r=n.settings||{},a=t.Trace,o=0;try{let b=E.makeMetricComputationDataInput(t,n);o=(await ha.request(b,n)).timing}catch(b){
|
|
1983
|
+
let n=new Map;for(let r of t){let a=n.get(r.group.id)||0;n.set(r.group.id,a+r.selfTime)}return n}static async audit(t,n){let r=n.settings||{},a=t.Trace,o=0;try{let b=E.makeMetricComputationDataInput(t,n);o=(await ha.request(b,n)).timing}catch(b){bn.captureException(b,{tags:{audit:this.meta.id},level:"error"}),M.error(this.meta.id,b.message)}let s=await _r.request(a,n),c=r.throttlingMethod==="simulate"?r.throttling.cpuSlowdownMultiplier:1,l=e.getExecutionTimingsByGroup(s),u=0,m={},p=Array.from(l).map(([b,w])=>{let C=w*c;u+=C;let k=m[b]||0;return m[b]=k+C,{group:b,groupLabel:Ka[b].label,duration:C}}),f=[{key:"groupLabel",valueType:"text",label:zc(Gc.columnCategory)},{key:"duration",valueType:"ms",granularity:1,label:zc(D.columnTimeSpent)}];p.sort((b,w)=>m[w.group]-m[b.group]);let h=e.makeTableDetails(f,p,{sortedBy:["duration"]});return{score:E.computeLogNormalScore({p10:n.options.p10,median:n.options.median},u),numericValue:u,numericUnit:"millisecond",displayValue:zc(D.seconds,{timeInMs:u}),
|
|
1983
1984
|
details:h,metricSavings:{TBT:o}}}},Pge=mR});var fH=ve((lKe,Qg)=>{d();var ps=(fo(),kG(fD));if(ps&&ps.default){Qg.exports=ps.default;for(let e in ps)Qg.exports[e]=ps[e]}else ps&&(Qg.exports=ps)});var yH=ve((dKe,e1)=>{d();var gH=gH||function(e){return Buffer.from(e).toString("base64")};function Lge(e){var t=this,n=Math.round,r=Math.floor,a=new Array(64),o=new Array(64),s=new Array(64),c=new Array(64),l,u,m,p,f=new Array(65535),h=new Array(65535),y=new Array(64),b=new Array(64),w=[],C=0,k=7,R=new Array(64),S=new Array(64),_=new Array(64),q=new Array(256),F=new Array(2048),G,K=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],ne=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],he=[0,1,2,3,4,5,6,7,8,9,10,11],Ge=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],ue=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,
|
|
1984
1985
|
147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],Tt=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],le=[0,1,2,3,4,5,6,7,8,9,10,11],je=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],St=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];function gt(U){for(var de=[16,11,10,16,24,40,51,61,12,
|
|
1985
1986
|
12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],xe=0;xe<64;xe++){var ye=r((de[xe]*U+50)/100);ye<1?ye=1:ye>255&&(ye=255),a[K[xe]]=ye}for(var Pe=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],Fe=0;Fe<64;Fe++){var rt=r((Pe[Fe]*U+50)/100);rt<1?rt=1:rt>255&&(rt=255),o[K[Fe]]=rt}for(var at=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],Pt=0,Ct=0;Ct<8;Ct++)for(var V=0;V<8;V++)s[Pt]=1/(a[K[Pt]]*at[Ct]*at[V]*8),c[Pt]=1/(o[K[Pt]]*at[Ct]*at[V]*8),Pt++}i(gt,"initQuantTables");function We(U,de){for(var xe=0,ye=0,Pe=new Array,Fe=1;Fe<=16;Fe++){for(var rt=1;rt<=U[Fe];rt++)Pe[de[ye]]=[],Pe[de[ye]][0]=xe,Pe[de[ye]][1]=Fe,ye++,xe++;xe*=2}return Pe}i(We,"computeHuffmanTbl");function Ot(){l=We(ne,he),u=We(Tt,
|
|
@@ -2007,7 +2008,7 @@ pR.requestMemoryAllocation(c);var l={width:o.width,height:o.height,exifBuffer:o.
|
|
|
2007
2008
|
function(){return e},"getImage"),getParsedImage:i(function(){return c||(c=gR.decode(e)),c},"getParsedImage"),getProgress:i(function(){return r},"getProgress"),isProgressInterpolated:i(function(){return a},"isProgressInterpolated"),getPerceptualProgress:i(function(){return o},"getPerceptualProgress"),isPerceptualProgressInterpolated:i(function(){return s},"isPerceptualProgressInterpolated")}}i(yR,"frame");EH.exports={extractFramesFromTimeline:Gge,create:yR}});var SH=ve((TKe,xH)=>{d();var vR;(function(e){"use strict";(function(a){a[a.Grey=1]="Grey",a[a.GreyAlpha=2]="GreyAlpha",a[a.RGB=3]="RGB",a[a.RGBAlpha=4]="RGBAlpha"})(e.Channels||(e.Channels={}));var t=e.Channels;function n(a,o,s,c,l,u,m){if(s===void 0&&(s=8),c===void 0&&(c=.01),l===void 0&&(l=.03),u===void 0&&(u=!0),m===void 0&&(m=8),a.width!==o.width||a.height!==o.height)throw new Error("Images have different sizes!");var p=(1<<m)-1,f=Math.pow(c*p,2),h=Math.pow(l*p,2),y=0,b=0,w=0;function C(k,R,S,_){var q,F,G;q=F=G=0;for(var K=0;K<k.length;K++)F+=Math.pow(k[K]-S,2),G+=Math.pow(R[K]-_,2),q+=(k[K]-S)*(R[K]-_);var ne=k.length-1;F/=ne,G/=ne,q/=ne;var he=(2*S*_+f)*(2*q+h),Ge=(Math.pow(S,2)+Math.pow(_,2)+f)*(F+G+h);b+=he/Ge,w+=(2*q+h)/(F+G+h),y++}return i(C,"iteration"),r._iterate(a,o,s,u,C),{ssim:b/y,mcs:w/y}}i(n,"compare"),e.compare=n;var r;(function(a){function o(l,u,m,p,f){for(var h=l.width,y=l.height,b=0;b<y;b+=m)for(var w=0;w<h;w+=m){var C=Math.min(m,h-w),k=Math.min(m,y-b),R=s(l,w,b,C,
|
|
2008
2009
|
k,p),S=s(u,w,b,C,k,p),_=c(R),q=c(S);f(R,S,_,q)}}i(o,"_iterate"),a._iterate=o;function s(l,u,m,p,f,h){for(var y=l.data,b=new Float32Array(new ArrayBuffer(p*f*4)),w=0,C=m+f,k=m;k<C;k++){var R=k*l.width,S=(R+u)*l.channels,_=(R+u+p)*l.channels;switch(l.channels){case 1:for(;S<_;)b[w++]=y[S++];break;case 2:for(;S<_;)b[w++]=y[S++]*(y[S++]/255);break;case 3:if(h)for(;S<_;)b[w++]=y[S++]*.212655+y[S++]*.715158+y[S++]*.072187;else for(;S<_;)b[w++]=y[S++]+y[S++]+y[S++];break;case 4:if(h)for(;S<_;)b[w++]=(y[S++]*.212655+y[S++]*.715158+y[S++]*.072187)*(y[S++]/255);else for(;S<_;)b[w++]=(y[S++]+y[S++]+y[S++])*(y[S++]/255);break}}return b}i(s,"_lumaValuesForWindow");function c(l){for(var u=0,m=0;m<l.length;m++)u+=l[m];return u/l.length}i(c,"_averageLuma")})(r||(r={}))})(vR||(vR={}));xH.exports=vR});var _H=ve((CKe,RH)=>{"use strict";d();var Wge=SH(),Vge=5,$ge=3,Yge=-1,wR=Yge,CH=Vge-wR,Kge=Math.log(($ge-wR)/CH);function kH(e){let t=e/1e3;return CH*Math.exp(Kge*t)+wR}i(kH,"calculateFastModeAllowableChange");function Xge(e,t,n){let r=0,a=0,o=e.getHistogram(),s=t.getHistogram(),c=n.getHistogram();for(let u=0;u<3;u++)for(let m=0;m<256;m++){let p=o[u][m],f=s[u][m],h=c[u][m],y=Math.abs(p-f),b=Math.abs(h-f);a+=Math.min(y,b),r+=b}let l;return a===0&&r===0?l=100:l=Math.floor(a/r*100),l}i(Xge,"calculateFrameProgress");function n1(e,t,n,r,a,o){if(!r){e.forEach(p=>o(p,a(p),!1));return}let s=e[t],c=e[n],l=c.getTimeStamp()-s.getTimeStamp(),u=a(s),m=a(c);if(o(s,u,!1),o(c,m,!1),Math.abs(u-m)<kH(l))for(let p=t+1;p<n;p++)o(e[p],u,!0);else if(n-t>1){let p=Math.floor((t+n)/2);n1(e,t,p,r,a,o),n1(e,p,n,r,a,o)}}i(n1,"calculateProgressBetweenFrames");function Jge(e,t){let n=e[0],r=e[e.length-1];function a(s){return typeof s.getProgress()=="number"?s.getProgress():Xge(s,n,r)}i(a,"getProgress");function o(s,c,l){
|
|
2009
2010
|
return s.setProgress(c,l)}return i(o,"setProgress"),n1(e,0,e.length-1,t&&t.fastMode,a,o),e}i(Jge,"calculateVisualProgress");function bR(e,t){let n={channels:4},r=Object.assign(e.getParsedImage(),n),a=Object.assign(t.getParsedImage(),n);return Wge.compare(r,a).ssim}i(bR,"calculateFrameSimilarity");function Zge(e,t){let n=e[0],r=e[e.length-1],a=bR(n,r);function o(c){if(typeof c.getPerceptualProgress()=="number")return c.getPerceptualProgress();let l=bR(c,r);return Math.max(100*(l-a)/(1-a),0)}i(o,"getProgress");function s(c,l,u){return c.setPerceptualProgress(l,u)}return i(s,"setProgress"),n1(e,0,e.length-1,t&&t.fastMode,o,s),e}i(Zge,"calculatePerceptualProgress");function Qge(e,t){let n=typeof e[0].getProgress()=="number",r=typeof e[0].getPerceptualProgress()=="number",a=n?"getProgress":"getPerceptualProgress",o=t.startTs,s,c;for(let h=0;h<e.length&&!c;h++)e[h][a]()>0&&(c=e[h].getTimeStamp());for(let h=0;h<e.length&&!s;h++)e[h][a]()>=100&&(s=e[h].getTimeStamp());let l=e[0].getTimeStamp(),
|
|
2010
|
-
u=e[0].getProgress(),m=e[0].getPerceptualProgress(),p=c-o,f=c-o;return e.forEach(function(h){if(h.getTimeStamp()>c){let y=h.getTimeStamp()-l;p+=y*(1-u),f+=y*(1-m)}l=h.getTimeStamp(),u=h.getProgress()/100,m=h.getPerceptualProgress()/100}),p=n?p:void 0,f=r?f:void 0,{firstPaintTs:c,visuallyCompleteTs:s,speedIndex:p,perceptualSpeedIndex:f}}i(Qge,"calculateSpeedIndexes");RH.exports={calculateFastModeAllowableChange:kH,calculateFrameSimilarity:bR,calculateVisualProgress:Jge,calculatePerceptualProgress:Zge,calculateSpeedIndexes:Qge}});var DH=ve((_Ke,IH)=>{"use strict";d();var e1e=TH(),ER=_H();function t1e(e,t){let n=ER.calculateSpeedIndexes(e,t),r=Math.floor(t.endTs-t.startTs),a=Math.floor(n.firstPaintTs-t.startTs),o=Math.floor(n.visuallyCompleteTs-t.startTs);return{beginning:t.startTs,end:t.endTs,frames:e,first:a,complete:o,duration:r,speedIndex:n.speedIndex,perceptualSpeedIndex:n.perceptualSpeedIndex}}i(t1e,"calculateValues");var fs={All:"all",pSI:"perceptualSpeedIndex",SI:"speedIndex"};IH.exports=function(e,t){let n=t&&t.include||fs.All;if(!Object.keys(fs).some(r=>fs[r]===n))throw new Error(`Unrecognized include option: ${n}`);return e1e.extractFramesFromTimeline(e,t).then(function(r){let a=r.frames;return(n===fs.All||n===fs.SI)&&ER.calculateVisualProgress(a,t),(n===fs.All||n===fs.pSI)&&ER.calculatePerceptualProgress(a,t),t1e(a,r)})}});var AH,TR,ii,Vm=g(()=>{"use strict";d();AH=
|
|
2011
|
+
u=e[0].getProgress(),m=e[0].getPerceptualProgress(),p=c-o,f=c-o;return e.forEach(function(h){if(h.getTimeStamp()>c){let y=h.getTimeStamp()-l;p+=y*(1-u),f+=y*(1-m)}l=h.getTimeStamp(),u=h.getProgress()/100,m=h.getPerceptualProgress()/100}),p=n?p:void 0,f=r?f:void 0,{firstPaintTs:c,visuallyCompleteTs:s,speedIndex:p,perceptualSpeedIndex:f}}i(Qge,"calculateSpeedIndexes");RH.exports={calculateFastModeAllowableChange:kH,calculateFrameSimilarity:bR,calculateVisualProgress:Jge,calculatePerceptualProgress:Zge,calculateSpeedIndexes:Qge}});var DH=ve((_Ke,IH)=>{"use strict";d();var e1e=TH(),ER=_H();function t1e(e,t){let n=ER.calculateSpeedIndexes(e,t),r=Math.floor(t.endTs-t.startTs),a=Math.floor(n.firstPaintTs-t.startTs),o=Math.floor(n.visuallyCompleteTs-t.startTs);return{beginning:t.startTs,end:t.endTs,frames:e,first:a,complete:o,duration:r,speedIndex:n.speedIndex,perceptualSpeedIndex:n.perceptualSpeedIndex}}i(t1e,"calculateValues");var fs={All:"all",pSI:"perceptualSpeedIndex",SI:"speedIndex"};IH.exports=function(e,t){let n=t&&t.include||fs.All;if(!Object.keys(fs).some(r=>fs[r]===n))throw new Error(`Unrecognized include option: ${n}`);return e1e.extractFramesFromTimeline(e,t).then(function(r){let a=r.frames;return(n===fs.All||n===fs.SI)&&ER.calculateVisualProgress(a,t),(n===fs.All||n===fs.pSI)&&ER.calculatePerceptualProgress(a,t),t1e(a,r)})}});var AH,TR,ii,Vm=g(()=>{"use strict";d();AH=En(DH(),1);Ae();rn();Xt();TR=class{static{i(this,"Speedline")}static async compute_(t,n){return Be.request(t,n).then(r=>{let a=t.traceEvents.slice(),o=r.timestamps.timeOrigin;return(0,AH.default)(a,{timeOrigin:o,fastMode:!0,include:"speedIndex"})}).catch(r=>{throw/No screenshots found in trace/.test(r.message)?new z(z.errors.NO_SCREENSHOTS):r}).then(r=>{if(r.frames.length===0)throw new z(z.errors.NO_SPEEDLINE_FRAMES);if(r.speedIndex===0)throw new z(z.errors.SPEEDINDEX_OF_ZERO);return r})}},ii=Y(TR,null)});var xR,NH,MH=g(()=>{"use strict";d();Ae();Xa();xR=class extends jt{static{i(this,"FirstContentfulPaintAllFrames")}static computeSimulatedMetric(){throw new Error("FCP All Frames not implemented in lantern")}static async computeObservedMetric(t){let{processedNavigation:n}=t;return{timing:n.timings.firstContentfulPaintAllFrames,timestamp:n.timestamps.firstContentfulPaintAllFrames}}},NH=Y(xR,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var SR,Wc,r1=g(()=>{"use strict";d();Ae();Xa();rn();Tm();SR=class extends jt{static{i(this,"LargestContentfulPaint")}static computeSimulatedMetric(t,n){let r=jt.getMetricComputationInput(t);return Wo.request(r,n)}static async computeObservedMetric(t){let{processedNavigation:n}=t;if(n.timings.largestContentfulPaint===void 0)throw new z(z.errors.NO_LCP);return{timing:n.timings.largestContentfulPaint,timestamp:n.timestamps.largestContentfulPaint}}},Wc=Y(SR,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var CR,OH,PH=g(()=>{"use strict";d();Ae();Xa();rn();CR=class extends jt{static{i(this,"LargestContentfulPaintAllFrames")}static async computeSimulatedMetric(){throw new Error("LCP All Frames not implemented in lantern")}static async computeObservedMetric(t){let{processedNavigation:n}=t;if(n.timings.largestContentfulPaintAllFrames===void 0)throw new z(z.errors.NO_LCP_ALL_FRAMES);return{timing:n.timings.largestContentfulPaintAllFrames,timestamp:n.timestamps.largestContentfulPaintAllFrames}}},OH=Y(CR,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var kR,a1,RR=g(()=>{"use strict";d();Jt();Ae();is();Vm();Go();kR=class extends Ft.SpeedIndex{static{i(this,"LanternSpeedIndex")}static async computeMetricWithGraphs(t,n,r){let a=await Dr(t,n);return Promise.resolve(this.compute(a,r)).catch(fa)}static async compute_(t,n){let r=await ii.request(t.trace,n),a=await Zn.request(t,n);return this.computeMetricWithGraphs(t,n,{observedSpeedIndex:r.speedIndex,fcpResult:a})}},a1=Y(kR,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var _R,o1,IR=g(()=>{"use strict";d();Ae();Xa();RR();Vm();_R=class extends jt{static{i(this,"SpeedIndex")}static computeSimulatedMetric(t,n){let r=jt.getMetricComputationInput(t);return a1.request(r,n)}static async computeObservedMetric(t,n){let r=await ii.request(t.trace,n),a=Math.round(r.speedIndex),o=(a+r.beginning)*1e3;return Promise.resolve({timing:a,timestamp:o})}},o1=Y(_R,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var DR,LH,FH=g(()=>{"use strict";d();Jt();Ae();is();Go();DR=class extends Ft.MaxPotentialFID{static{i(this,"LanternMaxPotentialFID")}static async computeMetricWithGraphs(t,n,r){let a=await Dr(t,n);return Promise.resolve(this.compute(a,r)).catch(fa)}static async compute_(t,n){let r=await Zn.request(t,n);return this.computeMetricWithGraphs(t,n,{fcpResult:r})}},LH=Y(DR,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var AR,i1,NR=g(()=>{"use strict";d();Ae();Xa();FH();po();AR=class extends jt{static{i(this,"MaxPotentialFID")}static computeSimulatedMetric(t,n){let r=jt.getMetricComputationInput(t);return LH.request(r,n)}static computeObservedMetric(t){let{firstContentfulPaint:n}=t.processedNavigation.timings,r=Ln.getMainThreadTopLevelEvents(t.processedTrace,n).filter(a=>a.duration>=1);return Promise.resolve({timing:Math.max(...r.map(a=>a.duration),16)})}},i1=Y(AR,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var MR,Vc,s1=g(()=>{"use strict";d();Ae();Xt();Ya();MR=class{static{i(this,"NavigationInsights")}static async compute_(t,n){let{trace:r,settings:a,SourceMaps:o,HostDPR:s}=t,c=await Be.request(r,n),l=await Dn.request({trace:r,settings:a,SourceMaps:o,HostDPR:s},n),u=c.timeOriginEvt.args.data?.navigationId;if(!u)throw new Error("No navigationId found");let m=l.insights.get(u);if(!m)throw new Error("No navigations insights found");return m}},Vc=Y(MR,["trace","settings","SourceMaps","HostDPR"])});var OR,c1,PR=g(()=>{"use strict";d();ca();Ae();Xa();jn();es();s1();Ya();OR=class extends jt{static{i(this,"TimeToFirstByte")}static async computeSimulatedMetric(t,n){let r=await Et.request(t,n),a=await zr.request(t.devtoolsLog,n),o=(await this.computeObservedMetric(t,n)).timing,s=a.serverResponseTimeByOrigin.get(r.parsedURL.securityOrigin);if(s===void 0)throw new Error("No response time for origin");let c=2;r.protocol.startsWith("h3")||(c+=1),r.parsedURL.scheme==="https"&&(c+=1);let l=t.settings.throttling.rttMs*c+s;return{timing:Math.max(o,l)}}static async computeObservedMetric(t,n){let{trace:r,settings:a,SourceMaps:o,HostDPR:s}=t,c=await Dn.request({trace:r,settings:a,SourceMaps:o,HostDPR:s},n),l=await Vc.request({trace:r,settings:a,SourceMaps:o,HostDPR:s},n),u=l.model.LCPBreakdown;if(!(u instanceof Error)&&u.subparts)return{timing:u.subparts.ttfb.range/1e3,timestamp:u.subparts.ttfb.max};if(l.navigation?.args.data?.navigationId){let m=c.data.NetworkRequests.byId.get(l.navigation.args.
|
|
2011
2012
|
data.navigationId);if(!m)throw new Error;let p=Xi(m);if(p===null)throw new Error("cannot calculate ttfb");return{timing:(p-l.navigation.ts)/1e3,timestamp:p}}throw new Error("cannot determine ttfb")}},c1=Y(OR,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var LR,UH,BH=g(()=>{"use strict";d();Ae();rn();r1();os();PR();Hk();s1();LR=class{static{i(this,"LCPBreakdown")}static async compute_(t,n){if(t.settings.throttlingMethod==="simulate"){let u=await Ir.request(t.trace,n),m=u.timings.largestContentfulPaint;if(m===void 0)throw new z(z.errors.NO_LCP);let p=u.timestamps.timeOrigin/1e3,{timing:f}=await c1.request(t,n),h=await Pg.request(t,n);if(!h)return{ttfb:f};let{timing:y}=await Wc.request(t,n),b=y/m,w=(h.networkRequestTime-p)*b,C=Math.max(f,Math.min(w,y)),k=(h.networkEndTime-p)*b,R=Math.max(C,Math.min(k,y));return{ttfb:f,loadDelay:C,loadDuration:R}}let{trace:r,settings:a,SourceMaps:o,HostDPR:s}=t,l=(await Vc.request({trace:r,settings:a,SourceMaps:o,HostDPR:s},n)).model.LCPBreakdown;if(l instanceof Error)throw new z(z.errors.NO_LCP,{},{cause:l});if(!l.subparts)throw new z(z.errors.NO_LCP);return{ttfb:l.subparts.ttfb.range/1e3,loadDelay:l.subparts.loadDelay!==void 0?l.subparts.loadDelay.range/1e3:void 0,loadDuration:l.subparts.loadDuration!==
|
|
2012
2013
|
void 0?l.subparts.loadDuration.range/1e3:void 0,renderDelay:l.subparts.renderDelay.range/1e3}}},UH=Y(LR,["devtoolsLog","gatherContext","settings","simulator","trace","URL","SourceMaps","HostDPR"])});var FR,l1,UR=g(()=>{"use strict";d();Ve();Xt();os();Vm();Mg();MH();r1();PH();Sm();rs();IR();NR();xc();Ae();PR();BH();jp();FR=class e{static{i(this,"TimingSummary")}static async summarize(t,n,r,a,o,s,c,l){let u={trace:t,devtoolsLog:n,gatherContext:r,settings:a,URL:o,SourceMaps:s,HostDPR:c,simulator:null},m=i((ue,Tt)=>ue.request(Tt,l).catch(le=>{Ms&&M.error("lh:computed:TimingSummary",le)}),"requestOrUndefined"),p=await Be.request(t,l),f=await m(Ir,t),h=await ii.request(t,l),y=await m(Ec,u),b=await m(NH,u),w=await m(Wc,u),C=await m(OH,u),k=await m($o,u),R=await m(Cr,t),S=await m(i1,u),_=await m(o1,u),q=await m(ha,u),F=await m(UH,u),G=await m(c1,u),{cumulativeLayoutShift:K,cumulativeLayoutShiftMainFrame:ne}=R||{},he={firstContentfulPaint:y?.timing,firstContentfulPaintTs:y?.timestamp,firstContentfulPaintAllFrames:b?.timing,firstContentfulPaintAllFramesTs:b?.timestamp,largestContentfulPaint:w?.timing,largestContentfulPaintTs:w?.timestamp,largestContentfulPaintAllFrames:C?.timing,largestContentfulPaintAllFramesTs:C?.
|
|
2013
2014
|
timestamp,interactive:k?.timing,interactiveTs:k?.timestamp,speedIndex:_?.timing,speedIndexTs:_?.timestamp,totalBlockingTime:q?.timing,maxPotentialFID:S?.timing,cumulativeLayoutShift:K,cumulativeLayoutShiftMainFrame:ne,lcpLoadDelay:F?.loadDelay,lcpLoadDuration:F?.loadDuration,lcpRenderDelay:F?.renderDelay,timeToFirstByte:G?.timing,timeToFirstByteTs:G?.timestamp,observedTimeOrigin:p.timings.timeOrigin,observedTimeOriginTs:p.timestamps.timeOrigin,observedNavigationStart:f?.timings.timeOrigin,observedNavigationStartTs:f?.timestamps.timeOrigin,observedFirstPaint:f?.timings.firstPaint,observedFirstPaintTs:f?.timestamps.firstPaint,observedFirstContentfulPaint:f?.timings.firstContentfulPaint,observedFirstContentfulPaintTs:f?.timestamps.firstContentfulPaint,observedFirstContentfulPaintAllFrames:f?.timings.firstContentfulPaintAllFrames,observedFirstContentfulPaintAllFramesTs:f?.timestamps.firstContentfulPaintAllFrames,observedLargestContentfulPaint:f?.timings.largestContentfulPaint,observedLargestContentfulPaintTs:f?.
|
|
@@ -2043,7 +2044,7 @@ timeInMs,pessimisticFCP:p.pessimisticEstimate.timeInMs,roughEstimateOfTTI:f.timi
|
|
|
2043
2044
|
"No navigation requests found");return r}static async audit(t,n){let r=n.settings,a=t.Trace,o=t.DevtoolsLog,s=t.GatherContext,{URL:c,HostDPR:l,SourceMaps:u}=t,m=await Be.request(a,n),p=await Re.request(o,n),f=e.getDocumentRequestChain(p,m),h={trace:a,devtoolsLog:o,gatherContext:s,settings:r,URL:c,SourceMaps:u,HostDPR:l,simulator:null},y=await Vo.request(h,n),b=new Map;for(let[S,_]of y.pessimisticEstimate.nodeTimings.entries())S.type==="network"&&b.set(S.request.requestId,_);let w=0,C=[];for(let S=0;S<f.length&&!(f.length<2);S++){let _=f[S],q=f[S+1]||_,F=b.get(_.requestId),G=b.get(q.requestId);if(!F||!G)throw new Error("Could not find redirects in graph");let K=G.startTime-F.startTime,ne=q.networkRequestTime-_.networkRequestTime,he=r.throttlingMethod==="simulate"?K:ne;w+=he,C.push({url:_.url,wastedMs:he})}let k=[{key:"url",valueType:"url",label:Jm(D.columnURL)},{key:"wastedMs",valueType:"timespanMs",label:Jm(D.columnTimeSpent)}],R=E.makeOpportunityDetails(k,C,{overallSavingsMs:w});return{
|
|
2044
2045
|
score:C.length?0:1,numericValue:w,numericUnit:"millisecond",displayValue:w?Jm(D.displayValueMsSavings,{wastedMs:w}):"",details:R,metricSavings:{LCP:w,FCP:w}}}},R1e=v_});var b_,Sq,Cq=g(()=>{"use strict";d();$m();Ae();Mt();qr();un();b_=class e{static{i(this,"ResourceSummary")}static determineResourceType(t){return t.resourceType&&{Stylesheet:"stylesheet",Image:"image",Media:"media",Font:"font",Script:"script",Document:"document"}[t.resourceType]||"other"}static summarize(t,n,r){let a={stylesheet:{count:0,resourceSize:0,transferSize:0},image:{count:0,resourceSize:0,transferSize:0},media:{count:0,resourceSize:0,transferSize:0},font:{count:0,resourceSize:0,transferSize:0},script:{count:0,resourceSize:0,transferSize:0},document:{count:0,resourceSize:0,transferSize:0},other:{count:0,resourceSize:0,transferSize:0},total:{count:0,resourceSize:0,transferSize:0},"third-party":{count:0,resourceSize:0,transferSize:0}},o=r.firstParty?.domains.map(s=>`*.${s}`)||[`*.${Ce.getRootDomain(n.finalDisplayedUrl)}`];return t.filter(s=>!(this.determineResourceType(s)==="other"&&s.url.endsWith("/favicon.ico")||lt.isNonNetworkRequest(s))).forEach(s=>{let c=this.determineResourceType(
|
|
2045
2046
|
s);a[c].count++,a[c].resourceSize+=s.resourceSize,a[c].transferSize+=s.transferSize,a.total.count++,a.total.resourceSize+=s.resourceSize,a.total.transferSize+=s.transferSize,o.some(u=>{let m=new URL(s.url);return u.startsWith("*.")?m.hostname.endsWith(u.slice(2)):m.hostname===u})||(a["third-party"].count++,a["third-party"].resourceSize+=s.resourceSize,a["third-party"].transferSize+=s.transferSize)}),a}static async compute_(t,n){let r=await Re.request(t.devtoolsLog,n),a=await si.request({URL:t.URL,devtoolsLog:t.devtoolsLog},n);return e.summarize(r,t.URL,a)}},Sq=Y(b_,["URL","devtoolsLog"])});var kq={};x(kq,{default:()=>_1e});var Pr,w_,_1e,Rq=g(()=>{"use strict";d();$();Cq();A();Pr=T("core/audits/resource-summary.js"),w_=class extends E{static{i(this,"ResourceSummary")}static get meta(){return{id:"resource-summary",title:"Resources Summary",description:"Aggregates all network requests and groups them by type",scoreDisplayMode:E.SCORING_MODES.INFORMATIVE,requiredArtifacts:["DevtoolsLog","URL"]}}static async audit(t,n){let r=t.DevtoolsLog,a=await Sq.request({devtoolsLog:r,URL:t.URL},n),o=[{key:"label",valueType:"text",label:Pr(D.columnResourceType)},{key:"requestCount",valueType:"numeric",label:Pr(D.columnRequests)},{key:"transferSize",valueType:"bytes",label:Pr(D.columnTransferSize)}],s={total:Pr(D.totalResourceType),document:Pr(D.documentResourceType),script:Pr(D.scriptResourceType),stylesheet:Pr(D.stylesheetResourceType),image:Pr(D.imageResourceType),media:Pr(D.mediaResourceType),font:Pr(D.fontResourceType),other:Pr(D.otherResourceType),"third-party":Pr(D.thirdPartyResourceType)},
|
|
2046
|
-
l=Object.keys(a).map(h=>({resourceType:h,label:s[h],requestCount:a[h].count,transferSize:a[h].transferSize})),u=l.find(h=>h.resourceType==="third-party")||[],p=l.filter(h=>h.resourceType!=="third-party").sort((h,y)=>y.transferSize-h.transferSize).concat(u);return{details:E.makeTableDetails(o,p),score:null}}},_1e=w_});var Iq={};x(Iq,{default:()=>D1e});var _q,I1e,E_,D1e,Dq=g(()=>{"use strict";d();_q=
|
|
2047
|
+
l=Object.keys(a).map(h=>({resourceType:h,label:s[h],requestCount:a[h].count,transferSize:a[h].transferSize})),u=l.find(h=>h.resourceType==="third-party")||[],p=l.filter(h=>h.resourceType!=="third-party").sort((h,y)=>y.transferSize-h.transferSize).concat(u);return{details:E.makeTableDetails(o,p),score:null}}},_1e=w_});var Iq={};x(Iq,{default:()=>D1e});var _q,I1e,E_,D1e,Dq=g(()=>{"use strict";d();_q=En(hR(),1);$();rn();Vm();I1e=8,E_=class e extends E{static{i(this,"ScreenshotThumbnails")}static get meta(){return{id:"screenshot-thumbnails",scoreDisplayMode:E.SCORING_MODES.INFORMATIVE,title:"Screenshot Thumbnails",description:"This is what the load of your site looked like.",requiredArtifacts:["Trace","GatherContext"]}}static scaleImageToThumbnail(t,n){let r=t.width/n,a=Math.floor(t.height/r),o=new Uint8Array(n*a*4);for(let s=0;s<n;s++)for(let c=0;c<a;c++){let l=Math.floor(s*r),m=(Math.floor(c*r)*t.width+l)*4,p=(c*n+s)*4;o[p]=t.data[m],o[p+1]=t.data[m+1],o[p+2]=t.data[m+2],o[p+3]=t.data[m+3]}return{width:n,height:a,data:o}}static async _audit(t,n){let r=t.Trace,a=new Map,o=await ii.request(r,n),s=n.options.minimumTimelineDuration||3e3,c=n.options.numberOfThumbnails||I1e,l=n.options.thumbnailWidth||null,u=[],m=o.frames.filter(h=>!h.isProgressInterpolated()),p=o.complete||Math.max(...o.frames.map(h=>h.getTimeStamp()-
|
|
2047
2048
|
o.beginning)),f=Math.max(p,s);if(!m.length||!Number.isFinite(f))throw new z(z.errors.INVALID_SPEEDLINE);for(let h=1;h<=c;h++){let y=o.beginning+f*h/c,b=null;h===c?b=m[m.length-1]:m.forEach(k=>{k.getTimeStamp()<=y&&(b=k)});let w,C=a.get(b);if(C)w=C;else if(l!==null){let k=b.getParsedImage(),R=e.scaleImageToThumbnail(k,l);w=_q.default.encode(R,90).data.toString("base64"),a.set(b,w)}else w=b.getImage().toString("base64"),a.set(b,w);u.push({timing:Math.round(y-o.beginning),timestamp:y*1e3,data:`data:image/jpeg;base64,${w}`})}return{score:1,details:{type:"filmstrip",scale:f,items:u}}}static async audit(t,n){try{return await this._audit(t,n)}catch(r){if(new Set([z.errors.NO_SCREENSHOTS.code,z.errors.SPEEDINDEX_OF_ZERO.code,z.errors.NO_SPEEDLINE_FRAMES.code,z.errors.INVALID_SPEEDLINE.code]).has(r.code)&&t.GatherContext.gatherMode==="timespan")return{notApplicable:!0,score:1};throw r}}},D1e=E_});var A1e,N1e,T_,x_,Aq=g(()=>{"use strict";d();Ae();Yo();A1e=.1,N1e=1024*.5,T_=class e{static{i(this,"ModuleDuplication")}static normalizeSource(t){t=t.replace(/\?$/,"");let n=t.lastIndexOf("node_modules");return n!==-1&&(t=t.substring(n)),t}static _shouldIgnoreSource(t){return!!(t.includes("webpack/bootstrap")||t.includes("(webpack)/buildin")||t.includes("external "))}static _normalizeAggregatedData(t){for(let[n,r]of t.entries()){let a=r;if(a.sort((o,s)=>s.resourceSize-o.resourceSize),a.length>1){let o=a[0].resourceSize;a=a.filter(s=>s.resourceSize/o>=A1e)}a=a.filter(o=>o.resourceSize>=N1e),a.length>1?t.set(n,a):t.delete(n)}}static async compute_(t,n){let r=await er.request(t,n),a=new Map;for(let{rawMap:s,sizes:c}of r){if("errorMessage"in c)continue;let l=[];a.set(s,l);for(let u=0;u<s.sources.length;u++){if(this._shouldIgnoreSource(s.sources[u]))continue;let m=(s.sourceRoot||"")+s.sources[u],p=c.files[m];l.push({source:e.normalizeSource(s.sources[u]),resourceSize:p})}}let o=new Map;for(let{
|
|
2048
2049
|
rawMap:s,script:c}of r){let l=a.get(s);if(l)for(let u of l){let m=o.get(u.source);m||(m=[],o.set(u.source,m)),m.push({scriptId:c.scriptId,scriptUrl:c.url,resourceSize:u.resourceSize})}}return this._normalizeAggregatedData(o),o}},x_=Y(T_,["Scripts","SourceMaps"])});var Nq={};x(Nq,{default:()=>M1e});var S_,M1e,Mq=g(()=>{"use strict";d();$();Yo();Mt();Kk();Aq();Rc();S_=class e extends E{static{i(this,"ScriptTreemapDataAudit")}static get meta(){return{id:"script-treemap-data",scoreDisplayMode:E.SCORING_MODES.INFORMATIVE,title:"Script Treemap Data",description:"Used for treemap app",requiredArtifacts:["Trace","DevtoolsLog","SourceMaps","Scripts","JsUsage","URL","SourceMaps"]}}static makeScriptNode(t,n,r){function a(u){return{name:u,resourceBytes:0,encodedBytes:void 0}}i(a,"newNode");let o=a(n);function s(u,m){let p=o;o.resourceBytes+=m.resourceBytes,m.unusedBytes&&(o.unusedBytes=(o.unusedBytes||0)+m.unusedBytes);let f=u.replace(n,"").split(/\/+/);f.forEach((h,y)=>{if(h.length===0)return;let b=y===f.length-1,w=p.children&&p.children.find(C=>C.name===h);w||(w=a(h),p.children=p.children||[],p.children.push(w)),p=w,p.resourceBytes+=m.resourceBytes,m.unusedBytes&&(p.unusedBytes=(p.unusedBytes||0)+m.unusedBytes),b&&m.duplicatedNormalizedModuleName!==void 0&&
|
|
2049
2050
|
(p.duplicatedNormalizedModuleName=m.duplicatedNormalizedModuleName)})}i(s,"addAllNodesInSourcePath");for(let[u,m]of Object.entries(r))s(u,m);function c(u){for(;u.children&&u.children.length===1;){let m=u.children[0];u.name+="/"+m.name,m.duplicatedNormalizedModuleName&&(u.duplicatedNormalizedModuleName=m.duplicatedNormalizedModuleName),u.children=m.children}if(u.children)for(let m of u.children)c(m)}if(i(c,"collapseAll"),c(o),!o.name)return{...o,name:t,children:o.children};let l={...o};return l.name=t,l.children=[o],l}static async makeNodes(t,n){let r=t.DevtoolsLog,a=await Re.request(r,n),o=[],s=new Map,c=await er.request(t,n),l=await x_.request(t,n);for(let u of t.Scripts){if(u.scriptLanguage!=="JavaScript")continue;let m=u.url,p=c.find(b=>u.scriptId===b.script.scriptId)??null,f=t.JsUsage[u.scriptId],h=f?await Hg.request({scriptId:u.scriptId,scriptCoverage:f,bundle:p},n):void 0,y;if(p&&!("errorMessage"in p.sizes)){let b={};for(let w of Object.keys(p.sizes.files)){let C={resourceBytes:p.
|
|
@@ -2051,34 +2052,34 @@ sizes.files[w]};h?.sourcesWastedBytes&&(C.unusedBytes=h.sourcesWastedBytes[w]);l
|
|
|
2051
2052
|
a,u);if(b){let w=b.transferSize-b.responseHeadersTransferSize;y.encodedBytes=w}else y.encodedBytes=y.resourceBytes}}for(let[u,m]of s){let p=a.find(f=>f.resourceType==="Document"&&f.frameId===u);if(p){let f=m.resourceBytes/p.resourceSize,h=p.transferSize-p.responseHeadersTransferSize;m.encodedBytes=Math.floor(h*f)}else m.encodedBytes=m.resourceBytes}return o}static async audit(t,n){return{score:1,details:{type:"treemap-data",nodes:await e.makeNodes(t,n)}}}},M1e=S_});var Oq={};x(Oq,{UIStrings:()=>ba,default:()=>O1e});var ba,ui,C_,O1e,Pq=g(()=>{"use strict";d();$();un();jn();A();ba={title:"Document has a valid `rel=canonical`",failureTitle:"Document does not have a valid `rel=canonical`",description:"Canonical links suggest which URL to show in search results. [Learn more about canonical links](https://developer.chrome.com/docs/lighthouse/seo/canonical/).",explanationConflict:"Multiple conflicting URLs ({urlList})",explanationInvalid:"Invalid URL ({url})",explanationRelative:"Is not an absolute URL ({url})",explanationPointsElsewhere:"Points to another `hreflang` location ({url})",explanationRoot:"Points to the domain's root URL (the homepage), instead of an equivalent page of content"},ui=T("core/audits/seo/canonical.js",ba),C_=class e extends E{static{i(this,"Canonical")}static get meta(){return{id:"canonical",title:ui(ba.title),failureTitle:ui(ba.failureTitle),description:ui(ba.description),supportedModes:["navigation"],requiredArtifacts:["LinkEl\
|
|
2052
2053
|
ements","URL","DevtoolsLog"]}}static collectCanonicalURLs(t){let n=new Set,r=new Set,a,o;for(let s of t)if(s.source!=="body")if(s.rel==="canonical"){if(!s.hrefRaw)continue;s.href?Ce.isValid(s.hrefRaw)?n.add(s.href):o=s:a=s}else s.rel==="alternate"&&s.href&&s.hreflang&&r.add(s.href);return{uniqueCanonicalURLs:n,hreflangURLs:r,invalidCanonicalLink:a,relativeCanonicallink:o}}static findInvalidCanonicalURLReason(t){let{uniqueCanonicalURLs:n,invalidCanonicalLink:r,relativeCanonicallink:a}=t;if(r)return{score:0,explanation:ui(ba.explanationInvalid,{url:r.hrefRaw})};if(a)return{score:0,explanation:ui(ba.explanationRelative,{url:a.hrefRaw})};let o=Array.from(n);if(o.length===0)return{score:1,notApplicable:!0};if(o.length>1)return{score:0,explanation:ui(ba.explanationConflict,{urlList:o.join(", ")})}}static findCommonCanonicalURLMistakes(t,n,r){let{hreflangURLs:a}=t;if(a.has(r.href)&&a.has(n.href)&&r.href!==n.href)return{score:0,explanation:ui(ba.explanationPointsElsewhere,{url:r.href})};if(n.origin===
|
|
2053
2054
|
r.origin&&n.pathname==="/"&&r.pathname!=="/")return{score:0,explanation:ui(ba.explanationRoot)}}static async audit(t,n){let r=t.DevtoolsLog,a=await Et.request({devtoolsLog:r,URL:t.URL},n),o=new URL(a.url),s=e.collectCanonicalURLs(t.LinkElements),c=e.findInvalidCanonicalURLReason(s);if(c)return c;let l=new URL([...s.uniqueCanonicalURLs][0]),u=e.findCommonCanonicalURLMistakes(s,l,o);return u||{score:1}}},O1e=C_});var Lq={};x(Lq,{UIStrings:()=>Yc,default:()=>L1e});var Yc,P1e,p1,k_,L1e,Fq=g(()=>{"use strict";d();$();A();Yc={title:"Links are crawlable",failureTitle:"Links are not crawlable",description:"Search engines may use `href` attributes on links to crawl websites. Ensure that the `href` attribute of anchor elements links to an appropriate destination, so more pages of the site can be discovered. [Learn how to make links crawlable](https://support.google.com/webmasters/answer/9112205)",columnFailingLink:"Uncrawlable Link"},P1e=["target","download","ping","rel","hreflang","type","referrerpolicy"],p1=T("core/audits/seo/crawlable-anchors.js",Yc),k_=class extends E{static{i(this,"CrawlableAnchors")}static get meta(){return{id:"crawlable-anchors",title:p1(Yc.title),failureTitle:p1(Yc.failureTitle),description:p1(Yc.description),requiredArtifacts:["AnchorElements","URL"]}}static audit({AnchorElements:t,URL:n}){let r=t.filter(({rawHref:s,name:c="",role:l="",id:u,href:m,attributeNames:p=[],listeners:f=[]})=>{
|
|
2054
|
-
if(s=s.replace(/\s/g,""),c=c.trim(),l=l.trim(),l.length>0||s.startsWith("mailto:")||s===""&&u)return;let h=/javascript:void(\(|)0(\)|)/;if(s.startsWith("file:"))return!0;if(!(c.length>0)){if(!p.includes("href")&&P1e.every(y=>!p.includes(y)))return!!f.length;if(m===""||h.test(s))return!0;try{new URL(s,n.finalDisplayedUrl)}catch{return!0}}}),a=[{key:"node",valueType:"node",label:p1(Yc.columnFailingLink)}],o=r.map(s=>({node:E.makeNodeItem(s.node)}));return{score:+(r.length===0),details:E.makeTableDetails(a,o)}}},L1e=k_});function Uq(e){let t=F1e;for(;e.length<3;)e+="`";for(let n=0;n<=e.length-1;n++){let r=e.charCodeAt(n)-96;if(t=t[r],!t)return!1}return!0}var F1e,Bq=g(()=>{"use strict";d();F1e=[,[,[1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,,1,1,1,1,1,1,,1],[1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,,1,1,1,,1,1,,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1],[,1,1,,1,1,1,1,1,1,1,,1,,1,1,1,1,1,1,1,1,,1,1,1,1],[1,1,1,1,1,1,,,,,,1,1,1,1,,,1,1,1,,1,,1,,1,1],[1,1,1,,1,1,,1,1,1,,1,,,1,1,1,,,1,1,1,,,,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,,,,,1,1,1,,1,1,1,1,1,1,,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1],[,1,,,,,,1,,1,,,,,1,,1
|
|
2055
|
-
1,1,1,,1,,1,,1,,,,,,1],[1,,1,1,1,1,,,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1],[1,,1,,1,,,,,1,,1,1,1,1,1,,,,1,1,1,1],[,1,1,1,1,1,,1,1,1,,1,,1,1,1,,,1,1,1,1,1,1,1,1],[,,1,,,1,,1,,,,1,1,1,,,,,,,,,,,1],[1,1,1,1,1,1,,1,1,1,,1,1,,1,1,1,1,1,1,1,1,,,1,1,1],[1,1,1,1,1,,,1,,,1,,,1,1,1,,,,,1,,,,,,1]],[,[1,1,1,1,1,1,1,1,1,1,1,,1,,1,1,1,,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1],[1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[
|
|
2056
|
-
1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1],[,1,1
|
|
2057
|
-
1],[,1,,1,1,1,1,1,1,1,1,,,1,1,1,,,1,1,,,,,,1,1],[1,1,1,,,,,1,,,,1,1,,1,,,,,,1,,,,,1],[,1,,,1,,,1,,,,,,1],[,1,,1,,,,1,,,,1],[1,,1,1,1,,1,1,1,,1,1,1,1,1,1,1,1,1,,1,,,1,1,1,1],[,1,1,1,1,1,,,1,,,1,,1,1,,1,,1,,,,,1,,1],[,1,,,,1,,,1,1,,1,,1,1,1,1,,1,1,,,1,,,1],[,1,1,,,,,,1,,,,1,1,1,1,,1,1,1,1,1,1,,1,1,1],[,1,,1,1,1,,,1,1,1,1,1,1,,1
|
|
2058
|
-
1,1,,,,1],[1,,,1,1,1,1,1,1,1,,1,1,1,1,,1,1,1,1,,,1,,,,1],,[,1,1,1,1,1,,1,1,1,,1,1,,1,1,,,1,1,1,1,,1,1,,1],[,1,,,1,,,1,,1,,,1,1,1,1,,,1,1,,1,1,1,1],[,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1],[,1,1,1,1,1,1,,,1,1,1,1,1,1,1,,,1,,,1,,1],[,1
|
|
2059
|
-
1,1,,,1,,1,,1,,1,,1,1,1,1
|
|
2060
|
-
,,,1,,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,,,1],[,1,1,1,1,,1,1,1,1,1,1,1,1,,,,1,,1,,,1,1,1,1,1],[,,,,,,,,,,,1,,,,,,,,,1,,,,1],[,1,1,,1,1,,1,,,,1,1,,1,1,,,1,,1,1,,1],[,1,,1,,1,,,1,,,1,1,,1,1,,,1,1,1],[,1,1,1,1,1,,1,1
|
|
2061
|
-
,,,,,,,,,,,,,,1,,,,,1,,,,,,1],[1,1,,,1,,,1,1,1,,,,1],,[,,,,,,,,,,,,,1,,,,,,,,,,1],[,,,,,,,,,1,,,,,,,,,1,,,,,,,1],[1,1,1,,1,,1,1,1,1,1,1,1,1,,1,,,1,,1,,,1,1],[,,,,,,,,,1],[,1,,,,1
|
|
2062
|
-
1,1],[,1,,,,1,,,,1,,,1,,1,1,,,1,1
|
|
2063
|
-
,1,1,1,1,1,1,,1,1,1,1,,1,,1],[1,,,,1,,,,,,,,,,1],[1,,,,,,,,,1],,[,1,,,,1,,,,,,,,,,,,,,,,,,,,1]],[,[1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,1,1,1,,,,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,,1,1,,1,1,1,,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,,1,1,1,1,1,1,1,1,1,1,,,1,1,1,,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
|
2064
|
-
1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,,1,,1,1,1,1],[1,1,1,1,,1,1,1,,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1],[,,,1,1,1,1,,1,,,,1,1,,,1,1,,1],[,1,1,,1,,,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,,,,,,,,,,,,1],[1,1,1,,,,,1,1,1,,1,1,1,1
|
|
2065
|
-
1,1,1,1,1,1,,1,,1,,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1],[1,1,1,,1,,,1,1,1,1,,1,1,1,1,,,,1,,1,,1,,,1],[1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,,,1,,,,,,,,,1,1,,,,,,,,,1]
|
|
2066
|
-
1,1
|
|
2067
|
-
1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,,1],[1,1,1,1,1,,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,,1,1,1,1,1,1,1,1,1,1],[,1,,,1,,,,,,,,1,,,,,,1,,,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,,1,,1,1,1,1,1,1,,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1],[,1,1,,1,,,,1,1,1,,1,1,1,1,,,1,1,1,1,,,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,,1],[1,1,,1,,1,,1,,1,1,1,1,1,1,1,,1,1,,,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1],[1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,,1,1],[,1,1,,,,,1,1,1,,,1,,1,1,,,,1,,1,,,1,1],[,,,,,,,1,,,,1,1,1,1,1,,1
|
|
2068
|
-
|
|
2069
|
-
1,1,,1,,1,,,,,1],[,1,,1,,,,,,1,,,,,1,1,,,,,1,1],[,1,1,,1,1,1,1,1,1,1,1,1,1,,1,1,1,,1,,,1,,1,1,1],[,1,,,,1,,,,,,,1],[,1,,,1,,,1,,1,,1,1,,1,,,,,1,,1,,,,1,1],[,1,,,1,,,1,1,1
|
|
2070
|
-
1,,1,1],[,1,,1,,1,,,1,,,,,1,,,,,,1,1],[,1,,1,,,,,1,,,,1,,1,1,1,1,1,1,1,1,,1],[,1,,,,,,,,,,,,,,,1]],[,[,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,,1,,,,,,,,,1,1,,,,1],[,,,,,,1],[,,1],[,1,1,,,1,,1,,1,1,,1,1,1,,,,1,1,1,,,,,1],,[,1,,,,1,,,,,,1,,,1,,,,1,1,,1],[,,,,,,,1,,,,,,,,,1],[,1
|
|
2071
|
-
1
|
|
2072
|
-
|
|
2073
|
-
1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1],[,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,,1,1,1,1,1,1,1,1],[,1,,,1,1
|
|
2074
|
-
|
|
2075
|
-
,,,1],[,1,1,,1,,,,1,,,,1,1,1,,,,1,,1,1,1,,1,1],,[,1,1,,,,,,,,,,,,,1,,,1,,,,,1],[,1,,,,,,,,,,,,,,,,,,,,,,1],[,1,1,,,,,,,1,,,,1
|
|
2076
|
-
[,1,,1,1,1,,1,,,1,1,1,,,1,,,1,,1,,,1],[,,1,,,,,,,,,1,,1,,,,,1,,1],[,1,1,,,,,,,,1,1,1,,,,,,,,1,,,,,1],[,,,,,,,,1,,,,,1,,,1]],[,[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,,1,1,,,1,1,1,1,1,1,1,1,,,,,,,,,1,1],[,,,,,,,,1,,,,1,,1,,1],[,1,,,1,1,,1,,,,1,,,,,,,,1],[,1,,1,,1,,,,1,1,,1,,1,,,,1,1,1,1,1,,,1],,[,1,,,,,,,,1,,,1,1,,,1,,1,1,,1,,1],[,1,,,1,,,,,,,,1,,,,,,,1],[1,1,,,,,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,,1,1,1],,[,1,,,,,,1
|
|
2077
|
-
1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,1,,1,,,,,,,1,,,,,,,,1
|
|
2055
|
+
if(s=s.replace(/\s/g,""),c=c.trim(),l=l.trim(),l.length>0||s.startsWith("mailto:")||s===""&&u)return;let h=/javascript:void(\(|)0(\)|)/;if(s.startsWith("file:"))return!0;if(!(c.length>0)){if(!p.includes("href")&&P1e.every(y=>!p.includes(y)))return!!f.length;if(m===""||h.test(s))return!0;try{new URL(s,n.finalDisplayedUrl)}catch{return!0}}}),a=[{key:"node",valueType:"node",label:p1(Yc.columnFailingLink)}],o=r.map(s=>({node:E.makeNodeItem(s.node)}));return{score:+(r.length===0),details:E.makeTableDetails(a,o)}}},L1e=k_});function Uq(e){let t=F1e;for(;e.length<3;)e+="`";for(let n=0;n<=e.length-1;n++){let r=e.charCodeAt(n)-96;if(t=t[r],!t)return!1}return!0}var F1e,Bq=g(()=>{"use strict";d();F1e=[,[,[1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,,1,1,1,1,1,1,,1],[1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,,1,1,1,,1,1,,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1],[,1,1,,1,1,1,1,1,1,1,,1,,1,1,1,1,1,1,1,1,,1,1,1,1],[1,1,1,1,1,1,,,,,,1,1,1,1,,,1,1,1,,1,,1,,1,1],[1,1,1,,1,1,,1,1,1,,1,,,1,1,1,,,1,1,1,,,,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,,,,,1,1,1,,1,1,1,1,1,1,,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1],[,1,,,,,,1,,1,,,,,1,,1,,,1,1,1,,1,,,1],[1,,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,1,1,1,1,,,1,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,1,1,,,1,,,,
|
|
2056
|
+
1,1,1,1,,1,,1,,1,,,,,,1],[1,,1,1,1,1,,,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1],[1,,1,,1,,,,,1,,1,1,1,1,1,,,,1,1,1,1],[,1,1,1,1,1,,1,1,1,,1,,1,1,1,,,1,1,1,1,1,1,1,1],[,,1,,,1,,1,,,,1,1,1,,,,,,,,,,,1],[1,1,1,1,1,1,,1,1,1,,1,1,,1,1,1,1,1,1,1,1,,,1,1,1],[1,1,1,1,1,,,1,,,1,,,1,1,1,,,,,1,,,,,,1]],[,[1,1,1,1,1,1,1,1,1,1,1,,1,,1,1,1,,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1],[1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[
|
|
2057
|
+
,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1],[,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1],[,1,1,1,1,1,,1,1,1,1,1,1,,1,1,,1,1,1,1,1,1,1,,1],[,1,,1,1,1,,1,1,,1,,1,1,1,1,
|
|
2058
|
+
1,1,1,1],[,1,,1,1,1,1,1,1,1,1,,,1,1,1,,,1,1,,,,,,1,1],[1,1,1,,,,,1,,,,1,1,,1,,,,,,1,,,,,1],[,1,,,1,,,1,,,,,,1],[,1,,1,,,,1,,,,1],[1,,1,1,1,,1,1,1,,1,1,1,1,1,1,1,1,1,,1,,,1,1,1,1],[,1,1,1,1,1,,,1,,,1,,1,1,,1,,1,,,,,1,,1],[,1,,,,1,,,1,1,,1,,1,1,1,1,,1,1,,,1,,,1],[,1,1,,,,,,1,,,,1,1,1,1,,1,1,1,1,1,1,,1,1,1],[,1,,1,1,1,,,1,1,1,1,1,1,,1,,,,1,1,1,,1,,1],[,1,,1,,1,,1,,1,,1,1,1,1,1,,,1,1,1],[,1,1,1,,,,1,1,1,,1,1,,,1,1,1,1,1,1,1,,1,1],[1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1],[,1,1,1,,1,1,1,,1,,,,,1,1,1,,,1,,1,,,1,1],[,,,,1,,,,,,,,,,,,,,,,,1],[1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,1,1,1,,1,1,,,,1,1,1,1,1,,,1,1,1,,,,1,1],[1,1,1,1,,,,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1],[1,,,,,,,1,,,,,,,1],[,1,1,,1,1,,1,,,,,,,,,,,,,1],[,,,,,,,,1],[1,1,1,,,,,,,,,,,,,1],[,,,,,,,,1,,,1,,,1,1,,,,,1]],[,[1,1,,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,,1,1,1,1,1,1],[,1,1,,1,1,1,1,,1,1,,1,1,1,1,1,1,1,,1,1,1,1,,1],[,,,1,,,,,,,,,,,,,,,1],[,1,,,
|
|
2059
|
+
1,1,,1,,1,1,,,,1,1,,,1,1,,,,1],[1,,,1,1,1,1,1,1,1,,1,1,1,1,,1,1,1,1,,,1,,,,1],,[,1,1,1,1,1,,1,1,1,,1,1,,1,1,,,1,1,1,1,,1,1,,1],[,1,,,1,,,1,,1,,,1,1,1,1,,,1,1,,1,1,1,1],[,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1],[,1,1,1,1,1,1,,,1,1,1,1,1,1,1,,,1,,,1,,1],[,1,,,,,,1,,,,1,1,,,,,,1,1,,,,,1],[,,,,,,,1,,,,1,,1,1],[,1,1,1,1,1,1,1,,,,1,1,1,1,1,,,1,1,,1,1,1,1,1],[,1,,,1,1,,1,,1,1,1,,,1,1,,,1,,1,1,1,1,,1],[,1,1,1,,1,1,,1,1,,1,1,,1,1,1,1,1,1,1,,1,1,1,1,1],[,,,,,,,,,,,,,,,,1],,[,1,1,1,1,1,,1,1,1,,,1,,1,1,,1,1,1,1,1,,1,,1],[,,1,,,1,,,1,1,,1,1,,1,1,,1,,,,,,,,,1],[,1,1,,1,,,,1,1,,1,,1,1,1,1,,1,1,1,1,,,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1],[1,1],[,1,,,,,,,,,,1,1,,,,,,1,1,,1,,1,,1,1],,[,1,1,,1,,,1,,1,,,,1,1,1,,,1,,,1,,,,1],[1,1,,,1,1,,1,,,,,1,,1]],[,[,1],[,,,1,,,,1,,,,1,,,,1,,,1,,,1],[,,,,,,,,,,,,,,,,,,1,1,,,,,,1],,[1,,,,,1],[,1,,,,1,,,,1],[,1,,,,,,,,,,,1,1,,1,,,,,,,,,1,1],[,,,,,,,,,,,,,,,,,,,1,,1],[,,,,,,,,,,,,,,,,1,,,,1,,1],[,1],[,1,,1,,1,,1,,1,,1,1,1,,1,1,,1,,,,,,,1],[1,
|
|
2060
|
+
,,,,1,,,1,1,,1,,1,,1,1,,,,,1,,,1],[,1,1,,,1,,1,,1,,1,,1,1,1,1,1,,1,,1,,1,1,1,1],[1,1,1,1,1,,1,,1,,,,1,1,1,1,,1,1,,,1,1,1,1],[1,,,,,,,,,,,,,,,,,,,,1],[,,,,,,,,,1],,[,1,,,,,,1,1,1,,1,,,,1,,,1,1,1,,,1],[1,,,,,1,,1,1,1,,1,1,1,1,1,,1,,1,,1,,,1,1],[1,,1,1,,,,,1,,,,,,1,1,,,1,1,1,1,,,1,,1],[1,,,,1,,,,,,,,,,,,,1],[,,,,,1,,,1,,,,,,1],[,,,,,,,,,,,,,,,1],[,,,,,,,,,,,,,,,,,,,,1],[,1,,,,,,,,,,,,,,1],[,1,,,,1]],[,[1,1,1,,1,,1,1,1,1,1,1,1,1,1,,1,,1,,1,1,,,1,1,1],[,,,,,,,,,,,,1],[,,,,,,,,,,,,,,,,,,,1],,[,,,,,,,,,,,,,,,,,,1],[1,,,,,,,,,1,,,,1],[,,,,,,,,,,,,,,,,,,1],,[1,1,,,,1,1,,,,,,1,,,,1,,1,,1,1,,1],[1],[,,,,,,,,,,,1,,,,,,,,,,,1],[,1,,,,,,,1,1,,,1,,1,,,,1,,,,,,,1],[,,,,,,,,,,,,,,,,1,,,,,1],[,,1,,,,,1,,1],[1,,,,1,,,,,1,,,,1,1,,,,1,1,,,,,1],[,,,,,1],[,,,,,,,,,,,,,,,,,,,1],[1,,,1,1,,,,,,,1,,1,,1,1,1,1,1,1],[,,,,,1,,,,,,,1,,,,,,,1],,[,,1,1,1,1,1,,1,1,1,,,1,1,,,1,1,,1,1,1,,,1],[,,,,,,,,,,,,,,,,,,1],[,1,,,,1],,[1]],[,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
|
2061
|
+
1,1,,1,1,1,1,1,1],[,,,1,1,1,1,,,,,,1,,1,,,,1,,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,,,1],[,1,1,1,1,,1,1,1,1,1,1,1,1,,,,1,,1,,,1,1,1,1,1],[,,,,,,,,,,,1,,,,,,,,,1,,,,1],[,1,1,,1,1,,1,,,,1,1,,1,1,,,1,,1,1,,1],[,1,,1,,1,,,1,,,1,1,,1,1,,,1,1,1],[,1,1,1,1,1,,1,1,1,,,1,1,1,1,1,1,1,1,1,1,,1,1,1,1],[,,,,,,,,,1,,1,,1,1,,,,1,,,1],[,1,,,1,1,,,,,,,,,1,1,1,,,,,1],[1,,1,1,1,,,,1,1,1,1,1,,,1,,,1,,,1,,1,,1],[,1,1,,1,1,,1,1,,,,1,1,1,,,1,1,,,1,1,1,1,1,1],[1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,,1,1,,1,1,,1,,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,,,1,,,,,,,,,1],[,1,,,,,,,,1,,,,,1,,,,1,,,1],[,1,1,1,1,,,1,1,1,1,1,,1,,1,,1,1,1,1,1,1,1,1,1,1],[,,,,,1,,1,,,,,1,1,1,1,1,,,1,,,,1],[,1,,,,,,,,1,,,,,,,,,,,,1],[1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1],[1,1,,1,,1,1,,,,1,,1,1,1,1,1,,1,1,,,,,,1],[,1,1,1,1,1,1,1,,1,1,,,1,1,,,,1,,1,1,,1,1],[,,,,,,,,,,,,,,,,,,,,,,,,1],[,1,1,,1,1,1,1,,1,,,1,1,1,1,,,1,,,,,,,1,1],[,1,,,,,,,,1,,,,,1]],[,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1],
|
|
2062
|
+
[,1,1,,,,,,,,,,,,1,1,,,,,,1],[,1,,,,,,,1],[,,,,,,,,,,,,,,1,,,,,1,,,,,,1],[1,1,,,1,,,1,1,1,,,,1],,[,,,,,,,,,,,,,1,,,,,,,,,,1],[,,,,,,,,,1,,,,,,,,,1,,,,,,,1],[1,1,1,,1,,1,1,1,1,1,1,1,1,,1,,,1,,1,,,1,1],[,,,,,,,,,1],[,1,,,,1,,,1,,,1,,,1,,,,,1],[,1,1,,1,1,,,,,,,,,,,,,,,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1],[,1,,,1,1,,1,1,1,1,,,1,1,1,,,,1,,1],[1,1,1,1,1,1,,,1,1,1,1,1,1,,1,1,,1,1,1,,1,1,,1,1],[,,,,,,,,,,,,,,,1,,,,1],,[1,1,,1,,1,,,,,,1,,1,,1,1,,1,,1,1,,1,1,,1],[,,1,,,,,,1,,,,1,,1,,,,,1],[1,,,,,,,,,1,,,,,,1,,,,1,,1,,,1],[1,,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1],[,,,1,,1,,,,,,1,,,1,,,,,,,,1],[,1,,1,,,,,,,,,,,,1],,[1,1,,,,,,,,,,,,,,,,,,,,,,1,1],[1]],[,[1,,,,,,,,,1,,,,,1,,1,,1],[,1,1,,1,1,,1,1,1,,,1,1,1,,,,1,,,1,,,,1],[,1,,,,,,,1,,,,1,,,,,,1],[1,1,1,1,1,1,,,,1,,,,,,,,,1,1,1,1],[1],[,1,1,,,1,1,,,,,1,,1,,,,,,,,1,,,,1],[1,,1,,,1,,1,,,,,1,1,1,1,,,,1,,,,1],[,,1,,,,,,,1,,,,,,,1,,,,,,,1],[1,,,,,,,,,,,,,,1,,,,1],[,,,1,,1,,,,,1,,,,1,1,,,,1],[1,,,,,1,,,1,1,,1,1,,,1,1,,1,1,1,
|
|
2063
|
+
,1,1,1,,1],[,1,1,,,,,1,,1,,1,1,1,,1,1,,,1,,1,1,1],[,1,,,,1,,,,1,,,1,,1,1,,,1,1,1,,,,,1],[1,,1,1,,1,,1,1,,1,,1,1,1,1,1,,,1,1,,,,,,1],[1,,,,,,,,,,,,,,,,,,1,,,1,,1],[,,,,,,,,,1,,,,,,1],[,,,,,,,,,,,,,,,,,,,,,1,,1],[,1,,,,1,,,1,1,,1,,,1,1,,,1,,,1,,,1,1],[1,1,,1,1,1,,1,1,1,,1,,1,1,1,,,1,,1,1,1],[1,,1,1,1,1,,,,1,,1,1,1,,1,,,1,1,1,,1,1,1,1,1],[1,,,,,,,,,,,,,1],[,,1,,,,,,,,,,,,,,,,,,,,1],[1,,,,,,,,,,,1,,1,,1,,,,1],[,,,1,,,,,,,,,1],[,1,,,,,,,,,,,,,,1,,,,,,,,,1],[,,,,,,,,1,1,,,,1,,,,,1,,,,,,,,1]],[,[1,1,1,1,1,1,1,,1,,1,1,1,1,1,1,,1,1,1,1,1,,,1,1,1],[,,,,,1,,,,1,1,1,,1,1,1,,,1,,1,1,,1],[,,,,,,,,,,,,,,,,,,,1,1],[,1,,,,,,1,,,,,,,,,,,,,1],[,,1,,,1,,1,1,1,,1,1,,1,,,,1,,1,1],,[,,1,,,1,,,,,,1,,,,1],[,,,,,,,,,1,,,,,,,,,,1],[1,1,1,1,1,1,,1,1,1,,,1,1,,1,,1,,,1,1,1,,,1],[,,,,,1,,,,,,,,,,,,,1],[,1,,,,,,,,,,,,1,,1,1,,1,1,,1],[,,,,,1,,,,,,,,,,,,,,1],[,1,1,1,1,,,,,1,,,1,,1,,,,1,1,,,,1,1],[,1,,,1,,,1,,1,1,,1,,,,,,,1],[,,1,,1,,,1,,,,,,,,,,,1,1,,,,1],[,1,,,,,,,,,,,,,,,,,1,,,,,,1],[,,,,,,,,,,,,,,,,,,1],[,1,1,,,,,,,
|
|
2064
|
+
,,,,,,,,,1,,1,1],[,,,,,,,,,,,,1],,[,1,1,1,1,,,,1,1,,1,1,1,1,1,1,,1,1,1,1,,1,,1],[1,,,,1,,,,,,,,,,1],[1,,,,,,,,,1],,[,1,,,,1,,,,,,,,,,,,,,,,,,,,1]],[,[1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,1,1,1,,,,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,,1,1,,1,1,1,,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,,1,1,1,1,1,1,1,1,1,1,,,1,1,1,,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
|
2065
|
+
1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,,1,,1,1,1,1],[1,1,1,1,,1,1,1,,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1],[,,,1,1,1,1,,1,,,,1,1,,,1,1,,1],[,1,1,,1,,,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,,,,,,,,,,,,1],[1,1,1,,,,,1,1,1,,1,1,1,1,1,,1,1,1,1,1,,,,,1],[,1,,,,,,,1,1,,,1,1,1,,1,,,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,,1,1,1,1,1,1],[,1,,,,1,,,,1,,,1,,,,1,,,,,,,1,1],[,1,1,1,1,1,,,1,
|
|
2066
|
+
1,1,,1,1,1,1,,,1,1,1,1,,,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1],[1,1,1,,1,,,1,1,1,1,,1,1,1,1,,,,1,,1,,1,,,1],[1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,,,1,,,,,,,,,1,1,,,,,,,,,1],[,,,,,,,,,,,,,,,,,,1],[,1,,1,,1,,1,,1,,1,1,1,1,1,,,1,,1,,1,,,,1],[,1,1,1,1,1,,1,1,1,,,1,1,1,1,1,,1,1,1,,1,1,,1],[1,,,1,,,,1,1,1,,,,,1,1,,,,1,,1],[1,1,,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1],[1,1,,,,,,,,1,,1,1,,,,,,,1,,1],[,1,,,,1,,1,1,,,,1,1,,1,,,,1,1,1,,1],[,,,,,,,,,,,,,1],[,1,,,,,,1,,,,,,,1],[,,,,,,,,1,,,,1,,1,,,,,,,,,,,,1]],[,[,1,1,,1,1,1,1,,1,1,1,,1,1,,1,1,,1,1,1,1,1,1,,1],[,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,
|
|
2067
|
+
1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1],[,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,,1,1,1,1,1,1,1,1,1,,1,,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1],[,1,1,,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
|
2068
|
+
1,1,1,1]],[,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,,1],[1,1,1,1,1,,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,,1,1,1,1,1,1,1,1,1,1],[,1,,,1,,,,,,,,1,,,,,,1,,,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,,1,,1,1,1,1,1,1,,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1],[,1,1,,1,,,,1,1,1,,1,1,1,1,,,1,1,1,1,,,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,,1],[1,1,,1,,1,,1,,1,1,1,1,1,1,1,,1,1,,,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1],[1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,,1,1],[,1,1,,,,,1,1,1,,,1,,1,1,,,,1,,1,,,1,1],[,,,,,,,1,,,,1,1,1,1,1,,1,,,1,,,,,1],[1,1,1,1,,1,1,1,,1,,1,1,1,1,,1,,1,,1,1,,,1,,1],[,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,,,,1,1,,1,,1,1,1,,1,,1,1,,1,1,,1,,1,1,1,
|
|
2069
|
+
1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,,,,,,,,1,,,,,1,,1],[,1,1,1,,1,,1,,1,,,,1,,1,,,1,,,,,1,1,1],[,1,,,1,1,,1,,1,,1,1,1,1,1,,1,1,,,1,,,1],[1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,,1,,,,,1,,1,,1,,,,,1,1,,1,,,,1,1]],[,[,1,,1,,,,,,,,1,,,,,,,1,,,,1],[,,,,,,,,,1,,1,1,1,,1,,,1,,1,1],[1,1,,,,,,,1,,,,,1,,1,,,,,,1],[,1,,,,,,,,,,1,,,,,,,,,1,1],,[,,,,,,,,,,,,,,,1,,,,1,,1],[,,1,1,,1,,1,,,,,,,,1,,,,,,1],[,,,,,,,,,,,,,,,,,,,,1,1],[,1,,,,1,,,,,,,,,1],[1,,1,1,,,,1,,,,,,,,,1,,,1,,,1,1],[,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,,,1,1,,1,1,,1,,1],[,1,,,1,1,,,,,,1,,1,,1,,,1,,1,1],[1,1,1,1,,1,,1,,1,,1,1,,1,1,1,1,1,,1,1,1,1,1,1],[,1,1,,,1,,1,,1,1,1,,,1,1,1,,1,1,1,1,,1,1],[,,,,1,,,1,,,,,,,1,,,,1,1],[,1,,,,,,,,,,1,,1,,1,,,,,1,,,,,1],,[1,1,,1,,1,,1,1,,,,,,1,1,,,1,1,1,1,1,1,1,1,1],[1,1,,1,,,,,,1,,,,,1,1,1,,,,1,1,,,1],[,1,1,,1,1,,,,1,,1,1,1,1,1,,1,1,1,1,1,,1,1,1,1],[,1,1,,,1,,,,1,,,,1,1],[,,,,1],[,,,,,,,,,1,,,1],,[,,1,,1,,,,,,,,,1,,,,,,,,,,,,1],[,,,,,,,,,,,,,1]],[,[1,1,1,1,1,1,1,1,1,
|
|
2070
|
+
1,,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1],[,,1,1,,1,1,1,1,1,,,1,1,1,1,1,,1,1,1,1,1,,,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,,,,,1],[,1,,1,,,,,,1,,,,,1,1,,,,,1,1],[,1,1,,1,1,1,1,1,1,1,1,1,1,,1,1,1,,1,,,1,,1,1,1],[,1,,,,1,,,,,,,1],[,1,,,1,,,1,,1,,1,1,,1,,,,,1,,1,,,,1,1],[,1,,,1,,,1,1,1,1,1,1,1,1,1,,1,1,,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,,1,1,1,1,1,1,1,1,1],[,,,,,,,,,,,,,,,,,,,,1],[,1,1,1,,,,1,1,,,,,,1,1,1,,1,1,1,1],[1,1,1,1,1,1,1,1,1,,1,1,1,,1,1,1,1,1,1,1,1,1,1,,1,1],[,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,,1,1,1,1,1,,1,1,1,1],[,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,,,1,1,1,1,1,1,1,,1,,1,1,1,1,1,,1,1,,1,1,1,1,1],[,1,,,,1,,,,1,,1,1,1,1,1,1,1,1,1,1,1],[,1,,,,1,,,,,,,,1,,,,,,,,,,1],[,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1],[1,1,,1,1,1,,1,1,1,,,1,1,1,1,1,1,1,1,1,1,,1,,1],[1,1,,,,,,,1,1,,,,,1,1,1,1,1,,1,1,1,1,,1],[,1,1,1,1,1,1,1,,1,1,1,,1,,1,1,1,1,,1,1,,1,1,1,1],,[,1,1,,,,,1,,1,,,,1,1,1,,,1,,,,,1],[,,,,,,,,,,,,,1],[,,,,,1,,,,,,,,1,1,,,,,1,,1,,,1,1],[,,,,,1,,,1,,,,,,1]],[
|
|
2071
|
+
,[,1],,,,,,,,,,,,,,,,,,,,[1,1,1,1,1,,1,1,1,1,,1,1,1,1,,1,1,1,1,,,1,1,1,1,1],[,1,,1,,1,,,1,1,1,,1,1,1,1,1,,,1,,,,1,,1,1],[,1,,1,,1,,,1,,,,,1,,,,,,1,1],[,1,,1,,,,,1,,,,1,,1,1,1,1,1,1,1,1,,1],[,1,,,,,,,,,,,,,,,1]],[,[,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,,1,,,,,,,,,1,1,,,,1],[,,,,,,1],[,,1],[,1,1,,,1,,1,,1,1,,1,1,1,,,,1,1,1,,,,,1],,[,1,,,,1,,,,,,1,,,1,,,,1,1,,1],[,,,,,,,1,,,,,,,,,1],[,1,1,,,1,1,,,,,,1,1,1,,,,1,,1,1],[,,,,,,,1,,1,,,,,,,,,,1],[,1,1,,,,,,1,1,,,,1,,,,,,,1,,,1],,[1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,,1,,,1,,,,,1,,1,,1,,1,,,,,1],[1,1,1,1,1,1,1,1,,,,,1,1,,1,1,,1,,,1,,1],[,,,,,,,,,,,,,,1,,,,,,1],,[,,,,,,,,,1,,,,1,,1,,,,,1],[,,1,,,,,,,1,,1,1,1,1,,,,,,,,,1],[,,,1,,,,,1,,,,,1,,,,,,1,,,,1],[1,,1,1,,1,1,1,1,1,,1,,,,1,1,1,,,1,1,,,,1,1],,[1,1,,,,,,,,,,1,1,1,,1,,,1],[,,,,1,,,,,,,,,,,,,,,,,,,1],[,,,,,,,,,,,,,,1,,,,,1,,1],[,,,,,,,,1]],[,[1,1,1,1,1,1,1,,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,
|
|
2072
|
+
1,,,1,1,1,1,1,,1,1,,1,1,1,1,,1,1,1,1,1,1],[1,1,1,1,,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1],[,,1,,,1,,,,,,,,1,,,,,,1,,,,1],[1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,,1,1,1,1],[1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,,1,,,,1,1,1,1,1,1,,1,1,1,1,,1],[1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,,1,1,1,1,1,1,1,1,,1,1,1,,1,1,1,1,1,1,,1,1,1,1],[1,1,1,1,1,,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1],[1,,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1],[1,1,1,1,1,1,,1,1,1,1,1,1,,1,1,1,1,1,1,,1,1,1,1,1,1],[,,1,1,1,1,,1,,1,,1,1,1,1,1,1,1,1,1,1,1,1,,1,1],[1,1,,,,,,,1,,1,1,,1,1,1,,1,1,1,1,1,,,1],[1,1,1,1,,1,1,1,1,1,,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1],[1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1],[1,1,1,1,,1,,1,,1,1,1,1,1,,1,,1,1,1,1,,1,1,1,1,1],[1,1,1,1,,1,,,,,,1,,1,,,,,1,1,,,,,1],[1,,1,1,,,1,
|
|
2073
|
+
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,,1,1,,1,,1,,,,1,1,1,1,1,,,1,1,,1,,1],[,1,1,1,1,,,,,1,,1,1,1,1,1,,,1,1,,,,1,1,1],[,1,1,1,1,1,,1,,,,,1,,1,,1,,,1,,,1,1,,1]],[,[1,1,1,1,1,1,1,1,,1,1,1,1,,1,1,1,1,1,1,,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,,1,1,1,,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,,1,1],[1,1,1,1,1,1,1,1,1,1,,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,,,,,,,,,1,,,,,1,1,,,1,,1],[1,1,1,1,1,1,1,1,1,1,1,,,,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,,,1,1,1,1,,1,1,,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1],[1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1],[,1,,,,,,1,,1,1,,1,1,1,1,1,,,1,,1,,1],[1,1,1,,1,1,1,1,,,,1,1,1,1,,1,1,1,1,1,1,1,1,1,,1],[1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1],[1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,,1,1,1,1,1,1],[,1,,1,,1,1,1,,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1],[,,1,,,,,,,,,,1,1,1,1,1,1,1,,1,
|
|
2074
|
+
1,,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1],[,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,,1,1,1,1,1,1,1,1],[,1,,,1,1,,,,1,,1,1,1,1,1,,,,1,1,1,,1,1,1],[1,1,1,1,1,1,1,1,1,,,,1,1,1,1,1,1,1,,1,1,,1,1,1],[,1,1,1,,1,,1,1,1,1,,,1,1,1,,1,1,1,1,1,,,1,1],[1,1,,,,1,,,1,1,1,,1,,1,,1,,1,1,1,1,1,,1,1,1],[,1,,,,,,,1,,1,,1,1,1,1,,,,,,,,,1]],[,[,,,,,,,,,,,,,1,1,,,,1],[,1,,,,,,,,1,,,1,,,,,,1,,,1,,,,1],,[,1,,,,1,,1,,1,1,,1,1,,,,,,,,1],[,,,,,,,,,,,,,,,,,,,1],[,,,,,,,,,1],[1,1,1,,,1,,,1,,,,,,1,1,,,,,,,,,,1],[,1,,,,,,,,,,,,,1],[,,,,,,,,,,,,,,,,,,,1,,,1],[,,,,,,,,,1],[1,1,,,,,,1,1,1,,1,1,,,,1,1,,1,,1,1,1,,1],[,1,1,1,,1,1,,,1,,1,1,1,1,,,,,,,1,,1,,1],[,1,1,1,1,,,1,,1,,,,1,1,1,1,,1,1,,1],[,1,,,1,1,,1,,1,,1,,1,1,,1,,1,,,1,,,1,,1],[,,,,,,,,,,,1,,,1],[,,,,,,,,,1,,,,,,,,,,,,,1],,[1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,,1,,1,1,1,1,1,1,1],[,1,,,,,,,1,1,,1,,,,,1,,,1,,1],[,1,,,,1,,,1,,,,,,,,1,,1,,,1],[,,,,,,,,
|
|
2075
|
+
,,,,,1,1,,,,1,,,1],[,,,,,1,,,1,,,,1],[,1],,[,1],[1,,,,,,,,,,,,,,1,,,,,1]],[,[,1,,,,1,1,1,1,1,1,,1,1,1,1,1,,1,1,,1,1,,,1],[,,1,,,,,,,,,1],,,[1,,,1,1,,,,,,,,1,1,,1,1,,1],,[,,,,,,,,,,,,,,,,,,1,,1],,[1,,,1,1,,1,1,,,,,1,,1,,,,,1,1,,1],[,,,,,,,,,,,1],[,1,,,,,,,,1,1,1,1,1,1,1,1,,,,1,1,,,,,1],[,,,,,,,,,,,,,,,,1,,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,,1,1,1,1,1,1],[,,,,,,,,,,,1,,1,,,1],[1,,,,,,,,,,,,,,,,,,1,,1],,,[,1,,,,,,,,,,,,,,1,,,,1,1],[,,,,,,,,,1,,,1,,1,,,,,,,,1],[,,,,,,,,,,,,,,,1],[,,,,,,,,,,,,,1,1,,,,,,1],,[,1]],[,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,,,1,1,,1,1,1,1,1,1,,,1,1,1,1,1,,1,1],[,1,,,,,,,,1],[,,,,1,,,1,,,1,1,,,,,,,,,1,1,,,,1],[,1,,1,1,,,1,1,1,,,,1,1,1,1,,1,1,1,1,,1],[,,,,,,,1],[,1,1,,,,,1,,1,,,,,,1,,,,,,1,,1,,1],[,1,,,,,,1,,,,1,,,,,,,,,,1],[,,1,1,,1,1,1,1,1,1,1,1,1,1,,,,1,,1,1,1,1,,1],[,1,,,,,,,,1],[,1,1,,1,,,,,,,,1,,,,,,1,,,1,,1,,1],[,1,,1,,1,,1,1,1,,1,1,1,,1,,,1,1,,1,1,1,1,1],[,1,1,1,1,1,,1,1,1,,,,1,1,1,,,,1,1,,,1,1],[,,1,1,1,1,,1,,1,,1,,1,1,1,1,,,
|
|
2076
|
+
,,1,,1,,1],[1,1,1,1,1,1,1,1,,1,,1,,1,1,1,,,1,1,,,,1,,1],[,,,1],,[,1,1,,1,,,1,1,1,,1,1,1,1,1,1,,1,1,,1,1,1,1,1,1],[,1,,,,,,1,,1,,1,,,,,,,1,1,,1,1],[,,1,,,,1,,1,1,,1,,1,,,,,,,,,,1],[,1,1,,1,,,,1,,,,1,1,1,,,,1,,1,1,1,,1,1],,[,1,1,,,,,,,,,,,,,1,,,1,,,,,1],[,1,,,,,,,,,,,,,,,,,,,,,,1],[,1,1,,,,,,,1,,,,1,1,,,,1,,,,,,,1]],[,[,1,1,1,1,1,,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1],[,1,1,1,1,1,,1,,1,1,,,1,1,1,1,,1,,,,,1,1,1],[,,1,1,,1,,1,1,,,,1,1,1,1,,,1,,1,1,1,1,,1],[,1,,1,,,,,,,,1,,1,,1,,1,,,,,,,,1],[,,1,,1,,,1,,,,,1,1,,,1,,1,1,1,1],[,1],[,1,1,,1,,1,1,,1,,,1,1,1,,,,1,,,1,,1],[1,1,,1,1,1,,,,,,,,1,,,,,1,,1,1,1],[,1,1,,,,,,,1,,,1,,1,,1,,1,1,,,1,,,1],[,,1,,,,,,,,,,,,,,,,,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,1,1,1,,1,,1,,,,,1,1,1,,,1,,1,,,,1],[,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,,1,,,1,1,1,1,1,,1,1,1,,1,1,1,1,1,,,,1,1],[,,,1,1,,,1,,1,,1,,1,1,1,1,,1,,,,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,,,,,,,,,,,,,,,,,,1],[,1,1,,1,1,,1,,1,,,,1,
|
|
2077
|
+
1,,,1,1,,1,1,,1],[,1,1,1,1,1,,,1,1,1,,1,1,1,1,1,1,1,1,,1,1,,,1],[,1,1,1,1,1,,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,,1,1],[,1,1,,1,,,1,,,1,,1,1,1,1,1,,1,,1,1],[,,,,,1,,,,1,,,,,1,1,,,,1],[,1,,1,1,1,,1,,,1,1,1,,,1,,,1,,1,,,1],[,,1,,,,,,,,,1,,1,,,,,1,,1],[,1,1,,,,,,,,1,1,1,,,,,,,,1,,,,,1],[,,,,,,,,1,,,,,1,,,1]],[,[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,1,,1,1,,,1,1,1,1,1,1,1,1,,,,,,,,,1,1],[,,,,,,,,1,,,,1,,1,,1,,1],[,1,,,1,1,,1,,,,1,,,,,,,,1],[,1,,1,,1,,,,1,1,,1,,1,,,,1,1,1,1,1,,,1],,[,1,,,,,,,,1,,,1,1,,,1,,1,1,,1,,1],[,1,,,1,,,,,,,,1,,,,,,,1],[1,1,,,,,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,,1,1,1],,[,1,,,,,,1,1,1,,1,1,1,1,1,,,1,,1,1,,,,1],[,1,1,,,1,,1,,1,,,1,1,1,1,,,1,,,1,,,,1],[,1,1,1,1,1,,1,1,1,,1,1,1,1,1,1,1,1,1,1,,,,1,,1],[,1,1,,1,1,,1,1,,,1,1,,1,1,,1,,1,,1],[1,,1,,,,,1,,1,,1,1,1,1,,,,,1,1,,,,1,1],[,1,1,,,,,1,1,,,1,,1,1,1,1,,,,,,,,,,1],,[,1,1,,,1,,,,1,,1,1,1,1,1,,,,1,,,,1,,1],[,,,1,1,,,1,,,,,1,1,1,1,1,,1,1,,,,,,1],[,1,,,,,,,,,,,1,,,,1,,,,,,,1,,1],[,1,1,1,1,1,1,1,,1,1,1,1,1,1,,
|
|
2078
|
+
1,1,1,,1,1,,1,1,1,1],[,1,,,,,,,,,,,,,,,,,,,1],[,1,,,,,,1,,,,,1,,1,,,1,1,,1,1,,1],[,1,,,,,,1,,,,,1,1,,,,,,,,1,,,,1],[,,,,,,,,,,,,,,,,,,1,,,1,,,,,1],[,,,,,,,1,,,,1]],[,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,1,,1,,,,,,,1,,,,,,,,1,1,,1],[,1,,,1,,,,1],[,,,,,,,,,,1],[,1,,,,,,1,1,,,,,1,1],,[,1,1,,,,,,1,,,,,1,1,,,,1],[1,,1,,1,,,,,1,,,,,1,,,,,,,,,1,1],[,1,1,,,,,,,,,1,1,1,1,,,,1,,,,,1,,,1],,[,1,1,,1,,,1,1,,,1,,,1,1,1,,1,,1,1,1,,,,1],[,1,,,,1,,,,,1,,,1,1,,,1,,1,,1,,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,1,,,1,1,,1,,,,1,,,,,,,,1],[,,,1,,,,,1,,,,,1,,1,,1,1,1],[,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[,,,,,1],[,1,,,,,,1,,,,,,,1,1,1,,,1],[,1,,,,,,,,,,1,1,1,,,,,1,,,1],[,,,,,1,,1,,,,,1,1,1,,1,1,,1,1,1,,,1,1],[1,1,,,,,,,1,,,,,1,1,,,,,,,,,,,1],,[,1],[,,,,,,,,,,,,,,,,,,,,,,,,1],[,,1,,,,,1,,,1,,,,1,,1],[,1,,,,,,,,,1]]];i(Uq,"isValidLang")});var jq={};x(jq,{UIStrings:()=>hs,default:()=>H1e});function B1e(e){return e.startsWith("http:")||e.startsWith("https:")}function j1e(e){if(e.toLowerCase()===U1e)return!0;let[t]=e.split("-");return Uq(t.toLowerCase())}var U1e,hs,Zm,R_,H1e,Hq=g(()=>{"use strict";d();$();A();Bq();U1e="x-default",hs={title:"Document has a valid `hreflang`",failureTitle:"Document doesn't have a valid `hreflang`",description:"hreflang links tell search engines what version of a page they should list in search results for a given language or region. [Learn more about `hreflang`](https://developer.chrome.com/docs/lighthouse/seo/hreflang/).",unexpectedLanguage:"Unexpected language code",notFullyQualified:"Relative href value"},Zm=T("core/audits/seo/hreflang.js",hs);i(B1e,"isFullyQualified");i(j1e,"isExpectedLanguageCode");R_=class extends E{static{i(this,"Hreflang")}static get meta(){return{id:"hreflang",title:Zm(hs.title),failureTitle:Zm(hs.failureTitle),description:Zm(hs.description),supportedModes:["navigati\
|
|
2078
2079
|
on"],requiredArtifacts:["LinkElements","URL"]}}static audit({LinkElements:t}){let n=[],r=t.filter(s=>{let c=s.rel==="alternate",l=s.hreflang,u=s.source==="body";return c&&l&&!u});for(let s of r){let c=[],l;j1e(s.hreflang)||c.push(Zm(hs.unexpectedLanguage)),B1e(s.hrefRaw.toLowerCase())||c.push(Zm(hs.notFullyQualified)),s.source==="head"?s.node?l={...E.makeNodeItem(s.node),snippet:`<link rel="alternate" hreflang="${s.hreflang}" href="${s.hrefRaw}" />`}:l={type:"node",snippet:`<link rel="alternate" hreflang="${s.hreflang}" href="${s.hrefRaw}" />`}:s.source==="headers"&&(l=`Link: <${s.hrefRaw}>; rel="alternate"; hreflang="${s.hreflang}"`),!(!l||!c.length)&&n.push({source:l,subItems:{type:"subitems",items:c.map(u=>({reason:u}))}})}let a=[{key:"source",valueType:"code",subItemsHeading:{key:"reason",valueType:"text"},label:""}],o=E.makeTableDetails(a,n);return{score:+(n.length===0),details:o}}},H1e=R_});var qq={};x(qq,{UIStrings:()=>Qm,default:()=>G1e});var q1e,z1e,Qm,__,I_,G1e,zq=g(()=>{"use strict";d();$();A();jn();q1e=400,z1e=599,Qm={title:"Page has successful HTTP status code",failureTitle:"Page has unsuccessful HTTP status code",description:"Pages with unsuccessful HTTP status codes may not be indexed properly. [Learn more about HTTP status codes](https://developer.chrome.com/docs/lighthouse/seo/http-status-code/)."},__=T("core/audits/seo/http-status-code.js",Qm),I_=class extends E{static{i(this,"HTTPStatusCode")}static get meta(){return{id:"http-status-code",title:__(Qm.title),failureTitle:__(Qm.failureTitle),description:__(Qm.description),requiredArtifacts:["DevtoolsLog","URL","GatherContext"],supportedModes:["navigation"]}}static async audit(t,n){let r=t.DevtoolsLog,a=t.URL,s=(await Et.request({devtoolsLog:r,URL:a},n)).statusCode;return s>=q1e&&s<=z1e?{score:0,displayValue:`${s}`}:{score:1}}},G1e=I_});var Yq=ve((eet,$q)=>{d();function Gq(e){return e?Array.isArray(e)?e.map(Gq):String(e).trim():null}i(Gq,"trimLine");function W1e(e){var t=e.indexOf("#");return t>-1?e.substr(0,t):e}i(W1e,"removeComments");function V1e(e){var t=String(e).indexOf(":");return!e||t<0?null:[e.slice(0,t),e.slice(t+1)]}i(V1e,"splitLine");function D_(e){var t=e.toLowerCase(),n=t.indexOf("/");return n>-1&&(t=t.substr(0,n)),t.trim()}i(D_,"formatUserAgent");function $1e(e){try{return Wq(encodeURI(e).replace(/%25/g,"%"))}catch{return e}}i($1e,"normaliseEncoding");function Wq(e){return e.replace(/%[0-9a-fA-F]{2}/g,function(t){return t.toUpperCase()})}i(Wq,"urlEncodeToUpper");function Y1e(e,t){var n=new Array(t.length+1),r=1;n[0]=0;for(var a=0;a<e.length;a++){if(e[a]==="$"&&a+1===e.length)return n[r-1]===t.length;if(e[a]=="*"){r=t.length-n[0]+1;for(var o=1;o<r;o++)n[o]=n[o-1]+1}else{for(var s=0,o=0;o<r;o++)n[o]<t.length&&t[n[o]]===e[a]&&(n[s++]=n[o]+1);if(s==0)return!1;r=s}}return!0}i(Y1e,"matches");function K1e(e,t){
|
|
2079
2080
|
for(var n=/\r\n|\r|\n/,r=e.split(n).map(W1e).map(V1e).map(Gq),a=[],o=!0,s=0;s<r.length;s++){var c=r[s];if(!(!c||!c[0])){switch(c[0].toLowerCase()){case"user-agent":o&&(a.length=0),c[1]&&a.push(D_(c[1]));break;case"disallow":t.addRule(a,c[1],!1,s+1);break;case"allow":t.addRule(a,c[1],!0,s+1);break;case"crawl-delay":t.setCrawlDelay(a,c[1]);break;case"sitemap":c[1]&&t.addSitemap(c[1]);break;case"host":c[1]&&t.setPreferredHost(c[1].toLowerCase());break}o=c[0].toLowerCase()!=="user-agent"}}}i(K1e,"parseRobots");function X1e(e,t){for(var n=null,r=0;r<t.length;r++){var a=t[r];Y1e(a.pattern,e)&&(!n||a.pattern.length>n.pattern.length||a.pattern.length==n.pattern.length&&a.allow&&!n.allow)&&(n=a)}return n}i(X1e,"findRule");function Vq(e){try{var e=new URL(e,"http://robots-relative.samclarke.com/");return e.port||(e.port=e.protocol==="https:"?443:80),e}catch{return null}}i(Vq,"parseUrl");function Lr(e,t){this._url=Vq(e)||{},this._rules=Object.create(null),this._sitemaps=[],this._preferredHost=null,
|
|
2080
2081
|
K1e(t||"",this)}i(Lr,"Robots");Lr.prototype.addRule=function(e,t,n,r){var a=this._rules;e.forEach(function(o){a[o]=a[o]||[],t&&a[o].push({pattern:$1e(t),allow:n,lineNumber:r})})};Lr.prototype.setCrawlDelay=function(e,t){var n=this._rules,r=Number(t);e.forEach(function(a){n[a]=n[a]||[],!isNaN(r)&&(n[a].crawlDelay=r)})};Lr.prototype.addSitemap=function(e){this._sitemaps.push(e)};Lr.prototype.setPreferredHost=function(e){this._preferredHost=e};Lr.prototype._getRule=function(e,t){var n=Vq(e)||{},r=D_(t||"*");if(!(n.protocol!==this._url.protocol||n.hostname!==this._url.hostname||n.port!==this._url.port)){var a=this._rules[r]||this._rules["*"]||[],o=Wq(n.pathname+n.search),s=X1e(o,a);return s}};Lr.prototype.isAllowed=function(e,t){var n=this._getRule(e,t);if(!(typeof n>"u"))return!n||n.allow};Lr.prototype.getMatchingLineNumber=function(e,t){var n=this._getRule(e,t);return n?n.lineNumber:-1};Lr.prototype.isDisallowed=function(e,t){return!this.isAllowed(e,t)};Lr.prototype.getCrawlDelay=function(e){
|
|
2081
|
-
var t=D_(e||"*");return(this._rules[t]||this._rules["*"]||{}).crawlDelay};Lr.prototype.getPreferredHost=function(){return this._preferredHost};Lr.prototype.getSitemaps=function(){return this._sitemaps.slice(0)};$q.exports=Lr});var Xq=ve((ret,Kq)=>{d();var J1e=Yq();Kq.exports=function(e,t){return new J1e(e,t)}});var tz={};x(tz,{UIStrings:()=>ep,default:()=>nye});function eye(e){let t=e.split(":");if(t.length<=1||t[0]!==ez)return!1;let n=Date.parse(t.slice(1).join(":"));return!isNaN(n)&&n<Date.now()}function Zq(e){return e.split(",").map(t=>t.toLowerCase().trim()).some(t=>Z1e.has(t)||eye(t))}function tye(e){let t=e.match(/^([^,:]+):/);if(t&&t[1].toLowerCase()!==ez)return t[1]}var Qq,Jq,Z1e,Q1e,ez,ep,A_,N_,nye,nz=g(()=>{"use strict";d();Qq=
|
|
2082
|
+
var t=D_(e||"*");return(this._rules[t]||this._rules["*"]||{}).crawlDelay};Lr.prototype.getPreferredHost=function(){return this._preferredHost};Lr.prototype.getSitemaps=function(){return this._sitemaps.slice(0)};$q.exports=Lr});var Xq=ve((ret,Kq)=>{d();var J1e=Yq();Kq.exports=function(e,t){return new J1e(e,t)}});var tz={};x(tz,{UIStrings:()=>ep,default:()=>nye});function eye(e){let t=e.split(":");if(t.length<=1||t[0]!==ez)return!1;let n=Date.parse(t.slice(1).join(":"));return!isNaN(n)&&n<Date.now()}function Zq(e){return e.split(",").map(t=>t.toLowerCase().trim()).some(t=>Z1e.has(t)||eye(t))}function tye(e){let t=e.match(/^([^,:]+):/);if(t&&t[1].toLowerCase()!==ez)return t[1]}var Qq,Jq,Z1e,Q1e,ez,ep,A_,N_,nye,nz=g(()=>{"use strict";d();Qq=En(Xq(),1);$();jn();A();Jq=new Set([void 0,"Googlebot","bingbot","DuckDuckBot","archive.org_bot"]),Z1e=new Set(["noindex","none"]),Q1e="x-robots-tag",ez="unavailable_after",ep={title:"Page isn’t blocked from indexing",failureTitle:"Page is blocked from indexing",description:"Search engines are unable to include your pages in search results if they don't have permission to crawl them. [Learn more about crawler directives](https://developer.chrome.com/docs/lighthouse/seo/is-crawlable/)."},A_=T("core/audits/seo/is-crawlable.js",ep);i(eye,"isUnavailable");i(Zq,"\
|
|
2082
2083
|
hasBlockingDirective");i(tye,"getUserAgentFromHeaderDirectives");N_=class e extends E{static{i(this,"IsCrawlable")}static get meta(){return{id:"is-crawlable",title:A_(ep.title),failureTitle:A_(ep.failureTitle),description:A_(ep.description),supportedModes:["navigation"],requiredArtifacts:["MetaElements","RobotsTxt","URL","DevtoolsLog"]}}static handleMetaElement(t){let n=t.content||"";if(Zq(n))return{source:{...E.makeNodeItem(t.node),snippet:`<meta name="${t.name}" content="${n}" />`}}}static determineIfCrawlableForUserAgent(t,n,r,a,o){let s=[],c;if(t&&(c=r.find(l=>l.name===t.toLowerCase())),c||(c=r.find(l=>l.name==="robots")),c){let l=e.handleMetaElement(c);l&&s.push(l)}for(let l of n.responseHeaders||[]){if(l.name.toLowerCase()!==Q1e)continue;let u=tye(l.value);if(u!==t&&u!==void 0)continue;let m=l.value.trim();t&&l.value.startsWith(`${t}:`)&&(m=l.value.replace(`${t}:`,"")),Zq(m)&&s.push({source:`${l.name}: ${l.value}`})}if(a&&!a.isAllowed(n.url,t)){let l=a.getMatchingLineNumber(n.url)||
|
|
2083
2084
|
1;s.push({source:{type:"source-location",url:o.href,urlProvider:"network",line:l-1,column:0}})}return s}static async audit(t,n){let r=t.DevtoolsLog,a=await Et.request({devtoolsLog:r,URL:t.URL},n),o=new URL("/robots.txt",a.url),s=t.RobotsTxt.content?(0,Qq.default)(o.href,t.RobotsTxt.content):void 0,c=[],l=[];for(let h of Jq){let y=e.determineIfCrawlableForUserAgent(h,a,t.MetaElements,s,o);y.length>0&&c.push(h),h===void 0&&l.push(...y)}let u=c.length===Jq.size?0:1,m=[];if(u&&c.length>0){let h=c.filter(Boolean).join(", ");m.push(`The following bot user agents are blocked from crawling: ${h}. The audit is otherwise passing, because at least one bot was explicitly allowed.`)}let p=[{key:"source",valueType:"code",label:"Blocking Directive Source"}],f=E.makeTableDetails(p,u===0?l:[]);return{score:u,details:f,warnings:m}}},nye=N_});var rz={};x(rz,{UIStrings:()=>Kc,default:()=>rye});var M_,Kc,f1,O_,rye,az=g(()=>{"use strict";d();$();un();A();M_={en:new Set(["click here","click this","go","here","information","learn more","more","more info","more information","right here","read more","see more","start","this"]),ja:new Set(["ここをクリック","こちらをクリック","リンク","続きを読む","続く","全文表示"]),es:new Set(["click aquí","click aqui","clicka aquí","clicka aqui","pincha aquí","pincha aqui","aquí","aqui","más","mas","más información","más informacion","mas información","mas informacion","este","enlace","este enlace","empezar"]),pt:new Set(["clique aqui","ir","mais informação","mais informações","mais","veja mais"]),ko:new Set(["여기","여기를 클릭","클릭","링크","자세히","자세히 보기","계속","이동","전체 보기"]),sv:new Set(["här","klicka här","läs mer","mer","mer info","mer information"]),de:new Set(["klicke hier","hier klicken","hier","mehr","\
|
|
2084
2085
|
siehe","dies","das","weiterlesen"]),ta:new Set(["அடுத்த பக்கம்","மறுபக்கம்","முந்தைய பக்கம்","முன்பக்கம்","மேலும் அறிக","மேலும் தகவலுக்கு","மேலும் தரவுகளுக்கு","தயவுசெய்து இங்கே அழுத்தவும்","இங்கே கிளிக் செய்யவும்"]),fa:new Set(["اطلاعات بیشتر","اطلاعات","این","اینجا بزنید","اینجا کلیک کنید","اینجا","برو","بیشتر بخوانید","بیشتر بدانید","بیشتر","شروع"])},Kc={title:"Links have descriptive text",failureTitle:"Links do not have descriptive text",description:"Descriptive link text helps search engines understand your content. [Learn how to make links more accessible](https://developer.chrome.com/docs/lighthouse/seo/link-text/).",displayValue:`{itemCo\
|
|
@@ -2087,7 +2088,7 @@ unt, plural,
|
|
|
2087
2088
|
other {# links found}
|
|
2088
2089
|
}`},f1=T("core/audits/seo/link-text.js",Kc),O_=class extends E{static{i(this,"LinkText")}static get meta(){return{id:"link-text",title:f1(Kc.title),failureTitle:f1(Kc.failureTitle),description:f1(Kc.description),requiredArtifacts:["URL","AnchorElements"]}}static audit(t){let n=t.AnchorElements.filter(s=>{if(!s.href||s.rel.includes("nofollow"))return!1;let c=s.href.toLowerCase();if(c.startsWith("javascript:")||c.startsWith("mailto:")||Ce.equalWithExcludedFragments(s.href,t.URL.finalDisplayedUrl))return!1;let l=s.text.trim().toLowerCase();if(l){if(s.textLang){let u=s.textLang.split("-")[0];if(M_[u]&&M_[u].has(l))return!0}else for(let u of Object.values(M_))if(u.has(l))return!0}return!1}).map(s=>({href:s.href,text:s.text.trim(),textLang:s.textLang})),r=[{key:"href",valueType:"url",label:"Link destination"},{key:"text",valueType:"text",label:"Link Text"}],a=E.makeTableDetails(r,n),o;return n.length&&(o=f1(Kc.displayValue,{itemCount:n.length})),{score:+(n.length===0),details:a,displayValue:o}}},
|
|
2089
2090
|
rye=O_});var iz={};x(iz,{UIStrings:()=>h1,default:()=>aye});var h1,oz,P_,aye,sz=g(()=>{"use strict";d();kr();A();h1={description:"Run the [Structured Data Testing Tool](https://developers.google.com/search/docs/appearance/structured-data/) to validate structured data. [Learn more about Structured Data](https://developer.chrome.com/docs/lighthouse/seo/structured-data/).",title:"Structured data is valid"},oz=T("core/audits/seo/manual/structured-data.js",h1),P_=class extends Gt{static{i(this,"StructuredData")}static get meta(){return Object.assign({id:"structured-data",description:oz(h1.description),title:oz(h1.title)},super.partialMeta)}},aye=P_});var cz={};x(cz,{UIStrings:()=>Xc,default:()=>oye});var Xc,g1,L_,oye,lz=g(()=>{"use strict";d();$();A();Xc={title:"Document has a meta description",failureTitle:"Document does not have a meta description",description:"Meta descriptions may be included in search results to concisely summarize page content. [Learn more about the meta description](https://developer.chrome.com/docs/lighthouse/seo/meta-description/).",explanation:"Description text is empty."},g1=T("core/audits/seo/meta-description.js",Xc),L_=class extends E{static{i(this,"Description")}static get meta(){return{id:"meta-description",title:g1(Xc.title),failureTitle:g1(Xc.failureTitle),description:g1(Xc.description),requiredArtifacts:["MetaElements"]}}static audit(t){let n=t.MetaElements.find(a=>a.name==="description");return n?(n.content||"").trim().length===0?{score:0,explanation:g1(Xc.explanation)}:{score:1}:{score:0}}},oye=L_});var dz={};x(dz,{UIStrings:()=>di,default:()=>fye});function dye(e,t){if(!lye.has(e))throw new Error("Unknown directive");if(e===uz){let n;try{n=new URL(t)}catch{throw new Error("Invalid sitemap URL")}if(!uye.has(n.protocol))throw new Error("Invalid sitemap URL protocol")}if(e===U_&&!t)throw new Error("No user-agent specified");if(e===B_||e===j_){if(t!==""&&t[0]!=="/"&&t[0]!=="*")throw new Error('Pattern should either be empty, start with "/" or "*"');let n=t.indexOf("$");if(n!==-1&&n!==t.length-1)throw new Error('"$" should only be used at the end of the pattern')}}function mye(e){let t=e.indexOf("#");if(t!==-1&&(e=e.substr(0,t)),e=e.trim(),e.length===0)return null;let n=e.indexOf(":");if(n===-1)throw new Error("Syntax not understood");let r=e.slice(0,n).trim().toLowerCase(),a=e.slice(n+1).trim();return dye(r,a),{directive:r,value:a}}function pye(e){let t=[],n=!1;return e.split(/\r\n|\r|\n/).forEach((r,a)=>{let o;try{o=mye(r)}catch(s){t.push({index:(a+1).toString(),line:r,message:s.message.
|
|
2090
|
-
toString()})}o&&(o.directive===U_?n=!0:!n&&cye.has(o.directive)&&t.push({index:(a+1).toString(),line:r,message:"No user-agent specified"}))}),t}var iye,sye,uz,U_,B_,j_,cye,lye,uye,di,Jc,F_,fye,mz=g(()=>{"use strict";d();$();A();iye=400,sye=500,uz="sitemap",U_="user-agent",B_="allow",j_="disallow",cye=new Set([B_,j_]),lye=new Set([U_,j_,B_,uz,"crawl-delay","clean-param","host","request-rate","visit-time","noindex"]),uye=new Set(["https:","http:","ftp:"]),di={title:"robots.txt is valid",failureTitle:"robots.txt is not valid",description:"If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed. [Learn more about robots.txt](https://developer.chrome.com/docs/lighthouse/seo/invalid-robots-txt/).",displayValueHttpBadCode:"Request for robots.txt returned HTTP status: {statusCode}",displayValueValidationError:`{itemCount, plural,
|
|
2091
|
+
toString()})}o&&(o.directive===U_?n=!0:!n&&cye.has(o.directive)&&t.push({index:(a+1).toString(),line:r,message:"No user-agent specified"}))}),t}var iye,sye,uz,U_,B_,j_,cye,lye,uye,di,Jc,F_,fye,mz=g(()=>{"use strict";d();$();A();iye=400,sye=500,uz="sitemap",U_="user-agent",B_="allow",j_="disallow",cye=new Set([B_,j_]),lye=new Set([U_,j_,B_,uz,"crawl-delay","clean-param","host","request-rate","visit-time","noindex","content-signal"]),uye=new Set(["https:","http:","ftp:"]),di={title:"robots.txt is valid",failureTitle:"robots.txt is not valid",description:"If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed. [Learn more about robots.txt](https://developer.chrome.com/docs/lighthouse/seo/invalid-robots-txt/).",displayValueHttpBadCode:"Request for robots.txt returned HTTP status: {statusCode}",displayValueValidationError:`{itemCount, plural,
|
|
2091
2092
|
=1 {1 error found}
|
|
2092
2093
|
other {# errors found}
|
|
2093
2094
|
}`,explanation:"Lighthouse was unable to download a robots.txt file"},Jc=T("core/audits/seo/robots-txt.js",di);i(dye,"verifyDirective");i(mye,"parseLine");i(pye,"validateRobots");F_=class extends E{static{i(this,"RobotsTxt")}static get meta(){return{id:"robots-txt",title:Jc(di.title),failureTitle:Jc(di.failureTitle),description:Jc(di.description),requiredArtifacts:["RobotsTxt"]}}static audit(t){let{status:n,content:r}=t.RobotsTxt;if(!n)return{score:0,explanation:Jc(di.explanation)};if(n>=sye)return{score:0,displayValue:Jc(di.displayValueHttpBadCode,{statusCode:n})};if(n>=iye||r==="")return{score:1,notApplicable:!0};if(r===null)throw new Error(`Status ${n} was valid, but content was null`);let a=pye(r),o=[{key:"index",valueType:"text",label:"Line #"},{key:"line",valueType:"code",label:"Content"},{key:"message",valueType:"code",label:"Error"}],s=E.makeTableDetails(o,a),c;return a.length&&(c=Jc(di.displayValueValidationError,{itemCount:a.length})),{score:+(a.length===0),details:s,displayValue:c}}},
|
|
@@ -2096,7 +2097,7 @@ request({trace:a,settings:r,SourceMaps:o,HostDPR:s},n),l=c.model.DocumentLatency
|
|
|
2096
2097
|
=1 {1 cookie found}
|
|
2097
2098
|
other {# cookies found}
|
|
2098
2099
|
}`},el=T("core/audits/third-party-cookies.js",tl),q_=class extends E{static{i(this,"ThirdPartyCookies")}static get meta(){return{id:"third-party-cookies",title:el(tl.title),failureTitle:el(tl.failureTitle),description:el(tl.description),requiredArtifacts:["InspectorIssues"]}}static getCookieId(t){if(!t.cookie)return t.rawCookieLine??"no-cookie-info";let{domain:n,path:r,name:a}=t.cookie;return`${n};${r};${a}`}static async audit(t){let n=new Set,r=[];for(let c of t.InspectorIssues.cookieIssue??[]){let l=c.cookieWarningReasons.includes("WarnThirdPartyPhaseout"),u=c.cookieExclusionReasons.includes("ExcludeThirdPartyPhaseout");if(!l&&!u)continue;let m=c.cookie?.name||c.rawCookieLine;if(!m)continue;let p=this.getCookieId(c);n.has(p)||(n.add(p),r.push({name:m,url:c.cookieUrl}))}let a=[{key:"name",valueType:"text",label:el(D.columnName)},{key:"url",valueType:"url",label:el(D.columnURL)}],o=E.makeTableDetails(a,r),s;return r.length>0&&(s=el(tl.displayValue,{itemCount:r.length})),{score:r.length?
|
|
2099
|
-
0:1,displayValue:s,details:o}}},yye=q_});var vz={};x(vz,{UIStrings:()=>rl,default:()=>vye});var yz,rl,nl,z_,vye,bz=g(()=>{"use strict";d();yz=
|
|
2100
|
+
0:1,displayValue:s,details:o}}},yye=q_});var vz={};x(vz,{UIStrings:()=>rl,default:()=>vye});var yz,rl,nl,z_,vye,bz=g(()=>{"use strict";d();yz=En(Gr(),1);$();jn();A();l2();rl={title:"Mitigate DOM-based XSS with Trusted Types",description:"The `require-trusted-types-for` directive in the `Content-Security-Policy` (CSP) header instructs user agents to control the data passed to DOM XSS sink functions. [Learn more about mitigating DOM-based XSS with Trusted Types](https://developer.chrome.com/docs/lighthouse/best-practices/trusted-types-xss).",noTrustedTypesToMitigateXss:"No `Content-Security-Policy` header with Trusted Types directive found",columnSeverity:"Severity"},nl=T("core/audits/trusted-types-xss.js",rl),z_=class extends E{static{i(this,"TrustedTypesXss")}static get meta(){return{id:"trusted-types-xss",scoreDisplayMode:E.SCORING_MODES.INFORMATIVE,title:nl(rl.title),description:nl(rl.description),requiredArtifacts:["DevtoolsLog","MetaElements","URL"],supportedModes:["navigation"]}}static async getRawCsps(t,n){let r=t.DevtoolsLog,
|
|
2100
2101
|
a=await Et.request({devtoolsLog:r,URL:t.URL},n),o=t.MetaElements.filter(c=>c.httpEquiv&&c.httpEquiv.toLowerCase()==="content-security-policy").flatMap(c=>(c.content||"").split(",")).filter(c=>c.replace(/\s/g,""));return{cspHeaders:a.responseHeaders.filter(c=>c.name.toLowerCase()==="content-security-policy").flatMap(c=>c.value.split(",")).filter(c=>c.replace(/\s/g,"")),cspMetaTags:o}}static findingToTableItem(t,n){return{description:t,severity:n}}static constructResults(t,n){let a=[...t,...n].map(s2);for(let o of a)if((o.directives[o.getEffectiveDirective(yz.Directive.REQUIRE_TRUSTED_TYPES_FOR)]||[]).includes("'script'"))return{score:1,results:[]};return{score:0,results:[{severity:nl(D.itemSeverityHigh),description:nl(rl.noTrustedTypesToMitigateXss)}]}}static async audit(t,n){let{cspHeaders:r,cspMetaTags:a}=await this.getRawCsps(t,n),{score:o,results:s}=this.constructResults(r,a),c=[{key:"description",valueType:"text",subItemsHeading:{key:"description"},label:nl(D.columnDescription)},{key:"\
|
|
2101
2102
|
severity",valueType:"text",subItemsHeading:{key:"severity"},label:nl(rl.columnSeverity)}],l=E.makeTableDetails(c,s);return{score:o,notApplicable:!s.length,details:l}}},vye=z_});var wz={};x(wz,{UIStrings:()=>tp,default:()=>bye});var tp,y1,G_,bye,Ez=g(()=>{"use strict";d();$();A();un();tp={title:"Image elements have explicit `width` and `height`",failureTitle:"Image elements do not have explicit `width` and `height`",description:"Set an explicit width and height on image elements to reduce layout shifts and improve CLS. [Learn how to set image dimensions](https://web.dev/articles/optimize-cls#images_without_dimensions)"},y1=T("core/audits/unsized-images.js",tp),G_=class e extends E{static{i(this,"UnsizedImages")}static get meta(){return{id:"unsized-images",title:y1(tp.title),failureTitle:y1(tp.failureTitle),description:y1(tp.description),guidanceLevel:4,requiredArtifacts:["ImageElements"],scoreDisplayMode:E.SCORING_MODES.METRIC_SAVINGS}}static doesHtmlAttrProvideExplicitSize(t){return!t||t.startsWith("+")?!1:parseInt(t,10)>=0}static isCssPropExplicitlySet(t){return t?!["auto","initial","unset","inherit"].includes(t):!1}static isSizedImage(t){if(t.cssEffectiveRules===
|
|
2102
2103
|
void 0)return!0;let n=t.attributeWidth,r=t.attributeHeight,a=t.cssEffectiveRules.width,o=t.cssEffectiveRules.height,s=t.cssEffectiveRules.aspectRatio,c=e.doesHtmlAttrProvideExplicitSize(n),l=e.isCssPropExplicitlySet(a),u=e.doesHtmlAttrProvideExplicitSize(r),m=e.isCssPropExplicitlySet(o),p=e.isCssPropExplicitlySet(s),f=c||l,h=u||m;return f&&h||f&&p||h&&p}static isNonNetworkSvg(t){let n=Ce.guessMimeType(t.src)==="image/svg+xml",r=t.src.slice(0,t.src.indexOf(":")),a=Ce.isNonNetworkProtocol(r);return n&&a}static async audit(t){let n=t.ImageElements.filter(o=>!o.isCss&&!o.isInShadowDOM),r=[];for(let o of n){if(o.computedStyles.position==="fixed"||o.computedStyles.position==="absolute"||e.isNonNetworkSvg(o)||e.isSizedImage(o))continue;let c=o.node.boundingRect;c.width===0&&c.height===0||r.push({url:Ce.elideDataURI(o.src),node:E.makeNodeItem(o.node)})}let a=[{key:"node",valueType:"node",label:""},{key:"url",valueType:"url",label:y1(D.columnURL)}];return{score:r.length>0?0:1,details:E.makeTableDetails(
|
|
@@ -2109,7 +2110,7 @@ valid-source-maps",title:ys(mi.title),failureTitle:ys(mi.failureTitle),descripti
|
|
|
2109
2110
|
items:f}})}let u=[{key:"scriptUrl",valueType:"url",subItemsHeading:{key:"error"},label:ys(D.columnURL)},{key:"sourceMapUrl",valueType:"url",label:ys(mi.columnMapURL)}];return l.sort((m,p)=>{let f=s.has(m.scriptUrl),h=s.has(p.scriptUrl);return f&&!h?-1:!f&&h?1:m.subItems.items.length&&!p.subItems.items.length?-1:!m.subItems.items.length&&p.subItems.items.length?1:p.scriptUrl.localeCompare(m.scriptUrl)}),{score:c?0:1,details:E.makeTableDetails(u,l)}}},Tye=$_});var _z={};x(_z,{default:()=>xye});var xye,Iz=g(()=>{d();xye={audits:[{path:"lighthouse-plugin-soft-navigation/audits/soft-nav-fcp"},{path:"lighthouse-plugin-soft-navigation/audits/soft-nav-lcp"}],groups:{metrics:{title:"Metrics associated with a soft navigation"}},category:{title:"Soft Navigation",supportedModes:["timespan"],auditRefs:[{id:"soft-nav-fcp",weight:1,group:"metrics"},{id:"soft-nav-lcp",weight:1,group:"metrics"}]}}});function v1(e){let t,n,r;for(let s of e)switch(s.name){case"SoftNavigationHeuristics_SoftNavigationDetected":if(t)throw new Error("Multiple soft navigations detected");t=s;break;case"largestContentfulPaint::Candidate":t&&(n=s);break;case"firstContentfulPaint":t&&(r=s);break}if(!t)return{};let a=t.ts,o=i(s=>{if(s)return(s.ts-a)/1e3},"getTiming");return{lcpTiming:o(n),fcpTiming:o(r)}}var Y_=g(()=>{d();i(v1,"computeMetricTimings")});var Dz={};x(Dz,{default:()=>Sye});var K_,Sye,Az=g(()=>{d();b1();Xt();Y_();K_=class extends E{static{i(this,"SoftNavFCP")}static get meta(){return{id:"soft-nav-fcp",title:"Soft Navigation First Contentful Paint",description:"First Contentful Paint of a soft navigation.",scoreDisplayMode:E.SCORING_MODES.NUMERIC,supportedModes:["timespan"],requiredArtifacts:["Trace"]}}static async audit(t,n){let r=t.Trace,a=await Be.request(r,n),{fcpTiming:o}=v1(a.mainThreadEvents);return o?{numericValue:o,numericUnit:"millisecond",displayValue:`${o} ms`,score:E.computeLogNormalScore({p10:1800,median:3e3},o)}:{notApplicable:!0,score:1}}},Sye=K_});var Nz={};x(Nz,{default:()=>Cye});var X_,Cye,Mz=g(()=>{d();b1();Xt();Y_();X_=class extends E{static{i(this,"SoftNavLCP")}static get meta(){return{id:"soft-nav-lcp",title:"Soft Navigation Largest Contentful Paint",description:"Largest Contentful Paint of a soft navigation.",scoreDisplayMode:E.SCORING_MODES.NUMERIC,supportedModes:["timespan"],requiredArtifacts:["Trace"]}}static async audit(t,n){let r=t.Trace,a=await Be.request(r,n),{lcpTiming:o}=v1(a.mainThreadEvents);return o?{numericValue:o,numericUnit:"millisecond",displayValue:`${o} ms`,score:E.computeLogNormalScore({p10:2500,median:4e3},o)}:{notApplicable:!0,score:1}}},Cye=X_});function J_(){if(globalThis.isDevtools||globalThis.isLightrider)return!0;try{return ol.resolve("lighthouse-logger"),!1}catch{return!0}}function Lz(e,t,n=!1){if(typeof e>"u"||e===null)return t;if(typeof t>"u")return e;if(Array.isArray(t)){if(n)return t;if(!Array.isArray(e))throw new TypeError(`Expected array but got ${typeof e}`);let r=e.slice();return t.forEach(a=>{r.some(o=>Jr(o,a))||r.push(a)}),r}else if(typeof t=="object"){if(typeof e!="object")throw new TypeError(`Expected object but got ${typeof e}`);if(Array.isArray(e))throw new TypeError("Expected object but got Array");return Object.keys(t).forEach(r=>{let a=n||r==="settings"&&typeof e[r]=="object";e[r]=Lz(e[r],t[r],a)}),e}return t}function Fz(e,t,n){let r=new Map,a=e||[];for(let o=0;o<a.length;o++){let s=a[o];r.set(n(s),{index:o,item:s})}for(let o of t||[]){let s=r.get(n(o));if(s){let c=s.item,l=typeof o=="object"&&typeof c=="object"?vs(c,o,!0):o;a[s.index]=l}else a.push(o)}return a}function Rye(e){if(typeof e=="string")return{
|
|
2110
2111
|
path:e};if("implementation"in e||"instance"in e)return e;if("path"in e){if(typeof e.path!="string")throw new Error("Invalid Gatherer type "+JSON.stringify(e));return e}else{if(typeof e=="function")return{implementation:e};if(e&&typeof e.getArtifact=="function")return{instance:e};throw new Error("Invalid Gatherer type "+JSON.stringify(e))}}function _ye(e){if(typeof e=="string")return{path:e,options:{}};if("implementation"in e&&typeof e.implementation.audit=="function")return e;if("path"in e&&typeof e.path=="string")return e;if("audit"in e&&typeof e.audit=="function")return{implementation:e,options:{}};throw new Error("Invalid Audit type "+JSON.stringify(e))}async function Z_(e){At.isAbsolute(e)&&(e=Ri.pathToFileURL(e).href);let t;if(Oz.has(e)?t=await Oz.get(e):e.match(/\.(js|mjs|cjs)$/)?t=await import(e):(e+=".js",t=await import(e)),t.default)return t.default;let n=new Set(["meta"]),r=Object.keys(t).filter(a=>t[a]&&t[a]instanceof Object?Object.getOwnPropertyNames(t[a]).some(o=>n.has(o)):
|
|
2111
2112
|
!1);if(r.length===1)return r[0];throw r.length>1?new Error(`module '${e}' has too many possible exports`):new Error(`module '${e}' missing default export`)}async function Iye(e,t,n){let r=t.find(s=>s===`${e}.js`),a=`../gather/gatherers/${e}`;r||(a=Q_(e,n,"gatherer"));let o=await Z_(a);return{instance:new o,implementation:o,path:e}}function Dye(e,t,n){let r=`${e}.js`,a=t.find(s=>s===r),o=`../audits/${e}`;if(!a)if(J_())o=e;else{let s=Q_(e,n,"audit");J_()?o=At.relative("",s):o=s}return Z_(o)}function Aye(e={}){let t={};for(let n of Object.keys(e))n in Sr&&(t[n]=e[n]);return t}function Uz(e={},t=void 0){let n=nf(t?.locale||e.locale),{defaultSettings:r}=Bo,a=vs(eI(r),e,!0),o=vs(a,Aye(t),!0);return o.locale=n,o.emulatedUserAgent===!0&&(o.emulatedUserAgent=Uo[o.formFactor]),FT(o),o}async function Bz(e,t,n){let r=e.plugins||[],a=n?.plugins||[],o=new Set([...r,...a]);for(let s of o){q4(e,s);let c=J_()?s:Q_(s,t,"plugin"),l=await Z_(c),u=J4.parsePlugin(l,s);e=vs(e,u)}return e}async function jz(e,t,n){
|
|
2112
|
-
let r=Rye(e);if(r.instance)return{instance:r.instance,implementation:r.implementation,path:r.path};if(r.implementation){let a=r.implementation;return{instance:new a,implementation:r.implementation,path:r.path}}else if(r.path){let a=r.path;return Iye(a,t,n)}else throw new Error("Invalid expanded Gatherer: "+JSON.stringify(r))}async function Hz(e,t){if(!e)return null;let n=
|
|
2113
|
+
let r=Rye(e);if(r.instance)return{instance:r.instance,implementation:r.implementation,path:r.path};if(r.implementation){let a=r.implementation;return{instance:new a,implementation:r.implementation,path:r.path}}else if(r.path){let a=r.path;return Iye(a,t,n)}else throw new Error("Invalid expanded Gatherer: "+JSON.stringify(r))}async function Hz(e,t){if(!e)return null;let n=wn.getAuditList(),r=e.map(async s=>{let c=_ye(s),l;return"implementation"in c?l=c.implementation:l=await Dye(c.path,n,t),{implementation:l,path:c.path,options:c.options||{}}}),a=await Promise.all(r),o=kye(a);return o.forEach(s=>LT(s)),o}function Q_(e,t,n){try{return ol.resolve(e)}catch{}try{return ol.resolve(e,{paths:[process.cwd()]})}catch{}let r=At.resolve(process.cwd(),e);try{return ol.resolve(r)}catch{}let a="Unable to locate "+(n?`${n}: `:"")+`\`${e}\`.
|
|
2113
2114
|
Tried to resolve the module from these locations:
|
|
2114
2115
|
|
|
2115
2116
|
${r}`;if(!t)throw new Error(a);let o=At.resolve(t,e);try{return ol.resolve(o)}catch{}try{return ol.resolve(e,{paths:[t]})}catch{}throw new Error(a+`
|
|
@@ -2128,18 +2129,18 @@ udits/byte-efficiency/total-byte-weight",Promise.resolve().then(()=>(q7(),H7))],
|
|
|
2128
2129
|
["../audits/insights/viewport-insight",Promise.resolve().then(()=>(eH(),Qj))],["../audits/is-on-https",Promise.resolve().then(()=>(rH(),nH))],["../audits/layout-shifts",Promise.resolve().then(()=>(sH(),iH))],["../audits/long-tasks",Promise.resolve().then(()=>(lH(),cH))],["../audits/main-thread-tasks",Promise.resolve().then(()=>(dH(),uH))],["../audits/mainthread-work-breakdown",Promise.resolve().then(()=>(pH(),mH))],["../audits/metrics",Promise.resolve().then(()=>(HH(),jH))],["../audits/metrics/cumulative-layout-shift",Promise.resolve().then(()=>(sR(),oH))],["../audits/metrics/first-contentful-paint",Promise.resolve().then(()=>(zH(),qH))],["../audits/metrics/interaction-to-next-paint",Promise.resolve().then(()=>(WH(),GH))],["../audits/metrics/interactive",Promise.resolve().then(()=>($H(),VH))],["../audits/metrics/largest-contentful-paint",Promise.resolve().then(()=>(KH(),YH))],["../audits/metrics/max-potential-fid",Promise.resolve().then(()=>(JH(),XH))],["../audits/metrics/speed-index",
|
|
2129
2130
|
Promise.resolve().then(()=>(QH(),ZH))],["../audits/metrics/total-blocking-time",Promise.resolve().then(()=>(tq(),eq))],["../audits/network-requests",Promise.resolve().then(()=>(sq(),iq))],["../audits/network-rtt",Promise.resolve().then(()=>(lq(),cq))],["../audits/network-server-latency",Promise.resolve().then(()=>(dq(),uq))],["../audits/non-composited-animations",Promise.resolve().then(()=>(pq(),mq))],["../audits/oopif-iframe-test-audit",Promise.resolve().then(()=>(hq(),fq))],["../audits/origin-isolation",Promise.resolve().then(()=>(yq(),gq))],["../audits/predictive-perf",Promise.resolve().then(()=>(bq(),vq))],["../audits/redirects-http",Promise.resolve().then(()=>(Eq(),wq))],["../audits/redirects",Promise.resolve().then(()=>(xq(),Tq))],["../audits/resource-summary",Promise.resolve().then(()=>(Rq(),kq))],["../audits/screenshot-thumbnails",Promise.resolve().then(()=>(Dq(),Iq))],["../audits/script-treemap-data",Promise.resolve().then(()=>(Mq(),Nq))],["../audits/seo/canonical",Promise.resolve().then(()=>(Pq(),Oq))],
|
|
2130
2131
|
["../audits/seo/crawlable-anchors",Promise.resolve().then(()=>(Fq(),Lq))],["../audits/seo/hreflang",Promise.resolve().then(()=>(Hq(),jq))],["../audits/seo/http-status-code",Promise.resolve().then(()=>(zq(),qq))],["../audits/seo/is-crawlable",Promise.resolve().then(()=>(nz(),tz))],["../audits/seo/link-text",Promise.resolve().then(()=>(az(),rz))],["../audits/seo/manual/structured-data",Promise.resolve().then(()=>(sz(),iz))],["../audits/seo/meta-description",Promise.resolve().then(()=>(lz(),cz))],["../audits/seo/robots-txt",Promise.resolve().then(()=>(mz(),dz))],["../audits/server-response-time",Promise.resolve().then(()=>(fz(),pz))],["../audits/third-party-cookies",Promise.resolve().then(()=>(gz(),hz))],["../audits/trusted-types-xss",Promise.resolve().then(()=>(bz(),vz))],["../audits/unsized-images",Promise.resolve().then(()=>(Ez(),wz))],["../audits/user-timings",Promise.resolve().then(()=>(Cz(),Sz))],["../audits/valid-source-maps",Promise.resolve().then(()=>(Rz(),kz))],["lighthouse-plug\
|
|
2131
|
-
in-soft-navigation",Promise.resolve().then(()=>(Iz(),_z))],["lighthouse-plugin-soft-navigation/audits/soft-nav-fcp",Promise.resolve().then(()=>(Az(),Dz))],["lighthouse-plugin-soft-navigation/audits/soft-nav-lcp",Promise.resolve().then(()=>(Mz(),Nz))]]);i(Z_,"requireWrapper");i(Iye,"requireGatherer");i(Dye,"requireAudit");i(Aye,"cleanFlagsForSettings");i(Uz,"resolveSettings");i(Bz,"mergePlugins");i(jz,"resolveGathererToDefn");i(Hz,"resolveAuditsToDefns");i(Q_,"resolveModulePath");i(Pz,"shallowClone");i(eI,"deepClone");i(tI,"deepCloneConfigJson")});function Mye(e,t){let{configPath:n}=t;if(n&&!At.isAbsolute(n))throw new Error("configPath must be an absolute path");e||(e=mg,n=Nye);let r=n?At.dirname(n):void 0;return{configWorkingCopy:tI(e),configPath:n,configDir:r}}function Oye(e){if(!e.extends)return e;if(e.extends!=="lighthouse:default")throw new Error("`lighthouse:default` is the only valid extension method.");let{artifacts:t,...n}=e,r=tI(mg),a=vs(r,n);return a.artifacts=Fz(r.artifacts,t,o=>o.id),a}function Pye(e,t,n){if(!("dependencies"in t.instance.meta))return;let r=Object.entries(t.instance.meta.dependencies).map(([a,o])=>{let s=n.get(o);return s||UT(e.id,a),H4(t,s.gatherer)||G4(e.id,a),[a,{id:s.id}]});return Object.fromEntries(r)}async function Lye(e,t){if(!e)return null;let n={msg:"Resolve artifact definitions",id:"lh:config:resolveArtifactsToDefns"};M.time(n,"verbose");let r=[...e];r.sort((c,l)=>{let u=qz[c.id]||0,m=qz[l.id]||0;return u-m});let a=new Map,o=
|
|
2132
|
+
in-soft-navigation",Promise.resolve().then(()=>(Iz(),_z))],["lighthouse-plugin-soft-navigation/audits/soft-nav-fcp",Promise.resolve().then(()=>(Az(),Dz))],["lighthouse-plugin-soft-navigation/audits/soft-nav-lcp",Promise.resolve().then(()=>(Mz(),Nz))]]);i(Z_,"requireWrapper");i(Iye,"requireGatherer");i(Dye,"requireAudit");i(Aye,"cleanFlagsForSettings");i(Uz,"resolveSettings");i(Bz,"mergePlugins");i(jz,"resolveGathererToDefn");i(Hz,"resolveAuditsToDefns");i(Q_,"resolveModulePath");i(Pz,"shallowClone");i(eI,"deepClone");i(tI,"deepCloneConfigJson")});function Mye(e,t){let{configPath:n}=t;if(n&&!At.isAbsolute(n))throw new Error("configPath must be an absolute path");e||(e=mg,n=Nye);let r=n?At.dirname(n):void 0;return{configWorkingCopy:tI(e),configPath:n,configDir:r}}function Oye(e){if(!e.extends)return e;if(e.extends!=="lighthouse:default")throw new Error("`lighthouse:default` is the only valid extension method.");let{artifacts:t,...n}=e,r=tI(mg),a=vs(r,n);return a.artifacts=Fz(r.artifacts,t,o=>o.id),a}function Pye(e,t,n){if(!("dependencies"in t.instance.meta))return;let r=Object.entries(t.instance.meta.dependencies).map(([a,o])=>{let s=n.get(o);return s||UT(e.id,a),H4(t,s.gatherer)||G4(e.id,a),[a,{id:s.id}]});return Object.fromEntries(r)}async function Lye(e,t){if(!e)return null;let n={msg:"Resolve artifact definitions",id:"lh:config:resolveArtifactsToDefns"};M.time(n,"verbose");let r=[...e];r.sort((c,l)=>{let u=qz[c.id]||0,m=qz[l.id]||0;return u-m});let a=new Map,o=wn.getGathererList(),s=[];for(let c of r){let l=c.gatherer,u=await jz(
|
|
2132
2133
|
l,o,t),m={id:c.id,gatherer:u,dependencies:Pye(c,u,a)},p=m.gatherer.instance.meta.symbol;p&&a.set(p,m),s.push(m)}return M.timeEnd(n),s}function Fye(e,t){t==="timespan"&&e.throttlingMethod==="simulate"&&(e.throttlingMethod="devtools")}function Uye(e){e.throttlingMethod!=="simulate"&&(e.cpuQuietThresholdMs=Math.max(e.cpuQuietThresholdMs||0,yc.cpuQuietThresholdMs),e.networkQuietThresholdMs=Math.max(e.networkQuietThresholdMs||0,yc.networkQuietThresholdMs),e.pauseAfterFcpMs=Math.max(e.pauseAfterFcpMs||0,yc.pauseAfterFcpMs),e.pauseAfterLoadMs=Math.max(e.pauseAfterLoadMs||0,yc.pauseAfterLoadMs))}async function oo(e,t,n={}){let r={msg:"Initialize config",id:"lh:config"};M.time(r,"verbose");let{configWorkingCopy:a,configDir:o}=Mye(t,n);a=Oye(a),a=await Bz(a,o,n);let s=Uz(a.settings||{},n);Fye(s,e),Uye(s);let l={artifacts:await Lye(a.artifacts,o),audits:await Hz(a.audits,o),categories:a.categories||null,groups:a.groups||null,settings:s};return z4(l),l=$4(l,e),l=Y4(l,s),M.timeEnd(r),{resolvedConfig:l}}
|
|
2133
2134
|
var Nye,qz,il=g(()=>{"use strict";d();ho();Ve();pi();PT();Wa();BT();K4();nI();_i();Ia();Nye=At.join("","../../config/default-config.js"),qz={FullPageScreenshot:1,BFCacheFailures:1};i(Mye,"resolveWorkingCopy");i(Oye,"resolveExtensions");i(Pye,"resolveArtifactDependencies");i(Lye,"resolveArtifactsToDefns");i(Fye,"overrideSettingsForGatherMode");i(Uye,"overrideThrottlingWindows");i(oo,"initializeConfig")});var zz={};x(zz,{default:()=>Bye});var Bye,Gz=g(()=>{d();Bye={}});async function qye(e){if(e.flags.enableErrorReporting&&sl._shouldSample())try{let t=await Promise.resolve().then(()=>(Gz(),zz));t.init({...e.environmentData,dsn:jye});let n=e.flags;try{let{resolvedConfig:s}=await oo("navigation",e.config,e.flags);n=s.settings}catch{}let r={channel:n.channel,formFactor:n.formFactor,throttlingMethod:n.throttlingMethod};t.setTags(r);let a={...n.throttling,url:e.url};t.setExtras(a),sl.captureMessage=(...s)=>t.captureMessage(...s),sl.captureBreadcrumb=(...s)=>t.addBreadcrumb(...s),sl.getContext=()=>a;let o=new Map;sl.captureException=async(s,c={})=>{if(!s||s.expected)return;let l=c.tags||{};if(l.audit){let u=`audit-${l.audit}-${s.message}`;if(o.has(u))return;o.set(u,!0)}if(l.gatherer){let u=`gatherer-${l.gatherer}-${s.message}`;if(o.has(u))return;o.set(u,!0)}s.protocolMethod&&(c.fingerprint=["{{ default }}",s.protocolMethod,s.protocolError],c.tags=c.tags||{},c.tags.protocolMethod=s.protocolMethod),t.withScope(u=>{c.level&&u.setLevel(c.level),c.tags&&u.setTags(
|
|
2134
|
-
c.tags);let m;c.extra&&(m={...c.extra}),s.extra&&(m={...m,...s.extra}),m&&u.setExtras(m),t.captureException(s)})}}catch{M.warn("sentry","Could not load Sentry, errors will not be reported.")}}var jye,Hye,rI,sl,
|
|
2135
|
+
c.tags);let m;c.extra&&(m={...c.extra}),s.extra&&(m={...m,...s.extra}),m&&u.setExtras(m),t.captureException(s)})}}catch{M.warn("sentry","Could not load Sentry, errors will not be reported.")}}var jye,Hye,rI,sl,bn,zo=g(()=>{"use strict";d();Ve();il();jye="https://a6bb0da87ee048cc9ae2a345fc09ab2e:63a7029f46f74265981b7e005e0f69f8@sentry.io/174697",Hye=.01,rI=i(()=>{},"noop"),sl={init:qye,captureMessage:rI,captureBreadcrumb:rI,getContext:rI,captureException:i(async()=>{},"captureException"),_shouldSample(){return Hye>=Math.random()}};i(qye,"init");bn=sl});var cl,Wz=g(()=>{d();cl={}});var ll,w1=g(()=>{"use strict";d();Wz();ll=class e{static{i(this,"ReportGenerator")}static replaceStrings(t,n){if(n.length===0)return t;let r=n[0],a=n.slice(1);return t.split(r.search).map(o=>e.replaceStrings(o,a)).join(r.replacement)}static sanitizeJson(t){return JSON.stringify(t).replace(/</g,"\\u003c").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}static generateReportHtml(t){let n=e.sanitizeJson(t),r=cl.REPORT_JAVASCRIPT.replace(/<\//g,"\\u003c/");return e.replaceStrings(cl.REPORT_TEMPLATE,[{search:"%%LIGHTHOUSE_JSON%%",replacement:n},{search:"%%LIGHTHOUSE_JAVASCRIPT%%",replacement:r}])}static generateFlowReportHtml(t){let n=e.sanitizeJson(t),r=cl.FLOW_REPORT_JAVASCRIPT.replace(/<\//g,"\\u003c/");return e.replaceStrings(cl.FLOW_REPORT_TEMPLATE,[{search:"%%LIGHTHOUSE_FLOW_JSON%%",replacement:n},{search:"%%LIGHTHOUSE_FLOW_JAVASCRIPT%%",replacement:r},{search:"/*%%LIGHTHOUSE_FLOW_CSS%%*/",replacement:cl.FLOW_REPORT_CSS}])}static generateReportCSV(t){let a=i(l=>`"${l.replace(
|
|
2135
2136
|
/"/g,'""')}"`,"escape"),o=i(l=>l.map(u=>u===null?"null":u.toString()).map(a),"rowFormatter"),s=[],c=["requestedUrl","finalDisplayedUrl","fetchTime","gatherMode"];s.push(o(c)),s.push(o(c.map(l=>t[l]??null))),s.push([]),s.push(["category","score"]);for(let l of Object.values(t.categories))s.push(o([l.id,l.score]));s.push([]),s.push(["category","audit","score","displayValue","description"]);for(let l of Object.values(t.categories))for(let u of l.auditRefs){let m=t.audits[u.id];m&&s.push(o([l.id,u.id,m.score,m.displayValue||"",m.description]))}return s.map(l=>l.join(",")).join(`\r
|
|
2136
|
-
`)}static isFlowResult(t){return"steps"in t}static generateReport(t,n){let r=Array.isArray(n);typeof n=="string"&&(n=[n]);let a=n.map(o=>{if(o==="html")return e.isFlowResult(t)?e.generateFlowReportHtml(t):e.generateReportHtml(t);if(o==="csv"){if(e.isFlowResult(t))throw new Error("CSV output is not support for user flows");return e.generateReportCSV(t)}if(o==="json")return JSON.stringify(t,null,2);throw new Error("Invalid output mode: "+o)});return r?a:a[0]}}});var
|
|
2137
|
+
`)}static isFlowResult(t){return"steps"in t}static generateReport(t,n){let r=Array.isArray(n);typeof n=="string"&&(n=[n]);let a=n.map(o=>{if(o==="html")return e.isFlowResult(t)?e.generateFlowReportHtml(t):e.generateReportHtml(t);if(o==="csv"){if(e.isFlowResult(t))throw new Error("CSV output is not support for user flows");return e.generateReportCSV(t)}if(o==="json")return JSON.stringify(t,null,2);throw new Error("Invalid output mode: "+o)});return r?a:a[0]}}});var wn,pi=g(()=>{"use strict";d();fo();ho();Ve();Pl();nM();$();Ia();FO();B4();zo();w1();rn();tf();_i();$m();un();wn=class e{static{i(this,"Runner")}static async audit(t,n){let{resolvedConfig:r,computedCache:a}=n,o=r.settings;try{let s={msg:"Audit phase",id:"lh:runner:audit"};M.time(s,"verbose");let c=[];if(o.gatherMode&&!o.auditMode)return;if(!r.audits)throw new Error("No audits to evaluate.");let l=await e._runAudits(o,r.audits,t,c,a),u={msg:"Generating results...",id:"lh:runner:generate"};M.time(u),t.LighthouseRunWarnings&&c.push(...t.LighthouseRunWarnings);let p={"axe-core":t.Accessibility?.version},f={};r.categories&&(f=Hp.scoreAllCategories(r.categories,l)),M.timeEnd(u),M.timeEnd(s);let h=t.FullPageScreenshot;(r.settings.disableFullPageScreenshot||h instanceof Error)&&(h=void 0);let y={lighthouseVersion:MO,requestedUrl:t.URL.requestedUrl,mainDocumentUrl:t.URL.mainDocumentUrl,finalDisplayedUrl:t.URL.finalDisplayedUrl,finalUrl:t.URL.mainDocumentUrl,fetchTime:t.fetchTime,gatherMode:t.
|
|
2137
2138
|
GatherContext.gatherMode,runtimeError:e.getArtifactRuntimeError(t),runWarnings:c,userAgent:t.HostUserAgent,environment:{networkUserAgent:t.NetworkUserAgent,hostUserAgent:t.HostUserAgent,benchmarkIndex:t.BenchmarkIndex,credits:p},audits:l,configSettings:o,categories:f,categoryGroups:r.groups||void 0,stackPacks:LO(t.Stacks),entities:await e.getEntityClassification(t,{computedCache:a}),fullPageScreenshot:h,timing:this._getTiming(t),i18n:{rendererFormattedStrings:YM(o.locale),icuMessagePaths:{}}};y.i18n.icuMessagePaths=Ny(y,o.locale);let b=y;if(o.auditMode){let C=e._getDataSavePath(o);F4(b,C)}let w=ll.generateReport(b,o.output);return{lhr:b,artifacts:t,report:w}}catch(s){throw e.createRunnerError(s,o)}}static async getEntityClassification(t,n){let r=t.DevtoolsLog;if(!r)return;let a=await si.request({URL:t.URL,devtoolsLog:r},n),o=[];for(let[s,c]of a.urlsByEntity){let l=new Set;for(let m of c){let p=Ce.getOrigin(m);p&&l.add(p)}let u={name:s.name,homepage:s.homepage,origins:[...l]};s===a.firstParty&&
|
|
2138
|
-
(u.isFirstParty=!0),s.isUnrecognized&&(u.isUnrecognized=!0),s.category&&(u.category=s.category),o.push(u)}return o}static async gather(t,n){let r=n.resolvedConfig.settings;try{let a=
|
|
2139
|
+
(u.isFirstParty=!0),s.isUnrecognized&&(u.isUnrecognized=!0),s.category&&(u.category=s.category),o.push(u)}return o}static async gather(t,n){let r=n.resolvedConfig.settings;try{let a=bn.getContext();if(bn.captureBreadcrumb({message:"Run started",category:"lifecycle",data:a}),r.auditMode&&!r.gatherMode){let c=this._getDataSavePath(r);return P4(c)}let o={msg:"Gather phase",id:"lh:runner:gather"};M.time(o,"verbose");let s=await t({resolvedConfig:n.resolvedConfig});if(M.timeEnd(o),s.Timing=M.takeTimeEntries(),r.gatherMode){let c=this._getDataSavePath(r);await L4(s,c)}return s}catch(a){throw e.createRunnerError(a,r)}}static createRunnerError(t,n){return t.friendlyMessage&&(t.friendlyMessage=Ii(t.friendlyMessage,n.locale)),bn.captureException(t,{level:"fatal"}),t}static _getTiming(t){let n=t.Timing||[],r=M.takeTimeEntries(),a=[...n,...r].map(m=>[`${m.startTime}-${m.name}-${m.duration}`,m]),o=Array.from(new Map(a).values()).map(m=>({startTime:parseFloat(m.startTime.toFixed(2)),name:m.name,duration:parseFloat(
|
|
2139
2140
|
m.duration.toFixed(2)),entryType:m.entryType})).sort((m,p)=>m.startTime-p.startTime),s=o.find(m=>m.name==="lh:runner:gather"),c=o.find(m=>m.name==="lh:runner:audit"),l=s?.duration||0,u=c?.duration||0;return{entries:o,total:l+u}}static async _runAudits(t,n,r,a,o){let s={msg:"Analyzing and running audits...",id:"lh:runner:auditing"};if(M.time(s),r.settings){let u={locale:void 0,gatherMode:void 0,auditMode:void 0,output:void 0,channel:void 0},m=Object.assign({},r.settings,u),p=Object.assign({},t,u),f=new Set([...Object.keys(m),...Object.keys(p)]);for(let h of f)if(!Jr(m[h],p[h]))throw new Error(`Cannot change settings between gathering and auditing…
|
|
2140
2141
|
Difference found at: \`${h}\`: ${JSON.stringify(m[h],null,2)}
|
|
2141
2142
|
vs: ${JSON.stringify(p[h],null,2)}`);if(!Jr(m,p))throw new Error("Cannot change settings between gathering and auditing")}let c={settings:t,computedCache:o},l={};for(let u of n){let m=u.implementation.meta.id,p=await e._runAudit(u,r,c,a);l[m]=p}return M.timeEnd(s),l}static async _runAudit(t,n,r,a){let o=t.implementation,s={msg:`Auditing: ${Ii(o.meta.title,"en-US")}`,id:`lh:audit:${o.meta.id}`};M.time(s);let c;try{if(n.PageLoadError)throw n.PageLoadError;for(let h of o.meta.requiredArtifacts){if(n[h]===void 0)throw M.warn("Runner",`${h} gatherer, required by audit ${o.meta.id}, did not run.`),new z(z.errors.MISSING_REQUIRED_ARTIFACT,{artifactName:h});if(n[h]instanceof Error){let b=n[h];M.warn("Runner",`${h} gatherer, required by audit ${o.meta.id}, encountered an error: ${b.message}`);let w=new z(z.errors.ERRORED_REQUIRED_ARTIFACT,{artifactName:h,errorMessage:b.message},{cause:b});throw w.expected=!0,w}}let u={options:Object.assign({},o.defaultOptions,t.options),...r},p=o.meta.requiredArtifacts.
|
|
2142
|
-
concat(o.meta.__internalOptionalArtifacts||[]).reduce((h,y)=>{let b=n[y];return h[y]=b,h},{}),f=await o.audit(p,u);a.push(...f.runWarnings||[]),c=E.generateAuditResult(o,f)}catch(l){l.code!=="MISSING_REQUIRED_ARTIFACT"&&l.code!=="ERRORED_REQUIRED_ARTIFACT"&&M.warn(o.meta.id,`Caught exception: ${l.message}`),
|
|
2143
|
+
concat(o.meta.__internalOptionalArtifacts||[]).reduce((h,y)=>{let b=n[y];return h[y]=b,h},{}),f=await o.audit(p,u);a.push(...f.runWarnings||[]),c=E.generateAuditResult(o,f)}catch(l){l.code!=="MISSING_REQUIRED_ARTIFACT"&&l.code!=="ERRORED_REQUIRED_ARTIFACT"&&M.warn(o.meta.id,`Caught exception: ${l.message}`),bn.captureException(l,{tags:{audit:o.meta.id},level:"error"});let u=l.friendlyMessage?l.friendlyMessage:l.message,m=l.cause?.stack??l.stack;c=E.generateErrorAuditResult(o,u,m)}return M.timeEnd(s),c}static getArtifactRuntimeError(t){let n=[["PageLoadError",t.PageLoadError],...Object.entries(t)];for(let[r,a]of n)if(a instanceof z&&a.lhrRuntimeError){let s=a.friendlyMessage||a.message,c=a.cause?.stack??a.stack;return{code:a.code,message:s,errorStack:c,artifactKey:r}}}static getAuditList(){let t=["audit.js","violation-audit.js","accessibility/axe-audit.js","multi-check-audit.js","byte-efficiency/byte-efficiency-audit.js","manual/manual-audit.js","insights/insight-audit.js"];return["acce\
|
|
2143
2144
|
ssibility","audit.js","autocomplete.js","bf-cache.js","bootup-time.js","byte-efficiency","clickjacking-mitigation.js","csp-xss.js","deprecations.js","diagnostics.js","dobetterweb","errors-in-console.js","final-screenshot.js","has-hsts.js","image-aspect-ratio.js","image-size-responsive.js","insights","is-on-https.js","layout-shifts.js","long-tasks.js","main-thread-tasks.js","mainthread-work-breakdown.js","manual","metrics","metrics.js","network-requests.js","network-rtt.js","network-server-latency.js","non-composited-animations.js","oopif-iframe-test-audit.js","origin-isolation.js","predictive-perf.js","redirects-http.js","redirects.js","resource-summary.js","screenshot-thumbnails.js","script-treemap-data.js","seo","server-response-time.js","third-party-cookies.js","trusted-types-xss.js","unsized-images.js","user-timings.js","valid-source-maps.js","violation-audit.js",...["charset.js","doctype.js","geolocation-on-start.js","inspector-issues.js","js-libraries.js","notification-on-start.j\
|
|
2144
2145
|
s","paste-preventing-inputs.js"].map(r=>`dobetterweb/${r}`),...["cumulative-layout-shift.js","first-contentful-paint.js","interaction-to-next-paint.js","interactive.js","largest-contentful-paint.js","max-potential-fid.js","speed-index.js","total-blocking-time.js"].map(r=>`metrics/${r}`),...["canonical.js","crawlable-anchors.js","hreflang.js","http-status-code.js","is-crawlable.js","link-text.js","manual","meta-description.js","robots-txt.js"].map(r=>`seo/${r}`),...["structured-data.js"].map(r=>`seo/manual/${r}`),...["accesskeys.js","aria-allowed-attr.js","aria-allowed-role.js","aria-command-name.js","aria-conditional-attr.js","aria-deprecated-role.js","aria-dialog-name.js","aria-hidden-body.js","aria-hidden-focus.js","aria-input-field-name.js","aria-meter-name.js","aria-progressbar-name.js","aria-prohibited-attr.js","aria-required-attr.js","aria-required-children.js","aria-required-parent.js","aria-roles.js","aria-text.js","aria-toggle-field-name.js","aria-tooltip-name.js","aria-treeit\
|
|
2145
2146
|
em-name.js","aria-valid-attr-value.js","aria-valid-attr.js","axe-audit.js","button-name.js","bypass.js","color-contrast.js","definition-list.js","dlitem.js","document-title.js","duplicate-id-aria.js","empty-heading.js","form-field-multiple-labels.js","frame-title.js","heading-order.js","html-has-lang.js","html-lang-valid.js","html-xml-lang-mismatch.js","identical-links-same-purpose.js","image-alt.js","image-redundant-alt.js","input-button-name.js","input-image-alt.js","label-content-name-mismatch.js","label.js","landmark-one-main.js","link-in-text-block.js","link-name.js","list.js","listitem.js","manual","meta-refresh.js","meta-viewport.js","object-alt.js","select-name.js","skip-link.js","tabindex.js","table-duplicate-name.js","table-fake-caption.js","target-size.js","td-has-header.js","td-headers-attr.js","th-has-data-cells.js","valid-lang.js","video-caption.js"].map(r=>`accessibility/${r}`),...["custom-controls-labels.js","custom-controls-roles.js","focus-traps.js","focusable-control\
|
|
@@ -2149,24 +2150,24 @@ r)&&!t.includes(r)).sort()}static getGathererList(){return["accessibility.js","a
|
|
|
2149
2150
|
return t==="page"||t==="iframe"||t==="worker"}rootSession(){let t=this._rootCdpSession.id();return this._findSession(t)}mainFrameExecutionContexts(){return[...this._executionContextIdToDescriptions.values()].filter(t=>t.auxData.frameId===this._mainFrameId)}async _onSessionAttached(t){let n=new E1(t),r;try{let{targetInfo:a}=await n.sendCommand("Target.getTargetInfo");if(r=a.type,!this._isAcceptedTargetType(r))return;let o=a.targetId;if(this._targetIdToTargets.has(o))return;n.setTargetInfo(a);let s=a.url||a.targetId;M.verbose("target-manager",`target ${s} attached`);let l=this._getProtocolEventListener(r,n.id());t.on("*",l),t.on("sessionattached",this._onSessionAttached);let u={target:a,cdpSession:t,session:n,protocolListener:l};this._targetIdToTargets.set(o,u),await n.sendCommand("Network.enable"),await n.sendCommand("Target.setAutoAttach",{autoAttach:!0,flatten:!0,waitForDebuggerOnStart:!0})}catch(a){if(/Target closed/.test(a.message)||/'Target.getTargetInfo' wasn't found/.test(a))return;
|
|
2150
2151
|
if(r==="worker"){M.warn("target-manager",`Issue attaching to worker target: ${a}`);return}throw a}finally{await n.sendCommandAndIgnore("Runtime.runIfWaitingForDebugger")}}_onExecutionContextCreated(t){t.context.name.match(/^__puppeteer_utility_world__/)||t.context.name!=="lighthouse_isolated_context"&&this._executionContextIdToDescriptions.set(t.context.uniqueId,t.context)}_onExecutionContextDestroyed(t){this._executionContextIdToDescriptions.delete(t.executionContextUniqueId)}_onExecutionContextsCleared(){this._executionContextIdToDescriptions.clear()}_getProtocolEventListener(t,n){return i((a,o)=>{let s={method:a,params:o,targetType:t,sessionId:n};this.emit("protocolevent",s)},"onProtocolEvent")}async enable(){this._enabled||(this._enabled=!0,this._targetIdToTargets=new Map,this._executionContextIdToDescriptions=new Map,this._rootCdpSession.on("Page.frameNavigated",this._onFrameNavigated),this._rootCdpSession.on("Runtime.executionContextCreated",this._onExecutionContextCreated),this.
|
|
2151
2152
|
_rootCdpSession.on("Runtime.executionContextDestroyed",this._onExecutionContextDestroyed),this._rootCdpSession.on("Runtime.executionContextsCleared",this._onExecutionContextsCleared),await this._rootCdpSession.send("Page.enable"),await this._rootCdpSession.send("Runtime.enable"),this._mainFrameId=(await this._rootCdpSession.send("Page.getFrameTree")).frameTree.frame.id,await this._onSessionAttached(this._rootCdpSession))}async disable(){this._rootCdpSession.off("Page.frameNavigated",this._onFrameNavigated),this._rootCdpSession.off("Runtime.executionContextCreated",this._onExecutionContextCreated),this._rootCdpSession.off("Runtime.executionContextDestroyed",this._onExecutionContextDestroyed),this._rootCdpSession.off("Runtime.executionContextsCleared",this._onExecutionContextsCleared);for(let{cdpSession:t,protocolListener:n}of this._targetIdToTargets.values())t.off("*",n),t.off("sessionattached",this._onSessionAttached);await this._rootCdpSession.send("Page.disable").catch(t=>{}),await this.
|
|
2152
|
-
_rootCdpSession.send("Runtime.disable").catch(t=>{}),this._enabled=!1,this._targetIdToTargets=new Map,this._executionContextIdToDescriptions=new Map,this._mainFrameId=""}}});var x1,Xz=g(()=>{"use strict";d();
|
|
2153
|
+
_rootCdpSession.send("Runtime.disable").catch(t=>{}),this._enabled=!1,this._targetIdToTargets=new Map,this._executionContextIdToDescriptions=new Map,this._mainFrameId=""}}});var x1,Xz=g(()=>{"use strict";d();Sn();x1=class{static{i(this,"Fetcher")}constructor(t){this.session=t}async fetchResource(t,n={timeout:2e3}){return globalThis.isLightrider?this._wrapWithTimeout(this._fetchWithFetchApi(t),n.timeout):this._fetchResourceOverProtocol(t,n)}async _fetchWithFetchApi(t){let n=await fetch(t),r=null;try{r=await n.text()}catch{}return{content:r,status:n.status}}async _readIOStream(t,n={timeout:2e3}){let r=Date.now(),a,o="";for(;!a||!a.eof;){if(Date.now()-r>n.timeout)throw new Error("Waiting for the end of the IO stream exceeded the allotted time.");a=await this.session.sendCommand("IO.read",{handle:t});let c=a.base64Encoded?Buffer.from(a.data,"base64").toString("utf-8"):a.data;o=o.concat(c)}return o}async _loadNetworkResource(t){let n=await this.session.sendCommand("Page.getFrameTree"),r=await this.session.sendCommand("Network.loadNetworkResource",{frameId:n.frameTree.frame.id,url:t,options:{disableCache:!0,includeCredentials:!0}});return{stream:r.resource.success&&
|
|
2153
2154
|
r.resource.stream||null,status:r.resource.httpStatusCode||null}}async _fetchResourceOverProtocol(t,n){let r=Date.now(),a=await this._wrapWithTimeout(this._loadNetworkResource(t),n.timeout),o=a.status&&a.status>=200&&a.status<=299;if(!a.stream||!o)return{status:a.status,content:null};let s=n.timeout-(Date.now()-r),c=await this._readIOStream(a.stream,{timeout:s});return{status:a.status,content:c}}async _wrapWithTimeout(t,n){let r,a=new Promise((s,c)=>{r=setTimeout(c,n,new Error("Timed out fetching resource"))});return await Promise.race([t,a]).finally(()=>clearTimeout(r))}}});var Gn,aI,fi,S1=g(()=>{"use strict";d();Ve();gg();Kz();Xz();Mk();Gn=i(()=>{throw new Error("Session not connected")},"throwNotConnectedFn"),aI={setTargetInfo:Gn,hasNextProtocolTimeout:Gn,getNextProtocolTimeout:Gn,setNextProtocolTimeout:Gn,on:Gn,once:Gn,off:Gn,sendCommand:Gn,sendCommandAndIgnore:Gn,dispose:Gn,onCrashPromise:Gn},fi=class{static{i(this,"Driver")}constructor(t){this._page=t,this._targetManager=void 0,this._networkMonitor=void 0,this._executionContext=void 0,this._fetcher=void 0,this.defaultSession=aI}get executionContext(){return this._executionContext?this._executionContext:Gn()}get fetcher(){return this._fetcher?this._fetcher:Gn()}get targetManager(){return this._targetManager?this._targetManager:Gn()}get networkMonitor(){return this._networkMonitor?this._networkMonitor:Gn()}async url(){return this._page.url()}async connect(){if(this.defaultSession!==aI)return;let t={msg:"Connecting to browser",id:"lh:driver:connect"};M.time(t);let n=await this._page.target().createCDPSession();
|
|
2154
|
-
this._targetManager=new T1(n),await this._targetManager.enable(),this._networkMonitor=new Tc(this._targetManager),await this._networkMonitor.enable(),this.defaultSession=this._targetManager.rootSession(),this._executionContext=new Ho(this.defaultSession),this._fetcher=new x1(this.defaultSession),M.timeEnd(t)}async disconnect(){this.defaultSession!==aI&&(await this._targetManager?.disable(),await this._networkMonitor?.disable(),await this.defaultSession.dispose())}}});function Jz(e,t){let n=new Error(`Dependency "${e.id}" failed with exception: ${t.message}`);return n.expected=!0,n}function ul(){return{startInstrumentation:{},startSensitiveInstrumentation:{},stopSensitiveInstrumentation:{},stopInstrumentation:{},getArtifact:{}}}async function rr(e){let{driver:t,page:n,artifactDefinitions:r,artifactState:a,baseArtifacts:o,phase:s,gatherMode:c,computedCache:l,settings:u}=e,m=Vye[s],p=m&&a[m]||{},f=s==="getArtifact";for(let h of r){M.verbose(`artifacts:${s}`,h.id);let y=h.gatherer.instance,w=(p[h.id]||Promise.resolve()).then(async()=>{let C=f?await $ye(h,a.getArtifact):{},k={msg:`Getting artifact: ${h.id}`,id:`lh:gather:getArtifact:${h.id}`};f&&M.time(k);let R=await y[s]({gatherMode:c,driver:t,page:n,baseArtifacts:o,dependencies:C,computedCache:l,settings:u});return f&&M.timeEnd(k),R});await w.catch(C=>{
|
|
2155
|
+
this._targetManager=new T1(n),await this._targetManager.enable(),this._networkMonitor=new Tc(this._targetManager),await this._networkMonitor.enable(),this.defaultSession=this._targetManager.rootSession(),this._executionContext=new Ho(this.defaultSession),this._fetcher=new x1(this.defaultSession),M.timeEnd(t)}async disconnect(){this.defaultSession!==aI&&(await this._targetManager?.disable(),await this._networkMonitor?.disable(),await this.defaultSession.dispose())}}});function Jz(e,t){let n=new Error(`Dependency "${e.id}" failed with exception: ${t.message}`);return n.expected=!0,n}function ul(){return{startInstrumentation:{},startSensitiveInstrumentation:{},stopSensitiveInstrumentation:{},stopInstrumentation:{},getArtifact:{}}}async function rr(e){let{driver:t,page:n,artifactDefinitions:r,artifactState:a,baseArtifacts:o,phase:s,gatherMode:c,computedCache:l,settings:u}=e,m=Vye[s],p=m&&a[m]||{},f=s==="getArtifact";for(let h of r){M.verbose(`artifacts:${s}`,h.id);let y=h.gatherer.instance,w=(p[h.id]||Promise.resolve()).then(async()=>{let C=f?await $ye(h,a.getArtifact):{},k={msg:`Getting artifact: ${h.id}`,id:`lh:gather:getArtifact:${h.id}`};f&&M.time(k);let R=await y[s]({gatherMode:c,driver:t,page:n,baseArtifacts:o,dependencies:C,computedCache:l,settings:u});return f&&M.timeEnd(k),R});await w.catch(C=>{bn.captureException(C,{tags:{gatherer:h.id,phase:s},level:"error"}),M.error(h.id,C.message)}),a[s][h.id]=w}}async function $ye(e,t){if(!e.dependencies)
|
|
2155
2156
|
return{};let n=Object.entries(e.dependencies).map(async([r,a])=>{let o=t[a.id];if(o===void 0)throw new Error(`"${a.id}" did not run`);if(o instanceof Error)throw Jz(a,o);let s=Promise.resolve().then(()=>o).catch(c=>Promise.reject(Jz(a,c)));return[r,await s]});return Object.fromEntries(await Promise.all(n))}async function dl(e){let t={};for(let[n,r]of Object.entries(e.getArtifact)){let a=await r.catch(o=>o);a!==void 0&&(t[n]=a)}return t}var Vye,C1=g(()=>{"use strict";d();Ve();zo();i(Jz,"createDependencyError");i(ul,"getEmptyArtifactState");Vye={startInstrumentation:void 0,startSensitiveInstrumentation:"startInstrumentation",stopSensitiveInstrumentation:"startSensitiveInstrumentation",stopInstrumentation:"stopSensitiveInstrumentation",getArtifact:"stopInstrumentation"};i(rr,"collectPhaseArtifacts");i($ye,"collectArtifactDependencies");i(dl,"awaitArtifacts")});async function ml(e,t,n){let r=await x8(t.executionContext),{userAgent:a,product:o}=await wg(t.defaultSession),s=await S8(t.executionContext);return{fetchTime:new Date().toJSON(),Timing:[],LighthouseRunWarnings:[],settings:e.settings,BenchmarkIndex:r,HostDPR:s,HostUserAgent:a,HostFormFactor:a.includes("Android")||a.includes("Mobile")?"mobile":"desktop",HostProduct:o,URL:{finalDisplayedUrl:""},PageLoadError:null,GatherContext:n}}function Yye(e){let t=[];for(let n of e)t.some(r=>Jr(n,r))||t.push(n);return t}function pl(e,t){e.LighthouseRunWarnings.push(...C8({settings:e.settings,baseArtifacts:e}));let n={...e,...t};if(n.Timing=M.getTimeEntries(),n.LighthouseRunWarnings=Yye(e.LighthouseRunWarnings),n.PageLoadError&&!n.URL.finalDisplayedUrl&&(n.URL.finalDisplayedUrl=n.URL.requestedUrl||""),!n.URL.finalDisplayedUrl)throw new Error("Runner did not set finalDisplayedUrl");return n}var k1=g(()=>{"use strict";d();Ve();Pl();tx();i(ml,"getBaseArtifacts");i(Yye,"deduplicateWarnings");i(pl,"finaliz\
|
|
2156
|
-
eArtifacts")});async function oI(e,t={}){let{flags:n={},config:r}=t;M.setLevel(n.logLevel||"error");let{resolvedConfig:a}=await oo("snapshot",r,n),o=new fi(e);await o.connect();let s=new Map,c=await o.url(),l={resolvedConfig:a,computedCache:s},u=i(async()=>{let p=await ml(a,o,{gatherMode:"snapshot"});p.URL={finalDisplayedUrl:c};let f=a.artifacts||[],h=ul();await rr({phase:"getArtifact",gatherMode:"snapshot",driver:o,page:e,baseArtifacts:p,artifactDefinitions:f,artifactState:h,computedCache:s,settings:a.settings}),await o.disconnect();let y=await dl(h);return pl(p,y)},"gatherFn");return{artifacts:await
|
|
2157
|
+
eArtifacts")});async function oI(e,t={}){let{flags:n={},config:r}=t;M.setLevel(n.logLevel||"error");let{resolvedConfig:a}=await oo("snapshot",r,n),o=new fi(e);await o.connect();let s=new Map,c=await o.url(),l={resolvedConfig:a,computedCache:s},u=i(async()=>{let p=await ml(a,o,{gatherMode:"snapshot"});p.URL={finalDisplayedUrl:c};let f=a.artifacts||[],h=ul();await rr({phase:"getArtifact",gatherMode:"snapshot",driver:o,page:e,baseArtifacts:p,artifactDefinitions:f,artifactState:h,computedCache:s,settings:a.settings}),await o.disconnect();let y=await dl(h);return pl(p,y)},"gatherFn");return{artifacts:await wn.gather(u,l),runnerOptions:l}}var iI=g(()=>{"use strict";d();Ve();S1();pi();C1();il();k1();i(oI,"snapshotGather")});async function _1(e,t,n){let r={msg:"Cleaning origin data",id:"lh:storage:clearDataForOrigin"};M.time(r);let a=[],o=new URL(t).origin,s=n.join(",");e.setNextProtocolTimeout(5e3);try{await e.sendCommand("Storage.clearDataForOrigin",{origin:o,storageTypes:s})}catch(c){if(c.code==="PROTOCOL_TIMEOUT")M.warn("Driver","clearDataForOrigin timed out"),a.push(sI(R1.warningOriginDataTimeout));else throw c}finally{M.timeEnd(r)}return a}async function Zz(e,t){let n=await e.sendCommand("Storage.getUsageAndQuota",{origin:t}),r={local_storage:"Local Storage",indexeddb:"IndexedDB",websql:"Web SQL"},a=n.usageBreakdown.filter(o=>o.usage).map(o=>r[o.storageType]||"").filter(Boolean);if(a.length)return sI(R1.warningData,{locations:a.join(", "),locationCount:a.length})}async function Qz(e){let t={msg:"Cleaning browser cache",id:"lh:storage:clearBrowserCaches"};M.time(t);let n=[];try{await e.sendCommand("Network.clearBrowserCache"),await e.sendCommand("Network.setCacheDisabled",{cacheDisabled:!0}),await e.sendCommand(
|
|
2157
2158
|
"Network.setCacheDisabled",{cacheDisabled:!1})}catch(r){if(r.code==="PROTOCOL_TIMEOUT")M.warn("Driver","clearBrowserCaches timed out"),n.push(sI(R1.warningCacheTimeout));else throw r}finally{M.timeEnd(t)}return n}var R1,sI,cI=g(()=>{"use strict";d();Ve();A();R1={warningData:`{locationCount, plural,
|
|
2158
2159
|
=1 {There may be stored data affecting loading performance in this location: {locations}. Audit this page in an incognito window to prevent those resources from affecting your scores.}
|
|
2159
2160
|
other {There may be stored data affecting loading performance in these locations: {locations}. Audit this page in an incognito window to prevent those resources from affecting your scores.}
|
|
2160
2161
|
}`,warningCacheTimeout:"Clearing the browser cache timed out. Try auditing this page again and file a bug if the issue persists.",warningOriginDataTimeout:"Clearing the origin data timed out. Try auditing this page again and file a bug if the issue persists."},sI=T("core/gather/driver/storage.js",R1);i(_1,"clearDataForOrigin");i(Zz,"getImportantStorageWarning");i(Qz,"clearBrowserCaches")});async function I1(e){let t=i(async()=>{await e.sendCommand("Debugger.enable"),await e.sendCommand("Debugger.setSkipAllPauses",{skip:!0}),await e.sendCommand("Debugger.setAsyncCallStackDepth",{maxDepth:8})},"enable");function n(){e.sendCommand("Debugger.resume")}i(n,"onDebuggerPaused");function r(a){a.frame.parentId||t().catch(o=>M.error("Driver",o))}return i(r,"onFrameNavigated"),e.on("Debugger.paused",n),e.on("Page.frameNavigated",r),await t(),async()=>{await e.sendCommandAndIgnore("Debugger.disable"),e.off("Debugger.paused",n),e.off("Page.frameNavigated",r)}}async function Kye(e,t){await e.executionContext.evaluateOnNewDocument(Je.wrapRequestIdleCallback,{args:[t.throttling.cpuSlowdownMultiplier]})}async function Xye(e){e.on("Page.javascriptDialogOpening",t=>{M.warn("Driver",`${t.type} dialog opened by the page automatically suppressed.`),e.sendCommand("Page.handleJavaScriptDialog",{accept:!0,promptText:"Lighthouse prompt response"}).catch(n=>M.warn("Driver",n))}),await e.sendCommand(
|
|
2161
2162
|
"Page.enable")}async function Jye(e,t,n){let r=[],a=await _1(e,t,n);r.push(...a);let o=await Qz(e);r.push(...o);let s=await Zz(e,t);return s&&r.push(s),{warnings:r}}async function tG(e,t){let n={msg:"Preparing network conditions",id:"lh:gather:prepareThrottlingAndNetwork"};M.time(n),await k8(e,t);let r=t.blockedUrlPatterns||[];await e.sendCommand("Network.setBlockedURLs",{urls:r});let a=t.extraHeaders;a&&await e.sendCommand("Network.setExtraHTTPHeaders",{headers:a}),M.timeEnd(n)}async function nG(e,t){await e.defaultSession.sendCommand("Network.enable"),await Eg(e.defaultSession,t)}async function rG(e,t){let n={msg:"Preparing target for timespan mode",id:"lh:prepare:timespanMode"};M.time(n),await nG(e,t),await tG(e.defaultSession,t),await aG(e),M.timeEnd(n)}async function aG(e){await e.executionContext.evaluate(Je.truncate,{args:["aaa",2]})}async function oG(e,t,n){let r={msg:"Preparing target for navigation mode",id:"lh:prepare:navigationMode"};M.time(r);let a=[];if(await nG(e,t),await Xye(
|
|
2162
2163
|
e.defaultSession),await e.executionContext.cacheNativesOnNewDocument(),t.throttlingMethod==="simulate"&&await Kye(e,t),await aG(e),!t.disableStorageReset&&typeof n=="string"){let{warnings:s}=await Jye(e.defaultSession,n,t.clearStorageTypes);a.push(...s)}return await tG(e.defaultSession,t),M.timeEnd(r),{warnings:a}}var lI=g(()=>{"use strict";d();Ve();cI();Tg();ur();i(I1,"enableAsyncStacks");i(Kye,"shimRequestIdleCallbackOnNewDocument");i(Xye,"dismissJavaScriptDialogs");i(Jye,"resetStorageForUrl");i(tG,"prepareThrottlingAndNetwork");i(nG,"prepareDeviceEmulation");i(rG,"prepareTargetForTimespanMode");i(aG,"warmUpIntlSegmenter");i(oG,"prepareTargetForNavigationMode")});async function uI(e,t={}){let{flags:n={},config:r}=t;M.setLevel(n.logLevel||"error");let{resolvedConfig:a}=await oo("timespan",r,n),o=new fi(e);await o.connect();let s=new Map,c=a.artifacts||[],l=await ml(a,o,{gatherMode:"timespan"}),u=ul(),m={driver:o,page:e,artifactDefinitions:c,artifactState:u,baseArtifacts:l,computedCache:s,gatherMode:"timespan",settings:a.settings};await rG(o,a.settings);let p=!1;function f(){p=!0}i(f,"onFrameNavigated"),o.defaultSession.on("Page.frameNavigated",f);let h=await I1(o.defaultSession);return await rr({phase:"startInstrumentation",...m}),await rr({phase:"startSensitiveInstrumentation",...m}),{async endTimespanGather(){let y=await o.url(),b={resolvedConfig:a,computedCache:s},w=i(async()=>{l.URL={finalDisplayedUrl:y},await rr({phase:"stopSensitiveInstrumentation",...m}),await rr({phase:"stopInstrumentation",...m}),await h(),o.defaultSession.off("Page.frameNavigated",f),p&&l.LighthouseRunWarnings.push(Qye(iG.warningNavigationDetected)),await rr({phase:"ge\
|
|
2163
|
-
tArtifact",...m}),await o.disconnect();let k=await dl(u);return pl(l,k)},"gatherFn");return{artifacts:await
|
|
2164
|
+
tArtifact",...m}),await o.disconnect();let k=await dl(u);return pl(l,k)},"gatherFn");return{artifacts:await wn.gather(w,b),runnerOptions:b}}}}var iG,Qye,dI=g(()=>{"use strict";d();Ve();S1();pi();C1();lI();il();k1();A();iG={warningNavigationDetected:"A page navigation was detected during the run. Using timespan mode to audit page navigations is not recommended. Use navigation mode to audit page navigations for better third-party attribution and main thread detection."},Qye=T("core/gather/timespan-runner.js",iG);i(uI,"startTimespanGather")});var sG,cG=g(()=>{d();sG={}});function ave(e){let{pauseAfterFcpMs:t,pauseAfterLoadMs:n,networkQuietThresholdMs:r,cpuQuietThresholdMs:a}=e,o=e.maxWaitForLoad,s=e.maxWaitForFcp;return typeof t!="number"&&(t=eve),typeof n!="number"&&(n=tve),typeof r!="number"&&(r=nve),typeof a!="number"&&(a=rve),typeof o!="number"&&(o=Sr.maxWaitForLoad),typeof s!="number"&&(s=Sr.maxWaitForFcp),e.waitUntil.includes("fcp")||(s=void 0),{pauseAfterFcpMs:t,pauseAfterLoadMs:n,networkQuietThresholdMs:r,cpuQuietThresholdMs:a,maxWaitForLoadedMs:o,maxWaitForFcpMs:s}}async function pI(e,t,n){let r=typeof t=="string"?{msg:`Navigating to ${t}`,id:"lh:driver:navigate"}:{msg:"Navigating using a user defined function",id:"lh:driver:navigate"};M.time(r);let a=e.defaultSession,o=e.networkMonitor;await a.sendCommand("Page.enable"),await a.sendCommand("Page.setLifecycleEventsEnabled",{enabled:!0});let s;typeof t=="string"?(a.setNextProtocolTimeout(1/0),s=a.sendCommand("Page.navigate",{url:t})):s=t();let c=n.waitUntil.includes("navigated"),l=n.waitUntil.includes(
|
|
2164
2165
|
"load"),u=n.waitUntil.includes("fcp"),m=[];if(c){let w=yg(a).promise;m.push(w.then(()=>({timedOut:!1})))}if(l){let w=ave(n);m.push(d8(a,o,w))}else if(u)throw new Error("Cannot wait for FCP without waiting for page load");let f=(await Promise.race([a.onCrashPromise(),Promise.all(m)])).some(w=>w.timedOut),h=await o.getNavigationUrls(),y=h.requestedUrl;if(typeof t=="string"&&(y&&!Ce.equalWithExcludedFragments(t,y)&&M.error("Navigation",`Provided URL (${t}) did not match initial navigation URL (${y})`),y=t),!y)throw Error("No navigations detected when running user defined requestor.");let b=h.mainDocumentUrl||y;return await s,n.debugNavigation&&await m8(e),M.timeEnd(r),{requestedUrl:y,mainDocumentUrl:b,warnings:ove({timedOut:f,mainDocumentUrl:b,requestedUrl:y})}}function ove(e){let{requestedUrl:t,mainDocumentUrl:n}=e,r=[];return e.timedOut&&r.push(lG(mI.warningTimeout)),Ce.equalWithExcludedFragments(t,n)||r.push(lG(mI.warningRedirected,{requested:t,final:n})),r}var mI,lG,eve,tve,nve,rve,uG=g(
|
|
2165
2166
|
()=>{"use strict";d();Ve();vg();Wa();A();un();mI={warningRedirected:"The page may not be loading as expected because your test URL ({requested}) was redirected to {final}. Try testing the second URL directly.",warningTimeout:"The page loaded too slowly to finish within the time limit. Results may be incomplete."},lG=T("core/gather/driver/navigation.js",mI),eve=0,tve=0,nve=5e3,rve=0;i(ave,"resolveWaitForFullyLoadedOptions");i(pI,"gotoURL");i(ove,"getNavigationWarnings")});function sve(e,t){if(e){if(e.failed){let n=e.localizedFailDescription;return n==="net::ERR_NAME_NOT_RESOLVED"||n==="net::ERR_NAME_RESOLUTION_FAILED"||n.startsWith("net::ERR_DNS_")?new z(z.errors.DNS_FAILURE):new z(z.errors.FAILED_DOCUMENT_REQUEST,{errorDetails:n})}else if(e.hasErrorStatusCode())if(t.ignoreStatusCode)t.warnings.push(dG(fI.warningStatusCode,{errorCode:e.statusCode}));else return new z(z.errors.ERRORED_DOCUMENT_REQUEST,{statusCode:`${e.statusCode}`})}else return new z(z.errors.NO_DOCUMENT_REQUEST)}function cve(e,t){if(!(!e||!t.find(r=>r.documentURL.startsWith("chrome-error://")))&&e.failed)return e.localizedFailDescription.startsWith("net::ERR_CERT")?new z(z.errors.INSECURE_DOCUMENT_REQUEST,{securityMessages:e.localizedFailDescription}):new z(z.errors.CHROME_INTERSTITIAL_ERROR)}function lve(e){if(e&&!(!e.mimeType||e.statusCode===-1)&&e.mimeType!==ive&&e.mimeType!==mG)return new z(z.errors.NOT_HTML,{mimeType:e.mimeType})}function pG(e,t){let{url:n,networkRecords:r}=t,a=ct.
|
|
2166
2167
|
NetworkAnalyzer.findResourceForUrl(r,n);if(!a){let u=r.filter(m=>m.resourceType===lt.TYPES.Document);u.length&&(a=u.reduce((m,p)=>p.networkRequestTime<m.networkRequestTime?p:m))}let o;if(a)o=ct.NetworkAnalyzer.resolveRedirects(a);else return e;o?.mimeType===mG&&t.warnings.push(dG(fI.warningXhtml));let s=sve(a,t),c=cve(a,r),l=lve(o);return c||s||l||e}var fI,dG,ive,mG,fG=g(()=>{"use strict";d();Jt();rn();qr();A();fI={warningXhtml:"The page MIME type is XHTML: Lighthouse does not explicitly support this document type",warningStatusCode:"Lighthouse was unable to reliably load the page you requested. Make sure you are testing the correct URL and that the server is properly responding to all requests. (Status code: {errorCode})"},dG=T("core/lib/navigation-error.js",fI),ive="text/html",mG="application/xhtml+xml";i(sve,"getNetworkError");i(cve,"getInterstitialError");i(lve,"getNonHtmlError");i(pG,"getPageLoadError")});async function mve({driver:e,resolvedConfig:t,requestor:n}){await e.connect(),typeof n=="string"&&!t.settings.skipAboutBlank&&(await e._networkMonitor?.disable(),await pI(e,t.settings.blankPage,{waitUntil:["navigated"]}),await e._networkMonitor?.enable());let r=await ml(t,e,{gatherMode:"navigation"}),{warnings:a}=await oG(e,t.settings,n);return r.LighthouseRunWarnings.push(...a),{baseArtifacts:r}}async function pve({driver:e}){await R8(e.defaultSession)}async function fve(e){let{driver:t,resolvedConfig:n,requestor:r}=e;try{let{requestedUrl:a,mainDocumentUrl:o,warnings:s}=await pI(t,r,{...n.settings,waitUntil:n.settings.pauseAfterFcpMs?["fcp","load"]:["load"]});return e.baseArtifacts.LighthouseRunWarnings.push(...s),{requestedUrl:a,mainDocumentUrl:o,navigationError:void 0}}catch(a){if(!(a instanceof z)||a.code!=="NO_FCP"&&a.code!=="PAGE_HUNG"&&a.code!=="TARGET_CRASHED"||typeof r!="string")throw a;return{requestedUrl:r,mainDocumentUrl:r,navigationError:a}}}async function hve(e,t){let n,r;
|
|
2167
2168
|
for(let o of t.artifactDefinitions){let{instance:s}=o.gatherer;s instanceof dr?n=s.getDebugData():s instanceof wi&&(r=s.getDebugData())}let a=n&&await Re.request(n,e);return{devtoolsLog:n,records:a,trace:r}}async function gve(e,t,n){let{navigationError:r,requestedUrl:a,mainDocumentUrl:o}=n,s=await hve(e,t),c=s.records?pG(r,{url:o,ignoreStatusCode:e.resolvedConfig.settings.ignoreStatusCode,networkRecords:s.records,warnings:e.baseArtifacts.LighthouseRunWarnings}):r;if(c){let l=e.resolvedConfig.settings.locale,u=Ii(c.friendlyMessage,l);M.error("NavigationRunner",u,a);let m={};return s.devtoolsLog&&(m.DevtoolsLogError=s.devtoolsLog),s.trace&&(m.TraceError=s.trace),e.baseArtifacts.LighthouseRunWarnings.push(c.friendlyMessage),e.baseArtifacts.PageLoadError=c,m}else return await rr({phase:"getArtifact",...t}),await dl(t.artifactState)}async function yve(e){if(!e.resolvedConfig.artifacts)throw new Error("No artifacts were defined on the config");let t=ul(),n={url:await e.driver.url(),gatherMode:"\
|
|
2168
2169
|
navigation",driver:e.driver,page:e.page,computedCache:e.computedCache,artifactDefinitions:e.resolvedConfig.artifacts,artifactState:t,baseArtifacts:e.baseArtifacts,settings:e.resolvedConfig.settings},r=await I1(e.driver.defaultSession);await rr({phase:"startInstrumentation",...n}),await rr({phase:"startSensitiveInstrumentation",...n});let a=await fve(e);return Object.values(n.baseArtifacts.URL).every(Boolean)||(n.baseArtifacts.URL={requestedUrl:a.requestedUrl,mainDocumentUrl:a.mainDocumentUrl,finalDisplayedUrl:await e.driver.url()}),n.url=a.mainDocumentUrl,await rr({phase:"stopSensitiveInstrumentation",...n}),await rr({phase:"stopInstrumentation",...n}),await r(),await pve(e),gve(e,n,a)}async function vve({requestedUrl:e,driver:t,resolvedConfig:n,lhBrowser:r,lhPage:a}){!n.settings.disableStorageReset&&e&&await _1(t.defaultSession,e,n.settings.clearStorageTypes),await t.disconnect(),await a?.close(),await r?.disconnect()}async function hI(e,t,n={}){let{flags:r={},config:a}=n;M.setLevel(r.
|
|
2169
|
-
logLevel||"error");let{resolvedConfig:o}=await oo("navigation",a,r),s=new Map,c=typeof t=="function",l={resolvedConfig:o,computedCache:s},u=i(async()=>{let p=c?t:Ce.normalizeUrl(t),f,h;if(!e){let{hostname:k=uve,port:R=dve}=r;f=await sG.connect({browserURL:`http://${k}:${R}`,defaultViewport:null}),h=await f.newPage(),e=h}let b={driver:new fi(e),lhBrowser:f,lhPage:h,page:e,resolvedConfig:o,requestor:p,computedCache:s},{baseArtifacts:w}=await mve(b),C=await yve({...b,baseArtifacts:w});return await vve(b),pl(w,C)},"gatherFn");return{artifacts:await
|
|
2170
|
+
logLevel||"error");let{resolvedConfig:o}=await oo("navigation",a,r),s=new Map,c=typeof t=="function",l={resolvedConfig:o,computedCache:s},u=i(async()=>{let p=c?t:Ce.normalizeUrl(t),f,h;if(!e){let{hostname:k=uve,port:R=dve}=r;f=await sG.connect({browserURL:`http://${k}:${R}`,defaultViewport:null}),h=await f.newPage(),e=h}let b={driver:new fi(e),lhBrowser:f,lhPage:h,page:e,resolvedConfig:o,requestor:p,computedCache:s},{baseArtifacts:w}=await mve(b),C=await yve({...b,baseArtifacts:w});return await vve(b),pl(w,C)},"gatherFn");return{artifacts:await wn.gather(u,l),runnerOptions:l}}var uve,dve,gI=g(()=>{"use strict";d();cG();Ve();S1();pi();C1();lI();uG();cI();Tg();il();k1();Ia();rn();un();fG();Cl();qo();Mt();uve="127.0.0.1",dve=9222;i(mve,"_setup");i(pve,"_cleanupNavigation");i(fve,"_navigate");i(hve,"_collectDebugData");i(gve,"_computeNavigationResult");i(yve,"_navigation");i(vve,"_cleanup");i(hI,"navigationGather")});var bve,sat,hG=g(()=>{"use strict";d();w1();iI();dI();gI();pi();il();Ia();nI();A();Sn();bve={defaultFlowName:"User flow ({url})",defaultNavigationName:"Navigation report ({url})",defaultTimespanName:"Timespan report ({url})",defaultSnapshotName:"Snapshot report ({url})"},sat=T("core/user-flow.js",bve)});var mat,gG=g(()=>{"use strict";d();Sn();Wa();mat={extends:"lighthouse:default",settings:{formFactor:"desktop",throttling:gc.desktopDense4G,screenEmulation:dg.desktop,emulatedUserAgent:Uo.desktop}}});async function wve(e,t={},n,r){return yI(r,e,{config:n,flags:t})}async function yI(e,t,n){let r=await hI(e,t,n);return wn.audit(r.artifacts,r.runnerOptions)}async function yG(e,t){let n=await oI(e,t);return wn.audit(n.artifacts,n.runnerOptions)}async function vG(e,t){let{endTimespanGather:n}=await uI(e,t);return{endTimespan:i(async()=>{let a=await n();return wn.audit(a.artifacts,a.runnerOptions)},"endTimespan")}}var kat,bG,b1=g(()=>{"use strict";d();Cl();pi();hG();w1();dI();iI();gI();Sn();$();bt();Mt();PT();gG();Sn();i(wve,"lighthouse");i(yI,"navigation");i(yG,"snapshot");i(vG,"startTimespan");kat=wi.getDefaultTraceCategories(),bG=wve});d();Tl();Ve();b1();A();Ia();Wa();c_();globalThis.Buffer=H;function Eve(e,t){let n={onlyCategories:e,screenEmulation:{disabled:!0},ignoreStatusCode:!0};return t==="desktop"&&(n.throttling=gc.desktopDense4G,n.emulatedUserAgent=Uo.desktop,n.formFactor="desktop"),{extends:"lighthouse:default",settings:n}}i(Eve,"createConfig");function Tve(e){M.events.addListener("status",e),M.events.addListener("warning",e)}i(Tve,"listenForStatus");function xve(e){return nf(e,XM())}i(xve,"lookupCanonicalLocale");typeof self<"u"?(globalThis.isDevtools=!0,self.navigation=yI,self.startTimespan=vG,self.snapshot=yG,self.createConfig=Eve,self.listenForStatus=Tve,self.registerLocaleData=ZM,self.lookupLocale=xve,self.thirdPartyWeb=$c):(globalThis.runBundledLighthouse=bG,globalThis.thirdPartyWeb=$c);})();
|
|
2170
2171
|
/*!
|
|
2171
2172
|
* The buffer module from node.js, for the browser.
|
|
2172
2173
|
*
|