1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,275931,e=>{"use strict";var t=e.i(504331),n=e.i(207761),i=e.i(760255),r=e.i(843399),o=e.i(834173),a=e.i(794131);let l=["4 / 3","3 / 4","1 / 1","3 / 4","4 / 3","1 / 1"];function s({photo:e}){let r=(0,i.useLocale)(),o=e.locationLabel?.["zh"===r?"zhHans":"en"],a=[...o?[{zh:"å°ç¹",en:"Location",value:o}]:[],...function(e){if(!e.camera)return[];let t=e.camera,n=[],i=[t.make,t.model].filter(Boolean).join(" ");return i&&n.push({zh:"ç¸æº",en:"Camera",value:i}),t.lens&&n.push({zh:"é头",en:"Lens",value:t.lens}),t.focalLengthMillimeters&&n.push({zh:"ç¦è·",en:"Focal",value:`${t.focalLengthMillimeters} mm`}),t.aperture&&n.push({zh:"å
å",en:"Aperture",value:`Æ/${t.aperture}`}),t.shutterSpeedSeconds&&n.push({zh:"å¿«é¨",en:"Shutter",value:t.shutterSpeedSeconds<1?`1/${Math.round(1/t.shutterSpeedSeconds)} s`:`${t.shutterSpeedSeconds} s`}),t.iso&&n.push({zh:"æå
度",en:"ISO",value:String(t.iso)}),n}(e)];return 0===a.length?null:(0,t.jsx)("div",{className:"mx-auto w-full max-w-xl px-5 text-foreground",children:(0,t.jsx)("dl",{className:"spec-plate spec-plate-flow zoom-detail-frame",children:a.map((e,i)=>(0,t.jsxs)("div",{className:"zoom-detail-item",style:{"--detail-index":i},children:[(0,t.jsx)("dt",{children:(0,t.jsx)(n.T,{zh:e.zh,en:e.en})}),(0,t.jsx)("dd",{children:e.value})]},e.en))})})}function d({photo:e,index:n,center:l}){let c=(0,i.useLocale)(),u=(0,r.localize)(c,e.altText.zhHans,e.altText.en),h=e.renditions.at(-1);return(0,t.jsx)("div",{className:"photo-item enter-swing",style:{"--enter-delay":`${120+50*Math.abs(n-l)}ms`,"--img-tilt":`${((0,o.tiltFromSlug)(e.id)/2).toFixed(2)}deg`},children:(0,t.jsxs)("div",{className:"photo-frame relative overflow-hidden",children:[(0,t.jsx)(a.ZoomImage,{src:h.src,renditions:e.renditions,alt:u,width:e.width,height:e.height,sizes:"(max-width: 704px) 50vw, 288px",expandedContent:(0,t.jsx)(s,{photo:e})}),(0,t.jsx)("span",{className:"calibration-corners","aria-hidden":!0})]})})}e.s(["PublishedPhotoWall",0,function({selection:e}){if(!e||0===e.items.length)return(0,t.jsx)("p",{className:"mt-6 border-t border-dashed border-border py-10 text-sm leading-6 text-muted-foreground",children:(0,t.jsx)(n.T,{zh:"è¿æ²¡æåå¸ç
§çã",en:"No photos have been published yet."})});let i=(e.items.length-1)/2;return(0,t.jsx)("div",{className:"photo-masonry mt-6",children:e.items.map((e,n)=>(0,t.jsx)(d,{photo:e,index:n,center:i},e.id))})},"PublishedPhotoWallLoading",0,function(){return(0,t.jsxs)("div",{className:"photo-masonry mt-6",role:"status","aria-busy":"true",children:[(0,t.jsx)("span",{className:"sr-only",children:(0,t.jsx)(n.T,{zh:"æ£å¨å è½½ç
§ç",en:"Loading photos"})}),l.map((e,n)=>(0,t.jsx)("span",{className:"photo-item photo-masonry-placeholder",style:{aspectRatio:e},"aria-hidden":!0},n))]})}])},794131,e=>{"use strict";var t=e.i(504331),n=e.i(81172),i=e.i(26688),r=e.i(907019),o=e.i(760255),a=e.i(843399);function l(){return window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1}e.s(["ZoomImage",0,function({src:e,alt:s,width:d,height:c,sizes:u,className:h,style:m,renditions:p,expandedContent:w}){let g=(0,o.useLocale)(),f=(0,i.useRef)(null),v=(0,i.useRef)(null),x=(0,i.useRef)(null),[y,b]=(0,i.useState)(null),[z,j]=(0,i.useState)("opening"),S=(0,i.useRef)(z);(0,i.useEffect)(()=>{S.current=z},[z]);let L=p?.reduce((e,t)=>!e||t.width>e.width?t:e,void 0)?.src??e,N=(0,i.useCallback)(({width:e})=>p?.reduce((t,n)=>n.width>=e&&(!t||n.width<t.width)?n:t,void 0)?.src??L,[L,p]),E=(0,i.useCallback)(()=>{if(L===e||x.current===L)return;let t=document.createElement("img");t.decoding="async",t.src=L,x.current=L},[L,e]),C=(0,i.useCallback)(e=>{let t,n=f.current?.querySelector("img");if(!n)return;let i=n.getBoundingClientRect(),r=Math.min(window.innerWidth-64,d),o=Number.isFinite(t=Number.parseFloat(window.getComputedStyle(document.documentElement).fontSize))?t:16,a=w?(window.innerWidth<40*o?7:4.5)*o:0,s=Math.min(r/d,Math.max(1,Math.min(window.innerHeight-64-a,c))/c),u=Math.round(d*s),h=Math.round(c*s),m={left:Math.round((window.innerWidth-u)/2),top:Math.round((window.innerHeight-a-h)/2),width:u,height:h},p=i.width/u,g=i.left+i.width/2-(m.left+u/2),v=i.top+i.height/2-(m.top+h/2),x=l(),y=0===e.detail||x;b({expandedSrc:L,target:m,from:`translate(${g}px, ${v}px) scale(${p})`,motion:y?"instant":"animated"}),j(y?"open":"opening")},[L,d,c,w]),k=(0,i.useCallback)(()=>{b(null),j("opening"),f.current?.focus({preventScroll:!0})},[]),M=(0,i.useCallback)(e=>{let t=l();if("escape"===e||t||y?.motion==="instant"||"opening"===S.current)return void k();if("open"!==S.current)return;let n=f.current?.querySelector("img");if(n){let e=n.getBoundingClientRect();b(t=>{if(!t)return t;let n=e.width/t.target.width,i=e.left+e.width/2-(t.target.left+t.target.width/2),r=e.top+e.height/2-(t.target.top+t.target.height/2);return{...t,from:`translate(${i}px, ${r}px) scale(${n})`}})}j("closing")},[k,y?.motion]);(0,i.useEffect)(()=>
1{if(!y||"opening"!==z)return;let e=requestAnimationFrame(()=>requestAnimationFrame(()=>j("open")));return()=>cancelAnimationFrame(e)},[y,z]),(0,i.useEffect)(()=>{if(y&&"open"===z&&v.current?.focus({preventScroll:!0}),"closing"!==z)return;let e=setTimeout(k,450);return()=>clearTimeout(e)},[y,z,k]),(0,i.useEffect)(()=>{if(!y)return;let e=e=>{"Escape"===e.key&&(e.preventDefault(),M("escape")),"Tab"===e.key&&e.preventDefault()},t=e=>{e.preventDefault(),M("viewport")},n={x:window.scrollX,y:window.scrollY},i=()=>{(window.scrollX!==n.x||window.scrollY!==n.y)&&M("viewport")},r=()=>M("viewport");return window.addEventListener("keydown",e),window.addEventListener("wheel",t,{passive:!1}),window.addEventListener("touchmove",t,{passive:!1}),window.addEventListener("scroll",i),window.addEventListener("resize",r),()=>{window.removeEventListener("keydown",e),window.removeEventListener("wheel",t),window.removeEventListener("touchmove",t),window.removeEventListener("scroll",i),window.removeEventListener("resize",r)}},[y,M]);let $="open"===z;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{ref:f,type:"button",className:"zoom-trigger",style:m,"aria-label":s?(0,a.localize)(g,`æ¾å¤§å¾çï¼${s}`,`Zoom image: ${s}`):(0,a.localize)(g,"æ¾å¤§å¾ç","Zoom image"),"data-zoomed":y?"":void 0,onPointerEnter:E,onFocus:E,onClick:C,children:(0,t.jsx)(n.default,{loader:p?N:void 0,src:e,alt:s,width:d,height:c,sizes:u,className:h})}),y&&(0,r.createPortal)((0,t.jsxs)("div",{ref:v,tabIndex:-1,className:"zoom-overlay","data-state":$?"open":z,"data-motion":y.motion,role:"dialog","aria-modal":"true","aria-label":s||(0,a.localize)(g,"å¾ç","Image"),onClick:()=>M("overlay"),children:[(0,t.jsx)("div",{className:"zoom-overlay-backdrop"}),(0,t.jsx)(n.default,{unoptimized:!0,src:y.expandedSrc,alt:s,width:d,height:c,loading:"eager",fetchPriority:"high",style:{left:y.target.left,top:y.target.top,width:y.target.width,height:y.target.height,transform:$?"none":y.from},onTransitionEnd:()=>{"closing"===S.current&&k()}}),(0,t.jsx)("div",{"aria-hidden":!0,className:"zoom-overlay-marks calibration-corners",style:{left:y.target.left-10,top:y.target.top-10,width:y.target.width+20,height:y.target.height+20,"--corner-arm":"11px"}}),w&&(0,t.jsx)("div",{className:"zoom-overlay-details",children:w})]}),document.body)]})}])},834173,e=>{"use strict";e.s(["tiltFromSlug",0,function(e){let t=0;for(let n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return(Math.abs(t)%401-200)/100}])}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.