vendor: 11,063 bytes, lines 1-17
1var PR=Object.defineProperty;var FS=t=>{throw TypeError(t)};var ER=(t,n,s)=>n in t?PR(t,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[n]=s;var Yn=(t,n,s)=>ER(t,typeof n!="symbol"?n+"":n,s),Hb=(t,n,s)=>n.has(t)||FS("Cannot "+s);var xe=(t,n,s)=>(Hb(t,n,"read from private field"),s?s.call(t):n.get(t)),sn=(t,n,s)=>n.has(t)?FS("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(t):n.set(t,s),St=(t,n,s,r)=>(Hb(t,n,"write to private field"),r?r.call(t,s):n.set(t,s),s),Ln=(t,n,s)=>(Hb(t,n,"access private method"),s);var qg=(t,n,s,r)=>({set _(a){St(t,n,a,s)},get _(){return xe(t,n,r)}});function A6(t,n){for(var s=0;s<n.length;s++){const r=n[s];if(typeof r!="string"&&!Array.isArray(r)){for(const a in r)if(a!=="default"&&!(a in t)){const i=Object.getOwnPropertyDescriptor(r,a);i&&Object.defineProperty(t,a,i.get?i:{enumerable:!0,get:()=>r[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function s(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(a){if(a.ep)return;a.ep=!0;const i=s(a);fetch(a.href,i)}})();var ca=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ad(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function LR(t){if(t.__esModule)return t;var n=t.default;if(typeof n=="function"){var s=function r(){return this instanceof r?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};s.prototype=n.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){var a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(s,r,a.get?a:{enumerable:!0,get:function(){return t[r]}})}),s}var D6={exports:{}},b0={},I6={exports:{}},_n={};/** 2 * @license React 3 * react.production.min.js 4 * 5 * Copyright (c) Facebook, Inc. and its affiliates. 6 * 7 * This source code is licensed under the MIT license found in the 8 * LICENSE file in the root directory of this source tree. 9 */var Yf=Symbol.for("react.element"),MR=Symbol.for("react.portal"),RR=Symbol.for("react.fragment"),OR=Symbol.for("react.strict_mode"),FR=Symbol.for("react.profiler"),VR=Symbol.for("react.provider"),BR=Symbol.for("react.context"),zR=Symbol.for("react.forward_ref"),UR=Symbol.for("react.suspense"),qR=Symbol.for("react.memo"),HR=Symbol.for("react.lazy"),VS=Symbol.iterator;function $R(t){return t===null||typeof t!="object"?null:(t=VS&&t[VS]||t["@@iterator"],typeof t=="function"?t:null)}var C6={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_6=Object.assign,T6={};function Sp(t,n,s){this.props=t,this.context=n,this.refs=T6,this.updater=s||C6}Sp.prototype.isReactComponent={};Sp.prototype.setState=function(t,n){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,n,"setState")};Sp.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function P6(){}P6.prototype=Sp.prototype;function Ak(t,n,s){this.props=t,this.context=n,this.refs=T6,this.updater=s||C6}var Dk=Ak.prototype=new P6;Dk.constructor=Ak;_6(Dk,Sp.prototype);Dk.isPureReactComponent=!0;var BS=Array.isArray,E6=Object.prototype.hasOwnProperty,Ik={current:null},L6={key:!0,ref:!0,__self:!0,__source:!0};function M6(t,n,s){var r,a={},i=null,o=null;if(n!=null)for(r in n.ref!==void 0&&(o=n.ref),n.key!==void 0&&(i=""+n.key),n)E6.call(n,r)&&!L6.hasOwnProperty(r)&&(a[r]=n[r]);var l=arguments.length-2;if(l===1)a.children=s;else if(1<l){for(var c=Array(l),d=0;d<l;d++)c[d]=arguments[d+2];a.children=c}if(t&&t.defaultProps)for(r in l=t.defaultProps,l)a[r]===void 0&&(a[r]=l[r]);return{$$typeof:Yf,type:t,key:i,ref:o,props:a,_owner:Ik.current}}function WR(t,n){return{$$typeof:Yf,type:t.type,key:n,ref:t.ref,props:t.props,_owner:t._owner}}function Ck(t){return typeof t=="object"&&t!==null&&t.$$typeof===Yf}function GR(t){var n={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(s){return n[s]})}var zS=/\/+/g;function $b(t,n){return typeof t=="object"&&t!==null&&t.key!=null?GR(""+t.key):n.toString(36)}function qx(t,n,s,r,a){var i=typeof t;(i==="undefined"||i==="boolean")&&(t=null);var o=!1;if(t===null)o=!0;else switch(i){case"string":case"number":o=!0;break;case"object":switch(t.$$typeof){case Yf:case MR:o=!0}}if(o)return o=t,a=a(o),t=r===""?"."+$b(o,0):r,BS(a)?(s="",t!=null&&(s=t.replace(zS,"$&/")+"/"),qx(a,n,s,"",function(d){return d})):a!=null&&(Ck(a)&&(a=WR(a,s+(!a.key||o&&o.key===a.key?"":(""+a.key).replace(zS,"$&/")+"/")+t)),n.push(a)),1;if(o=0,r=r===""?".":r+":",BS(t))for(var l=0;l<t.length;l++){i=t[l];var c=r+$b(i,l);o+=qx(i,n,s,c,a)}else if(c=$R(t),typeof c=="function")for(t=c.call(t),l=0;!(i=t.next()).done;)i=i.value,c=r+$b(i,l++),o+=qx(i,n,s,c,a);else if(i==="object")throw n=String(t),Error("Objects are not valid as a React child (found: "+(n==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":n)+"). If you meant to render a collection of children, use an array instead.");return o}function Hg(t,n,s){if(t==null)return t;var r=[],a=0;return qx(t,r,"","",function(i){return n.call(s,i,a++)}),r}function KR(t){if(t._status===-1){var n=t._result;n=n(),n.then(function(s){(t._status===0||t._status===-1)&&(t._status=1,t._result=s)},function(s){(t._status===0||t._status===-1)&&(t._status=2,t._result=s)}),t._status===-1&&(t._status=0,t._result=n)}if(t._status===1)return t._result.default;throw t._result}var Da={current:null},Hx={transition:null},QR={ReactCurrentDispatcher:Da,ReactCurrentBatchConfig:Hx,ReactCurrentOwner:Ik};function R6(){throw Error("act(...) is not supported in production builds of React.")}_n.Children={map:Hg,forEach:function(t,n,s){Hg(t,function(){n.apply(this,arguments)},s)},count:function(t){var n=0;return Hg(t,function(){n++}),n},toArray:function(t){return Hg(t,function(n){return n})||[]},only:function(t){if(!Ck(t))throw Error("React.Children.only expected to receive a single React element child.");return t}};_n.Component=Sp;_n.Fragment=RR;_n.Profiler=FR;_n.PureComponent=Ak;_n.StrictMode=OR;_n.Suspense=UR;_n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=QR;_n.act=R6;_n.cloneElement=function(t,n,s){if(t==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+t+".");var r=_6({},t.props),a=t.key,i=t.ref,o=t._owner;if(n!=null){if(n.ref!==void 0&&(i=n.ref,o=Ik.current),n.key!==void 0&&(a=""+n.key),t.type&&t.type.defaultProps)var l=t.type.defaultProps;for(c in n)E6.call(n,c)&&!L6.hasOwnProperty(c)&&(r[c]=n[c]===void 0&&l!==void 0?l[c]:n[c])}var c=arguments.length-2;if(c===1)r.children=s;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];r.children=l}return{$$typeof:Yf,type:t.type,key:a,ref:i,props:r,_owner:o}};_n.createContext=function(t){return t={$$typeof:BR,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},t.Provider={$$typeof:VR,_context:t},t.Consumer=t};_n.createElement=M6;_n.createFactory=function(t){var n=M6.bind(null,t);return n.type=t,n};_n.createRef=function(){return{current:null}};_n.forwardRef=function(t){return{$$typeof:zR,render:t}};_n.isValidElement=Ck;_n.lazy=function(t){return{$$typeof:HR,_payload:{_status:-1,_result:t},_init:KR}};_n.memo=function(t,n){return{$$typeof:qR,type:t,compare:n===void 0?null:n}};_n.startTransition=function(t){var n=Hx.transition;Hx.transition={};try{t()}finally{Hx.transition=n}};_n.unstable_act=R6;_n.useCallback=function(t,n){return Da.current.useCallback(t,n)};_n.useContext=function(t){return Da.current.useContext(t)};_n.useDebugValue=function(){};_n.useDeferredValue=function(t){return Da.current.useDeferredValue(t)};_n.useEffect=function(t,n){return Da.current.useEffect(t,n)};_n.useId=function(){return Da.current.useId()};_n.useImperativeHandle=function(t,n,s){return Da.current.useImperativeHandle(t,n,s)};_n.useInsertionEffect=function(t,n){return Da.current.useInsertionEffect(t,n)};_n.useLayoutEffect=function(t,n){return Da.current.useLayoutEffect(t,n)};_n.useMemo=function(t,n){return Da.current.useMemo(t,n)};_n.useReducer=function(t,n,s){return Da.current.useReducer(t,n,s)};_n.useRef=function(t){return Da.current.useRef(t)};_n.useState=function(t){return Da.current.useState(t)};_n.useSyncExternalStore=function(t,n,s){return Da.current.useSyncExternalStore(t,n,s)};_n.useTransition=function(){return Da.current.useTransition()};_n.version="18.3.1";I6.exports=_n;var S=I6.exports;const Ue=ad(S),O6=A6({__proto__:null,default:Ue},[S]);/** 10 * @license React 11 * react-jsx-runtime.production.min.js 12 * 13 * Copyright (c) Facebook, Inc. and its affiliates. 14 * 15 * This source code is licensed under the MIT license found in the 16 * LICENSE file in the root directory of this source tree. 17 */var YR=S,JR=Symbol.for("react.element"),XR=Symbol.for("react.fragment"),ZR=Object.prototype.hasOwnProperty,eO=YR.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,tO={key:!0,ref:!0,__self:!0,__source:!0};function F6(t,n,s){var r,a={},i=null,o=null;s!==void 0&&(i=""+s),n.key!==void 0&&(i=""+n.key),n.ref!==void 0&&(o=n.ref);for(r in n)ZR.call(n,r)&&!tO.hasOwnProperty(r)&&(a[r]=n[r]);if(t&&t.defaultProps)for(r in n=t.defaultProps,n)a[r]===void 0&&(a[r]=n[r]);return{$$typeof:JR,type:t,key:i,ref:o,props:a,_owner:eO.current}}b0.Fragment=XR;b0.jsx=F6;b0.jsxs=F6;D6.exports=b0;var e=D6.exports,V6={exports:{}},nO="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",sO=nO,rO=sO;function B6(){}function z6(){}z6.resetWarningCache=B6;var aO=function(){function t(r,a,i,o,l,c){if(c!==rO){var d=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw d.name="Invariant Violation",d}}t.isRequired=t;function n(){return t}var s={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:n,element:t,elementType:t,instanceOf:n,node:t,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:z6,resetWarningCache:B6};return s.PropTypes=s,s};V6.exports=aO();var iO=V6.exports;const Rn=ad(iO);var oO=typeof Element<"u",lO=typeof Map=="function",cO=typeof Set=="function",dO=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function $x(t,n){if(t===n)return!0;
17if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var s,r,a;if(Array.isArray(t)){if(s=t.length,s!=n.length)return!1;for(r=s;r--!==0;)if(!$x(t[r],n[r]))return!1;return!0}var i;if(lO&&t instanceof Map&&n instanceof Map){if(t.size!==n.size)return!1;for(i=t.entries();!(r=i.next()).done;)if(!n.has(r.value[0]))return!1;for(i=t.entries();!(r=i.next()).done;)if(!$x(r.value[1],n.get(r.value[0])))return!1;return!0}if(cO&&t instanceof Set&&n instanceof Set){if(t.size!==n.size)return!1;for(i=t.entries();!(r=i.next()).done;)if(!n.has(r.value[0]))return!1;return!0}if(dO&&ArrayBuffer.isView(t)&&ArrayBuffer.isView(n)){if(s=t.length,s!=n.length)return!1;for(r=s;r--!==0;)if(t[r]!==n[r])return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf&&typeof t.valueOf=="function"&&typeof n.valueOf=="function")return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString&&typeof t.toString=="function"&&typeof n.toString=="function")return t.toString()===n.toString();if(a=Object.keys(t),s=a.length,s!==Object.keys(n).length)return!1;for(r=s;r--!==0;)if(!Object.prototype.hasOwnProperty.call(n,a[r]))return!1;if(oO&&t instanceof Element)return!1;for(r=s;r--!==0;)if(!((a[r]==="_owner"||a[r]==="__v"||a[r]==="__o")&&t.$$typeof)&&!$x(t[a[r]],n[a[r]]))return!1;return!0}return t!==t&&n!==n}var hO=function(n,s){try{return $x(n,s)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}};const uO=ad(hO);var pO=function(t,n,s,r,a,i,o,l){if(!t){var c;if(n===void 0)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var d=[s,r,a,i,o,l],h=0;c=new Error(n.replace(/%s/g,function(){return d[h++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}},mO=pO;const US=ad(mO);var fO=function(n,s,r,a){var i=r?r.call(a,n,s):void 0;if(i!==void 0)return!!i;if(n===s)return!0;if(typeof n!="object"||!n||typeof s!="object"||!s)return!1;var o=Object.keys(n),l=Object.keys(s);if(o.length!==l.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(s),d=0;d<o.length;d++){var h=o[d];if(!c(h))return!1;var p=n[h],m=s[h];if(i=r?r.call(a,p,m,h):void 0,i===!1||i===void 0&&p!==m)return!1}return!0};const gO=ad(fO);function er(){return er=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var s=arguments[n];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=s[r])}return t},er.apply(this,arguments)}function _k(t,n){t.prototype=Object.create(n.prototype),t.prototype.constructor=t,Hw(t,n)}function Hw(t,n){return Hw=Object.setPrototypeOf||function(s,r){return s.__proto__=r,s},Hw(t,n)}function qS(t,n){if(t==null)return{};var s,r,a={},i=Object.keys(t);for(r=0;r<i.length;r++)n.indexOf(s=i[r])>=0||(a[s]=t[s]);return a}var Yt={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},xO={rel:["amphtml","canonical","alternate"]},yO={type:["application/ld+json"]},bO={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},HS=Object.keys(Yt).map(function(t){return Yt[t]}),jy={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},vO=Object.keys(jy).reduce(function(t,n){return t[jy[n]]=n,t},{}),Tu=function(t,n){for(var s=t.length-1;s>=0;s-=1){var r=t[s];if(Object.prototype.hasOwnProperty.call(r,n))return r[n]}return null},wO=function(t){var n=Tu(t,Yt.TITLE),s=Tu(t,"titleTemplate");if(Array.isArray(n)&&(n=n.join("")),s&&n)return s.replace(/%s/g,function(){return n});var r=Tu(t,"defaultTitle");return n||r||void 0},jO=function(t){return Tu(t,"onChangeClientState")||function(){}},Wb=function(t,n){return n.filter(function(s){return s[t]!==void 0}).map(function(s){return s[t]}).reduce(function(s,r){return er({},s,r)},{})},kO=function(t,n){return n.filter(function(s){return s[Yt.BASE]!==void 0}).map(function(s){return s[Yt.BASE]}).reverse().reduce(function(s,r){if(!s.length)for(var a=Object.keys(r),i=0;i<a.length;i+=1){var o=a[i].toLowerCase();if(t.indexOf(o)!==-1&&r[o])return s.concat(r)}return s},[])},im=function(t,n,s){var r={};return s.filter(function(a){return!!Array.isArray(a[t])||(a[t]!==void 0&&console&&typeof console.warn=="function"&&console.warn("Helmet: "+t+' should be of type "Array". Instead found type "'+typeof a[t]+'"'),!1)}).map(function(a){return a[t]}).reverse().reduce(function(a,i){var o={};i.filter(function(p){for(var m,u=Object.keys(p),y=0;y<u.length;y+=1){var g=u[y],w=g.toLowerCase();n.indexOf(w)===-1||m==="rel"&&p[m].toLowerCase()==="canonical"||w==="rel"&&p[w].toLowerCase()==="stylesheet"||(m=w),n.indexOf(g)===-1||g!=="innerHTML"&&g!=="cssText"&&g!=="itemprop"||(m=g)}if(!m||!p[m])return!1;var b=p[m].toLowerCase();return r[m]||(r[m]={}),o[m]||(o[m]={}),!r[m][b]&&(o[m][b]=!0,!0)}
17).reverse().forEach(function(p){return a.push(p)});for(var l=Object.keys(o),c=0;c<l.length;c+=1){var d=l[c],h=er({},r[d],o[d]);r[d]=h}return a},[]).reverse()},NO=function(t,n){if(Array.isArray(t)&&t.length){for(var s=0;s<t.length;s+=1)if(t[s][n])return!0}return!1},U6=function(t){return Array.isArray(t)?t.join(""):t},Gb=function(t,n){return Array.isArray(t)?t.reduce(function(s,r){return function(a,i){for(var o=Object.keys(a),l=0;l<o.length;l+=1)if(i[o[l]]&&i[o[l]].includes(a[o[l]]))return!0;return!1}(r,n)?s.priority.push(r):s.default.push(r),s},{priority:[],default:[]}):{default:t}},$S=function(t,n){var s;return er({},t,((s={})[n]=void 0,s))},SO=[Yt.NOSCRIPT,Yt.SCRIPT,Yt.STYLE],Kb=function(t,n){return n===void 0&&(n=!0),n===!1?String(t):String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},WS=function(t){return Object.keys(t).reduce(function(n,s){var r=t[s]!==void 0?s+'="'+t[s]+'"':""+s;return n?n+" "+r:r},"")},GS=function(t,n){return n===void 0&&(n={}),Object.keys(t).reduce(function(s,r){return s[jy[r]||r]=t[r],s},n)},Wx=function(t,n){return n.map(function(s,r){var a,i=((a={key:r})["data-rh"]=!0,a);return Object.keys(s).forEach(function(o){var l=jy[o]||o;l==="innerHTML"||l==="cssText"?i.dangerouslySetInnerHTML={__html:s.innerHTML||s.cssText}:i[l]=s[o]}),Ue.createElement(t,i)})},Mi=function(t,n,s){switch(t){case Yt.TITLE:return{toComponent:function(){return a=n.titleAttributes,(i={key:r=n.title})["data-rh"]=!0,o=GS(a,i),[Ue.createElement(Yt.TITLE,o,r)];var r,a,i,o},toString:function(){return function(r,a,i,o){var l=WS(i),c=U6(a);return l?"<"+r+' data-rh="true" '+l+">"+Kb(c,o)+"</"+r+">":"<"+r+' data-rh="true">'+Kb(c,o)+"</"+r+">"}(t,n.title,n.titleAttributes,s)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return GS(n)},toString:function(){return WS(n)}};default:return{toComponent:function(){return Wx(t,n)},toString:function(){return function(r,a,i){return a.reduce(function(o,l){var c=Object.keys(l).filter(function(p){return!(p==="innerHTML"||p==="cssText")}).reduce(function(p,m){var u=l[m]===void 0?m:m+'="'+Kb(l[m],i)+'"';return p?p+" "+u:u},""),d=l.innerHTML||l.cssText||"",h=SO.indexOf(r)===-1;return o+"<"+r+' data-rh="true" '+c+(h?"/>":">"+d+"</"+r+">")},"")}(t,n,s)}}}},$w=function(t){var n=t.baseTag,s=t.bodyAttributes,r=t.encode,a=t.htmlAttributes,i=t.noscriptTags,o=t.styleTags,l=t.title,c=l===void 0?"":l,d=t.titleAttributes,h=t.linkTags,p=t.metaTags,m=t.scriptTags,u={toComponent:function(){},toString:function(){return""}};if(t.prioritizeSeoTags){var y=function(g){var w=g.linkTags,b=g.scriptTags,j=g.encode,N=Gb(g.metaTags,bO),A=Gb(w,xO),E=Gb(b,yO);return{priorityMethods:{toComponent:function(){return[].concat(Wx(Yt.META,N.priority),Wx(Yt.LINK,A.priority),Wx(Yt.SCRIPT,E.priority))},toString:function(){return Mi(Yt.META,N.priority,j)+" "+Mi(Yt.LINK,A.priority,j)+" "+Mi(Yt.SCRIPT,E.priority,j)}},metaTags:N.default,linkTags:A.default,scriptTags:E.default}}(t);u=y.priorityMethods,h=y.linkTags,p=y.metaTags,m=y.scriptTags}return{priority:u,base:Mi(Yt.BASE,n,r),bodyAttributes:Mi("bodyAttributes",s,r),htmlAttributes:Mi("htmlAttributes",a,r),link:Mi(Yt.LINK,h,r),meta:Mi(Yt.META,p,r),noscript:Mi(Yt.NOSCRIPT,i,r),script:Mi(Yt.SCRIPT,m,r),style:Mi(Yt.STYLE,o,r),title:Mi(Yt.TITLE,{title:c,titleAttributes:d},r)}},$g=[],Ww=function(t,n){var s=this;n===void 0&&(n=typeof document<"u"),this.instances=[],this.value={setHelmet:function(r){s.context.helmet=r},helmetInstances:{get:function(){return s.canUseDOM?$g:s.instances},add:function(r){(s.canUseDOM?$g:s.instances).push(r)},remove:function(r){var a=(s.canUseDOM?$g:s.instances).indexOf(r);(s.canUseDOM?$g:s.instances).splice(a,1)}}},this.context=t,this.canUseDOM=n,n||(t.helmet=$w({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},q6=Ue.createContext({}),AO=Rn.shape({setHelmet:Rn.func,helmetInstances:Rn.shape({get:Rn.func,add:Rn.func,remove:Rn.func})}),DO=typeof document<"u",gu=function(t){function n(s){var r;return(r=t.call(this,s)||this).helmetData=new Ww(r.props.context,n.canUseDOM),r}return _k(n,t),n.prototype.render=function(){return Ue.createElement(q6.Provider,{value:this.helmetData.value},this.props.children)},n}(S.Component);gu.canUseDOM=DO,gu.propTypes={context:Rn.shape({helmet:Rn.shape()}),children:Rn.node.isRequired},gu.defaultProps={context:{}},gu.displayName="HelmetProvider";var Jh=function(t,n){var s,r=document.head||document.querySelector(Yt.HEAD),a=r.querySelectorAll(t+"[data-rh]"),i=[].slice.call(a),o=[];
17return n&&n.length&&n.forEach(function(l){var c=document.createElement(t);for(var d in l)Object.prototype.hasOwnProperty.call(l,d)&&(d==="innerHTML"?c.innerHTML=l.innerHTML:d==="cssText"?c.styleSheet?c.styleSheet.cssText=l.cssText:c.appendChild(document.createTextNode(l.cssText)):c.setAttribute(d,l[d]===void 0?"":l[d]));c.setAttribute("data-rh","true"),i.some(function(h,p){return s=p,c.isEqualNode(h)})?i.splice(s,1):o.push(c)}),i.forEach(function(l){return l.parentNode.removeChild(l)}),o.forEach(function(l){return r.appendChild(l)}),{oldTags:i,newTags:o}},Qb=function(t,n){var s=document.getElementsByTagName(t)[0];if(s){for(var r=s.getAttribute("data-rh"),a=r?r.split(","):[],i=[].concat(a),o=Object.keys(n),l=0;l<o.length;l+=1){var c=o[l],d=n[c]||"";s.getAttribute(c)!==d&&s.setAttribute(c,d),a.indexOf(c)===-1&&a.push(c);var h=i.indexOf(c);h!==-1&&i.splice(h,1)}for(var p=i.length-1;p>=0;p-=1)s.removeAttribute(i[p]);a.length===i.length?s.removeAttribute("data-rh"):s.getAttribute("data-rh")!==o.join(",")&&s.setAttribute("data-rh",o.join(","))}},KS=function(t,n){var s=t.baseTag,r=t.htmlAttributes,a=t.linkTags,i=t.metaTags,o=t.noscriptTags,l=t.onChangeClientState,c=t.scriptTags,d=t.styleTags,h=t.title,p=t.titleAttributes;Qb(Yt.BODY,t.bodyAttributes),Qb(Yt.HTML,r),function(g,w){g!==void 0&&document.title!==g&&(document.title=U6(g)),Qb(Yt.TITLE,w)}(h,p);var m={baseTag:Jh(Yt.BASE,s),linkTags:Jh(Yt.LINK,a),metaTags:Jh(Yt.META,i),noscriptTags:Jh(Yt.NOSCRIPT,o),scriptTags:Jh(Yt.SCRIPT,c),styleTags:Jh(Yt.STYLE,d)},u={},y={};Object.keys(m).forEach(function(g){var w=m[g],b=w.newTags,j=w.oldTags;b.length&&(u[g]=b),j.length&&(y[g]=m[g].oldTags)}),n&&n(),l(t,u,y)},om=null,ky=function(t){function n(){for(var r,a=arguments.length,i=new Array(a),o=0;o<a;o++)i[o]=arguments[o];return(r=t.call.apply(t,[this].concat(i))||this).rendered=!1,r}_k(n,t);var s=n.prototype;return s.shouldComponentUpdate=function(r){return!gO(r,this.props)},s.componentDidUpdate=function(){this.emitChange()},s.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},s.emitChange=function(){var r,a,i=this.props.context,o=i.setHelmet,l=null,c=(r=i.helmetInstances.get().map(function(d){var h=er({},d.props);return delete h.context,h}),{baseTag:kO(["href"],r),bodyAttributes:Wb("bodyAttributes",r),defer:Tu(r,"defer"),encode:Tu(r,"encodeSpecialCharacters"),htmlAttributes:Wb("htmlAttributes",r),linkTags:im(Yt.LINK,["rel","href"],r),metaTags:im(Yt.META,["name","charset","http-equiv","property","itemprop"],r),noscriptTags:im(Yt.NOSCRIPT,["innerHTML"],r),onChangeClientState:jO(r),scriptTags:im(Yt.SCRIPT,["src","innerHTML"],r),styleTags:im(Yt.STYLE,["cssText"],r),title:wO(r),titleAttributes:Wb("titleAttributes",r),prioritizeSeoTags:NO(r,"prioritizeSeoTags")});gu.canUseDOM?(a=c,om&&cancelAnimationFrame(om),a.defer?om=requestAnimationFrame(function(){KS(a,function(){om=null})}):(KS(a),om=null)):$w&&(l=$w(c)),o(l)},s.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},s.render=function(){return this.init(),null},n}(S.Component);ky.propTypes={context:AO.isRequired},ky.displayName="HelmetDispatcher";var IO=["children"],CO=["children"],Gx=function(t){function n(){return t.apply(this,arguments)||this}_k(n,t);var s=n.prototype;return s.shouldComponentUpdate=function(r){return!uO($S(this.props,"helmetData"),$S(r,"helmetData"))},s.mapNestedChildrenToProps=function(r,a){if(!a)return null;switch(r.type){case Yt.SCRIPT:case Yt.NOSCRIPT:return{innerHTML:a};case Yt.STYLE:return{cssText:a};default:throw new Error("<"+r.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},s.flattenArrayTypeChildren=function(r){var a,i=r.child,o=r.arrayTypeChildren;return er({},o,((a={})[i.type]=[].concat(o[i.type]||[],[er({},r.newChildProps,this.mapNestedChildrenToProps(i,r.nestedChildren))]),a))},s.mapObjectTypeChildren=function(r){var a,i,o=r.child,l=r.newProps,c=r.newChildProps,d=r.nestedChildren;switch(o.type){case Yt.TITLE:return er({},l,((a={})[o.type]=d,a.titleAttributes=er({},c),a));case Yt.BODY:return er({},l,{bodyAttributes:er({},c)});case Yt.HTML:return er({},l,{htmlAttributes:er({},c)});default:return er({},l,((i={})[o.type]=er({},c),i))}},s.mapArrayTypeChildrenToProps=function(r,a){var i=er({},a);return Object.keys(r).forEach(function(o){var l;i=er({}
vendor: 10,675 bytes, lines 17-33
17,i,((l={})[o]=r[o],l))}),i},s.warnOnInvalidChildren=function(r,a){return US(HS.some(function(i){return r.type===i}),typeof r.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+HS.join(", ")+" are allowed. Helmet does not support rendering <"+r.type+"> elements. Refer to our API for more information."),US(!a||typeof a=="string"||Array.isArray(a)&&!a.some(function(i){return typeof i!="string"}),"Helmet expects a string as a child of <"+r.type+">. Did you forget to wrap your children in braces? ( <"+r.type+">{``}</"+r.type+"> ) Refer to our API for more information."),!0},s.mapChildrenToProps=function(r,a){var i=this,o={};return Ue.Children.forEach(r,function(l){if(l&&l.props){var c=l.props,d=c.children,h=qS(c,IO),p=Object.keys(h).reduce(function(u,y){return u[vO[y]||y]=h[y],u},{}),m=l.type;switch(typeof m=="symbol"?m=m.toString():i.warnOnInvalidChildren(l,d),m){case Yt.FRAGMENT:a=i.mapChildrenToProps(d,a);break;case Yt.LINK:case Yt.META:case Yt.NOSCRIPT:case Yt.SCRIPT:case Yt.STYLE:o=i.flattenArrayTypeChildren({child:l,arrayTypeChildren:o,newChildProps:p,nestedChildren:d});break;default:a=i.mapObjectTypeChildren({child:l,newProps:a,newChildProps:p,nestedChildren:d})}}}),this.mapArrayTypeChildrenToProps(o,a)},s.render=function(){var r=this.props,a=r.children,i=qS(r,CO),o=er({},i),l=i.helmetData;return a&&(o=this.mapChildrenToProps(a,o)),!l||l instanceof Ww||(l=new Ww(l.context,l.instances)),l?Ue.createElement(ky,er({},o,{context:l.value,helmetData:void 0})):Ue.createElement(q6.Consumer,null,function(c){return Ue.createElement(ky,er({},o,{context:c}))})},n}(S.Component);Gx.propTypes={base:Rn.object,bodyAttributes:Rn.object,children:Rn.oneOfType([Rn.arrayOf(Rn.node),Rn.node]),defaultTitle:Rn.string,defer:Rn.bool,encodeSpecialCharacters:Rn.bool,htmlAttributes:Rn.object,link:Rn.arrayOf(Rn.object),meta:Rn.arrayOf(Rn.object),noscript:Rn.arrayOf(Rn.object),onChangeClientState:Rn.func,script:Rn.arrayOf(Rn.object),style:Rn.arrayOf(Rn.object),title:Rn.string,titleAttributes:Rn.object,titleTemplate:Rn.string,prioritizeSeoTags:Rn.bool,helmetData:Rn.object},Gx.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},Gx.displayName="Helmet";var H6={exports:{}},Di={},$6={exports:{}},W6={};/** 18 * @license React 19 * scheduler.production.min.js 20 * 21 * Copyright (c) Facebook, Inc. and its affiliates. 22 * 23 * This source code is licensed under the MIT license found in the 24 * LICENSE file in the root directory of this source tree. 25 */(function(t){function n(H,X){var V=H.length;H.push(X);e:for(;0<V;){var he=V-1>>>1,T=H[he];if(0<a(T,X))H[he]=X,H[V]=T,V=he;else break e}}function s(H){return H.length===0?null:H[0]}function r(H){if(H.length===0)return null;var X=H[0],V=H.pop();if(V!==X){H[0]=V;e:for(var he=0,T=H.length,I=T>>>1;he<I;){var G=2*(he+1)-1,re=H[G],ne=G+1,pe=H[ne];if(0>a(re,V))ne<T&&0>a(pe,re)?(H[he]=pe,H[ne]=V,he=ne):(H[he]=re,H[G]=V,he=G);else if(ne<T&&0>a(pe,V))H[he]=pe,H[ne]=V,he=ne;else break e}}return X}function a(H,X){var V=H.sortIndex-X.sortIndex;return V!==0?V:H.id-X.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;t.unstable_now=function(){return i.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var c=[],d=[],h=1,p=null,m=3,u=!1,y=!1,g=!1,w=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function N(H){for(var X=s(d);X!==null;){if(X.callback===null)r(d);else if(X.startTime<=H)r(d),X.sortIndex=X.expirationTime,n(c,X);else break;X=s(d)}}function A(H){if(g=!1,N(H),!y)if(s(c)!==null)y=!0,ce(E);else{var X=s(d);X!==null&&de(A,X.startTime-H)}}function E(H,X){y=!1,g&&(g=!1,b(O),O=-1),u=!0;var V=m;try{for(N(X),p=s(c);p!==null&&(!(p.expirationTime>X)||H&&!_());){var he=p.callback;if(typeof he=="function"){p.callback=null,m=p.priorityLevel;var T=he(p.expirationTime<=X);X=t.unstable_now(),typeof T=="function"?p.callback=T:p===s(c)&&r(c),N(X)}else r(c);p=s(c)}if(p!==null)var I=!0;else{var G=s(d);G!==null&&de(A,G.startTime-X),I=!1}return I}finally{p=null,m=V,u=!1}}var C=!1,F=null,O=-1,L=5,W=-1;function _(){return!(t.unstable_now()-W<L)}function P(){if(F!==null){var H=t.unstable_now();W=H;var X=!0;try{X=F(!0,H)}finally{X?K():(C=!1,F=null)}}else C=!1}var K;if(typeof j=="function")K=function(){j(P)};else if(typeof MessageChannel<"u"){var q=new MessageChannel,ae=q.port2;q.port1.onmessage=P,K=function(){ae.postMessage(null)}}else K=function(){w(P,0)};function ce(H){F=H,C||(C=!0,K())}function de(H,X){O=w(function(){H(t.unstable_now())},X)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(H){H.callback=null},t.unstable_continueExecution=function(){y||u||(y=!0,ce(E))},t.unstable_forceFrameRate=function(H){0>H||125<H?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):L=0<H?Math.floor(1e3/H):5},t.unstable_getCurrentPriorityLevel=function(){return m},t.unstable_getFirstCallbackNode=function(){return s(c)},t.unstable_next=function(H){switch(m){case 1:case 2:case 3:var X=3;break;default:X=m}var V=m;m=X;try{return H()}finally{m=V}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(H,X){switch(H){case 1:case 2:case 3:case 4:case 5:break;default:H=3}var V=m;m=H;try{return X()}finally{m=V}},t.unstable_scheduleCallback=function(H,X,V){var he=t.unstable_now();switch(typeof V=="object"&&V!==null?(V=V.delay,V=typeof V=="number"&&0<V?he+V:he):V=he,H){case 1:var T=-1;break;case 2:T=250;break;case 5:T=1073741823;break;case 4:T=1e4;break;default:T=5e3}return T=V+T,H={id:h++,callback:X,priorityLevel:H,startTime:V,expirationTime:T,sortIndex:-1},V>he?(H.sortIndex=V,n(d,H),s(c)===null&&H===s(d)&&(g?(b(O),O=-1):g=!0,de(A,V-he))):(H.sortIndex=T,n(c,H),y||u||(y=!0,ce(E))),H},t.unstable_shouldYield=_,t.unstable_wrapCallback=function(H){var X=m;return function(){var V=m;m=X;try{return H.apply(this,arguments)}finally{m=V}}}})(W6);$6.exports=W6;var _O=$6.exports;/** 26 * @license React 27 * react-dom.production.min.js 28 * 29 * Copyright (c) Facebook, Inc. and its affiliates. 30 * 31 * This source code is licensed under the MIT license found in the 32 * LICENSE file in the root directory of this source tree. 33 */var TO=S,Si=_O;function Qe(t){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+t,s=1;s<arguments.length;s++)n+="&args[]="+encodeURIComponent(arguments[s]);return"Minified React error #"+t+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var G6=new Set,df={};function Nh(t,n){hp(t,n),hp(t+"Capture",n)}function hp(t,n){for(df[t]=n,t=0;t<n.length;t++)G6.add(n[t])}var _l=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Gw=Object.prototype.hasOwnProperty,PO=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,QS={},YS={};function EO(t){return Gw.call(YS,t)?!0:Gw.call(QS,t)?!1:PO.test(t)?YS[t]=!0:(QS[t]=!0,!1)}function LO(t,n,s,r){if(s!==null&&s.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return r?!1:s!==null?!s.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function MO(t,n,s,r){if(n===null||typeof n>"u"||LO(t,n,s,r))return!0;if(r)return!1;if(s!==null)switch(s.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function Ia(t,n,s,r,a,i,o){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=s,this.propertyName=t,this.type=n,this.sanitizeURL=i,this.removeEmptyString=o}var Hr={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){Hr[t]=new Ia(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var n=t[0];Hr[n]=new Ia(n,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){Hr[t]=new Ia(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){Hr[t]=new Ia(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){Hr[t]=new Ia(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){Hr[t]=new Ia(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){Hr[t]=new Ia(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){Hr[t]=new Ia(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){Hr[t]=new Ia(t,5,!1,t.toLowerCase(),null,!1,!1)});var Tk=/[\-:]([a-z])/g;function Pk(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode
33-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var n=t.replace(Tk,Pk);Hr[n]=new Ia(n,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var n=t.replace(Tk,Pk);Hr[n]=new Ia(n,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var n=t.replace(Tk,Pk);Hr[n]=new Ia(n,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){Hr[t]=new Ia(t,1,!1,t.toLowerCase(),null,!1,!1)});Hr.xlinkHref=new Ia("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){Hr[t]=new Ia(t,1,!1,t.toLowerCase(),null,!0,!0)});function Ek(t,n,s,r){var a=Hr.hasOwnProperty(n)?Hr[n]:null;(a!==null?a.type!==0:r||!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(MO(n,s,a,r)&&(s=null),r||a===null?EO(n)&&(s===null?t.removeAttribute(n):t.setAttribute(n,""+s)):a.mustUseProperty?t[a.propertyName]=s===null?a.type===3?!1:"":s:(n=a.attributeName,r=a.attributeNamespace,s===null?t.removeAttribute(n):(a=a.type,s=a===3||a===4&&s===!0?"":""+s,r?t.setAttributeNS(r,n,s):t.setAttribute(n,s))))}var Fl=TO.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Wg=Symbol.for("react.element"),xu=Symbol.for("react.portal"),yu=Symbol.for("react.fragment"),Lk=Symbol.for("react.strict_mode"),Kw=Symbol.for("react.profiler"),K6=Symbol.for("react.provider"),Q6=Symbol.for("react.context"),Mk=Symbol.for("react.forward_ref"),Qw=Symbol.for("react.suspense"),Yw=Symbol.for("react.suspense_list"),Rk=Symbol.for("react.memo"),yc=Symbol.for("react.lazy"),Y6=Symbol.for("react.offscreen"),JS=Symbol.iterator;function lm(t){return t===null||typeof t!="object"?null:(t=JS&&t[JS]||t["@@iterator"],typeof t=="function"?t:null)}var $s=Object.assign,Yb;function Tm(t){if(Yb===void 0)try{throw Error()}catch(s){var n=s.stack.trim().match(/\n( *(at )?)/);Yb=n&&n[1]||""}return` 34`+Yb+t}var Jb=!1;function Xb(t,n){if(!t||Jb)return"";Jb=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(n,[])}catch(d){var r=d}Reflect.construct(t,[],n)}
vendor: 4,283 bytes, lines 34-37
34else{try{n.call()}catch(d){r=d}t.call(n.prototype)}else{try{throw Error()}catch(d){r=d}t()}}catch(d){if(d&&r&&typeof d.stack=="string"){for(var a=d.stack.split(` 35`),i=r.stack.split(` 36`),o=a.length-1,l=i.length-1;1<=o&&0<=l&&a[o]!==i[l];)l--;for(;1<=o&&0<=l;o--,l--)if(a[o]!==i[l]){if(o!==1||l!==1)do if(o--,l--,0>l||a[o]!==i[l]){var c=` 37`+a[o].replace(" at new "," at ");return t.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",t.displayName)),c}while(1<=o&&0<=l);break}}}finally{Jb=!1,Error.prepareStackTrace=s}return(t=t?t.displayName||t.name:"")?Tm(t):""}function RO(t){switch(t.tag){case 5:return Tm(t.type);case 16:return Tm("Lazy");case 13:return Tm("Suspense");case 19:return Tm("SuspenseList");case 0:case 2:case 15:return t=Xb(t.type,!1),t;case 11:return t=Xb(t.type.render,!1),t;case 1:return t=Xb(t.type,!0),t;default:return""}}function Jw(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case yu:return"Fragment";case xu:return"Portal";case Kw:return"Profiler";case Lk:return"StrictMode";case Qw:return"Suspense";case Yw:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case Q6:return(t.displayName||"Context")+".Consumer";case K6:return(t._context.displayName||"Context")+".Provider";case Mk:var n=t.render;return t=t.displayName,t||(t=n.displayName||n.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case Rk:return n=t.displayName||null,n!==null?n:Jw(t.type)||"Memo";case yc:n=t._payload,t=t._init;try{return Jw(t(n))}catch{}}return null}function OO(t){var n=t.type;switch(t.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=n.render,t=t.displayName||t.name||"",n.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Jw(n);case 8:return n===Lk?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function Jc(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function J6(t){var n=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function FO(t){var n=J6(t)?"checked":"value",s=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),r=""+t[n];if(!t.hasOwnProperty(n)&&typeof s<"u"&&typeof s.get=="function"&&typeof s.set=="function"){var a=s.get,i=s.set;return Object.defineProperty(t,n,{configurable:!0,get:function(){return a.call(this)},set:function(o){r=""+o,i.call(this,o)}}),Object.defineProperty(t,n,{enumerable:s.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){t._valueTracker=null,delete t[n]}}}}function Gg(t){t._valueTracker||(t._valueTracker=FO(t))}function X6(t){if(!t)return!1;var n=t._valueTracker;if(!n)return!0;var s=n.getValue(),r="";return t&&(r=J6(t)?t.checked?"true":"false":t.value),t=r,t!==s?(n.setValue(t),!0):!1}function Ny(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Xw(t,n){var s=n.checked;return $s({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:s??t._wrapperState.initialChecked})}function XS(t,n){var s=n.defaultValue==null?"":n.defaultValue,r=n.checked!=null?n.checked:n.defaultChecked;s=Jc(n.value!=null?n.value:s),t._wrapperState={initialChecked:r,initialValue:s,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function Z6(t,n){n=n.checked,n!=null&&Ek(t,"checked",n,!1)}function Zw(t,n){Z6(t,n);var s=Jc(n.value),r=n.type;if(s!=null)r==="number"?(s===0&&t.value===""||t.value!=s)&&(t.value=""+s):t.value!==""+s&&(t.value=""+s);else if(r==="submit"||r==="reset"){t.removeAttribute("value");return}n.hasOwnProperty("value")?ej(t,n.type,s):n.hasOwnProperty("defaultValue")&&ej(t,
vendor: 4,293 bytes, line 37
37n.type,Jc(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(t.defaultChecked=!!n.defaultChecked)}function ZS(t,n,s){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!(r!=="submit"&&r!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+t._wrapperState.initialValue,s||n===t.value||(t.value=n),t.defaultValue=n}s=t.name,s!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,s!==""&&(t.name=s)}function ej(t,n,s){(n!=="number"||Ny(t.ownerDocument)!==t)&&(s==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+s&&(t.defaultValue=""+s))}var Pm=Array.isArray;function Pu(t,n,s,r){if(t=t.options,n){n={};for(var a=0;a<s.length;a++)n["$"+s[a]]=!0;for(s=0;s<t.length;s++)a=n.hasOwnProperty("$"+t[s].value),t[s].selected!==a&&(t[s].selected=a),a&&r&&(t[s].defaultSelected=!0)}else{for(s=""+Jc(s),n=null,a=0;a<t.length;a++){if(t[a].value===s){t[a].selected=!0,r&&(t[a].defaultSelected=!0);return}n!==null||t[a].disabled||(n=t[a])}n!==null&&(n.selected=!0)}}function tj(t,n){if(n.dangerouslySetInnerHTML!=null)throw Error(Qe(91));return $s({},n,{value:void 0,defaultValue:void 0,children:""+t._wrapperState.initialValue})}function e5(t,n){var s=n.value;if(s==null){if(s=n.children,n=n.defaultValue,s!=null){if(n!=null)throw Error(Qe(92));if(Pm(s)){if(1<s.length)throw Error(Qe(93));s=s[0]}n=s}n==null&&(n=""),s=n}t._wrapperState={initialValue:Jc(s)}}function eI(t,n){var s=Jc(n.value),r=Jc(n.defaultValue);s!=null&&(s=""+s,s!==t.value&&(t.value=s),n.defaultValue==null&&t.defaultValue!==s&&(t.defaultValue=s)),r!=null&&(t.defaultValue=""+r)}function t5(t){var n=t.textContent;n===t._wrapperState.initialValue&&n!==""&&n!==null&&(t.value=n)}function tI(t){switch(t){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function nj(t,n){return t==null||t==="http://www.w3.org/1999/xhtml"?tI(n):t==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":t}var Kg,nI=function(t){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(n,s,r,a){MSApp.execUnsafeLocalFunction(function(){return t(n,s,r,a)})}:t}(function(t,n){if(t.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in t)t.innerHTML=n;else{for(Kg=Kg||document.createElement("div"),Kg.innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=Kg.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;n.firstChild;)t.appendChild(n.firstChild)}});function hf(t,n){if(n){var s=t.firstChild;if(s&&s===t.lastChild&&s.nodeType===3){s.nodeValue=n;return}}t.textContent=n}var Um={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},VO=["Webkit","ms","Moz","O"];Object.keys(Um).forEach(function(t){VO.forEach(function(n){n=n+t.charAt(0).toUpperCase()+t.substring(1),Um[n]=Um[t]})});function sI(t,n,s){return n==null||typeof n=="boolean"||n===""?"":s||typeof n!="number"||n===0||Um.hasOwnProperty(t)&&Um[t]?(""+n).trim():n+"px"}function rI(t,n){t=t.style;for(var s in n)if(n.hasOwnProperty(s)){var r=s.indexOf("--")===0,a=sI(s,n[s],r);s==="float"&&(s="cssFloat"),r?t.setProperty(s,a):t[s]=a}}var BO=$s({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function sj(t,n){if(n){if(BO[t]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(Qe(137,t));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(Qe(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(Qe(61))}if(n.style!=null&&typeof n.style!="object")throw Error(Qe(62))}}function rj(t,n){if(t.indexOf("-")===-1)return typeof n.is=="str
37ing";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var aj=null;function Ok(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var ij=null,Eu=null,Lu=null;function n5(t){if(t=Zf(t)){if(typeof ij!="function")throw Error(Qe(280));var n=t.stateNode;n&&(n=N0(n),ij(t.stateNode,t.type,n))}}function aI(t){Eu?Lu?Lu.push(t):Lu=[t]:Eu=t}function iI(){if(Eu){var t=Eu,n=Lu;if(Lu=Eu=null,n5(t),n)for(t=0;t<n.length;t++)n5(n[t])}}function oI(t,n){return t(n)}function lI(){}var Zb=!1;function cI(t,n,s){if(Zb)return t(n,s);Zb=!0;try{return oI(t,n,s)}finally{Zb=!1,(Eu!==null||Lu!==null)&&(lI(),iI())}}function uf(t,n){var s=t.stateNode;if(s===null)return null;var r=N0(s);if(r===null)return null;s=r[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(t=t.type,r=!(t==="button"||t==="input"||t==="select"||t==="textarea")),t=!r;break e;default:t=!1}if(t)return null;if(s&&typeof s!="function")throw Error(Qe(231,n,typeof s));return s}var oj=!1;if(_l)try{var cm={};Object.defineProperty(cm,"passive",{get:function(){oj=!0}}),window.addEventListener("test",cm,cm),window.removeEventListener("test",cm,cm)}catch{oj=!1}function zO(t,n,s,r,a,i,o,l,c){var d=Array.prototype.slice.call(arguments,3);try{n.apply(s,d)}catch(h){this.onError(h)}}var qm=!1,Sy=null,Ay=!1,lj=null,UO={onError:function(t){qm=!0,Sy=t}};function qO(t,n,s,r,a,i,o,l,c){qm=!1,Sy=null,zO.apply(UO,arguments)}function HO(t,n,s,r,a,i,o,l,c){if(qO.apply(this,arguments),qm){if(qm){var d=Sy;qm=!1,Sy=null}else throw Error(Qe(198));Ay||(Ay=!0,lj=d)}}function Sh(t){var n=t,s=t;if(t.alternate)for(;n.return;)n=n.return;else{t=n;do n=t,n.flags&4098&&(s=n.return),t=n.return;while(t)}return n.tag===3?s:null}function dI(t){if(t.tag===13){var n=t.memoizedState;if(n===null&&(t=t.alternate,t!==null&&(n=t.memoizedState)),n!==null)return n.dehydrated}return null}function s5(t){if(Sh(t)!==t)throw Error(Qe(188))}function $O(t){var n=t.alternate;if(!n){if(n=Sh(t),n===null)throw Error(Qe(188));return n!==t?null:t}for(var s=t,r=n;;){var a=s.return;if(a===null)break;var i=a.alternate;if(i===null){if(r=a.return,r!==null){s=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===s)return s5(a),t;if(i===r)return s5(a),n;i=i.sibling}throw Error(Qe(188))}if(s.return!==r.return)s=a,r=i;else{for(var o=!1,l=a.child;l;){if(l===s){o=!0,s=a,r=i;break}if(l===r){o=!0,r=a,s=i;break}l=l.sibling}if(!o){for(l=i.child;l;){if(l===s){o=!0,s=i,r=a;break}if(l===r){o=!0,r=i,s=a;break}l=l.sibling}if(!o)throw Error(Qe(189))}}if(s.alternate!==r)throw Error(Qe(190))}if(s.tag!==3)throw Error(Qe(188));return s.stateNode.current===s?t:n}function hI(t){return t=$O(t),t!==null?uI(t):null}function uI(t){if(t.tag===5||t.tag===6)return t;for(t=t.child;t!==null;){var n=uI(t);if(n!==null)return n;t=t.sibling}return null}var pI=Si.unstable_scheduleCallback,r5=Si.unstable_cancelCallback,WO=Si.unstable_shouldYield,GO=Si.unstable_requestPaint,tr=Si.unstable_now,KO=Si.unstable_getCurrentPriorityLevel,Fk=Si.unstable_ImmediatePriority,mI=Si.unstable_UserBlockingPriority,Dy=Si.unstable_NormalPriority,QO=Si.unstable_LowPriority,fI=Si.unstable_IdlePriority,v0=null,Ko=null;function YO(t){if(Ko&&typeof Ko.onCommitFiberRoot=="function")try{Ko.onCommitFiberRoot(v0,t,void 0,(t.current.flags&128)===128)}catch{}}var mo=Math.clz32?Math.clz32:ZO,JO=Math.log,XO=Math.LN2;function ZO(t){return t>>>=0,t===0?32:31-(JO(t)/XO|0)|0}var Qg=64,Yg=4194304;function Em(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Iy(t,n){var s=t.pendingLanes;if(s===0)return 0;var r=0,a=t.suspendedLanes,i=t.pingedLanes,o=s&268435455;if(o!==0){var l=o&~a;l!==0?r=Em(l):(i&=o,i!==0&&(r=Em(i)))}else o=s&~a,o!==0?r=Em(o):i!==0&&(r=Em(i));if(r===0)return 0;if(n!==0&&n!==r&&!(n&a)&&(a=r&-r,i=n&-n,a>=i||a===16&&(i&4194240)!==0))return n;if(r&4&&(r|=s&16),n=t.entangledLanes,n!==0)for(t=t.entanglements,n&=r;0<n;)s=31-mo(n),a=1<<s,r|=t[s],n&=~a;return r}function eF(t,n){switch(t){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function tF(t,n){for(var s=t.suspendedLanes,r=t.pingedLanes,a=t.expirationTimes,i=t.pendingLanes;0<i;){var o=31-mo(i),l=1<<o,c=a[o];c===-1?(!(l&s)||l&r)&&(a[o]=eF(l,n)):c<=n&&(t.expiredLanes|=l),i&=~l}}function cj(t){return t=t.pendingLanes&-1073741825,t!==0?t:t&1073741824?1073741824:0}function gI(){var t=Qg;return Qg<<=1,!(Qg&4194240)&&(Qg=64),t}function ev(t){for(var n=[],s=0;31>s;s++)n.push(t);return n}function Jf(t,n,s){t.pendingLanes|=n,n!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,n=31-mo(n),t[n]=s}function nF(t,n){var s=t.pendingLanes&~n;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=n,t.mutableReadLanes&=n,t.entangledLanes&=n,n=t.entanglements;var r=t.eventTimes;for(t=t.expirationTimes;0<s;){var a=31-mo(s),i=1<<a;n[a]=0,r[a]=-1,t[a]=-1,s&=~i}}function Vk(t,n){var s=t.entangledLanes|=n;for(t=t.entanglements;s;){var r=31-mo(s),a=1<<r;
vendor: 5,145 bytes, line 37
37a&n|t[r]&n&&(t[r]|=n),s&=~a}}var Xn=0;function xI(t){return t&=-t,1<t?4<t?t&268435455?16:536870912:4:1}var yI,Bk,bI,vI,wI,dj=!1,Jg=[],zc=null,Uc=null,qc=null,pf=new Map,mf=new Map,wc=[],sF="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function a5(t,n){switch(t){case"focusin":case"focusout":zc=null;break;case"dragenter":case"dragleave":Uc=null;break;case"mouseover":case"mouseout":qc=null;break;case"pointerover":case"pointerout":pf.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":mf.delete(n.pointerId)}}function dm(t,n,s,r,a,i){return t===null||t.nativeEvent!==i?(t={blockedOn:n,domEventName:s,eventSystemFlags:r,nativeEvent:i,targetContainers:[a]},n!==null&&(n=Zf(n),n!==null&&Bk(n)),t):(t.eventSystemFlags|=r,n=t.targetContainers,a!==null&&n.indexOf(a)===-1&&n.push(a),t)}function rF(t,n,s,r,a){switch(n){case"focusin":return zc=dm(zc,t,n,s,r,a),!0;case"dragenter":return Uc=dm(Uc,t,n,s,r,a),!0;case"mouseover":return qc=dm(qc,t,n,s,r,a),!0;case"pointerover":var i=a.pointerId;return pf.set(i,dm(pf.get(i)||null,t,n,s,r,a)),!0;case"gotpointercapture":return i=a.pointerId,mf.set(i,dm(mf.get(i)||null,t,n,s,r,a)),!0}return!1}function jI(t){var n=zd(t.target);if(n!==null){var s=Sh(n);if(s!==null){if(n=s.tag,n===13){if(n=dI(s),n!==null){t.blockedOn=n,wI(t.priority,function(){bI(s)});return}}else if(n===3&&s.stateNode.current.memoizedState.isDehydrated){t.blockedOn=s.tag===3?s.stateNode.containerInfo:null;return}}}t.blockedOn=null}function Kx(t){if(t.blockedOn!==null)return!1;for(var n=t.targetContainers;0<n.length;){var s=hj(t.domEventName,t.eventSystemFlags,n[0],t.nativeEvent);if(s===null){s=t.nativeEvent;var r=new s.constructor(s.type,s);aj=r,s.target.dispatchEvent(r),aj=null}else return n=Zf(s),n!==null&&Bk(n),t.blockedOn=s,!1;n.shift()}return!0}function i5(t,n,s){Kx(t)&&s.delete(n)}function aF(){dj=!1,zc!==null&&Kx(zc)&&(zc=null),Uc!==null&&Kx(Uc)&&(Uc=null),qc!==null&&Kx(qc)&&(qc=null),pf.forEach(i5),mf.forEach(i5)}function hm(t,n){t.blockedOn===n&&(t.blockedOn=null,dj||(dj=!0,Si.unstable_scheduleCallback(Si.unstable_NormalPriority,aF)))}function ff(t){function n(a){return hm(a,t)}if(0<Jg.length){hm(Jg[0],t);for(var s=1;s<Jg.length;s++){var r=Jg[s];r.blockedOn===t&&(r.blockedOn=null)}}for(zc!==null&&hm(zc,t),Uc!==null&&hm(Uc,t),qc!==null&&hm(qc,t),pf.forEach(n),mf.forEach(n),s=0;s<wc.length;s++)r=wc[s],r.blockedOn===t&&(r.blockedOn=null);for(;0<wc.length&&(s=wc[0],s.blockedOn===null);)jI(s),s.blockedOn===null&&wc.shift()}var Mu=Fl.ReactCurrentBatchConfig,Cy=!0;function iF(t,n,s,r){var a=Xn,i=Mu.transition;Mu.transition=null;try{Xn=1,zk(t,n,s,r)}finally{Xn=a,Mu.transition=i}}function oF(t,n,s,r){var a=Xn,i=Mu.transition;Mu.transition=null;try{Xn=4,zk(t,n,s,r)}finally{Xn=a,Mu.transition=i}}function zk(t,n,s,r){if(Cy){var a=hj(t,n,s,r);if(a===null)dv(t,n,r,_y,s),a5(t,r);else if(rF(a,t,n,s,r))r.stopPropagation();else if(a5(t,r),n&4&&-1<sF.indexOf(t)){for(;a!==null;){var i=Zf(a);if(i!==null&&yI(i),i=hj(t,n,s,r),i===null&&dv(t,n,r,_y,s),i===a)break;a=i}a!==null&&r.stopPropagation()}else dv(t,n,r,null,s)}}var _y=null;function hj(t,n,s,r){if(_y=null,t=Ok(r),t=zd(t),t!==null)if(n=Sh(t),n===null)t=null;else if(s=n.tag,s===13){if(t=dI(n),t!==null)return t;t=null}else if(s===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;t=null}else n!==t&&(t=null);return _y=t,null}function kI(t){switch(t){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(KO()){case Fk:return 1;case mI:return 4;case Dy:case QO:return 16;case fI:return 536870912;default:return 16}default:return 16}}var Ec=null,Uk=null,Qx=null;function NI(){if(Qx)return Qx;var t,n=Uk,s=n.length,r,a="value"in Ec?Ec.value:Ec.textContent,i=a.length;for(t=0;t<s&&n[t]===a[t];t++);var o=s-t;for(r=1;r<=o&&n[s-r]===a[i-r];r++);return Qx=a.slice(t,1<r?1-r:void 0)}function Yx(t){var n=t.keyCode;
vendor: 6,308 bytes, line 37
37return"charCode"in t?(t=t.charCode,t===0&&n===13&&(t=13)):t=n,t===10&&(t=13),32<=t||t===13?t:0}function Xg(){return!0}function o5(){return!1}function Ii(t){function n(s,r,a,i,o){this._reactName=s,this._targetInst=a,this.type=r,this.nativeEvent=i,this.target=o,this.currentTarget=null;for(var l in t)t.hasOwnProperty(l)&&(s=t[l],this[l]=s?s(i):i[l]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?Xg:o5,this.isPropagationStopped=o5,this}return $s(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var s=this.nativeEvent;s&&(s.preventDefault?s.preventDefault():typeof s.returnValue!="unknown"&&(s.returnValue=!1),this.isDefaultPrevented=Xg)},stopPropagation:function(){var s=this.nativeEvent;s&&(s.stopPropagation?s.stopPropagation():typeof s.cancelBubble!="unknown"&&(s.cancelBubble=!0),this.isPropagationStopped=Xg)},persist:function(){},isPersistent:Xg}),n}var Ap={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},qk=Ii(Ap),Xf=$s({},Ap,{view:0,detail:0}),lF=Ii(Xf),tv,nv,um,w0=$s({},Xf,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Hk,button:0,buttons:0,relatedTarget:function(t){return t.relatedTarget===void 0?t.fromElement===t.srcElement?t.toElement:t.fromElement:t.relatedTarget},movementX:function(t){return"movementX"in t?t.movementX:(t!==um&&(um&&t.type==="mousemove"?(tv=t.screenX-um.screenX,nv=t.screenY-um.screenY):nv=tv=0,um=t),tv)},movementY:function(t){return"movementY"in t?t.movementY:nv}}),l5=Ii(w0),cF=$s({},w0,{dataTransfer:0}),dF=Ii(cF),hF=$s({},Xf,{relatedTarget:0}),sv=Ii(hF),uF=$s({},Ap,{animationName:0,elapsedTime:0,pseudoElement:0}),pF=Ii(uF),mF=$s({},Ap,{clipboardData:function(t){return"clipboardData"in t?t.clipboardData:window.clipboardData}}),fF=Ii(mF),gF=$s({},Ap,{data:0}),c5=Ii(gF),xF={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},yF={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},bF={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function vF(t){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(t):(t=bF[t])?!!n[t]:!1}function Hk(){return vF}var wF=$s({},Xf,{key:function(t){if(t.key){var n=xF[t.key]||t.key;if(n!=="Unidentified")return n}return t.type==="keypress"?(t=Yx(t),t===13?"Enter":String.fromCharCode(t)):t.type==="keydown"||t.type==="keyup"?yF[t.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Hk,charCode:function(t){return t.type==="keypress"?Yx(t):0},keyCode:function(t){return t.type==="keydown"||t.type==="keyup"?t.keyCode:0},which:function(t){return t.type==="keypress"?Yx(t):t.type==="keydown"||t.type==="keyup"?t.keyCode:0}}),jF=Ii(wF),kF=$s({},w0,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),d5=Ii(kF),NF=$s({},Xf,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Hk}),SF=Ii(NF),AF=$s({},Ap,{propertyName:0,elapsedTime:0,pseudoElement:0}),DF=Ii(AF),IF=$s({},w0,{deltaX:function(t){return"deltaX"in t?t.deltaX:"wheelDeltaX"in t?-t.wheelDeltaX:0},deltaY:function(t){return"deltaY"in t?t.deltaY:"wheelDeltaY"in t?-t.wheelDeltaY:"wheelDelta"in t?-t.wheelDelta:0},deltaZ:0,deltaMode:0}),CF=Ii(IF),_F=[9,13,27,32],$k=_l&&"CompositionEvent"in window,Hm=null;_l&&"documentMode"in document&&(Hm=document.documentMode);var TF=_l&&"TextEvent"in window&&!Hm,SI=_l&&(!$k||Hm&&8<Hm&&11>=Hm),h5=" ",u5=!1;function AI(t,n){switch(t){case"keyup":return _F.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function DI(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var bu=!1;function PF(t,n){switch(t){case"compositionend":return DI(n);case"keypress":return n.which!==32?null:(u5=!0,h5);case"textInput":return t=n.data,t===h5&&u5?null:t;default:return null}}function EF(t,n){if(bu)return t==="compositionend"||!$k&&AI(t,n)?(t=NI(),Qx=Uk=Ec=null,bu=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return SI&&n.locale!=="ko"?null:n.data;default:return null}}var LF={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function p5(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n==="input"?!!LF[t.type]:n==="textarea"}function II(t,n,s,r){aI(r),n=Ty(n,"onChange"),0<n.length&&(s=new qk("onChange","change",null,s,r),t.push({event:s,listeners:n}))}var $m=null,gf=null;function MF(t){VI(t,0)}function j0(t){var n=ju(t);if(X6(n))return t}function RF(t,n){if(t==="change")return n}var CI=!1;if(_l){var rv;if(_l){var av="oninput"in document;if(!av){var m5=document.createElement("div");m5.setAttribute("oninput","return;"),av=typeof m5.oninput=="function"}rv=av}else rv=!1;CI=rv&&(!document.documentMode||9<document.documentMode)}function f5(){$m&&($m.detachEvent("onpropertychange",_I),gf=$m=null)}function _I(t){if(t.propertyName==="value"&&j0(gf)){var n=[];II(n,gf,t,Ok(t)),cI(MF,n)}}function OF(t,n,s){t==="focusin"?(f5(),$m=n,gf=s,$m.attachEvent("onpropertychange",_I)):t==="focusout"&&f5()}function FF(t){if(t==="selectionchange"||t==="keyup"||t==="keydown")return j0(gf)}function VF(t,n){if(t==="click")return j0(n)}function BF(t,n){if(t==="input"||t==="change")return j0(n)}function zF(t,n){return t===n&&(t!==0||1/t===1/n)||t!==t&&n!==n}var go=typeof Object.is=="function"?Object.is:zF;function xf(t,n){if(go(t,n))return!0;
vendor: 4,808 bytes, line 37
37if(typeof t!="object"||t===null||typeof n!="object"||n===null)return!1;var s=Object.keys(t),r=Object.keys(n);if(s.length!==r.length)return!1;for(r=0;r<s.length;r++){var a=s[r];if(!Gw.call(n,a)||!go(t[a],n[a]))return!1}return!0}function g5(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function x5(t,n){var s=g5(t);t=0;for(var r;s;){if(s.nodeType===3){if(r=t+s.textContent.length,t<=n&&r>=n)return{node:s,offset:n-t};t=r}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=g5(s)}}function TI(t,n){return t&&n?t===n?!0:t&&t.nodeType===3?!1:n&&n.nodeType===3?TI(t,n.parentNode):"contains"in t?t.contains(n):t.compareDocumentPosition?!!(t.compareDocumentPosition(n)&16):!1:!1}function PI(){for(var t=window,n=Ny();n instanceof t.HTMLIFrameElement;){try{var s=typeof n.contentWindow.location.href=="string"}catch{s=!1}if(s)t=n.contentWindow;else break;n=Ny(t.document)}return n}function Wk(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n&&(n==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||n==="textarea"||t.contentEditable==="true")}function UF(t){var n=PI(),s=t.focusedElem,r=t.selectionRange;if(n!==s&&s&&s.ownerDocument&&TI(s.ownerDocument.documentElement,s)){if(r!==null&&Wk(s)){if(n=r.start,t=r.end,t===void 0&&(t=n),"selectionStart"in s)s.selectionStart=n,s.selectionEnd=Math.min(t,s.value.length);else if(t=(n=s.ownerDocument||document)&&n.defaultView||window,t.getSelection){t=t.getSelection();var a=s.textContent.length,i=Math.min(r.start,a);r=r.end===void 0?i:Math.min(r.end,a),!t.extend&&i>r&&(a=r,r=i,i=a),a=x5(s,i);var o=x5(s,r);a&&o&&(t.rangeCount!==1||t.anchorNode!==a.node||t.anchorOffset!==a.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(n=n.createRange(),n.setStart(a.node,a.offset),t.removeAllRanges(),i>r?(t.addRange(n),t.extend(o.node,o.offset)):(n.setEnd(o.node,o.offset),t.addRange(n)))}}for(n=[],t=s;t=t.parentNode;)t.nodeType===1&&n.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;s<n.length;s++)t=n[s],t.element.scrollLeft=t.left,t.element.scrollTop=t.top}}var qF=_l&&"documentMode"in document&&11>=document.documentMode,vu=null,uj=null,Wm=null,pj=!1;function y5(t,n,s){var r=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;pj||vu==null||vu!==Ny(r)||(r=vu,"selectionStart"in r&&Wk(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Wm&&xf(Wm,r)||(Wm=r,r=Ty(uj,"onSelect"),0<r.length&&(n=new qk("onSelect","select",null,n,s),t.push({event:n,listeners:r}),n.target=vu)))}function Zg(t,n){var s={};return s[t.toLowerCase()]=n.toLowerCase(),s["Webkit"+t]="webkit"+n,s["Moz"+t]="moz"+n,s}var wu={animationend:Zg("Animation","AnimationEnd"),animationiteration:Zg("Animation","AnimationIteration"),animationstart:Zg("Animation","AnimationStart"),transitionend:Zg("Transition","TransitionEnd")},iv={},EI={};_l&&(EI=document.createElement("div").style,"AnimationEvent"in window||(delete wu.animationend.animation,delete wu.animationiteration.animation,delete wu.animationstart.animation),"TransitionEvent"in window||delete wu.transitionend.transition);function k0(t){if(iv[t])return iv[t];if(!wu[t])return t;var n=wu[t],s;for(s in n)if(n.hasOwnProperty(s)&&s in EI)return iv[t]=n[s];return t}var LI=k0("animationend"),MI=k0("animationiteration"),RI=k0("animationstart"),OI=k0("transitionend"),FI=new Map,b5="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function id(t,n){FI.set(t,n),Nh(n,[t])}for(var ov=0;ov<b5.length;ov++){var lv=b5[ov],HF=lv.toLowerCase(),$F=lv[0].toUpperCase()+lv.slice(1);id(HF,"on"+$F)}id(LI,"onAnimationEnd");id(MI,"onAnimationIteration");id(RI,"onAnimationStart");id("dblclick","onDoubleClick");id("focusin","onFocus");id("focusout","onBlur");id(OI,"onTransitionEnd");hp("onMouseEnter",["mouseout","mouseover"]);hp("onMouseLeave",["mouseout","mouseover"]);hp("onPointerEnter",["pointerout","pointerover"]);hp("onPointerLeave",["pointerout","pointerover"]);Nh("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));
vendor: 4,770 bytes, line 37
37Nh("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Nh("onBeforeInput",["compositionend","keypress","textInput","paste"]);Nh("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Nh("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Nh("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Lm="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),WF=new Set("cancel close invalid load scroll toggle".split(" ").concat(Lm));function v5(t,n,s){var r=t.type||"unknown-event";t.currentTarget=s,HO(r,n,void 0,t),t.currentTarget=null}function VI(t,n){n=(n&4)!==0;for(var s=0;s<t.length;s++){var r=t[s],a=r.event;r=r.listeners;e:{var i=void 0;if(n)for(var o=r.length-1;0<=o;o--){var l=r[o],c=l.instance,d=l.currentTarget;if(l=l.listener,c!==i&&a.isPropagationStopped())break e;v5(a,l,d),i=c}else for(o=0;o<r.length;o++){if(l=r[o],c=l.instance,d=l.currentTarget,l=l.listener,c!==i&&a.isPropagationStopped())break e;v5(a,l,d),i=c}}}if(Ay)throw t=lj,Ay=!1,lj=null,t}function Ds(t,n){var s=n[yj];s===void 0&&(s=n[yj]=new Set);var r=t+"__bubble";s.has(r)||(BI(n,t,2,!1),s.add(r))}function cv(t,n,s){var r=0;n&&(r|=4),BI(s,t,r,n)}var ex="_reactListening"+Math.random().toString(36).slice(2);function yf(t){if(!t[ex]){t[ex]=!0,G6.forEach(function(s){s!=="selectionchange"&&(WF.has(s)||cv(s,!1,t),cv(s,!0,t))});var n=t.nodeType===9?t:t.ownerDocument;n===null||n[ex]||(n[ex]=!0,cv("selectionchange",!1,n))}}function BI(t,n,s,r){switch(kI(n)){case 1:var a=iF;break;case 4:a=oF;break;default:a=zk}s=a.bind(null,n,s,t),a=void 0,!oj||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(a=!0),r?a!==void 0?t.addEventListener(n,s,{capture:!0,passive:a}):t.addEventListener(n,s,!0):a!==void 0?t.addEventListener(n,s,{passive:a}):t.addEventListener(n,s,!1)}function dv(t,n,s,r,a){var i=r;if(!(n&1)&&!(n&2)&&r!==null)e:for(;;){if(r===null)return;var o=r.tag;if(o===3||o===4){var l=r.stateNode.containerInfo;if(l===a||l.nodeType===8&&l.parentNode===a)break;if(o===4)for(o=r.return;o!==null;){var c=o.tag;if((c===3||c===4)&&(c=o.stateNode.containerInfo,c===a||c.nodeType===8&&c.parentNode===a))return;o=o.return}for(;l!==null;){if(o=zd(l),o===null)return;if(c=o.tag,c===5||c===6){r=i=o;continue e}l=l.parentNode}}r=r.return}cI(function(){var d=i,h=Ok(s),p=[];e:{var m=FI.get(t);if(m!==void 0){var u=qk,y=t;switch(t){case"keypress":if(Yx(s)===0)break e;case"keydown":case"keyup":u=jF;break;case"focusin":y="focus",u=sv;break;case"focusout":y="blur",u=sv;break;case"beforeblur":case"afterblur":u=sv;break;case"click":if(s.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":u=l5;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":u=dF;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":u=SF;break;case LI:case MI:case RI:u=pF;break;case OI:u=DF;break;case"scroll":u=lF;break;case"wheel":u=CF;break;case"copy":case"cut":case"paste":u=fF;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":u=d5}var g=(n&4)!==0,w=!g&&t==="scroll",b=g?m!==null?m+"Capture":null:m;g=[];for(var j=d,N;j!==null;){N=j;var A=N.stateNode;if(N.tag===5&&A!==null&&(N=A,b!==null&&(A=uf(j,b),A!=null&&g.push(bf(j,A,N)))),w)break;j=j.return}0<g.length&&(m=new u(m,y,null,s,h),p.push({event:m,listeners:g}))}}if(!(n&7)){e:{if(m=t==="mouseover"||t==="pointerover",u=t==="mouseout"||t==="pointerout",m&&s!==aj&&(y=s.relatedTarget||s.fromElement)&&(zd(y)||y[Tl]))break e;if((u||m)&&(m=h.window===h?h:(m=h.ownerDocument)?m.defaultView||m.parentWindow:window,u?(y=s.relatedTarget||s.toElement,u=d,y=y?zd(y):null,y!==null&&(w=Sh(y),y!==w||y.tag!==5&&y.tag!==6)&&(y=null)):(u=null,y=d),u!==y)){if(g=l5,A="onMouseLeave",b="onMouseEnter",j="mouse",(t==="pointerout"||t==="pointerover")&&(g=d5,A="onPointerLeave",b="onPointerEnter",j="pointer"),w=u==null?m:ju(u),N=y==null?m:ju(y),m=new g(A,j+"leave",u,s,h),m.target=w,m.relatedTarget=N,A=null,zd(h)===d&&(g=new g(b,j+"enter",y,s,h),g.target=N,g.relatedTarget=w,A=g),w=A,u&&y)t:{for(g=u,b=y,j=0,N=g;N;N=Xh(N))j++;for(N=0,A=b;A;A=Xh(A))N++;for(;0<j-N;)g=Xh(g),j--;for(;0<N-j;)b=Xh(b),N--;for(;j--;){if(g===b||b!==null&&g===b.alternate)break t;g=Xh(g),b=Xh(b)}g=null}else g=null;u!==null&&w5(p,m,u,g,!1),y!==null&&w!==null&&w5(p,w,y,g,!0)}}
vendor: 4,576 bytes, lines 37-38
37e:{if(m=d?ju(d):window,u=m.nodeName&&m.nodeName.toLowerCase(),u==="select"||u==="input"&&m.type==="file")var E=RF;else if(p5(m))if(CI)E=BF;else{E=FF;var C=OF}else(u=m.nodeName)&&u.toLowerCase()==="input"&&(m.type==="checkbox"||m.type==="radio")&&(E=VF);if(E&&(E=E(t,d))){II(p,E,s,h);break e}C&&C(t,m,d),t==="focusout"&&(C=m._wrapperState)&&C.controlled&&m.type==="number"&&ej(m,"number",m.value)}switch(C=d?ju(d):window,t){case"focusin":(p5(C)||C.contentEditable==="true")&&(vu=C,uj=d,Wm=null);break;case"focusout":Wm=uj=vu=null;break;case"mousedown":pj=!0;break;case"contextmenu":case"mouseup":case"dragend":pj=!1,y5(p,s,h);break;case"selectionchange":if(qF)break;case"keydown":case"keyup":y5(p,s,h)}var F;if($k)e:{switch(t){case"compositionstart":var O="onCompositionStart";break e;case"compositionend":O="onCompositionEnd";break e;case"compositionupdate":O="onCompositionUpdate";break e}O=void 0}else bu?AI(t,s)&&(O="onCompositionEnd"):t==="keydown"&&s.keyCode===229&&(O="onCompositionStart");O&&(SI&&s.locale!=="ko"&&(bu||O!=="onCompositionStart"?O==="onCompositionEnd"&&bu&&(F=NI()):(Ec=h,Uk="value"in Ec?Ec.value:Ec.textContent,bu=!0)),C=Ty(d,O),0<C.length&&(O=new c5(O,t,null,s,h),p.push({event:O,listeners:C}),F?O.data=F:(F=DI(s),F!==null&&(O.data=F)))),(F=TF?PF(t,s):EF(t,s))&&(d=Ty(d,"onBeforeInput"),0<d.length&&(h=new c5("onBeforeInput","beforeinput",null,s,h),p.push({event:h,listeners:d}),h.data=F))}VI(p,n)})}function bf(t,n,s){return{instance:t,listener:n,currentTarget:s}}function Ty(t,n){for(var s=n+"Capture",r=[];t!==null;){var a=t,i=a.stateNode;a.tag===5&&i!==null&&(a=i,i=uf(t,s),i!=null&&r.unshift(bf(t,i,a)),i=uf(t,n),i!=null&&r.push(bf(t,i,a))),t=t.return}return r}function Xh(t){if(t===null)return null;do t=t.return;while(t&&t.tag!==5);return t||null}function w5(t,n,s,r,a){for(var i=n._reactName,o=[];s!==null&&s!==r;){var l=s,c=l.alternate,d=l.stateNode;if(c!==null&&c===r)break;l.tag===5&&d!==null&&(l=d,a?(c=uf(s,i),c!=null&&o.unshift(bf(s,c,l))):a||(c=uf(s,i),c!=null&&o.push(bf(s,c,l)))),s=s.return}o.length!==0&&t.push({event:n,listeners:o})}var GF=/\r\n?/g,KF=/\u0000|\uFFFD/g;function j5(t){return(typeof t=="string"?t:""+t).replace(GF,` 38`).replace(KF,"")}function tx(t,n,s){if(n=j5(n),j5(t)!==n&&s)throw Error(Qe(425))}function Py(){}var mj=null,fj=null;function gj(t,n){return t==="textarea"||t==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var xj=typeof setTimeout=="function"?setTimeout:void 0,QF=typeof clearTimeout=="function"?clearTimeout:void 0,k5=typeof Promise=="function"?Promise:void 0,YF=typeof queueMicrotask=="function"?queueMicrotask:typeof k5<"u"?function(t){return k5.resolve(null).then(t).catch(JF)}:xj;function JF(t){setTimeout(function(){throw t})}function hv(t,n){var s=n,r=0;do{var a=s.nextSibling;if(t.removeChild(s),a&&a.nodeType===8)if(s=a.data,s==="/$"){if(r===0){t.removeChild(a),ff(n);return}r--}else s!=="$"&&s!=="$?"&&s!=="$!"||r++;s=a}while(s);ff(n)}function Hc(t){for(;t!=null;t=t.nextSibling){var n=t.nodeType;if(n===1||n===3)break;if(n===8){if(n=t.data,n==="$"||n==="$!"||n==="$?")break;if(n==="/$")return null}}return t}function N5(t){t=t.previousSibling;for(var n=0;t;){if(t.nodeType===8){var s=t.data;if(s==="$"||s==="$!"||s==="$?"){if(n===0)return t;n--}else s==="/$"&&n++}t=t.previousSibling}return null}var Dp=Math.random().toString(36).slice(2),Uo="__reactFiber$"+Dp,vf="__reactProps$"+Dp,Tl="__reactContainer$"+Dp,yj="__reactEvents$"+Dp,XF="__reactListeners$"+Dp,ZF="__reactHandles$"+Dp;function zd(t){var n=t[Uo];if(n)return n;for(var s=t.parentNode;s;){if(n=s[Tl]||s[Uo]){if(s=n.alternate,n.child!==null||s!==null&&s.child!==null)for(t=N5(t);t!==null;){if(s=t[Uo])return s;t=N5(t)}return n}t=s,s=t.parentNode}return null}function Zf(t){return t=t[Uo]||t[Tl],!t||t.tag!==5&&t.tag!==6&&t.tag!==13&&t.tag!==3?null:t}function ju(t){if(t.tag===5||t.tag===6)return t.stateNode;throw Error(Qe(33))}function N0(t){return t[vf]||null}var bj=[],ku=-1;function od(t){return{current:t}}function Cs(t){0>ku||(t.current=bj[ku],bj[ku]=null,ku--)}function vs(t,n){ku++,bj[ku]=t.current,t.current=n}var Xc={},da=od(Xc),$a=od(!1),ih=Xc;function up(t,n){var s=t.type.contextTypes;if(!s)return Xc;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var a={},i;for(i in s)a[i]=n[i];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=n,t.__reactInternalMemoizedMaskedChildContext=a
vendor: 4,740 bytes, line 38
38),a}function Wa(t){return t=t.childContextTypes,t!=null}function Ey(){Cs($a),Cs(da)}function S5(t,n,s){if(da.current!==Xc)throw Error(Qe(168));vs(da,n),vs($a,s)}function zI(t,n,s){var r=t.stateNode;if(n=n.childContextTypes,typeof r.getChildContext!="function")return s;r=r.getChildContext();for(var a in r)if(!(a in n))throw Error(Qe(108,OO(t)||"Unknown",a));return $s({},s,r)}function Ly(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||Xc,ih=da.current,vs(da,t),vs($a,$a.current),!0}function A5(t,n,s){var r=t.stateNode;if(!r)throw Error(Qe(169));s?(t=zI(t,n,ih),r.__reactInternalMemoizedMergedChildContext=t,Cs($a),Cs(da),vs(da,t)):Cs($a),vs($a,s)}var jl=null,S0=!1,uv=!1;function UI(t){jl===null?jl=[t]:jl.push(t)}function e7(t){S0=!0,UI(t)}function ld(){if(!uv&&jl!==null){uv=!0;var t=0,n=Xn;try{var s=jl;for(Xn=1;t<s.length;t++){var r=s[t];do r=r(!0);while(r!==null)}jl=null,S0=!1}catch(a){throw jl!==null&&(jl=jl.slice(t+1)),pI(Fk,ld),a}finally{Xn=n,uv=!1}}return null}var Nu=[],Su=0,My=null,Ry=0,Vi=[],Bi=0,oh=null,Nl=1,Sl="";function _d(t,n){Nu[Su++]=Ry,Nu[Su++]=My,My=t,Ry=n}function qI(t,n,s){Vi[Bi++]=Nl,Vi[Bi++]=Sl,Vi[Bi++]=oh,oh=t;var r=Nl;t=Sl;var a=32-mo(r)-1;r&=~(1<<a),s+=1;var i=32-mo(n)+a;if(30<i){var o=a-a%5;i=(r&(1<<o)-1).toString(32),r>>=o,a-=o,Nl=1<<32-mo(n)+a|s<<a|r,Sl=i+t}else Nl=1<<i|s<<a|r,Sl=t}function Gk(t){t.return!==null&&(_d(t,1),qI(t,1,0))}function Kk(t){for(;t===My;)My=Nu[--Su],Nu[Su]=null,Ry=Nu[--Su],Nu[Su]=null;for(;t===oh;)oh=Vi[--Bi],Vi[Bi]=null,Sl=Vi[--Bi],Vi[Bi]=null,Nl=Vi[--Bi],Vi[Bi]=null}var ki=null,bi=null,Ms=!1,ho=null;function HI(t,n){var s=qi(5,null,null,0);s.elementType="DELETED",s.stateNode=n,s.return=t,n=t.deletions,n===null?(t.deletions=[s],t.flags|=16):n.push(s)}function D5(t,n){switch(t.tag){case 5:var s=t.type;return n=n.nodeType!==1||s.toLowerCase()!==n.nodeName.toLowerCase()?null:n,n!==null?(t.stateNode=n,ki=t,bi=Hc(n.firstChild),!0):!1;case 6:return n=t.pendingProps===""||n.nodeType!==3?null:n,n!==null?(t.stateNode=n,ki=t,bi=null,!0):!1;case 13:return n=n.nodeType!==8?null:n,n!==null?(s=oh!==null?{id:Nl,overflow:Sl}:null,t.memoizedState={dehydrated:n,treeContext:s,retryLane:1073741824},s=qi(18,null,null,0),s.stateNode=n,s.return=t,t.child=s,ki=t,bi=null,!0):!1;default:return!1}}function vj(t){return(t.mode&1)!==0&&(t.flags&128)===0}function wj(t){if(Ms){var n=bi;if(n){var s=n;if(!D5(t,n)){if(vj(t))throw Error(Qe(418));n=Hc(s.nextSibling);var r=ki;n&&D5(t,n)?HI(r,s):(t.flags=t.flags&-4097|2,Ms=!1,ki=t)}}else{if(vj(t))throw Error(Qe(418));t.flags=t.flags&-4097|2,Ms=!1,ki=t}}}function I5(t){for(t=t.return;t!==null&&t.tag!==5&&t.tag!==3&&t.tag!==13;)t=t.return;ki=t}function nx(t){if(t!==ki)return!1;if(!Ms)return I5(t),Ms=!0,!1;var n;if((n=t.tag!==3)&&!(n=t.tag!==5)&&(n=t.type,n=n!=="head"&&n!=="body"&&!gj(t.type,t.memoizedProps)),n&&(n=bi)){if(vj(t))throw $I(),Error(Qe(418));for(;n;)HI(t,n),n=Hc(n.nextSibling)}if(I5(t),t.tag===13){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(Qe(317));e:{for(t=t.nextSibling,n=0;t;){if(t.nodeType===8){var s=t.data;if(s==="/$"){if(n===0){bi=Hc(t.nextSibling);break e}n--}else s!=="$"&&s!=="$!"&&s!=="$?"||n++}t=t.nextSibling}bi=null}}else bi=ki?Hc(t.stateNode.nextSibling):null;return!0}function $I(){for(var t=bi;t;)t=Hc(t.nextSibling)}function pp(){bi=ki=null,Ms=!1}function Qk(t){ho===null?ho=[t]:ho.push(t)}var t7=Fl.ReactCurrentBatchConfig;function pm(t,n,s){if(t=s.ref,t!==null&&typeof t!="function"&&typeof t!="object"){if(s._owner){if(s=s._owner,s){if(s.tag!==1)throw Error(Qe(309));var r=s.stateNode}if(!r)throw Error(Qe(147,t));var a=r,i=""+t;return n!==null&&n.ref!==null&&typeof n.ref=="function"&&n.ref._stringRef===i?n.ref:(n=function(o){var l=a.refs;o===null?delete l[i]:l[i]=o},n._stringRef=i,n)}if(typeof t!="string")throw Error(Qe(284));if(!s._owner)throw Error(Qe(290,t))}return t}function sx(t,n){throw t=Object.prototype.toString.call(n),Error(Qe(31,t==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":t))}function C5(t){var n=t._init;return n(t._payload)}function WI(t){function n(b,j){if(t){var N=b.deletions;N===null?(b.deletions=[j],b.flags|=16):N.push(j)}}function s(b,j){if(!t)return null;for(;j!==null;)n(b,j),j=j.sibling;return null}function r(b,j){for(b=new Map;j!==null;)j.key!==null?b.set(j.key,j):b.set(j.index,j),j=j.sibling;return b}function a(b,j){return b=Kc(b,j),b.index=0,b.sibling=null,b}function i(b,j,N){return b.index=N,t?(N=b.alternate,N!==null?(N=N.index,N<j?(b.flags|=2,j):N):(b.flags|=2,j)):(b.flags|=1048576,j)}function o(b){return t&&b.alternate===null&&(b.flags|=2),b}function l(b,j,N,A){return j===null||j.tag!==6?(j=bv(N,b.mode,A),j.return=b,j):(j=a(j,N),j.return=b,j)}function c(b,j,N,A){var E=N.type;
vendor: 4,378 bytes, line 38
38return E===yu?h(b,j,N.props.children,A,N.key):j!==null&&(j.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===yc&&C5(E)===j.type)?(A=a(j,N.props),A.ref=pm(b,j,N),A.return=b,A):(A=sy(N.type,N.key,N.props,null,b.mode,A),A.ref=pm(b,j,N),A.return=b,A)}function d(b,j,N,A){return j===null||j.tag!==4||j.stateNode.containerInfo!==N.containerInfo||j.stateNode.implementation!==N.implementation?(j=vv(N,b.mode,A),j.return=b,j):(j=a(j,N.children||[]),j.return=b,j)}function h(b,j,N,A,E){return j===null||j.tag!==7?(j=nh(N,b.mode,A,E),j.return=b,j):(j=a(j,N),j.return=b,j)}function p(b,j,N){if(typeof j=="string"&&j!==""||typeof j=="number")return j=bv(""+j,b.mode,N),j.return=b,j;if(typeof j=="object"&&j!==null){switch(j.$$typeof){case Wg:return N=sy(j.type,j.key,j.props,null,b.mode,N),N.ref=pm(b,null,j),N.return=b,N;case xu:return j=vv(j,b.mode,N),j.return=b,j;case yc:var A=j._init;return p(b,A(j._payload),N)}if(Pm(j)||lm(j))return j=nh(j,b.mode,N,null),j.return=b,j;sx(b,j)}return null}function m(b,j,N,A){var E=j!==null?j.key:null;if(typeof N=="string"&&N!==""||typeof N=="number")return E!==null?null:l(b,j,""+N,A);if(typeof N=="object"&&N!==null){switch(N.$$typeof){case Wg:return N.key===E?c(b,j,N,A):null;case xu:return N.key===E?d(b,j,N,A):null;case yc:return E=N._init,m(b,j,E(N._payload),A)}if(Pm(N)||lm(N))return E!==null?null:h(b,j,N,A,null);sx(b,N)}return null}function u(b,j,N,A,E){if(typeof A=="string"&&A!==""||typeof A=="number")return b=b.get(N)||null,l(j,b,""+A,E);if(typeof A=="object"&&A!==null){switch(A.$$typeof){case Wg:return b=b.get(A.key===null?N:A.key)||null,c(j,b,A,E);case xu:return b=b.get(A.key===null?N:A.key)||null,d(j,b,A,E);case yc:var C=A._init;return u(b,j,N,C(A._payload),E)}if(Pm(A)||lm(A))return b=b.get(N)||null,h(j,b,A,E,null);sx(j,A)}return null}function y(b,j,N,A){for(var E=null,C=null,F=j,O=j=0,L=null;F!==null&&O<N.length;O++){F.index>O?(L=F,F=null):L=F.sibling;var W=m(b,F,N[O],A);if(W===null){F===null&&(F=L);break}t&&F&&W.alternate===null&&n(b,F),j=i(W,j,O),C===null?E=W:C.sibling=W,C=W,F=L}if(O===N.length)return s(b,F),Ms&&_d(b,O),E;if(F===null){for(;O<N.length;O++)F=p(b,N[O],A),F!==null&&(j=i(F,j,O),C===null?E=F:C.sibling=F,C=F);return Ms&&_d(b,O),E}for(F=r(b,F);O<N.length;O++)L=u(F,b,O,N[O],A),L!==null&&(t&&L.alternate!==null&&F.delete(L.key===null?O:L.key),j=i(L,j,O),C===null?E=L:C.sibling=L,C=L);return t&&F.forEach(function(_){return n(b,_)}),Ms&&_d(b,O),E}function g(b,j,N,A){var E=lm(N);if(typeof E!="function")throw Error(Qe(150));if(N=E.call(N),N==null)throw Error(Qe(151));for(var C=E=null,F=j,O=j=0,L=null,W=N.next();F!==null&&!W.done;O++,W=N.next()){F.index>O?(L=F,F=null):L=F.sibling;var _=m(b,F,W.value,A);if(_===null){F===null&&(F=L);break}t&&F&&_.alternate===null&&n(b,F),j=i(_,j,O),C===null?E=_:C.sibling=_,C=_,F=L}if(W.done)return s(b,F),Ms&&_d(b,O),E;if(F===null){for(;!W.done;O++,W=N.next())W=p(b,W.value,A),W!==null&&(j=i(W,j,O),C===null?E=W:C.sibling=W,C=W);return Ms&&_d(b,O),E}for(F=r(b,F);!W.done;O++,W=N.next())W=u(F,b,O,W.value,A),W!==null&&(t&&W.alternate!==null&&F.delete(W.key===null?O:W.key),j=i(W,j,O),C===null?E=W:C.sibling=W,C=W);return t&&F.forEach(function(P){return n(b,P)}),Ms&&_d(b,O),E}function w(b,j,N,A){if(typeof N=="object"&&N!==null&&N.type===yu&&N.key===null&&(N=N.props.children),typeof N=="object"&&N!==null){switch(N.$$typeof){case Wg:e:{for(var E=N.key,C=j;C!==null;){if(C.key===E){if(E=N.type,E===yu){if(C.tag===7){s(b,C.sibling),j=a(C,N.props.children),j.return=b,b=j;break e}}else if(C.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===yc&&C5(E)===C.type){s(b,C.sibling),j=a(C,N.props),j.ref=pm(b,C,N),j.return=b,b=j;break e}s(b,C);break}else n(b,C);C=C.sibling}N.type===yu?(j=nh(N.props.children,b.mode,A,N.key),j.return=b,b=j):(A=sy(N.type,N.key,N.props,null,b.mode,A),A.ref=pm(b,j,N),A.return=b,b=A)}return o(b);case xu:e:{for(C=N.key;j!==null;){if(j.key===C)if(j.tag===4&&j.stateNode.containerInfo===N.containerInfo&&j.stateNode.implementation===N.implementation){s(b,j.sibling),j=a(j,N.children||[]),j.return=b,b=j;break e}else{s(b,j);break}else n(b,j);j=j.sibling}j=vv(N,b.mode,A),j.return=b,b=j}return o(b);case yc:return C=N._init,w(b,j,C(N._payload),A)}if(Pm(N))return y(b,j,N,A);if(lm(N))return g(b,j,N,A);sx(b,N)}return typeof N=="string"&&N!==""||typeof N=="number"?(N=""+N,j!==null&&j.tag===6?(s(b,j.sibling),j=a(j,N),j.return=b,b=j):(s(b,
vendor: 5,357 bytes, line 38
38j),j=bv(N,b.mode,A),j.return=b,b=j),o(b)):s(b,j)}return w}var mp=WI(!0),GI=WI(!1),Oy=od(null),Fy=null,Au=null,Yk=null;function Jk(){Yk=Au=Fy=null}function Xk(t){var n=Oy.current;Cs(Oy),t._currentValue=n}function jj(t,n,s){for(;t!==null;){var r=t.alternate;if((t.childLanes&n)!==n?(t.childLanes|=n,r!==null&&(r.childLanes|=n)):r!==null&&(r.childLanes&n)!==n&&(r.childLanes|=n),t===s)break;t=t.return}}function Ru(t,n){Fy=t,Yk=Au=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&n&&(qa=!0),t.firstContext=null)}function Gi(t){var n=t._currentValue;if(Yk!==t)if(t={context:t,memoizedValue:n,next:null},Au===null){if(Fy===null)throw Error(Qe(308));Au=t,Fy.dependencies={lanes:0,firstContext:t}}else Au=Au.next=t;return n}var Ud=null;function Zk(t){Ud===null?Ud=[t]:Ud.push(t)}function KI(t,n,s,r){var a=n.interleaved;return a===null?(s.next=s,Zk(n)):(s.next=a.next,a.next=s),n.interleaved=s,Pl(t,r)}function Pl(t,n){t.lanes|=n;var s=t.alternate;for(s!==null&&(s.lanes|=n),s=t,t=t.return;t!==null;)t.childLanes|=n,s=t.alternate,s!==null&&(s.childLanes|=n),s=t,t=t.return;return s.tag===3?s.stateNode:null}var bc=!1;function e1(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function QI(t,n){t=t.updateQueue,n.updateQueue===t&&(n.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Dl(t,n){return{eventTime:t,lane:n,tag:0,payload:null,callback:null,next:null}}function $c(t,n,s){var r=t.updateQueue;if(r===null)return null;if(r=r.shared,qn&2){var a=r.pending;return a===null?n.next=n:(n.next=a.next,a.next=n),r.pending=n,Pl(t,s)}return a=r.interleaved,a===null?(n.next=n,Zk(r)):(n.next=a.next,a.next=n),r.interleaved=n,Pl(t,s)}function Jx(t,n,s){if(n=n.updateQueue,n!==null&&(n=n.shared,(s&4194240)!==0)){var r=n.lanes;r&=t.pendingLanes,s|=r,n.lanes=s,Vk(t,s)}}function _5(t,n){var s=t.updateQueue,r=t.alternate;if(r!==null&&(r=r.updateQueue,s===r)){var a=null,i=null;if(s=s.firstBaseUpdate,s!==null){do{var o={eventTime:s.eventTime,lane:s.lane,tag:s.tag,payload:s.payload,callback:s.callback,next:null};i===null?a=i=o:i=i.next=o,s=s.next}while(s!==null);i===null?a=i=n:i=i.next=n}else a=i=n;s={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:r.shared,effects:r.effects},t.updateQueue=s;return}t=s.lastBaseUpdate,t===null?s.firstBaseUpdate=n:t.next=n,s.lastBaseUpdate=n}function Vy(t,n,s,r){var a=t.updateQueue;bc=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var c=l,d=c.next;c.next=null,o===null?i=d:o.next=d,o=c;var h=t.alternate;h!==null&&(h=h.updateQueue,l=h.lastBaseUpdate,l!==o&&(l===null?h.firstBaseUpdate=d:l.next=d,h.lastBaseUpdate=c))}if(i!==null){var p=a.baseState;o=0,h=d=c=null,l=i;do{var m=l.lane,u=l.eventTime;if((r&m)===m){h!==null&&(h=h.next={eventTime:u,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var y=t,g=l;switch(m=n,u=s,g.tag){case 1:if(y=g.payload,typeof y=="function"){p=y.call(u,p,m);break e}p=y;break e;case 3:y.flags=y.flags&-65537|128;case 0:if(y=g.payload,m=typeof y=="function"?y.call(u,p,m):y,m==null)break e;p=$s({},p,m);break e;case 2:bc=!0}}l.callback!==null&&l.lane!==0&&(t.flags|=64,m=a.effects,m===null?a.effects=[l]:m.push(l))}else u={eventTime:u,lane:m,tag:l.tag,payload:l.payload,callback:l.callback,next:null},h===null?(d=h=u,c=p):h=h.next=u,o|=m;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;m=l,l=m.next,m.next=null,a.lastBaseUpdate=m,a.shared.pending=null}}while(!0);if(h===null&&(c=p),a.baseState=c,a.firstBaseUpdate=d,a.lastBaseUpdate=h,n=a.shared.interleaved,n!==null){a=n;do o|=a.lane,a=a.next;while(a!==n)}else i===null&&(a.shared.lanes=0);ch|=o,t.lanes=o,t.memoizedState=p}}function T5(t,n,s){if(t=n.effects,n.effects=null,t!==null)for(n=0;n<t.length;n++){var r=t[n],a=r.callback;if(a!==null){if(r.callback=null,r=s,typeof a!="function")throw Error(Qe(191,a));a.call(r)}}}var eg={},Qo=od(eg),wf=od(eg),jf=od(eg);function qd(t){if(t===eg)throw Error(Qe(174));return t}function t1(t,n){switch(vs(jf,n),vs(wf,t),vs(Qo,eg),t=n.nodeType,t){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:nj(null,"");break;default:t=t===8?n.parentNode:n,n=t.namespaceURI||null,t=t.tagName,n=nj(n,t)}Cs(Qo),vs(Qo,n)}function fp(){Cs(Qo),Cs(wf),Cs(jf)}function YI(t){qd(jf.current);var n=qd(Qo.current),s=nj(n,t.type);n!==s&&(vs(wf,t),vs(Qo,s))}function n1(t){wf.current===t&&(Cs(Qo),Cs(wf))}var Us=od(0);function By(t){for(var n=t;n!==null;){if(n.tag===13){var s=n.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||s.data==="$?"||s.data==="$!"))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if(n.flags&128)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var pv=[];function s1(){for(var t=0;t<pv.length;t++)pv[t]._workInProgressVersionPrimary=null;pv.length=0}var Xx=Fl.ReactCurrentDispatcher,mv=Fl.ReactCurrentBatchConfig,lh=0,Hs=null,vr=null,Sr=null,zy=!1,Gm=!1,kf=0,n7=0;function Xr(){throw Error(Qe(321))}function r1(t,n){if(n===null)return!1;for(var s=0;s<n.length&&s<t.length;s++)if(!go(t[s],n[s]))return!1;return!0}
vendor: 5,612 bytes, line 38
38function a1(t,n,s,r,a,i){if(lh=i,Hs=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,Xx.current=t===null||t.memoizedState===null?i7:o7,t=s(r,a),Gm){i=0;do{if(Gm=!1,kf=0,25<=i)throw Error(Qe(301));i+=1,Sr=vr=null,n.updateQueue=null,Xx.current=l7,t=s(r,a)}while(Gm)}if(Xx.current=Uy,n=vr!==null&&vr.next!==null,lh=0,Sr=vr=Hs=null,zy=!1,n)throw Error(Qe(300));return t}function i1(){var t=kf!==0;return kf=0,t}function Mo(){var t={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Sr===null?Hs.memoizedState=Sr=t:Sr=Sr.next=t,Sr}function Ki(){if(vr===null){var t=Hs.alternate;t=t!==null?t.memoizedState:null}else t=vr.next;var n=Sr===null?Hs.memoizedState:Sr.next;if(n!==null)Sr=n,vr=t;else{if(t===null)throw Error(Qe(310));vr=t,t={memoizedState:vr.memoizedState,baseState:vr.baseState,baseQueue:vr.baseQueue,queue:vr.queue,next:null},Sr===null?Hs.memoizedState=Sr=t:Sr=Sr.next=t}return Sr}function Nf(t,n){return typeof n=="function"?n(t):n}function fv(t){var n=Ki(),s=n.queue;if(s===null)throw Error(Qe(311));s.lastRenderedReducer=t;var r=vr,a=r.baseQueue,i=s.pending;if(i!==null){if(a!==null){var o=a.next;a.next=i.next,i.next=o}r.baseQueue=a=i,s.pending=null}if(a!==null){i=a.next,r=r.baseState;var l=o=null,c=null,d=i;do{var h=d.lane;if((lh&h)===h)c!==null&&(c=c.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),r=d.hasEagerState?d.eagerState:t(r,d.action);else{var p={lane:h,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};c===null?(l=c=p,o=r):c=c.next=p,Hs.lanes|=h,ch|=h}d=d.next}while(d!==null&&d!==i);c===null?o=r:c.next=l,go(r,n.memoizedState)||(qa=!0),n.memoizedState=r,n.baseState=o,n.baseQueue=c,s.lastRenderedState=r}if(t=s.interleaved,t!==null){a=t;do i=a.lane,Hs.lanes|=i,ch|=i,a=a.next;while(a!==t)}else a===null&&(s.lanes=0);return[n.memoizedState,s.dispatch]}function gv(t){var n=Ki(),s=n.queue;if(s===null)throw Error(Qe(311));s.lastRenderedReducer=t;var r=s.dispatch,a=s.pending,i=n.memoizedState;if(a!==null){s.pending=null;var o=a=a.next;do i=t(i,o.action),o=o.next;while(o!==a);go(i,n.memoizedState)||(qa=!0),n.memoizedState=i,n.baseQueue===null&&(n.baseState=i),s.lastRenderedState=i}return[i,r]}function JI(){}function XI(t,n){var s=Hs,r=Ki(),a=n(),i=!go(r.memoizedState,a);if(i&&(r.memoizedState=a,qa=!0),r=r.queue,o1(tC.bind(null,s,r,t),[t]),r.getSnapshot!==n||i||Sr!==null&&Sr.memoizedState.tag&1){if(s.flags|=2048,Sf(9,eC.bind(null,s,r,a,n),void 0,null),Ir===null)throw Error(Qe(349));lh&30||ZI(s,n,a)}return a}function ZI(t,n,s){t.flags|=16384,t={getSnapshot:n,value:s},n=Hs.updateQueue,n===null?(n={lastEffect:null,stores:null},Hs.updateQueue=n,n.stores=[t]):(s=n.stores,s===null?n.stores=[t]:s.push(t))}function eC(t,n,s,r){n.value=s,n.getSnapshot=r,nC(n)&&sC(t)}function tC(t,n,s){return s(function(){nC(n)&&sC(t)})}function nC(t){var n=t.getSnapshot;t=t.value;try{var s=n();return!go(t,s)}catch{return!0}}function sC(t){var n=Pl(t,1);n!==null&&fo(n,t,1,-1)}function P5(t){var n=Mo();return typeof t=="function"&&(t=t()),n.memoizedState=n.baseState=t,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Nf,lastRenderedState:t},n.queue=t,t=t.dispatch=a7.bind(null,Hs,t),[n.memoizedState,t]}function Sf(t,n,s,r){return t={tag:t,create:n,destroy:s,deps:r,next:null},n=Hs.updateQueue,n===null?(n={lastEffect:null,stores:null},Hs.updateQueue=n,n.lastEffect=t.next=t):(s=n.lastEffect,s===null?n.lastEffect=t.next=t:(r=s.next,s.next=t,t.next=r,n.lastEffect=t)),t}function rC(){return Ki().memoizedState}function Zx(t,n,s,r){var a=Mo();Hs.flags|=t,a.memoizedState=Sf(1|n,s,void 0,r===void 0?null:r)}function A0(t,n,s,r){var a=Ki();r=r===void 0?null:r;var i=void 0;if(vr!==null){var o=vr.memoizedState;if(i=o.destroy,r!==null&&r1(r,o.deps)){a.memoizedState=Sf(n,s,i,r);return}}Hs.flags|=t,a.memoizedState=Sf(1|n,s,i,r)}function E5(t,n){return Zx(8390656,8,t,n)}function o1(t,n){return A0(2048,8,t,n)}function aC(t,n){return A0(4,2,t,n)}function iC(t,n){return A0(4,4,t,n)}function oC(t,n){if(typeof n=="function")return t=t(),n(t),function(){n(null)};if(n!=null)return t=t(),n.current=t,function(){n.current=null}}function lC(t,n,s){return s=s!=null?s.concat([t]):null,A0(4,4,oC.bind(null,n,t),s)}function l1(){}function cC(t,n){var s=Ki();n=n===void 0?null:n;var r=s.memoizedState;return r!==null&&n!==null&&r1(n,r[1])?r[0]:(s.memoizedState=[t,n],t)}function dC(t,n){var s=Ki();n=n===void 0?null:n;var r=s.memoizedState;return r!==null&&n!==null&&r1(n,r[1])?r[0]:(t=t(),s.memoizedState=[t,n],t)}function hC(t,n,s){return lh&21?(go(s,n)||(s=gI(),Hs.lanes|=s,ch|=s,t.baseState=!0),n):(t.baseState&&(t.baseState=!1,qa=!0),t.memoizedState=s)}function s7(t,n){var s=Xn;Xn=s!==0&&4>s?s:4,t(!0);var r=mv.transition;mv.transition={};try{t(!1),n()}finally{Xn=s,mv.transition=r}}function uC(){return Ki().memoizedState}function r7(t,n,s){var r=Gc(t);if(s={lane:r,action:s,hasEagerState:!1,eagerState:null,next:null},pC(t))mC(n,s);else if(s=KI(t,n,s,r),s!==null){var a=Sa();fo(s,t,r,a),fC(s,n,r)}}function a7(t,n,s){var r=Gc(t),a={lane:r,action:s,hasEagerState:!1,eagerState:null,next:null};if(pC(t))mC(n,a);else{var i=t.alternate;if(t.lanes===0&&(i===null||i.lanes===0)&&(i=n.lastRenderedReducer,i!==null))try{var o=n.lastRenderedState,l=i(o,s);if(a.hasEagerState=!0,a.eagerState=l,go(l,o)){var c=n.interleaved;c===null?(a.next=a,Zk(n)):(a.next=c.next,c.next=a),n.interleaved=a;return}}catch{}finally{}s=KI(t,n,a,r),s!==null&&(a=Sa(),fo(s,t,r,a),fC(s,n,r))}}function pC(t){var n=t.alternate;return t===Hs||n!==null&&n===Hs}function mC(t,n){Gm=zy=!0;var s=t.pending;
vendor: 8,574 bytes, lines 38-40
38s===null?n.next=n:(n.next=s.next,s.next=n),t.pending=n}function fC(t,n,s){if(s&4194240){var r=n.lanes;r&=t.pendingLanes,s|=r,n.lanes=s,Vk(t,s)}}var Uy={readContext:Gi,useCallback:Xr,useContext:Xr,useEffect:Xr,useImperativeHandle:Xr,useInsertionEffect:Xr,useLayoutEffect:Xr,useMemo:Xr,useReducer:Xr,useRef:Xr,useState:Xr,useDebugValue:Xr,useDeferredValue:Xr,useTransition:Xr,useMutableSource:Xr,useSyncExternalStore:Xr,useId:Xr,unstable_isNewReconciler:!1},i7={readContext:Gi,useCallback:function(t,n){return Mo().memoizedState=[t,n===void 0?null:n],t},useContext:Gi,useEffect:E5,useImperativeHandle:function(t,n,s){return s=s!=null?s.concat([t]):null,Zx(4194308,4,oC.bind(null,n,t),s)},useLayoutEffect:function(t,n){return Zx(4194308,4,t,n)},useInsertionEffect:function(t,n){return Zx(4,2,t,n)},useMemo:function(t,n){var s=Mo();return n=n===void 0?null:n,t=t(),s.memoizedState=[t,n],t},useReducer:function(t,n,s){var r=Mo();return n=s!==void 0?s(n):n,r.memoizedState=r.baseState=n,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:n},r.queue=t,t=t.dispatch=r7.bind(null,Hs,t),[r.memoizedState,t]},useRef:function(t){var n=Mo();return t={current:t},n.memoizedState=t},useState:P5,useDebugValue:l1,useDeferredValue:function(t){return Mo().memoizedState=t},useTransition:function(){var t=P5(!1),n=t[0];return t=s7.bind(null,t[1]),Mo().memoizedState=t,[n,t]},useMutableSource:function(){},useSyncExternalStore:function(t,n,s){var r=Hs,a=Mo();if(Ms){if(s===void 0)throw Error(Qe(407));s=s()}else{if(s=n(),Ir===null)throw Error(Qe(349));lh&30||ZI(r,n,s)}a.memoizedState=s;var i={value:s,getSnapshot:n};return a.queue=i,E5(tC.bind(null,r,i,t),[t]),r.flags|=2048,Sf(9,eC.bind(null,r,i,s,n),void 0,null),s},useId:function(){var t=Mo(),n=Ir.identifierPrefix;if(Ms){var s=Sl,r=Nl;s=(r&~(1<<32-mo(r)-1)).toString(32)+s,n=":"+n+"R"+s,s=kf++,0<s&&(n+="H"+s.toString(32)),n+=":"}else s=n7++,n=":"+n+"r"+s.toString(32)+":";return t.memoizedState=n},unstable_isNewReconciler:!1},o7={readContext:Gi,useCallback:cC,useContext:Gi,useEffect:o1,useImperativeHandle:lC,useInsertionEffect:aC,useLayoutEffect:iC,useMemo:dC,useReducer:fv,useRef:rC,useState:function(){return fv(Nf)},useDebugValue:l1,useDeferredValue:function(t){var n=Ki();return hC(n,vr.memoizedState,t)},useTransition:function(){var t=fv(Nf)[0],n=Ki().memoizedState;return[t,n]},useMutableSource:JI,useSyncExternalStore:XI,useId:uC,unstable_isNewReconciler:!1},l7={readContext:Gi,useCallback:cC,useContext:Gi,useEffect:o1,useImperativeHandle:lC,useInsertionEffect:aC,useLayoutEffect:iC,useMemo:dC,useReducer:gv,useRef:rC,useState:function(){return gv(Nf)},useDebugValue:l1,useDeferredValue:function(t){var n=Ki();return vr===null?n.memoizedState=t:hC(n,vr.memoizedState,t)},useTransition:function(){var t=gv(Nf)[0],n=Ki().memoizedState;return[t,n]},useMutableSource:JI,useSyncExternalStore:XI,useId:uC,unstable_isNewReconciler:!1};function ao(t,n){if(t&&t.defaultProps){n=$s({},n),t=t.defaultProps;for(var s in t)n[s]===void 0&&(n[s]=t[s]);return n}return n}function kj(t,n,s,r){n=t.memoizedState,s=s(r,n),s=s==null?n:$s({},n,s),t.memoizedState=s,t.lanes===0&&(t.updateQueue.baseState=s)}var D0={isMounted:function(t){return(t=t._reactInternals)?Sh(t)===t:!1},enqueueSetState:function(t,n,s){t=t._reactInternals;var r=Sa(),a=Gc(t),i=Dl(r,a);i.payload=n,s!=null&&(i.callback=s),n=$c(t,i,a),n!==null&&(fo(n,t,a,r),Jx(n,t,a))},enqueueReplaceState:function(t,n,s){t=t._reactInternals;var r=Sa(),a=Gc(t),i=Dl(r,a);i.tag=1,i.payload=n,s!=null&&(i.callback=s),n=$c(t,i,a),n!==null&&(fo(n,t,a,r),Jx(n,t,a))},enqueueForceUpdate:function(t,n){t=t._reactInternals;var s=Sa(),r=Gc(t),a=Dl(s,r);a.tag=2,n!=null&&(a.callback=n),n=$c(t,a,r),n!==null&&(fo(n,t,r,s),Jx(n,t,r))}};function L5(t,n,s,r,a,i,o){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(r,i,o):n.prototype&&n.prototype.isPureReactComponent?!xf(s,r)||!xf(a,i):!0}function gC(t,n,s){var r=!1,a=Xc,i=n.contextType;return typeof i=="object"&&i!==null?i=Gi(i):(a=Wa(n)?ih:da.current,r=n.contextTypes,i=(r=r!=null)?up(t,a):Xc),n=new n(s,i),t.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=D0,t.stateNode=n,n._reactInternals=t,r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=a,t.__reactInternalMemoizedMaskedChildContext=i),n}function M5(t,n,s,r){t=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(s,r),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(s,r),n.state!==t&&D0.enqueueReplaceState(n,n.state,null)}function Nj(t,n,s,r){var a=t.stateNode;a.props=s,a.state=t.memoizedState,a.refs={},e1(t);var i=n.contextType;typeof i=="object"&&i!==null?a.context=Gi(i):(i=Wa(n)?ih:da.current,a.context=up(t,i)),a.state=t.memoizedState,i=n.getDerivedStateFromProps,typeof i=="function"&&(kj(t,n,i,s),a.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof a.getSnapshotBeforeUpdate=="function"||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(n=a.state,typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount(),n!==a.state&&D0.enqueueReplaceState(a,a.state,null),Vy(t,s,a,r),a.state=t.memoizedState),typeof a.componentDidMount=="function"&&(t.flags|=4194308)}function gp(t,n){try{var s="",r=n;do s+=RO(r),r=r.return;while(r);var a=s}catch(i){a=` 39Error generating stack: `+i.message+` 40`+i.stack}return{value:t,source:n,stack:a,digest:null}}function xv(t,n,s){return{value:t,source:null,stack:s??null,digest:n??null}}function Sj(t,n){try{console.error(n.value)}catch(s){setTimeout(function(){throw s})}}var c7=typeof WeakMap=="function"?WeakMap:Map;function xC(t,n,s){s=Dl(-1,s),s.tag=3,s.payload={element:null};var r=n.value;return s.callback=function(){Hy||(Hy=!0,Mj=r),Sj(t,n)},s}function yC(t,n,s){s=Dl(-1,s),s.tag=3;var r=t.type.getDerivedStateFromError;if(typeof r=="function"){var a=n.value;s.payload=function(){return r(a)},s.callback=function(){Sj(t,n)}}var i=t.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(s.callback=function(){Sj(t,n),typeof r!="function"&&(Wc===null?Wc=new Set([this]):Wc.add(this));var o=n.stack;this.componentDidCatch(n.value,{componentStack:o!==null?o:""})}),s}function R5(t,n,s){var r=t.pingCache;if(r===null){r=t.pingCache=new c7;var a=new Set;r.set(n,a)}else a=r.get(n),a===void 0&&(a=new Set,r.set(n,a));a.has(s)||(a.add(s),t=k7.bind(null,t,n,s),n.then(t,t))}function O5(t){do{var n;if((n=t.tag===13)&&(n=t.memoizedState,n=n!==null?n.dehydrated!==null:!0),n)return t;t=t.return}while(t!==null);return null}function F5(t,n,s,r,a){return t.mode&1?(t.flags|=65536,t.lanes=a,t):(t===n?t.flags|=65536:(t.flags|=128,s.flags|=131072,s.flags&=-52805,s.tag===1&&(s.alternate===null?s.tag=17:(n=Dl(-1,1),n.tag=2,$c(s,n,1))),s.lanes|=1),t)}var d7=Fl.ReactCurrentOwner,qa=!1;function ka(t,n,s,r){n.child=t===null?GI(n,null,s,r):mp(n,t.child,s,r)}function V5(t,n,s,r,a){s=s.render;var i=n.ref;return Ru(n,a),r=a1(t,n,s,r,i,a),s=i1(),t!==null&&!qa?(n.updateQueue=t.updateQueue,n.flags&=-2053,t.lanes&=~a,El(t,n,a)):(Ms&&s&&Gk(n),n.flags|=1,ka(t,n,r,a),n.child)}function B5(t,n,s,r,a){if(t===null){var i=s.type;return typeof i=="function"&&!g1(i)&&i.defaultProps===void 0&&s.compare===null&&s.defaultProps===void 0?(n.tag=15,n.type=i,bC(t,n,i,r,a)):(t=sy(s.type,null,r,n,n.mode,a),t.ref=n.ref,t.return=n,n.child=t)}if(i=t.child,!(t.lanes&a)){var o=i.memoizedProps;if(s=s.compare,s=s!==null?s:xf,s(o,r)&&t.ref===n.ref)return El(t,n,a)}return n.flags|=1,t=Kc(i,r),t.ref=n.ref,t.return=n,n.child=t}function bC(t,n,s,r,a){if(t!==null){var i=t.memoizedProps;if(xf(i,r)&&t.ref===n.ref)if(qa=!1,n.pendingProps=r=i,(t.lanes&a)!==0)t.flags&131072&&(qa=!0);else return n.lanes=t.lanes,El(t,n,a)}return Aj(t,n,s,r,a)}function vC(t,n,s){var r=n.pendingProps,a=r.children,i=t!==null?t.memoizedState:null;if(r.mode==="hidden")if(!(n.mode&1))n.memoizedState={baseLanes:0,cachePool:null,transitions:null},vs(Iu,gi),gi|=s;else{if(!(s&1073741824))return t=i!==null?i.baseLanes|s:s,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:t,cachePool:null,transitions:null},n.updateQueue=null,vs(Iu,gi),gi|=t,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=i!==null?i.baseLanes:s,vs(Iu,gi),gi|=r}else i!==null?(r=i.baseLanes|s,n.memoizedState=null):r=s,vs(Iu,gi),gi|=r;return ka(t,n,a,s),n.child}function wC(t,n){var s=n.ref;(t===null&&s!==null||t!==null&&t.ref!==s)&&(n.flags|=512,n.flags|=2097152)}
vendor: 4,497 bytes, line 40
40function Aj(t,n,s,r,a){var i=Wa(s)?ih:da.current;return i=up(n,i),Ru(n,a),s=a1(t,n,s,r,i,a),r=i1(),t!==null&&!qa?(n.updateQueue=t.updateQueue,n.flags&=-2053,t.lanes&=~a,El(t,n,a)):(Ms&&r&&Gk(n),n.flags|=1,ka(t,n,s,a),n.child)}function z5(t,n,s,r,a){if(Wa(s)){var i=!0;Ly(n)}else i=!1;if(Ru(n,a),n.stateNode===null)ey(t,n),gC(n,s,r),Nj(n,s,r,a),r=!0;else if(t===null){var o=n.stateNode,l=n.memoizedProps;o.props=l;var c=o.context,d=s.contextType;typeof d=="object"&&d!==null?d=Gi(d):(d=Wa(s)?ih:da.current,d=up(n,d));var h=s.getDerivedStateFromProps,p=typeof h=="function"||typeof o.getSnapshotBeforeUpdate=="function";p||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==r||c!==d)&&M5(n,o,r,d),bc=!1;var m=n.memoizedState;o.state=m,Vy(n,r,o,a),c=n.memoizedState,l!==r||m!==c||$a.current||bc?(typeof h=="function"&&(kj(n,s,h,r),c=n.memoizedState),(l=bc||L5(n,s,l,r,m,c,d))?(p||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(n.flags|=4194308)):(typeof o.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=c),o.props=r,o.state=c,o.context=d,r=l):(typeof o.componentDidMount=="function"&&(n.flags|=4194308),r=!1)}else{o=n.stateNode,QI(t,n),l=n.memoizedProps,d=n.type===n.elementType?l:ao(n.type,l),o.props=d,p=n.pendingProps,m=o.context,c=s.contextType,typeof c=="object"&&c!==null?c=Gi(c):(c=Wa(s)?ih:da.current,c=up(n,c));var u=s.getDerivedStateFromProps;(h=typeof u=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==p||m!==c)&&M5(n,o,r,c),bc=!1,m=n.memoizedState,o.state=m,Vy(n,r,o,a);var y=n.memoizedState;l!==p||m!==y||$a.current||bc?(typeof u=="function"&&(kj(n,s,u,r),y=n.memoizedState),(d=bc||L5(n,s,d,r,m,y,c)||!1)?(h||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(r,y,c),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(r,y,c)),typeof o.componentDidUpdate=="function"&&(n.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof o.componentDidUpdate!="function"||l===t.memoizedProps&&m===t.memoizedState||(n.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===t.memoizedProps&&m===t.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=y),o.props=r,o.state=y,o.context=c,r=d):(typeof o.componentDidUpdate!="function"||l===t.memoizedProps&&m===t.memoizedState||(n.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===t.memoizedProps&&m===t.memoizedState||(n.flags|=1024),r=!1)}return Dj(t,n,s,r,i,a)}function Dj(t,n,s,r,a,i){wC(t,n);var o=(n.flags&128)!==0;if(!r&&!o)return a&&A5(n,s,!1),El(t,n,i);r=n.stateNode,d7.current=n;var l=o&&typeof s.getDerivedStateFromError!="function"?null:r.render();return n.flags|=1,t!==null&&o?(n.child=mp(n,t.child,null,i),n.child=mp(n,null,l,i)):ka(t,n,l,i),n.memoizedState=r.state,a&&A5(n,s,!0),n.child}function jC(t){var n=t.stateNode;n.pendingContext?S5(t,n.pendingContext,n.pendingContext!==n.context):n.context&&S5(t,n.context,!1),t1(t,n.containerInfo)}function U5(t,n,s,r,a){return pp(),Qk(a),n.flags|=256,ka(t,n,s,r),n.child}var Ij={dehydrated:null,treeContext:null,retryLane:0};function Cj(t){return{baseLanes:t,cachePool:null,transitions:null}}function kC(t,n,s){var r=n.pendingProps,a=Us.current,i=!1,o=(n.flags&128)!==0,l;if((l=o)||(l=t!==null&&t.memoizedState===null?!1:(a&2)!==0),l?(i=!0,n.flags&=-129):(t===null||t.memoizedState!==null)&&(a|=1),vs(Us,a&1),t===null)return wj(n),t=n.memoizedState,t!==null&&(t=t.dehydrated,t!==null)?(n.mode&1?t.data==="$!"?n.lanes=8:n.lanes=1073741824:n.lanes=1,null):(o=r.children,t=r.fallback,i?(r=n.mode,i=n.child,o={mode:"hidden",children:o},!(r&1)&&i!==null?(i.childLanes=0,i.pendingProps=o):i=_0(o,r,0,null),t=nh(t,r,s,null),i.return=n,t.return=n,i.sibling=t,n.child=i,n.child.memoizedState=Cj(s),n.memoizedState=Ij,t):c1(n,o));if(a=t.memoizedState,a!==null&&(l=a.dehydrated,l!==null))return h7(t,n,o,r,l,a,s);if(i){i=r.fallback,o=n.mode,a=t.child,l=a.sibling;var c={mode:"hidden",children:r.children};return!(o&1)&&n.child!==a?(r=n.child,r.childLanes=0,r.pendingProps=c,n.deleti
vendor: 9,137 bytes, line 40
40ons=null):(r=Kc(a,c),r.subtreeFlags=a.subtreeFlags&14680064),l!==null?i=Kc(l,i):(i=nh(i,o,s,null),i.flags|=2),i.return=n,r.return=n,r.sibling=i,n.child=r,r=i,i=n.child,o=t.child.memoizedState,o=o===null?Cj(s):{baseLanes:o.baseLanes|s,cachePool:null,transitions:o.transitions},i.memoizedState=o,i.childLanes=t.childLanes&~s,n.memoizedState=Ij,r}return i=t.child,t=i.sibling,r=Kc(i,{mode:"visible",children:r.children}),!(n.mode&1)&&(r.lanes=s),r.return=n,r.sibling=null,t!==null&&(s=n.deletions,s===null?(n.deletions=[t],n.flags|=16):s.push(t)),n.child=r,n.memoizedState=null,r}function c1(t,n){return n=_0({mode:"visible",children:n},t.mode,0,null),n.return=t,t.child=n}function rx(t,n,s,r){return r!==null&&Qk(r),mp(n,t.child,null,s),t=c1(n,n.pendingProps.children),t.flags|=2,n.memoizedState=null,t}function h7(t,n,s,r,a,i,o){if(s)return n.flags&256?(n.flags&=-257,r=xv(Error(Qe(422))),rx(t,n,o,r)):n.memoizedState!==null?(n.child=t.child,n.flags|=128,null):(i=r.fallback,a=n.mode,r=_0({mode:"visible",children:r.children},a,0,null),i=nh(i,a,o,null),i.flags|=2,r.return=n,i.return=n,r.sibling=i,n.child=r,n.mode&1&&mp(n,t.child,null,o),n.child.memoizedState=Cj(o),n.memoizedState=Ij,i);if(!(n.mode&1))return rx(t,n,o,null);if(a.data==="$!"){if(r=a.nextSibling&&a.nextSibling.dataset,r)var l=r.dgst;return r=l,i=Error(Qe(419)),r=xv(i,r,void 0),rx(t,n,o,r)}if(l=(o&t.childLanes)!==0,qa||l){if(r=Ir,r!==null){switch(o&-o){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}a=a&(r.suspendedLanes|o)?0:a,a!==0&&a!==i.retryLane&&(i.retryLane=a,Pl(t,a),fo(r,t,a,-1))}return f1(),r=xv(Error(Qe(421))),rx(t,n,o,r)}return a.data==="$?"?(n.flags|=128,n.child=t.child,n=N7.bind(null,t),a._reactRetry=n,null):(t=i.treeContext,bi=Hc(a.nextSibling),ki=n,Ms=!0,ho=null,t!==null&&(Vi[Bi++]=Nl,Vi[Bi++]=Sl,Vi[Bi++]=oh,Nl=t.id,Sl=t.overflow,oh=n),n=c1(n,r.children),n.flags|=4096,n)}function q5(t,n,s){t.lanes|=n;var r=t.alternate;r!==null&&(r.lanes|=n),jj(t.return,n,s)}function yv(t,n,s,r,a){var i=t.memoizedState;i===null?t.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:s,tailMode:a}:(i.isBackwards=n,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=s,i.tailMode=a)}function NC(t,n,s){var r=n.pendingProps,a=r.revealOrder,i=r.tail;if(ka(t,n,r.children,s),r=Us.current,r&2)r=r&1|2,n.flags|=128;else{if(t!==null&&t.flags&128)e:for(t=n.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&q5(t,s,n);else if(t.tag===19)q5(t,s,n);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===n)break e;for(;t.sibling===null;){if(t.return===null||t.return===n)break e;t=t.return}t.sibling.return=t.return,t=t.sibling}r&=1}if(vs(Us,r),!(n.mode&1))n.memoizedState=null;else switch(a){case"forwards":for(s=n.child,a=null;s!==null;)t=s.alternate,t!==null&&By(t)===null&&(a=s),s=s.sibling;s=a,s===null?(a=n.child,n.child=null):(a=s.sibling,s.sibling=null),yv(n,!1,a,s,i);break;case"backwards":for(s=null,a=n.child,n.child=null;a!==null;){if(t=a.alternate,t!==null&&By(t)===null){n.child=a;break}t=a.sibling,a.sibling=s,s=a,a=t}yv(n,!0,s,null,i);break;case"together":yv(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function ey(t,n){!(n.mode&1)&&t!==null&&(t.alternate=null,n.alternate=null,n.flags|=2)}function El(t,n,s){if(t!==null&&(n.dependencies=t.dependencies),ch|=n.lanes,!(s&n.childLanes))return null;if(t!==null&&n.child!==t.child)throw Error(Qe(153));if(n.child!==null){for(t=n.child,s=Kc(t,t.pendingProps),n.child=s,s.return=n;t.sibling!==null;)t=t.sibling,s=s.sibling=Kc(t,t.pendingProps),s.return=n;s.sibling=null}return n.child}function u7(t,n,s){switch(n.tag){case 3:jC(n),pp();break;case 5:YI(n);break;case 1:Wa(n.type)&&Ly(n);break;case 4:t1(n,n.stateNode.containerInfo);break;case 10:var r=n.type._context,a=n.memoizedProps.value;vs(Oy,r._currentValue),r._currentValue=a;break;case 13:if(r=n.memoizedState,r!==null)return r.dehydrated!==null?(vs(Us,Us.current&1),n.flags|=128,null):s&n.child.childLanes?kC(t,n,s):(vs(Us,Us.current&1),t=El(t,n,s),t!==null?t.sibling:null);vs(Us,Us.current&1);break;case 19:if(r=(s&n.childLanes)!==0,t.flags&128){if(r)return NC(t,n,s);n.flags|=128}if(a=n.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),vs(Us,Us.current),r)break;return null;case 22:case 23:return n.lanes=0,vC(t,n,s)}return El(t,n,s)}var SC,_j,AC,DC;SC=function(t,n){for(var s=n.child;s!==null;){if(s.tag===5||s.tag===6)t.appendChild(s.stateNode);else if(s.tag!==4&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===n)break;for(;s.sibling===null;){if(s.return===null||s.return===n)return;s=s.return}s.sibling.return=s.return,s=s.sibling}};_j=function(){};AC=function(t,n,s,r){var a=t.memoizedProps;if(a!==r){t=n.stateNode,qd(Qo.current);var i=null;switch(s){case"input":a=Xw(t,a),r=Xw(t,r),i=[];break;case"select":a=$s({},a,{value:void 0}),r=$s({},r,{value:void 0}),i=[];break;case"textarea":a=tj(t,a),r=tj(t,r),i=[];break;default:typeof a.onClick!="function"&&typeof r.onClick=="function"&&(t.onclick=Py)}sj(s,r);var o;s=null;for(d in a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&a[d]!=null)if(d==="style"){var l=a[d];for(o in l)l.hasOwnProperty(o)&&(s||(s={}),s[o]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(df.hasOwnProperty(d)?i||(i=[]):(i=i||[]).push(d,null));for(d in r){var c=r[d];if(l=a!=null?a[d]:void 0,r.hasOwnProperty(d)&&c!==l&&(c!=null||l!=null))if(d==="style")if(l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(s||(s={}),s[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(s||(s={}),s[o]=c[o])}else s||(i||(i=[]),i.push(d,s)),s=c;else d==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,l=l?l.__html:void 0,c!=null&&l!==c&&(i=i||[]).push(d,c)):d==="children"?typeof c!="string"&&typeof c!="number"||(i=i||[]).push(d,""+c):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(df.hasOwnProperty(d)?(c!=null&&d==="onScroll"&&Ds("scroll",t),i||l===c||(i=[])):(i=i||[]).push(d,c))}s&&(i=i||[]).push("style",s);var d=i;(n.updateQueue=d)&&(n.flags|=4)}};DC=function(t,n,s,r){s!==r&&(n.flags|=4)};function mm(t,n){if(!Ms)switch(t.tailMode){case"hidden":n=t.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?t.tail=null:s.sibling=null;break;case"collapsed":s=t.tail;for(var r=null;s!==null;)s.alternate!==null&&(r=s),s=s.sibling;r===null?n||t.tail===null?t.tail=null:t.tail.sibling=null:r.sibling=null}}function Zr(t){var n=t.alternate!==null&&t.alternate.child===t.child,s=0,r=0;if(n)for(var a=t.child;a!==null;)s|=a.lanes|a.childLanes,r|=a.subtreeFlags&14680064,r|=a.flags&14680064,a.return=t,a=a.sibling;else for(a=t.child;a!==null;)s|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=t,a=a.sibling;return t.subtreeFlags|=r,t.childLanes=s,n}function p7(t,n,s){var r=n.pendingProps;switch(Kk(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Zr(n),null;case 1:return Wa(n.type)&&Ey(),Zr(n),null;case 3:return r=n.stateNode,fp(),Cs($a),Cs(da),s1(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(t===null||t.child===null)&&(nx(n)?n.flags|=4:t===null||t.memoizedState.isDehydrated&&!(n.flags&256)||(n.flags|=1024,ho!==null&&(Fj(ho),ho=null))),_j(t,n),Zr(n),null;case 5:n1(n);var a=qd(jf.current);if(s=n.type,t!==null&&n.stateNode!=null)AC(t,n,s,r,a),t.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!r){if(n.stateNode===null)throw Error(Qe(166));return Zr(n),null}if(t=qd(Qo.current),nx(n)){r=n.stateNode,s=n.type;var i=n.memoizedProps;switch(r[Uo]=n,r[vf]=i,t=(n.mode&1)!==0,s){case"dialog":Ds("cancel",r),Ds("close",r);break;case"iframe":case"object":case"embed":Ds("load",r);break;case"video":case"audio":for(a=0;a<Lm.length;a++)Ds(Lm[a],r);break;case"source":Ds("error",r);break;case"img":case"image":case"link":Ds("error",r),Ds("load",r);break;case"details":Ds("toggle",r);break;case"input":XS(r,i),Ds("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},Ds("invalid",r);break;case"textarea":e5(r,i),Ds("invalid",r)}sj(s,i),a=null;for(var o in i)if(i.hasOwnProperty(o)){var l=i[o];o==="children"?typeof l=="string"?r.textContent!==l&&(i.suppressHydrationWarning!==!0&&tx(r.textContent,l,t),a=["children",l]):typeof l=="number"&&r.textContent!==""+l&&(i.suppressHydrationWarning!==!0&&tx(r.textContent,l,t),a=["children",""+l]):df.hasOwnProperty(o)&&l!=null&&o==="onScroll"&&Ds("scroll",r)}switch(s){case"input":Gg(r),ZS(r,i,!0);break;case"textarea":Gg(r),t5(r);break;case"select":case"option":break;default:typeof i.onClick=="function"&&(r.onclick=Py)}r=a,n.updateQueue=r,r!==null&&(n.flags|=4)}else{o=a.nodeType===9?a:a.ownerDocument,t==="http://www.w3.org/1999/xhtml"&&(t=tI(s)),t==="http://www.w3.org/1999/xhtml"?s==="script"?(t=o.createElement("div"),t.innerHTML="<script><\/script>
40",t=t.removeChild(t.firstChild)):typeof r.is=="string"?t=o.createElement(s,{is:r.is}):(t=o.createElement(s),s==="select"&&(o=t,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):t=o.createElementNS(t,s),t[Uo]=n,t[vf]=r,SC(t,n,!1,!1),n.stateNode=t;e:{switch(o=rj(s,r),s){case"dialog":Ds("cancel",t),Ds("close",t),a=r;break;case"iframe":case"object":case"embed":Ds("load",t),a=r;break;case"video":case"audio":for(a=0;a<Lm.length;a++)Ds(Lm[a],t);a=r;break;case"source":Ds("error",t),a=r;break;case"img":case"image":case"link":Ds("error",t),Ds("load",t),a=r;break;case"details":Ds("toggle",t),a=r;break;case"input":XS(t,r),a=Xw(t,r),Ds("invalid",t);break;case"option":a=r;break;case"select":t._wrapperState={wasMultiple:!!r.multiple},a=$s({},r,{value:void 0}),Ds("invalid",t);break;case"textarea":e5(t,r),a=tj(t,r),Ds("invalid",t);break;default:a=r}sj(s,a),l=a;for(i in l)if(l.hasOwnProperty(i)){var c=l[i];i==="style"?rI(t,c):i==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&nI(t,c)):i==="children"?typeof c=="string"?(s!=="textarea"||c!=="")&&hf(t,c):typeof c=="number"&&hf(t,""+c):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(df.hasOwnProperty(i)?c!=null&&i==="onScroll"&&Ds("scroll",t):c!=null&&Ek(t,i,c,o))}switch(s){case"input":Gg(t),ZS(t,r,!1);break;case"textarea":Gg(t),t5(t);break;case"option":r.value!=null&&t.setAttribute("value",""+Jc(r.value));break;case"select":t.multiple=!!r.multiple,i=r.value,i!=null?Pu(t,!!r.multiple,i,!1):r.defaultValue!=null&&Pu(t,!!r.multiple,r.defaultValue,!0);break;default:typeof a.onClick=="function"&&(t.onclick=Py)}switch(s){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(n.flags|=4)}n.ref!==null&&(n.flags|=512,n.flags|=2097152)}return Zr(n),null;case 6:if(t&&n.stateNode!=null)DC(t,n,t.memoizedProps,r);else{if(typeof r!="string"&&n.stateNode===null)throw Error(Qe(166));if(s=qd(jf.current),qd(Qo.current),nx(n)){if(r=n.stateNode,s=n.memoizedProps,r[Uo]=n,(i=r.nodeValue!==s)&&(t=ki,t!==null))switch(t.tag){case 3:tx(r.nodeValue,s,(t.mode&1)!==0);break;case 5:t.memoizedProps.suppressHydrationWarning!==!0&&tx(r.nodeValue,s,(t.mode&1)!==0)}i&&(n.flags|=4)}else r=(s.nodeType===9?s:s.ownerDocument).createTextNode(r),r[Uo]=n,n.stateNode=r}return Zr(n),null;case 13:if(Cs(Us),r=n.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(Ms&&bi!==null&&n.mode&1&&!(n.flags&128))$I(),pp(),n.flags|=98560,i=!1;else if(i=nx(n),r!==null&&r.dehydrated!==null){if(t===null){if(!i)throw Error(Qe(318));if(i=n.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(Qe(317));i[Uo]=n}else pp(),!(n.flags&128)&&(n.memoizedState=null),n.flags|=4;Zr(n),i=!1}else ho!==null&&(Fj(ho),ho=null),i=!0;if(!i)return n.flags&65536?n:null}return n.flags&128?(n.lanes=s,n):(r=r!==null,r!==(t!==null&&t.memoizedState!==null)&&r&&(n.child.flags|=8192,n.mode&1&&(t===null||Us.current&1?wr===0&&(wr=3):f1())),n.updateQueue!==null&&(n.flags|=4),Zr(n),null);case 4:return fp(),_j(t,n),t===null&&yf(n.stateNode.containerInfo),Zr(n),null;case 10:return Xk(n.type._context),Zr(n),null;case 17:return Wa(n.type)&&Ey(),Zr(n),null;case 19:if(Cs(Us),i=n.memoizedState,i===null)return Zr(n),null;if(r=(n.flags&128)!==0,o=i.rendering,o===null)if(r)mm(i,!1);else{if(wr!==0||t!==null&&t.flags&128)for(t=n.child;t!==null;){if(o=By(t),o!==null){for(n.flags|=128,mm(i,!1),r=o.updateQueue,r!==null&&(n.updateQueue=r,n.flags|=4),n.subtreeFlags=0,r=s,s=n.child;s!==null;)i=s,t=r,i.flags&=14680066,o=i.alternate,o===null?(i.childLanes=0,i.lanes=t,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=o.childLanes,i.lanes=o.lanes,i.child=o.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=o.memoizedProps,i.memoizedState=o.memoizedState,i.updateQueue=o.updateQueue,i.type=o.type,t=o.dependencies,i.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),s=s.sibling;return vs(Us,Us.current&1|2),n.child}t=t.sibling}i.tail!==null&&tr()>xp&&(n.flags|=128,r=!0,mm(i,!1),n.lanes=4194304)}else{if(!r)if(t=By(o),t!==null){if(n.flags|=128,r=!0,s=t.updateQueue,s!==null&&(n.updateQueue=s,n.flags|=4),mm(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!Ms)return Zr(n),null}else 2*tr()-i.renderingStartTime>xp&&s!==1073741824&&(n.flags|=128,r=!0,mm(i,!1),n.lanes=4194304);i.isBackwards?(o.sibling=n.child,n.child=o):(s=i.last,s!==null?s.sibling=o:n.child=o,i.last=o)}return i.tail!==null?(n=i.tail,i.rendering=n,i.tail=n.sibling,i.renderingStartTime=tr(),n.sibling=null,s=Us.current,vs(Us,r?s&1|2:s&1),n):(Zr(n),null);case 22:case 23:return m1(),r=n.memoizedState!==null,t!==null&&t.memoizedState!==null!==r&&(n.flags|=8192),r&&n.mode&1?gi&1073741824&&(Zr(n),n.subtreeFlags&6&&(n.flags|=8192)):Zr(n),null;case 24:return null;case 25:return null}throw Error(Qe(156,n.tag))}function m7(t,n){switch(Kk(n),n.tag){case 1:return Wa(n.type)&&Ey(),t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;
vendor: 23,997 bytes, line 40
40case 3:return fp(),Cs($a),Cs(da),s1(),t=n.flags,t&65536&&!(t&128)?(n.flags=t&-65537|128,n):null;case 5:return n1(n),null;case 13:if(Cs(Us),t=n.memoizedState,t!==null&&t.dehydrated!==null){if(n.alternate===null)throw Error(Qe(340));pp()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 19:return Cs(Us),null;case 4:return fp(),null;case 10:return Xk(n.type._context),null;case 22:case 23:return m1(),null;case 24:return null;default:return null}}var ax=!1,oa=!1,f7=typeof WeakSet=="function"?WeakSet:Set,kt=null;function Du(t,n){var s=t.ref;if(s!==null)if(typeof s=="function")try{s(null)}catch(r){Ys(t,n,r)}else s.current=null}function Tj(t,n,s){try{s()}catch(r){Ys(t,n,r)}}var H5=!1;function g7(t,n){if(mj=Cy,t=PI(),Wk(t)){if("selectionStart"in t)var s={start:t.selectionStart,end:t.selectionEnd};else e:{s=(s=t.ownerDocument)&&s.defaultView||window;var r=s.getSelection&&s.getSelection();if(r&&r.rangeCount!==0){s=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{s.nodeType,i.nodeType}catch{s=null;break e}var o=0,l=-1,c=-1,d=0,h=0,p=t,m=null;t:for(;;){for(var u;p!==s||a!==0&&p.nodeType!==3||(l=o+a),p!==i||r!==0&&p.nodeType!==3||(c=o+r),p.nodeType===3&&(o+=p.nodeValue.length),(u=p.firstChild)!==null;)m=p,p=u;for(;;){if(p===t)break t;if(m===s&&++d===a&&(l=o),m===i&&++h===r&&(c=o),(u=p.nextSibling)!==null)break;p=m,m=p.parentNode}p=u}s=l===-1||c===-1?null:{start:l,end:c}}else s=null}s=s||{start:0,end:0}}else s=null;for(fj={focusedElem:t,selectionRange:s},Cy=!1,kt=n;kt!==null;)if(n=kt,t=n.child,(n.subtreeFlags&1028)!==0&&t!==null)t.return=n,kt=t;else for(;kt!==null;){n=kt;try{var y=n.alternate;if(n.flags&1024)switch(n.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var g=y.memoizedProps,w=y.memoizedState,b=n.stateNode,j=b.getSnapshotBeforeUpdate(n.elementType===n.type?g:ao(n.type,g),w);b.__reactInternalSnapshotBeforeUpdate=j}break;case 3:var N=n.stateNode.containerInfo;N.nodeType===1?N.textContent="":N.nodeType===9&&N.documentElement&&N.removeChild(N.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Qe(163))}}catch(A){Ys(n,n.return,A)}if(t=n.sibling,t!==null){t.return=n.return,kt=t;break}kt=n.return}return y=H5,H5=!1,y}function Km(t,n,s){var r=n.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&t)===t){var i=a.destroy;a.destroy=void 0,i!==void 0&&Tj(n,s,i)}a=a.next}while(a!==r)}}function I0(t,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var s=n=n.next;do{if((s.tag&t)===t){var r=s.create;s.destroy=r()}s=s.next}while(s!==n)}}function Pj(t){var n=t.ref;if(n!==null){var s=t.stateNode;switch(t.tag){case 5:t=s;break;default:t=s}typeof n=="function"?n(t):n.current=t}}function IC(t){var n=t.alternate;n!==null&&(t.alternate=null,IC(n)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(n=t.stateNode,n!==null&&(delete n[Uo],delete n[vf],delete n[yj],delete n[XF],delete n[ZF])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function CC(t){return t.tag===5||t.tag===3||t.tag===4}function $5(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||CC(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Ej(t,n,s){var r=t.tag;if(r===5||r===6)t=t.stateNode,n?s.nodeType===8?s.parentNode.insertBefore(t,n):s.insertBefore(t,n):(s.nodeType===8?(n=s.parentNode,n.insertBefore(t,s)):(n=s,n.appendChild(t)),s=s._reactRootContainer,s!=null||n.onclick!==null||(n.onclick=Py));else if(r!==4&&(t=t.child,t!==null))for(Ej(t,n,s),t=t.sibling;t!==null;)Ej(t,n,s),t=t.sibling}function Lj(t,n,s){var r=t.tag;if(r===5||r===6)t=t.stateNode,n?s.insertBefore(t,n):s.appendChild(t);else if(r!==4&&(t=t.child,t!==null))for(Lj(t,n,s),t=t.sibling;t!==null;)Lj(t,n,s),t=t.sibling}var Or=null,oo=!1;function ac(t,n,s){for(s=s.child;s!==null;)_C(t,n,s),s=s.sibling}function _C(t,n,s){if(Ko&&typeof Ko.onCommitFiberUnmount=="function")try{Ko.onCommitFiberUnmount(v0,s)}catch{}switch(s.tag){case 5:oa||Du(s,n);case 6:var r=Or,a=oo;Or=null,ac(t,n,s),Or=r,oo=a,Or!==null&&(oo?(t=Or,s=s.stateNode,t.nodeType===8?t.parentNode.removeChild(s):t.removeChild(s)):Or.removeChild(s.stateNode));break;case 18:Or!==null&&(oo?(t=Or,s=s.stateNode,t.nodeType===8?hv(t.parentNode,s):t.nodeType===1&&hv(t,s),ff(t)):hv(Or,s.stateNode));break;case 4:r=Or,a=oo,Or=s.stateNode.containerInfo,oo=!0,ac(t,n,s),Or=r,oo=a;break;case 0:case 11:case 14:case 15:if(!oa&&(r=s.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){a=r=r.next;do{var i=a,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&Tj(s,n,o),a=a.next}while(a!==r)}ac(t,n,s);break;case 1:if(!oa&&(Du(s,n),r=s.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=s.memoizedProps,r.state=s.memoizedState,r.componentWillUnmount()}catch(l){Ys(s,n,l)}ac(t,n,s);break;case 21:ac(t,n,s);break;case 22:s.mode&1?(oa=(r=oa)||s.memoizedState!==null,ac(t,n,s),oa=r):ac(t,n,s);break;default:ac(t,n,s)}}function W5(t){var n=t.updateQueue;if(n!==null){t.updateQueue=null;var s=t.stateNode;s===null&&(s=t.stateNode=new f7),n.forEach(function(r){var a=S7.bind(null,t,r);s.has(r)||(s.add(r),r.then(a,a))})}}function so(t,n){var s=n.deletions;if(s!==null)for(var r=0;r<s.length;r++){var a=s[r];try{var i=t,o=n,l=o;e:for(;l!==null;){switch(l.tag){case 5:Or=l.stateNode,oo=!1;break e;case 3:Or=l.stateNode.containerInfo,oo=!0;break e;case 4:Or=l.stateNode.containerInfo,oo=!0;break e}l=l.return}if(Or===null)throw Error(Qe(160));_C(i,o,a),Or=null,oo=!1;var c=a.alternate;c!==null&&(c.return=null),a.return=null}catch(d){Ys(a,n,d)}}if(n.subtreeFlags&12854)for(n=n.child;n!==null;)TC(n,t),n=n.sibling}function TC(t,n){var s=t.alternate,r=t.flags;switch(t.tag){case 0:case 11:case 14:case 15:if(so(n,t),To(t),r&4){try{Km(3,t,t.return),I0(3,t)}catch(g){Ys(t,t.return,g)}try{Km(5,t,t.return)}catch(g){Ys(t,t.return,g)}}break;case 1:so(n,t),To(t),r&512&&s!==null&&Du(s,s.return);break;case 5:if(so(n,t),To(t),r&512&&s!==null&&Du(s,s.return),t.flags&32){var a=t.stateNode;try{hf(a,"")}catch(g){Ys(t,t.return,g)}}if(r&4&&(a=t.stateNode,a!=null)){var i=t.memoizedProps,o=s!==null?s.memoizedProps:i,l=t.type,c=t.updateQueue;if(t.updateQueue=null,c!==null)try{l==="input"&&i.type==="radio"&&i.name!=null&&Z6(a,i),rj(l,o);var d=rj(l,i);for(o=0;o<c.length;o+=2){var h=c[o],p=c[o+1];h==="style"?rI(a,p):h==="dangerouslySetInnerHTML"?nI(a,p):h==="children"?hf(a,p):Ek(a,h,p,d)}switch(l){case"input":Zw(a,i);break;case"textarea":eI(a,i);break;case"select":var m=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var u=i.value;u!=null?Pu(a,!!i.multiple,u,!1):m!==!!i.multiple&&(i.defaultValue!=null?Pu(a,!!i.multiple,i.defaultValue,!0):Pu(a,!!i.multiple,i.multiple?[]:"",!1))}a[vf]=i}catch(g){Ys(t,t.return,g)}}break;case 6:if(so(n,t),To(t),r&4){if(t.stateNode===null)throw Error(Qe(162));a=t.stateNode,i=t.memoizedProps;try{a.nodeValue=i}catch(g){Ys(t,t.return,g)}}break;case 3:if(so(n,t),To(t),r&4&&s!==null&&s.memoizedState.isDehydrated)try{ff(n.containerInfo)}catch(g){Ys(t,t.return,g)}break;case 4:so(n,t),To(t);break;case 13:so(n,t),To(t),a=t.child,a.flags&8192&&(i=a.memoizedState!==null,a.stateNode.isHidden=i,!i||a.alternate!==null&&a.alternate.memoizedState!==null||(u1=tr())),r&4&&W5(t);break;case 22:if(h=s!==null&&s.memoizedState!==null,t.mode&1?(oa=(d=oa)||h,so(n,t),oa=d):so(n,t),To(t),r&8192){if(d=t.memoizedState!==null,(t.stateNode.isHidden=d)&&!h&&t.mode&1)for(kt=t,h=t.child;h!==null;){for(p=kt=h;kt!==null;){switch(m=kt,u=m.child,m.tag){case 0:case 11:case 14:case 15:Km(4,m,m.return);break;case 1:Du(m,m.return);var y=m.stateNode;if(typeof y.componentWillUnmount=="function"){r=m,s=m.return;try{n=r,y.props=n.memoizedProps,y.state=n.memoizedState,y.componentWillUnmount()}catch(g){Ys(r,s,g)}}break;case 5:Du(m,m.return);break;case 22:if(m.memoizedState!==null){K5(p);continue}}u!==null?(u.return=m,kt=u):K5(p)}h=h.sibling}e:for(h=null,p=t;;){if(p.tag===5){if(h===null){h=p;try{a=p.stateNode,d?(i=a.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none"):(l=p.stateNode,c=p.memoizedProps.style,o=c!=null&&c.hasOwnProperty("display")?c.display:null,l.style.display=sI("display",o))}catch(g){Ys(t,t.return,g)}}}else if(p.tag===6){if(h===null)try{p.stateNode.nodeValue=d?"":p.memoizedProps}catch(g){Ys(t,t.return,g)}}else if((p.tag!==22&&p.tag!==23||p.memoizedState===null||p===t)&&p.child!==null){p.child.return=p,p=p.child;continue}if(p===t)break e;for(;p.sibling===null;){if(p.return===null||p.return===t)break e;h===p&&(h=null),p=p.return}h===p&&(h=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:so(n,t),To(t),r&4&&W5(t);break;case 21:break;default:so(n,t),To(t)}}function To(t){var n=t.flags;if(n&2){try{e:{for(var s=t.return;s!==null;){if(CC(s)){var r=s;break e}s=s.return}throw Error(Qe(160))}switch(r.tag){case 5:var a=r.stateNode;r.flags&32&&(hf(a,""),r.flags&=-33);var i=$5(t);Lj(t,i,a);break;case 3:case 4:var o=r.stateNode.containerInfo,l=$5(t);Ej(t,l,o);break;default:throw Error(Qe(161))}}catch(c){Ys(t,t.return,c)}t.flags&=-3}n&4096&&(t.flags&=-4097)}function x7(t,n,s){kt=t,PC(t)}function PC(t,n,s){for(var r=(t.mode&1)!==0;kt!==null;){var a=kt,i=a.child;if(a.tag===22&&r){var o=a.memoizedState!==null||ax;if(!o){var l=a.alternate,c=l!==null&&l.memoizedState!==null||oa;l=ax;var d=oa;if(ax=o,(oa=c)&&!d)for(kt=a;kt!==null;)o=kt,c=o.child,o.tag===22&&o.memoizedState!==null?Q5(a):c!==null?(c.return=o,kt=c):Q5(a);for(;i!==null;)kt=i,PC(i),i=i.sibling;kt=a,ax=l,oa=d}G5(t)}else a.subtreeFlags&8772&&i!==null?(i.return=a,kt=i):G5(t)}}function G5(t){for(;kt!==null;){var n=kt;if(n.flags&8772){var s=n.alternate;try{if(n.flags&8772)switch(n.tag){case 0:case 11:case 15:oa||I0(5,n);break;case 1:var r=n.stateNode;if(n.flags&4&&!oa)if(s===null)r.componentDidMount();else{var a=n.elementType===n.type?s.memoizedProps:ao(n.type,s.memoizedProps);r.componentDidUpdate(a,s.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=n.updateQueue;i!==null&&T5(n,i,r);break;case 3:var o=n.updateQueue;if(o!==null){if(s=null,n.child!==null)switch(n.child.tag){case 5:s=n.child.stateNode;break;case 1:s=n.child.stateNode}T5(n,o,s)}break;case 5:var l=n.stateNode;if(s===null&&n.flags&4){s=l;var c=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&s.focus();break;case"img":c.src&&(s.src=c.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(n.memoizedState===null){var d=n.alternate;if(d!==null){var h=d.memoizedState;if(h!==null){var p=h.dehydrated;p!==null&&ff(p)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(Qe(163))}oa||n.flags&512&&Pj(n)}catch(m){Ys(n,n.return,m)}}if(n===t){kt=null;break}if(s=n.sibling,s!==null){s.return=n.return,kt=s;break}kt=n.return}}function K5(t){for(;kt!==null;){var n=kt;if(n===t){kt=null;break}var s=n.sibling;if(s!==null){s.return=n.return,kt=s;break}kt=n.return}}function Q5(t){for(;kt!==null;){var n=kt;try{switch(n.tag){case 0:case 11:case 15:var s=n.return;try{I0(4,n)}catch(c){Ys(n,s,c)}break;case 1:var r=n.stateNode;if(typeof r.componentDidMount=="function"){var a=n.return;try{r.componentDidMount()}catch(c){Ys(n,a,c)}}var i=n.return;try{Pj(n)}catch(c){Ys(n,i,c)}break;case 5:var o=n.return;try{Pj(n)}catch(c){Ys(n,o,c)}}}catch(c){Ys(n,n.return,c)}if(n===t){kt=null;break}var l=n.sibling;if(l!==null){l.return=n.return,kt=l;break}kt=n.return}}var y7=Math.ceil,qy=Fl.ReactCurrentDispatcher,d1=Fl.ReactCurrentOwner,Hi=Fl.ReactCurrentBatchConfig,qn=0,Ir=null,dr=null,Ur=0,gi=0,Iu=od(0),wr=0,Af=null,ch=0,C0=0,h1=0,Qm=null,za=null,u1=0,xp=1/0,vl=null,Hy=!1,Mj=null,Wc=null,ix=!1,Lc=null,$y=0,Ym=0,Rj=null,ty=-1,ny=0;function Sa(){return qn&6?tr():ty!==-1?ty:ty=tr()}function Gc(t){return t.mode&1?qn&2&&Ur!==0?Ur&-Ur:t7.transition!==null?(ny===0&&(ny=gI()),ny):(t=Xn,t!==0||(t=window.event,t=t===void 0?16:kI(t.type)),t):1}function fo(t,n,s,r){if(50<Ym)throw Ym=0,Rj=null,Error(Qe(185));Jf(t,s,r),(!(qn&2)||t!==Ir)&&(t===Ir&&(!(qn&2)&&(C0|=s),wr===4&&jc(t,Ur)),Ga(t,r),s===1&&qn===0&&!(n.mode&1)&&(xp=tr()+500,S0&&ld()))}function Ga(t,n){var s=t.callbackNode;tF(t,n);var r=Iy(t,t===Ir?Ur:0);if(r===0)s!==null&&r5(s),t.callbackNode=null,t.callbackPriority=0;else if(n=r&-r,t.callbackPriority!==n){if(s!=null&&r5(s),n===1)t.tag===0?e7(Y5.bind(null,t)):UI(Y5.bind(null,t)),YF(function(){!(qn&6)&&ld()}),s=null;else{switch(xI(r)){case 1:s=Fk;break;case 4:s=mI;break;case 16:s=Dy;break;case 536870912:s=fI;break;default:s=Dy}s=BC(s,EC.bind(null,t))}t.callbackPriority=n,t.callbackNode=s}}function EC(t,n){if(ty=-1,ny=0,qn&6)throw Error(Qe(327));var s=t.callbackNode;if(Ou()&&t.callbackNode!==s)return null;var r=Iy(t,t===Ir?Ur:0);if(r===0)return null;if(r&30||r&t.expiredLanes||n)n=Wy(t,r);else{n=r;var a=qn;qn|=2;var i=MC();(Ir!==t||Ur!==n)&&(vl=null,xp=tr()+500,th(t,n));do try{w7();break}catch(l){LC(t,l)}while(!0);Jk(),qy.current=i,qn=a,dr!==null?n=0:(Ir=null,Ur=0,n=wr)}if(n!==0){if(n===2&&(a=cj(t),a!==0&&(r=a,n=Oj(t,a))),n===1)throw s=Af,th(t,0),jc(t,r),Ga(t,tr()),s;if(n===6)jc(t,r);else{if(a=t.current.alternate,!(r&30)&&!b7(a)&&(n=Wy(t,r),n===2&&(i=cj(t),i!==0&&(r=i,n=Oj(t,i))),n===1))throw s=Af,th(t,0),jc(t,r),Ga(t,tr()),s;switch(t.finishedWork=a,t.finishedLanes=r,n){case 0:case 1:throw Error(Qe(345));case 2:Td(t,za,vl);break;case 3:if(jc(t,r),(r&130023424)===r&&(n=u1+500-tr(),10<n)){if(Iy(t,0)!==0)break;if(a=t.suspendedLanes,(a&r)!==r){Sa(),t.pingedLanes|=t.suspendedLanes&a;break}t.timeoutHandle=xj(Td.bind(null,t,za,vl),n);break}Td(t,za,vl);break;case 4:if(jc(t,r),(r&4194240)===r)break;for(n=t.eventTimes,a=-1;0<r;){var o=31-mo(r);i=1<<o,o=n[o],o>a&&(a=o),r&=~i}if(r=a,r=tr()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*y7(r/1960))-r,10<r){t.timeoutHandle=xj(Td.bind(null,t,za,vl),r);break}Td(t,za,vl);break;case 5:Td(t,za,vl);break;default:throw Error(Qe(329))}}}return Ga(t,tr()),t.callbackNode===s?EC.bind(null,t):null}function Oj(t,n){var s=Qm;return t.current.memoizedState.isDehydrated&&(th(t,n).flags|=256),t=Wy(t,n),t!==2&&(n=za,za=s,n!==null&&Fj(n)),t}function Fj(t){za===null?za=t:za.push.apply(za,t)}function b7(t){for(var n=t;;){if(n.flags&16384){var s=n.updateQueue;if(s!==null&&(s=s.stores,s!==null))for(var r=0;r<s.length;r++){var a=s[r],i=a.getSnapshot;a=a.value;try{if(!go(i(),a))return!1}catch{return!1}}}if(s=n.child,n.subtreeFlags&16384&&s!==null)s.return=n,n=s;else{if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function jc(t,n){for(n&=~h1,n&=~C0,t.suspendedLanes|=n,t.pingedLanes&=~n,t=t.expirationTimes;0<n;){var s=31-mo(n),r=1<<s;t[s]=-1,n&=~r}}function Y5(t){if(qn&6)throw Error(Qe(327));Ou();var n=Iy(t,0);if(!(n&1))return Ga(t,tr()),null;var s=Wy(t,n);if(t.tag!==0&&s===2){var r=cj(t);r!==0&&(n=r,s=Oj(t,r))}if(s===1)throw s=Af,th(t,0),jc(t,n),Ga(t,tr()),s;if(s===6)throw Error(Qe(345));return t.finishedWork=t.current.alternate,t.finishedLanes=n,Td(t,za,vl),Ga(t,tr()),null}function p1(t,n){var s=qn;qn|=1;try{return t(n)}finally{qn=s,qn===0&&(xp=tr()+500,S0&&ld())}}function dh(t){Lc!==null&&Lc.tag===0&&!(qn&6)&&Ou();var n=qn;qn|=1;var s=Hi.transition,r=Xn;try{if(Hi.transition=null,Xn=1,t)return t()}finally{Xn=r,Hi.transition=s,qn=n,!(qn&6)&&ld()}}function m1(){gi=Iu.current,Cs(Iu)}function th(t,n){t.finishedWork=null,t.finishedLanes=0;var s=t.timeoutHandle;if(s!==-1&&(t.timeoutHandle=-1,QF(s)),dr!==null)for(s=dr.return;s!==null;){var r=s;switch(Kk(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&Ey();break;case 3:fp(),Cs($a),Cs(da),s1();break;case 5:n1(r);break;case 4:fp();break;case 13:Cs(Us);break;case 19:Cs(Us);break;case 10:Xk(r.type._context);break;case 22:case 23:m1()}s=s.return}if(Ir=t,dr=t=Kc(t.current,null),Ur=gi=n,wr=0,Af=null,h1=C0=ch=0,za=Qm=null,Ud!==null){for(n=0;n<Ud.length;n++)if(s=Ud[n],r=s.interleaved,r!==null){s.interleaved=null;var a=r.next,i=s.pending;if(i!==null){var o=i.next;i.next=a,r.next=o}s.pending=r}Ud=null}return t}function LC(t,n){do{var s=dr;try{if(Jk(),Xx.current=Uy,zy){for(var r=Hs.memoizedState;r!==null;){var a=r.queue;a!==null&&(a.pending=null),r=r.next}zy=!1}if(lh=0,Sr=vr=Hs=null,Gm=!1,kf=0,d1.current=null,s===null||s.return===null){wr=1,Af=n,dr=null;break}e:{var i=t,o=s.return,l=s,c=n;if(n=Ur,l.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var d=c,h=l,p=h.tag;if(!(h.mode&1)&&(p===0||p===11||p===15)){var m=h.alternate;m?(h.updateQueue=m.updateQueue,h.memoizedState=m.memoizedState,h.lanes=m.lanes):(h.updateQueue=null,h.memoizedState=null)}var u=O5(o);if(u!==null){u.flags&=-257,F5(u,o,l,i,n),u.mode&1&&R5(i,d,n),n=u,c=d;var y=n.updateQueue;if(y===null){var g=new Set;g.add(c),n.updateQueue=g}else y.add(c);break e}else{if(!(n&1)){R5(i,d,n),f1();break e}c=Error(Qe(426))}}else if(Ms&&l.mode&1){var w=O5(o);if(w!==null){!(w.flags&65536)&&(w.flags|=256),F5(w,o,l,i,n),Qk(gp(c,l));break e}}i=c=gp(c,l),wr!==4&&(wr=2),Qm===null?Qm=[i]:Qm.push(i),i=o;do{switch(i.tag){case 3:i.flags|=65536,n&=-n,i.lanes|=n;var b=xC(i,c,n);_5(i,b);break e;case 1:l=c;var j=i.type,N=i.stateNode;if(!(i.flags&128)&&(typeof j.getDerivedStateFromError=="function"||N!==null&&typeof N.componentDidCatch=="function"&&(Wc===null||!Wc.has(N)))){i.flags|=65536,n&=-n,i.lanes|=n;var A=yC(i,l,n);_5(i,A);break e}}i=i.return}while(i!==null)}OC(s)}catch(E){n=E,dr===s&&s!==null&&(dr=s=s.return);continue}break}while(!0)}function MC(){var t=qy.current;return qy.current=Uy,t===null?Uy:t}function f1(){(wr===0||wr===3||wr===2)&&(wr=4),Ir===null||!(ch&268435455)&&!(C0&268435455)||jc(Ir,Ur)}function Wy(t,n){var s=qn;qn|=2;var r=MC();(Ir!==t||Ur!==n)&&(vl=null,th(t,n));do try{v7();break}catch(a){LC(t,a)}while(!0);if(Jk(),qn=s,qy.current=r,dr!==null)throw Error(Qe(261));return Ir=null,Ur=0,wr}function v7(){for(;dr!==null;)RC(dr)}function w7(){for(;dr!==null&&!WO();)RC(dr)}function RC(t){var n=VC(t.alternate,t,gi);t.memoizedProps=t.pendingProps,n===null?OC(t):dr=n,d1.current=null}function OC(t){var n=t;do{var s=n.alternate;if(t=n.return,n.flags&32768){if(s=m7(s,n),s!==null){s.flags&=32767,dr=s;return}if(t!==null)t.flags|=32768,t.subtreeFlags=0,t.deletions=null;else{wr=6,dr=null;return}}else if(s=p7(s,n,gi),s!==null){dr=s;return}if(n=n.sibling,n!==null){dr=n;return}dr=n=t}while(n!==null);wr===0&&(wr=5)}function Td(t,n,s){var r=Xn,a=Hi.transition;try{Hi.transition=null,Xn=1,j7(t,n,s,r)}finally{Hi.transition=a,Xn=r}return null}function j7(t,n,s,r){do Ou();while(Lc!==null);if(qn&6)throw Error(Qe(327));s=t.finishedWork;var a=t.finishedLanes;if(s===null)return null;if(t.finishedWork=null,t.finishedLanes=0,s===t.current)throw Error(Qe(177));t.callbackNode=null,t.callbackPriority=0;var i=s.lanes|s.childLanes;if(nF(t,i),t===Ir&&(dr=Ir=null,Ur=0),!(s.subtreeFlags&2064)&&!(s.flags&2064)||ix||(ix=!0,BC(Dy,function(){return Ou(),null})),i=(s.flags&15990)!==0,s.subtreeFlags&15990||i){i=Hi.transition,Hi.transition=null;var o=Xn;Xn=1;var l=qn;qn|=4,d1.current=null,g7(t,s),TC(s,t),UF(fj),Cy=!!mj,fj=mj=null,t.current=s,x7(s),GO(),qn=l,Xn=o,Hi.transition=i}else t.current=s;if(ix&&(ix=!1,Lc=t,$y=a),i=t.pendingLanes,i===0&&(Wc=null),YO(s.stateNode),Ga(t,tr()),n!==null)for(r=t.onRecoverableError,s=0;s<n.length;s++)a=n[s],r(a.value,{componentStack:a.stack,digest:a.digest});if(Hy)throw Hy=!1,t=Mj,Mj=null,t;return $y&1&&t.tag!==0&&Ou(),i=t.pendingLanes,i&1?t===Rj?Ym++:(Ym=0,Rj=t):Ym=0,ld(),null}function Ou(){if(Lc!==null){var t=xI($y),n=Hi.transition,s=Xn;try{if(Hi.transition=null,Xn=16>t?16:t,Lc===null)var r=!1;else{if(t=Lc,Lc=null,$y=0,qn&6)throw Error(Qe(331));var a=qn;for(qn|=4,kt=t.current;kt!==null;){var i=kt,o=i.child;if(kt.flags&16){var l=i.deletions;if(l!==null){for(var c=0;c<l.length;c++){var d=l[c];for(kt=d;kt!==null;){var h=kt;switch(h.tag){case 0:case 11:case 15:Km(8,h,i)}var p=h.child;if(p!==null)p.return=h,kt=p;else for(;kt!==null;){h=kt;var m=h.sibling,u=h.return;if(IC(h),h===d){kt=null;break}if(m!==null){m.return=u,kt=m;break}kt=u}}}var y=i.alternate;if(y!==null){var g=y.child;if(g!==null){y.child=null;do{var w=g.sibling;g.sibling=null,g=w}while(g!==null)}}kt=i}}if(i.subtreeFlags&2064&&o!==null)o.return=i,kt=o;else e:for(;kt!==null;){if(i=kt,i.flags&2048)switch(i.tag){case 0:case 11:case 15:Km(9,i,i.return)}var b=i.sibling;if(b!==null){b.return=i.return,kt=b;break e}kt=i.return}}var j=t.current;for(kt=j;kt!==null;){o=kt;var N=o.child;if(o.subtreeFlags&2064&&N!==null)N.return=o,kt=N;else e:for(o=j;kt!==null;){if(l=kt,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:I0(9,l)}}catch(E){Ys(l,l.return,E)}if(l===o){kt=null;break e}var A=l.sibling;if(A!==null){A.return=l.return,kt=A;break e}kt=l.return}}if(qn=a,ld(),Ko&&typeof Ko.onPostCommitFiberRoot=="function")try{Ko.onPostCommitFiberRoot(v0,t)}catch{}r=!0}return r}finally{Xn=s,Hi.transition=n}}return!1}function J5(t,n,s){n=gp(s,n),n=xC(t,n,1),t=$c(t,n,1),n=Sa(),t!==null&&(Jf(t,1,n),Ga(t,n))}function Ys(t,n,s){if(t.tag===3)J5(t,t,s);else for(;n!==null;){if(n.tag===3){J5(n,t,s);break}else if(n.tag===1){var r=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Wc===null||!Wc.has(r))){t=gp(s,t),t=yC(n,t,1),n=$c(n,t,1),t=Sa(),n!==null&&(Jf(n,1,t),Ga(n,t));break}}n=n.return}}function k7(t,n,s){var r=t.pingCache;r!==null&&r.delete(n),n=Sa(),t.pingedLanes|=t.suspendedLanes&s,Ir===t&&(Ur&s)===s&&(wr===4||wr===3&&(Ur&130023424)===Ur&&500>tr()-u1?th(t,0):h1|=s),Ga(t,n)}function FC(t,n){n===0&&(t.mode&1?(n=Yg,Yg<<=1,!(Yg&130023424)&&(Yg=4194304)):n=1);var s=Sa();t=Pl(t,n),t!==null&&(Jf(t,n,s),Ga(t,s))}function N7(t){var n=t.memoizedState,s=0;n!==null&&(s=n.retryLane),FC(t,s)}function S7(t,n){var s=0;switch(t.tag){case 13:var r=t.stateNode,a=t.memoizedState;a!==null&&(s=a.retryLane);break;case 19:r=t.stateNode;break;default:throw Error(Qe(314))}r!==null&&r.delete(n),FC(t,s)}var VC;VC=function(t,n,s){if(t!==null)if(t.memoizedProps!==n.pendingProps||$a.current)qa=!0;else{if(!(t.lanes&s)&&!(n.flags&128))return qa=!1,u7(t,n,s);qa=!!(t.flags&131072)}else qa=!1,Ms&&n.flags&1048576&&qI(n,Ry,n.index);switch(n.lanes=0,n.tag){case 2:var r=n.type;ey(t,n),t=n.pendingProps;var a=up(n,da.current);Ru(n,s),a=a1(null,n,r,t,a,s);var i=i1();return n.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Wa(r)?(i=!0,Ly(n)):i=!1,n.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,e1(n),a.updater=D0,n.stateNode=a,a._reactInternals=n,Nj(n,r,t,s),n=Dj(null,n,r,!0,i,s)):(n.tag=0,Ms&&i&&Gk(n),ka(null,n,a,s),n=n.child),n;case 16:r=n.elementType;e:{switch(ey(t,n),t=n.pendingProps,a=r._init,r=a(r._payload),n.type=r,a=n.tag=D7(r),t=ao(r,t),a){case 0:n=Aj(null,n,r,t,s);break e;case 1:n=z5(null,n,r,t,s);break e;case 11:n=V5(null,n,r,t,s);break e;case 14:n=B5(null,n,r,ao(r.type,t),s);break e}throw Error(Qe(306,r,""))}return n;case 0:return r=n.type,a=n.pendingProps,a=n.elementType===r?a:ao(r,a),Aj(t,n,r,a,s);case 1:return r=n.type,a=n.pendingProps,a=n.elementType===r?a:ao(r,a),z5(t,n,r,a,s);case 3:e:{if(jC(n),t===null)throw Error(Qe(387));r=n.pendingProps,i=n.memoizedState,a=i.element,QI(t,n),Vy(n,r,null,s);var o=n.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},n.updateQueue.baseState=i,n.memoizedState=i,n.flags&256){a=gp(Error(Qe(423)),n),n=U5(t,n,r,s,a);break e}else if(r!==a){a=gp(Error(Qe(424)),n),n=U5(t,n,r,s,a);break e}else for(bi=Hc(n.stateNode.containerInfo.firstChild),ki=n,Ms=!0,ho=null,s=GI(n,null,r,s),n.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(pp(),r===a){n=El(t,n,s);break e}ka(t,n,r,s)}n=n.child}return n;case 5:return YI(n),t===null&&wj(n),r=n.type,a=n.pendingProps,i=t!==null?t.memoizedProps:null,o=a.children,gj(r,a)?o=null:i!==null&&gj(r,i)&&
vendor: 12,779 bytes, lines 40-49
40(n.flags|=32),wC(t,n),ka(t,n,o,s),n.child;case 6:return t===null&&wj(n),null;case 13:return kC(t,n,s);case 4:return t1(n,n.stateNode.containerInfo),r=n.pendingProps,t===null?n.child=mp(n,null,r,s):ka(t,n,r,s),n.child;case 11:return r=n.type,a=n.pendingProps,a=n.elementType===r?a:ao(r,a),V5(t,n,r,a,s);case 7:return ka(t,n,n.pendingProps,s),n.child;case 8:return ka(t,n,n.pendingProps.children,s),n.child;case 12:return ka(t,n,n.pendingProps.children,s),n.child;case 10:e:{if(r=n.type._context,a=n.pendingProps,i=n.memoizedProps,o=a.value,vs(Oy,r._currentValue),r._currentValue=o,i!==null)if(go(i.value,o)){if(i.children===a.children&&!$a.current){n=El(t,n,s);break e}}else for(i=n.child,i!==null&&(i.return=n);i!==null;){var l=i.dependencies;if(l!==null){o=i.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(i.tag===1){c=Dl(-1,s&-s),c.tag=2;var d=i.updateQueue;if(d!==null){d=d.shared;var h=d.pending;h===null?c.next=c:(c.next=h.next,h.next=c),d.pending=c}}i.lanes|=s,c=i.alternate,c!==null&&(c.lanes|=s),jj(i.return,s,n),l.lanes|=s;break}c=c.next}}else if(i.tag===10)o=i.type===n.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(Qe(341));o.lanes|=s,l=o.alternate,l!==null&&(l.lanes|=s),jj(o,s,n),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===n){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}ka(t,n,a.children,s),n=n.child}return n;case 9:return a=n.type,r=n.pendingProps.children,Ru(n,s),a=Gi(a),r=r(a),n.flags|=1,ka(t,n,r,s),n.child;case 14:return r=n.type,a=ao(r,n.pendingProps),a=ao(r.type,a),B5(t,n,r,a,s);case 15:return bC(t,n,n.type,n.pendingProps,s);case 17:return r=n.type,a=n.pendingProps,a=n.elementType===r?a:ao(r,a),ey(t,n),n.tag=1,Wa(r)?(t=!0,Ly(n)):t=!1,Ru(n,s),gC(n,r,a),Nj(n,r,a,s),Dj(null,n,r,!0,t,s);case 19:return NC(t,n,s);case 22:return vC(t,n,s)}throw Error(Qe(156,n.tag))};function BC(t,n){return pI(t,n)}function A7(t,n,s,r){this.tag=t,this.key=s,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function qi(t,n,s,r){return new A7(t,n,s,r)}function g1(t){return t=t.prototype,!(!t||!t.isReactComponent)}function D7(t){if(typeof t=="function")return g1(t)?1:0;if(t!=null){if(t=t.$$typeof,t===Mk)return 11;if(t===Rk)return 14}return 2}function Kc(t,n){var s=t.alternate;return s===null?(s=qi(t.tag,n,t.key,t.mode),s.elementType=t.elementType,s.type=t.type,s.stateNode=t.stateNode,s.alternate=t,t.alternate=s):(s.pendingProps=n,s.type=t.type,s.flags=0,s.subtreeFlags=0,s.deletions=null),s.flags=t.flags&14680064,s.childLanes=t.childLanes,s.lanes=t.lanes,s.child=t.child,s.memoizedProps=t.memoizedProps,s.memoizedState=t.memoizedState,s.updateQueue=t.updateQueue,n=t.dependencies,s.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},s.sibling=t.sibling,s.index=t.index,s.ref=t.ref,s}function sy(t,n,s,r,a,i){var o=2;if(r=t,typeof t=="function")g1(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case yu:return nh(s.children,a,i,n);case Lk:o=8,a|=8;break;case Kw:return t=qi(12,s,n,a|2),t.elementType=Kw,t.lanes=i,t;case Qw:return t=qi(13,s,n,a),t.elementType=Qw,t.lanes=i,t;case Yw:return t=qi(19,s,n,a),t.elementType=Yw,t.lanes=i,t;case Y6:return _0(s,a,i,n);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case K6:o=10;break e;case Q6:o=9;break e;case Mk:o=11;break e;case Rk:o=14;break e;case yc:o=16,r=null;break e}throw Error(Qe(130,t==null?t:typeof t,""))}return n=qi(o,s,n,a),n.elementType=t,n.type=r,n.lanes=i,n}function nh(t,n,s,r){return t=qi(7,t,r,n),t.lanes=s,t}function _0(t,n,s,r){return t=qi(22,t,r,n),t.elementType=Y6,t.lanes=s,t.stateNode={isHidden:!1},t}function bv(t,n,s){return t=qi(6,t,null,n),t.lanes=s,t}function vv(t,n,s){return n=qi(4,t.children!==null?t.children:[],t.key,n),n.lanes=s,n.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},n}function I7(t,n,s,r,a){this.tag=n,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ev(0),this.expirationTimes=ev(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ev(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function x1(t,n,s,r,a,i,o,l,c){return t=new I7(t,n,s,l,c),n===1?(n=1,i===!0&&(n|=8)):n=0,i=qi(3,null,null,n),t.current=i,i.stateNode=t,i.memoizedState={element:r,isDehydrated:s,cache:null,transitions:null,pendingSuspenseBoundaries:null},e1(i),t}function C7(t,n,s){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:xu,key:r==null?null:""+r,children:t,containerInfo:n,implementation:s}}function zC(t){if(!t)return Xc;t=t._reactInternals;e:{if(Sh(t)!==t||t.tag!==1)throw Error(Qe(170));var n=t;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(Wa(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(n!==null);throw Error(Qe(171))}if(t.tag===1){var s=t.type;if(Wa(s))return zI(t,s,n)}return n}function UC(t,n,s,r,a,i,o,l,c){return t=x1(s,r,!0,t,a,i,o,l,c),t.context=zC(null),s=t.current,r=Sa(),a=Gc(s),i=Dl(r,a),i.callback=n??null,$c(s,i,a),t.current.lanes=a,Jf(t,a,r),Ga(t,r),t}function T0(t,n,s,r){var a=n.current,i=Sa(),o=Gc(a);return s=zC(s),n.context===null?n.context=s:n.pendingContext=s,n=Dl(i,o),n.payload={element:t},r=r===void 0?null:r,r!==null&&(n.callback=r),t=$c(a,n,o),t!==null&&(fo(t,a,o,i),Jx(t,a,o)),o}function Gy(t){if(t=t.current,!t.child)return null;switch(t.child.tag){case 5:return t.child.stateNode;default:return t.child.stateNode}}function X5(t,n){if(t=t.memoizedState,t!==null&&t.dehydrated!==null){var s=t.retryLane;t.retryLane=s!==0&&s<n?s:n}}function y1(t,n){X5(t,n),(t=t.alternate)&&X5(t,n)}function _7(){return null}var qC=typeof reportError=="function"?reportError:function(t){console.error(t)};function b1(t){this._internalRoot=t}P0.prototype.render=b1.prototype.render=function(t){var n=this._internalRoot;if(n===null)throw Error(Qe(409));T0(t,n,null,null)};P0.prototype.unmount=b1.prototype.unmount=function(){var t=this._internalRoot;if(t!==null){this._internalRoot=null;var n=t.containerInfo;dh(function(){T0(null,t,null,null)}),n[Tl]=null}};function P0(t){this._internalRoot=t}P0.prototype.unstable_scheduleHydration=function(t){if(t){var n=vI();t={blockedOn:null,target:t,priority:n};for(var s=0;s<wc.length&&n!==0&&n<wc[s].priority;s++);wc.splice(s,0,t),s===0&&jI(t)}};function v1(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function E0(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11&&(t.nodeType!==8||t.nodeValue!==" react-mount-point-unstable "))}function Z5(){}function T7(t,n,s,r,a){if(a){if(typeof r=="function"){var i=r;r=function(){var d=Gy(o);i.call(d)}}var o=UC(n,r,t,0,null,!1,!1,"",Z5);return t._reactRootContainer=o,t[Tl]=o.current,yf(t.nodeType===8?t.parentNode:t),dh(),o}for(;a=t.lastChild;)t.removeChild(a);if(typeof r=="function"){var l=r;r=function(){var d=Gy(c);l.call(d)}}var c=x1(t,0,!1,null,null,!1,!1,"",Z5);return t._reactRootContainer=c,t[Tl]=c.current,yf(t.nodeType===8?t.parentNode:t),dh(function(){T0(n,c,s,r)}),c}function L0(t,n,s,r,a){var i=s._reactRootContainer;if(i){var o=i;if(typeof a=="function"){var l=a;a=function(){var c=Gy(o);l.call(c)}}T0(n,o,t,a)}else o=T7(s,n,t,a,r);return Gy(o)}yI=function(t){switch(t.tag){case 3:var n=t.stateNode;if(n.current.memoizedState.isDehydrated){var s=Em(n.pendingLanes);s!==0&&(Vk(n,s|1),Ga(n,tr()),!(qn&6)&&(xp=tr()+500,ld()))}break;case 13:dh(function(){var r=Pl(t,1);if(r!==null){var a=Sa();fo(r,t,1,a)}}),y1(t,1)}};Bk=function(t){if(t.tag===13){var n=Pl(t,134217728);if(n!==null){var s=Sa();fo(n,t,134217728,s)}y1(t,134217728)}};bI=function(t){if(t.tag===13){var n=Gc(t),s=Pl(t,n);if(s!==null){var r=Sa();fo(s,t,n,r)}y1(t,n)}};vI=function(){return Xn};wI=function(t,n){var s=Xn;try{return Xn=t,n()}finally{Xn=s}};ij=function(t,n,s){switch(n){case"input":if(Zw(t,s),n=s.name,s.type==="radio"&&n!=null){for(s=t;s.parentNode;)s=s.parentNode;for(s=s.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<s.length;n++){var r=s[n];if(r!==t&&r.form===t.form){var a=N0(r);if(!a)throw Error(Qe(90));X6(r),Zw(r,a)}}}break;case"textarea":eI(t,s);break;case"select":n=s.value,n!=null&&Pu(t,!!s.multiple,n,!1)}};oI=p1;lI=dh;var P7={usingClientEntryPoint:!1,Events:[Zf,ju,N0,aI,iI,p1]},fm={findFiberByHostInstance:zd,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},E7={bundleType:fm.bundleType,version:fm.version,rendererPackageName:fm.rendererPackageName,rendererConfig:fm.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Fl.ReactCurrentDispatcher,findHostInstanceByFiber:function(t){return t=hI(t),t===null?null:t.stateNode},findFiberByHostInstance:fm.findFiberByHostInstance||_7,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ox=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ox.isDisabled&&ox.supportsFiber)try{v0=ox.inject(E7),Ko=ox}catch{}}Di.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=P7;Di.createPortal=function(t,n){var s=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!v1(n))throw Error(Qe(200));return C7(t,n,null,s)};Di.createRoot=function(t,n){if(!v1(t))throw Error(Qe(299));var s=!1,r="",a=qC;return n!=null&&(n.unstable_strictMode===!0&&(s=!0),n.identifierPrefix!==void 0&&(r=n.identifierPrefix),n.onRecoverableError!==void 0&&(a=n.onRecoverableError)),n=x1(t,1,!1,null,null,s,!1,r,a),t[Tl]=n.current,yf(t.nodeType===8?t.parentNode:t),new b1(n)};Di.findDOMNode=function(t){if(t==null)return null;if(t.nodeType===1)return t;var n=t._reactInternals;if(n===void 0)throw typeof t.render=="function"?Error(Qe(188)):(t=Object.keys(t).join(","),Error(Qe(268,t)));return t=hI(n),t=t===null?null:t.stateNode,t};Di.flushSync=function(t){return dh(t)};Di.hydrate=function(t,n,s){if(!E0(n))throw Error(Qe(200));return L0(null,t,n,!0,s)};Di.hydrateRoot=function(t,n,s){if(!v1(t))throw Error(Qe(405));var r=s!=null&&s.hydratedSources||null,a=!1,i="",o=qC;if(s!=null&&(s.unstable_strictMode===!0&&(a=!0),s.identifierPrefix!==void 0&&(i=s.identifierPrefix),s.onRecoverableError!==void 0&&(o=s.onRecoverableError)),n=UC(n,null,t,1,s??null,a,!1,i,o),t[Tl]=n.current,yf(t),r)for(t=0;t<r.length;t++)s=r[t],a=s._getVersion,a=a(s._source),n.mutableSourceEagerHydrationData==null?n.mutableSourceEagerHydrationData=[s,a]:n.mutableSourceEagerHydrationData.push(s,a);return new P0(n)};Di.render=function(t,n,s){if(!E0(n))throw Error(Qe(200));return L0(null,t,n,!1,s)};Di.unmountComponentAtNode=function(t){if(!E0(t))throw Error(Qe(40));return t._reactRootContainer?(dh(function(){L0(null,null,t,!1,function(){t._reactRootContainer=null,t[Tl]=null})}),!0):!1};Di.unstable_batchedUpdates=p1;Di.unstable_renderSubtreeIntoContainer=function(t,n,s,r){if(!E0(s))throw Error(Qe(200));if(t==null||t._reactInternals===void 0)throw Error(Qe(38));return L0(t,n,s,!1,r)};Di.version="18.3.1-next-f1338f8080-20240426";function HC(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(HC)}catch(t){console.error(t)}}HC(),H6.exports=Di;var tg=H6.exports;const w1=ad(tg),$C=A6({__proto__:null,default:w1},[tg]);/** 41 * @remix-run/router v1.20.0 42 * 43 * Copyright (c) Remix Software Inc. 44 * 45 * This source code is licensed under the MIT license found in the 46 * LICENSE.md file in the root directory of this source tree. 47 * 48 * @license MIT 49 */function Ls(){return Ls=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var s=arguments[n];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=s[r])}return t},Ls.apply(this,arguments)}var cr;(function(t){t.Pop="POP",t.Push="PUSH",t.Replace="REPLACE"})(cr||(cr={}));const e4="popstate";function L7(t){t===void 0&&(t={});function n(r,a){let{pathname:i,search:o,hash:l}=r.location;return Df("",{pathname:i,search:o,hash:l},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}
49function s(r,a){return typeof a=="string"?a:hh(a)}return R7(n,s,null,t)}function Cn(t,n){if(t===!1||t===null||typeof t>"u")throw new Error(n)}function yp(t,n){if(!t){typeof console<"u"&&console.warn(n);try{throw new Error(n)}catch{}}}function M7(){return Math.random().toString(36).substr(2,8)}function t4(t,n){return{usr:t.state,key:t.key,idx:n}}function Df(t,n,s,r){return s===void 0&&(s=null),Ls({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof n=="string"?cd(n):n,{state:s,key:n&&n.key||r||M7()})}function hh(t){let{pathname:n="/",search:s="",hash:r=""}=t;return s&&s!=="?"&&(n+=s.charAt(0)==="?"?s:"?"+s),r&&r!=="#"&&(n+=r.charAt(0)==="#"?r:"#"+r),n}function cd(t){let n={};if(t){let s=t.indexOf("#");s>=0&&(n.hash=t.substr(s),t=t.substr(0,s));let r=t.indexOf("?");r>=0&&(n.search=t.substr(r),t=t.substr(0,r)),t&&(n.pathname=t)}return n}function R7(t,n,s,r){r===void 0&&(r={});let{window:a=document.defaultView,v5Compat:i=!1}=r,o=a.history,l=cr.Pop,c=null,d=h();d==null&&(d=0,o.replaceState(Ls({},o.state,{idx:d}),""));function h(){return(o.state||{idx:null}).idx}function p(){l=cr.Pop;let w=h(),b=w==null?null:w-d;d=w,c&&c({action:l,location:g.location,delta:b})}function m(w,b){l=cr.Push;let j=Df(g.location,w,b);d=h()+1;let N=t4(j,d),A=g.createHref(j);try{o.pushState(N,"",A)}catch(E){if(E instanceof DOMException&&E.name==="DataCloneError")throw E;a.location.assign(A)}i&&c&&c({action:l,location:g.location,delta:1})}function u(w,b){l=cr.Replace;let j=Df(g.location,w,b);d=h();let N=t4(j,d),A=g.createHref(j);o.replaceState(N,"",A),i&&c&&c({action:l,location:g.location,delta:0})}function y(w){let b=a.location.origin!=="null"?a.location.origin:a.location.href,j=typeof w=="string"?w:hh(w);return j=j.replace(/ $/,"%20"),Cn(b,"No window.location.(origin|href) available to create URL for href: "+j),new URL(j,b)}let g={get action(){return l},get location(){return t(a,o)},listen(w){if(c)throw new Error("A history only accepts one active listener");return a.addEventListener(e4,p),c=w,()=>{a.removeEventListener(e4,p),c=null}},createHref(w){return n(a,w)},createURL:y,encodeLocation(w){let b=y(w);return{pathname:b.pathname,search:b.search,hash:b.hash}},push:m,replace:u,go(w){return o.go(w)}};return g}var ns;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(ns||(ns={}));const O7=new Set(["lazy","caseSensitive","path","id","index","children"]);function F7(t){return t.index===!0}function Ky(t,n,s,r){return s===void 0&&(s=[]),r===void 0&&(r={}),t.map((a,i)=>{let o=[...s,String(i)],l=typeof a.id=="string"?a.id:o.join("-");if(Cn(a.index!==!0||!a.children,"Cannot specify children on an index route"),Cn(!r[l],'Found a route id collision on i
49d "'+l+`". Route id's must be globally unique within Data Router usages`),F7(a)){let c=Ls({},a,n(a),{id:l});return r[l]=c,c}else{let c=Ls({},a,n(a),{id:l,children:void 0});return r[l]=c,a.children&&(c.children=Ky(a.children,n,o,r)),c}})}function kc(t,n,s){return s===void 0&&(s="/"),ry(t,n,s,!1)}function ry(t,n,s,r){let a=typeof n=="string"?cd(n):n,i=Ip(a.pathname||"/",s);if(i==null)return null;let o=WC(t);B7(o);let l=null;for(let c=0;l==null&&c<o.length;++c){let d=J7(i);l=Q7(o[c],d,r)}return l}function V7(t,n){let{route:s,pathname:r,params:a}=t;return{id:s.id,pathname:r,params:a,data:n[s.id],handle:s.handle}}function WC(t,n,s,r){n===void 0&&(n=[]),s===void 0&&(s=[]),r===void 0&&(r="");let a=(i,o,l)=>{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};c.relativePath.startsWith("/")&&(Cn(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let d=Il([r,c.relativePath]),h=s.concat(c);i.children&&i.children.length>0&&(Cn(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+d+'".')),WC(i.children,n,h,d)),!(i.path==null&&!i.index)&&n.push({path:d,score:G7(d,i.index),routesMeta:h})};return t.forEach((i,o)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))a(i,o);else for(let c of GC(i.path))a(i,o,c)}),n}function GC(t){let n=t.split("/");if(n.length===0)return[];let[s,...r]=n,a=s.endsWith("?"),i=s.replace(/\?$/,"");if(r.length===0)return a?[i,""]:[i];let o=GC(r.join("/")),l=[];return l.push(...o.map(c=>c===""?i:[i,c].join("/"))),a&&l.push(...o),l.map(c=>t.startsWith("/")&&c===""?"/":c)}function B7(t){t.sort((n,s)=>n.score!==s.score?s.score-n.score:K7(n.routesMeta.map(r=>r.childrenIndex),s.routesMeta.map(r=>r.childrenIndex)))}const z7=/^:[\w-]+$/,U7=3,q7=2,H7=1,$7=10,W7=-2,n4=t=>t==="*";function G7(t,n){let s=t.split("/"),r=s.length;return s.some(n4)&&(r+=W7),n&&(r+=q7),s.filter(a=>!n4(a)).reduce((a,i)=>a+(z7.test(i)?U7:i===""?H7:$7),r)}function K7(t,n){return t.length===n.length&&t.slice(0,-1).every((r,a)=>r===n[a])?t[t.length-1]-n[n.length-1]:0}function Q7(t,n,s){s===void 0&&(s=!1);let{routesMeta:r}=t,a={},i="/",o=[];for(let l=0;l<r.length;++l){let c=r[l],d=l===r.length-1,h=i==="/"?n:n.slice(i.length)||"/",p=s4({path:c.relativePath,caseSensitive:c.caseSensitive,end:d},h),m=c.route;if(!p&&d&&s&&!r[r.length-1].route.index&&(p=s4({path:c.relativePath,caseSensitive:c.caseSensitive,end:!1},h)),!p)return null;
49Object.assign(a,p.params),o.push({params:a,pathname:Il([i,p.pathname]),pathnameBase:e9(Il([i,p.pathnameBase])),route:m}),p.pathnameBase!=="/"&&(i=Il([i,p.pathnameBase]))}return o}function s4(t,n){typeof t=="string"&&(t={path:t,caseSensitive:!1,end:!0});let[s,r]=Y7(t.path,t.caseSensitive,t.end),a=n.match(s);if(!a)return null;let i=a[0],o=i.replace(/(.)\/+$/,"$1"),l=a.slice(1);return{params:r.reduce((d,h,p)=>{let{paramName:m,isOptional:u}=h;if(m==="*"){let g=l[p]||"";o=i.slice(0,i.length-g.length).replace(/(.)\/+$/,"$1")}const y=l[p];return u&&!y?d[m]=void 0:d[m]=(y||"").replace(/%2F/g,"/"),d},{}),pathname:i,pathnameBase:o,pattern:t}}function Y7(t,n,s){n===void 0&&(n=!1),s===void 0&&(s=!0),yp(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let r=[],a="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return t.endsWith("*")?(r.push({paramName:"*"}),a+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):s?a+="\\/*$":t!==""&&t!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,n?void 0:"i"),r]}function J7(t){try{return t.split("/").map(n=>decodeURIComponent(n).replace(/\//g,"%2F")).join("/")}catch(n){return yp(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+n+").")),t}}function Ip(t,n){if(n==="/")return t;if(!t.toLowerCase().startsWith(n.toLowerCase()))return null;let s=n.endsWith("/")?n.length-1:n.length,r=t.charAt(s);return r&&r!=="/"?null:t.slice(s)||"/"}function X7(t,n){n===void 0&&(n="/");let{pathname:s,search:r="",hash:a=""}=typeof t=="string"?cd(t):t;return{pathname:s?s.startsWith("/")?s:Z7(s,n):n,search:t9(r),hash:n9(a)}}function Z7(t,n){let s=n.replace(/\/+$/,"").split("/");return t.split("/").forEach(a=>{a===".."?s.length>1&&s.pop():a!=="."&&s.push(a)}),s.length>1?s.join("/"):"/"}function wv(t,n,s,r){return"Cannot include a '"+t+"' character in a manually specified "+("`to."+n+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+s+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function KC(t){return t.filter((n,s)=>s===0||n.route.path&&n.route.path.length>0)}function M0(t,n){let s=KC(t);return n?s.map((r,a)=>a===s.length-1?r.pathname:r.pathnameBase):s.map(r=>r.pathnameBase)}function R0(t,n,s,r){r===void 0&&(r=!1);let a;typeof t=="string"?a=cd(t):(a=Ls({},t),Cn(!a.pathname||!a.pathname.includes("?"),wv("?","pathname","search",a)),Cn(!a.pathname||!a.pathname.includes("#"),wv("#","pathname","hash",a)),Cn(!a.search||!a.search.includes("#"),wv("#","search","hash",a)));let i=t===""||a.pathname==="",o=i?"/":a.pathname,l;if(o==null)l=s;else{let p=n.length-1;if(!r&&o.startsWith("..")){let m=o.split("/");for(;m[0]==="..";)m.shift(),p-=1;a.pathname=m.join("/")}l=p>=0?n[p]:"/"}let c=X7(a,l),d=o&&o!=="/"&&o.endsWith("/"),h=(i||o===".")&&s.endsWith("/");return!c.pathname.endsWith("/")&&(d||h)&&(c.pathname+="/"),c}const Il=t=>t.join("/").replace(/\/\/+/g,"/"),e9=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),t9=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,n9=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;class Qy{constructor(n,s,r,a){a===void 0&&(a=!1),this.status=n,this.statusText=s||"",this.internal=a,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function O0(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}const QC=["post","put","patch","delete"],s9=new Set(QC),r9=["get",...QC],a9=new Set(r9),i9=new Set([301,302,303,307,308]),o9=new Set([307,308]),jv={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},l9={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},gm={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},j1=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,c9=t=>({hasErrorBoundary:!!t.hasErrorBoundary}),YC="remix-router-transitions";function d9(t){const n=t.window?t.window:typeof window<"u"?window:void 0,s=typeof n<"u"&&typeof n.document<"u"&&typeof n.document.createElement<"u",r=!s;Cn(t.routes.length>0,"You must provide a non-empty routes array to createRouter");let a;if(t.mapRouteProperties)a=t.mapRouteProperties;else if(t.detectErrorBoundary){let oe=t.detectErrorBoundary;a=ge=>({hasErrorBoundary:oe(ge)})}else a=c9;let i={},o=Ky(t.routes,a,void 0,i),l,c=t.basename||"/",d=t.dataStrategy||m9,h=t.patchRoutesOnNavigation,p=Ls({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prepe
49ndBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},t.future),m=null,u=new Set,y=null,g=null,w=null,b=t.hydrationData!=null,j=kc(o,t.history.location,c),N=null;if(j==null&&!h){let oe=Fa(404,{pathname:t.history.location.pathname}),{matches:ge,route:Ae}=m4(o);j=ge,N={[Ae.id]:oe}}j&&!t.hydrationData&&Ts(j,o,t.history.location.pathname).active&&(j=null);let A;if(j)if(j.some(oe=>oe.route.lazy))A=!1;else if(!j.some(oe=>oe.route.loader))A=!0;else if(p.v7_partialHydration){let oe=t.hydrationData?t.hydrationData.loaderData:null,ge=t.hydrationData?t.hydrationData.errors:null;if(ge){let Ae=j.findIndex(Re=>ge[Re.route.id]!==void 0);A=j.slice(0,Ae+1).every(Re=>!Bj(Re.route,oe,ge))}else A=j.every(Ae=>!Bj(Ae.route,oe,ge))}else A=t.hydrationData!=null;else if(A=!1,j=[],p.v7_partialHydration){let oe=Ts(null,o,t.history.location.pathname);oe.active&&oe.matches&&(j=oe.matches)}let E,C={historyAction:t.history.action,location:t.history.location,matches:j,initialized:A,navigation:jv,restoreScrollPosition:t.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:t.hydrationData&&t.hydrationData.loaderData||{},actionData:t.hydrationData&&t.hydrationData.actionData||null,errors:t.hydrationData&&t.hydrationData.errors||N,fetchers:new Map,blockers:new Map},F=cr.Pop,O=!1,L,W=!1,_=new Map,P=null,K=!1,q=!1,ae=[],ce=new Set,de=new Map,H=0,X=-1,V=new Map,he=new Set,T=new Map,I=new Map,G=new Set,re=new Map,ne=new Map,pe;function je(){if(m=t.history.listen(oe=>{let{action:ge,location:Ae,delta:Re}=oe;if(pe){pe(),pe=void 0;return}yp(ne.size===0||Re!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let Xe=it({currentLocation:C.location,nextLocation:Ae,historyAction:ge});if(Xe&&Re!=null){let pt=new Promise(jt=>{pe=jt});t.history.go(Re*-1),nt(Xe,{state:"blocked",location:Ae,proceed(){nt(Xe,{state:"proceeding",proceed:void 0,reset:void 0,location:Ae}),pt.then(()=>t.history.go(Re))},reset(){let jt=new Map(C.blockers);jt.set(Xe,gm),Pe({blockers:jt})}});return}return Y(ge,Ae)}),s){I9(n,_);let oe=()=>C9(n,_);n.addEventListener("pagehide",oe),P=()=>n.removeEventListener("pagehide",oe)}return C.initialized||Y(cr.Pop,C.location,{initialHydration:!0}),E}function ke(){m&&m(),P&&P(),u.clear(),L&&L.abort(),C.fetchers.forEach((oe,ge)=>at(ge)),C.blockers.forEach((oe,ge)=>bt(ge))}function De(oe){return u.add(oe),()=>u.delete(oe)}function Pe(oe,ge){ge===void 0&&(ge={}),C=Ls({},C,oe);let Ae=[],Re=[];p.v7_fetcherPersist&&C.fetchers.forEach((Xe,pt)=>{Xe.state==="idle"&&(G.has(pt)?Re.push(pt):Ae.push(pt))}),[...u].forEach(Xe=>Xe(C,{deletedFetchers:Re,viewTransitionOpts:ge.viewTransitionOpts,flushSync:ge.flushSync===!0})),p.v7_fetcherPersist&&(Ae.forEach(Xe=>C.fetchers.delete(Xe)),Re.forEach(Xe=>at(Xe)))}function Ze(oe,ge,Ae){var Re,Xe;let{flushSync:pt}=Ae===void 0?{}:Ae,jt=C.actionData!=null&&C.navigation.formMethod!=null&&lo(C.navigation.formMethod)&&C.navigation.state==="loading"&&((Re=oe.state)==null?void 0:Re._isRedirect)!==!0,ft;ge.actionData?Object.keys(ge.actionData).length>0?ft=ge.actionData:ft=null:jt?ft=C.actionData:ft=null;let mt=ge.loaderData?u4(C.loaderData,ge.loaderData,ge.matches||[],ge.errors):C.loaderData,lt=C.blockers;lt.size>0&&(lt=new Map(lt),lt.forEach((Zt,Kt)=>lt.set(Kt,gm)));let xt=O===!0||C.navigation.formMethod!=null&&lo(C.navigation.formMethod)&&((Xe=oe.state)==null?void 0:Xe._isRedirect)!==!0;l&&(o=l,l=void 0),K||F===cr.Pop||(F===cr.Push?t.history.push(oe,oe.state):F===cr.Replace&&t.history.replace(oe,oe.state));let Qt;if(F===cr.Pop){let Zt=_.get(C.location.pathname);Zt&&Zt.has(oe.pathname)?Qt={currentLocation:C.location,nextLocation:oe}:_.has(oe.pathname)&&(Qt={currentLocation:oe,nextLocation:C.location})}else if(W){let Zt=_.get(C.location.pathname);Zt?Zt.add(oe.pathname):(Zt=new Set([oe.pathname]),_.set(C.location.pathname,Zt)),Qt={currentLocation:C.location,nextLocation:oe}}Pe(Ls({},ge,{actionData:ft,loaderData:mt,historyAction:F,location:oe,initialized:!0,navigation:jv,revalidation:"idle",restoreScrollPosition:Ja(oe,ge.matches||C.matches),preventScrollReset:xt,blockers:lt}),{viewTransitionOpts:Qt,flushSync:pt===!0}),F=cr.Pop,O=!1,W=!1,K=!1,q=!1,ae=[]}async function tt(oe,ge){if(typeof oe=="number"){t.history.go(oe);return}
49let Ae=Vj(C.location,C.matches,c,p.v7_prependBasename,oe,p.v7_relativeSplatPath,ge==null?void 0:ge.fromRouteId,ge==null?void 0:ge.relative),{path:Re,submission:Xe,error:pt}=r4(p.v7_normalizeFormMethod,!1,Ae,ge),jt=C.location,ft=Df(C.location,Re,ge&&ge.state);ft=Ls({},ft,t.history.encodeLocation(ft));let mt=ge&&ge.replace!=null?ge.replace:void 0,lt=cr.Push;mt===!0?lt=cr.Replace:mt===!1||Xe!=null&&lo(Xe.formMethod)&&Xe.formAction===C.location.pathname+C.location.search&&(lt=cr.Replace);let xt=ge&&"preventScrollReset"in ge?ge.preventScrollReset===!0:void 0,Qt=(ge&&ge.flushSync)===!0,Zt=it({currentLocation:jt,nextLocation:ft,historyAction:lt});if(Zt){nt(Zt,{state:"blocked",location:ft,proceed(){nt(Zt,{state:"proceeding",proceed:void 0,reset:void 0,location:ft}),tt(oe,ge)},reset(){let Kt=new Map(C.blockers);Kt.set(Zt,gm),Pe({blockers:Kt})}});return}return await Y(lt,ft,{submission:Xe,pendingError:pt,preventScrollReset:xt,replace:ge&&ge.replace,enableViewTransition:ge&&ge.viewTransition,flushSync:Qt})}function Je(){if(be(),Pe({revalidation:"loading"}),C.navigation.state!=="submitting"){if(C.navigation.state==="idle"){Y(C.historyAction,C.location,{startUninterruptedRevalidation:!0});return}Y(F||C.historyAction,C.navigation.location,{overrideNavigation:C.navigation,enableViewTransition:W===!0})}}async function Y(oe,ge,Ae){L&&L.abort(),L=null,F=oe,K=(Ae&&Ae.startUninterruptedRevalidation)===!0,In(C.location,C.matches),O=(Ae&&Ae.preventScrollReset)===!0,W=(Ae&&Ae.enableViewTransition)===!0;let Re=l||o,Xe=Ae&&Ae.overrideNavigation,pt=kc(Re,ge,c),jt=(Ae&&Ae.flushSync)===!0,ft=Ts(pt,Re,ge.pathname);if(ft.active&&ft.matches&&(pt=ft.matches),!pt){let{error:xn,notFoundMatches:dn,route:Bn}=ht(ge.pathname);Ze(ge,{matches:dn,loaderData:{},errors:{[Bn.id]:xn}},{flushSync:jt});return}if(C.initialized&&!q&&v9(C.location,ge)&&!(Ae&&Ae.submission&&lo(Ae.submission.formMethod))){Ze(ge,{matches:pt},{flushSync:jt});return}L=new AbortController;let mt=Zh(t.history,ge,L.signal,Ae&&Ae.submission),lt;if(Ae&&Ae.pendingError)lt=[Od(pt).route.id,{type:ns.error,error:Ae.pendingError}];else if(Ae&&Ae.submission&&lo(Ae.submission.formMethod)){let xn=await Oe(mt,ge,Ae.submission,pt,ft.active,{replace:Ae.replace,flushSync:jt});if(xn.shortCircuited)return;if(xn.pendingActionResult){let[dn,Bn]=xn.pendingActionResult;if(xi(Bn)&&O0(Bn.error)&&Bn.error.status===404){L=null,Ze(ge,{matches:xn.matches,loaderData:{},errors:{[dn]:Bn.error}});return}}pt=xn.matches||pt,lt=xn.pendingActionResult,Xe=kv(ge,Ae.submission),jt=!1,ft.active=!1,mt=Zh(t.history,mt.url,mt.signal)}let{shortCircuited:xt,matches:Qt,loaderData:Zt,errors:Kt}=await Wt(mt,ge,pt,ft.active,Xe,Ae&&Ae.submission,Ae&&Ae.fetcherSubmission,Ae&&Ae.replace,Ae&&Ae.initialHydration===!0,jt,lt);xt||(L=null,Ze(ge,Ls({matches:Qt||pt},p4(lt),{loaderData:Zt,errors:Kt})))}async function Oe(oe,ge,Ae,Re,Xe,pt){pt===void 0&&(pt={}),be();let jt=A9(ge,Ae);if(Pe({navigation:jt},{flushSync:pt.flushSync===!0}),Xe){let lt=await _r(Re,ge.pathname,oe.signal);if(lt.type==="aborted")return{shortCircuited:!0};if(lt.type==="error"){let xt=Od(lt.partialMatches).route.id;return{matches:lt.partialMatches,pendingActionResult:[xt,{type:ns.error,error:lt.error}]}}else if(lt.matches)Re=lt.matches;else{let{notFoundMatches:xt,error:Qt,route:Zt}=ht(ge.pathname);return{matches:xt,pendingActionResult:[Zt.id,{type:ns.error,error:Qt}]}}}let ft,mt=Mm(Re,ge);if(!mt.route.action&&!mt.route.lazy)ft={type:ns.error,error:Fa(405,{method:oe.method,pathname:ge.pathname,routeId:mt.route.id})};else if(ft=(await un("action",C,oe,[mt],Re,null))[mt.route.id],oe.signal.aborted)return{shortCircuited:!0};if(Hd(ft)){let lt;return pt&&pt.replace!=null?lt=pt.replace:lt=c4(ft.response.headers.get("Location"),new URL(oe.url),c)===C.location.pathname+C.location.search,await gt(oe,ft,!0,{submission:Ae,replace:lt}),{shortCircuited:!0}}if(Mc(ft))throw Fa(400,{type:"defer-action"});if(xi(ft)){let lt=Od(Re,mt.route.id);return(pt&&pt.replace)!==!0&&(F=cr.Push),{matches:Re,pendingActionResult:[lt.route.id,ft]}}return{matches:Re,pendingActionResult:[mt.route.id,ft]}}async function Wt(oe,ge,Ae,Re,Xe,pt,jt,ft,mt,lt,xt){let Qt=Xe||kv(ge,pt),Zt=pt||jt||g4(Qt),Kt=!K&&(!
49p.v7_partialHydration||!mt);if(Re){if(Kt){let Tn=yt(xt);Pe(Ls({navigation:Qt},Tn!==void 0?{actionData:Tn}:{}),{flushSync:lt})}let fn=await _r(Ae,ge.pathname,oe.signal);if(fn.type==="aborted")return{shortCircuited:!0};if(fn.type==="error"){let Tn=Od(fn.partialMatches).route.id;return{matches:fn.partialMatches,loaderData:{},errors:{[Tn]:fn.error}}}else if(fn.matches)Ae=fn.matches;else{let{error:Tn,notFoundMatches:Za,route:pa}=ht(ge.pathname);return{matches:Za,loaderData:{},errors:{[pa.id]:Tn}}}}let xn=l||o,[dn,Bn]=i4(t.history,C,Ae,Zt,ge,p.v7_partialHydration&&mt===!0,p.v7_skipActionErrorRevalidation,q,ae,ce,G,T,he,xn,c,xt);if(nn(fn=>!(Ae&&Ae.some(Tn=>Tn.route.id===fn))||dn&&dn.some(Tn=>Tn.route.id===fn)),X=++H,dn.length===0&&Bn.length===0){let fn=qt();return Ze(ge,Ls({matches:Ae,loaderData:{},errors:xt&&xi(xt[1])?{[xt[0]]:xt[1].error}:null},p4(xt),fn?{fetchers:new Map(C.fetchers)}:{}),{flushSync:lt}),{shortCircuited:!0}}if(Kt){let fn={};if(!Re){fn.navigation=Qt;let Tn=yt(xt);Tn!==void 0&&(fn.actionData=Tn)}Bn.length>0&&(fn.fetchers=Ce(Bn)),Pe(fn,{flushSync:lt})}Bn.forEach(fn=>{rn(fn.key),fn.controller&&de.set(fn.key,fn.controller)});let Pr=()=>Bn.forEach(fn=>rn(fn.key));L&&L.signal.addEventListener("abort",Pr);let{loaderResults:ua,fetcherResults:pr}=await Xt(C,Ae,dn,Bn,oe);if(oe.signal.aborted)return{shortCircuited:!0};L&&L.signal.removeEventListener("abort",Pr),Bn.forEach(fn=>de.delete(fn.key));let Wr=lx(ua);if(Wr)return await gt(oe,Wr.result,!0,{replace:ft}),{shortCircuited:!0};if(Wr=lx(pr),Wr)return he.add(Wr.key),await gt(oe,Wr.result,!0,{replace:ft}),{shortCircuited:!0};let{loaderData:Ji,errors:Ci}=h4(C,Ae,ua,xt,Bn,pr,re);re.forEach((fn,Tn)=>{fn.subscribe(Za=>{(Za||fn.done)&&re.delete(Tn)})}),p.v7_partialHydration&&mt&&C.errors&&(Ci=Ls({},C.errors,Ci));let _a=qt(),ps=Vt(X),Xa=_a||ps||Bn.length>0;return Ls({matches:Ae,loaderData:Ji,errors:Ci},Xa?{fetchers:new Map(C.fetchers)}:{})}function yt(oe){if(oe&&!xi(oe[1]))return{[oe[0]]:oe[1].data};if(C.actionData)return Object.keys(C.actionData).length===0?null:C.actionData}function Ce(oe){return oe.forEach(ge=>{let Ae=C.fetchers.get(ge.key),Re=xm(void 0,Ae?Ae.data:void 0);C.fetchers.set(ge.key,Re)}),new Map(C.fetchers)}function wt(oe,ge,Ae,Re){if(r)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");rn(oe);let Xe=(Re&&Re.flushSync)===!0,pt=l||o,jt=Vj(C.location,C.matches,c,p.v7_prependBasename,Ae,p.v7_relativeSplatPath,ge,Re==null?void 0:Re.relative),ft=kc(pt,jt,c),mt=Ts(ft,pt,jt);if(mt.active&&mt.matches&&(ft=mt.matches),!ft){$e(oe,ge,Fa(404,{pathname:jt}),{flushSync:Xe});return}let{path:lt,submission:xt,error:Qt}=r4(p.v7_normalizeFormMethod,!0,jt,Re);if(Qt){$e(oe,ge,Qt,{flushSync:Xe});return}let Zt=Mm(ft,lt),Kt=(Re&&Re.preventScrollReset)===!0;if(xt&&lo(xt.formMethod)){ot(oe,ge,lt,Zt,ft,mt.active,Xe,Kt,xt);return}T.set(oe,{routeId:ge,path:lt}),_t(oe,ge,lt,Zt,ft,mt.active,Xe,Kt,xt)}async function ot(oe,ge,Ae,Re,Xe,pt,jt,ft,mt){be(),T.delete(oe);function lt(es){if(!es.route.action&&!es.route.lazy){let mr=Fa(405,{method:mt.formMethod,pathname:Ae,routeId:ge});return $e(oe,ge,mr,{flushSync:jt}),!0}return!1}if(!pt&<(Re))return;let xt=C.fetchers.get(oe);Ie(oe,D9(mt,xt),{flushSync:jt});let Qt=new AbortController,Zt=Zh(t.history,Ae,Qt.signal,mt);if(pt){let es=await _r(Xe,Ae,Zt.signal);if(es.type==="aborted")return;if(es.type==="error"){$e(oe,ge,es.error,{flushSync:jt});return}else if(es.matches){if(Xe=es.matches,Re=Mm(Xe,Ae),lt(Re))return}else{$e(oe,ge,Fa(404,{pathname:Ae}),{flushSync:jt});return}}de.set(oe,Qt);let Kt=H,dn=(await un("action",C,Zt,[Re],Xe,oe))[Re.route.id];if(Zt.signal.aborted){de.get(oe)===Qt&&de.delete(oe);return}if(p.v7_fetcherPersist&&G.has(oe)){if(Hd(dn)||xi(dn)){Ie(oe,pc(void 0));return}}else{if(Hd(dn))if(de.delete(oe),X>Kt){Ie(oe,pc(void 0));return}else return he.add(oe),Ie(oe,xm(mt)),gt(Zt,dn,!1,{fetcherSubmission:mt,preventScrollReset:ft});if(xi(dn)){$e(oe,ge,dn.error);return}}if(Mc(dn))throw Fa(400,{type:"defer-action"});let Bn=C.navigation.location||C.location,Pr=Zh(t.history,Bn,Qt.signal),ua=l||o,pr=C.navigation.state!=="idle"?kc(ua,C.navigation.location,c):C.matches;Cn(pr,"Didn't find any matches after fetcher action");let Wr=++H;V.set(oe,Wr);let Ji=xm(mt,dn.data);C.fetchers.set(oe,Ji);let[Ci,_a]=i4(t.history,C,pr,mt,Bn,!1,p.v7_skipActionErrorRevalidation,q,ae,ce,G,T,he,ua,c,[Re.route.id,dn]);_a.filter(es=>es.key!==oe).forEach(es=>{let mr=es.key,_i=C.fetchers.get(mr),Bl=xm(void 0,_i?_i.data:void 0);C.fetchers.set(mr,Bl),rn(mr),es.controller&&de.set(mr,es.controller)}),Pe({fetchers:new Map(C.fetchers)});let ps=()=>_a.forEach(es=>rn(es.key));Qt.signal.addEventListener("abort",ps);let{loaderResults:Xa,fetcherResults:fn}=await Xt(C,pr,Ci,_a,Pr);if(Qt.signal.aborted)return;Qt.signal.removeEventListener("abort",ps),V.delete(oe),de.delete(oe),_a.forEach(es=>de.delete(es.key));let Tn=lx(Xa);if(Tn)return gt(Pr,Tn.result,!1,{preventScrollReset:ft});if(Tn=lx(fn),Tn)return he.add(Tn.key),gt(Pr,Tn.result,!1,{preventScrollReset:ft});let{loaderData:Za,errors:pa}=h4(C,pr,Xa,void 0,_a,fn,re);if(C.fetchers.has(oe)){let es=pc(dn.data);C.fetchers.set(oe,es)}Vt(Wr),C.navigation.state==="loading"&&Wr>X?(Cn(F,"Expected pending action"),L&&L.abort(),Ze(C.navigation.location,{matches:pr,loaderData:Za,errors:pa,fetchers:new Map(C.fetchers)})):(Pe({errors:pa,loaderData:u4(C.loaderData,Za,pr,pa),fetchers:new Map(C.fetchers)}),q=!1)}async function _t(oe,ge,Ae,Re,Xe,pt,jt,ft,mt){let lt=C.fetchers.get(oe);Ie(oe,xm(mt,lt?lt.data:void 0),{flushSync:jt});let xt=new AbortController,Qt=Zh(t.history,Ae,xt.signal);if(pt){let dn=await _r(Xe,Ae,Qt.signal);if(dn.type==="aborted")return;if(dn.type==="error"){$e(oe,ge,dn.error,{flushSync:jt});return}else if(dn.matches)Xe=dn.matches,Re=Mm(Xe,Ae);else{$e(oe,ge,Fa(404,{pathname:Ae}),{flushSync:jt});return}}de.set(oe,xt);let Zt=H,xn=(await un("loader",C,Qt,[Re],Xe,oe))[Re.route.id];if(Mc(xn)&&(xn=await k1(xn,Qt.signal,!0)||xn),de.get(oe)===xt&&de.delete(oe),!Qt.signal.aborted){if(G.has(oe)){Ie(oe,pc(void 0));return}if(Hd(xn))if(X>Zt){Ie(oe,pc(void 0));return}else{he.add(oe),await gt(Qt,xn,!1,{preventScrollReset:ft});return}if(xi(xn)){$e(oe,ge,xn.error);return}Cn(!Mc(xn),"Unhandled fetcher deferred data"),Ie(oe,pc(xn.data))}}async function gt(oe,ge,Ae,Re){let{submission:Xe,fetcherSubmission:pt,preventScrollReset:jt,replace:ft}=Re===void 0?{}:Re;ge.response.headers.has("X-Remix-Revalidate")&&(q=!0);let mt=ge.response.headers.get("Location");Cn(mt,"Expected a Location header on the redirect Response"),mt=c4(mt,new URL(oe.url),c);let lt=Df(C.location,mt,{_isRedirect:!0});if(s){let dn=!1;if(ge.response.headers.has("X-Remix-Reload-Document"))dn=!0;else if(j1.test(mt)){const Bn=t.history.createURL(mt);dn=Bn.origin!==n.location.origin||Ip(Bn.pathname,c)==null}if(dn){ft?n.location.replace(mt):n.location.assign(mt);return}}L=null;let xt=ft===!0||ge.response.headers.has("X-Remix-Replace")?cr.Replace:cr.Push,{formMethod:Qt,formAction:Zt,formEncType:Kt}=C.navigation;!Xe&&!pt&&Qt&&Zt&&Kt&&(Xe=g4(C.navigation));let xn=Xe||pt;if(o9.has(ge.response.status)&&xn&&lo(xn.formMethod))await Y(xt,lt,{submission:Ls({},xn,{formAction:mt}),preventScrollReset:jt||O,enableViewTransition:Ae?W:void 0});else{let dn=kv(lt,Xe);await Y(xt,lt,{overrideNavigation:dn,fetcherSubmission:pt,preventScrollReset:jt||O,enableViewTransition:Ae?W:void 0})}}async function un(oe,ge,Ae,Re,Xe,pt){let jt,ft={};try{jt=await f9(d,oe,ge,Ae,Re,Xe,pt,i,a)}catch(mt){return Re.forEach(lt=>{ft[lt.route.id]={type:ns.error,error:mt}}),ft}for(let[mt,lt]of Object.entries(jt))if(w9(lt)){let xt=lt.result;ft[mt]={type:ns.redirect,response:y9(xt,Ae,mt,Xe,c,p.v7_relativeSplatPath)}}else ft[mt]=await x9(lt);return ft}async function Xt(oe,ge,Ae,Re,Xe){let pt=oe.matches,jt=un("loader",oe,Xe,Ae,ge,null),ft=Promise.all(Re.map(async xt=>{if(xt.matches&&xt.match&&xt.controller){let Zt=(await un("loader",oe,Zh(t.history,xt.path,xt.controller.signal),[xt.match],xt.matches,xt.key))[xt.match.route.id];return{[xt.key]:Zt}}else return Promise.resolve({[xt.key]:{type:ns.error,error:Fa(404,{pathname:xt.path})}})}
49)),mt=await jt,lt=(await ft).reduce((xt,Qt)=>Object.assign(xt,Qt),{});return await Promise.all([N9(ge,mt,Xe.signal,pt,oe.loaderData),S9(ge,lt,Re)]),{loaderResults:mt,fetcherResults:lt}}function be(){q=!0,ae.push(...nn()),T.forEach((oe,ge)=>{de.has(ge)&&ce.add(ge),rn(ge)})}function Ie(oe,ge,Ae){Ae===void 0&&(Ae={}),C.fetchers.set(oe,ge),Pe({fetchers:new Map(C.fetchers)},{flushSync:(Ae&&Ae.flushSync)===!0})}function $e(oe,ge,Ae,Re){Re===void 0&&(Re={});let Xe=Od(C.matches,ge);at(oe),Pe({errors:{[Xe.route.id]:Ae},fetchers:new Map(C.fetchers)},{flushSync:(Re&&Re.flushSync)===!0})}function Fe(oe){return p.v7_fetcherPersist&&(I.set(oe,(I.get(oe)||0)+1),G.has(oe)&&G.delete(oe)),C.fetchers.get(oe)||l9}function at(oe){let ge=C.fetchers.get(oe);de.has(oe)&&!(ge&&ge.state==="loading"&&V.has(oe))&&rn(oe),T.delete(oe),V.delete(oe),he.delete(oe),G.delete(oe),ce.delete(oe),C.fetchers.delete(oe)}function dt(oe){if(p.v7_fetcherPersist){let ge=(I.get(oe)||0)-1;ge<=0?(I.delete(oe),G.add(oe)):I.set(oe,ge)}else at(oe);Pe({fetchers:new Map(C.fetchers)})}function rn(oe){let ge=de.get(oe);ge&&(ge.abort(),de.delete(oe))}function Ut(oe){for(let ge of oe){let Ae=Fe(ge),Re=pc(Ae.data);C.fetchers.set(ge,Re)}}function qt(){let oe=[],ge=!1;for(let Ae of he){let Re=C.fetchers.get(Ae);Cn(Re,"Expected fetcher: "+Ae),Re.state==="loading"&&(he.delete(Ae),oe.push(Ae),ge=!0)}return Ut(oe),ge}function Vt(oe){let ge=[];for(let[Ae,Re]of V)if(Re<oe){let Xe=C.fetchers.get(Ae);Cn(Xe,"Expected fetcher: "+Ae),Xe.state==="loading"&&(rn(Ae),V.delete(Ae),ge.push(Ae))}return Ut(ge),ge.length>0}function Gt(oe,ge){let Ae=C.blockers.get(oe)||gm;return ne.get(oe)!==ge&&ne.set(oe,ge),Ae}function bt(oe){C.blockers.delete(oe),ne.delete(oe)}function nt(oe,ge){let Ae=C.blockers.get(oe)||gm;Cn(Ae.state==="unblocked"&&ge.state==="blocked"||Ae.state==="blocked"&&ge.state==="blocked"||Ae.state==="blocked"&&ge.state==="proceeding"||Ae.state==="blocked"&&ge.state==="unblocked"||Ae.state==="proceeding"&&ge.state==="unblocked","Invalid blocker state transition: "+Ae.state+" -> "+ge.state);let Re=new Map(C.blockers);Re.set(oe,ge),Pe({blockers:Re})}function it(oe){let{currentLocation:ge,nextLocation:Ae,historyAction:Re}=oe;if(ne.size===0)return;ne.size>1&&yp(!1,"A router only supports one blocker at a time");let Xe=Array.from(ne.entries()),[pt,jt]=Xe[Xe.length-1],ft=C.blockers.get(pt);if(!(ft&&ft.state==="proceeding")&&jt({currentLocation:ge,nextLocation:Ae,historyAction:Re}))return pt}function ht(oe){let ge=Fa(404,{pathname:oe}),Ae=l||o,{matches:Re,route:Xe}=m4(Ae);return nn(),{notFoundMatches:Re,route:Xe,error:ge}}function nn(oe){let ge=[];return re.forEach((Ae,Re)=>{(!oe||oe(Re))&&(Ae.cancel(),ge.push(Re),re.delete(Re))}),ge}function Mt(oe,ge,Ae){if(y=oe,w=ge,g=Ae||null,!b&&C.navigation===jv){b=!0;let Re=Ja(C.location,C.matches);Re!=null&&Pe({restoreScrollPosition:Re})}return()=>{y=null,w=null,g=null}}function Tt(oe,ge){return g&&g(oe,ge.map(Re=>V7(Re,C.loaderData)))||oe.key}function In(oe,ge){if(y&&w){let Ae=Tt(oe,ge);y[Ae]=w()}}function Ja(oe,ge){if(y){let Ae=Tt(oe,ge),Re=y[Ae];if(typeof Re=="number")return Re}return null}function Ts(oe,ge,Ae){if(h)if(oe){if(Object.keys(oe[0].params).length>0)return{active:!0,matches:ry(ge,Ae,c,!0)}}else return{active:!0,matches:ry(ge,Ae,c,!0)||[]};return{active:!1,matches:null}}async function _r(oe,ge,Ae){if(!h)return{type:"success",matches:oe};let Re=oe;for(;;){let Xe=l==null,pt=l||o,jt=i;try{await h({path:ge,matches:Re,patch:(lt,xt)=>{Ae.aborted||l4(lt,xt,pt,jt,a)}})}catch(lt){return{type:"error",error:lt,partialMatches:Re}}finally{Xe&&!Ae.aborted&&(o=[...o])}if(Ae.aborted)return{type:"aborted"};let ft=kc(pt,ge,c);if(ft)return{type:"success",matches:ft};let mt=ry(pt,ge,c,!0);if(!mt||Re.length===mt.length&&Re.every((lt,xt)=>lt.route.id===mt[xt].route.id))return{type:"success",matches:null};Re=mt}}function Tr(oe){i={},l=Ky(oe,a,void 0,i)}function Bt(oe,ge){let Ae=l==null;l4(oe,ge,l||o,i,a),Ae&&(o=[...o],Pe({}))}return E={get basename(){return c},get future(){return p},get state(){return C},get routes(){return o},get window(){return n},initialize:je,subscribe:De,enableScrollRestoration:Mt,navigate:tt,fetch:wt,revalidate:Je,createHref:oe=>t.history.createHref(oe),encodeLocation:oe=>t.history.encodeLocation(oe),getFetcher:Fe,deleteFetcher:dt,dispose:ke,getBlocker:Gt,deleteBlocker:bt,patchRoutes:Bt,_internalFetchControllers:de,_internalActiveDeferreds:re,_internalSetRoutes:Tr},E}function h9(t){return t!=null&&("formData"in t&&t.formData!=null||"body"in t&&t.body!==void 0)}function Vj(t,n,s,r,a,i,o,l){let c,d;if(o){c=[];for(let p of n)if(c.push(p),p.route.id===o){d=p;break}}else c=n,d=n[n.length-1];let h=R0(a||".",M0(c,i),Ip(t.pathname,s)||t.pathname,l==="path");if(a==null&&(h.search=t.search,h.hash=t.hash),(a==null||a===""||a===".")&&d){let p=N1(h.search);if(d.route.index&&!p)h.search=h.search?h.search.replace(/^\?/,"?index&"):"?index";else if(!d.route.index&&p){let m=new URLSearchParams(h.search),u=m.getAll("index");m.delete("index"),u.filter(g=>g).forEach(g=>m.append("index",g));let y=m.toString();h.search=y?"?"+y:""}}return r&&s!=="/"&&(h.pathname=h.pathname==="/"?s:Il([s,h.pathname])),hh(h)}function r4(t,n,s,r){if(!r||!h9(r))return{path:s};if(r.formMethod&&!k9(r.formMethod))return{path:s,error:Fa(405,{method:r.formMethod})};let a=()=>({path:s,error:Fa(400,{type:"invalid-body"})}),i=r.formMethod||"get",o=t?i.toUpperCase():i.toLowerCase(),l=ZC(s);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!lo(o))return a();
49let m=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((u,y)=>{let[g,w]=y;return""+u+g+"="+w+` 50`},""):String(r.body);return{path:s,submission:{formMethod:o,formAction:l,formEncType:r.formEncType,formData:void 0,json:void 0,text:m}}}else if(r.formEncType==="application/json"){if(!lo(o))return a();try{let m=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:s,submission:{formMethod:o,formAction:l,formEncType:r.formEncType,formData:void 0,json:m,text:void 0}}}catch{return a()}}}Cn(typeof FormData=="function","FormData is not available in this environment");let c,d;if(r.formData)c=zj(r.formData),d=r.formData;else if(r.body instanceof FormData)c=zj(r.body),d=r.body;else if(r.body instanceof URLSearchParams)c=r.body,d=d4(c);else if(r.body==null)c=new URLSearchParams,d=new FormData;else try{c=new URLSearchParams(r.body),d=d4(c)}catch{return a()}let h={formMethod:o,formAction:l,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:d,json:void 0,text:void 0};if(lo(h.formMethod))return{path:s,submission:h};let p=cd(s);return n&&p.search&&N1(p.search)&&c.append("index",""),p.search="?"+c,{path:hh(p),submission:h}}function a4(t,n,s){s===void 0&&(s=!1);let r=t.findIndex(a=>a.route.id===n);return r>=0?t.slice(0,s?r+1:r):t}function i4(t,n,s,r,a,i,o,l,c,d,h,p,m,u,y,g){let w=g?xi(g[1])?g[1].error:g[1].data:void 0,b=t.createURL(n.location),j=t.createURL(a),N=s;i&&n.errors?N=a4(s,Object.keys(n.errors)[0],!0):g&&xi(g[1])&&(N=a4(s,g[0]));let A=g?g[1].statusCode:void 0,E=o&&A&&A>=400,C=N.filter((O,L)=>{let{route:W}=O;if(W.lazy)return!0;if(W.loader==null)return!1;if(i)return Bj(W,n.loaderData,n.errors);if(u9(n.loaderData,n.matches[L],O)||c.some(K=>K===O.route.id))return!0;let _=n.matches[L],P=O;return o4(O,Ls({currentUrl:b,currentParams:_.params,nextUrl:j,nextParams:P.params},r,{actionResult:w,actionStatus:A,defaultShouldRevalidate:E?!1:l||b.pathname+b.search===j.pathname+j.search||b.search!==j.search||JC(_,P)}))}),F=[];return p.forEach((O,L)=>{if(i||!s.some(q=>q.route.id===O.routeId)||h.has(L))return;let W=kc(u,O.path,y);if(!W){F.push({key:L,routeId:O.routeId,path:O.path,matches:null,match:null,controller:null});return}let _=n.fetchers.get(L),P=Mm(W,O.path),K=!1;m.has(L)?K=!1:d.has(L)?(d.delete(L),K=!0):_&&_.state!=="idle"&&_.data===void 0?K=l:K=o4(P,Ls({currentUrl:b,currentParams:n.matches[n.matches.length-1].params,nextUrl:j,nextParams:s[s.length-1].params},r,{actionResult:w,actionStatus:A,defaultShouldRevalidate:E?!1:l})),K&&F.push({key:L,routeId:O.routeId,path:O.path,matches:W,match:P,controller:new AbortController})}),[C,F]}function Bj(t,n,s){if(t.lazy)return!0;if(!t.loader)return!1;let r=n!=null&&n[t.id]!==void 0,a=s!=null&&s[t.id]!==void 0;return!r&&a?!1:typeof t.loader=="function"&&t.loader.hydrate===!0?!0:!r&&!a}function u9(t,n,s){let r=!n||s.route.id!==n.route.id,a=t[s.route.id]===void 0;return r||a}function JC(t,n){let s=t.route.path;return t.pathname!==n.pathname||s!=null&&s.endsWith("*")&&t.params["*"]!==n.params["*"]}function o4(t,n){if(t.route.shouldRevalidate){let s=t.route.shouldRevalidate(n);if(typeof s=="boolean")return s}return n.defaultShouldRevalidate}function l4(t,n,s,r,a){var i;let o;if(t){let d=r[t];Cn(d,"No route found to patch children into: routeId = "+t),d.children||(d.children=[]),o=d.children}else o=s;let l=n.filter(d=>!o.some(h=>XC(d,h))),c=Ky(l,a,[t||"_","patch",String(((i=o)==null?void 0:i.length)||"0")],r);o.push(...c)}function XC(t,n){return"id"in t&&"id"in n&&t.id===n.id?!0:t.index===n.index&&t.path===n.path&&t.caseSensitive===n.caseSensitive?(!t.children||t.children.length===0)&&(!n.children||n.children.length===0)?!0:t.children.every((s,r)=>{var a;return(a=n.children)==null?void 0:a.some(i=>XC(s,i))}):!1}async function p9(t,n,s){if(!t.lazy)return;let r=await t.lazy();if(!t.lazy)return;let a=s[t.id];Cn(a,"No route found in manifest");let i={};for(let o in r){let c=a[o]!==void 0&&o!=="hasErrorBoundary";yp(!c,'Route "'+a.id+'" has a static property "'+o+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+o+'" will be ignored.')),!c&&!O7.has(o)&&(i[o]=r[o])}Object.assign(a,i),Object.assign(a,Ls({},n(a),{lazy:void 0}))}async function m9(t){let{matches:n}=t,s=n.filter(a=>a.shouldLoad);return(await Promise.all(s.map(a=>a.resolve()))).reduce((a,i,o)=>Object.assign(a,{[s[o].route.id]:i}),{})}async function f9(t,n,s,r,a,i,o,l,c,d){let h=i.map(u=>u.route.lazy?p9(u.route,c,l):void 0),p=i.map((u,y)=>{let g=h[y],w=a.some(j=>j.route.id===u.route.id);return Ls({},u,{shouldLoad:w,resolve:async j=>(j&&r.method==="GET"&&(u.route.lazy||u.route.loader)&&(w=!0),w?g9(n,r,u,g,j,d):Promise.resolve({type:ns.data,result:void 0}))})}),m=await t({matches:p,request:r,params:i[0].params,fetcherKey:o,context:d});try{await Promise.all(h)}catch{}return m}async function g9(t,n,s,r,a,i){let o,l,c=d=>{let h,p=new Promise((y,g)=>h=g);l=()=>h(),n.signal.addEventListener("abort",l);let m=y=>typeof d!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+t+'" [routeId: '+s.route.id+"]"))):d({request:n,params:s.params,context:i},...y!==void 0?[y]:[]),u=(async()=>{try{return{type:"data",result:await(a?a(g=>m(g)):m())}}catch(y){return{type:"error",result:y}}})();return Promise.race([u,p])};try{let d=s.route[t];if(r)if(d){let h,[p]=await Promise.all([c(d).catch(m=>{h=m}),r]);if(h!==void 0)throw h;
50o=p}else if(await r,d=s.route[t],d)o=await c(d);else if(t==="action"){let h=new URL(n.url),p=h.pathname+h.search;throw Fa(405,{method:n.method,pathname:p,routeId:s.route.id})}else return{type:ns.data,result:void 0};else if(d)o=await c(d);else{let h=new URL(n.url),p=h.pathname+h.search;throw Fa(404,{pathname:p})}Cn(o.result!==void 0,"You defined "+(t==="action"?"an action":"a loader")+" for route "+('"'+s.route.id+"\" but didn't return anything from your `"+t+"` ")+"function. Please return a value or `null`.")}catch(d){return{type:ns.error,result:d}}finally{l&&n.signal.removeEventListener("abort",l)}return o}async function x9(t){let{result:n,type:s}=t;if(e_(n)){let d;try{let h=n.headers.get("Content-Type");h&&/\bapplication\/json\b/.test(h)?n.body==null?d=null:d=await n.json():d=await n.text()}catch(h){return{type:ns.error,error:h}}return s===ns.error?{type:ns.error,error:new Qy(n.status,n.statusText,d),statusCode:n.status,headers:n.headers}:{type:ns.data,data:d,statusCode:n.status,headers:n.headers}}if(s===ns.error){if(f4(n)){var r;if(n.data instanceof Error){var a;return{type:ns.error,error:n.data,statusCode:(a=n.init)==null?void 0:a.status}}n=new Qy(((r=n.init)==null?void 0:r.status)||500,void 0,n.data)}return{type:ns.error,error:n,statusCode:O0(n)?n.status:void 0}}if(j9(n)){var i,o;return{type:ns.deferred,deferredData:n,statusCode:(i=n.init)==null?void 0:i.status,headers:((o=n.init)==null?void 0:o.headers)&&new Headers(n.init.headers)}}if(f4(n)){var l,c;return{type:ns.data,data:n.data,statusCode:(l=n.init)==null?void 0:l.status,headers:(c=n.init)!=null&&c.headers?new Headers(n.init.headers):void 0}}return{type:ns.data,data:n}}function y9(t,n,s,r,a,i){let o=t.headers.get("Location");if(Cn(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!j1.test(o)){let l=r.slice(0,r.findIndex(c=>c.route.id===s)+1);o=Vj(new URL(n.url),l,a,!0,o,i),t.headers.set("Location",o)}return t}function c4(t,n,s){if(j1.test(t)){let r=t,a=r.startsWith("//")?new URL(n.protocol+r):new URL(r),i=Ip(a.pathname,s)!=null;if(a.origin===n.origin&&i)return a.pathname+a.search+a.hash}return t}function Zh(t,n,s,r){let a=t.createURL(ZC(n)).toString(),i={signal:s};if(r&&lo(r.formMethod)){let{formMethod:o,formEncType:l}=r;i.method=o.toUpperCase(),l==="application/json"?(i.headers=new Headers({"Content-Type":l}),i.body=JSON.stringify(r.json)):l==="text/plain"?i.body=r.text:l==="application/x-www-form-urlencoded"&&r.formData?i.body=zj(r.formData):i.body=r.formData}return new Request(a,i)}function zj(t){let n=new URLSearchParams;for(let[s,r]of t.entries())n.append(s,typeof r=="string"?r:r.name);return n}function d4(t){let n=new FormData;for(let[s,r]of t.entries())n.append(s,r);return n}function b9(t,n,s,r,a){let i={},o=null,l,c=!1,d={},h=s&&xi(s[1])?s[1].error:void 0;return t.forEach(p=>{if(!(p.route.id in n))return;let m=p.route.id,u=n[m];if(Cn(!Hd(u),"Cannot handle redirect results in processLoaderData"),xi(u)){let y=u.error;h!==void 0&&(y=h,h=void 0),o=o||{};{let g=Od(t,m);o[g.route.id]==null&&(o[g.route.id]=y)}i[m]=void 0,c||(c=!0,l=O0(u.error)?u.error.status:500),u.headers&&(d[m]=u.headers)}else Mc(u)?(r.set(m,u.deferredData),i[m]=u.deferredData.data,u.statusCode!=null&&u.statusCode!==200&&!c&&(l=u.statusCode),u.headers&&(d[m]=u.headers)):(i[m]=u.data,u.statusCode&&u.statusCode!==200&&!c&&(l=u.statusCode),u.headers&&(d[m]=u.headers))}),h!==void 0&&s&&(o={[s[0]]:h},i[s[0]]=void 0),{loaderData:i,errors:o,statusCode:l||200,loaderHeaders:d}}function h4(t,n,s,r,a,i,o){let{loaderData:l,errors:c}=b9(n,s,r,o);return a.forEach(d=>{let{key:h,match:p,controller:m}=d,u=i[h];if(Cn(u,"Did not find corresponding fetcher result"),!(m&&m.signal.aborted))if(xi(u)){let y=Od(t.matches,p==null?void 0:p.route.id);c&&c[y.route.id]||(c=Ls({},c,{[y.route.id]:u.error})),t.fetchers.delete(h)}else if(Hd(u))Cn(!1,"Unhandled fetcher revalidation redirect");else if(Mc(u))Cn(!1,"Unhandled fetcher deferred data");else{let y=pc(u.data);t.fetchers.set(h,y)}}),{loaderData:l,errors:c}}function u4(t,n,s,r){let a=Ls({},n);for(let i of s){let o=i.route.id;if(n.hasOwnProperty(o)?n[o]!==void 0&&(a[o]=n[o]):t[o]!==void 0&&i.route.loader&&(a[o]=t[o]),r&&r.hasOwnProperty(o))break}return a}function p4(t){return t?xi(t[1])?{actionData:{}}:{actionData:{[t[0]]:t[1].data}}:{}}function Od(t,n){return(n?t.slice(0,t.findIndex(r=>r.route.id===n)+1):[...t]).reverse().find(r=>r.route.hasErrorBoundary===!0)||t[0]}function m4(t){let n=t.length===1?t[0]:t.find(s=>
50s.index||!s.path||s.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:n}],route:n}}function Fa(t,n){let{pathname:s,routeId:r,method:a,type:i,message:o}=n===void 0?{}:n,l="Unknown Server Error",c="Unknown @remix-run/router error";return t===400?(l="Bad Request",a&&s&&r?c="You made a "+a+' request to "'+s+'" but '+('did not provide a `loader` for route "'+r+'", ')+"so there is no way to handle the request.":i==="defer-action"?c="defer() is not supported in actions":i==="invalid-body"&&(c="Unable to encode submission body")):t===403?(l="Forbidden",c='Route "'+r+'" does not match URL "'+s+'"'):t===404?(l="Not Found",c='No route matches URL "'+s+'"'):t===405&&(l="Method Not Allowed",a&&s&&r?c="You made a "+a.toUpperCase()+' request to "'+s+'" but '+('did not provide an `action` for route "'+r+'", ')+"so there is no way to handle the request.":a&&(c='Invalid request method "'+a.toUpperCase()+'"')),new Qy(t||500,l,new Error(c),!0)}function lx(t){let n=Object.entries(t);for(let s=n.length-1;s>=0;s--){let[r,a]=n[s];if(Hd(a))return{key:r,result:a}}}function ZC(t){let n=typeof t=="string"?cd(t):t;return hh(Ls({},n,{hash:""}))}function v9(t,n){return t.pathname!==n.pathname||t.search!==n.search?!1:t.hash===""?n.hash!=="":t.hash===n.hash?!0:n.hash!==""}function w9(t){return e_(t.result)&&i9.has(t.result.status)}function Mc(t){return t.type===ns.deferred}function xi(t){return t.type===ns.error}function Hd(t){return(t&&t.type)===ns.redirect}function f4(t){return typeof t=="object"&&t!=null&&"type"in t&&"data"in t&&"init"in t&&t.type==="DataWithResponseInit"}function j9(t){let n=t;return n&&typeof n=="object"&&typeof n.data=="object"&&typeof n.subscribe=="function"&&typeof n.cancel=="function"&&typeof n.resolveData=="function"}function e_(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.headers=="object"&&typeof t.body<"u"}function k9(t){return a9.has(t.toLowerCase())}function lo(t){return s9.has(t.toLowerCase())}async function N9(t,n,s,r,a){let i=Object.entries(n);for(let o=0;o<i.length;o++){let[l,c]=i[o],d=t.find(m=>(m==null?void 0:m.route.id)===l);if(!d)continue;let h=r.find(m=>m.route.id===d.route.id),p=h!=null&&!JC(h,d)&&(a&&a[d.route.id])!==void 0;Mc(c)&&p&&await k1(c,s,!1).then(m=>{m&&(n[l]=m)})}}async function S9(t,n,s){for(let r=0;r<s.length;r++){let{key:a,routeId:i,controller:o}=s[r],l=n[a];t.find(d=>(d==null?void 0:d.route.id)===i)&&Mc(l)&&(Cn(o,"Expected an AbortController for revalidating fetcher deferred result"),await k1(l,o.signal,!0).then(d=>{d&&(n[a]=d)}))}}async function k1(t,n,s){if(s===void 0&&(s=!1),!await t.deferredData.resolveData(n)){if(s)try{return{type:ns.data,data:t.deferredData.unwrappedData}}catch(a){return{type:ns.error,error:a}}return{type:ns.data,data:t.deferredData.data}}}function N1(t){return new URLSearchParams(t).getAll("index").some(n=>n==="")}function Mm(t,n){let s=typeof n=="string"?cd(n).search:n.search;if(t[t.length-1].route.index&&N1(s||""))return t[t.length-1];let r=KC(t);return r[r.length-1]}function g4(t){let{formMethod:n,formAction:s,formEncType:r,text:a,formData:i,json:o}=t;if(!(!n||!s||!r)){if(a!=null)return{formMethod:n,formAction:s,formEncType:r,formData:void 0,json:void 0,text:a};if(i!=null)return{formMethod:n,formAction:s,formEncType:r,formData:i,json:void 0,text:void 0};if(o!==void 0)return{formMethod:n,formAction:s,formEncType:r,formData:void 0,json:o,text:void 0}}}function kv(t,n){return n?{state:"loading",location:t,formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text}:{state:"loading",location:t,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function A9(t,n){return{state:"submitting",location:t,formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text}}function xm(t,n){return t?{state:"loading",formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text,data:n}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:n}}function D9(t,n){return{state:"submitting",formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text,data:n?n.data:void 0}}function pc(t){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function I9(t,n){try{let s=t.sessionStorage.getItem(YC);if(s){let r=JSON.parse(s);for(let[a,i]of Object.entries(r||{}))i&&Array.isArray(i)&&n.set(a,new Set(i||[]))}}catch{}}function C9(t,n){if(n.size>0){let s={};for(let[r,a]of n)s[r]=[...a];try{t.sessionStorage.setItem(YC,JSON.stringify(s))}catch(r){yp(!1,"Failed to save applied view transitions in sessionStorage ("+r+").")}}}/** 51 * React Router v6.27.0 52 * 53 * Copyright (c) Remix Software Inc. 54 * 55 * This source code is licensed under the MIT license found in the 56 * LICENSE.md file in the root directory of this source tree. 57 * 58 * @license MIT 59 */function Yy(){return Yy=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var s=arguments[n];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=s[r])}return t},Yy.apply(this,arguments)}const F0=S.createContext(null),t_=S.createContext(null),dd=S.createContext(null),S1=S.createContext(null),tl=S.createContext({outlet:null,matches:[],isDataRoute:!1}),n_=S.createContext(null);function _9(t,n){let{relative:s}=n===void 0?{}:n;Cp()||Cn(!1);let{basename:r,navigator:a}=S.useContext(dd),{hash:i,pathname:o,search:l}=r_(t,{relative:s}),c=o;return r!=="/"&&(c=o==="/"?r:Il([r,o])),a.createHref({pathname:c,search:l,hash:i})}function Cp(){return S.useContext(S1)!=null}function Ah(){return Cp()||Cn(!1),S.useContext(S1).location}function s_(t){S.useContext(dd).static||S.useLayoutEffect(t)}function jn(){let{isDataRoute:t}=S.useContext(tl);return t?$9():T9()}function T9(){Cp()||Cn(!1);let t=S.useContext(F0),{basename:n,future:s,navigator:r}=S.useContext(dd),{matches:a}=S.useContext(tl),{pathname:i}=Ah(),o=JSON.stringify(M0(a,s.v7_relativeSplatPath)),l=S.useRef(!1);return s_(()=>{l.current=!0}),S.useCallback(function(d,h){if(h===void 0&&(h={}),!l.current)return;if(typeof d=="number"){r.go(d);return}let p=R0(d,JSON.parse(o),i,h.relative==="path");t==null&&n!=="/"&&(p.pathname=p.pathname==="/"?n:Il([n,p.pathname])),(h.replace?r.replace:r.push)(p,h.state,h)},[n,r,o,i,t])}const P9=S.createContext(null);function E9(t){let n=S.useContext(tl).outlet;return n&&S.createElement(P9.Provider,{value:t},n)}function L9(){let{matches:t}=S.useContext(tl),n=t[t.length-1];return n?n.params:{}}function r_(t,n){let{relative:s}=n===void 0?{}:n,{future:r}=S.useContext(dd),{matches:a}=S.useContext(tl),{pathname:i}=Ah(),o=JSON.stringify(M0(a,r.v7_relativeSplatPath));return S.useMemo(()=>R0(t,JSON.parse(o),i,s==="path"),[t,o,i,s])}function M9(t,n,s,r){Cp()||Cn(!1);let{navigator:a}=S.useContext(dd),{matches:i}=S.useContext(tl),o=i[i.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let d=Ah(),h;h=d;let p=h.pathname||"/",m=p;if(c!=="/"){let g=c.replace(/^\//,"").split("/");m="/"+p.replace(/^\//,"").split("/").slice(g.length).join("/")}let u=kc(t,{pathname:m});return B9(u&&u.map(g=>Object.assign({},g,{params:Object.assign({},l,g.params),pathname:Il([c,a.encodeLocation?a.encodeLocation(g.pathname).pathname:g.pathname]),pathnameBase:g.pathnameBase==="/"?c:Il([c,a.encodeLocation?a.encodeLocation(g.pathnameBase).pathname:g.pathnameBase])})),i,s,r)}function R9(){let t=H9(),n=O0(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),s=t instanceof Error?t.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return S.createElement(S.Fragment,null,S.createElement("h2",null,"Unexpected Application
59Error!"),S.createElement("h3",{style:{fontStyle:"italic"}},n),s?S.createElement("pre",{style:a},s):null,null)}const O9=S.createElement(R9,null);class F9 extends S.Component{constructor(n){super(n),this.state={location:n.location,revalidation:n.revalidation,error:n.error}}static getDerivedStateFromError(n){return{error:n}}static getDerivedStateFromProps(n,s){return s.location!==n.location||s.revalidation!=="idle"&&n.revalidation==="idle"?{error:n.error,location:n.location,revalidation:n.revalidation}:{error:n.error!==void 0?n.error:s.error,location:s.location,revalidation:n.revalidation||s.revalidation}}componentDidCatch(n,s){console.error("React Router caught the following error during render",n,s)}render(){return this.state.error!==void 0?S.createElement(tl.Provider,{value:this.props.routeContext},S.createElement(n_.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function V9(t){let{routeContext:n,match:s,children:r}=t,a=S.useContext(F0);return a&&a.static&&a.staticContext&&(s.route.errorElement||s.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=s.route.id),S.createElement(tl.Provider,{value:n},r)}function B9(t,n,s,r){var a;if(n===void 0&&(n=[]),s===void 0&&(s=null),r===void 0&&(r=null),t==null){var i;if(!s)return null;if(s.errors)t=s.matches;else if((i=r)!=null&&i.v7_partialHydration&&n.length===0&&!s.initialized&&s.matches.length>0)t=s.matches;else return null}let o=t,l=(a=s)==null?void 0:a.errors;if(l!=null){let h=o.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);h>=0||Cn(!1),o=o.slice(0,Math.min(o.length,h+1))}let c=!1,d=-1;if(s&&r&&r.v7_partialHydration)for(let h=0;h<o.length;h++){let p=o[h];if((p.route.HydrateFallback||p.route.hydrateFallbackElement)&&(d=h),p.route.id){let{loaderData:m,errors:u}=s,y=p.route.loader&&m[p.route.id]===void 0&&(!u||u[p.route.id]===void 0);if(p.route.lazy||y){c=!0,d>=0?o=o.slice(0,d+1):o=[o[0]];break}}}return o.reduceRight((h,p,m)=>{let u,y=!1,g=null,w=null;s&&(u=l&&p.route.id?l[p.route.id]:void 0,g=p.route.errorElement||O9,c&&(d<0&&m===0?(y=!0,w=null):d===m&&(y=!0,w=p.route.hydrateFallbackElement||null)));let b=n.concat(o.slice(0,m+1)),j=()=>{let N;return u?N=g:y?N=w:p.route.Component?N=S.createElement(p.route.Component,null):p.route.element?N=p.route.element:N=h,S.createElement(V9,{match:p,routeContext:{outlet:h,matches:b,isDataRoute:s!=null},children:N})};return s&&(p.route.ErrorBoundary||p.route.errorElement||m===0)?S.createElement(F9,{location:s.location,revalidation:s.revalidation,component:g,error:u,children:j(),routeContext:{outlet:null,matches:b,isDataRoute:!0}}):j()},null)}var a_=function(t){return t.UseBlocker="useBlocker",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t}(a_||{}),Jy=function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t}(Jy||{});function z9(t){let n=S.useContext(F0);return n||Cn(!1),n}function U9(t){let n=S.useContext(t_);return n||Cn(!1),n}function q9(t){let n=S.useContext(tl);return n||Cn(!1),n}function i_(t){let n=q9(),s=n.matches[n.matches.length-1];return s.route.id||Cn(!1),s.route.id}function H9(){var t;let n=S.useContext(n_),s=U9(Jy.UseRouteError),r=i_(Jy.UseRouteError);return n!==void 0?n:(t=s.errors)==null?void 0:t[r]}function $9(){let{router:t}=z9(a_.UseNavigateStable),n=i_(Jy.UseNavigateStable),s=S.useRef(!1);return s_(()=>{s.current=!0}),S.useCallback(function(a,i){i===void 0&&(i={}),s.current&&(typeof a=="number"?t.navigate(a):t.navigate(a,Yy({fromRouteId:n},i)))},[t,n])}function x4(t){let{to:n,replace:s,state:r,relative:a}=t;Cp()||Cn(!1);let{future:i,static:o}=S.useContext(dd),{matches:l}=S.useContext(tl),{pathname:c}=Ah(),d=jn(),h=R0(n,M0(l,i.v7_relativeSplatPath),c,a==="path"),p=JSON.stringify(h);return S.useEffect(()=>d(JSON.parse(p),{replace:s,state:r,relative:a}),[d,p,a,s,r]),null}function W9(t){return E9(t.context)}function G9(t){let{basename:n="/",children:s=null,location:r,navigationType:a=cr.Pop,navigator:i,static:o=!1,future:l}=t;Cp()&&Cn(!1);let c=n.replace(/^\/*/,"/"),d=S.useMemo(()=>({basename:c,navigator:i,static:o,future:Yy({v7_relativeSplatPath:!1},l)}),[c,l,i,o]);typeof r=="string"&&(r=cd(r));
59let{pathname:h="/",search:p="",hash:m="",state:u=null,key:y="default"}=r,g=S.useMemo(()=>{let w=Ip(h,c);return w==null?null:{location:{pathname:w,search:p,hash:m,state:u,key:y},navigationType:a}},[c,h,p,m,u,y,a]);return g==null?null:S.createElement(dd.Provider,{value:d},S.createElement(S1.Provider,{children:s,value:g}))}new Promise(()=>{});function K9(t){let n={hasErrorBoundary:t.ErrorBoundary!=null||t.errorElement!=null};return t.Component&&Object.assign(n,{element:S.createElement(t.Component),Component:void 0}),t.HydrateFallback&&Object.assign(n,{hydrateFallbackElement:S.createElement(t.HydrateFallback),HydrateFallback:void 0}),t.ErrorBoundary&&Object.assign(n,{errorElement:S.createElement(t.ErrorBoundary),ErrorBoundary:void 0}),n}/** 60 * React Router DOM v6.27.0 61 * 62 * Copyright (c) Remix Software Inc. 63 * 64 * This source code is licensed under the MIT license found in the 65 * LICENSE.md file in the root directory of this source tree. 66 * 67 * @license MIT 68 */function If(){return If=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var s=arguments[n];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=s[r])}return t},If.apply(this,arguments)}function Q9(t,n){if(t==null)return{};var s={},r=Object.keys(t),a,i;for(i=0;i<r.length;i++)a=r[i],!(n.indexOf(a)>=0)&&(s[a]=t[a]);return s}function Y9(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function J9(t,n){return t.button===0&&(!n||n==="_self")&&!Y9(t)}function Uj(t){return t===void 0&&(t=""),new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((n,s)=>{let r=t[s];return n.concat(Array.isArray(r)?r.map(a=>[s,a]):[[s,r]])},[]))}function X9(t,n){let s=Uj(t);return n&&n.forEach((r,a)=>{s.has(a)||n.getAll(a).forEach(i=>{s.append(a,i)})}),s}const Z9=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],eV="6";try{window.__reactRouterVersion=eV}catch{}function tV(t,n){return d9({basename:n==null?void 0:n.basename,future:If({},n==null?void 0:n.future,{v7_prependBasename:!0}),history:L7({window:n==null?void 0:n.window}),hydrationData:(n==null?void 0:n.hydrationData)||nV(),routes:t,mapRouteProperties:K9,dataStrategy:n==null?void 0:n.dataStrategy,patchRoutesOnNavigation:n==null?void 0:n.patchRoutesOnNavigation,window:n==null?void 0:n.window}).initialize()}function nV(){var t;let n=(t=window)==null?void 0:t.__staticRouterHydrationData;return n&&n.errors&&(n=If({},n,{errors:sV(n.errors)})),n}function sV(t){if(!t)return null;let n=Object.entries(t),s={};for(let[r,a]of n)if(a&&a.__type==="RouteErrorResponse")s[r]=new Qy(a.status,a.statusText,a.data,a.internal===!0);else if(a&&a.__type==="Error"){if(a.__subType){let i=window[a.__subType];if(typeof i=="function")try{let o=new i(a.message);o.stack="",s[r]=o}catch{}}if(s[r]==null){let i=new Error(a.message);i.stack="",s[r]=i}}else s[r]=a;return s}const rV=S.createContext({isTransitioning:!1}),aV=S.createContext(new Map),iV="startTransition",y4=O6[iV],oV="flushSync",b4=$C[oV];function lV(t){y4?y4(t):t()}function ym(t){b4?b4(t):t()}let cV=class{constructor(){this.status="pending",this.promise=new Promise((n,s)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",n(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",s(r))}})}};function dV(t){let{fallbackElement:n,router:s,future:r}=t,[a,i]=S.useState(s.state),[o,l]=S.useState(),[c,d]=S.useState({isTransitioning:!1}),[h,p]=S.useState(),[m,u]=S.useState(),[y,g]=S.useState(),w=S.useRef(new Map),{v7_startTransition:b}=r||{},j=S.useCallback(O=>{b?lV(O):O()},[b]),N=S.useCallback((O,L)=>{let{deletedFetchers:W,flushSync:_,viewTransitionOpts:P}=L;W.forEach(q=>w.current.delete(q)),O.fetchers.forEach((q,ae)=>{q.data!==void 0&&w.current.set(ae,q.data)});let K=s.window==null||s.window.document==null||typeof s.window.document.startViewTransition!="function";if(!P||K){_?ym(()=>i(O)):j(()=>i(O));return}if(_){ym(()=>{m&&(h&&h.resolve(),m.skipTransition()),d({isTransitioning:!0,flushSync:!0,currentLocation:P.currentLocation,nextLocation:P.nextLocation})});let q=s.window.document.startViewTransition(()=>{ym(()=>i(O))});q.finished.finally(()=>{ym(()=>{p(void 0),u(void 0),l(void 0),d({isTransitioning:!1})})}),ym(()=>u(q));return}m?(h&&h.resolve(),m.skipTransition(),g({state:O,currentLocation:P.currentLocation,nextLocation:P.nextLocation})):(l(O),d({isTransitioning:!0,flushSync:!1,currentLocation:P.currentLocation,nextLocation:P.nextLocation}))},[s.window,m,h,w,j]);S.useLayoutEffect(()=>s.subscribe(N),[s,N]),S.useEffect(()=>{c.isTransitioning&&!c.flushSync&&p(new cV)},[c]),S.useEffect(()=>{if(h&&o&&s.window){let O=o,L=h.promise,W=s.window.document.startViewTransition(async()=>{j(()=>i(O)),await L});W.finished.finally(()=>{p(void 0),u(void 0),l(void 0),d({isTransitioning:!1})}),u(W)}},[j,o,h,s.window]),S.useEffect(()=>{h&&o&&a.location.key===o.location.key&&h.resolve()},[h,m,a.location,o]),S.useEffect(()=>{!c.isTransitioning&&y&&(l(y.state),d({isTransitioning:!0,flushSync:!1,currentLocation:y.currentLocation,nextLocation:y.nextLocation}),g(void 0))},[c.isTransitioning,y]),S.useEffect(()=>{},[]);let A=S.useMemo(()=>({createHref:s.createHref,encodeLocation:s.encodeLocation,go:O=>s.navigate(O),push:(O,L,W)=>s.navigate(O,{state:L,preventScrollReset:W==null?void 0:W.preventScrollReset}),replace:(O,L,W)=>s.navigate(O,{replace:!0,state:L,preventScrollReset:W==null?void 0:W.preventScrollReset})}),[s]),E=s.basename||"/",C=S.useMemo(()=>({router:s,navigator:A,static:!1,basename:E}),[s,A,E]),F=S.useMemo(()=>({v7_relativeSplatPath:s.future.v7_relativeSplatPath}),[s.future.v7_relativeSplatPath]);return S.createElement(S.Fragment,null,S.createElement(F0.Provider,{value:C},S.createElement(t_.Provider,{value:a},S.createElement(aV.Provider,{value:w.current},S.createElement(rV.Provider,{value:c},S.createElement(G9,{basename:E,location:a.location,navigationType:a.historyAction,navigator:A,future:F},a.initialized||s.future.v7_partialHydration?S.createElement(hV,{routes:s.routes,future:s.future,state:a}):n))))),null)}const hV=S.memo(uV);function uV(t){let{routes:n,future:s,state:r}=t;return M9(n,void 0,r,s)}const pV=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",mV=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,se=S.forwardRef(function(n,s){let{onClick:r,relative:a,reloadDocument:i,replace:o,state:l,target:c,to:d,preventScrollReset:h,viewTransition:p}=n,m=Q9(n,Z9),{basename:u}=S.useContext(dd),y,g=!1;
68if(typeof d=="string"&&mV.test(d)&&(y=d,pV))try{let N=new URL(window.location.href),A=d.startsWith("//")?new URL(N.protocol+d):new URL(d),E=Ip(A.pathname,u);A.origin===N.origin&&E!=null?d=E+A.search+A.hash:g=!0}catch{}let w=_9(d,{relative:a}),b=fV(d,{replace:o,state:l,target:c,preventScrollReset:h,relative:a,viewTransition:p});function j(N){r&&r(N),N.defaultPrevented||b(N)}return S.createElement("a",If({},m,{href:y||w,onClick:g||i?r:j,ref:s,target:c}))});var v4;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher",t.useViewTransitionState="useViewTransitionState"})(v4||(v4={}));var w4;(function(t){t.UseFetcher="useFetcher",t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(w4||(w4={}));function fV(t,n){let{target:s,replace:r,state:a,preventScrollReset:i,relative:o,viewTransition:l}=n===void 0?{}:n,c=jn(),d=Ah(),h=r_(t,{relative:o});return S.useCallback(p=>{if(J9(p,s)){p.preventDefault();let m=r!==void 0?r:hh(d)===hh(h);c(t,{replace:m,state:a,preventScrollReset:i,relative:o,viewTransition:l})}},[d,c,h,r,a,s,t,i,o,l])}function o_(t){let n=S.useRef(Uj(t)),s=S.useRef(!1),r=Ah(),a=S.useMemo(()=>X9(r.search,s.current?null:n.current),[r.search]),i=jn(),o=S.useCallback((l,c)=>{const d=Uj(typeof l=="function"?l(a):l);s.current=!0,i("?"+d,c)},[i,a]);return[a,o]}const gV="modulepreload",xV=function(t){return"/"+t},j4={}
68,$i=function(n,s,r){let a=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));a=Promise.allSettled(s.map(c=>{if(c=xV(c),c in j4)return;j4[c]=!0;const d=c.endsWith(".css"),h=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${h}`))return;const p=document.createElement("link");if(p.rel=d?"stylesheet":gV,d||(p.as="script"),p.crossOrigin="",p.href=c,l&&p.setAttribute("nonce",l),document.head.appendChild(p),d)return new Promise((m,u)=>{p.addEventListener("load",m),p.addEventListener("error",()=>u(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return a.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return n().catch(i)})},sh={...$C},{version:l_,render:yV,hydrate:bV}=sh,c_=Number((l_||"").split(".")[0])>17,d_=Number((l_||"").split(".")[0])>18;function vV(t,n,s={}){const{useLegacyRender:r}=s;if(r||!c_)yV(t,n);else if(d_)$i(()=>import("./client-B-aAti3W.js").then(a=>a.c),[]).then(({default:{createRoot:a}})=>{const i=a(n);Ue.startTransition(()=>{i.render(t)})});else{sh.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint=!0;const{createRoot:a}=sh;if(!a)throw new Error("createRoot not found");const i=a(n);sh.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint=!1,Ue.startTransition(()=>{i.render(t)})}}function wV(t,n,s={}){const{useLegacyRender:r}=s;if(r||!c_)bV(t,n);else if(d_)$i(()=>import("./client-B-aAti3W.js").then(a=>a.c),[]).then(({default:{hydrateRoot:a}})=>{Ue.startTransition(()=>{a(n,t)})});else{sh.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint=!0;const{hydrateRoot:a}=sh;if(!a)throw new Error("hydrateRoot not found");Ue.startTransition(()=>{a(n,t),sh.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint=!1})}}function jV(t){return document.readyState==="loading"?new Promise(n=>{document.addEventListener("DOMContentLoaded",()=>n(t))}):Promise.resolve(t)}function kV(t){try{return JSON.parse(t||"{}")}catch(n){return console.error("[SSG] On state deserialization -",n,t),{}}}function k4(t,n){return!t||!n?t||n||"":(t[t.length-1]==="/"&&(t=t.substring(0,t.length-1)),n[0]!=="/"&&(n=`/${n}`),t+n)}function NV(t,n){if(t===n)return"/";const s=SV(n);return t.startsWith(s)?t.slice(s.length-1):t}function SV(t){return t[t.length-1]!=="/"?`${t}/`:t}function N4(t){return t[0]!=="/"?`/${t}`:t}function h_(t,n,s=[]){return t.map((r,a)=>{const i=[...s,String(a)],o=typeof r.id=="string"?r.id:i.join("-");if(r.id=o,AV(r))return{...r,...n(r),id:o};{const l={...r,...n(r),id:o,children:void 0};return r.children&&(l.children=h_(r.children,n,i)),l}})}function AV(t){return t.index===!0}function ut(t){return e.jsx(Gx,{...t})}function DV(t,n,s={}){const{transformState:r,rootContainer:a="#root",ssrWhenDev:i,getStyleCollector:o=null}=s,l=typeof window<"u",c=t.basename??"/",{v7_startTransition:d=!0,...h}=t.future??{};async function p(u=!1,y){const g=t.customCreateRouter??tV,w=u?g(h_(t.routes,m),{basename:c,future:h}):void 0,b=[],j=u?()=>{}:C=>b.push(C),N=()=>Promise.all(b.map(C=>C())),A={isClient:l,routes:t.routes,router:w,routerOptions:t,onSSRAppRendered:j,triggerOnSSRAppRendered:N,initialState:{},transformState:r,routePath:y,base:c,getStyleCollector:o,routerType:"remix"};u&&(await jV(),A.initialState=(r==null?void 0:r(window.__INITIAL_STATE__||{}))||kV(window.__INITIAL_STATE__)),await(n==null?void 0:n(A));const E=A.initialState;return{...A,initialState:E}}return l&&(async()=>{var N;const u=typeof a=="string"?document.querySelector(a):a;if(!u){typeof $jsdom>"u"&&console.warn("[vite-react-ssg] Root container not found.");return}const y=(N=kc(t.routes,window.location,c))==null?void 0:N.filter(A=>A.route.lazy);y&&(y==null?void 0:y.length)>0&&await Promise.all(y.map(async A=>{const E=await A.route.lazy();Object.assign(A.route,{...E,lazy:void 0})}));const g=await p(!0);window.__VITE_REACT_SSG_CONTEXT__=g;const{router:w}=g,b=e.jsx(gu,{children:e.jsx(dV,{router:w,future:{v7_startTransition:d}})});document.querySelector("[data-server-rendered=true]")!==null?wV(b,u,s):vV(b,u,s)})(),p;function m(u){if(!(document.querySelector("[data-server-rendered=true]")!==null))return u;const g=async({request:w})=>{var b;{if(!window.__VITE_REACT_SSG_STATIC_LOADER_MANIFEST__){const F=k4(c,`static-loader-data-manifest-${window.__VITE_REACT_SSG_HASH__}.json`);window.__VITE_REACT_SSG_STATIC_LOADER_MANIFEST__=await(await fetch(N4(F))).json()}const{url:j}=w;let{pathname:N}=new URL(j);c!=="/"&&(N=NV(N,c));const A=window.__VITE_REACT_SSG_STATIC_LOADER_MANIFEST__,E=A==null?void 0:A[N];if(!E)return null;if(window.__VITE_REACT_SSG_STATIC_LOADER_DATA__||(window.__VITE_REACT_SSG_STATIC_LOADER_DATA__={}),!window.__VITE_REACT_SSG_STATIC_LOADER_DATA__[N]){const F=k4(c,E);window.__VITE_REACT_SSG_STATIC_LOADER_DATA__[N]=await(await fetch(N4(F))).json()}return((b=window.__VITE_REACT_SSG_STATIC_LOADER_DATA__[N])==null?void 0:b[u.id])??null}};return u.loader=g,u}}var ng=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},uh=typeof window>"u"||"Deno"in globalThis;function Fi(){}function IV(t,n){return typeof t=="function"?t(n):t}function qj(t){return typeof t=="number"&&t>=0&&t!==1/0}
68function u_(t,n){return Math.max(t+(n||0)-Date.now(),0)}function Fu(t,n){return typeof t=="function"?t(n):t}function uo(t,n){return typeof t=="function"?t(n):t}function S4(t,n){const{type:s="all",exact:r,fetchStatus:a,predicate:i,queryKey:o,stale:l}=t;if(o){if(r){if(n.queryHash!==A1(o,n.options))return!1}else if(!_f(n.queryKey,o))return!1}if(s!=="all"){const c=n.isActive();if(s==="active"&&!c||s==="inactive"&&c)return!1}return!(typeof l=="boolean"&&n.isStale()!==l||a&&a!==n.state.fetchStatus||i&&!i(n))}function A4(t,n){const{exact:s,status:r,predicate:a,mutationKey:i}=t;if(i){if(!n.options.mutationKey)return!1;if(s){if(Cf(n.options.mutationKey)!==Cf(i))return!1}else if(!_f(n.options.mutationKey,i))return!1}return!(r&&n.state.status!==r||a&&!a(n))}function A1(t,n){return((n==null?void 0:n.queryKeyHashFn)||Cf)(t)}function Cf(t){return JSON.stringify(t,(n,s)=>$j(s)?Object.keys(s).sort().reduce((r,a)=>(r[a]=s[a],r),{}):s)}function _f(t,n){return t===n?!0:typeof t!=typeof n?!1:t&&n&&typeof t=="object"&&typeof n=="object"?!Object.keys(n).some(s=>!_f(t[s],n[s])):!1}function p_(t,n){if(t===n)return t;const s=D4(t)&&D4(n);if(s||$j(t)&&$j(n)){const r=s?t:Object.keys(t),a=r.length,i=s?n:Object.keys(n),o=i.length,l=s?[]:{};let c=0;for(let d=0;d<o;d++){const h=s?d:i[d];(!s&&r.includes(h)||s)&&t[h]===void 0&&n[h]===void 0?(l[h]=void 0,c++):(l[h]=p_(t[h],n[h]),l[h]===t[h]&&t[h]!==void 0&&c++)}return a===o&&c===a?t:l}return n}function Hj(t,n){if(!n||Object.keys(t).length!==Object.keys(n).length)return!1;for(const s in t)if(t[s]!==n[s])return!1;return!0}function D4(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function $j(t){if(!I4(t))return!1;const n=t.constructor;if(n===void 0)return!0;const s=n.prototype;return!(!I4(s)||!s.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(t)!==Object.prototype)}function I4(t){return Object.prototype.toString.call(t)==="[object Object]"}function CV(t){return new Promise(n=>{setTimeout(n,t)})}function Wj(t,n,s){return typeof s.structuralSharing=="function"?s.structuralSharing(t,n):s.structuralSharing!==!1?p_(t,n):n}function _V(t,n,s=0){const r=[...t,n];return s&&r.length>s?r.slice(1):r}function TV(t,n,s=0){const r=[n,...t];return s&&r.length>s?r.slice(0,-1):r}var D1=Symbol();function m_(t,n){return!t.queryFn&&(n!=null&&n.initialPromise)?()=>n.initialPromise:!t.queryFn||t.queryFn===D1?()=>Promise.reject(new Error(`Missing queryFn: '${t.queryHash}'`)):t.queryFn}var Kd,Ac,Xu,x6,PV=(x6=class extends ng{constructor(){super();sn(this,Kd);sn(this,Ac);sn(this,Xu);St(this,Xu,n=>{if(!uh&&window.addEventListener){const s=()=>n();return window.addEventListener("visibilitychange",s,!1),()=>{window.removeEventListener("visibilitychange",s)}}})}onSubscribe(){xe(this,Ac)||this.setEventListener(xe(this,Xu))}onUnsubscribe(){var n;this.hasListeners()||((n=xe(this,Ac))==null||n.call(this),St(this,Ac,void 0))}setEventListener(n){var s;St(this,Xu,n),(s=xe(this,Ac))==null||s.call(this),St(this,Ac,n(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(n){xe(this,Kd)!==n&&(St(this,Kd,n),this.onFocus())}onFocus(){const n=this.isFocused();this.listeners.forEach(s=>{s(n)})}isFocused(){var n;return typeof xe(this,Kd)=="boolean"?xe(this,Kd):((n=globalThis.document)==null?void 0:n.visibilityState)!=="hidden"}},Kd=new WeakMap,Ac=new WeakMap,Xu=new WeakMap,x6),I1=new PV,Zu,Dc,ep,y6,EV=(y6=class extends ng{constructor(){super();sn(this,Zu,!0);sn(this,Dc);sn(this,ep);St(this,ep,n=>{if(!uh&&window.addEventListener){const s=()=>n(!0),r=()=>n(!1);return window.addEventListener("online",s,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",s),window.removeEventListener("offline",r)}}})}onSubscribe(){xe(this,Dc)||this.setEventListener(xe(this,ep))}onUnsubscribe(){var n;this.hasListeners()||((n=xe(this,Dc))==null||n.call(this),St(this,Dc,void 0))}setEventListener(n){var s;St(this,ep,n),(s=xe(this,Dc))==null||s.call(this),St(this,Dc,n(this.setOnline.bind(this)))}setOnline(n){xe(this,Zu)!==n&&(St(this,Zu,n),this.listeners.forEach(r=>{r(n)}))}isOnline(){return xe(this,Zu)}},Zu=new WeakMap,Dc=new WeakMap,ep=new WeakMap,y6),Xy=new EV;function Gj(){let t,n;const s=new Promise((a,i)=>{t=a,n=i});s.status="pending",s.catch(()=>{});function r(a){Object.assign(s,a),delete s.resolve,delete s.reject}return s.resolve=a=>{r({status:"fulfilled",value:a}),t(a)},s.reject=a=>{r({status:"rejected",reason:a}),n(a)},s}function LV(t){return Math.min(1e3*2**t,3e4)}function f_(t){return(t??"online")==="online"?Xy.isOnline():!0}
68var g_=class extends Error{constructor(t){super("CancelledError"),this.revert=t==null?void 0:t.revert,this.silent=t==null?void 0:t.silent}};function Nv(t){return t instanceof g_}function x_(t){let n=!1,s=0,r=!1,a;const i=Gj(),o=g=>{var w;r||(m(new g_(g)),(w=t.abort)==null||w.call(t))},l=()=>{n=!0},c=()=>{n=!1},d=()=>I1.isFocused()&&(t.networkMode==="always"||Xy.isOnline())&&t.canRun(),h=()=>f_(t.networkMode)&&t.canRun(),p=g=>{var w;r||(r=!0,(w=t.onSuccess)==null||w.call(t,g),a==null||a(),i.resolve(g))},m=g=>{var w;r||(r=!0,(w=t.onError)==null||w.call(t,g),a==null||a(),i.reject(g))},u=()=>new Promise(g=>{var w;a=b=>{(r||d())&&g(b)},(w=t.onPause)==null||w.call(t)}).then(()=>{var g;a=void 0,r||(g=t.onContinue)==null||g.call(t)}),y=()=>{if(r)return;let g;const w=s===0?t.initialPromise:void 0;try{g=w??t.fn()}catch(b){g=Promise.reject(b)}Promise.resolve(g).then(p).catch(b=>{var C;if(r)return;const j=t.retry??(uh?0:3),N=t.retryDelay??LV,A=typeof N=="function"?N(s,b):N,E=j===!0||typeof j=="number"&&s<j||typeof j=="function"&&j(s,b);if(n||!E){m(b);return}s++,(C=t.onFail)==null||C.call(t,s,b),CV(A).then(()=>d()?void 0:u()).then(()=>{n?m(b):y()})})};return{promise:i,cancel:o,continue:()=>(a==null||a(),i),cancelRetry:l,continueRetry:c,canStart:h,start:()=>(h()?y():u().then(y),i)}}function MV(){let t=[],n=0,s=l=>{l()},r=l=>{l()},a=l=>setTimeout(l,0);const i=l=>{n?t.push(l):a(()=>{s(l)})},o=()=>{const l=t;t=[],l.length&&a(()=>{r(()=>{l.forEach(c=>{s(c)})})})};return{batch:l=>{let c;n++;try{c=l()}finally{n--,n||o()}return c},batchCalls:l=>(...c)=>{i(()=>{l(...c)})},schedule:i,setNotifyFunction:l=>{s=l},setBatchNotifyFunction:l=>{r=l},setScheduler:l=>{a=l}}}var Br=MV(),Qd,b6,y_=(b6=class{constructor(){sn(this,Qd)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),qj(this.gcTime)&&St(this,Qd,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(uh?1/0:5*60*1e3))}clearGcTimeout(){xe(this,Qd)&&(clearTimeout(xe(this,Qd)),St(this,Qd,void 0))}},Qd=new WeakMap,b6),tp,np,Oi,aa,Wf,Yd,io,bl,v6,RV=(v6=class extends y_{constructor(n){super();sn(this,io);sn(this,tp);sn(this,np);sn(this,Oi);sn(this,aa);sn(this,Wf);sn(this,Yd);St(this,Yd,!1),St(this,Wf,n.defaultOptions),this.setOptions(n.options),this.observers=[],St(this,Oi,n.cache),this.queryKey=n.queryKey,this.queryHash=n.queryHash,St(this,tp,OV(this.options)),this.state=n.state??xe(this,tp),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var n;return(n=xe(this,aa))==null?void 0:n.promise}setOptions(n){this.options={...xe(this,Wf),...n},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&xe(this,Oi).remove(this)}setData(n,s){const r=Wj(this.state.data,n,this.options);return Ln(this,io,bl).call(this,{data:r,type:"success",dataUpdatedAt:s==null?void 0:s.updatedAt,manual:s==null?void 0:s.manual}),r}setState(n,s){Ln(this,io,bl).call(this,{type:"setState",state:n,setStateOptions:s})}cancel(n){var r,a;const s=(r=xe(this,aa))==null?void 0:r.promise;return(a=xe(this,aa))==null||a.cancel(n),s?s.then(Fi).catch(Fi):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(xe(this,tp))}isActive(){return this.observers.some(n=>uo(n.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===D1||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStale(){return this.state.isInvalidated?!0:this.getObserversCount()>0?this.observers.some(n=>n.getCurrentResult().isStale):this.state.data===void 0}isStaleByTime(n=0){return this.state.isInvalidated||this.state.data===void 0||!u_(this.state.dataUpdatedAt,n)}onFocus(){var s;const n=this.observers.find(r=>r.shouldFetchOnWindowFocus());n==null||n.refetch({cancelRefetch:!1}),(s=xe(this,aa))==null||s.continue()}onOnline(){var s;const n=this.observers.find(r=>r.shouldFetchOnReconnect());n==null||n.refetch({cancelRefetch:!1}),(s=xe(this,aa))==null||s.continue()}addObserver(n){this.observers.includes(n)||(this.observers.push(n),this.clearGcTimeout(),xe(this,Oi).notify({type:"observerAdded",query:this,observer:n}))}removeObserver(n){this.observers.includes(n)&&(this.observers=this.observers.filter(s=>s!==n),this.observers.length||(xe(this,aa)&&(xe(this,Yd)?xe(this,aa).cancel({revert:!0}):xe(this,aa).cancelRetry()),this.scheduleGc()),xe(this,Oi).notify({type:"observerRemoved",query:this,observer:n}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Ln(this,io,bl).call(this,{type:"invalidate"})}fetch(n,s){var c,d,h;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(s!=null&&s.cancelRefetch))this.cancel({silent:!0});else if(xe(this,aa))return xe(this,aa).continueRetry(),xe(this,aa).promise}if(n&&this.setOptions(n),!this.options.queryFn){const p=this.observers.find(m=>m.options.queryFn);p&&this.setOptions(p.options)}const r=new AbortController,a=p=>{Object.defineProperty(p,"signal",{enumerable:!0,get:()=>(St(this,Yd,!0),r.signal)}
68)},i=()=>{const p=m_(this.options,s),m={queryKey:this.queryKey,meta:this.meta};return a(m),St(this,Yd,!1),this.options.persister?this.options.persister(p,m,this):p(m)},o={fetchOptions:s,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:i};a(o),(c=this.options.behavior)==null||c.onFetch(o,this),St(this,np,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((d=o.fetchOptions)==null?void 0:d.meta))&&Ln(this,io,bl).call(this,{type:"fetch",meta:(h=o.fetchOptions)==null?void 0:h.meta});const l=p=>{var m,u,y,g;Nv(p)&&p.silent||Ln(this,io,bl).call(this,{type:"error",error:p}),Nv(p)||((u=(m=xe(this,Oi).config).onError)==null||u.call(m,p,this),(g=(y=xe(this,Oi).config).onSettled)==null||g.call(y,this.state.data,p,this)),this.scheduleGc()};return St(this,aa,x_({initialPromise:s==null?void 0:s.initialPromise,fn:o.fetchFn,abort:r.abort.bind(r),onSuccess:p=>{var m,u,y,g;if(p===void 0){l(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(p)}catch(w){l(w);return}(u=(m=xe(this,Oi).config).onSuccess)==null||u.call(m,p,this),(g=(y=xe(this,Oi).config).onSettled)==null||g.call(y,p,this.state.error,this),this.scheduleGc()},onError:l,onFail:(p,m)=>{Ln(this,io,bl).call(this,{type:"failed",failureCount:p,error:m})},onPause:()=>{Ln(this,io,bl).call(this,{type:"pause"})},onContinue:()=>{Ln(this,io,bl).call(this,{type:"continue"})},retry:o.options.retry,retryDelay:o.options.retryDelay,networkMode:o.options.networkMode,canRun:()=>!0})),xe(this,aa).start()}},tp=new WeakMap,np=new WeakMap,Oi=new WeakMap,aa=new WeakMap,Wf=new WeakMap,Yd=new WeakMap,io=new WeakSet,bl=function(n){const s=r=>{switch(n.type){case"failed":return{...r,fetchFailureCount:n.failureCount,fetchFailureReason:n.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...b_(r.data,this.options),fetchMeta:n.meta??null};case"success":return{...r,data:n.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:n.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!n.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const a=n.error;return Nv(a)&&a.revert&&xe(this,np)?{...xe(this,np),fetchStatus:"idle"}:{...r,error:a,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:a,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...n.state}}};this.state=s(this.state),Br.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),xe(this,Oi).notify({query:this,type:"updated",action:n})})},v6);function b_(t,n){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:f_(n.networkMode)?"fetching":"paused",...t===void 0&&{error:null,status:"pending"}}}function OV(t){const n=typeof t.initialData=="function"?t.initialData():t.initialData,s=n!==void 0,r=s?typeof t.initialDataUpdatedAt=="function"?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:n,dataUpdateCount:0,dataUpdatedAt:s?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}var Fo,w6,FV=(w6=class extends ng{constructor(n={}){super();sn(this,Fo);this.config=n,St(this,Fo,new Map)}build(n,s,r){const a=s.queryKey,i=s.queryHash??A1(a,s);let o=this.get(i);return o||(o=new RV({cache:this,queryKey:a,queryHash:i,options:n.defaultQueryOptions(s),state:r,defaultOptions:n.getQueryDefaults(a)}),this.add(o)),o}add(n){xe(this,Fo).has(n.queryHash)||(xe(this,Fo).set(n.queryHash,n),this.notify({type:"added",query:n}))}remove(n){const s=xe(this,Fo).get(n.queryHash);s&&(n.destroy(),s===n&&xe(this,Fo).delete(n.queryHash),this.notify({type:"removed",query:n}))}clear(){Br.batch(()=>{this.getAll().forEach(n=>{this.remove(n)})})}get(n){return xe(this,Fo).get(n)}getAll(){return[...xe(this,Fo).values()]}find(n){const s={exact:!0,...n};return this.getAll().find(r=>S4(s,r))}findAll(n={}){const s=this.getAll();return Object.keys(n).length>0?s.filter(r=>S4(n,r)):s}notify(n){Br.batch(()=>
68{this.listeners.forEach(s=>{s(n)})})}onFocus(){Br.batch(()=>{this.getAll().forEach(n=>{n.onFocus()})})}onOnline(){Br.batch(()=>{this.getAll().forEach(n=>{n.onOnline()})})}},Fo=new WeakMap,w6),Vo,wa,Jd,Bo,mc,j6,VV=(j6=class extends y_{constructor(n){super();sn(this,Bo);sn(this,Vo);sn(this,wa);sn(this,Jd);this.mutationId=n.mutationId,St(this,wa,n.mutationCache),St(this,Vo,[]),this.state=n.state||BV(),this.setOptions(n.options),this.scheduleGc()}setOptions(n){this.options=n,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(n){xe(this,Vo).includes(n)||(xe(this,Vo).push(n),this.clearGcTimeout(),xe(this,wa).notify({type:"observerAdded",mutation:this,observer:n}))}removeObserver(n){St(this,Vo,xe(this,Vo).filter(s=>s!==n)),this.scheduleGc(),xe(this,wa).notify({type:"observerRemoved",mutation:this,observer:n})}optionalRemove(){xe(this,Vo).length||(this.state.status==="pending"?this.scheduleGc():xe(this,wa).remove(this))}continue(){var n;return((n=xe(this,Jd))==null?void 0:n.continue())??this.execute(this.state.variables)}async execute(n){var a,i,o,l,c,d,h,p,m,u,y,g,w,b,j,N,A,E,C,F;St(this,Jd,x_({fn:()=>this.options.mutationFn?this.options.mutationFn(n):Promise.reject(new Error("No mutationFn found")),onFail:(O,L)=>{Ln(this,Bo,mc).call(this,{type:"failed",failureCount:O,error:L})},onPause:()=>{Ln(this,Bo,mc).call(this,{type:"pause"})},onContinue:()=>{Ln(this,Bo,mc).call(this,{type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>xe(this,wa).canRun(this)}));const s=this.state.status==="pending",r=!xe(this,Jd).canStart();try{if(!s){Ln(this,Bo,mc).call(this,{type:"pending",variables:n,isPaused:r}),await((i=(a=xe(this,wa).config).onMutate)==null?void 0:i.call(a,n,this));const L=await((l=(o=this.options).onMutate)==null?void 0:l.call(o,n));L!==this.state.context&&Ln(this,Bo,mc).call(this,{type:"pending",context:L,variables:n,isPaused:r})}const O=await xe(this,Jd).start();return await((d=(c=xe(this,wa).config).onSuccess)==null?void 0:d.call(c,O,n,this.state.context,this)),await((p=(h=this.options).onSuccess)==null?void 0:p.call(h,O,n,this.state.context)),await((u=(m=xe(this,wa).config).onSettled)==null?void 0:u.call(m,O,null,this.state.variables,this.state.context,this)),await((g=(y=this.options).onSettled)==null?void 0:g.call(y,O,null,n,this.state.context)),Ln(this,Bo,mc).call(this,{type:"success",data:O}),O}catch(O){try{throw await((b=(w=xe(this,wa).config).onError)==null?void 0:b.call(w,O,n,this.state.context,this)),await((N=(j=this.options).onError)==null?void 0:N.call(j,O,n,this.state.context)),await((E=(A=xe(this,wa).config).onSettled)==null?void 0:E.call(A,void 0,O,this.state.variables,this.state.context,this)),await((F=(C=this.options).onSettled)==null?void 0:F.call(C,void 0,O,n,this.state.context)),O}finally{Ln(this,Bo,mc).call(this,{type:"error",error:O})}}finally{xe(this,wa).runNext(this)}}},Vo=new WeakMap,wa=new WeakMap,Jd=new WeakMap,Bo=new WeakSet,mc=function(n){const s=r=>{switch(n.type){case"failed":return{...r,failureCount:n.failureCount,failureReason:n.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:n.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:n.isPaused,status:"pending",variables:n.variables,submittedAt:Date.now()};case"success":return{...r,data:n.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:n.error,failureCount:r.failureCount+1,failureReason:n.error,isPaused:!1,status:"error"}}};this.state=s(this.state),Br.batch(()=>{xe(this,Vo).forEach(r=>{r.onMutationUpdate(n)}),xe(this,wa).notify({mutation:this,type:"updated",action:n})})},j6);function BV(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var mi,Gf,k6,zV=(k6=class extends ng{constructor(n={}){super();sn(this,mi);sn(this,Gf);this.config=n,St(this,mi,new Map),St(this,Gf,Date.now())}build(n,s,r){const a=new VV({mutationCache:this,mutationId:++qg(this,Gf)._,options:n.defaultMutationOptions(s),state:r});return this.add(a),a}add(n){const s=cx(n),r=xe(this,mi).get(s)??[];r.push(n),xe(this,mi).set(s,r),this.notify({type:"added",mutation:n})}remove(n){var r;const s=cx(n);if(xe(this,mi).has(s)){const a=(r=xe(this,mi).get(s))==null?void 0:r.filter(i=>i!==n);a&&(a.length===0?xe(this,mi).delete(s):xe(this,mi).set(s,a))}this.notify({type:"removed",mutation:n})}canRun(n){var r;const s=(r=xe(this,mi).get(cx(n)))==null?void 0:r.find(a=>a.state.status==="pending");return!s||s===n}runNext(n){var r;const s=(r=xe(this,mi).get(cx(n)))==null?void 0:r.find(a=>
68a!==n&&a.state.isPaused);return(s==null?void 0:s.continue())??Promise.resolve()}clear(){Br.batch(()=>{this.getAll().forEach(n=>{this.remove(n)})})}getAll(){return[...xe(this,mi).values()].flat()}find(n){const s={exact:!0,...n};return this.getAll().find(r=>A4(s,r))}findAll(n={}){return this.getAll().filter(s=>A4(n,s))}notify(n){Br.batch(()=>{this.listeners.forEach(s=>{s(n)})})}resumePausedMutations(){const n=this.getAll().filter(s=>s.state.isPaused);return Br.batch(()=>Promise.all(n.map(s=>s.continue().catch(Fi))))}},mi=new WeakMap,Gf=new WeakMap,k6);function cx(t){var n;return((n=t.options.scope)==null?void 0:n.id)??String(t.mutationId)}function C4(t){return{onFetch:(n,s)=>{var h,p,m,u,y;const r=n.options,a=(m=(p=(h=n.fetchOptions)==null?void 0:h.meta)==null?void 0:p.fetchMore)==null?void 0:m.direction,i=((u=n.state.data)==null?void 0:u.pages)||[],o=((y=n.state.data)==null?void 0:y.pageParams)||[];let l={pages:[],pageParams:[]},c=0;const d=async()=>{let g=!1;const w=N=>{Object.defineProperty(N,"signal",{enumerable:!0,get:()=>(n.signal.aborted?g=!0:n.signal.addEventListener("abort",()=>{g=!0}),n.signal)})},b=m_(n.options,n.fetchOptions),j=async(N,A,E)=>{if(g)return Promise.reject();if(A==null&&N.pages.length)return Promise.resolve(N);const C={queryKey:n.queryKey,pageParam:A,direction:E?"backward":"forward",meta:n.options.meta};w(C);const F=await b(C),{maxPages:O}=n.options,L=E?TV:_V;return{pages:L(N.pages,F,O),pageParams:L(N.pageParams,A,O)}};if(a&&i.length){const N=a==="backward",A=N?UV:_4,E={pages:i,pageParams:o},C=A(r,E);l=await j(E,C,N)}else{const N=t??i.length;do{const A=c===0?o[0]??r.initialPageParam:_4(r,l);if(c>0&&A==null)break;l=await j(l,A),c++}while(c<N)}return l};n.options.persister?n.fetchFn=()=>{var g,w;return(w=(g=n.options).persister)==null?void 0:w.call(g,d,{queryKey:n.queryKey,meta:n.options.meta,signal:n.signal},s)}:n.fetchFn=d}}}function _4(t,{pages:n,pageParams:s}){const r=n.length-1;return n.length>0?t.getNextPageParam(n[r],n,s[r],s):void 0}function UV(t,{pages:n,pageParams:s}){var r;return n.length>0?(r=t.getPreviousPageParam)==null?void 0:r.call(t,n[0],n,s[0],s):void 0}var Ks,Ic,Cc,sp,rp,_c,ap,ip,N6,qV=(N6=class{constructor(t={}){sn(this,Ks);sn(this,Ic);sn(this,Cc);sn(this,sp);sn(this,rp);sn(this,_c);sn(this,ap);sn(this,ip);St(this,Ks,t.queryCache||new FV),St(this,Ic,t.mutationCache||new zV),St(this,Cc,t.defaultOptions||{}),St(this,sp,new Map),St(this,rp,new Map),St(this,_c,0)}mount(){qg(this,_c)._++,xe(this,_c)===1&&(St(this,ap,I1.subscribe(async t=>{t&&(await this.resumePausedMutations(),xe(this,Ks).onFocus())})),St(this,ip,Xy.subscribe(async t=>{t&&(await this.resumePausedMutations(),xe(this,Ks).onOnline())})))}unmount(){var t,n;qg(this,_c)._--,xe(this,_c)===0&&((t=xe(this,ap))==null||t.call(this),St(this,ap,void 0),(n=xe(this,ip))==null||n.call(this),St(this,ip,void 0))}isFetching(t){return xe(this,Ks).findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return xe(this,Ic).findAll({...t,status:"pending"}).length}getQueryData(t){var s;const n=this.defaultQueryOptions({queryKey:t});return(s=xe(this,Ks).get(n.queryHash))==null?void 0:s.state.data}ensureQueryData(t){const n=this.getQueryData(t.queryKey);if(n===void 0)return this.fetchQuery(t);{const s=this.defaultQueryOptions(t),r=xe(this,Ks).build(this,s);return t.revalidateIfStale&&r.isStaleByTime(Fu(s.staleTime,r))&&this.prefetchQuery(s),Promise.resolve(n)}}getQueriesData(t){return xe(this,Ks).findAll(t).map(({queryKey:n,state:s})=>{const r=s.data;return[n,r]})}setQueryData(t,n,s){const r=this.defaultQueryOptions({queryKey:t}),a=xe(this,Ks).get(r.queryHash),i=a==null?void 0:a.state.data,o=IV(n,i);if(o!==void 0)return xe(this,Ks).build(this,r).setData(o,{...s,manual:!0})}setQueriesData(t,n,s){return Br.batch(()=>xe(this,Ks).findAll(t).map(({queryKey:r})=>[r,this.setQueryData(r,n,s)]))}getQueryState(t){var s;const n=this.defaultQueryOptions({queryKey:t});return(s=xe(this,Ks).get(n.queryHash))==null?void 0:s.state}removeQueries(t){const n=xe(this,Ks);Br.batch(()=>{n.findAll(t).forEach(s=>{n.remove(s)})})}resetQueries(t,n){const s=xe(this,Ks),r={type:"active",...t};return Br.batch(()=>(s.findAll(t).forEach(a=>{a.reset()}),this.refetchQueries(r,n)))}cancelQueries(t={},n={}){const s={revert:!0,...n},r=Br.batch(()=>xe(this,Ks).findAll(t).map(a=>a.cancel(s)));return Promise.all(r).then(Fi).catch(Fi)}invalidateQueries(t={},n={}){return Br.batch(()=>
68{if(xe(this,Ks).findAll(t).forEach(r=>{r.invalidate()}),t.refetchType==="none")return Promise.resolve();const s={...t,type:t.refetchType??t.type??"active"};return this.refetchQueries(s,n)})}refetchQueries(t={},n){const s={...n,cancelRefetch:(n==null?void 0:n.cancelRefetch)??!0},r=Br.batch(()=>xe(this,Ks).findAll(t).filter(a=>!a.isDisabled()).map(a=>{let i=a.fetch(void 0,s);return s.throwOnError||(i=i.catch(Fi)),a.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(r).then(Fi)}fetchQuery(t){const n=this.defaultQueryOptions(t);n.retry===void 0&&(n.retry=!1);const s=xe(this,Ks).build(this,n);return s.isStaleByTime(Fu(n.staleTime,s))?s.fetch(n):Promise.resolve(s.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(Fi).catch(Fi)}fetchInfiniteQuery(t){return t.behavior=C4(t.pages),this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(Fi).catch(Fi)}ensureInfiniteQueryData(t){return t.behavior=C4(t.pages),this.ensureQueryData(t)}resumePausedMutations(){return Xy.isOnline()?xe(this,Ic).resumePausedMutations():Promise.resolve()}getQueryCache(){return xe(this,Ks)}getMutationCache(){return xe(this,Ic)}getDefaultOptions(){return xe(this,Cc)}setDefaultOptions(t){St(this,Cc,t)}setQueryDefaults(t,n){xe(this,sp).set(Cf(t),{queryKey:t,defaultOptions:n})}getQueryDefaults(t){const n=[...xe(this,sp).values()];let s={};return n.forEach(r=>{_f(t,r.queryKey)&&(s={...s,...r.defaultOptions})}),s}setMutationDefaults(t,n){xe(this,rp).set(Cf(t),{mutationKey:t,defaultOptions:n})}getMutationDefaults(t){const n=[...xe(this,rp).values()];let s={};return n.forEach(r=>{_f(t,r.mutationKey)&&(s={...s,...r.defaultOptions})}),s}defaultQueryOptions(t){if(t._defaulted)return t;const n={...xe(this,Cc).queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return n.queryHash||(n.queryHash=A1(n.queryKey,n)),n.refetchOnReconnect===void 0&&(n.refetchOnReconnect=n.networkMode!=="always"),n.throwOnError===void 0&&(n.throwOnError=!!n.suspense),!n.networkMode&&n.persister&&(n.networkMode="offlineFirst"),n.enabled!==!0&&n.queryFn===D1&&(n.enabled=!1),n}defaultMutationOptions(t){return t!=null&&t._defaulted?t:{...xe(this,Cc).mutations,...(t==null?void 0:t.mutationKey)&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){xe(this,Ks).clear(),xe(this,Ic).clear()}},Ks=new WeakMap,Ic=new WeakMap,Cc=new WeakMap,sp=new WeakMap,rp=new WeakMap,_c=new WeakMap,ap=new WeakMap,ip=new WeakMap,N6),Oa,Mn,Kf,ja,Xd,op,Tc,zo,Qf,lp,cp,Zd,eh,Pc,dp,Gn,Rm,Kj,Qj,Yj,Jj,Xj,Zj,e2,v_,S6,HV=(S6=class extends ng{constructor(n,s){super();sn(this,Gn);sn(this,Oa);sn(this,Mn);sn(this,Kf);sn(this,ja);sn(this,Xd);sn(this,op);sn(this,Tc);sn(this,zo);sn(this,Qf);sn(this,lp);sn(this,cp);sn(this,Zd);sn(this,eh);sn(this,Pc);sn(this,dp,new Set);this.options=s,St(this,Oa,n),St(this,zo,null),St(this,Tc,Gj()),this.options.experimental_prefetchInRender||xe(this,Tc).reject(new Error("experimental_prefetchInRender feature flag is not enabled")),this.bindMethods(),this.setOptions(s)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(xe(this,Mn).addObserver(this),T4(xe(this,Mn),this.options)?Ln(this,Gn,Rm).call(this):this.updateResult(),Ln(this,Gn,Jj).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return t2(xe(this,Mn),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return t2(xe(this,Mn),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,Ln(this,Gn,Xj).call(this),Ln(this,Gn,Zj).call(this),xe(this,Mn).removeObserver(this)}setOptions(n,s){const r=this.options,a=xe(this,Mn);if(this.options=xe(this,Oa).defaultQueryOptions(n),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof uo(this.options.enabled,xe(this,Mn))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");Ln(this,Gn,e2).call(this),xe(this,Mn).setOptions(this.options),r._defaulted&&!Hj(this.options,r)&&xe(this,Oa).getQueryCache().notify({type:"observerOptionsUpdated",query:xe(this,Mn),observer:this});const i=this.hasListeners();i&&P4(xe(this,Mn),a,this.options,r)&&Ln(this,Gn,Rm).call(this),this.updateResult(s),i&&(xe(this,Mn)!==a||uo(this.options.enabled,xe(this,Mn))!==uo(r.enabled,xe(this,Mn))||Fu(this.options.staleTime,xe(this,Mn))!==Fu(r.staleTime,xe(this,Mn))
68)&&Ln(this,Gn,Kj).call(this);const o=Ln(this,Gn,Qj).call(this);i&&(xe(this,Mn)!==a||uo(this.options.enabled,xe(this,Mn))!==uo(r.enabled,xe(this,Mn))||o!==xe(this,Pc))&&Ln(this,Gn,Yj).call(this,o)}getOptimisticResult(n){const s=xe(this,Oa).getQueryCache().build(xe(this,Oa),n),r=this.createResult(s,n);return WV(this,r)&&(St(this,ja,r),St(this,op,this.options),St(this,Xd,xe(this,Mn).state)),r}getCurrentResult(){return xe(this,ja)}trackResult(n,s){const r={};return Object.keys(n).forEach(a=>{Object.defineProperty(r,a,{configurable:!1,enumerable:!0,get:()=>(this.trackProp(a),s==null||s(a),n[a])})}),r}trackProp(n){xe(this,dp).add(n)}getCurrentQuery(){return xe(this,Mn)}refetch({...n}={}){return this.fetch({...n})}fetchOptimistic(n){const s=xe(this,Oa).defaultQueryOptions(n),r=xe(this,Oa).getQueryCache().build(xe(this,Oa),s);return r.fetch().then(()=>this.createResult(r,s))}fetch(n){return Ln(this,Gn,Rm).call(this,{...n,cancelRefetch:n.cancelRefetch??!0}).then(()=>(this.updateResult(),xe(this,ja)))}createResult(n,s){var O;const r=xe(this,Mn),a=this.options,i=xe(this,ja),o=xe(this,Xd),l=xe(this,op),d=n!==r?n.state:xe(this,Kf),{state:h}=n;let p={...h},m=!1,u;if(s._optimisticResults){const L=this.hasListeners(),W=!L&&T4(n,s),_=L&&P4(n,r,s,a);(W||_)&&(p={...p,...b_(h.data,n.options)}),s._optimisticResults==="isRestoring"&&(p.fetchStatus="idle")}let{error:y,errorUpdatedAt:g,status:w}=p;if(s.select&&p.data!==void 0)if(i&&p.data===(o==null?void 0:o.data)&&s.select===xe(this,Qf))u=xe(this,lp);else try{St(this,Qf,s.select),u=s.select(p.data),u=Wj(i==null?void 0:i.data,u,s),St(this,lp,u),St(this,zo,null)}catch(L){St(this,zo,L)}else u=p.data;if(s.placeholderData!==void 0&&u===void 0&&w==="pending"){let L;if(i!=null&&i.isPlaceholderData&&s.placeholderData===(l==null?void 0:l.placeholderData))L=i.data;else if(L=typeof s.placeholderData=="function"?s.placeholderData((O=xe(this,cp))==null?void 0:O.state.data,xe(this,cp)):s.placeholderData,s.select&&L!==void 0)try{L=s.select(L),St(this,zo,null)}catch(W){St(this,zo,W)}L!==void 0&&(w="success",u=Wj(i==null?void 0:i.data,L,s),m=!0)}xe(this,zo)&&(y=xe(this,zo),u=xe(this,lp),g=Date.now(),w="error");const b=p.fetchStatus==="fetching",j=w==="pending",N=w==="error",A=j&&b,E=u!==void 0,F={status:w,fetchStatus:p.fetchStatus,isPending:j,isSuccess:w==="success",isError:N,isInitialLoading:A,isLoading:A,data:u,dataUpdatedAt:p.dataUpdatedAt,error:y,errorUpdatedAt:g,failureCount:p.fetchFailureCount,failureReason:p.fetchFailureReason,errorUpdateCount:p.errorUpdateCount,isFetched:p.dataUpdateCount>0||p.errorUpdateCount>0,isFetchedAfterMount:p.dataUpdateCount>d.dataUpdateCount||p.errorUpdateCount>d.errorUpdateCount,isFetching:b,isRefetching:b&&!j,isLoadingError:N&&!E,isPaused:p.fetchStatus==="paused",isPlaceholderData:m,isRefetchError:N&&E,isStale:C1(n,s),refetch:this.refetch,promise:xe(this,Tc)};if(this.options.experimental_prefetchInRender){const L=P=>{F.status==="error"?P.reject(F.error):F.data!==void 0&&P.resolve(F.data)},W=()=>{const P=St(this,Tc,F.promise=Gj());L(P)},_=xe(this,Tc);switch(_.status){case"pending":n.queryHash===r.queryHash&&L(_);break;case"fulfilled":(F.status==="error"||F.data!==_.value)&&W();break;case"rejected":(F.status!=="error"||F.error!==_.reason)&&W();break}}return F}updateResult(n){const s=xe(this,ja),r=this.createResult(xe(this,Mn),this.options);if(St(this,Xd,xe(this,Mn).state),St(this,op,this.options),xe(this,Xd).data!==void 0&&St(this,cp,xe(this,Mn)),Hj(r,s))return;St(this,ja,r);const a={},i=()=>{if(!s)return!0;const{notifyOnChangeProps:o}=this.options,l=typeof o=="function"?o():o;if(l==="all"||!l&&!xe(this,dp).size)return!0;const c=new Set(l??xe(this,dp));return this.options.throwOnError&&c.add("error"),Object.keys(xe(this,ja)).some(d=>{const h=d;return xe(this,ja)[h]!==s[h]&&c.has(h)})};(n==null?void 0:n.listeners)!==!1&&i()&&(a.listeners=!0),Ln(this,Gn,v_).call(this,{...a,...n})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&Ln(this,Gn,Jj).call(this)}},Oa=new WeakMap,Mn=new WeakMap,Kf=new WeakMap,ja=new WeakMap,Xd=new WeakMap,op=new WeakMap,Tc=new WeakMap,zo=new WeakMap,Qf=new WeakMap,lp=new WeakMap,cp=new WeakMap,Zd=new WeakMap,eh=new WeakMap,Pc=new WeakMap,dp=new WeakMap,Gn=new WeakSet,Rm=function(n){Ln(this,Gn,e2).call(this);let s=xe(this,Mn).fetch(this.options,n);return n!=null&&n.throwOnError||(s=s.catch(Fi)),s},Kj=function(){Ln(this,Gn,Xj).call(this);const n=Fu(this.options.staleTime,xe(this,Mn));if(uh||xe(this,ja).isStale||!qj(n))return;const r=u_(xe(this,ja).dataUpdatedAt,n)+1;St(this,Zd,setTimeout(()=>{xe(this,ja).isStale||this.updateResult()},r))},Qj=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(xe(this,Mn)):this.options.refetchInterval)??!1},Yj=function(n){Ln(this,Gn,Zj).call(this),St(this,Pc,n),!(uh||uo(this.options.enabled,xe(this,Mn))===!1||!qj(xe(this,Pc))||xe(this,Pc)===0)&&St(this,eh,setInterval(()=>
68{(this.options.refetchIntervalInBackground||I1.isFocused())&&Ln(this,Gn,Rm).call(this)},xe(this,Pc)))},Jj=function(){Ln(this,Gn,Kj).call(this),Ln(this,Gn,Yj).call(this,Ln(this,Gn,Qj).call(this))},Xj=function(){xe(this,Zd)&&(clearTimeout(xe(this,Zd)),St(this,Zd,void 0))},Zj=function(){xe(this,eh)&&(clearInterval(xe(this,eh)),St(this,eh,void 0))},e2=function(){const n=xe(this,Oa).getQueryCache().build(xe(this,Oa),this.options);if(n===xe(this,Mn))return;const s=xe(this,Mn);St(this,Mn,n),St(this,Kf,n.state),this.hasListeners()&&(s==null||s.removeObserver(this),n.addObserver(this))},v_=function(n){Br.batch(()=>{n.listeners&&this.listeners.forEach(s=>{s(xe(this,ja))}),xe(this,Oa).getQueryCache().notify({query:xe(this,Mn),type:"observerResultsUpdated"})})},S6);function $V(t,n){return uo(n.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&n.retryOnMount===!1)}function T4(t,n){return $V(t,n)||t.state.data!==void 0&&t2(t,n,n.refetchOnMount)}function t2(t,n,s){if(uo(n.enabled,t)!==!1){const r=typeof s=="function"?s(t):s;return r==="always"||r!==!1&&C1(t,n)}return!1}function P4(t,n,s,r){return(t!==n||uo(r.enabled,t)===!1)&&(!s.suspense||t.state.status!=="error")&&C1(t,s)}function C1(t,n){return uo(n.enabled,t)!==!1&&t.isStaleByTime(Fu(n.staleTime,t))}function WV(t,n){return!Hj(t.getCurrentResult(),n)}var w_=S.createContext(void 0),GV=t=>{const n=S.useContext(w_);if(!n)throw new Error("No QueryClient set, use QueryClientProvider to set one");return n},KV=({client:t,children:n})=>(S.useEffect(()=>(t.mount(),()=>{t.unmount()}),[t]),e.jsx(w_.Provider,{value:t,children:n})),j_=S.createContext(!1),QV=()=>S.useContext(j_);j_.Provider;function YV(){let t=!1;return{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t}}var JV=S.createContext(YV()),XV=()=>S.useContext(JV);function ZV(t,n){return typeof t=="function"?t(...n):!!t}function eB(){}var tB=(t,n)=>{(t.suspense||t.throwOnError)&&(n.isReset()||(t.retryOnMount=!1))},nB=t=>{S.useEffect(()=>{t.clearReset()},[t])},sB=({result:t,errorResetBoundary:n,throwOnError:s,query:r})=>t.isError&&!n.isReset()&&!t.isFetching&&r&&ZV(s,[t.error,r]),rB=t=>{t.suspense&&(t.staleTime===void 0&&(t.staleTime=1e3),typeof t.gcTime=="number"&&(t.gcTime=Math.max(t.gcTime,1e3)))},aB=(t,n)=>t.isLoading&&t.isFetching&&!n,iB=(t,n)=>(t==null?void 0:t.suspense)&&n.isPending,E4=(t,n,s)=>n.fetchOptimistic(t).catch(()=>{s.clearReset()});function oB(t,n,s){var h,p,m,u,y;const r=GV(),a=QV(),i=XV(),o=r.defaultQueryOptions(t);(p=(h=r.getDefaultOptions().queries)==null?void 0:h._experimental_beforeQuery)==null||p.call(h,o),o._optimisticResults=a?"isRestoring":"optimistic",rB(o),tB(o,i),nB(i);const l=!r.getQueryCache().get(o.queryHash),[c]=S.useState(()=>new n(r,o)),d=c.getOptimisticResult(o);if(S.useSyncExternalStore(S.useCallback(g=>{const w=a?()=>{}:c.subscribe(Br.batchCalls(g));return c.updateResult(),w},[c,a]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),S.useEffect(()=>{c.setOptions(o,{listeners:!1})},[o,c]),iB(o,d))throw E4(o,c,i);if(sB({result:d,errorResetBoundary:i,throwOnError:o.throwOnError,query:r.getQueryCache().get(o.queryHash)}))throw d.error;if((u=(m=r.getDefaultOptions().queries)==null?void 0:m._experimental_afterQuery)==null||u.call(m,o,d),o.experimental_prefetchInRender&&!uh&&aB(d,a)){const g=l?E4(o,c,i):(y=r.getQueryCache().get(o.queryHash))==null?void 0:y.promise;g==null||g.catch(eB).finally(()=>{c.updateResult()})}return o.notifyOnChangeProps?d:c.trackResult(d)}function k_(t,n){return oB(t,HV)}const lB=1,cB=1e6;let Sv=0;function dB(){return Sv=(Sv+1)%Number.MAX_SAFE_INTEGER,Sv.toString()}const Av=new Map,L4=t=>{if(Av.has(t))return;const n=setTimeout(()=>{Av.delete(t),Jm({type:"REMOVE_TOAST",toastId:t})},cB);Av.set(t,n)},hB=(t,n)=>{switch(n.type){case"ADD_TOAST":return{...t,toasts:[n.toast,...t.toasts].slice(0,lB)};case"UPDATE_TOAST":return{...t,toasts:t.toasts.map(s=>s.id===n.toast.id?{...s,...n.toast}:s)};case"DISMISS_TOAST":{const{toastId:s}=n;return s?L4(s):t.toasts.forEach(r=>{L4(r.id)}),{...t,toasts:t.toasts.map(r=>r.id===s||s===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return n.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(s=>s.id!==n.toastId)}}},ay=[];let iy={toasts:[]};function Jm(t){iy=hB(iy,t),ay.forEach(n=>
68{n(iy)})}function Pd({...t}){const n=dB(),s=a=>Jm({type:"UPDATE_TOAST",toast:{...a,id:n}}),r=()=>Jm({type:"DISMISS_TOAST",toastId:n});return Jm({type:"ADD_TOAST",toast:{...t,id:n,open:!0,onOpenChange:a=>{a||r()}}}),{id:n,dismiss:r,update:s}}function N_(){const[t,n]=S.useState(iy);return S.useEffect(()=>(ay.push(n),()=>{const s=ay.indexOf(n);s>-1&&ay.splice(s,1)}),[t]),{...t,toast:Pd,dismiss:s=>Jm({type:"DISMISS_TOAST",toastId:s})}}function vt(t,n,{checkForDefaultPrevented:s=!0}={}){return function(a){if(t==null||t(a),s===!1||!a.defaultPrevented)return n==null?void 0:n(a)}}function uB(t,n){typeof t=="function"?t(n):t!=null&&(t.current=n)}function V0(...t){return n=>t.forEach(s=>uB(s,n))}function Zn(...t){return S.useCallback(V0(...t),t)}function pB(t,n=[]){let s=[];function r(i,o){const l=S.createContext(o),c=s.length;s=[...s,o];function d(p){const{scope:m,children:u,...y}=p,g=(m==null?void 0:m[t][c])||l,w=S.useMemo(()=>y,Object.values(y));return e.jsx(g.Provider,{value:w,children:u})}function h(p,m){const u=(m==null?void 0:m[t][c])||l,y=S.useContext(u);if(y)return y;if(o!==void 0)return o;throw new Error(`\`${p}\` must be used within \`${i}\``)}return d.displayName=i+"Provider",[d,h]}const a=()=>{const i=s.map(o=>S.createContext(o));return function(l){const c=(l==null?void 0:l[t])||i;return S.useMemo(()=>({[`__scope${t}`]:{...l,[t]:c}}),[l,c])}};return a.scopeName=t,[r,mB(a,...n)]}function mB(...t){const n=t[0];if(t.length===1)return n;const s=()=>{const r=t.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(i){const o=r.reduce((l,{useScope:c,scopeName:d})=>{const p=c(i)[`__scope${d}`];return{...l,...p}},{});return S.useMemo(()=>({[`__scope${n.scopeName}`]:o}),[o])}};return s.scopeName=n.scopeName,s}var ph=S.forwardRef((t,n)=>{const{children:s,...r}=t,a=S.Children.toArray(s),i=a.find(fB);if(i){const o=i.props.children,l=a.map(c=>c===i?S.Children.count(o)>1?S.Children.only(null):S.isValidElement(o)?o.props.children:null:c);return e.jsx(n2,{...r,ref:n,children:S.isValidElement(o)?S.cloneElement(o,void 0,l):null})}return e.jsx(n2,{...r,ref:n,children:s})});ph.displayName="Slot";var n2=S.forwardRef((t,n)=>{const{children:s,...r}=t;if(S.isValidElement(s)){const a=xB(s);return S.cloneElement(s,{...gB(r,s.props),ref:n?V0(n,a):a})}return S.Children.count(s)>1?S.Children.only(null):null});n2.displayName="SlotClone";var S_=({children:t})=>e.jsx(e.Fragment,{children:t});function fB(t){return S.isValidElement(t)&&t.type===S_}function gB(t,n){const s={...n};for(const r in n){const a=t[r],i=n[r];/^on[A-Z]/.test(r)?a&&i?s[r]=(...l)=>{i(...l),a(...l)}:a&&(s[r]=a):r==="style"?s[r]={...a,...i}:r==="className"&&(s[r]=[a,i].filter(Boolean).join(" "))}return{...t,...s}}function xB(t){var r,a;let n=(r=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:r.get,s=n&&"isReactWarning"in n&&n.isReactWarning;return s?t.ref:(n=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,s=n&&"isReactWarning"in n&&n.isReactWarning,s?t.props.ref:t.props.ref||t.ref)}function sg(t){const n=t+"CollectionProvider",[s,r]=pB(n),[a,i]=s(n,{collectionRef:{current:null},itemMap:new Map}),o=u=>{const{scope:y,children:g}=u,w=Ue.useRef(null),b=Ue.useRef(new Map).current;return e.jsx(a,{scope:y,itemMap:b,collectionRef:w,children:g})};o.displayName=n;const l=t+"CollectionSlot",c=Ue.forwardRef((u,y)=>{const{scope:g,children:w}=u,b=i(l,g),j=Zn(y,b.collectionRef);return e.jsx(ph,{ref:j,children:w})});c.displayName=l;const d=t+"CollectionItemSlot",h="data-radix-collection-item",p=Ue.forwardRef((u,y)=>{const{scope:g,children:w,...b}=u,j=Ue.useRef(null),N=Zn(y,j),A=i(d,g);return Ue.useEffect(()=>(A.itemMap.set(j,{ref:j,...b}),()=>void A.itemMap.delete(j))),e.jsx(ph,{[h]:"",ref:N,children:w})});p.displayName=d;function m(u){const y=i(t+"CollectionConsumer",u);return Ue.useCallback(()=>{const w=y.collectionRef.current;if(!w)return[];const b=Array.from(w.querySelectorAll(`[${h}]`));return Array.from(y.itemMap.values()).sort((A,E)=>b.indexOf(A.ref.current)-b.indexOf(E.ref.current))},[y.collectionRef,y.itemMap])}return[{Provider:o,Slot:c,ItemSlot:p},m,r]}function yB(t,n){const s=S.createContext(n),r=i=>{const{children:o,...l}=i,c=S.useMemo(()=>l,Object.values(l));return e.jsx(s.Provider,{value:c,children:o})};r.displayName=t+"Provider";function a(i){const o=S.useContext(s);if(o)return o;if(n!==void 0)return n;throw new Error(`\`${i}\` must be used within \`${t}\``)}return[r,a]}function nl(t,n=[]){let s=[];function r(i,o){const l=S.createContext(o),c=s.length;s=[...s,o];const d=p=>{var b;const{scope:m,children:u,...y}=p,g=((b=m==null?void 0:m[t])==null?void 0:b[c])||l,w=S.useMemo(()=>y,Object.values(y));return e.jsx(g.Provider,{value:w,children:u})};d.displayName=i+"Provider";function h(p,m){var g;const u=((g=m==null?void 0:m[t])==null?void 0:g[c])||l,y=S.useContext(u);if(y)return y;if(o!==void 0)return o;throw new Error(`\`${p}\` must be used within \`${i}\``)}return[d,h]}const a=()=>{const i=s.map(o=>S.createContext(o));return function(l){const c=(l==null?void 0:l[t])||i;return S.useMemo(()=>({[`__scope${t}`]:{...l,[t]:c}}),[l,c])}};return a.scopeName=t,[r,bB(a,...n)]}function bB(...t){const n=t[0];if(t.length===1)return n;const s=()=>{const r=t.map(a=>({useScope:a(),scopeName:a.scopeName}));
68return function(i){const o=r.reduce((l,{useScope:c,scopeName:d})=>{const p=c(i)[`__scope${d}`];return{...l,...p}},{});return S.useMemo(()=>({[`__scope${n.scopeName}`]:o}),[o])}};return s.scopeName=n.scopeName,s}var vB=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],ln=vB.reduce((t,n)=>{const s=S.forwardRef((r,a)=>{const{asChild:i,...o}=r,l=i?ph:n;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(l,{...o,ref:a})});return s.displayName=`Primitive.${n}`,{...t,[n]:s}},{});function _1(t,n){t&&tg.flushSync(()=>t.dispatchEvent(n))}function Aa(t){const n=S.useRef(t);return S.useEffect(()=>{n.current=t}),S.useMemo(()=>(...s)=>{var r;return(r=n.current)==null?void 0:r.call(n,...s)},[])}function wB(t,n=globalThis==null?void 0:globalThis.document){const s=Aa(t);S.useEffect(()=>{const r=a=>{a.key==="Escape"&&s(a)};return n.addEventListener("keydown",r,{capture:!0}),()=>n.removeEventListener("keydown",r,{capture:!0})},[s,n])}var jB="DismissableLayer",s2="dismissableLayer.update",kB="dismissableLayer.pointerDownOutside",NB="dismissableLayer.focusOutside",M4,A_=S.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),rg=S.forwardRef((t,n)=>{const{disableOutsidePointerEvents:s=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:o,onDismiss:l,...c}=t,d=S.useContext(A_),[h,p]=S.useState(null),m=(h==null?void 0:h.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,u]=S.useState({}),y=Zn(n,F=>p(F)),g=Array.from(d.layers),[w]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),b=g.indexOf(w),j=h?g.indexOf(h):-1,N=d.layersWithOutsidePointerEventsDisabled.size>0,A=j>=b,E=AB(F=>{const O=F.target,L=[...d.branches].some(W=>W.contains(O));!A||L||(a==null||a(F),o==null||o(F),F.defaultPrevented||l==null||l())},m),C=DB(F=>{const O=F.target;[...d.branches].some(W=>W.contains(O))||(i==null||i(F),o==null||o(F),F.defaultPrevented||l==null||l())},m);return wB(F=>{j===d.layers.size-1&&(r==null||r(F),!F.defaultPrevented&&l&&(F.preventDefault(),l()))},m),S.useEffect(()=>{if(h)return s&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(M4=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(h)),d.layers.add(h),R4(),()=>{s&&d.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=M4)}},[h,m,s,d]),S.useEffect(()=>()=>{h&&(d.layers.delete(h),d.layersWithOutsidePointerEventsDisabled.delete(h),R4())},[h,d]),S.useEffect(()=>{const F=()=>u({});return document.addEventListener(s2,F),()=>document.removeEventListener(s2,F)},[]),e.jsx(ln.div,{...c,ref:y,style:{pointerEvents:N?A?"auto":"none":void 0,...t.style},onFocusCapture:vt(t.onFocusCapture,C.onFocusCapture),onBlurCapture:vt(t.onBlurCapture,C.onBlurCapture),onPointerDownCapture:vt(t.onPointerDownCapture,E.onPointerDownCapture)})});rg.displayName=jB;var SB="DismissableLayerBranch",D_=S.forwardRef((t,n)=>{const s=S.useContext(A_),r=S.useRef(null),a=Zn(n,r);return S.useEffect(()=>{const i=r.current;if(i)return s.branches.add(i),()=>{s.branches.delete(i)}},[s.branches]),e.jsx(ln.div,{...t,ref:a})});D_.displayName=SB;function AB(t,n=globalThis==null?void 0:globalThis.document){const s=Aa(t),r=S.useRef(!1),a=S.useRef(()=>{});return S.useEffect(()=>{const i=l=>{if(l.target&&!r.current){let c=function(){I_(kB,s,d,{discrete:!0})};const d={originalEvent:l};l.pointerType==="touch"?(n.removeEventListener("click",a.current),a.current=c,n.addEventListener("click",a.current,{once:!0})):c()}else n.removeEventListener("click",a.current);r.current=!1},o=window.setTimeout(()=>{n.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(o),n.removeEventListener("pointerdown",i),n.removeEventListener("click",a.current)}},[n,s]),{onPointerDownCapture:()=>r.current=!0}}function DB(t,n=globalThis==null?void 0:globalThis.document){const s=Aa(t),r=S.useRef(!1);return S.useEffect(()=>{const a=i=>{i.target&&!r.current&&I_(NB,s,{originalEvent:i},{discrete:!1})};return n.addEventListener("focusin",a),()=>n.removeEventListener("focusin",a)},[n,s]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function R4(){const t=new CustomEvent(s2);document.dispatchEvent(t)}function I_(t,n,s,{discrete:r}){const a=s.originalEvent.target,i=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:s});n&&a.addEventListener(t,n,{once:!0}),r?_1(a,i):a.dispatchEvent(i)}var IB=rg,CB=D_,Ll=globalThis!=null&&globalThis.document?S.useLayoutEffect:()=>{}
68,_B="Portal",B0=S.forwardRef((t,n)=>{var l;const{container:s,...r}=t,[a,i]=S.useState(!1);Ll(()=>i(!0),[]);const o=s||a&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return o?w1.createPortal(e.jsx(ln.div,{...r,ref:n}),o):null});B0.displayName=_B;function TB(t,n){return S.useReducer((s,r)=>n[s][r]??s,t)}var Yi=t=>{const{present:n,children:s}=t,r=PB(n),a=typeof s=="function"?s({present:r.isPresent}):S.Children.only(s),i=Zn(r.ref,EB(a));return typeof s=="function"||r.isPresent?S.cloneElement(a,{ref:i}):null};Yi.displayName="Presence";function PB(t){const[n,s]=S.useState(),r=S.useRef({}),a=S.useRef(t),i=S.useRef("none"),o=t?"mounted":"unmounted",[l,c]=TB(o,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return S.useEffect(()=>{const d=dx(r.current);i.current=l==="mounted"?d:"none"},[l]),Ll(()=>{const d=r.current,h=a.current;if(h!==t){const m=i.current,u=dx(d);t?c("MOUNT"):u==="none"||(d==null?void 0:d.display)==="none"?c("UNMOUNT"):c(h&&m!==u?"ANIMATION_OUT":"UNMOUNT"),a.current=t}},[t,c]),Ll(()=>{if(n){let d;const h=n.ownerDocument.defaultView??window,p=u=>{const g=dx(r.current).includes(u.animationName);if(u.target===n&&g&&(c("ANIMATION_END"),!a.current)){const w=n.style.animationFillMode;n.style.animationFillMode="forwards",d=h.setTimeout(()=>{n.style.animationFillMode==="forwards"&&(n.style.animationFillMode=w)})}},m=u=>{u.target===n&&(i.current=dx(r.current))};return n.addEventListener("animationstart",m),n.addEventListener("animationcancel",p),n.addEventListener("animationend",p),()=>{h.clearTimeout(d),n.removeEventListener("animationstart",m),n.removeEventListener("animationcancel",p),n.removeEventListener("animationend",p)}}else c("ANIMATION_END")},[n,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:S.useCallback(d=>{d&&(r.current=getComputedStyle(d)),s(d)},[])}}function dx(t){return(t==null?void 0:t.animationName)||"none"}function EB(t){var r,a;let n=(r=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:r.get,s=n&&"isReactWarning"in n&&n.isReactWarning;return s?t.ref:(n=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,s=n&&"isReactWarning"in n&&n.isReactWarning,s?t.props.ref:t.props.ref||t.ref)}function sl({prop:t,defaultProp:n,onChange:s=()=>{}}){const[r,a]=LB({defaultProp:n,onChange:s}),i=t!==void 0,o=i?t:r,l=Aa(s),c=S.useCallback(d=>{if(i){const p=typeof d=="function"?d(t):d;p!==t&&l(p)}else a(d)},[i,t,a,l]);return[o,c]}function LB({defaultProp:t,onChange:n}){const s=S.useState(t),[r]=s,a=S.useRef(r),i=Aa(n);return S.useEffect(()=>{a.current!==r&&(i(r),a.current=r)},[r,a,i]),s}var MB="VisuallyHidden",z0=S.forwardRef((t,n)=>e.jsx(ln.span,{...t,ref:n,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...t.style}}));z0.displayName=MB;var RB=z0,T1="ToastProvider",[P1,OB,FB]=sg("Toast"),[C_,hle]=nl("Toast",[FB]),[VB,U0]=C_(T1),__=t=>{const{__scopeToast:n,label:s="Notification",duration:r=5e3,swipeDirection:a="right",swipeThreshold:i=50,children:o}=t,[l,c]=S.useState(null),[d,h]=S.useState(0),p=S.useRef(!1),m=S.useRef(!1);return s.trim()||console.error(`Invalid prop \`label\` supplied to \`${T1}\`. Expected non-empty \`string\`.`),e.jsx(P1.Provider,{scope:n,children:e.jsx(VB,{scope:n,label:s,duration:r,swipeDirection:a,swipeThreshold:i,toastCount:d,viewport:l,onViewportChange:c,onToastAdd:S.useCallback(()=>h(u=>u+1),[]),onToastRemove:S.useCallback(()=>h(u=>u-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:m,children:o})})};__.displayName=T1;var T_="ToastViewport",BB=["F8"],r2="toast.viewportPause",a2="toast.viewportResume",P_=S.forwardRef((t,n)=>{const{__scopeToast:s,hotkey:r=BB,label:a="Notifications ({hotkey})",...i}=t,o=U0(T_,s),l=OB(s),c=S.useRef(null),d=S.useRef(null),h=S.useRef(null),p=S.useRef(null),m=Zn(n,p,o.onViewportChange),u=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),y=o.toastCount>0;S.useEffect(()=>{const w=b=>{var N;r.length!==0&&r.every(A=>b[A]||b.code===A)&&((N=p.current)==null||N.focus())};return document.addEventListener("keydown",w),()=>document.removeEventListener("keydown",w)},[r]),S.useEffect(()=>{const w=c.current,b=p.current;if(y&&w&&b){const j=()=>
68{if(!o.isClosePausedRef.current){const C=new CustomEvent(r2);b.dispatchEvent(C),o.isClosePausedRef.current=!0}},N=()=>{if(o.isClosePausedRef.current){const C=new CustomEvent(a2);b.dispatchEvent(C),o.isClosePausedRef.current=!1}},A=C=>{!w.contains(C.relatedTarget)&&N()},E=()=>{w.contains(document.activeElement)||N()};return w.addEventListener("focusin",j),w.addEventListener("focusout",A),w.addEventListener("pointermove",j),w.addEventListener("pointerleave",E),window.addEventListener("blur",j),window.addEventListener("focus",N),()=>{w.removeEventListener("focusin",j),w.removeEventListener("focusout",A),w.removeEventListener("pointermove",j),w.removeEventListener("pointerleave",E),window.removeEventListener("blur",j),window.removeEventListener("focus",N)}}},[y,o.isClosePausedRef]);const g=S.useCallback(({tabbingDirection:w})=>{const j=l().map(N=>{const A=N.ref.current,E=[A,...ZB(A)];return w==="forwards"?E:E.reverse()});return(w==="forwards"?j.reverse():j).flat()},[l]);return S.useEffect(()=>{const w=p.current;if(w){const b=j=>{var E,C,F;const N=j.altKey||j.ctrlKey||j.metaKey;if(j.key==="Tab"&&!N){const O=document.activeElement,L=j.shiftKey;if(j.target===w&&L){(E=d.current)==null||E.focus();return}const P=g({tabbingDirection:L?"backwards":"forwards"}),K=P.findIndex(q=>q===O);Dv(P.slice(K+1))?j.preventDefault():L?(C=d.current)==null||C.focus():(F=h.current)==null||F.focus()}};return w.addEventListener("keydown",b),()=>w.removeEventListener("keydown",b)}},[l,g]),e.jsxs(CB,{ref:c,role:"region","aria-label":a.replace("{hotkey}",u),tabIndex:-1,style:{pointerEvents:y?void 0:"none"},children:[y&&e.jsx(i2,{ref:d,onFocusFromOutsideViewport:()=>{const w=g({tabbingDirection:"forwards"});Dv(w)}}),e.jsx(P1.Slot,{scope:s,children:e.jsx(ln.ol,{tabIndex:-1,...i,ref:m})}),y&&e.jsx(i2,{ref:h,onFocusFromOutsideViewport:()=>{const w=g({tabbingDirection:"backwards"});Dv(w)}})]})});P_.displayName=T_;var E_="ToastFocusProxy",i2=S.forwardRef((t,n)=>{const{__scopeToast:s,onFocusFromOutsideViewport:r,...a}=t,i=U0(E_,s);return e.jsx(z0,{"aria-hidden":!0,tabIndex:0,...a,ref:n,style:{position:"fixed"},onFocus:o=>{var d;const l=o.relatedTarget;!((d=i.viewport)!=null&&d.contains(l))&&r()}})});i2.displayName=E_;var q0="Toast",zB="toast.swipeStart",UB="toast.swipeMove",qB="toast.swipeCancel",HB="toast.swipeEnd",L_=S.forwardRef((t,n)=>{const{forceMount:s,open:r,defaultOpen:a,onOpenChange:i,...o}=t,[l=!0,c]=sl({prop:r,defaultProp:a,onChange:i});return e.jsx(Yi,{present:s||l,children:e.jsx(GB,{open:l,...o,ref:n,onClose:()=>c(!1),onPause:Aa(t.onPause),onResume:Aa(t.onResume),onSwipeStart:vt(t.onSwipeStart,d=>{d.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:vt(t.onSwipeMove,d=>{const{x:h,y:p}=d.detail.delta;d.currentTarget.setAttribute("data-swipe","move"),d.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${h}px`),d.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:vt(t.onSwipeCancel,d=>{d.currentTarget.setAttribute("data-swipe","cancel"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),d.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:vt(t.onSwipeEnd,d=>{const{x:h,y:p}=d.detail.delta;d.currentTarget.setAttribute("data-swipe","end"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),d.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${h}px`),d.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),c(!1)})})})});L_.displayName=q0;var[$B,WB]=C_(q0,{onClose(){}}),GB=S.forwardRef((t,n)=>{const{__scopeToast:s,type:r="foreground",duration:a,open:i,onClose:o,onEscapeKeyDown:l,onPause:c,onResume:d,onSwipeStart:h,onSwipeMove:p,onSwipeCancel:m,onSwipeEnd:u,...y}=t,g=U0(q0,s),[w,b]=S.useState(null),j=Zn(n,q=>b(q)),N=S.useRef(null),A=S.useRef(null),E=a||g.duration,C=S.useRef(0),F=S.useRef(E),O=S.useRef(0),{onToastAdd:L,onToastRemove:W}=g,_=Aa(()=>{var ae;(w==null?void 0:w.contains(document.activeElement))&&((ae=g.viewport)==null||ae.focus()),o()}),P=S.useCallback(q=>
68{!q||q===1/0||(window.clearTimeout(O.current),C.current=new Date().getTime(),O.current=window.setTimeout(_,q))},[_]);S.useEffect(()=>{const q=g.viewport;if(q){const ae=()=>{P(F.current),d==null||d()},ce=()=>{const de=new Date().getTime()-C.current;F.current=F.current-de,window.clearTimeout(O.current),c==null||c()};return q.addEventListener(r2,ce),q.addEventListener(a2,ae),()=>{q.removeEventListener(r2,ce),q.removeEventListener(a2,ae)}}},[g.viewport,E,c,d,P]),S.useEffect(()=>{i&&!g.isClosePausedRef.current&&P(E)},[i,E,g.isClosePausedRef,P]),S.useEffect(()=>(L(),()=>W()),[L,W]);const K=S.useMemo(()=>w?z_(w):null,[w]);return g.viewport?e.jsxs(e.Fragment,{children:[K&&e.jsx(KB,{__scopeToast:s,role:"status","aria-live":r==="foreground"?"assertive":"polite","aria-atomic":!0,children:K}),e.jsx($B,{scope:s,onClose:_,children:tg.createPortal(e.jsx(P1.ItemSlot,{scope:s,children:e.jsx(IB,{asChild:!0,onEscapeKeyDown:vt(l,()=>{g.isFocusedToastEscapeKeyDownRef.current||_(),g.isFocusedToastEscapeKeyDownRef.current=!1}),children:e.jsx(ln.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":i?"open":"closed","data-swipe-direction":g.swipeDirection,...y,ref:j,style:{userSelect:"none",touchAction:"none",...t.style},onKeyDown:vt(t.onKeyDown,q=>{q.key==="Escape"&&(l==null||l(q.nativeEvent),q.nativeEvent.defaultPrevented||(g.isFocusedToastEscapeKeyDownRef.current=!0,_()))}),onPointerDown:vt(t.onPointerDown,q=>{q.button===0&&(N.current={x:q.clientX,y:q.clientY})}),onPointerMove:vt(t.onPointerMove,q=>{if(!N.current)return;const ae=q.clientX-N.current.x,ce=q.clientY-N.current.y,de=!!A.current,H=["left","right"].includes(g.swipeDirection),X=["left","up"].includes(g.swipeDirection)?Math.min:Math.max,V=H?X(0,ae):0,he=H?0:X(0,ce),T=q.pointerType==="touch"?10:2,I={x:V,y:he},G={originalEvent:q,delta:I};de?(A.current=I,hx(UB,p,G,{discrete:!1})):O4(I,g.swipeDirection,T)?(A.current=I,hx(zB,h,G,{discrete:!1}),q.target.setPointerCapture(q.pointerId)):(Math.abs(ae)>T||Math.abs(ce)>T)&&(N.current=null)}),onPointerUp:vt(t.onPointerUp,q=>{const ae=A.current,ce=q.target;if(ce.hasPointerCapture(q.pointerId)&&ce.releasePointerCapture(q.pointerId),A.current=null,N.current=null,ae){const de=q.currentTarget,H={originalEvent:q,delta:ae};O4(ae,g.swipeDirection,g.swipeThreshold)?hx(HB,u,H,{discrete:!0}):hx(qB,m,H,{discrete:!0}),de.addEventListener("click",X=>X.preventDefault(),{once:!0})}})})})}),g.viewport)})]}):null}),KB=t=>{const{__scopeToast:n,children:s,...r}=t,a=U0(q0,n),[i,o]=S.useState(!1),[l,c]=S.useState(!1);return JB(()=>o(!0)),S.useEffect(()=>{const d=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(d)},[]),l?null:e.jsx(B0,{asChild:!0,children:e.jsx(z0,{...r,children:i&&e.jsxs(e.Fragment,{children:[a.label," ",s]})})})},QB="ToastTitle",M_=S.forwardRef((t,n)=>{const{__scopeToast:s,...r}=t;return e.jsx(ln.div,{...r,ref:n})});M_.displayName=QB;var YB="ToastDescription",R_=S.forwardRef((t,n)=>{const{__scopeToast:s,...r}=t;return e.jsx(ln.div,{...r,ref:n})});R_.displayName=YB;var O_="ToastAction",F_=S.forwardRef((t,n)=>{const{altText:s,...r}=t;return s.trim()?e.jsx(B_,{altText:s,asChild:!0,children:e.jsx(E1,{...r,ref:n})}):(console.error(`Invalid prop \`altText\` supplied to \`${O_}\`. Expected non-empty \`string\`.`),null)});F_.displayName=O_;var V_="ToastClose",E1=S.forwardRef((t,n)=>{const{__scopeToast:s,...r}=t,a=WB(V_,s);return e.jsx(B_,{asChild:!0,children:e.jsx(ln.button,{type:"button",...r,ref:n,onClick:vt(t.onClick,a.onClose)})})});E1.displayName=V_;var B_=S.forwardRef((t,n)=>{const{__scopeToast:s,altText:r,...a}=t;return e.jsx(ln.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...a,ref:n})});function z_(t){const n=[];return Array.from(t.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&n.push(r.textContent),XB(r)){const a=r.ariaHidden||r.hidden||r.style.display==="none",i=r.dataset.radixToastAnnounceExclude==="";if(!a)if(i){const o=r.dataset.radixToastAnnounceAlt;o&&n.push(o)}else n.push(...z_(r))}}),n}function hx(t,n,s,{discrete:r}){const a=s.originalEvent.currentTarget,i=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:s});n&&a.addEventListener(t,n,{once:!0}),r?_1(a,i):a.dispatchEvent(i)}var O4=(t,n,s=0)=>{const r=Math.abs(t.x),a=Math.abs(t.y),i=r>a;return n==="left"||n==="right"?i&&r>s:!i&&a>s};function JB(t=()=>{}){const n=Aa(t);Ll(()=>{let s=0,r=0;return s=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(n)),()=>{window.cancelAnimationFrame(s),window.cancelAnimationFrame(r)}},[n])}function XB(t){return t.nodeType===t.ELEMENT_NODE}function ZB(t){const n=[],s=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)n.push(s.currentNode);return n}function Dv(t){const n=document.activeElement;return t.some(s=>s===n?!0:(s.focus(),document.activeElement!==n))}var ez=__,U_=P_,q_=L_,H_=M_,$_=R_,W_=F_,G_=E1;function K_(t){var n,s,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var a=t.length;for(n=0;n<a;n++)t[n]&&(s=K_(t[n]))&&(r&&(r+=" "),r+=s)}else for(s in t)t[s]&&(r&&(r+=" "),r+=s);return r}function Q_(){for(var t,n,s=0,r="",a=arguments.length;s<a;s++)(t=arguments[s])&&(n=K_(t))&&(r&&(r+=" "),r+=n);return r}const F4=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,V4=Q_,H0=(t,n)=>s=>{var r;if((n==null?void 0:n.variants)==null)return V4(t,s==null?void 0:s.class,s==null?void 0:s.className);const{variants:a,defaultVariants:i}=n,o=Object.keys(a).map(d=>{const h=s==null?void 0:s[d],p=i==null?void 0:i[d];if(h===null)return null;const m=F4(h)||F4(p);return a[d][m]}),l=s&&Object.entries(s).reduce((d,h)=>{let[p,m]=h;return m===void 0||(d[p]=m),d},{}),c=n==null||(r=n.compoundVariants)===null||r===void 0?void 0:r.reduce((d,h)=>{let{class:p,className:m,...u}=h;return Object.entries(u).every(y=>{let[g,w]=y;return Array.isArray(w)?w.includes({...i,...l}[g]):{...i,...l}[g]===w})?[...d,p,m]:d},[]);return V4(t,o,c,s==null?void 0:s.class,s==null?void 0:s.className)};/** 69 * @license lucide-react v0.462.0 - ISC 70 * 71 * This source code is licensed under the ISC license. 72 * See the LICENSE file in the root directory of this source tree. 73 */const tz=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Y_=(...t)=>t.filter((n,s,r)=>
vendor: 6,199 bytes, lines 73-143
73!!n&&n.trim()!==""&&r.indexOf(n)===s).join(" ").trim();/** 74 * @license lucide-react v0.462.0 - ISC 75 * 76 * This source code is licensed under the ISC license. 77 * See the LICENSE file in the root directory of this source tree. 78 */var nz={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 79 * @license lucide-react v0.462.0 - ISC 80 * 81 * This source code is licensed under the ISC license. 82 * See the LICENSE file in the root directory of this source tree. 83 */const sz=S.forwardRef(({color:t="currentColor",size:n=24,strokeWidth:s=2,absoluteStrokeWidth:r,className:a="",children:i,iconNode:o,...l},c)=>S.createElement("svg",{ref:c,...nz,width:n,height:n,stroke:t,strokeWidth:r?Number(s)*24/Number(n):s,className:Y_("lucide",a),...l},[...o.map(([d,h])=>S.createElement(d,h)),...Array.isArray(i)?i:[i]]));/** 84 * @license lucide-react v0.462.0 - ISC 85 * 86 * This source code is licensed under the ISC license. 87 * See the LICENSE file in the root directory of this source tree. 88 */const rt=(t,n)=>{const s=S.forwardRef(({className:r,...a},i)=>S.createElement(sz,{ref:i,iconNode:n,className:Y_(`lucide-${tz(t)}`,r),...a}));return s.displayName=`${t}`,s};/** 89 * @license lucide-react v0.462.0 - ISC 90 * 91 * This source code is licensed under the ISC license. 92 * See the LICENSE file in the root directory of this source tree. 93 */const rz=rt("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** 94 * @license lucide-react v0.462.0 - ISC 95 * 96 * This source code is licensed under the ISC license. 97 * See the LICENSE file in the root directory of this source tree. 98 */const An=rt("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** 99 * @license lucide-react v0.462.0 - ISC 100 * 101 * This source code is licensed under the ISC license. 102 * See the LICENSE file in the root directory of this source tree. 103 */const wn=rt("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** 104 * @license lucide-react v0.462.0 - ISC 105 * 106 * This source code is licensed under the ISC license. 107 * See the LICENSE file in the root directory of this source tree. 108 */const az=rt("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** 109 * @license lucide-react v0.462.0 - ISC 110 * 111 * This source code is licensed under the ISC license. 112 * See the LICENSE file in the root directory of this source tree. 113 */const iz=rt("Award",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]);/** 114 * @license lucide-react v0.462.0 - ISC 115 * 116 * This source code is licensed under the ISC license. 117 * See the LICENSE file in the root directory of this source tree. 118 */const $r=rt("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** 119 * @license lucide-react v0.462.0 - ISC 120 * 121 * This source code is licensed under the ISC license. 122 * See the LICENSE file in the root directory of this source tree. 123 */const oz=rt("Book",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]);/** 124 * @license lucide-react v0.462.0 - ISC 125 * 126 * This source code is licensed under the ISC license. 127 * See the LICENSE file in the root directory of this source tree. 128 */const Os=rt("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** 129 * @license lucide-react v0.462.0 - ISC 130 * 131 * This source code is licensed under the ISC license. 132 * See the LICENSE file in the root directory of this source tree. 133 */const lz=rt("Boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);/** 134 * @license lucide-react v0.462.0 - ISC 135 * 136 * This source code is licensed under the ISC license. 137 * See the LICENSE file in the root directory of this source tree. 138 */const _s=rt("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** 139 * @license lucide-react v0.462.0 - ISC 140 * 141 * This source code is licensed under the ISC license. 142 * See the LICENSE file in the root directory of this source tree. 143 */const o2=rt("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}
143],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** 144 * @license lucide-react v0.462.0 - ISC 145 * 146 * This source code is licensed under the ISC license. 147 * See the LICENSE file in the root directory of this source tree. 148 */const $0=rt("Calculator",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]]);/** 149 * @license lucide-react v0.462.0 - ISC 150 * 151 * This source code is licensed under the ISC license. 152 * See the LICENSE file in the root directory of this source tree. 153 */const ag=rt("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/** 154 * @license lucide-react v0.462.0 - ISC 155 * 156 * This source code is licensed under the ISC license. 157 * See the LICENSE file in the root directory of this source tree. 158 */const J_=rt("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** 159 * @license lucide-react v0.462.0 - ISC 160 * 161 * This source code is licensed under the ISC license. 162 * See the LICENSE file in the root directory of this source tree. 163 */const Jt=rt("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** 164 * @license lucide-react v0.462.0 - ISC 165 * 166 * This source code is licensed under the ISC license. 167 * See the LICENSE file in the root directory of this source tree. 168 */const Xm=rt("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** 169 * @license lucide-react v0.462.0 - ISC 170 * 171 * This source code is licensed under the ISC license. 172 * See the LICENSE file in the root directory of this source tree. 173 */const Vr=rt("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** 174 * @license lucide-react v0.462.0 - ISC 175 * 176 * This source code is licensed under the ISC license. 177 * See the LICENSE file in the root directory of this source tree. 178 */const Fs=rt("Chrome",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["line",{x1:"21.17",x2:"12",y1:"8",y2:"8",key:"a0cw5f"}],["line",{x1:"3.95",x2:"8.54",y1:"6.06",y2:"14",key:"1kftof"}],["line",{x1:"10.88",x2:"15.46",y1:"21.94",y2:"14",key:"1ymyh8"}]]);/** 179 * @license lucide-react v0.462.0 - ISC 180 * 181 * This source code is licensed under the ISC license. 182 * See the LICENSE file in the root directory of this source tree. 183 */const cz=rt("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** 184 * @license lucide-react v0.462.0 - ISC 185 * 186 * This source code is licensed under the ISC license. 187 * See the LICENSE file in the root directory of this source tree. 188 */const He=rt("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** 189 * @license lucide-react v0.462.0 - ISC 190 * 191 * This source code is licensed under the ISC license. 192 * See the LICENSE file in the root directory of this source tree. 193 */const mh=rt("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** 194 * @license lucide-react v0.462.0 - ISC 195 * 196 * This source code is licensed under the ISC license. 197 * See the LICENSE file in the root directory of this source tree. 198 */const Rs=rt("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** 199 * @license lucide-react v0.462.0 - ISC 200 * 201 * This source code is licensed under the ISC license. 202 * See the LICENSE file in the root directory of this source tree. 203 */const dz=rt("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** 204 * @license lucide-react v0.462.0 - ISC 205 * 206 * This source code is licensed under the ISC license. 207 * See the LICENSE file in the root directory of this source tree. 208 */const xo=rt("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** 209 * @license lucide-react v0.462.0 - ISC 210 * 211 * This source code is licensed under the ISC license. 212 * See the LICENSE file in the root directory of this source tree. 213 */const L1=rt("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/** 214 * @license lucide-react v0.462.0 - ISC 215 * 216 * This source code is licensed under the ISC license. 217 * See the LICENSE file in the root directory of this source tree. 218 */const qr=rt("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/** 219 * @license lucide-react v0.462.0 - ISC 220 * 221 * This source code is licensed under the ISC license. 222 * See the LICENSE file in the root directory of this source tree.
223 */const hz=rt("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** 224 * @license lucide-react v0.462.0 - ISC 225 * 226 * This source code is licensed under the ISC license. 227 * See the LICENSE file in the root directory of this source tree. 228 */const yo=rt("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** 229 * @license lucide-react v0.462.0 - ISC 230 * 231 * This source code is licensed under the ISC license. 232 * See the LICENSE file in the root directory of this source tree. 233 */const uz=rt("CreditCard",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]);/** 234 * @license lucide-react v0.462.0 - ISC 235 * 236 * This source code is licensed under the ISC license. 237 * See the LICENSE file in the root directory of this source tree. 238 */const _p=rt("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** 239 * @license lucide-react v0.462.0 - ISC 240 * 241 * This source code is licensed under the ISC license. 242 * See the LICENSE file in the root directory of this source tree. 243 */const Ai=rt("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/** 244 * @license lucide-react v0.462.0 - ISC 245 * 246 * This source code is licensed under the ISC license. 247 * See the LICENSE file in the root directory of this source tree. 248 */const pz=rt("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** 249 * @license lucide-react v0.462.0 - ISC 250 * 251 * This source code is licensed under the ISC license. 252 * See the LICENSE file in the root directory of this source tree. 253 */const Pn=rt("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** 254 * @license lucide-react v0.462.0 - ISC 255 * 256 * This source code is licensed under the ISC license. 257 * See the LICENSE file in the root directory of this source tree. 258 */const X_=rt("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** 259 * @license lucide-react v0.462.0 - ISC 260 * 261 * This source code is licensed under the ISC license. 262 * See the LICENSE file in the root directory of this source tree. 263 */const W0=rt("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** 264 * @license lucide-react v0.462.0 - ISC 265 * 266 * This source code is licensed under the ISC license. 267 * See the LICENSE file in the root directory of this source tree. 268 */const Z_=rt("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/** 269 * @license lucide-react v0.462.0 - ISC 270 * 271 * This source code is licensed under the ISC license. 272 * See the LICENSE file in the root directory of this source tree. 273 */const l2=rt("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);/** 274 * @license lucide-react v0.462.0 - ISC 275 * 276 * This source code is licensed under the ISC license. 277 * See the LICENSE file in the root directory of this source tree. 278 */const M1=rt("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** 279 * @license lucide-react v0.462.0 - ISC 280 * 281 * This source code is licensed under the ISC license. 282 * See the LICENSE file in the root directory of this source tree. 283 */const mz=rt("GraduationCap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]);/** 284 * @license lucide-react v0.462.0 - ISC 285 * 286 * This source code is licensed under the ISC license. 287 * See the LICENSE file in the root directory of this source tree. 288 */const fz=rt("HandHeart",[["path",{d:"M11 14h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 16",key:"1ifwr1"}],["path",{d:"m7 20 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9",key:"17abbs"}],["path",{d:"m2 15 6 6",key:"10dquu"}],["path",{d:"M19.5 8.5c.7-.7 1.5-1.6 1.5-2.7A2.73 2.73 0 0 0 16 4a2.78 2.78 0 0 0-5 1.8c0 1.2.8 2 1.5 2.8L16 12Z",key:"1h3036"}]]);/** 289 * @license lucide-react v0.462.0 - ISC 290 * 291 * This source code is licensed under the ISC license. 292 * See the LICENSE file in the root directory of this source tree. 293 */const c2=rt("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}
293]]);/** 294 * @license lucide-react v0.462.0 - ISC 295 * 296 * This source code is licensed under the ISC license. 297 * See the LICENSE file in the root directory of this source tree. 298 */const eT=rt("House",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);/** 299 * @license lucide-react v0.462.0 - ISC 300 * 301 * This source code is licensed under the ISC license. 302 * See the LICENSE file in the root directory of this source tree. 303 */const gz=rt("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** 304 * @license lucide-react v0.462.0 - ISC 305 * 306 * This source code is licensed under the ISC license. 307 * See the LICENSE file in the root directory of this source tree. 308 */const xz=rt("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** 309 * @license lucide-react v0.462.0 - ISC 310 * 311 * This source code is licensed under the ISC license. 312 * See the LICENSE file in the root directory of this source tree. 313 */const B4=rt("Key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);/** 314 * @license lucide-react v0.462.0 - ISC 315 * 316 * This source code is licensed under the ISC license. 317 * See the LICENSE file in the root directory of this source tree. 318 */const R1=rt("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** 319 * @license lucide-react v0.462.0 - ISC 320 * 321 * This source code is licensed under the ISC license. 322 * See the LICENSE file in the root directory of this source tree. 323 */const d2=rt("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);/** 324 * @license lucide-react v0.462.0 - ISC 325 * 326 * This source code is licensed under the ISC license. 327 * See the LICENSE file in the root directory of this source tree. 328 */const yz=rt("Linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]);/** 329 * @license lucide-react v0.462.0 - ISC 330 * 331 * This source code is licensed under the ISC license. 332 * See the LICENSE file in the root directory of this source tree. 333 */const bz=rt("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);/** 334 * @license lucide-react v0.462.0 - ISC 335 * 336 * This source code is licensed under the ISC license. 337 * See the LICENSE file in the root directory of this source tree. 338 */const Zm=rt("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** 339 * @license lucide-react v0.462.0 - ISC 340 * 341 * This source code is licensed under the ISC license. 342 * See the LICENSE file in the root directory of this source tree. 343 */const vz=rt("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/** 344 * @license lucide-react v0.462.0 - ISC 345 * 346 * This source code is licensed under the ISC license. 347 * See the LICENSE file in the root directory of this source tree. 348 */const tT=rt("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** 349 * @license lucide-react v0.462.0 - ISC 350 * 351 * This source code is licensed under the ISC license. 352 * See the LICENSE file in the root directory of this source tree. 353 */const O1=rt("MapPin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/** 354 * @license lucide-react v0.462.0 - ISC 355 * 356 * This source code is licensed under the ISC license. 357 * See the LICENSE file in the root directory of this source tree. 358 */const wz=rt("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** 359 * @license lucide-react v0.462.0 - ISC 360 * 361 * This source code is licensed under the ISC license. 362 * See the LICENSE file in the root directory of this source tree. 363 */const jz=rt("MessageSquareCode",[["path",{d:"M10 7.5 8 10l2 2.5",key:"xb17xw"}],["path",{d:"m14 7.5 2 2.5-2 2.5",key:"5rap1v"}],["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** 364 * @license lucide-react v0.462.0 - ISC 365 * 366 * This source code is licensed under the ISC license. 367 * See the LICENSE file in the root directory of this source tree. 368 */const fh=rt("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** 369 * @license lucide-react v0.462.0 - ISC 370 * 371 * This source code is licensed under the ISC license. 372 * See the LICENSE file in the root directory of this source tree. 373 */const kz=rt("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);/** 374 * @license lucide-react v0.462.0 - ISC 375 * 376 * This source code is licensed under the ISC license. 377 * See the LICENSE file in the root directory of this source tree. 378 */const Nz=rt("Puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]);/** 379 * @license lucide-react v0.462.0 - ISC 380 * 381 * This source code is licensed under the ISC license. 382 * See the LICENSE file in the root directory of this source tree. 383 */const z4=rt("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** 384 * @license lucide-react v0.462.0 - ISC 385 * 386 * This source code is licensed under the ISC license. 387 * See the LICENSE file in the root directory of this source tree. 388 */const nT=rt("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3
388kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/** 389 * @license lucide-react v0.462.0 - ISC 390 * 391 * This source code is licensed under the ISC license. 392 * See the LICENSE file in the root directory of this source tree. 393 */const Tf=rt("Scale",[["path",{d:"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"7g6ntu"}],["path",{d:"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"ijws7r"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2",key:"3gwbw2"}]]);/** 394 * @license lucide-react v0.462.0 - ISC 395 * 396 * This source code is licensed under the ISC license. 397 * See the LICENSE file in the root directory of this source tree. 398 */const Sz=rt("SearchCode",[["path",{d:"m13 13.5 2-2.5-2-2.5",key:"1rvxrh"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}],["path",{d:"M9 8.5 7 11l2 2.5",key:"6ffwbx"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);/** 399 * @license lucide-react v0.462.0 - ISC 400 * 401 * This source code is licensed under the ISC license. 402 * See the LICENSE file in the root directory of this source tree. 403 */const Pf=rt("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** 404 * @license lucide-react v0.462.0 - ISC 405 * 406 * This source code is licensed under the ISC license. 407 * See the LICENSE file in the root directory of this source tree. 408 */const Az=rt("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** 409 * @license lucide-react v0.462.0 - ISC 410 * 411 * This source code is licensed under the ISC license. 412 * See the LICENSE file in the root directory of this source tree. 413 */const F1=rt("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** 414 * @license lucide-react v0.462.0 - ISC 415 * 416 * This source code is licensed under the ISC license. 417 * See the LICENSE file in the root directory of this source tree. 418 */const G0=rt("Share2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]);/** 419 * @license lucide-react v0.462.0 - ISC 420 * 421 * This source code is licensed under the ISC license. 422 * See the LICENSE file in the root directory of this source tree. 423 */const Dz=rt("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** 424 * @license lucide-react v0.462.0 - ISC 425 * 426 * This source code is licensed under the ISC license. 427 * See the LICENSE file in the root directory of this source tree. 428 */const h2=rt("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** 429 * @license lucide-react v0.462.0 - ISC 430 * 431 * This source code is licensed under the ISC license. 432 * See the LICENSE file in the root directory of this source tree. 433 */const rl=rt("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/** 434 * @license lucide-react v0.462.0 - ISC 435 * 436 * This source code is licensed under the ISC license. 437 * See the LICENSE file in the root directory of this source tree. 438 */const Zc=rt("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** 439 * @license lucide-react v0.462.0 - ISC 440 * 441 * This source code is licensed under the ISC license. 442 * See the LICENSE file in the root directory of this source tree. 443 */const Cu=rt("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/** 444 * @license lucide-react v0.462.0 - ISC 445 * 446 * This source code is licensed under the ISC license. 447 * See the LICENSE file in the root directory of this source tree. 448 */const u2=rt("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** 449 * @license lucide-react v0.462.0 - ISC 450 * 451 * This source code is licensed under the ISC license. 452 * See the LICENSE file in the root directory of this source tree. 453 */const Zy=rt("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** 454 * @license lucide-react v0.462.0 - ISC 455 * 456 * This source code is licensed under the ISC license. 457 * See the LICENSE file in the root directory of this source tree.
458 */const p2=rt("ThumbsDown",[["path",{d:"M17 14V2",key:"8ymqnk"}],["path",{d:"M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z",key:"m61m77"}]]);/** 459 * @license lucide-react v0.462.0 - ISC 460 * 461 * This source code is licensed under the ISC license. 462 * See the LICENSE file in the root directory of this source tree. 463 */const m2=rt("ThumbsUp",[["path",{d:"M7 10v12",key:"1qc93n"}],["path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z",key:"emmmcr"}]]);/** 464 * @license lucide-react v0.462.0 - ISC 465 * 466 * This source code is licensed under the ISC license. 467 * See the LICENSE file in the root directory of this source tree. 468 */const Iz=rt("Timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);/** 469 * @license lucide-react v0.462.0 - ISC 470 * 471 * This source code is licensed under the ISC license. 472 * See the LICENSE file in the root directory of this source tree. 473 */const Wo=rt("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** 474 * @license lucide-react v0.462.0 - ISC 475 * 476 * This source code is licensed under the ISC license. 477 * See the LICENSE file in the root directory of this source tree. 478 */const zr=rt("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** 479 * @license lucide-react v0.462.0 - ISC 480 * 481 * This source code is licensed under the ISC license. 482 * See the LICENSE file in the root directory of this source tree. 483 */const oy=rt("Trophy",[["path",{d:"M6 9H4.5a2.5 2.5 0 0 1 0-5H6",key:"17hqa7"}],["path",{d:"M18 9h1.5a2.5 2.5 0 0 0 0-5H18",key:"lmptdp"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22",key:"1nw9bq"}],["path",{d:"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22",key:"1np0yb"}],["path",{d:"M18 2H6v7a6 6 0 0 0 12 0V2Z",key:"u46fv3"}]]);/** 484 * @license lucide-react v0.462.0 - ISC 485 * 486 * This source code is licensed under the ISC license. 487 * See the LICENSE file in the root directory of this source tree. 488 */const Cz=rt("Twitter",[["path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z",key:"pff0z6"}]]);/** 489 * @license lucide-react v0.462.0 - ISC 490 * 491 * This source code is licensed under the ISC license. 492 * See the LICENSE file in the root directory of this source tree. 493 */const ig=rt("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** 494 * @license lucide-react v0.462.0 - ISC 495 * 496 * This source code is licensed under the ISC license. 497 * See the LICENSE file in the root directory of this source tree. 498 */const sT=rt("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** 499 * @license lucide-react v0.462.0 - ISC 500 * 501 * This source code is licensed under the ISC license. 502 * See the LICENSE file in the root directory of this source tree. 503 */const _z=rt("Video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]);/** 504 * @license lucide-react v0.462.0 - ISC 505 * 506 * This source code is licensed under the ISC license. 507 * See the LICENSE file in the root directory of this source tree. 508 */const gh=rt("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** 509 * @license lucide-react v0.462.0 - ISC 510 * 511 * This source code is licensed under the ISC license. 512 * See the LICENSE file in the root directory of this source tree. 513 */const Lt=rt("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),V1="-",Tz=t=>{const n=Ez(t),{conflictingClassGroups:s,conflictingClassGroupModifiers:r}=t;return{getClassGroupId:o=>{const l=o.split(V1);return l[0]===""&&l.length!==1&&l.shift(),rT(l,n)||Pz(o)},getConflictingClassGroupIds:(o,l)=>{const c=s[o]||[];return l&&r[o]?[...c,...r[o]]:c}}},rT=(t,n)=>{var o;if(t.length===0)return n.classGroupId;const s=t[0],r=n.nextPart.get(s),a=r?rT(t.slice(1),r):void 0;if(a)return a;
vendor: 4,304 bytes, line 513
513if(n.validators.length===0)return;const i=t.join(V1);return(o=n.validators.find(({validator:l})=>l(i)))==null?void 0:o.classGroupId},U4=/^\[(.+)\]$/,Pz=t=>{if(U4.test(t)){const n=U4.exec(t)[1],s=n==null?void 0:n.substring(0,n.indexOf(":"));if(s)return"arbitrary.."+s}},Ez=t=>{const{theme:n,prefix:s}=t,r={nextPart:new Map,validators:[]};return Mz(Object.entries(t.classGroups),s).forEach(([i,o])=>{f2(o,r,i,n)}),r},f2=(t,n,s,r)=>{t.forEach(a=>{if(typeof a=="string"){const i=a===""?n:q4(n,a);i.classGroupId=s;return}if(typeof a=="function"){if(Lz(a)){f2(a(r),n,s,r);return}n.validators.push({validator:a,classGroupId:s});return}Object.entries(a).forEach(([i,o])=>{f2(o,q4(n,i),s,r)})})},q4=(t,n)=>{let s=t;return n.split(V1).forEach(r=>{s.nextPart.has(r)||s.nextPart.set(r,{nextPart:new Map,validators:[]}),s=s.nextPart.get(r)}),s},Lz=t=>t.isThemeGetter,Mz=(t,n)=>n?t.map(([s,r])=>{const a=r.map(i=>typeof i=="string"?n+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([o,l])=>[n+o,l])):i);return[s,a]}):t,Rz=t=>{if(t<1)return{get:()=>{},set:()=>{}};let n=0,s=new Map,r=new Map;const a=(i,o)=>{s.set(i,o),n++,n>t&&(n=0,r=s,s=new Map)};return{get(i){let o=s.get(i);if(o!==void 0)return o;if((o=r.get(i))!==void 0)return a(i,o),o},set(i,o){s.has(i)?s.set(i,o):a(i,o)}}},aT="!",Oz=t=>{const{separator:n,experimentalParseClassName:s}=t,r=n.length===1,a=n[0],i=n.length,o=l=>{const c=[];let d=0,h=0,p;for(let w=0;w<l.length;w++){let b=l[w];if(d===0){if(b===a&&(r||l.slice(w,w+i)===n)){c.push(l.slice(h,w)),h=w+i;continue}if(b==="/"){p=w;continue}}b==="["?d++:b==="]"&&d--}const m=c.length===0?l:l.substring(h),u=m.startsWith(aT),y=u?m.substring(1):m,g=p&&p>h?p-h:void 0;return{modifiers:c,hasImportantModifier:u,baseClassName:y,maybePostfixModifierPosition:g}};return s?l=>s({className:l,parseClassName:o}):o},Fz=t=>{if(t.length<=1)return t;const n=[];let s=[];return t.forEach(r=>{r[0]==="["?(n.push(...s.sort(),r),s=[]):s.push(r)}),n.push(...s.sort()),n},Vz=t=>({cache:Rz(t.cacheSize),parseClassName:Oz(t),...Tz(t)}),Bz=/\s+/,zz=(t,n)=>{const{parseClassName:s,getClassGroupId:r,getConflictingClassGroupIds:a}=n,i=[],o=t.trim().split(Bz);let l="";for(let c=o.length-1;c>=0;c-=1){const d=o[c],{modifiers:h,hasImportantModifier:p,baseClassName:m,maybePostfixModifierPosition:u}=s(d);let y=!!u,g=r(y?m.substring(0,u):m);if(!g){if(!y){l=d+(l.length>0?" "+l:l);continue}if(g=r(m),!g){l=d+(l.length>0?" "+l:l);continue}y=!1}const w=Fz(h).join(":"),b=p?w+aT:w,j=b+g;if(i.includes(j))continue;i.push(j);const N=a(g,y);for(let A=0;A<N.length;++A){const E=N[A];i.push(b+E)}l=d+(l.length>0?" "+l:l)}return l};function Uz(){let t=0,n,s,r="";for(;t<arguments.length;)(n=arguments[t++])&&(s=iT(n))&&(r&&(r+=" "),r+=s);return r}const iT=t=>{if(typeof t=="string")return t;let n,s="";for(let r=0;r<t.length;r++)t[r]&&(n=iT(t[r]))&&(s&&(s+=" "),s+=n);return s};function qz(t,...n){let s,r,a,i=o;function o(c){const d=n.reduce((h,p)=>p(h),t());return s=Vz(d),r=s.cache.get,a=s.cache.set,i=l,l(c)}function l(c){const d=r(c);if(d)return d;const h=zz(c,s);return a(c,h),h}return function(){return i(Uz.apply(null,arguments))}}const As=t=>{const n=s=>s[t]||[];return n.isThemeGetter=!0,n},oT=/^\[(?:([a-z-]+):)?(.+)\]$/i,Hz=/^\d+\/\d+$/,$z=new Set(["px","full","screen"]),Wz=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Gz=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Kz=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,Qz=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Yz=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,gl=t=>Vu(t)||$z.has(t)||Hz.test(t),ic=t=>Tp(t,"length",rU),Vu=t=>!!t&&!Number.isNaN(Number(t)),Iv=t=>Tp(t,"number",Vu),bm=t=>!!t&&Number.isInteger(Number(t)),Jz=t=>t.endsWith("%")&&Vu(t.slice(0,-1)),vn=t=>oT.test(t),oc=t=>Wz.test(t),Xz=new Set(["length","size","percentage"]),Zz=t=>Tp(t,Xz,lT),eU=t=>Tp(t,"position",lT),tU=new Set(["image","url"]),nU=t=>Tp(t,tU,iU),sU=t=>Tp(t,"",aU),vm=()=>!0,Tp=(t,n,s)=>{const r=oT.exec(t);return r?r[1]?typeof n=="string"?r[1]===n:n.has(r[1]):s(r[2]):!1},rU=t=>Gz.test(t)&&!Kz.test(t),lT=()=>!1,aU=t=>Qz.test(t),iU=t=>Yz.test(t),oU=()=>{const t=As("colors"),n=As("spacing"),s=As("blur"),r=As("brightness"),a=As("borderColor"),i=A
vendor: 12,696 bytes, line 513
513s("borderRadius"),o=As("borderSpacing"),l=As("borderWidth"),c=As("contrast"),d=As("grayscale"),h=As("hueRotate"),p=As("invert"),m=As("gap"),u=As("gradientColorStops"),y=As("gradientColorStopPositions"),g=As("inset"),w=As("margin"),b=As("opacity"),j=As("padding"),N=As("saturate"),A=As("scale"),E=As("sepia"),C=As("skew"),F=As("space"),O=As("translate"),L=()=>["auto","contain","none"],W=()=>["auto","hidden","clip","visible","scroll"],_=()=>["auto",vn,n],P=()=>[vn,n],K=()=>["",gl,ic],q=()=>["auto",Vu,vn],ae=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],ce=()=>["solid","dashed","dotted","double","none"],de=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],H=()=>["start","end","center","between","around","evenly","stretch"],X=()=>["","0",vn],V=()=>["auto","avoid","all","avoid-page","page","left","right","column"],he=()=>[Vu,vn];return{cacheSize:500,separator:":",theme:{colors:[vm],spacing:[gl,ic],blur:["none","",oc,vn],brightness:he(),borderColor:[t],borderRadius:["none","","full",oc,vn],borderSpacing:P(),borderWidth:K(),contrast:he(),grayscale:X(),hueRotate:he(),invert:X(),gap:P(),gradientColorStops:[t],gradientColorStopPositions:[Jz,ic],inset:_(),margin:_(),opacity:he(),padding:P(),saturate:he(),scale:he(),sepia:X(),skew:he(),space:P(),translate:P()},classGroups:{aspect:[{aspect:["auto","square","video",vn]}],container:["container"],columns:[{columns:[oc]}],"break-after":[{"break-after":V()}],"break-before":[{"break-before":V()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...ae(),vn]}],overflow:[{overflow:W()}],"overflow-x":[{"overflow-x":W()}],"overflow-y":[{"overflow-y":W()}],overscroll:[{overscroll:L()}],"overscroll-x":[{"overscroll-x":L()}],"overscroll-y":[{"overscroll-y":L()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",bm,vn]}],basis:[{basis:_()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",vn]}],grow:[{grow:X()}],shrink:[{shrink:X()}],order:[{order:["first","last","none",bm,vn]}],"grid-cols":[{"grid-cols":[vm]}],"col-start-end":[{col:["auto",{span:["full",bm,vn]},vn]}],"col-start":[{"col-start":q()}],"col-end":[{"col-end":q()}],"grid-rows":[{"grid-rows":[vm]}],"row-start-end":[{row:["auto",{span:[bm,vn]},vn]}],"row-start":[{"row-start":q()}],"row-end":[{"row-end":q()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",vn]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",vn]}],gap:[{gap:[m]}],"gap-x":[{"gap-x":[m]}],"gap-y":[{"gap-y":[m]}],"justify-content":[{justify:["normal",...H()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...H(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...H(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[j]}],px:[{px:[j]}],py:[{py:[j]}],ps:[{ps:[j]}],pe:[{pe:[j]}],pt:[{pt:[j]}],pr:[{pr:[j]}],pb:[{pb:[j]}],pl:[{pl:[j]}],m:[{m:[w]}],mx:[{mx:[w]}],my:[{my:[w]}],ms:[{ms:[w]}],me:[{me:[w]}],mt:[{mt:[w]}],mr:[{mr:[w]}],mb:[{mb:[w]}],ml:[{ml:[w]}],"space-x":[{"space-x":[F]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[F]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",vn,n]}],"min-w":[{"min-w":[vn,n,"min","max","fit"]}],"max-w":[{"max-w":[vn,n,"none","full","min","max","fit","prose",{screen:[oc]},oc]}],h:[{h:[vn,n,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[vn,n,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[vn,n,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[vn,n,"auto","min","max","fit"]}],"font-size":[{text:["base",oc,ic]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Iv]}],"font-family":[{font:[vm]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",vn]}],"line-clamp":[{"line-clamp":["none",Vu,Iv]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",gl,vn]}],"list-image":[{"list-image":["none",vn]}],"list-style-type":[{list:["none","disc","decimal",vn]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[b]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[b]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ce(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",gl,ic]}],"underline-offset":[{"underline-offset":["auto",gl,vn]}],"text-decoration-color":[{decoration:[t]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",vn]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",vn]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[b]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...ae(),eU]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Zz]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},nU]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[y]}],"gradient-via-pos":[{via:[y]}],"gradient-to-pos":[{to:[y]}],"gradient-from":[{from:[u]}],"gradient-via":[{via:[u]}],"gradient-to":[{to:[u]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[b]}],"border-style":[{border:[...ce(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[b]}],"divide-style":[{divide:ce()}],"border-color":[{border:[a]}],"border-color-x":[{"border-x":[a]}],"border-color-y":[{"border-y":[a]}],"border-color-s":[{"border-s":[a]}],"border-color-e":[{"border-e":[a]}],"border-color-t":[{"border-t":[a]}],"border-color-r":[{"border-r":[a]}],"border-color-b":[{"border-b":[a]}],"border-color-l":[{"border-l":[a]}],"divide-color":[{divide:[a]}],"outline-style":[{outline:["",...ce()]}],"outline-offset":[{"outline-offset":[gl,vn]}],"outline-w":[{outline:[gl,ic]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:K()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[b]}],"ring-offset-w":[{"ring-offset":[gl,ic]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",oc,sU]}],"shadow-color":[{shadow:[vm]}],opacity:[{opacity:[b]}],"mix-blend":[{"mix-blend":[...de(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":de()}],filter:[{filter:["","none"]}],blur:[{blur:[s]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",oc,vn]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[h]}],invert:[{invert:[p]}],saturate:[{saturate:[N]}],sepia:[{sepia:[E]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[s]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[h]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[b]}],"backdrop-saturate":[{"backdrop-saturate":[N]}],"backdrop-sepia":[{"backdrop-sepia":[E]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",vn]}],duration:[{duration:he()}],ease:[{ease:["linear","in","out","in-out",vn]}],delay:[{delay:he()}],animate:[{animate:["none","spin","ping","pulse","bounce",vn]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[A]}],"scale-x":[{"scale-x":[A]}],"scale-y":[{"scale-y":[A]}],rotate:[{rotate:[bm,vn]}],"translate-x":[{"translate-x":[O]}],"translate-y":[{"translate-y":[O]}],"skew-x":[{"skew-x":[C]}],"skew-y":[{"skew-y":[C]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",vn]}],accent:[{accent:["auto",t]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",vn]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}
vendor: 4,647 bytes, line 513
513],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",vn]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[gl,ic,Iv]}],stroke:[{stroke:[t,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},lU=qz(oU);function Ht(...t){return lU(Q_(t))}const cU=ez,cT=S.forwardRef(({className:t,...n},s)=>e.jsx(U_,{ref:s,className:Ht("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",t),...n}));cT.displayName=U_.displayName;const dU=H0("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),dT=S.forwardRef(({className:t,variant:n,...s},r)=>e.jsx(q_,{ref:r,className:Ht(dU({variant:n}),t),...s}));dT.displayName=q_.displayName;const hU=S.forwardRef(({className:t,...n},s)=>e.jsx(W_,{ref:s,className:Ht("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",t),...n}));hU.displayName=W_.displayName;const hT=S.forwardRef(({className:t,...n},s)=>e.jsx(G_,{ref:s,className:Ht("absolute right-2 top-2 rounded-md p-1 text-foreground
513/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",t),"toast-close":"",...n,children:e.jsx(gh,{className:"h-4 w-4"})}));hT.displayName=G_.displayName;const uT=S.forwardRef(({className:t,...n},s)=>e.jsx(H_,{ref:s,className:Ht("text-sm font-semibold",t),...n}));uT.displayName=H_.displayName;const pT=S.forwardRef(({className:t,...n},s)=>e.jsx($_,{ref:s,className:Ht("text-sm opacity-90",t),...n}));pT.displayName=$_.displayName;function uU(){const{toasts:t}=N_();return e.jsxs(cU,{children:[t.map(function({id:n,title:s,description:r,action:a,...i}){return e.jsxs(dT,{...i,children:[e.jsxs("div",{className:"grid gap-1",children:[s&&e.jsx(uT,{children:s}),r&&e.jsx(pT,{children:r})]}),a,e.jsx(hT,{})]},n)}),e.jsx(cT,{})]})}var H4=["light","dark"],pU="(prefers-color-scheme: dark)",mU=S.createContext(void 0),fU={setTheme:t=>{},themes:[]},gU=()=>{var t;return(t=S.useContext(mU))!=null?t:fU};S.memo(({forcedTheme:t,storageKey:n,attribute:s,enableSystem:r,enableColorScheme:a,defaultTheme:i,value:o,attrs:l,nonce:c})=>{let d=i==="system",h=s==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${l.map(y=>`'${y}'`).join(",")})`};`:`var d=document.documentElement,n='${s}',s='setAttribute';`,p=a?H4.includes(i)&&i?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${i}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",m=(y,g=!1,w=!0)=>{let b=o?o[y]:y,j=g?y+"|| ''":`'${b}'`,N="";return a&&w&&!g&&H4.includes(y)&&(N+=`d.style.colorScheme = '${y}';`),s==="class"?g||b?N+=`c.add(${j})`:N+="null":b&&(N+=`d[s](n,${j})`),N},u=t?`!function(){${h}${m(t)}}()`:r?`!function(){try{${h}var e=localStorage.getItem('${n}');if('system'===e||(!e&&${d})){var t='${pU}',m=window.matchMedia(t);if(m.media!==t||m.matches){${m("dark")}}else{${m("light")}}}else if(e){${o?`var x=${JSON.stringify(o)};`:""}${m(o?"x[e]":"e",!0)}}${d?"":"else{"+m(i,!1,!1)+"}"}${p}}catch(e){}}()`:`!function(){try{${h}var e=localStorage.getItem('${n}');if(e){${o?`var x=${JSON.stringify(o)};`:""}${m(o?"x[e]":"e",!0)}}else{${m(i,!1,!1)};}${p}}catch(t){}}();`;return S.createElement("script",{nonce:c,dangerouslySetInnerHTML:{__html:u}})});var xU=t=>{switch(t){case"success":return vU;case"info":return jU;case"warning":return wU;case"error":return kU;default:return null}},yU=Array(12).fill(0),bU=({visible:t})=>Ue.createElement("div",{className:"sonner-loading-wrapper","data-visible":t},Ue.createElement("div",{className:"sonner-spinner"},yU.map((n,s)=>Ue.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${s}`})))),vU=Ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Ue.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),wU=Ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},Ue.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),jU=Ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Ue.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),kU=Ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Ue.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),NU=()=>{let[t,n]=Ue.useState(document.hidden);return Ue.useEffect(()=>{let s=()=>{n(document.hidden)};
513return document.addEventListener("visibilitychange",s),()=>window.removeEventListener("visibilitychange",s)},[]),t},g2=1,SU=class{constructor(){this.subscribe=n=>(this.subscribers.push(n),()=>{let s=this.subscribers.indexOf(n);this.subscribers.splice(s,1)}),this.publish=n=>{this.subscribers.forEach(s=>s(n))},this.addToast=n=>{this.publish(n),this.toasts=[...this.toasts,n]},this.create=n=>{var s;let{message:r,...a}=n,i=typeof(n==null?void 0:n.id)=="number"||((s=n.id)==null?void 0:s.length)>0?n.id:g2++,o=this.toasts.find(c=>c.id===i),l=n.dismissible===void 0?!0:n.dismissible;return o?this.toasts=this.toasts.map(c=>c.id===i?(this.publish({...c,...n,id:i,title:r}),{...c,...n,id:i,dismissible:l,title:r}):c):this.addToast({title:r,...a,dismissible:l,id:i}),i},this.dismiss=n=>(n||this.toasts.forEach(s=>{this.subscribers.forEach(r=>r({id:s.id,dismiss:!0}))}),this.subscribers.forEach(s=>s({id:n,dismiss:!0})),n),this.message=(n,s)=>this.create({...s,message:n}),this.error=(n,s)=>this.create({...s,message:n,type:"error"}),this.success=(n,s)=>this.create({...s,type:"success",message:n}),this.info=(n,s)=>this.create({...s,type:"info",message:n}),this.warning=(n,s)=>this.create({...s,type:"warning",message:n}),this.loading=(n,s)=>this.create({...s,type:"loading",message:n}),this.promise=(n,s)=>{if(!s)return;let r;s.loading!==void 0&&(r=this.create({...s,promise:n,type:"loading",message:s.loading,description:typeof s.description!="function"?s.description:void 0}));let a=n instanceof Promise?n:n(),i=r!==void 0;return a.then(async o=>{if(DU(o)&&!o.ok){i=!1;let l=typeof s.error=="function"?await s.error(`HTTP error! status: ${o.status}`):s.error,c=typeof s.description=="function"?await s.description(`HTTP error! status: ${o.status}`):s.description;this.create({id:r,type:"error",message:l,description:c})}else if(s.success!==void 0){i=!1;let l=typeof s.success=="function"?await s.success(o):s.success,c=typeof s.description=="function"?await s.description(o):s.description;this.create({id:r,type:"success",message:l,description:c})}}).catch(async o=>{if(s.error!==void 0){i=!1;let l=typeof s.error=="function"?await s.error(o):s.error,c=typeof s.description=="function"?await s.description(o):s.description;this.create({id:r,type:"error",message:l,description:c})}}).finally(()=>{var o;i&&(this.dismiss(r),r=void 0),(o=s.finally)==null||o.call(s)}),r},this.custom=(n,s)=>{let r=(s==null?void 0:s.id)||g2++;return this.create({jsx:n(r),id:r,...s}),r},this.subscribers=[],this.toasts=[]}},fi=new SU,AU=(t,n)=>{let s=(n==null?void 0:n.id)||g2++;return fi.addToast({title:t,...n,id:s}),s},DU=t=>t&&typeof t=="object"&&"ok"in t&&typeof t.ok=="boolean"&&"status"in t&&typeof t.status=="number",IU=AU,CU=()=>fi.toasts;Object.assign(IU,{success:fi.success,info:fi.info,warning:fi.warning,error:fi.error,custom:fi.custom,message:fi.message,promise:fi.promise,dismiss:fi.dismiss,loading:fi.loading},{getHistory:CU});function _U(t,{insertAt:n}={}){if(typeof document>"u")return;let s=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",n==="top"&&s.firstChild?s.insertBefore(r,s.firstChild):s.appendChild(r),r.styleSheet?r.styleSheet.cssText=t:r.appendChild(document.createTextNode(t))}_U(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999}:where([data-sonner-toaster][data-x-position="right"]){right:max(var(--offset),env(safe-area-inset-right))}:where([data-sonner-toaster][data-x-position="left"]){left:max(var(--offset),env(safe-area-inset-left))}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:max(var(--offset),env(safe-area-inset-top))}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:max(var(--offset),env(safe-area-inset-bottom))}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
513left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;background:var(--gray1);color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:0;right:0;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
513:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount, 0px));transition:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation:swipe-out .2s ease-out forwards}@keyframes swipe-out{0%{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount)));opacity:1}to{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount) + var(--lift) * -100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;--mobile-offset: 16px;right:var(--mobile-offset);left:var(--mobile-offset);width:100%}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset)}[data-sonner-toaster][data-y-position=bottom]{bottom:20px}[data-sonner-toaster][data-y-position=top]{top:20px}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset);right:var(--mobile-offset);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} 514`);function ux(t){return t.label!==void 0}var TU=3,PU="32px",EU=4e3,LU=356,MU=14,RU=20,OU=200;function FU(...t){return t.filter(Boolean).join(" ")}var VU=t=>{var n,s,r,a,i,o,l,c,d,h;let{invert:p,toast:m,unstyled:u,interacting:y,setHeights:g,visibleToasts:w,heights:b,index:j,toasts:N,expanded:A,removeToast:E,defaultRichColors:C,closeButton:F,style:O,cancelButtonStyle:L,actionButtonStyle:W,className:_="",descriptionClassName:P="",duration:K,position:q,gap:ae,loadingIcon:ce,expandByDefault:de,classNames:H,icons:X,closeButtonAriaLabel:V="Close toast",pauseWhenPageIsHidden:he,cn:T}=t,[I,G]=Ue.useState(!1),[re,ne]=Ue.useState(!1),[pe,je]=Ue.useState(!1),[ke,De]=Ue.useState(!1),[Pe,Ze]=Ue.useState(0),[tt,Je]=Ue.useState(0),Y=Ue.useRef(null),Oe=Ue.useRef(null),Wt=j===0,yt=j+1<=w,Ce=m.type,wt=m.dismissible!==!1,ot=m.className||"",_t=m.descriptionClassName||"",gt=Ue.useMemo(()=>b.findIndex(nt=>nt.toastId===m.id)||0,[b,m.id]),un=Ue.useMemo(()=>{var nt;return(nt=m.closeButton)!=null?nt:F},[m.closeButton,F]),Xt=Ue.useMemo(()=>m.duration||K||EU,[m.duration,K]),be=Ue.useRef(0),Ie=Ue.useRef(0),$e=Ue.useRef(0),Fe=Ue.useRef(null),[at,dt]=q.split("-"),rn=Ue.useMemo(()=>b.reduce((nt,it,ht)=>ht>=gt?nt:nt+it.height,0),[b,gt]),Ut=NU(),qt=m.invert||p,Vt=Ce==="loading";Ie.current=Ue.useMemo(()=>gt*ae+rn,[gt,rn]),Ue.useEffect(()=>{G(!0)},[]),Ue.useLayoutEffect(()=>{if(!I)return;let nt=Oe.current,it=nt.style.height;nt.style.height="auto";let ht=nt.getBoundingClientRect().height;nt.style.height=it,Je(ht),g(nn=>nn.find(Mt=>Mt.toastId===m.id)?nn.map(Mt=>Mt.toastId===m.id?{...Mt,height:ht}:Mt):[{toastId:m.id,height:ht,position:m.position},...nn])},[I,m.title,m.description,g,m.id]);let Gt=Ue.useCallback(()=>{ne(!0),Ze(Ie.current),g(nt=>nt.filter(it=>it.toastId!==m.id)),setTimeout(()=>{E(m)},OU)},[m,E,g,Ie]);Ue.useEffect(()=>{if(m.promise&&Ce==="loading"||m.duration===1/0||m.type==="loading")return;let nt,it=Xt;return A||y||he&&Ut?(()=>{if($e.current<be.current){let ht=new Date().getTime()-be.current;it=it-ht}
514$e.current=new Date().getTime()})():it!==1/0&&(be.current=new Date().getTime(),nt=setTimeout(()=>{var ht;(ht=m.onAutoClose)==null||ht.call(m,m),Gt()},it)),()=>clearTimeout(nt)},[A,y,de,m,Xt,Gt,m.promise,Ce,he,Ut]),Ue.useEffect(()=>{let nt=Oe.current;if(nt){let it=nt.getBoundingClientRect().height;return Je(it),g(ht=>[{toastId:m.id,height:it,position:m.position},...ht]),()=>g(ht=>ht.filter(nn=>nn.toastId!==m.id))}},[g,m.id]),Ue.useEffect(()=>{m.delete&&Gt()},[Gt,m.delete]);function bt(){return X!=null&&X.loading?Ue.createElement("div",{className:"sonner-loader","data-visible":Ce==="loading"},X.loading):ce?Ue.createElement("div",{className:"sonner-loader","data-visible":Ce==="loading"},ce):Ue.createElement(bU,{visible:Ce==="loading"})}return Ue.createElement("li",{"aria-live":m.important?"assertive":"polite","aria-atomic":"true",role:"status",tabIndex:0,ref:Oe,className:T(_,ot,H==null?void 0:H.toast,(n=m==null?void 0:m.classNames)==null?void 0:n.toast,H==null?void 0:H.default,H==null?void 0:H[Ce],(s=m==null?void 0:m.classNames)==null?void 0:s[Ce]),"data-sonner-toast":"","data-rich-colors":(r=m.richColors)!=null?r:C,"data-styled":!(m.jsx||m.unstyled||u),"data-mounted":I,"data-promise":!!m.promise,"data-removed":re,"data-visible":yt,"data-y-position":at,"data-x-position":dt,"data-index":j,"data-front":Wt,"data-swiping":pe,"data-dismissible":wt,"data-type":Ce,"data-invert":qt,"data-swipe-out":ke,"data-expanded":!!(A||de&&I),style:{"--index":j,"--toasts-before":j,"--z-index":N.length-j,"--offset":`${re?Pe:Ie.current}px`,"--initial-height":de?"auto":`${tt}px`,...O,...m.style},onPointerDown:nt=>{Vt||!wt||(Y.current=new Date,Ze(Ie.current),nt.target.setPointerCapture(nt.pointerId),nt.target.tagName!=="BUTTON"&&(je(!0),Fe.current={x:nt.clientX,y:nt.clientY}))},onPointerUp:()=>{var nt,it,ht,nn;if(ke||!wt)return;Fe.current=null;let Mt=Number(((nt=Oe.current)==null?void 0:nt.style.getPropertyValue("--swipe-amount").replace("px",""))||0),Tt=new Date().getTime()-((it=Y.current)==null?void 0:it.getTime()),In=Math.abs(Mt)/Tt;if(Math.abs(Mt)>=RU||In>.11){Ze(Ie.current),(ht=m.onDismiss)==null||ht.call(m,m),Gt(),De(!0);return}(nn=Oe.current)==null||nn.style.setProperty("--swipe-amount","0px"),je(!1)},onPointerMove:nt=>{var it;if(!Fe.current||!wt)return;let ht=nt.clientY-Fe.current.y,nn=nt.clientX-Fe.current.x,Mt=(at==="top"?Math.min:Math.max)(0,ht),Tt=nt.pointerType==="touch"?10:2;Math.abs(Mt)>Tt?(it=Oe.current)==null||it.style.setProperty("--swipe-amount",`${ht}px`):Math.abs(nn)>Tt&&(Fe.current=null)}},un&&!m.jsx?Ue.createElement("button",{"aria-label":V,"data-disabled":Vt,"data-close-button":!0,onClick:Vt||!wt?()=>{}:()=>{var nt;Gt(),(nt=m.onDismiss)==null||nt.call(m,m)},className:T(H==null?void 0:H.closeButton,(a=m==null?void 0:m.classNames)==null?void 0:a.closeButton)},Ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},Ue.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),Ue.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))):null,m.jsx||Ue.isValidElement(m.title)?m.jsx||m.title:Ue.createElement(Ue.Fragment,null,Ce||m.icon||m.promise?Ue.createElement("div",{"data-icon":"",className:T(H==null?void 0:H.icon,(i=m==null?void 0:m.classNames)==null?void 0:i.icon)},m.promise||m.type==="loading"&&!m.icon?m.icon||bt():null,m.type!=="loading"?m.
514icon||(X==null?void 0:X[Ce])||xU(Ce):null):null,Ue.createElement("div",{"data-content":"",className:T(H==null?void 0:H.content,(o=m==null?void 0:m.classNames)==null?void 0:o.content)},Ue.createElement("div",{"data-title":"",className:T(H==null?void 0:H.title,(l=m==null?void 0:m.classNames)==null?void 0:l.title)},m.title),m.description?Ue.createElement("div",{"data-description":"",className:T(P,_t,H==null?void 0:H.description,(c=m==null?void 0:m.classNames)==null?void 0:c.description)},m.description):null),Ue.isValidElement(m.cancel)?m.cancel:m.cancel&&ux(m.cancel)?Ue.createElement("button",{"data-button":!0,"data-cancel":!0,style:m.cancelButtonStyle||L,onClick:nt=>{var it,ht;ux(m.cancel)&&wt&&((ht=(it=m.cancel).onClick)==null||ht.call(it,nt),Gt())},className:T(H==null?void 0:H.cancelButton,(d=m==null?void 0:m.classNames)==null?void 0:d.cancelButton)},m.cancel.label):null,Ue.isValidElement(m.action)?m.action:m.action&&ux(m.action)?Ue.createElement("button",{"data-button":!0,"data-action":!0,style:m.actionButtonStyle||W,onClick:nt=>{var it,ht;ux(m.action)&&(nt.defaultPrevented||((ht=(it=m.action).onClick)==null||ht.call(it,nt),Gt()))},className:T(H==null?void 0:H.actionButton,(h=m==null?void 0:m.classNames)==null?void 0:h.actionButton)},m.action.label):null))};function $4(){if(typeof window>"u"||typeof document>"u")return"ltr";let t=document.documentElement.getAttribute("dir");return t==="auto"||!t?window.getComputedStyle(document.documentElement).direction:t}var BU=t=>{let{invert:n,position:s="bottom-right",hotkey:r=["altKey","KeyT"],expand:a,closeButton:i,className:o,offset:l,theme:c="light",richColors:d,duration:h,style:p,visibleToasts:m=TU,toastOptions:u,dir:y=$4(),gap:g=MU,loadingIcon:w,icons:b,containerAriaLabel:j="Notifications",pauseWhenPageIsHidden:N,cn:A=FU}=t,[E,C]=Ue.useState([]),F=Ue.useMemo(()=>Array.from(new Set([s].concat(E.filter(he=>he.position).map(he=>he.position)))),[E,s]),[O,L]=Ue.useState([]),[W,_]=Ue.useState(!1),[P,K]=Ue.useState(!1),[q,ae]=Ue.useState(c!=="system"?c:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),ce=Ue.useRef(null),de=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),H=Ue.useRef(null),X=Ue.useRef(!1),V=Ue.useCallback(he=>{var T;(T=E.find(I=>I.id===he.id))!=null&&T.delete||fi.dismiss(he.id),C(I=>I.filter(({id:G})=>G!==he.id))},[E]);return Ue.useEffect(()=>fi.subscribe(he=>{if(he.dismiss){C(T=>T.map(I=>I.id===he.id?{...I,delete:!0}:I));return}setTimeout(()=>{w1.flushSync(()=>{C(T=>{let I=T.findIndex(G=>G.id===he.id);
514return I!==-1?[...T.slice(0,I),{...T[I],...he},...T.slice(I+1)]:[he,...T]})})})}),[]),Ue.useEffect(()=>{if(c!=="system"){ae(c);return}c==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?ae("dark"):ae("light")),typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",({matches:he})=>{ae(he?"dark":"light")})},[c]),Ue.useEffect(()=>{E.length<=1&&_(!1)},[E]),Ue.useEffect(()=>{let he=T=>{var I,G;r.every(re=>T[re]||T.code===re)&&(_(!0),(I=ce.current)==null||I.focus()),T.code==="Escape"&&(document.activeElement===ce.current||(G=ce.current)!=null&&G.contains(document.activeElement))&&_(!1)};return document.addEventListener("keydown",he),()=>document.removeEventListener("keydown",he)},[r]),Ue.useEffect(()=>{if(ce.current)return()=>{H.current&&(H.current.focus({preventScroll:!0}),H.current=null,X.current=!1)}},[ce.current]),E.length?Ue.createElement("section",{"aria-label":`${j} ${de}`,tabIndex:-1},F.map((he,T)=>{var I;let[G,re]=he.split("-");return Ue.createElement("ol",{key:he,dir:y==="auto"?$4():y,tabIndex:-1,ref:ce,className:o,"data-sonner-toaster":!0,"data-theme":q,"data-y-position":G,"data-x-position":re,style:{"--front-toast-height":`${((I=O[0])==null?void 0:I.height)||0}px`,"--offset":typeof l=="number"?`${l}px`:l||PU,"--width":`${LU}px`,"--gap":`${g}px`,...p},onBlur:ne=>{X.current&&!ne.currentTarget.contains(ne.relatedTarget)&&(X.current=!1,H.current&&(H.current.focus({preventScroll:!0}),H.current=null))},onFocus:ne=>{ne.target instanceof HTMLElement&&ne.target.dataset.dismissible==="false"||X.current||(X.current=!0,H.current=ne.relatedTarget)},onMouseEnter:()=>_(!0),onMouseMove:()=>_(!0),onMouseLeave:()=>{P||_(!1)},onPointerDown:ne=>{ne.target instanceof HTMLElement&&ne.target.dataset.dismissible==="false"||K(!0)},onPointerUp:()=>K(!1)},E.filter(ne=>!ne.position&&T===0||ne.position===he).map((ne,pe)=>{var je,ke;return Ue.createElement(VU,{key:ne.id,icons:b,index:pe,toast:ne,defaultRichColors:d,duration:(je=u==null?void 0:u.duration)!=null?je:h,className:u==null?void 0:u.className,descriptionClassName:u==null?void 0:u.descriptionClassName,invert:n,visibleToasts:m,closeButton:(ke=u==null?void 0:u.closeButton)!=null?ke:i,interacting:P,position:he,style:u==null?void 0:u.style,unstyled:u==null?void 0:u.unstyled,classNames:u==null?void 0:u.classNames,cancelButtonStyle:u==null?void 0:u.cancelButtonStyle,actionButtonStyle:u==null?void 0:u.actionButtonStyle,removeToast:V,toasts:E.filter(De=>De.position==ne.position),heights:O.filter(De=>De.position==ne.position),setHeights:L,expandByDefault:a,gap:g,loadingIcon:w,expanded:W,pauseWhenPageIsHidden:N,cn:A})}))})):null};const zU=({...t})=>{const{theme:n="system"}=gU();return e.jsx(BU,{theme:n,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...t})};var UU=O6.useId||(()=>{}),qU=0;function Cl(t){const[n,s]=S.useState(UU());return Ll(()=>{s(r=>r??String(qU++))},[t]),n?`radix-${n}`:""}const HU=["top","right","bottom","left"],ed=Math.min,yi=Math.max,e0=Math.round,px=Math.floor,td=t=>({x:t,y:t}),$U={left:"right",right:"left",bottom:"top",top:"bottom"},WU={start:"end",end:"start"};function x2(t,n,s){return yi(t,ed(n,s))}function Ml(t,n){return typeof t=="function"?t(n):t}function Rl(t){return t.split("-")[0]}function Pp(t){return t.split("-")[1]}function B1(t){return t==="x"?"y":"x"}function z1(t){return t==="y"?"height":"width"}function nd(t){return["top","bottom"].includes(Rl(t))?"y":"x"}function U1(t){return B1(nd(t))}function GU(t,n,s){s===void 0&&(s=!1);const r=Pp(t),a=U1(t),i=z1(a);let o=a==="x"?r===(s?"end":"start")?"right":"left":r==="start"?"bottom":"top";return n.reference[i]>n.floating[i]&&(o=t0(o)),[o,t0(o)]}function KU(t){const n=t0(t);return[y2(t),n,y2(n)]}function y2(t){return t.replace(/start|end/g,n=>WU[n])}function QU(t,n,s){const r=["left","right"],a=["right","left"],i=["top","bottom"],o=["bottom","top"];switch(t){case"top":case"bottom":return s?n?a:r:n?r:a;case"left":case"right":return n?i:o;default:return[]}}function YU(t,n,s,r){const a=Pp(t);let i=QU(Rl(t),s==="start",r);return a&&(i=i.map(o=>o+"-"+a),n&&(i=i.concat(i.map(y2)))),i}function t0(t){return t.replace(/left|right|bottom|top/g,n=>$U[n])}function JU(t){return{top:0,right:0,bottom:0,left:0,...t}}function mT(t){return typeof t!="number"?JU(t):{top:t,right:t,bottom:t,left:t}}function n0(t){const{x:n,y:s,width:r,height:a}=t;return{width:r,height:a,top:s,left:n,right:n+r,bottom:s+a,x:n,y:s}}function W4(t,n,s){let{reference:r,floating:a}=t;const i=nd(n),o=U1(n),l=z1(o),c=Rl(n),d=i==="y",h=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2,m=r[l]/2-a[l]/2;let u;switch(c){case"top":u={x:h,y:r.y-a.height};break;case"bottom":u={x:h,y:r.y+r.height};break;case"right":u={x:r.x+r.width,y:p};break;case"left":u={x:r.x-a.width,y:p};break;default:u={x:r.x,y:r.y}}switch(Pp(n)){case"start":u[o]-=m*(s&&d?-1:1);break;case"end":u[o]+=m*(s&&d?-1:1);break}return u}const XU=async(t,n,s)=>{const{placement:r="bottom",strategy:a="absolute",middleware:i=[],platform:o}
514=s,l=i.filter(Boolean),c=await(o.isRTL==null?void 0:o.isRTL(n));let d=await o.getElementRects({reference:t,floating:n,strategy:a}),{x:h,y:p}=W4(d,r,c),m=r,u={},y=0;for(let g=0;g<l.length;g++){const{name:w,fn:b}=l[g],{x:j,y:N,data:A,reset:E}=await b({x:h,y:p,initialPlacement:r,placement:m,strategy:a,middlewareData:u,rects:d,platform:o,elements:{reference:t,floating:n}});h=j??h,p=N??p,u={...u,[w]:{...u[w],...A}},E&&y<=50&&(y++,typeof E=="object"&&(E.placement&&(m=E.placement),E.rects&&(d=E.rects===!0?await o.getElementRects({reference:t,floating:n,strategy:a}):E.rects),{x:h,y:p}=W4(d,m,c)),g=-1)}return{x:h,y:p,placement:m,strategy:a,middlewareData:u}};async function Ef(t,n){var s;n===void 0&&(n={});const{x:r,y:a,platform:i,rects:o,elements:l,strategy:c}=t,{boundary:d="clippingAncestors",rootBoundary:h="viewport",elementContext:p="floating",altBoundary:m=!1,padding:u=0}=Ml(n,t),y=mT(u),w=l[m?p==="floating"?"reference":"floating":p],b=n0(await i.getClippingRect({element:(s=await(i.isElement==null?void 0:i.isElement(w)))==null||s?w:w.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:d,rootBoundary:h,strategy:c})),j=p==="floating"?{x:r,y:a,width:o.floating.width,height:o.floating.height}:o.reference,N=await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),A=await(i.isElement==null?void 0:i.isElement(N))?await(i.getScale==null?void 0:i.getScale(N))||{x:1,y:1}:{x:1,y:1},E=n0(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:j,offsetParent:N,strategy:c}):j);return{top:(b.top-E.top+y.top)/A.y,bottom:(E.bottom-b.bottom+y.bottom)/A.y,left:(b.left-E.left+y.left)/A.x,right:(E.right-b.right+y.right)/A.x}}const ZU=t=>({name:"arrow",options:t,async fn(n){const{x:s,y:r,placement:a,rects:i,platform:o,elements:l,middlewareData:c}=n,{element:d,padding:h=0}=Ml(t,n)||{};if(d==null)return{};const p=mT(h),m={x:s,y:r},u=U1(a),y=z1(u),g=await o.getDimensions(d),w=u==="y",b=w?"top":"left",j=w?"bottom":"right",N=w?"clientHeight":"clientWidth",A=i.reference[y]+i.reference[u]-m[u]-i.floating[y],E=m[u]-i.reference[u],C=await(o.getOffsetParent==null?void 0:o.getOffsetParent(d));let F=C?C[N]:0;(!F||!await(o.isElement==null?void 0:o.isElement(C)))&&(F=l.floating[N]||i.floating[y]);const O=A/2-E/2,L=F/2-g[y]/2-1,W=ed(p[b],L),_=ed(p[j],L),P=W,K=F-g[y]-_,q=F/2-g[y]/2+O,ae=x2(P,q,K),ce=!c.arrow&&Pp(a)!=null&&q!==ae&&i.reference[y]/2-(q<P?W:_)-g[y]/2<0,de=ce?q<P?q-P:q-K:0;return{[u]:m[u]+de,data:{[u]:ae,centerOffset:q-ae-de,...ce&&{alignmentOffset:de}},reset:ce}}}),eq=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(n){var s,r;const{placement:a,middlewareData:i,rects:o,initialPlacement:l,platform:c,elements:d}=n,{mainAxis:h=!0,crossAxis:p=!0,fallbackPlacements:m,fallbackStrategy:u="bestFit",fallbackAxisSideDirection:y="none",flipAlignment:g=!0,...w}=Ml(t,n);if((s=i.arrow)!=null&&s.alignmentOffset)return{};const b=Rl(a),j=nd(l),N=Rl(l)===l,A=await(c.isRTL==null?void 0:c.isRTL(d.floating)),E=m||(N||!g?[t0(l)]:KU(l)),C=y!=="none";!m&&C&&E.push(...YU(l,g,y,A));const F=[l,...E],O=await Ef(n,w),L=[];let W=((r=i.flip)==null?void 0:r.overflows)||[];if(h&&L.push(O[b]),p){const q=GU(a,o,A);L.push(O[q[0]],O[q[1]])}if(W=[...W,{placement:a,overflows:L}],!L.every(q=>q<=0)){var _,P;const q=(((_=i.flip)==null?void 0:_.index)||0)+1,ae=F[q];if(ae)return{data:{index:q,overflows:W},reset:{placement:ae}};let ce=(P=W.filter(de=>de.overflows[0]<=0).sort((de,H)=>de.overflows[1]-H.overflows[1])[0])==null?void 0:P.placement;if(!ce)switch(u){case"bestFit":{var K;const de=(K=W.filter(H=>{if(C){const X=nd(H.placement);return X===j||X==="y"}return!0}).map(H=>[H.placement,H.overflows.filter(X=>X>0).reduce((X,V)=>X+V,0)]).sort((H,X)=>H[1]-X[1])[0])==null?void 0:K[0];de&&(ce=de);break}case"initialPlacement":ce=l;break}if(a!==ce)return{reset:{placement:ce}}}return{}}}};function G4(t,n){return{top:t.top-n.height,right:t.right-n.width,bottom:t.bottom-n.height,left:t.left-n.width}}function K4(t){return HU.some(n=>t[n]>=0)}const tq=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(n){const{rects:s}=n,{strategy:r="referenceHidden",...a}=Ml(t,n);switch(r){case"referenceHidden":{const i=await Ef(n,{...a,elementContext:"reference"}),o=G4(i,s.reference);return{data:{referenceHiddenOffsets:o,referenceHidden:K4(o)}}}case"escaped":{const i=await Ef(n,{...a,altBoundary:!0}),o=G4(i,s.floating);return{data:{escapedOffsets:o,escaped:K4(o)}}}default:return{}}}}};async function nq(t,n){const{placement:s,platform:r,elements:a}=t,i=await(r.isRTL==null?void 0:r.isRTL(a.floating)),o=Rl(s),l=Pp(s),c=nd(s)==="y",d=["left","top"].includes(o)?-1:1,h=i&&c?-1:1,p=Ml(n,t);let{mainAxis:m,crossAxis:u,alignmentAxis:y}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}
514:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return l&&typeof y=="number"&&(u=l==="end"?y*-1:y),c?{x:u*h,y:m*d}:{x:m*d,y:u*h}}const sq=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(n){var s,r;const{x:a,y:i,placement:o,middlewareData:l}=n,c=await nq(n,t);return o===((s=l.offset)==null?void 0:s.placement)&&(r=l.arrow)!=null&&r.alignmentOffset?{}:{x:a+c.x,y:i+c.y,data:{...c,placement:o}}}}},rq=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(n){const{x:s,y:r,placement:a}=n,{mainAxis:i=!0,crossAxis:o=!1,limiter:l={fn:w=>{let{x:b,y:j}=w;return{x:b,y:j}}},...c}=Ml(t,n),d={x:s,y:r},h=await Ef(n,c),p=nd(Rl(a)),m=B1(p);let u=d[m],y=d[p];if(i){const w=m==="y"?"top":"left",b=m==="y"?"bottom":"right",j=u+h[w],N=u-h[b];u=x2(j,u,N)}if(o){const w=p==="y"?"top":"left",b=p==="y"?"bottom":"right",j=y+h[w],N=y-h[b];y=x2(j,y,N)}const g=l.fn({...n,[m]:u,[p]:y});return{...g,data:{x:g.x-s,y:g.y-r,enabled:{[m]:i,[p]:o}}}}}},aq=function(t){return t===void 0&&(t={}),{options:t,fn(n){const{x:s,y:r,placement:a,rects:i,middlewareData:o}=n,{offset:l=0,mainAxis:c=!0,crossAxis:d=!0}=Ml(t,n),h={x:s,y:r},p=nd(a),m=B1(p);let u=h[m],y=h[p];const g=Ml(l,n),w=typeof g=="number"?{mainAxis:g,crossAxis:0}:{mainAxis:0,crossAxis:0,...g};if(c){const N=m==="y"?"height":"width",A=i.reference[m]-i.floating[N]+w.mainAxis,E=i.reference[m]+i.reference[N]-w.mainAxis;u<A?u=A:u>E&&(u=E)}if(d){var b,j;const N=m==="y"?"width":"height",A=["top","left"].includes(Rl(a)),E=i.reference[p]-i.floating[N]+(A&&((b=o.offset)==null?void 0:b[p])||0)+(A?0:w.crossAxis),C=i.reference[p]+i.reference[N]+(A?0:((j=o.offset)==null?void 0:j[p])||0)-(A?w.crossAxis:0);y<E?y=E:y>C&&(y=C)}return{[m]:u,[p]:y}}}},iq=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(n){var s,r;const{placement:a,rects:i,platform:o,elements:l}=n,{apply:c=()=>{},...d}=Ml(t,n),h=await Ef(n,d),p=Rl(a),m=Pp(a),u=nd(a)==="y",{width:y,height:g}=i.floating;let w,b;p==="top"||p==="bottom"?(w=p,b=m===(await(o.isRTL==null?void 0:o.isRTL(l.floating))?"start":"end")?"left":"right"):(b=p,w=m==="end"?"top":"bottom");const j=g-h.top-h.bottom,N=y-h.left-h.right,A=ed(g-h[w],j),E=ed(y-h[b],N),C=!n.middlewareData.shift;let F=A,O=E;if((s=n.middlewareData.shift)!=null&&s.enabled.x&&(O=N),(r=n.middlewareData.shift)!=null&&r.enabled.y&&(F=j),C&&!m){const W=yi(h.left,0),_=yi(h.right,0),P=yi(h.top,0),K=yi(h.bottom,0);u?O=y-2*(W!==0||_!==0?W+_:yi(h.left,h.right)):F=g-2*(P!==0||K!==0?P+K:yi(h.top,h.bottom))}await c({...n,availableWidth:O,availableHeight:F});const L=await o.getDimensions(l.floating);return y!==L.width||g!==L.height?{reset:{rects:!0}}:{}}}};function K0(){return typeof window<"u"}function Ep(t){return fT(t)?(t.nodeName||"").toLowerCase():"#document"}function Ni(t){var n;return(t==null||(n=t.ownerDocument)==null?void 0:n.defaultView)||window}function al(t){var n;return(n=(fT(t)?t.ownerDocument:t.document)||window.document)==null?void 0:n.documentElement}function fT(t){return K0()?t instanceof Node||t instanceof Ni(t).Node:!1}function bo(t){return K0()?t instanceof Element||t instanceof Ni(t).Element:!1}function Xo(t){return K0()?t instanceof HTMLElement||t instanceof Ni(t).HTMLElement:!1}function Q4(t){return!K0()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof Ni(t).ShadowRoot}function og(t){const{overflow:n,overflowX:s,overflowY:r,display:a}=vo(t);return/auto|scroll|overlay|hidden|clip/.test(n+r+s)&&!["inline","contents"].includes(a)}function oq(t){return["table","td","th"].includes(Ep(t))}function Q0(t){return[":popover-open",":modal"].some(n=>{try{return t.matches(n)}catch{return!1}})}function q1(t){const n=H1(),s=bo(t)?vo(t):t;return s.transform!=="none"||s.perspective!=="none"||(s.containerType?s.containerType!=="normal":!1)||!n&&(s.backdropFilter?s.backdropFilter!=="none":!1)||!n&&(s.filter?s.filter!=="none":!1)||["transform","perspective","filter"].some(r=>(s.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(s.contain||"").includes(r))}function lq(t){let n=sd(t);for(;Xo(n)&&!bp(n);){if(q1(n))return n;if(Q0(n))return null;n=sd(n)}return null}function H1(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function bp(t){return["html","body","#document"].includes(Ep(t))}function vo(t){return Ni(t).getComputedStyle(t)}function Y0(t){return bo(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function sd(t){if(Ep(t)==="html")return t;const n=t.assignedSlot||t.parentNode||Q4(t)&&t.host||al(t);return Q4(n)?n.host:n}function gT(t){const n=sd(t);return bp(n)?t.ownerDocument?t.ownerDocument.body:t.body:Xo(n)&&og(n)?n:gT(n)}function Lf(t,n,s){var r;n===void 0&&(n=[]),s===void 0&&(s=!0);const a=gT(t),i=a===((r=t.ownerDocument)==null?void 0:r.body),o=Ni(a);if(i){const l=b2(o);
514return n.concat(o,o.visualViewport||[],og(a)?a:[],l&&s?Lf(l):[])}return n.concat(a,Lf(a,[],s))}function b2(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function xT(t){const n=vo(t);let s=parseFloat(n.width)||0,r=parseFloat(n.height)||0;const a=Xo(t),i=a?t.offsetWidth:s,o=a?t.offsetHeight:r,l=e0(s)!==i||e0(r)!==o;return l&&(s=i,r=o),{width:s,height:r,$:l}}function $1(t){return bo(t)?t:t.contextElement}function Bu(t){const n=$1(t);if(!Xo(n))return td(1);const s=n.getBoundingClientRect(),{width:r,height:a,$:i}=xT(n);let o=(i?e0(s.width):s.width)/r,l=(i?e0(s.height):s.height)/a;return(!o||!Number.isFinite(o))&&(o=1),(!l||!Number.isFinite(l))&&(l=1),{x:o,y:l}}const cq=td(0);function yT(t){const n=Ni(t);return!H1()||!n.visualViewport?cq:{x:n.visualViewport.offsetLeft,y:n.visualViewport.offsetTop}}function dq(t,n,s){return n===void 0&&(n=!1),!s||n&&s!==Ni(t)?!1:n}function xh(t,n,s,r){n===void 0&&(n=!1),s===void 0&&(s=!1);const a=t.getBoundingClientRect(),i=$1(t);let o=td(1);n&&(r?bo(r)&&(o=Bu(r)):o=Bu(t));const l=dq(i,s,r)?yT(i):td(0);let c=(a.left+l.x)/o.x,d=(a.top+l.y)/o.y,h=a.width/o.x,p=a.height/o.y;if(i){const m=Ni(i),u=r&&bo(r)?Ni(r):r;let y=m,g=b2(y);for(;g&&r&&u!==y;){const w=Bu(g),b=g.getBoundingClientRect(),j=vo(g),N=b.left+(g.clientLeft+parseFloat(j.paddingLeft))*w.x,A=b.top+(g.clientTop+parseFloat(j.paddingTop))*w.y;c*=w.x,d*=w.y,h*=w.x,p*=w.y,c+=N,d+=A,y=Ni(g),g=b2(y)}}return n0({width:h,height:p,x:c,y:d})}function hq(t){let{elements:n,rect:s,offsetParent:r,strategy:a}=t;const i=a==="fixed",o=al(r),l=n?Q0(n.floating):!1;if(r===o||l&&i)return s;let c={scrollLeft:0,scrollTop:0},d=td(1);const h=td(0),p=Xo(r);if((p||!p&&!i)&&((Ep(r)!=="body"||og(o))&&(c=Y0(r)),Xo(r))){const m=xh(r);d=Bu(r),h.x=m.x+r.clientLeft,h.y=m.y+r.clientTop}return{width:s.width*d.x,height:s.height*d.y,x:s.x*d.x-c.scrollLeft*d.x+h.x,y:s.y*d.y-c.scrollTop*d.y+h.y}}function uq(t){return Array.from(t.getClientRects())}function v2(t,n){const s=Y0(t).scrollLeft;return n?n.left+s:xh(al(t)).left+s}function pq(t){const n=al(t),s=Y0(t),r=t.ownerDocument.body,a=yi(n.scrollWidth,n.clientWidth,r.scrollWidth,r.clientWidth),i=yi(n.scrollHeight,n.clientHeight,r.scrollHeight,r.clientHeight);let o=-s.scrollLeft+v2(t);const l=-s.scrollTop;return vo(r).direction==="rtl"&&(o+=yi(n.clientWidth,r.clientWidth)-a),{width:a,height:i,x:o,y:l}}function mq(t,n){const s=Ni(t),r=al(t),a=s.visualViewport;let i=r.clientWidth,o=r.clientHeight,l=0,c=0;if(a){i=a.width,o=a.height;const d=H1();(!d||d&&n==="fixed")&&(l=a.offsetLeft,c=a.offsetTop)}return{width:i,height:o,x:l,y:c}}function fq(t,n){const s=xh(t,!0,n==="fixed"),r=s.top+t.clientTop,a=s.left+t.clientLeft,i=Xo(t)?Bu(t):td(1),o=t.clientWidth*i.x,l=t.clientHeight*i.y,c=a*i.x,d=r*i.y;return{width:o,height:l,x:c,y:d}}function Y4(t,n,s){let r;if(n==="viewport")r=mq(t,s);else if(n==="document")r=pq(al(t));else if(bo(n))r=fq(n,s);else{const a=yT(t);r={...n,x:n.x-a.x,y:n.y-a.y}}return n0(r)}function bT(t,n){const s=sd(t);return s===n||!bo(s)||bp(s)?!1:vo(s).position==="fixed"||bT(s,n)}function gq(t,n){const s=n.get(t);if(s)return s;let r=Lf(t,[],!1).filter(l=>bo(l)&&Ep(l)!=="body"),a=null;const i=vo(t).position==="fixed";let o=i?sd(t):t;for(;bo(o)&&!bp(o);){const l=vo(o),c=q1(o);!c&&l.position==="fixed"&&(a=null),(i?!c&&!a:!c&&l.position==="static"&&!!a&&["absolute","fixed"].includes(a.position)||og(o)&&!c&&bT(t,o))?r=r.filter(h=>h!==o):a=l,o=sd(o)}return n.set(t,r),r}function xq(t){let{element:n,boundary:s,rootBoundary:r,strategy:a}=t;const o=[...s==="clippingAncestors"?Q0(n)?[]:gq(n,this._c):[].concat(s),r],l=o[0],c=o.reduce((d,h)=>{const p=Y4(n,h,a);return d.top=yi(p.top,d.top),d.right=ed(p.right,d.right),d.bottom=ed(p.bottom,d.bottom),d.left=yi(p.left,d.left),d},Y4(n,l,a));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function yq(t){const{width:n,height:s}=xT(t);return{width:n,height:s}}function bq(t,n,s){const r=Xo(n),a=al(n),i=s==="fixed",o=xh(t,!0,i,n);let l={scrollLeft:0,scrollTop:0};const c=td(0);if(r||!r&&!i)if((Ep(n)!=="body"||og(a))&&(l=Y0(n)),r){const u=xh(n,!0,i,n);c.x=u.x+n.clientLeft,c.y=u.y+n.clientTop}else a&&(c.x=v2(a));let d=0,h=0;if(a&&!r&&!i){const u=a.getBoundingClientRect();h=u.top+l.scrollTop,d=u.left+l.scrollLeft-v2(a,u)}const p=o.left+l.scrollLeft-c.x-d,m=o.top+l.scrollTop-c.y-h;return{x:p,y:m,width:o.width,height:o.height}}function Cv(t){return vo(t).position==="static"}function J4(t,n){if(!Xo(t)||vo(t).position==="fixed")return null;if(n)return n(t);let s=t.offsetParent;return al(t)===s&&(s=s.ownerDocument.body),s}function vT(t,n){const s=Ni(t);if(Q0(t))return s;if(!Xo(t)){let a=sd(t);for(;a&&!bp(a);
vendor: 4,234 bytes, line 514
514){if(bo(a)&&!Cv(a))return a;a=sd(a)}return s}let r=J4(t,n);for(;r&&oq(r)&&Cv(r);)r=J4(r,n);return r&&bp(r)&&Cv(r)&&!q1(r)?s:r||lq(t)||s}const vq=async function(t){const n=this.getOffsetParent||vT,s=this.getDimensions,r=await s(t.floating);return{reference:bq(t.reference,await n(t.floating),t.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function wq(t){return vo(t).direction==="rtl"}const jq={convertOffsetParentRelativeRectToViewportRelativeRect:hq,getDocumentElement:al,getClippingRect:xq,getOffsetParent:vT,getElementRects:vq,getClientRects:uq,getDimensions:yq,getScale:Bu,isElement:bo,isRTL:wq};function kq(t,n){let s=null,r;const a=al(t);function i(){var l;clearTimeout(r),(l=s)==null||l.disconnect(),s=null}function o(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),i();const{left:d,top:h,width:p,height:m}=t.getBoundingClientRect();if(l||n(),!p||!m)return;const u=px(h),y=px(a.clientWidth-(d+p)),g=px(a.clientHeight-(h+m)),w=px(d),j={rootMargin:-u+"px "+-y+"px "+-g+"px "+-w+"px",threshold:yi(0,ed(1,c))||1};let N=!0;function A(E){const C=E[0].intersectionRatio;if(C!==c){if(!N)return o();C?o(!1,C):r=setTimeout(()=>{o(!1,1e-7)},1e3)}N=!1}try{s=new IntersectionObserver(A,{...j,root:a.ownerDocument})}catch{s=new IntersectionObserver(A,j)}s.observe(t)}return o(!0),i}function Nq(t,n,s,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=r,d=$1(t),h=a||i?[...d?Lf(d):[],...Lf(n)]:[];h.forEach(b=>{a&&b.addEventListener("scroll",s,{passive:!0}),i&&b.addEventListener("resize",s)});const p=d&&l?kq(d,s):null;let m=-1,u=null;o&&(u=new ResizeObserver(b=>{let[j]=b;j&&j.target===d&&u&&(u.unobserve(n),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var N;(N=u)==null||N.observe(n)})),s()}),d&&!c&&u.observe(d),u.observe(n));let y,g=c?xh(t):null;c&&w();function w(){const b=xh(t);g&&(b.x!==g.x||b.y!==g.y||b.width!==g.width||b.height!==g.height)&&s(),g=b,y=requestAnimationFrame(w)}return s(),()=>{var b;h.forEach(j=>{a&&j.removeEventListener("scroll",s),i&&j.removeEventListener("resize",s)}),p==null||p(),(b=u)==null||b.disconnect(),u=null,c&&cancelAnimationFrame(y)}}const Sq=sq,Aq=rq,Dq=eq,Iq=iq,Cq=tq,X4=ZU,_q=aq,Tq=(t,n,s)=>{const r=new Map,a={platform:jq,...s},i={...a.platform,_c:r};return XU(t,n,{...a,platform:i})};var ly=typeof document<"u"?S.useLayoutEffect:S.useEffect;function s0(t,n){if(t===n)return!0;if(typeof t!=typeof n)return!1;if(typeof t=="function"&&t.toString()===n.toString())return!0;let s,r,a;if(t&&n&&typeof t=="object"){if(Array.isArray(t)){if(s=t.length,s!==n.length)return!1;for(r=s;r--!==0;)if(!s0(t[r],n[r]))return!1;return!0}if(a=Object.keys(t),s=a.length,s!==Object.keys(n).length)return!1;for(r=s;r--!==0;)if(!{}.hasOwnProperty.call(n,a[r]))return!1;for(r=s;r--!==0;){const i=a[r];if(!(i==="_owner"&&t.$$typeof)&&!s0(t[i],n[i]))return!1}return!0}return t!==t&&n!==n}function wT(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function Z4(t,n){const s=wT(t);return Math.round(n*s)/s}function _v(t){const n=S.useRef(t);return ly(()=>{n.current=t}),n}function Pq(t){t===void 0&&(t={});const{placement:n="bottom",strategy:s="absolute",middleware:r=[],platform:a,elements:{reference:i,floating:o}={},transform:l=!0,whileElementsMounted:c,open:d}=t,[h,p]=S.useState({x:0,y:0,strategy:s,placement:n,middlewareData:{},isPositioned:!1}),[m,u]=S.useState(r);s0(m,r)||u(r);const[y,g]=S.useState(null),[w,b]=S.useState(null),j=S.useCallback(H=>{H!==C.current&&(C.current=H,g(H))},[]),N=S.useCallback(H=>{H!==F.current&&(F.current=H,b(H))},[]),A=i||y,E=o||w,C=S.useRef(null),F=S.useRef(null),O=S.useRef(h),L=c!=null,W=_v(c),_=_v(a),P=_v(d),K=S.useCallback(()=>{if(!C.current||!F.current)return;const H={placement:n,strategy:s,middleware:m};_.current&&(H.platform=_.current),Tq(C.current,F.current,H).then(X=>{const V={...X,isPositioned:P.current!==!1};q.current&&!s0(O.current,V)&&(O.current=V,tg.flushSync(()=>{p(V)}))})},[m,n,s,_,P]);ly(()=>{d===!1&&O.current.isPositioned&&(O.current.isPositioned=!1,p(H=>({...H,isPositioned:!1})))},[d]);const q=S.useRef(!1);ly(()=>(q.current=!0,()=>{q.current=!1}),[]),ly(()=>
514{if(A&&(C.current=A),E&&(F.current=E),A&&E){if(W.current)return W.current(A,E,K);K()}},[A,E,K,W,L]);const ae=S.useMemo(()=>({reference:C,floating:F,setReference:j,setFloating:N}),[j,N]),ce=S.useMemo(()=>({reference:A,floating:E}),[A,E]),de=S.useMemo(()=>{const H={position:s,left:0,top:0};if(!ce.floating)return H;const X=Z4(ce.floating,h.x),V=Z4(ce.floating,h.y);return l?{...H,transform:"translate("+X+"px, "+V+"px)",...wT(ce.floating)>=1.5&&{willChange:"transform"}}:{position:s,left:X,top:V}},[s,l,ce.floating,h.x,h.y]);return S.useMemo(()=>({...h,update:K,refs:ae,elements:ce,floatingStyles:de}),[h,K,ae,ce,de])}const Eq=t=>{function n(s){return{}.hasOwnProperty.call(s,"current")}return{name:"arrow",options:t,fn(s){const{element:r,padding:a}=typeof t=="function"?t(s):t;return r&&n(r)?r.current!=null?X4({element:r.current,padding:a}).fn(s):{}:r?X4({element:r,padding:a}).fn(s):{}}}},Lq=(t,n)=>({...Sq(t),options:[t,n]}),Mq=(t,n)=>({...Aq(t),options:[t,n]}),Rq=(t,n)=>({..._q(t),options:[t,n]}),Oq=(t,n)=>({...Dq(t),options:[t,n]}),Fq=(t,n)=>({...Iq(t),options:[t,n]}),Vq=(t,n)=>({...Cq(t),options:[t,n]}),Bq=(t,n)=>({...Eq(t),options:[t,n]});var zq="Arrow",jT=S.forwardRef((t,n)=>{const{children:s,width:r=10,height:a=5,...i}=t;return e.jsx(ln.svg,{...i,ref:n,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?s:e.jsx("polygon",{points:"0,0 30,0 15,10"})})});jT.displayName=zq;var Uq=jT;function qq(t,n=[]){let s=[];function r(i,o){const l=S.createContext(o),c=s.length;s=[...s,o];function d(p){const{scope:m,children:u,...y}=p,g=(m==null?void 0:m[t][c])||l,w=S.useMemo(()=>y,Object.values(y));return e.jsx(g.Provider,{value:w,children:u})}function h(p,m){const u=(m==null?void 0:m[t][c])||l,y=S.useContext(u);if(y)return y;if(o!==void 0)return o;throw new Error(`\`${p}\` must be used within \`${i}\``)}return d.displayName=i+"Provider",[d,h]}const a=()=>{const i=s.map(o=>S.createContext(o));return function(l){const c=(l==null?void 0:l[t])||i;return S.useMemo(()=>({[`__scope${t}`]:{...l,[t]:c}}),[l,c])}};return a.scopeName=t,[r,Hq(a,...n)]}function Hq(...t){const n=t[0];if(t.length===1)return n;const s=()=>{const r=t.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(i){const o=r.reduce((l,{useScope:c,scopeName:d})=>{const p=c(i)[`__scope${d}`];return{...l,...p}},{});return S.useMemo(()=>({[`__scope${n.scopeName}`]:o}),[o])}};return s.scopeName=n.scopeName,s}function W1(t){const[n,s]=S.useState(void 0);return Ll(()=>{if(t){s({width:t.offsetWidth,height:t.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const i=a[0];let o,l;if("borderBoxSize"in i){const c=i.borderBoxSize,d=Array.isArray(c)?c[0]:c;o=d.inlineSize,l=d.blockSize}else o=t.offsetWidth,l=t.offsetHeight;s({width:o,height:l})});return r.observe(t,{box:"border-box"}),()=>r.unobserve(t)}else s(void 0)},[t]),n}var G1="Popper",[kT,J0]=qq(G1),[$q,NT]=kT(G1),ST=t=>{const{__scopePopper:n,children:s}=t,[r,a]=S.useState(null);return e.jsx($q,{scope:n,anchor:r,onAnchorChange:a,children:s})};ST.displayName=G1;var AT="PopperAnchor",DT=S.forwardRef((t,n)=>{const{__scopePopper:s,virtualRef:r,...a}=t,i=NT(AT,s),o=S.useRef(null),l=Zn(n,o);return S.useEffect(()=>{i.onAnchorChange((r==null?void 0:r.current)||o.current)}),r?null:e.jsx(ln.div,{...a,ref:l})});DT.displayName=AT;var K1="PopperContent",[Wq,Gq]=kT(K1),IT=S.forwardRef((t,n)=>{var pe,je,ke,De,Pe,Ze;const{__scopePopper:s,side:r="bottom",sideOffset:a=0,align:i="center",alignOffset:o=0,arrowPadding:l=0,avoidCollisions:c=!0,collisionBoundary:d=[],collisionPadding:h=0,sticky:p="partial",hideWhenDetached:m=!1,updatePositionStrategy:u="optimized",onPlaced:y,...g}=t,w=NT(K1,s),[b,j]=S.useState(null),N=Zn(n,tt=>j(tt)),[A,E]=S.useState(null),C=W1(A),F=(C==null?void 0:C.width)??0,O=(C==null?void 0:C.height)??0,L=r+(i!=="center"?"-"+i:""),W=typeof h=="number"?h:{top:0,right:0,bottom:0,left:0,...h},_=Array.isArray(d)?d:[d],P=_.length>0,K={padding:W,boundary:_.filter(Qq),altBoundary:P},{refs:q,floatingStyles:ae,placement:ce,isPositioned:de,middlewareData:H}=Pq({strategy:"fixed",placement:L,whileElementsMounted:(...tt)=>Nq(...tt,{animationFrame:u==="always"}),elements:{reference:w.anchor},middleware:[Lq({mainAxis:a+O,alignmentAxis:o}),c&&Mq({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?Rq():void 0,...K}),c&&Oq({...K}),Fq({...K,apply:({elements:tt,rects:Je,availableWidth:Y,availableHeight:Oe})=>{const{width:Wt,height:yt}=Je.reference,Ce=tt.floating.style;
514Ce.setProperty("--radix-popper-available-width",`${Y}px`),Ce.setProperty("--radix-popper-available-height",`${Oe}px`),Ce.setProperty("--radix-popper-anchor-width",`${Wt}px`),Ce.setProperty("--radix-popper-anchor-height",`${yt}px`)}}),A&&Bq({element:A,padding:l}),Yq({arrowWidth:F,arrowHeight:O}),m&&Vq({strategy:"referenceHidden",...K})]}),[X,V]=TT(ce),he=Aa(y);Ll(()=>{de&&(he==null||he())},[de,he]);const T=(pe=H.arrow)==null?void 0:pe.x,I=(je=H.arrow)==null?void 0:je.y,G=((ke=H.arrow)==null?void 0:ke.centerOffset)!==0,[re,ne]=S.useState();return Ll(()=>{b&&ne(window.getComputedStyle(b).zIndex)},[b]),e.jsx("div",{ref:q.setFloating,"data-radix-popper-content-wrapper":"",style:{...ae,transform:de?ae.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:re,"--radix-popper-transform-origin":[(De=H.transformOrigin)==null?void 0:De.x,(Pe=H.transformOrigin)==null?void 0:Pe.y].join(" "),...((Ze=H.hide)==null?void 0:Ze.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:e.jsx(Wq,{scope:s,placedSide:X,onArrowChange:E,arrowX:T,arrowY:I,shouldHideArrow:G,children:e.jsx(ln.div,{"data-side":X,"data-align":V,...g,ref:N,style:{...g.style,animation:de?void 0:"none"}})})})});IT.displayName=K1;var CT="PopperArrow",Kq={top:"bottom",right:"left",bottom:"top",left:"right"},_T=S.forwardRef(function(n,s){const{__scopePopper:r,...a}=n,i=Gq(CT,r),o=Kq[i.placedSide];return e.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:e.jsx(Uq,{...a,ref:s,style:{...a.style,display:"block"}})})});_T.displayName=CT;function Qq(t){return t!==null}var Yq=t=>({name:"transformOrigin",options:t,fn(n){var w,b,j;const{placement:s,rects:r,middlewareData:a}=n,o=((w=a.arrow)==null?void 0:w.centerOffset)!==0,l=o?0:t.arrowWidth,c=o?0:t.arrowHeight,[d,h]=TT(s),p={start:"0%",center:"50%",end:"100%"}[h],m=(((b=a.arrow)==null?void 0:b.x)??0)+l/2,u=(((j=a.arrow)==null?void 0:j.y)??0)+c/2;let y="",g="";return d==="bottom"?(y=o?p:`${m}px`,g=`${-c}px`):d==="top"?(y=o?p:`${m}px`,g=`${r.floating.height+c}px`):d==="right"?(y=`${-c}px`,g=o?p:`${u}px`):d==="left"&&(y=`${r.floating.width+c}px`,g=o?p:`${u}px`),{data:{x:y,y:g}}}});function TT(t){const[n,s="center"]=t.split("-");return[n,s]}var Jq=ST,PT=DT,ET=IT,LT=_T,[X0,ple]=nl("Tooltip",[J0]),Q1=J0(),MT="TooltipProvider",Xq=700,eA="tooltip.open",[Zq,RT]=X0(MT),OT=t=>{const{__scopeTooltip:n,delayDuration:s=Xq,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:i}=t,[o,l]=S.useState(!0),c=S.useRef(!1),d=S.useRef(0);return S.useEffect(()=>{const h=d.current;return()=>window.clearTimeout(h)},[]),e.jsx(Zq,{scope:n,isOpenDelayed:o,delayDuration:s,onOpen:S.useCallback(()=>{window.clearTimeout(d.current),l(!1)},[]),onClose:S.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l(!0),r)},[r]),isPointerInTransitRef:c,onPointerInTransitChange:S.useCallback(h=>{c.current=h},[]),disableHoverableContent:a,children:i})};OT.displayName=MT;var FT="Tooltip",[mle,Z0]=X0(FT),w2="TooltipTrigger",eH=S.forwardRef((t,n)=>{const{__scopeTooltip:s,...r}=t,a=Z0(w2,s),i=RT(w2,s),o=Q1(s),l=S.useRef(null),c=Zn(n,l,a.onTriggerChange),d=S.useRef(!1),h=S.useRef(!1),p=S.useCallback(()=>d.current=!1,[]);return S.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),e.jsx(PT,{asChild:!0,...o,children:e.jsx(ln.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:c,onPointerMove:vt(t.onPointerMove,m=>{m.pointerType!=="touch"&&!h.current&&!i.isPointerInTransitRef.current&&(a.onTriggerEnter(),h.current=!0)}),onPointerLeave:vt(t.onPointerLeave,()=>{a.onTriggerLeave(),h.current=!1}),onPointerDown:vt(t.onPointerDown,()=>{d.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:vt(t.onFocus,()=>{d.current||a.onOpen()}),onBlur:vt(t.onBlur,a.onClose),onClick:vt(t.onClick,a.onClose)})})});eH.displayName=w2;var tH="TooltipPortal",[fle,nH]=X0(tH,{forceMount:void 0}
514),vp="TooltipContent",VT=S.forwardRef((t,n)=>{const s=nH(vp,t.__scopeTooltip),{forceMount:r=s.forceMount,side:a="top",...i}=t,o=Z0(vp,t.__scopeTooltip);return e.jsx(Yi,{present:r||o.open,children:o.disableHoverableContent?e.jsx(BT,{side:a,...i,ref:n}):e.jsx(sH,{side:a,...i,ref:n})})}),sH=S.forwardRef((t,n)=>{const s=Z0(vp,t.__scopeTooltip),r=RT(vp,t.__scopeTooltip),a=S.useRef(null),i=Zn(n,a),[o,l]=S.useState(null),{trigger:c,onClose:d}=s,h=a.current,{onPointerInTransitChange:p}=r,m=S.useCallback(()=>{l(null),p(!1)},[p]),u=S.useCallback((y,g)=>{const w=y.currentTarget,b={x:y.clientX,y:y.clientY},j=oH(b,w.getBoundingClientRect()),N=lH(b,j),A=cH(g.getBoundingClientRect()),E=hH([...N,...A]);l(E),p(!0)},[p]);return S.useEffect(()=>()=>m(),[m]),S.useEffect(()=>{if(c&&h){const y=w=>u(w,h),g=w=>u(w,c);return c.addEventListener("pointerleave",y),h.addEventListener("pointerleave",g),()=>{c.removeEventListener("pointerleave",y),h.removeEventListener("pointerleave",g)}}},[c,h,u,m]),S.useEffect(()=>{if(o){const y=g=>{const w=g.target,b={x:g.clientX,y:g.clientY},j=(c==null?void 0:c.contains(w))||(h==null?void 0:h.contains(w)),N=!dH(b,o);j?m():N&&(m(),d())};return document.addEventListener("pointermove",y),()=>document.removeEventListener("pointermove",y)}},[c,h,o,d,m]),e.jsx(BT,{...t,ref:i})}),[rH,aH]=X0(FT,{isInside:!1}),BT=S.forwardRef((t,n)=>{const{__scopeTooltip:s,children:r,"aria-label":a,onEscapeKeyDown:i,onPointerDownOutside:o,...l}=t,c=Z0(vp,s),d=Q1(s),{onClose:h}=c;return S.useEffect(()=>(document.addEventListener(eA,h),()=>document.removeEventListener(eA,h)),[h]),S.useEffect(()=>{if(c.trigger){const p=m=>{const u=m.target;u!=null&&u.contains(c.trigger)&&h()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[c.trigger,h]),e.jsx(rg,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:p=>p.preventDefault(),onDismiss:h,children:e.jsxs(ET,{"data-state":c.stateAttribute,...d,...l,ref:n,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[e.jsx(S_,{children:r}),e.jsx(rH,{scope:s,isInside:!0,children:e.jsx(RB,{id:c.contentId,role:"tooltip",children:a||r})})]})})});VT.displayName=vp;var zT="TooltipArrow",iH=S.forwardRef((t,n)=>{const{__scopeTooltip:s,...r}=t,a=Q1(s);return aH(zT,s).isInside?null:e.jsx(LT,{...a,...r,ref:n})});iH.displayName=zT;function oH(t,n){const s=Math.abs(n.top-t.y),r=Math.abs(n.bottom-t.y),a=Math.abs(n.right-t.x),i=Math.abs(n.left-t.x);switch(Math.min(s,r,a,i)){case i:return"left";case a:return"right";case s:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function lH(t,n,s=5){const r=[];switch(n){case"top":r.push({x:t.x-s,y:t.y+s},{x:t.x+s,y:t.y+s});break;case"bottom":r.push({x:t.x-s,y:t.y-s},{x:t.x+s,y:t.y-s});break;case"left":r.push({x:t.x+s,y:t.y-s},{x:t.x+s,y:t.y+s});break;case"right":r.push({x:t.x-s,y:t.y-s},{x:t.x-s,y:t.y+s});break}return r}function cH(t){const{top:n,right:s,bottom:r,left:a}=t;return[{x:a,y:n},{x:s,y:n},{x:s,y:r},{x:a,y:r}]}function dH(t,n){const{x:s,y:r}=t;let a=!1;for(let i=0,o=n.length-1;i<n.length;o=i++){const l=n[i].x,c=n[i].y,d=n[o].x,h=n[o].y;c>r!=h>r&&s<(d-l)*(r-c)/(h-c)+l&&(a=!a)}return a}function hH(t){const n=t.slice();return n.sort((s,r)=>s.x<r.x?-1:s.x>r.x?1:s.y<r.y?-1:s.y>r.y?1:0),uH(n)}function uH(t){if(t.length<=1)return t.slice();const n=[];for(let r=0;r<t.length;r++){const a=t[r];for(;n.length>=2;){const i=n[n.length-1],o=n[n.length-2];if((i.x-o.x)*(a.y-o.y)>=(i.y-o.y)*(a.x-o.x))n.pop();else break}n.push(a)}n.pop();const s=[];for(let r=t.length-1;r>=0;r--){const a=t[r];for(;s.length>=2;){const i=s[s.length-1],o=s[s.length-2];if((i.x-o.x)*(a.y-o.y)>=(i.y-o.y)*(a.x-o.x))s.pop();else break}s.push(a)}return s.pop(),n.length===1&&s.length===1&&n[0].x===s[0].x&&n[0].y===s[0].y?n:n.concat(s)}var pH=OT,UT=VT;const mH=pH,fH=S.forwardRef(({className:t,sideOffset:n=4,...s},r)=>
514e.jsx(UT,{ref:r,sideOffset:n,className:Ht("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...s}));fH.displayName=UT.displayName;const gH=H0("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),Ke=S.forwardRef(({className:t,variant:n,size:s,asChild:r=!1,...a},i)=>{const o=r?ph:"button";return e.jsx(o,{className:Ht(gH({variant:n,size:s,className:t})),ref:i,...a})});Ke.displayName="Button";var xH=S.createContext(void 0);function lg(t){const n=S.useContext(xH);return t||n||"ltr"}var Tv=0;function qT(){S.useEffect(()=>{const t=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",t[0]??tA()),document.body.insertAdjacentElement("beforeend",t[1]??tA()),Tv++,()=>{Tv===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(n=>n.remove()),Tv--}},[])}function tA(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}var Pv="focusScope.autoFocusOnMount",Ev="focusScope.autoFocusOnUnmount",nA={bubbles:!1,cancelable:!0},yH="FocusScope",Y1=S.forwardRef((t,n)=>{const{loop:s=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:i,...o}=t,[l,c]=S.useState(null),d=Aa(a),h=Aa(i),p=S.useRef(null),m=Zn(n,g=>c(g)),u=S.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;S.useEffect(()=>{if(r){let g=function(N){if(u.paused||!l)return;const A=N.target;l.contains(A)?p.current=A:fc(p.current,{select:!0})},w=function(N){if(u.paused||!l)return;const A=N.relatedTarget;A!==null&&(l.contains(A)||fc(p.current,{select:!0}))},b=function(N){if(document.activeElement===document.body)for(const E of N)E.removedNodes.length>0&&fc(l)};document.addEventListener("focusin",g),document.addEventListener("focusout",w);const j=new MutationObserver(b);return l&&j.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",g),document.removeEventListener("focusout",w),j.disconnect()}}},[r,l,u.paused]),S.useEffect(()=>{if(l){rA.add(u);const g=document.activeElement;if(!l.contains(g)){const b=new CustomEvent(Pv,nA);l.addEventListener(Pv,d),l.dispatchEvent(b),b.defaultPrevented||(bH(NH(HT(l)),{select:!0}),document.activeElement===g&&fc(l))}return()=>{l.removeEventListener(Pv,d),setTimeout(()=>{const b=new CustomEvent(Ev,nA);l.addEventListener(Ev,h),l.dispatchEvent(b),b.defaultPrevented||fc(g??document.body,{select:!0}),l.removeEventListener(Ev,h),rA.remove(u)},0)}}},[l,d,h,u]);const y=S.useCallback(g=>{if(!s&&!r||u.paused)return;const w=g.key==="Tab"&&!g.altKey&&!g.ctrlKey&&!g.metaKey,b=document.activeElement;if(w&&b){const j=g.currentTarget,[N,A]=vH(j);N&&A?!g.shiftKey&&b===A?(g.preventDefault(),s&&fc(N,{select:!0})):g.shiftKey&&b===N&&(g.preventDefault(),s&&fc(A,{select:!0})):b===j&&g.preventDefault()}},[s,r,u.paused]);return e.jsx(ln.div,{tabIndex:-1,...o,ref:m,onKeyDown:y})});Y1.displayName=yH;function bH(t,{select:n=!1}={}){const s=document.activeElement;for(const r of t)if(fc(r,{select:n}),document.activeElement!==s)return}function vH(t){const n=HT(t),s=sA(n,t),r=sA(n.reverse(),t);return[s,r]}function HT(t){const n=[],s=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)n.push(s.currentNode);return n}function sA(t,n){for(const s of t)if(!wH(s,{upTo:n}))return s}function wH(t,{upTo:n}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(n!==void 0&&t===n)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function jH(t){return t instanceof HTMLInputElement&&"select"in t}function fc(t,{select:n=!1}={}){if(t&&t.focus){const s=document.activeElement;t.focus({preventScroll:!0}),t!==s&&jH(t)&&n&&t.select()}}var rA=kH();function kH(){let t=[];return{add(n){const s=t[0];n!==s&&(s==null||s.pause()),t=aA(t,n),t.unshift(n)},remove(n){var s;
514t=aA(t,n),(s=t[0])==null||s.resume()}}}function aA(t,n){const s=[...t],r=s.indexOf(n);return r!==-1&&s.splice(r,1),s}function NH(t){return t.filter(n=>n.tagName!=="A")}function SH(t,n=[]){let s=[];function r(i,o){const l=S.createContext(o),c=s.length;s=[...s,o];function d(p){const{scope:m,children:u,...y}=p,g=(m==null?void 0:m[t][c])||l,w=S.useMemo(()=>y,Object.values(y));return e.jsx(g.Provider,{value:w,children:u})}function h(p,m){const u=(m==null?void 0:m[t][c])||l,y=S.useContext(u);if(y)return y;if(o!==void 0)return o;throw new Error(`\`${p}\` must be used within \`${i}\``)}return d.displayName=i+"Provider",[d,h]}const a=()=>{const i=s.map(o=>S.createContext(o));return function(l){const c=(l==null?void 0:l[t])||i;return S.useMemo(()=>({[`__scope${t}`]:{...l,[t]:c}}),[l,c])}};return a.scopeName=t,[r,AH(a,...n)]}function AH(...t){const n=t[0];if(t.length===1)return n;const s=()=>{const r=t.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(i){const o=r.reduce((l,{useScope:c,scopeName:d})=>{const p=c(i)[`__scope${d}`];return{...l,...p}},{});return S.useMemo(()=>({[`__scope${n.scopeName}`]:o}),[o])}};return s.scopeName=n.scopeName,s}var Lv="rovingFocusGroup.onEntryFocus",DH={bubbles:!1,cancelable:!0},eb="RovingFocusGroup",[j2,$T,IH]=sg(eb),[CH,tb]=SH(eb,[IH]),[_H,TH]=CH(eb),WT=S.forwardRef((t,n)=>e.jsx(j2.Provider,{scope:t.__scopeRovingFocusGroup,children:e.jsx(j2.Slot,{scope:t.__scopeRovingFocusGroup,children:e.jsx(PH,{...t,ref:n})})}));WT.displayName=eb;var PH=S.forwardRef((t,n)=>{const{__scopeRovingFocusGroup:s,orientation:r,loop:a=!1,dir:i,currentTabStopId:o,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:c,onEntryFocus:d,preventScrollOnEntryFocus:h=!1,...p}=t,m=S.useRef(null),u=Zn(n,m),y=lg(i),[g=null,w]=sl({prop:o,defaultProp:l,onChange:c}),[b,j]=S.useState(!1),N=Aa(d),A=$T(s),E=S.useRef(!1),[C,F]=S.useState(0);return S.useEffect(()=>{const O=m.current;if(O)return O.addEventListener(Lv,N),()=>O.removeEventListener(Lv,N)},[N]),e.jsx(_H,{scope:s,orientation:r,dir:y,loop:a,currentTabStopId:g,onItemFocus:S.useCallback(O=>w(O),[w]),onItemShiftTab:S.useCallback(()=>j(!0),[]),onFocusableItemAdd:S.useCallback(()=>F(O=>O+1),[]),onFocusableItemRemove:S.useCallback(()=>F(O=>O-1),[]),children:e.jsx(ln.div,{tabIndex:b||C===0?-1:0,"data-orientation":r,...p,ref:u,style:{outline:"none",...t.style},onMouseDown:vt(t.onMouseDown,()=>{E.current=!0}),onFocus:vt(t.onFocus,O=>{const L=!E.current;if(O.target===O.currentTarget&&L&&!b){const W=new CustomEvent(Lv,DH);if(O.currentTarget.dispatchEvent(W),!W.defaultPrevented){const _=A().filter(ce=>ce.focusable),P=_.find(ce=>ce.active),K=_.find(ce=>ce.id===g),ae=[P,K,..._].filter(Boolean).map(ce=>ce.ref.current);QT(ae,h)}}E.current=!1}),onBlur:vt(t.onBlur,()=>j(!1))})})}),GT="RovingFocusGroupItem",KT=S.forwardRef((t,n)=>{const{__scopeRovingFocusGroup:s,focusable:r=!0,active:a=!1,tabStopId:i,...o}=t,l=Cl(),c=i||l,d=TH(GT,s),h=d.currentTabStopId===c,p=$T(s),{onFocusableItemAdd:m,onFocusableItemRemove:u}=d;return S.useEffect(()=>{if(r)return m(),()=>u()},[r,m,u]),e.jsx(j2.ItemSlot,{scope:s,id:c,focusable:r,active:a,children:e.jsx(ln.span,{tabIndex:h?0:-1,"data-orientation":d.orientation,...o,ref:n,onMouseDown:vt(t.onMouseDown,y=>{r?d.onItemFocus(c):y.preventDefault()}),onFocus:vt(t.onFocus,()=>d.onItemFocus(c)),onKeyDown:vt(t.onKeyDown,y=>{if(y.key==="Tab"&&y.shiftKey){d.onItemShiftTab();return}if(y.target!==y.currentTarget)return;const g=MH(y,d.orientation,d.dir);if(g!==void 0){if(y.metaKey||y.ctrlKey||y.altKey||y.shiftKey)return;y.preventDefault();let b=p().filter(j=>j.focusable).map(j=>j.ref.current);if(g==="last")b.reverse();else if(g==="prev"||g==="next"){g==="prev"&&b.reverse();const j=b.indexOf(y.currentTarget);b=d.loop?RH(b,j+1):b.slice(j+1)}setTimeout(()=>QT(b))}})})})});KT.displayName=GT;var EH={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function LH(t,n){return n!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function MH(t,n,s){const r=LH(t.key,s);if(!(n==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(n==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return EH[r]}function QT(t,n=!1){const s=document.activeElement;for(const r of t)if(r===s||(r.focus({preventScroll:n}),document.activeElement!==s))return}function RH(t,n){return t.map((s,r)=>t[(n+r)%t.length])}var YT=WT,JT=KT,OH=function(t){if(typeof document>"u")return null;var n=Array.isArray(t)?t[0]:t;return n.ownerDocument.body},eu=new WeakMap,mx=new WeakMap,fx={},Mv=0,XT=function(t){return t&&(t.host||XT(t.parentNode))},FH=function(t,n){return n.map(function(s){if(t.contains(s))return s;var r=XT(s);return r&&t.contains(r)?r:(console.error("aria-hidden",s,"in not contained inside",t,". Doing nothing"),null)}).filter(function(s){return!!s})},VH=function(t,n,s,r){var a=FH(n,Array.isArray(t)?t:[t]);fx[s]||(fx[s]=new WeakMap);
vendor: 4,769 bytes, line 514
514var i=fx[s],o=[],l=new Set,c=new Set(a),d=function(p){!p||l.has(p)||(l.add(p),d(p.parentNode))};a.forEach(d);var h=function(p){!p||c.has(p)||Array.prototype.forEach.call(p.children,function(m){if(l.has(m))h(m);else try{var u=m.getAttribute(r),y=u!==null&&u!=="false",g=(eu.get(m)||0)+1,w=(i.get(m)||0)+1;eu.set(m,g),i.set(m,w),o.push(m),g===1&&y&&mx.set(m,!0),w===1&&m.setAttribute(s,"true"),y||m.setAttribute(r,"true")}catch(b){console.error("aria-hidden: cannot operate on ",m,b)}})};return h(n),l.clear(),Mv++,function(){o.forEach(function(p){var m=eu.get(p)-1,u=i.get(p)-1;eu.set(p,m),i.set(p,u),m||(mx.has(p)||p.removeAttribute(r),mx.delete(p)),u||p.removeAttribute(s)}),Mv--,Mv||(eu=new WeakMap,eu=new WeakMap,mx=new WeakMap,fx={})}},ZT=function(t,n,s){s===void 0&&(s="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),a=OH(t);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live]"))),VH(r,a,s,"aria-hidden")):function(){return null}},qo=function(){return qo=Object.assign||function(n){for(var s,r=1,a=arguments.length;r<a;r++){s=arguments[r];for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&(n[i]=s[i])}return n},qo.apply(this,arguments)};function eP(t,n){var s={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&n.indexOf(r)<0&&(s[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,r=Object.getOwnPropertySymbols(t);a<r.length;a++)n.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(t,r[a])&&(s[r[a]]=t[r[a]]);return s}function BH(t,n,s){if(s||arguments.length===2)for(var r=0,a=n.length,i;r<a;r++)(i||!(r in n))&&(i||(i=Array.prototype.slice.call(n,0,r)),i[r]=n[r]);return t.concat(i||Array.prototype.slice.call(n))}var cy="right-scroll-bar-position",dy="width-before-scroll-bar",zH="with-scroll-bars-hidden",UH="--removed-body-scroll-bar-size";function Rv(t,n){return typeof t=="function"?t(n):t&&(t.current=n),t}function qH(t,n){var s=S.useState(function(){return{value:t,callback:n,facade:{get current(){return s.value},set current(r){var a=s.value;a!==r&&(s.value=r,s.callback(r,a))}}}})[0];return s.callback=n,s.facade}var HH=typeof window<"u"?S.useLayoutEffect:S.useEffect,iA=new WeakMap;function $H(t,n){var s=qH(null,function(r){return t.forEach(function(a){return Rv(a,r)})});return HH(function(){var r=iA.get(s);if(r){var a=new Set(r),i=new Set(t),o=s.current;a.forEach(function(l){i.has(l)||Rv(l,null)}),i.forEach(function(l){a.has(l)||Rv(l,o)})}iA.set(s,t)},[t]),s}function WH(t){return t}function GH(t,n){n===void 0&&(n=WH);var s=[],r=!1,a={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return s.length?s[s.length-1]:t},useMedium:function(i){var o=n(i,r);return s.push(o),function(){s=s.filter(function(l){return l!==o})}},assignSyncMedium:function(i){for(r=!0;s.length;){var o=s;s=[],o.forEach(i)}s={push:function(l){return i(l)},filter:function(){return s}}},assignMedium:function(i){r=!0;var o=[];if(s.length){var l=s;s=[],l.forEach(i),o=s}var c=function(){var h=o;o=[],h.forEach(i)},d=function(){return Promise.resolve().then(c)};d(),s={push:function(h){o.push(h),d()},filter:function(h){return o=o.filter(h),s}}}};return a}function KH(t){t===void 0&&(t={});var n=GH(null);return n.options=qo({async:!0,ssr:!1},t),n}var tP=function(t){var n=t.sideCar,s=eP(t,["sideCar"]);if(!n)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=n.read();if(!r)throw new Error("Sidecar medium not found");return S.createElement(r,qo({},s))};tP.isSideCarExport=!0;function QH(t,n){return t.useMedium(n),tP}var nP=KH(),Ov=function(){},nb=S.forwardRef(function(t,n){var s=S.useRef(null),r=S.useState({onScrollCapture:Ov,onWheelCapture:Ov,onTouchMoveCapture:Ov}),a=r[0],i=r[1],o=t.forwardProps,l=t.children,c=t.className,d=t.removeScrollBar,h=t.enabled,p=t.shards,m=t.sideCar,u=t.noIsolation,y=t.inert,g=t.allowPinchZoom,w=t.as,b=w===void 0?"div":w,j=t.gapMode,N=eP(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),A=m,E=$H([s,n]),C=qo(qo({},N),a);return S.createElement(S.Fragment,null,h&&S.createElement(A,{sideCar:nP,removeScrollBar:d,shards:p,noIsolation:u,inert:y,setCallbacks:i,allowPinchZoom:!!g,lockRef:s,gapMode:j}),o?S.cloneElement(S.Children.only(l),qo(qo({},C),{ref:E})):S.createElement(b,qo({},C,{className:c,ref:E}),l))});nb.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};nb.classNames={fullWidth:dy,zeroRight:cy};var YH=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function JH(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var n=YH();return n&&t.setAttribute("nonce",n),t}
vendor: 5,911 bytes, lines 514-554
514function XH(t,n){t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n))}function ZH(t){var n=document.head||document.getElementsByTagName("head")[0];n.appendChild(t)}var e$=function(){var t=0,n=null;return{add:function(s){t==0&&(n=JH())&&(XH(n,s),ZH(n)),t++},remove:function(){t--,!t&&n&&(n.parentNode&&n.parentNode.removeChild(n),n=null)}}},t$=function(){var t=e$();return function(n,s){S.useEffect(function(){return t.add(n),function(){t.remove()}},[n&&s])}},sP=function(){var t=t$(),n=function(s){var r=s.styles,a=s.dynamic;return t(r,a),null};return n},n$={left:0,top:0,right:0,gap:0},Fv=function(t){return parseInt(t||"",10)||0},s$=function(t){var n=window.getComputedStyle(document.body),s=n[t==="padding"?"paddingLeft":"marginLeft"],r=n[t==="padding"?"paddingTop":"marginTop"],a=n[t==="padding"?"paddingRight":"marginRight"];return[Fv(s),Fv(r),Fv(a)]},r$=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return n$;var n=s$(t),s=document.documentElement.clientWidth,r=window.innerWidth;return{left:n[0],top:n[1],right:n[2],gap:Math.max(0,r-s+n[2]-n[0])}},a$=sP(),zu="data-scroll-locked",i$=function(t,n,s,r){var a=t.left,i=t.top,o=t.right,l=t.gap;return s===void 0&&(s="margin"),` 515 .`.concat(zH,` { 516 overflow: hidden `).concat(r,`; 517 padding-right: `).concat(l,"px ").concat(r,`; 518 } 519 body[`).concat(zu,`] { 520 overflow: hidden `).concat(r,`; 521 overscroll-behavior: contain; 522 `).concat([n&&"position: relative ".concat(r,";"),s==="margin"&&` 523 padding-left: `.concat(a,`px; 524 padding-top: `).concat(i,`px; 525 padding-right: `).concat(o,`px; 526 margin-left:0; 527 margin-top:0; 528 margin-right: `).concat(l,"px ").concat(r,`; 529 `),s==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),` 530 } 531 532 .`).concat(cy,` { 533 right: `).concat(l,"px ").concat(r,`; 534 } 535 536 .`).concat(dy,` { 537 margin-right: `).concat(l,"px ").concat(r,`; 538 } 539 540 .`).concat(cy," .").concat(cy,` { 541 right: 0 `).concat(r,`; 542 } 543 544 .`).concat(dy," .").concat(dy,` { 545 margin-right: 0 `).concat(r,`; 546 } 547 548 body[`).concat(zu,`] { 549 `).concat(UH,": ").concat(l,`px; 550 } 551`)},oA=function(){var t=parseInt(document.body.getAttribute(zu)||"0",10);return isFinite(t)?t:0},o$=function(){S.useEffect(function(){return document.body.setAttribute(zu,(oA()+1).toString()),function(){var t=oA()-1;t<=0?document.body.removeAttribute(zu):document.body.setAttribute(zu,t.toString())}},[])},l$=function(t){var n=t.noRelative,s=t.noImportant,r=t.gapMode,a=r===void 0?"margin":r;o$();var i=S.useMemo(function(){return r$(a)},[a]);return S.createElement(a$,{styles:i$(i,!n,a,s?"":"!important")})},k2=!1;if(typeof window<"u")try{var gx=Object.defineProperty({},"passive",{get:function(){return k2=!0,!0}});window.addEventListener("test",gx,gx),window.removeEventListener("test",gx,gx)}catch{k2=!1}var tu=k2?{passive:!1}:!1,c$=function(t){return t.tagName==="TEXTAREA"},rP=function(t,n){if(!(t instanceof Element))return!1;var s=window.getComputedStyle(t);return s[n]!=="hidden"&&!(s.overflowY===s.overflowX&&!c$(t)&&s[n]==="visible")},d$=function(t){return rP(t,"overflowY")},h$=function(t){return rP(t,"overflowX")},lA=function(t,n){var s=n.ownerDocument,r=n;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=aP(t,r);if(a){var i=iP(t,r),o=i[1],l=i[2];if(o>l)return!0}r=r.parentNode}while(r&&r!==s.body);return!1},u$=function(t){var n=t.scrollTop,s=t.scrollHeight,r=t.clientHeight;return[n,s,r]},p$=function(t){var n=t.scrollLeft,s=t.scrollWidth,r=t.clientWidth;return[n,s,r]},aP=function(t,n){return t==="v"?d$(n):h$(n)},iP=function(t,n){return t==="v"?u$(n):p$(n)},m$=function(t,n){return t==="h"&&n==="rtl"?-1:1},f$=function(t,n,s,r,a){var i=m$(t,window.getComputedStyle(n).direction),o=i*r,l=s.target,c=n.contains(l),d=!1,h=o>0,p=0,m=0;do{var u=iP(t,l),y=u[0],g=u[1],w=u[2],b=g-w-i*y;(y||b)&&aP(t,l)&&(p+=b,m+=y),l instanceof ShadowRoot?l=l.host:l=l.parentNode}while(!c&&l!==document.body||c&&(n.contains(l)||n===l));return(h&&(Math.abs(p)<1||!a)||!h&&(Math.abs(m)<1||!a))&&(d=!0),d},xx=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},cA=function(t){return[t.deltaX,t.deltaY]},dA=function(t){return t&&"current"in t?t.current:t},g$=function(t,n){return t[0]===n[0]&&t[1]===n[1]},x$=function(t){return` 552 .block-interactivity-`.concat(t,` {pointer-events: none;} 553 .allow-interactivity-`).concat(t,` {pointer-events: all;} 554`)},y$=0,nu=[];function b$(t){var n=S.useRef([]),s=S.useRef([0,0]),r=S.useRef(),a=S.useState(y$++)[0],i=S.useState(sP)[0],o=S.useRef(t);S.useEffect(function(){o.current=t},[t]),S.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(a));var g=BH([t.lockRef.current],(t.shards||[]).map(dA),!0).filter(Boolean);return g.forEach(function(w){return w.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),g.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(a))})}}},[t.inert,t.lockRef.current,t.shards]);var l=S.useCallback(function(g,w){if("touches"in g&&g.touches.length===2||g.type==="wheel"&&g.ctrlKey)return!o.current.allowPinchZoom;var b=xx(g),j=s.current,N="deltaX"in g?g.deltaX:j[0]-b[0],A="deltaY"in g?g.deltaY:j[1]-b[1],E,C=g.target,F=Math.abs(N)>Math.abs(A)?"h":"v";if("touches"in g&&F==="h"&&C.type==="range")return!1;var O=lA(F,C);if(!O)return!0;if(O?E=F:(E=F==="v"?"h":"v",O=lA(F,C)),!O)return!1;if(!r.current&&"changedTouches"in g&&(N||A)&&(r.current=E),!E)return!0;var L=r.current||E;return f$(L,w,g,L==="h"?N:A,!0)},[]),c=S.useCallback(function(g){var w=g;if(!(!nu.length||nu[nu.length-1]!==i)){var b="deltaY"in w?cA(w):xx(w),j=n.current.filter(function(E){return E.name===w.type&&(E.target===w.target||w.target===E.shadowParent)&&g$(E.delta,b)})[0];if(j&&j.should){w.cancelable&&w.preventDefault();return}
554if(!j){var N=(o.current.shards||[]).map(dA).filter(Boolean).filter(function(E){return E.contains(w.target)}),A=N.length>0?l(w,N[0]):!o.current.noIsolation;A&&w.cancelable&&w.preventDefault()}}},[]),d=S.useCallback(function(g,w,b,j){var N={name:g,delta:w,target:b,should:j,shadowParent:v$(b)};n.current.push(N),setTimeout(function(){n.current=n.current.filter(function(A){return A!==N})},1)},[]),h=S.useCallback(function(g){s.current=xx(g),r.current=void 0},[]),p=S.useCallback(function(g){d(g.type,cA(g),g.target,l(g,t.lockRef.current))},[]),m=S.useCallback(function(g){d(g.type,xx(g),g.target,l(g,t.lockRef.current))},[]);S.useEffect(function(){return nu.push(i),t.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:m}),document.addEventListener("wheel",c,tu),document.addEventListener("touchmove",c,tu),document.addEventListener("touchstart",h,tu),function(){nu=nu.filter(function(g){return g!==i}),document.removeEventListener("wheel",c,tu),document.removeEventListener("touchmove",c,tu),document.removeEventListener("touchstart",h,tu)}},[]);var u=t.removeScrollBar,y=t.inert;return S.createElement(S.Fragment,null,y?S.createElement(i,{styles:x$(a)}):null,u?S.createElement(l$,{gapMode:t.gapMode}):null)}function v$(t){for(var n=null;t!==null;)t instanceof ShadowRoot&&(n=t.host,t=t.host),t=t.parentNode;return n}const w$=QH(nP,b$);var J1=S.forwardRef(function(t,n){return S.createElement(nb,qo({},t,{ref:n,sideCar:w$}))});J1.classNames=nb.classNames;var N2=["Enter"," "],j$=["ArrowDown","PageUp","Home"],oP=["ArrowUp","PageDown","End"],k$=[...j$,...oP],N$={ltr:[...N2,"ArrowRight"],rtl:[...N2,"ArrowLeft"]},S$={ltr:["ArrowLeft"],rtl:["ArrowRight"]},cg="Menu",[Mf,A$,D$]=sg(cg),[Dh,lP]=nl(cg,[D$,J0,tb]),sb=J0(),cP=tb(),[I$,Ih]=Dh(cg),[C$,dg]=Dh(cg),dP=t=>{const{__scopeMenu:n,open:s=!1,children:r,dir:a,onOpenChange:i,modal:o=!0}=t,l=sb(n),[c,d]=S.useState(null),h=S.useRef(!1),p=Aa(i),m=lg(a);return S.useEffect(()=>{const u=()=>{h.current=!0,document.addEventListener("pointerdown",y,{capture:!0,once:!0}),document.addEventListener("pointermove",y,{capture:!0,once:!0})},y=()=>h.current=!1;return document.addEventListener("keydown",u,{capture:!0}),()=>{document.removeEventListener("keydown",u,{capture:!0}),document.removeEventListener("pointerdown",y,{capture:!0}),document.removeEventListener("pointermove",y,{capture:!0})}},[]),e.jsx(Jq,{...l,children:e.jsx(I$,{scope:n,open:s,onOpenChange:p,content:c,onContentChange:d,children:e.jsx(C$,{scope:n,onClose:S.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:h,dir:m,modal:o,children:r})})})};dP.displayName=cg;var _$="MenuAnchor",X1=S.forwardRef((t,n)=>{const{__scopeMenu:s,...r}=t,a=sb(s);return e.jsx(PT,{...a,...r,ref:n})});X1.displayName=_$;var Z1="MenuPortal",[T$,hP]=Dh(Z1,{forceMount:void 0}),uP=t=>{const{__scopeMenu:n,forceMount:s,children:r,container:a}=t,i=Ih(Z1,n);return e.jsx(T$,{scope:n,forceMount:s,children:e.jsx(Yi,{present:s||i.open,children:e.jsx(B0,{asChild:!0,container:a,children:r})})})};uP.displayName=Z1;var Wi="MenuContent",[P$,eN]=Dh(Wi),pP=S.forwardRef((t,n)=>{const s=hP(Wi,t.__scopeMenu),{forceMount:r=s.forceMount,...a}=t,i=Ih(Wi,t.__scopeMenu),o=dg(Wi,t.__scopeMenu);return e.jsx(Mf.Provider,{scope:t.__scopeMenu,children:e.jsx(Yi,{present:r||i.open,children:e.jsx(Mf.Slot,{scope:t.__scopeMenu,children:o.modal?e.jsx(E$,{...a,ref:n}):e.jsx(L$,{...a,ref:n})})})})}),E$=S.forwardRef((t,n)=>{const s=Ih(Wi,t.__scopeMenu),r=S.useRef(null),a=Zn(n,r);return S.useEffect(()=>{const i=r.current;if(i)return ZT(i)},[]),e.jsx(tN,{...t,ref:a,trapFocus:s.open,disableOutsidePointerEvents:s.open,disableOutsideScroll:!0,onFocusOutside:vt(t.onFocusOutside,i=>i.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>s.onOpenChange(!1)})}),L$=S.forwardRef((t,n)=>{const s=Ih(Wi,t.__scopeMenu);return e.jsx(tN,{...t,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>s.onOpenChange(!1)})}),tN=S.forwardRef((t,n)=>{const{__scopeMenu:s,loop:r=!1,trapFocus:a,onOpenAutoFocus:i,onCloseAutoFocus:o,disableOutsidePointerEvents:l,onEntryFocus:c,onEscapeKeyDown:d,onPointerDownOutside:h,onFocusOutside:p,onInteractOutside:m,onDismiss:u,disableOutsideScroll:y,...g}=t,w=Ih(Wi,s),b=dg(Wi,s),j=sb(s),N=cP(s),A=A$(s),[E,C]=S.useState(null),F=S.useRef(null),O=Zn(n,F,w.onContentChange),L=S.useRef(0),W=S.useRef(""),_=S.useRef(0),P=S.useRef(null),K=S.useRef("right"),q=S.useRef(0),ae=y?J1:S.Fragment,ce=y?{as:ph,allowPinchZoom:!0}:void 0,de=X=>{var pe,je;const V=W.current+X,he=A().filter(ke=>!ke.disabled),T=document.activeElement,I=(pe=he.find(ke=>ke.ref.current===T))==null?void 0:pe.textValue,G=he.map(ke=>ke.textValue),re=W$(G,V,I),ne=(je=he.find(ke=>ke.textValue===re))==null?void 0:je.ref.current;(function ke(De){W.current=De,window.clearTimeout(L.current),De!==""&&(L.current=window.setTimeout(()=>ke(""),1e3))})(V),ne&&setTimeout(()=>ne.focus())};S.useEffect(()=>()=>window.clearTimeout(L.current),[]),qT();const H=S.useCallback(X=>{var he,T;return K.current===((he=P.current)==null?void 0:he.side)&&K$(X,(T=P.current)==null?void 0:T.area)},[]);return e.jsx(P$,{scope:s,searchRef:W,onItemEnter:S.useCallback(X=>{H(X)&&X.preventDefault()},[H]),onItemLeave:S.useCallback(X=>{var V;H(X)||((V=F.current)==null||V.focus(),C(null))},[H]),onTriggerLeave:S.useCallback(X=>{H(X)&&X.preventDefault()},[H]),pointerGraceTimerRef:_,onPointerGraceIntentChange:S.useCallback(X=>{P.current=X},[]),children:e.jsx(ae,{...ce,children:e.jsx(Y1,{asChild:!0,trapped:a,onMountAutoFocus:vt(i,X=>{var V;X.preventDefault(),(V=F.current)==null||V.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:e.jsx(rg,{asChild:!0,disableOutsidePointerEvents:l,onEscapeKeyDown:d,onPointerDownOutside:h,onFocusOutside:p,onInteractOutside:m,onDismiss:u,children:e.jsx(YT,{asChild:!0,...
554N,dir:b.dir,orientation:"vertical",loop:r,currentTabStopId:E,onCurrentTabStopIdChange:C,onEntryFocus:vt(c,X=>{b.isUsingKeyboardRef.current||X.preventDefault()}),preventScrollOnEntryFocus:!0,children:e.jsx(ET,{role:"menu","aria-orientation":"vertical","data-state":CP(w.open),"data-radix-menu-content":"",dir:b.dir,...j,...g,ref:O,style:{outline:"none",...g.style},onKeyDown:vt(g.onKeyDown,X=>{const he=X.target.closest("[data-radix-menu-content]")===X.currentTarget,T=X.ctrlKey||X.altKey||X.metaKey,I=X.key.length===1;he&&(X.key==="Tab"&&X.preventDefault(),!T&&I&&de(X.key));const G=F.current;if(X.target!==G||!k$.includes(X.key))return;X.preventDefault();const ne=A().filter(pe=>!pe.disabled).map(pe=>pe.ref.current);oP.includes(X.key)&&ne.reverse(),H$(ne)}),onBlur:vt(t.onBlur,X=>{X.currentTarget.contains(X.target)||(window.clearTimeout(L.current),W.current="")}),onPointerMove:vt(t.onPointerMove,Rf(X=>{const V=X.target,he=q.current!==X.clientX;if(X.currentTarget.contains(V)&&he){const T=X.clientX>q.current?"right":"left";K.current=T,q.current=X.clientX}}))})})})})})})});pP.displayName=Wi;var M$="MenuGroup",nN=S.forwardRef((t,n)=>{const{__scopeMenu:s,...r}=t;return e.jsx(ln.div,{role:"group",...r,ref:n})});nN.displayName=M$;var R$="MenuLabel",mP=S.forwardRef((t,n)=>{const{__scopeMenu:s,...r}=t;return e.jsx(ln.div,{...r,ref:n})});mP.displayName=R$;var r0="MenuItem",hA="menu.itemSelect",rb=S.forwardRef((t,n)=>{const{disabled:s=!1,onSelect:r,...a}=t,i=S.useRef(null),o=dg(r0,t.__scopeMenu),l=eN(r0,t.__scopeMenu),c=Zn(n,i),d=S.useRef(!1),h=()=>{const p=i.current;if(!s&&p){const m=new CustomEvent(hA,{bubbles:!0,cancelable:!0});p.addEventListener(hA,u=>r==null?void 0:r(u),{once:!0}),_1(p,m),m.defaultPrevented?d.current=!1:o.onClose()}};return e.jsx(fP,{...a,ref:c,disabled:s,onClick:vt(t.onClick,h),onPointerDown:p=>{var m;(m=t.onPointerDown)==null||m.call(t,p),d.current=!0},onPointerUp:vt(t.onPointerUp,p=>{var m;d.current||(m=p.currentTarget)==null||m.click()}),onKeyDown:vt(t.onKeyDown,p=>{const m=l.searchRef.current!=="";s||m&&p.key===" "||N2.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});rb.displayName=r0;var fP=S.forwardRef((t,n)=>{const{__scopeMenu:s,disabled:r=!1,textValue:a,...i}=t,o=eN(r0,s),l=cP(s),c=S.useRef(null),d=Zn(n,c),[h,p]=S.useState(!1),[m,u]=S.useState("");return S.useEffect(()=>{const y=c.current;y&&u((y.textContent??"").trim())},[i.children]),e.jsx(Mf.ItemSlot,{scope:s,disabled:r,textValue:a??m,children:e.jsx(JT,{asChild:!0,...l,focusable:!r,children:e.jsx(ln.div,{role:"menuitem","data-highlighted":h?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...i,ref:d,onPointerMove:vt(t.onPointerMove,Rf(y=>{r?o.onItemLeave(y):(o.onItemEnter(y),y.defaultPrevented||y.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:vt(t.onPointerLeave,Rf(y=>o.onItemLeave(y))),onFocus:vt(t.onFocus,()=>p(!0)),onBlur:vt(t.onBlur,()=>p(!1))})})})}),O$="MenuCheckboxItem",gP=S.forwardRef((t,n)=>{const{checked:s=!1,onCheckedChange:r,...a}=t;return e.jsx(wP,{scope:t.__scopeMenu,checked:s,children:e.jsx(rb,{role:"menuitemcheckbox","aria-checked":a0(s)?"mixed":s,...a,ref:n,"data-state":rN(s),onSelect:vt(a.onSelect,()=>r==null?void 0:r(a0(s)?!0:!s),{checkForDefaultPrevented:!1})})})});gP.displayName=O$;var xP="MenuRadioGroup",[F$,V$]=Dh(xP,{value:void 0,onValueChange:()=>{}}),yP=S.forwardRef((t,n)=>{const{value:s,onValueChange:r,...a}=t,i=Aa(r);return e.jsx(F$,{scope:t.__scopeMenu,value:s,onValueChange:i,children:e.jsx(nN,{...a,ref:n})})});yP.displayName=xP;var bP="MenuRadioItem",vP=S.forwardRef((t,n)=>{const{value:s,...r}=t,a=V$(bP,t.__scopeMenu),i=s===a.value;return e.jsx(wP,{scope:t.__scopeMenu,checked:i,children:e.jsx(rb,{role:"menuitemradio","aria-checked":i,...r,ref:n,"data-state":rN(i),onSelect:vt(r.onSelect,()=>{var o;return(o=a.onValueChange)==null?void 0:o.call(a,s)},{checkForDefaultPrevented:!1})})})});vP.displayName=bP;var sN="MenuItemIndicator",[wP,B$]=Dh(sN,{checked:!1}),jP=S.forwardRef((t,n)=>{const{__scopeMenu:s,forceMount:r,...a}=t,i=B$(sN,s);return e.jsx(Yi,{present:r||a0(i.checked)||i.checked===!0,children:e.jsx(ln.span,{...a,ref:n,"data-state":rN(i.checked)})})});jP.displayName=sN;
554var z$="MenuSeparator",kP=S.forwardRef((t,n)=>{const{__scopeMenu:s,...r}=t;return e.jsx(ln.div,{role:"separator","aria-orientation":"horizontal",...r,ref:n})});kP.displayName=z$;var U$="MenuArrow",NP=S.forwardRef((t,n)=>{const{__scopeMenu:s,...r}=t,a=sb(s);return e.jsx(LT,{...a,...r,ref:n})});NP.displayName=U$;var q$="MenuSub",[gle,SP]=Dh(q$),Om="MenuSubTrigger",AP=S.forwardRef((t,n)=>{const s=Ih(Om,t.__scopeMenu),r=dg(Om,t.__scopeMenu),a=SP(Om,t.__scopeMenu),i=eN(Om,t.__scopeMenu),o=S.useRef(null),{pointerGraceTimerRef:l,onPointerGraceIntentChange:c}=i,d={__scopeMenu:t.__scopeMenu},h=S.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return S.useEffect(()=>h,[h]),S.useEffect(()=>{const p=l.current;return()=>{window.clearTimeout(p),c(null)}},[l,c]),e.jsx(X1,{asChild:!0,...d,children:e.jsx(fP,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":s.open,"aria-controls":a.contentId,"data-state":CP(s.open),...t,ref:V0(n,a.onTriggerChange),onClick:p=>{var m;(m=t.onClick)==null||m.call(t,p),!(t.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),s.open||s.onOpenChange(!0))},onPointerMove:vt(t.onPointerMove,Rf(p=>{i.onItemEnter(p),!p.defaultPrevented&&!t.disabled&&!s.open&&!o.current&&(i.onPointerGraceIntentChange(null),o.current=window.setTimeout(()=>{s.onOpenChange(!0),h()},100))})),onPointerLeave:vt(t.onPointerLeave,Rf(p=>{var u,y;h();const m=(u=s.content)==null?void 0:u.getBoundingClientRect();if(m){const g=(y=s.content)==null?void 0:y.dataset.side,w=g==="right",b=w?-5:5,j=m[w?"left":"right"],N=m[w?"right":"left"];i.onPointerGraceIntentChange({area:[{x:p.clientX+b,y:p.clientY},{x:j,y:m.top},{x:N,y:m.top},{x:N,y:m.bottom},{x:j,y:m.bottom}],side:g}),window.clearTimeout(l.current),l.current=window.setTimeout(()=>i.onPointerGraceIntentChange(null),300)}else{if(i.onTriggerLeave(p),p.defaultPrevented)return;i.onPointerGraceIntentChange(null)}})),onKeyDown:vt(t.onKeyDown,p=>{var u;const m=i.searchRef.current!=="";t.disabled||m&&p.key===" "||N$[r.dir].includes(p.key)&&(s.onOpenChange(!0),(u=s.content)==null||u.focus(),p.preventDefault())})})})});AP.displayName=Om;var DP="MenuSubContent",IP=S.forwardRef((t,n)=>{const s=hP(Wi,t.__scopeMenu),{forceMount:r=s.forceMount,...a}=t,i=Ih(Wi,t.__scopeMenu),o=dg(Wi,t.__scopeMenu),l=SP(DP,t.__scopeMenu),c=S.useRef(null),d=Zn(n,c);return e.jsx(Mf.Provider,{scope:t.__scopeMenu,children:e.jsx(Yi,{present:r||i.open,children:e.jsx(Mf.Slot,{scope:t.__scopeMenu,children:e.jsx(tN,{id:l.contentId,"aria-labelledby":l.triggerId,...a,ref:d,align:"start",side:o.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:h=>{var p;o.isUsingKeyboardRef.current&&((p=c.current)==null||p.focus()),h.preventDefault()},onCloseAutoFocus:h=>h.preventDefault(),onFocusOutside:vt(t.onFocusOutside,h=>{h.target!==l.trigger&&i.onOpenChange(!1)}),onEscapeKeyDown:vt(t.onEscapeKeyDown,h=>{o.onClose(),h.preventDefault()}),onKeyDown:vt(t.onKeyDown,h=>{var u;const p=h.currentTarget.contains(h.target),m=S$[o.dir].includes(h.key);p&&m&&(i.onOpenChange(!1),(u=l.trigger)==null||u.focus(),h.preventDefault())})})})})})});IP.displayName=DP;function CP(t){return t?"open":"closed"}function a0(t){return t==="indeterminate"}function rN(t){return a0(t)?"indeterminate":t?"checked":"unchecked"}function H$(t){const n=document.activeElement;for(const s of t)if(s===n||(s.focus(),document.activeElement!==n))return}function $$(t,n){return t.map((s,r)=>t[(n+r)%t.length])}function W$(t,n,s){const a=n.length>1&&Array.from(n).every(d=>d===n[0])?n[0]:n,i=s?t.indexOf(s):-1;let o=$$(t,Math.max(i,0));a.length===1&&(o=o.filter(d=>d!==s));const c=o.find(d=>d.toLowerCase().startsWith(a.toLowerCase()));return c!==s?c:void 0}function G$(t,n){const{x:s,y:r}=t;let a=!1;for(let i=0,o=n.length-1;i<n.length;o=i++){const l=n[i].x,c=n[i].y,d=n[o].x,h=n[o].y;c>r!=h>r&&s<(d-l)*(r-c)/(h-c)+l&&(a=!a)}return a}function K$(t,n){if(!n)return!1;const s={x:t.clientX,y:t.clientY};return G$(s,n)}function Rf(t){return n=>n.pointerType==="mouse"?t(n):void 0}var Q$=dP,Y$=X1,J$=uP,X$=pP,Z$=nN,eW=mP,tW=rb,nW=gP,sW=yP,rW=vP,aW=jP,iW=kP,oW=NP,lW=AP,cW=IP,aN="DropdownMenu",[dW,xle]=nl(aN,[lP]),Ca=lP(),[hW,_P]=dW(aN),TP=t=>{const{__scopeDropdownMenu:n,children:s,dir:r,open:a,defaultOpen:i,onOpenChange:o,modal:l=!0}=t,c=Ca(n),d=S.useRef(null),[h=!1,p]=sl({prop:a,defaultProp:i,onChange:o});return e.jsx(hW,{scope:n,triggerId:Cl(),triggerRef:d,contentId:Cl(),open:h,onOpenChange:p,onOpenToggle:S.useCallback(()=>p(m=>!m),[p]),modal:l,children:e.jsx(Q$,{...c,open:h,onOpenChange:p,dir:r,modal:l,children:s})})};TP.displayName=aN;
554var PP="DropdownMenuTrigger",EP=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,disabled:r=!1,...a}=t,i=_P(PP,s),o=Ca(s);return e.jsx(Y$,{asChild:!0,...o,children:e.jsx(ln.button,{type:"button",id:i.triggerId,"aria-haspopup":"menu","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":i.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...a,ref:V0(n,i.triggerRef),onPointerDown:vt(t.onPointerDown,l=>{!r&&l.button===0&&l.ctrlKey===!1&&(i.onOpenToggle(),i.open||l.preventDefault())}),onKeyDown:vt(t.onKeyDown,l=>{r||(["Enter"," "].includes(l.key)&&i.onOpenToggle(),l.key==="ArrowDown"&&i.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(l.key)&&l.preventDefault())})})})});EP.displayName=PP;var uW="DropdownMenuPortal",LP=t=>{const{__scopeDropdownMenu:n,...s}=t,r=Ca(n);return e.jsx(J$,{...r,...s})};LP.displayName=uW;var MP="DropdownMenuContent",RP=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=_P(MP,s),i=Ca(s),o=S.useRef(!1);return e.jsx(X$,{id:a.contentId,"aria-labelledby":a.triggerId,...i,...r,ref:n,onCloseAutoFocus:vt(t.onCloseAutoFocus,l=>{var c;o.current||(c=a.triggerRef.current)==null||c.focus(),o.current=!1,l.preventDefault()}),onInteractOutside:vt(t.onInteractOutside,l=>{const c=l.detail.originalEvent,d=c.button===0&&c.ctrlKey===!0,h=c.button===2||d;(!a.modal||h)&&(o.current=!0)}),style:{...t.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});RP.displayName=MP;var pW="DropdownMenuGroup",mW=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=Ca(s);return e.jsx(Z$,{...a,...r,ref:n})});mW.displayName=pW;var fW="DropdownMenuLabel",OP=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=Ca(s);return e.jsx(eW,{...a,...r,ref:n})});OP.displayName=fW;var gW="DropdownMenuItem",FP=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=Ca(s);return e.jsx(tW,{...a,...r,ref:n})});FP.displayName=gW;var xW="DropdownMenuCheckboxItem",VP=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=Ca(s);return e.jsx(nW,{...a,...r,ref:n})});VP.displayName=xW;var yW="DropdownMenuRadioGroup",bW=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=Ca(s);return e.jsx(sW,{...a,...r,ref:n})});bW.displayName=yW;var vW="DropdownMenuRadioItem",BP=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=Ca(s);return e.jsx(rW,{...a,...r,ref:n})});BP.displayName=vW;var wW="DropdownMenuItemIndicator",zP=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=Ca(s);return e.jsx(aW,{...a,...r,ref:n})});zP.displayName=wW;var jW="DropdownMenuSeparator",UP=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=Ca(s);return e.jsx(iW,{...a,...r,ref:n})});UP.displayName=jW;var kW="DropdownMenuArrow",NW=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=Ca(s);return e.jsx(oW,{...a,...r,ref:n})});NW.displayName=kW;var SW="DropdownMenuSubTrigger",qP=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=Ca(s);return e.jsx(lW,{...a,...r,ref:n})});qP.displayName=SW;var AW="DropdownMenuSubContent",HP=S.forwardRef((t,n)=>{const{__scopeDropdownMenu:s,...r}=t,a=Ca(s);return e.jsx(cW,{...a,...r,ref:n,style:{...t.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});HP.displayName=AW;var DW=TP,IW=EP,CW=LP,$P=RP,WP=OP,GP=FP,KP=VP,QP=BP,YP=zP,JP=UP,XP=qP,ZP=HP;const Vv=DW,Bv=IW,_W=S.forwardRef(({className:t,inset:n,children:s,...r},a)=>e.jsxs(XP,{ref:a,className:Ht("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",n&&"pl-8",t),...r,children:[s,e.jsx(Vr,{className:"ml-auto h-4 w-4"})]}));
554_W.displayName=XP.displayName;const TW=S.forwardRef(({className:t,...n},s)=>e.jsx(ZP,{ref:s,className:Ht("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...n}));TW.displayName=ZP.displayName;const hy=S.forwardRef(({className:t,sideOffset:n=4,...s},r)=>e.jsx(CW,{children:e.jsx($P,{ref:r,sideOffset:n,className:Ht("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...s})}));hy.displayName=$P.displayName;const uy=S.forwardRef(({className:t,inset:n,...s},r)=>e.jsx(GP,{ref:r,className:Ht("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n&&"pl-8",t),...s}));uy.displayName=GP.displayName;const PW=S.forwardRef(({className:t,children:n,checked:s,...r},a)=>e.jsxs(KP,{ref:a,className:Ht("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),checked:s,...r,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(YP,{children:e.jsx(Jt,{className:"h-4 w-4"})})}),n]}));PW.displayName=KP.displayName;const EW=S.forwardRef(({className:t,children:n,...s},r)=>e.jsxs(QP,{ref:r,className:Ht("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...s,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(YP,{children:e.jsx(dz,{className:"h-2 w-2 fill-current"})})}),n]}));EW.displayName=QP.displayName;const LW=S.forwardRef(({className:t,inset:n,...s},r)=>e.jsx(WP,{ref:r,className:Ht("px-2 py-1.5 text-sm font-semibold",n&&"pl-8",t),...s}));LW.displayName=WP.displayName;const MW=S.forwardRef(({className:t,...n},s)=>e.jsx(JP,{ref:s,className:Ht("-mx-1 my-1 h-px bg-muted",t),...n}));MW.displayName=JP.displayName;const RW=()=>{const[t,n]=S.useState(!1),s=[{name:"DeepSeek Chat",path:"/chat"},{name:"DeepSeek R1",path:"/deepseek-r1"},{name:"DeepSeek AI",path:"/deepseek-ai"}],r=[{name:"vs ChatGPT",path:"/deepseek-vs-chatgpt"},{name:"vs Claude",path:"/deepseek-vs-claude"},{name:"vs Gemini",path:"/deepseek-vs-gemini"},{name:"vs Perplexity",path:"/deepseek-vs-perplexity"},{name:"vs Llama",path:"/deepseek-vs-llama"},{name:"vs Mistral",path:"/deepseek-vs-mistral"}],a=[{name:"Documentation",path:"/docs"},{name:"Pricing",path:"/pricing"},{name:"Blog",path:"/blog"},{name:"What is DeepSeek",path:"/what-is-deepseek-ai"},{name:"Is DeepSeek Safe?",path:"/is-deepseek-safe"},{name:"About",path:"/about"}];return S.useEffect(()=>{const i=document.createElement("script");i.src="https://cdnjs.buymeacoffee.com/1.0.0/button.prod.min.js",i.setAttribute("data-name","bmc-button"),i.setAttribute("data-slug","deepseekai"),i.setAttribute("data-color","#40DCA5"),i.setAttribute("data-emoji","ð"),i.setAttribute("data-font","Lato"),i.setAttribute("data-text","Fuel the Mission"),i.setAttribute("data-outline-color","#000000"),i.setAttribute("data-font-color","#ffffff"),i.setAttribute("data-coffee-color","#FFDD00"),document.body.appendChild(i)},[]),e.jsx("nav",{className:"sticky top-0 w-full bg-white z-40 border-b shadow-sm",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"flex justify-between items-center h-16 relative",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsxs(se,{to:"/",className:"flex items-center space-x-2 hover:opacity-90 transition-opacity",children:[e.jsx(Sz,{className:"h-8 w-8 text-[#0066FF] animate-[wave_2s_ease-in-out_infinite]",strokeWidth:1.5}),e.jsx("span",{className:"text-xl sm:text-2xl font-bold text-[#0066FF]",children:"DeepSeek AI"})]})}),e.jsxs("div",{className:"hidden md:flex items-center space-x-1",children:[e.jsx(se,{to:"/",className:"px-3 py-2 text-sm font-medium text-gray-600 hover:text-[#0066FF] hover:bg-gray-50 rounded-md transition-colors",children:"Home"}),e.jsxs(Vv,{children:[e.jsx(Bv,{asChild:!0,children:e.jsxs(Ke,{variant:"ghost",className:"px-3 py-2 text-sm font-medium text-gray-600 hover:text-[#0066FF] hover:bg-gray-50",children:["Products",e.jsx(Xm,{className:"ml-1 h-4 w-4"})]})}),e.jsx(hy,{className:"bg-white border shadow-lg z-50",align:"start",children:s.map(i=>e.jsx(uy,{asChild:!0,children:e.jsx(se,{to:i.path,className:"w-full cursor-pointer",children:i.name})},i.name))})]}),e.jsxs(Vv,{children:[e.jsx(Bv,{asChild:!0,children:e.jsxs(Ke,{variant:"ghost",className:"px-3 py-2 text-sm font-medium text-gray-600 hover:text-[#0066FF] hover:bg-gray-50",children:["Compare",e.jsx(Xm,{className:"ml-1 h-4 w-4"})]})}),e.jsx(hy,{className:"bg-white border shadow-lg z-50",align:"start",children:r.map(i=>e.jsx(uy,{asChild:!0,children:e.jsx(se,{to:i.path,className:"w-full cursor-pointer",children:i.name})},i.name))})]}),e.jsxs(Vv,{children:[e.jsx(Bv,{asChild:!0,children:e.jsxs(Ke,{variant:"ghost",className:"px-3 py-2 text-sm font-medium text-gray-600 hover:text-[#0066FF] hover:bg-gray-50",children:["Resources",e.jsx(Xm,{className:"ml-1 h-4 w-4"})]})}),e.jsx(hy,{className:"bg-white border shadow-lg z-50",align:"start",children:a.map(i=>e.jsx(uy,{asChild:!0,children:e.jsx(se,{to:i.path,className:"w-full cursor-pointer",children:i.name})},i.name))})]}),e.jsx(se,{to:"/pricing",className:"px-3 py-2 text-sm font-medium text-gray-600 hover:text-[#0066FF] hover:bg-gray-50 rounded-md transition-colors",children:"Pricing"}),e.jsx("div",{className:"bmc-button ml-2"})]}),e.jsx("div",{className:"md:hidden",children:e.jsx("button",{onClick:()=>n(!t),className:"inline-flex items-center justify-center p-2 rounded-md text-gray-700 hover:text-[#0066FF] hover:bg-gray-50 transition-colors","aria-label":"Toggle menu",children:t?e.jsx(gh,{size:20}):e.jsx(wz,{size:20})})})]}),t&&e.jsx("div",{className:"md:hidden absolute top-full left-0 right-0 bg-white border-b shadow-lg animate-fadeIn z-50",children:e.jsxs("div",{className:"px-4 py-2 space-y-1",children:[e.jsx(se,{to:"/",className:"block px-4 py-2 text-base font-medium text-gray-700 hover:text-[#0066FF] hover:bg-gray-50 rounded-md transition-colors",onClick:()=>n(!1),children:"Home"}),e.jsxs("div",{className:"px-4 py-2",children:[e.jsx("p",{className:"text-xs font-semibold text-gray-400 uppercase tracking-wider mb-2",children:"Products"}),s.map(i=>e.jsx(se,{to:i.path,className:"block px-2 py-1.5 text-base font-medium text-gray-700 hover:text-[#0066FF] hover:bg-gray-50 rounded-md transition-colors",onClick:()=>n(!1),children:i.name},i.name))]}),e.jsxs("div",{className:"px-4 py-2",children:[e.jsx("p",{className:"text-xs font-semibold text-gray-400 uppercase tracking-wider mb-2",children:"Compare"}),r.map(i=>e.jsx(se,{to:i.path,className:"block px-2 py-1.5 text-base font-medium text-gray-700 hover:text-[#0066FF] hover:bg-gray-50 rounded-md transition-colors",onClick:()=>n(!1),children:i.name},i.name))]}),e.jsxs("div",{className:"px-4 py-2",children:[e.jsx("p",{className:"text-xs font-semibold text-gray-400 uppercase tracking-wider mb-2",children:"Resources"}),a.map(i=>e.jsx(se,{to:i.path,className:"block px-2 py-1.5 text-base font-medium text-gray-700 hover:text-[#0066FF] hover:bg-gray-50 rounded-md transition-colors",onClick:()=>n(!1),children:i.name},i.name))]}),e.jsx(se,{to:"/pricing",className:"block px-4 py-2 text-base font-medium text-gray-700 hover:text-[#0066FF] hover:bg-gray-50 rounded-md transition-colors",onClick:()=>n(!1),children:"Pricing"}),e.jsx("div",{className:"bmc-button px-4 py-2"})]})})]})})},OW=()=>{const[t,n]=S.useState(!0);return t?e.jsxs("div",{className:"w-full bg-amber-50 border-b border-amber-200 text-gray-700 py-2 px-4 text-center text-sm relative",children:[e.jsx("p",{className:"max-w-7xl mx-auto",children:"Deepseek.ai is an independent website and is not affiliated with, sponsored by, or endorsed by Hangzhou DeepSeek Art
554ificial Intelligence Co., Ltd."}),e.jsx("button",{onClick:()=>n(!1),className:"absolute right-4 top-1/2 -translate-y-1/2 text-gray-500 hover:text-gray-700","aria-label":"Close disclaimer",children:e.jsx(gh,{size:16})})]}):null},FW=()=>e.jsx("footer",{className:"bg-gray-50 border-t border-gray-100",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-10",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8 mb-8",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(M1,{className:"h-4 w-4 text-gray-500","aria-hidden":"true"}),e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:"DeepSeek by region"})]}),e.jsxs("ul",{className:"space-y-2",children:[e.jsx("li",{children:e.jsx(se,{to:"/deepseek-usa",className:"text-sm text-gray-600 hover:text-primary",children:"ðºð¸ DeepSeek USA"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-uk",className:"text-sm text-gray-600 hover:text-primary",children:"ð¬ð§ DeepSeek UK"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-canada",className:"text-sm text-gray-600 hover:text-primary",children:"ð¨ð¦ DeepSeek Canada"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-deutsch",className:"text-sm text-gray-600 hover:text-primary",children:"ð©ðª DeepSeek Deutsch"})})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900 mb-3",children:"Models & guides"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsx("li",{children:e.jsx(se,{to:"/deepseek-v4",className:"text-sm text-gray-600 hover:text-primary",children:"DeepSeek V4"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-r1",className:"text-sm text-gray-600 hover:text-primary",children:"DeepSeek R1"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-api",className:"text-sm text-gray-600 hover:text-primary",children:"DeepSeek API"})}),e.jsx("li",{children:e.jsx(se,{to:"/is-deepseek-safe",className:"text-sm text-gray-600 hover:text-primary",children:"Is DeepSeek safe?"})})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900 mb-3",children:"Compare DeepSeek"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsx("li",{children:e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"text-sm text-gray-600 hover:text-primary",children:"vs ChatGPT"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-vs-claude",className:"text-sm text-gray-600 hover:text-primary",children:"vs Claude"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-vs-gemini",className:"text-sm text-gray-600 hover:text-primary",children:"vs Gemini"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-vs-llama",className:"text-sm text-gray-600 hover:text-primary",children:"vs Llama"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-vs-mistral",className:"text-sm text-gray-600 hover:text-primary",children:"vs Mistral"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-vs-perplexity",className:"text-sm text-gray-600 hover:text-primary",children:"vs Perplexity"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-vs-stepfun",className:"text-sm text-gray-600 hover:text-primary",children:"vs Stepfun"})})]})]})]}),e.jsxs("div",{className:"border-t border-gray-200 pt-6 flex flex-col items-center justify-center space-y-3",children:[e.jsx("p",{className:"text-sm text-gray-500 text-center",children:"DeepSeek.ai is not affiliated with, endorsed by, or connected to DeepSeek.com in any way."}),e.jsxs("a",{href:"https://www.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-[#0b57d0] hover:text-[#0b57d0]/80 transition-colors flex items-center","aria-label":"Visit DeepSeek.com in a new tab",children:["Looking for DeepSeek.com?",e.jsx(wn,{className:"ml-1 h-4 w-4 inline","aria-hidden":"true"})]}),e.jsxs("p",{className:"text-sm text-gray-500",children:["© ",new Date().getFullYear()," DeepSeek AI. All rights reserved."]})]})]})}),VW=new qV,BW=()=>e.jsx(KV,{client:VW,children:e.jsxs(mH,{children:[e.jsx(uU,{}),e.jsx(zU,{}),e.jsx(OW,{}),e.jsx(RW,{}),e.jsx(W9,{}),e.jsx(FW,{})]})}),zW=t=>{let n;return t?n=t:typeof fetch>"u"?n=(...s)=>$i(async()=>{const{default:r}=await Promise.resolve().then(()=>
554Lp);return{default:r}},void 0).then(({default:r})=>r(...s)):n=fetch,(...s)=>n(...s)};class iN extends Error{constructor(n,s="FunctionsError",r){super(n),this.name=s,this.context=r}}class UW extends iN{constructor(n){super("Failed to send a request to the Edge Function","FunctionsFetchError",n)}}class qW extends iN{constructor(n){super("Relay Error invoking the Edge Function","FunctionsRelayError",n)}}class HW extends iN{constructor(n){super("Edge Function returned a non-2xx status code","FunctionsHttpError",n)}}var S2;(function(t){t.Any="any",t.ApNortheast1="ap-northeast-1",t.ApNortheast2="ap-northeast-2",t.ApSouth1="ap-south-1",t.ApSoutheast1="ap-southeast-1",t.ApSoutheast2="ap-southeast-2",t.CaCentral1="ca-central-1",t.EuCentral1="eu-central-1",t.EuWest1="eu-west-1",t.EuWest2="eu-west-2",t.EuWest3="eu-west-3",t.SaEast1="sa-east-1",t.UsEast1="us-east-1",t.UsWest1="us-west-1",t.UsWest2="us-west-2"})(S2||(S2={}));var $W=function(t,n,s,r){function a(i){return i instanceof s?i:new s(function(o){o(i)})}return new(s||(s=Promise))(function(i,o){function l(h){try{d(r.next(h))}catch(p){o(p)}}function c(h){try{d(r.throw(h))}catch(p){o(p)}}function d(h){h.done?i(h.value):a(h.value).then(l,c)}d((r=r.apply(t,n||[])).next())})};class WW{constructor(n,{headers:s={},customFetch:r,region:a=S2.Any}={}){this.url=n,this.headers=s,this.region=a,this.fetch=zW(r)}setAuth(n){this.headers.Authorization=`Bearer ${n}`}invoke(n,s={}){var r;return $W(this,void 0,void 0,function*(){try{const{headers:a,method:i,body:o}=s;let l={},{region:c}=s;c||(c=this.region),c&&c!=="any"&&(l["x-region"]=c);let d;o&&(a&&!Object.prototype.hasOwnProperty.call(a,"Content-Type")||!a)&&(typeof Blob<"u"&&o instanceof Blob||o instanceof ArrayBuffer?(l["Content-Type"]="application/octet-stream",d=o):typeof o=="string"?(l["Content-Type"]="text/plain",d=o):typeof FormData<"u"&&o instanceof FormData?d=o:(l["Content-Type"]="application/json",d=JSON.stringify(o)));const h=yield this.fetch(`${this.url}/${n}`,{method:i||"POST",headers:Object.assign(Object.assign(Object.assign({},l),this.headers),a),body:d}).catch(y=>{throw new UW(y)}),p=h.headers.get("x-relay-error");if(p&&p==="true")throw new qW(h);if(!h.ok)throw new HW(h);let m=((r=h.headers.get("Content-Type"))!==null&&r!==void 0?r:"text/plain").split(";")[0].trim(),u;return m==="application/json"?u=yield h.json():m==="application/octet-stream"?u=yield h.blob():m==="text/event-stream"?u=h:m==="multipart/form-data"?u=yield h.formData():u=yield h.text(),{data:u,error:null}}catch(a){return{data:null,error:a}}})}}var Ua={},oN={},ab={},hg={},ib={},ob={},GW=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")},wp=GW();const KW=wp.fetch,eE=wp.fetch.bind(wp),tE=wp.Headers,QW=wp.Request,YW=wp.Response,Lp=Object.freeze(Object.defineProperty({__proto__:null,Headers:tE,Request:QW,Response:YW,default:eE,fetch:KW},Symbol.toStringTag,{value:"Module"})),JW=LR(Lp);var lb={};Object.defineProperty(lb,"__esModule",{value:!0});let XW=class extends Error{constructor(n){super(n.message),this.name="PostgrestError",this.details=n.details,this.hint=n.hint,this.co
554de=n.code}};lb.default=XW;var nE=ca&&ca.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ob,"__esModule",{value:!0});const ZW=nE(JW),eG=nE(lb);let tG=class{constructor(n){this.shouldThrowOnError=!1,this.method=n.method,this.url=n.url,this.headers=n.headers,this.schema=n.schema,this.body=n.body,this.shouldThrowOnError=n.shouldThrowOnError,this.signal=n.signal,this.isMaybeSingle=n.isMaybeSingle,n.fetch?this.fetch=n.fetch:typeof fetch>"u"?this.fetch=ZW.default:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(n,s){return this.headers=Object.assign({},this.headers),this.headers[n]=s,this}then(n,s){this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers["Accept-Profile"]=this.schema:this.headers["Content-Profile"]=this.schema),this.method!=="GET"&&this.method!=="HEAD"&&(this.headers["Content-Type"]="application/json");const r=this.fetch;let a=r(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async i=>{var o,l,c;let d=null,h=null,p=null,m=i.status,u=i.statusText;if(i.ok){if(this.method!=="HEAD"){const b=await i.text();b===""||(this.headers.Accept==="text/csv"||this.headers.Accept&&this.headers.Accept.includes("application/vnd.pgrst.plan+text")?h=b:h=JSON.parse(b))}const g=(o=this.headers.Prefer)===null||o===void 0?void 0:o.match(/count=(exact|planned|estimated)/),w=(l=i.headers.get("content-range"))===null||l===void 0?void 0:l.split("/");g&&w&&w.length>1&&(p=parseInt(w[1])),this.isMaybeSingle&&this.method==="GET"&&Array.isArray(h)&&(h.length>1?(d={code:"PGRST116",details:`Results contain ${h.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},h=null,p=null,m=406,u="Not Acceptable"):h.length===1?h=h[0]:h=null)}else{const g=await i.text();try{d=JSON.parse(g),Array.isArray(d)&&i.status===404&&(h=[],d=null,m=200,u="OK")}catch{i.status===404&&g===""?(m=204,u="No Content"):d={message:g}}if(d&&this.isMaybeSingle&&(!((c=d==null?void 0:d.details)===null||c===void 0)&&c.includes("0 rows"))&&(d=null,m=200,u="OK"),d&&this.shouldThrowOnError)throw new eG.default(d)}return{error:d,data:h,count:p,status:m,statusText:u}});return this.shouldThrowOnError||(a=a.catch(i=>{var o,l,c;return{error:{message:`${(o=i==null?void 0:i.name)!==null&&o!==void 0?o:"FetchError"}: ${i==null?void 0:i.message}`,details:`${(l=i==null?void 0:i.stack)!==null&&l!==void 0?l:""}`,hint:"",code:`${(c=i==null?void 0:i.code)!==null&&c!==void 0?c:""}`},data:null,count:null,status:0,statusText:""}})),a.then(n,s)}returns(){return this}overrideTypes(){return this}};ob.default=tG;var nG=ca&&ca.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ib,"__esModule",{value:!0});const sG=nG(ob);let rG=class extends sG.default{select(n){let s=!1;const r=(n??"*").split("").map(a=>/\s/.test(a)&&!s?"":(a==='"'&&(s=!s),a)).join("");return this.url.searchParams.set("select",r),this.headers.Prefer&&(this.headers.Prefer+=","),this.headers.Prefer+="return=representation",this}order(n,{ascending:s=!0,nullsFirst:r,foreignTable:a,referencedTable:i=a}={}){const o=i?`${i}.order`:"order",l=this.url.searchParams.get(o);return this.url.searchParams.set(o,`${l?`${l},`:""}${n}.${s?"asc":"desc"}${r===void 0?"":r?".nullsfirst":".nullslast"}`),this}limit(n,{foreignTable:s,referencedTable:r=s}={}){const a=typeof r>"u"?"limit":`${r}.limit`;return this.url.searchParams.set(a,`${n}`),this}range(n,s,{foreignTable:r,referencedTable:a=r}={}){const i=typeof a>"u"?"offset":`${a}.offset`,o=typeof a>"u"?"limit":`${a}.limit`;return this.url.searchParams.set(i,`${n}`),this.url.searchParams.set(o,`${s-n+1}`),this}abortSignal(n){return this.signal=n,this}single(){return this.headers.Accept="application/vnd.pgrst.object+json",this}maybeSingle(){return this.method==="GET"?this.headers.Accept="application/json":this.headers.Accept="application/vnd.pgrst.object+json",this.isMaybeSingle=!0,this}csv(){return this.headers.Accept="text/csv",this}geojson(){return this.headers.Accept="application/geo+json",this}
vendor: 5,702 bytes, line 554
554explain({analyze:n=!1,verbose:s=!1,settings:r=!1,buffers:a=!1,wal:i=!1,format:o="text"}={}){var l;const c=[n?"analyze":null,s?"verbose":null,r?"settings":null,a?"buffers":null,i?"wal":null].filter(Boolean).join("|"),d=(l=this.headers.Accept)!==null&&l!==void 0?l:"application/json";return this.headers.Accept=`application/vnd.pgrst.plan+${o}; for="${d}"; options=${c};`,o==="json"?this:this}rollback(){var n;return((n=this.headers.Prefer)!==null&&n!==void 0?n:"").trim().length>0?this.headers.Prefer+=",tx=rollback":this.headers.Prefer="tx=rollback",this}returns(){return this}};ib.default=rG;var aG=ca&&ca.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hg,"__esModule",{value:!0});const iG=aG(ib);let oG=class extends iG.default{eq(n,s){return this.url.searchParams.append(n,`eq.${s}`),this}neq(n,s){return this.url.searchParams.append(n,`neq.${s}`),this}gt(n,s){return this.url.searchParams.append(n,`gt.${s}`),this}gte(n,s){return this.url.searchParams.append(n,`gte.${s}`),this}lt(n,s){return this.url.searchParams.append(n,`lt.${s}`),this}lte(n,s){return this.url.searchParams.append(n,`lte.${s}`),this}like(n,s){return this.url.searchParams.append(n,`like.${s}`),this}likeAllOf(n,s){return this.url.searchParams.append(n,`like(all).{${s.join(",")}}`),this}likeAnyOf(n,s){return this.url.searchParams.append(n,`like(any).{${s.join(",")}}`),this}ilike(n,s){return this.url.searchParams.append(n,`ilike.${s}`),this}ilikeAllOf(n,s){return this.url.searchParams.append(n,`ilike(all).{${s.join(",")}}`),this}ilikeAnyOf(n,s){return this.url.searchParams.append(n,`ilike(any).{${s.join(",")}}`),this}is(n,s){return this.url.searchParams.append(n,`is.${s}`),this}in(n,s){const r=Array.from(new Set(s)).map(a=>typeof a=="string"&&new RegExp("[,()]").test(a)?`"${a}"`:`${a}`).join(",");return this.url.searchParams.append(n,`in.(${r})`),this}contains(n,s){return typeof s=="string"?this.url.searchParams.append(n,`cs.${s}`):Array.isArray(s)?this.url.searchParams.append(n,`cs.{${s.join(",")}}`):this.url.searchParams.append(n,`cs.${JSON.stringify(s)}`),this}containedBy(n,s){return typeof s=="string"?this.url.searchParams.append(n,`cd.${s}`):Array.isArray(s)?this.url.searchParams.append(n,`cd.{${s.join(",")}}`):this.url.searchParams.append(n,`cd.${JSON.stringify(s)}`),this}rangeGt(n,s){return this.url.searchParams.append(n,`sr.${s}`),this}rangeGte(n,s){return this.url.searchParams.append(n,`nxl.${s}`),this}rangeLt(n,s){return this.url.searchParams.append(n,`sl.${s}`),this}rangeLte(n,s){return this.url.searchParams.append(n,`nxr.${s}`),this}rangeAdjacent(n,s){return this.url.searchParams.append(n,`adj.${s}`),this}overlaps(n,s){return typeof s=="string"?this.url.searchParams.append(n,`ov.${s}`):this.url.searchParams.append(n,`ov.{${s.join(",")}}`),this}textSearch(n,s,{config:r,type:a}={}){let i="";a==="plain"?i="pl":a==="phrase"?i="ph":a==="websearch"&&(i="w");const o=r===void 0?"":`(${r})`;return this.url.searchParams.append(n,`${i}fts${o}.${s}`),this}match(n){return Object.entries(n).forEach(([s,r])=>{this.url.searchParams.append(s,`eq.${r}`)}),this}not(n,s,r){return this.url.searchParams.append(n,`not.${s}.${r}`),this}or(n,{foreignTable:s,referencedTable:r=s}={}){const a=r?`${r}.or`:"or";return this.url.searchParams.append(a,`(${n})`),this}filter(n,s,r){return this.url.searchParams.append(n,`${s}.${r}`),this}};hg.default=oG;var lG=ca&&ca.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ab,"__esModule",{value:!0});const wm=lG(hg);let cG=class{constructor(n,{headers:s={},schema:r,fetch:a}){this.url=n,this.headers=s,this.schema=r,this.fetch=a}select(n,{head:s=!1,count:r}={}){const a=s?"HEAD":"GET";let i=!1;const o=(n??"*").split("").map(l=>/\s/.test(l)&&!i?"":(l==='"'&&(i=!i),l)).join("");return this.url.searchParams.set("select",o),r&&(this.headers.Prefer=`count=${r}`),new wm.default({method:a,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:!1})}insert(n,{count:s,defaultToNull:r=!0}={}){const a="POST",i=[];if(this.headers.Prefer&&i.push(this.headers.Prefer),s&&i.push(`count=${s}`),r||i.push("missing=default"),this.headers.Prefer=i.join(","),Array.isArray(n)){const o=n.reduce((l,c)=>l.concat(Object.keys(c)),[]);if(o.length>0){const l=[...new Set(o)].map(c=>`"${c}"`);this.url.searchParams.set("columns",l.join(","))}}return new wm.default({method:a,url:this.url,headers:this.headers,schema:this.schema,body:n,fetch:this.fetch,allowEmpty:!1})}upsert(n,{onConflict:s,ignoreDuplicates:r=!1,count:a,defaultToNull:i=!0}={}){const o="POST",l=[`resolution=${r?"ignore":"merge"}-duplicates`];if(s!==void 0&&this.url.searchParams.set("on_conflict",s),this.headers.Prefer&&l.push(this.headers.Prefer),a&&l.push(`count=${a}`),i||l.push("missing=default"),this.headers.Prefer=l.join(","),Array.isArray(n)){const c=n.reduce((d,h)=>d.concat(Object.keys(h)),[]);if(c.length>0){const d=[...new Set(c)].map(h=>`"${h}"`);this.url.searchParams.set("columns",d.join(","))}}return new wm.default({method:o,url:this.url,headers:this.headers,schema:this.schema,body:n,fetch:this.fetch,allowEmpty:!1})}update(n,{count:s}={}){const r="PATCH",a=[];return this.headers.Prefer&&a.push(this.headers.Prefer),s&&a.push(`count=${s}`),this.headers.Prefer=a.join(","),new wm.default({method:r,url:this.url,headers:this.headers,schema:this.schema,body:n,fetch:this.fetch,allowEmpty:!1})}delete({count:n}={}){const s="DELETE",r=[];return n&&r.push(`count=${n}`),this.headers.Prefer&&r.unshift(this.headers.Prefer),this.headers.Prefer=r.join(","),new wm.default({method:s,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:!1})}};ab.default=cG;var cb={},db={};
554Object.defineProperty(db,"__esModule",{value:!0});db.version=void 0;db.version="0.0.0-automated";Object.defineProperty(cb,"__esModule",{value:!0});cb.DEFAULT_HEADERS=void 0;const dG=db;cb.DEFAULT_HEADERS={"X-Client-Info":`postgrest-js/${dG.version}`};var sE=ca&&ca.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oN,"__esModule",{value:!0});const hG=sE(ab),uG=sE(hg),pG=cb;let mG=class rE{constructor(n,{headers:s={},schema:r,fetch:a}={}){this.url=n,this.headers=Object.assign(Object.assign({},pG.DEFAULT_HEADERS),s),this.schemaName=r,this.fetch=a}from(n){const s=new URL(`${this.url}/${n}`);return new hG.default(s,{headers:Object.assign({},this.headers),schema:this.schemaName,fetch:this.fetch})}schema(n){return new rE(this.url,{headers:this.headers,schema:n,fetch:this.fetch})}rpc(n,s={},{head:r=!1,get:a=!1,count:i}={}){let o;const l=new URL(`${this.url}/rpc/${n}`);let c;r||a?(o=r?"HEAD":"GET",Object.entries(s).filter(([h,p])=>p!==void 0).map(([h,p])=>[h,Array.isArray(p)?`{${p.join(",")}}`:`${p}`]).forEach(([h,p])=>{l.searchParams.append(h,p)})):(o="POST",c=s);const d=Object.assign({},this.headers);return i&&(d.Prefer=`count=${i}`),new uG.default({method:o,url:l,headers:d,schema:this.schemaName,body:c,fetch:this.fetch,allowEmpty:!1})}};oN.default=mG;var Mp=ca&&ca.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ua,"__esModule",{value:!0});Ua.PostgrestError=Ua.PostgrestBuilder=Ua.PostgrestTransformBuilder=Ua.PostgrestFilterBuilder=Ua.PostgrestQueryBuilder=Ua.PostgrestClient=void 0;const aE=Mp(oN);Ua.PostgrestClient=aE.default;const iE=Mp(ab);Ua.PostgrestQueryBuilder=iE.default;const oE=Mp(hg);Ua.PostgrestFilterBuilder=oE.default;const lE=Mp(ib);Ua.PostgrestTransformBuilder=lE.default;const cE=Mp(ob);Ua.PostgrestBuilder=cE.default;const dE=Mp(lb);Ua.PostgrestError=dE.default;var fG=Ua.default={PostgrestClient:aE.default,PostgrestQueryBuilder:iE.default,PostgrestFilterBuilder:oE.default,PostgrestTransformBuilder:lE.default,PostgrestBuilder:cE.default,PostgrestError:dE.default};const{PostgrestClient:gG,PostgrestQueryBuilder:kle,PostgrestFilterBuilder:Nle,PostgrestTransformBuilder:Sle,PostgrestBuilder:Ale,PostgrestError:Dle}=fG,xG="2.11.2",yG={"X-Client-Info":`realtime-js/${xG}`},bG="1.0.0",hE=1e4,vG=1e3;var Uu;(function(t){t[t.connecting=0]="connecting",t[t.open=1]="open",t[t.closing=2]="closing",t[t.closed=3]="closed"})(Uu||(Uu={}));var hi;(function(t){t.closed="closed",t.errored="errored",t.joined="joined",t.joining="joining",t.leaving="leaving"})(hi||(hi={}));var co;(function(t){t.close="phx_close",t.error="phx_error",t.join="phx_join",t.reply="phx_reply",t.leave="phx_leave",t.access_token="access_token"})(co||(co={}));var A2;(function(t){t.websocket="websocket"})(A2||(A2={}));var Fd;(function(t){t.Connecting="connecting",t.Open="open",t.Closing="closing",t.Closed="closed"})(Fd||(Fd={}));class wG{constructor(){this.HEADER_LENGTH=1}decode(n,s){return n.constructor===ArrayBuffer?s(this._binaryDecode(n)):s(typeof n=="string"?JSON.parse(n):{})}_binaryDecode(n){const s=new DataView(n),r=new TextDecoder;return this._decodeBroadcast(n,s,r)}_decodeBroadcast(n,s,r){const a=s.getUint8(1),i=s.getUint8(2);let o=this.HEADER_LENGTH+2;const l=r.decode(n.slice(o,o+a));o=o+a;const c=r.decode(n.slice(o,o+i));o=o+i;const d=JSON.parse(r.decode(n.slice(o,n.byteLength)));return{ref:null,topic:l,event:c,payload:d}}}class uE{constructor(n,s){this.callback=n,this.timerCalc=s,this.timer=void 0,this.tries=0,this.callback=n,this.timerCalc=s}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}}var ys;(function(t){t.abstime="abstime",t.bool="bool",t.date="date",t.daterange="daterange",t.float4="float4",t.float8="float8",t.int2="int2",t.int4="int4",t.int4range="int4range",t.int8="int8",t.int8range="int8range",t.json="json",t.jsonb="jsonb",t.money="money",t.numeric="numeric",t.oid="oid",t.reltime="reltime",t.text="text",t.time="time",t.timestamp="timestamp",t.timestamptz="timestamptz",t.timetz="timetz",t.t
vendor: 11,565 bytes, line 554
554srange="tsrange",t.tstzrange="tstzrange"})(ys||(ys={}));const uA=(t,n,s={})=>{var r;const a=(r=s.skipTypes)!==null&&r!==void 0?r:[];return Object.keys(n).reduce((i,o)=>(i[o]=jG(o,t,n,a),i),{})},jG=(t,n,s,r)=>{const a=n.find(l=>l.name===t),i=a==null?void 0:a.type,o=s[t];return i&&!r.includes(i)?pE(i,o):D2(o)},pE=(t,n)=>{if(t.charAt(0)==="_"){const s=t.slice(1,t.length);return AG(n,s)}switch(t){case ys.bool:return kG(n);case ys.float4:case ys.float8:case ys.int2:case ys.int4:case ys.int8:case ys.numeric:case ys.oid:return NG(n);case ys.json:case ys.jsonb:return SG(n);case ys.timestamp:return DG(n);case ys.abstime:case ys.date:case ys.daterange:case ys.int4range:case ys.int8range:case ys.money:case ys.reltime:case ys.text:case ys.time:case ys.timestamptz:case ys.timetz:case ys.tsrange:case ys.tstzrange:return D2(n);default:return D2(n)}},D2=t=>t,kG=t=>{switch(t){case"t":return!0;case"f":return!1;default:return t}},NG=t=>{if(typeof t=="string"){const n=parseFloat(t);if(!Number.isNaN(n))return n}return t},SG=t=>{if(typeof t=="string")try{return JSON.parse(t)}catch(n){return console.log(`JSON parse error: ${n}`),t}return t},AG=(t,n)=>{if(typeof t!="string")return t;const s=t.length-1,r=t[s];if(t[0]==="{"&&r==="}"){let i;const o=t.slice(1,s);try{i=JSON.parse("["+o+"]")}catch{i=o?o.split(","):[]}return i.map(l=>pE(n,l))}return t},DG=t=>typeof t=="string"?t.replace(" ","T"):t,mE=t=>{let n=t;return n=n.replace(/^ws/i,"http"),n=n.replace(/(\/socket\/websocket|\/socket|\/websocket)\/?$/i,""),n.replace(/\/+$/,"")};class zv{constructor(n,s,r={},a=hE){this.channel=n,this.event=s,this.payload=r,this.timeout=a,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend(n){this.timeout=n,this._cancelRefEvent(),this.ref="",this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){this._hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref,join_ref:this.channel._joinRef()}))}updatePayload(n){this.payload=Object.assign(Object.assign({},this.payload),n)}receive(n,s){var r;return this._hasReceived(n)&&s((r=this.receivedResp)===null||r===void 0?void 0:r.response),this.recHooks.push({status:n,callback:s}),this}startTimeout(){if(this.timeoutTimer)return;this.ref=this.channel.socket._makeRef(),this.refEvent=this.channel._replyEventName(this.ref);const n=s=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=s,this._matchReceive(s)};this.channel._on(this.refEvent,{},n),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}trigger(n,s){this.refEvent&&this.channel._trigger(this.refEvent,{status:n,response:s})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){this.refEvent&&this.channel._off(this.refEvent,{})}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:n,response:s}){this.recHooks.filter(r=>r.status===n).forEach(r=>r.callback(s))}_hasReceived(n){return this.receivedResp&&this.receivedResp.status===n}}var pA;(function(t){t.SYNC="sync",t.JOIN="join",t.LEAVE="leave"})(pA||(pA={}));class ef{constructor(n,s){this.channel=n,this.state={},this.pendingDiffs=[],this.joinRef=null,this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};const r=(s==null?void 0:s.events)||{state:"presence_state",diff:"presence_diff"};this.channel._on(r.state,{},a=>{const{onJoin:i,onLeave:o,onSync:l}=this.caller;this.joinRef=this.channel._joinRef(),this.state=ef.syncState(this.state,a,i,o),this.pendingDiffs.forEach(c=>{this.state=ef.syncDiff(this.state,c,i,o)}),this.pendingDiffs=[],l()}),this.channel._on(r.diff,{},a=>{const{onJoin:i,onLeave:o,onSync:l}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(a):(this.state=ef.syncDiff(this.state,a,i,o),l())}),this.onJoin((a,i,o)=>{this.channel._trigger("presence",{event:"join",key:a,currentPresences:i,newPresences:o})}),this.onLeave((a,i,o)=>{this.channel._trigger("presence",{event:"leave",key:a,currentPresences:i,leftPresences:o})}),this.onSync(()=>{this.channel._trigger("presence",{event:"sync"})})}static syncState(n,s,r,a){const i=this.cloneDeep(n),o=this.transformState(s),l={},c={};return this.map(i,(d,h)=>{o[d]||(c[d]=h)}),this.map(o,(d,h)=>{const p=i[d];if(p){const m=h.map(w=>w.presence_ref),u=p.map(w=>w.presence_ref),y=h.filter(w=>u.indexOf(w.presence_ref)<0),g=p.filter(w=>m.indexOf(w.presence_ref)<0);y.length>0&&(l[d]=y),g.length>0&&(c[d]=g)}else l[d]=h}),this.syncDiff(i,{joins:l,leaves:c},r,a)}static syncDiff(n,s,r,a){const{joins:i,leaves:o}={joins:this.transformState(s.joins),leaves:this.transformState(s.leaves)};return r||(r=()=>{}),a||(a=()=>{}),this.map(i,(l,c)=>{var d;const h=(d=n[l])!==null&&d!==void 0?d:[];if(n[l]=this.cloneDeep(c),h.length>0){const p=n[l].map(u=>u.presence_ref),m=h.filter(u=>p.indexOf(u.presence_ref)<0);n[l].unshift(...m)}r(l,h,c)}),this.map(o,(l,c)=>{let d=n[l];if(!d)return;const h=c.map(p=>p.presence_ref);d=d.filter(p=>h.indexOf(p.presence_ref)<0),n[l]=d,a(l,d,c),d.length===0&&delete n[l]}),n}static map(n,s){return Object.getOwnPropertyNames(n).map(r=>s(r,n[r]))}static transformState(n){return n=this.cloneDeep(n),Object.getOwnPropertyNames(n).reduce((s,r)=>{const a=n[r];return"metas"in a?s[r]=a.metas.map(i=>(i.presence_ref=i.phx_ref,delete i.phx_ref,delete i.phx_ref_prev,i)):s[r]=a,s},{})}static cloneDeep(n){return JSON.parse(JSON.stringify(n))}onJoin(n){this.caller.onJoin=n}onLeave(n){this.caller.onLeave=n}onSync(n){this.caller.onSync=n}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel._joinRef()}}var mA;(function(t){t.ALL="*",t.INSERT="INSERT",t.UPDATE="UPDATE",t.DELETE="DELETE"})(mA||(mA={}));var fA;(function(t){t.BROADCAST="broadcast",t.PRESENCE="presence",t.POSTGRES_CHANGES="postgres_changes",t.SYSTEM="system"})(fA||(fA={}));var wl;(function(t){t.SUBSCRIBED="SUBSCRIBED",t.TIMED_OUT="TIMED_OUT",t.CLOSED="CLOSED",t.CHANNEL_ERROR="CHANNEL_ERROR"})(wl||(wl={}));class lN{constructor(n,s={config:{}},r){this.topic=n,this.params=s,this.socket=r,this.bindings={},this.state=hi.closed,this.joinedOnce=!1,this.pushBuffer=[],this.subTopic=n.replace(/^realtime:/i,""),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:""},private:!1},s.config),this.timeout=this.socket.timeout,this.joinPush=new zv(this,co.join,this.params,this.timeout),this.rejoinTimer=new uE(()=>this._rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=hi.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(a=>a.send()),this.pushBuffer=[]}),this._onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this._joinRef()}`),this.state=hi.closed,this.socket._remove(this)}),this._onError(a=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,a),this.state=hi.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{this._isJoining()&&(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=hi.errored,this.rejoinTimer.scheduleTimeout())}),this._on(co.reply,{},(a,i)=>{this._trigger(this._replyEventName(i),a)}),this.presence=new ef(this),this.broadcastEndpointURL=mE(this.socket.endPoint)+"/api/broadcast",this.private=this.params.config.private||!1}subscribe(n,s=this.timeout){var r,a;if(this.socket.isConnected()||this.socket.connect(),this.joinedOnce)throw"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance";{const{config:{broadcast:i,presence:o,private:l}}=this.params;this._onError(h=>n==null?void 0:n(wl.CHANNEL_ERROR,h)),this._onClose(()=>n==null?void 0:n(wl.CLOSED));const c={},d={broadcast:i,presence:o,postgres_changes:(a=(r=this.bindings.postgres_changes)===null||r===void 0?void 0:r.map(h=>h.filter))!==null&&a!==void 0?a:[],private:l};this.socket.accessTokenValue&&(c.access_token=this.socket.accessTokenValue),this.updateJoinPayload(Object.assign({config:d},c)),this.joinedOnce=!0,this._rejoin(s),this.joinPush.receive("ok",async({postgres_changes:h})=>{var p;if(this.socket.setAuth(),h===void 0){n==null||n(wl.SUBSCRIBED);return}else{const m=this.bindings.postgres_changes,u=(p=m==null?void 0:m.length)!==null&&p!==void 0?p:0,y=[];for(let g=0;g<u;g++){const w=m[g],{filter:{event:b,schema:j,table:N,filter:A}}=w,E=h&&h[g];if(E&&E.event===b&&E.schema===j&&E.table===N&&E.filter===A)y.push(Object.assign(Object.assign({},w),{id:E.id}));else{this.unsubscribe(),n==null||n(wl.CHANNEL_ERROR,new Error("mismatch between server and client bindings for postgres changes"));return}}this.bindings.postgres_changes=y,n&&n(wl.SUBSCRIBED);return}}).receive("error",h=>{n==null||n(wl.CHANNEL_ERROR,new Error(JSON.stringify(Object.values(h).join(", ")||"error")))}).receive("timeout",()=>{n==null||n(wl.TIMED_OUT)})}return this}presenceState(){return this.presence.state}async track(n,s={}){return await this.send({type:"presence",event:"track",payload:n},s.timeout||this.timeout)}async untrack(n={}){return await this.send({type:"presence",event:"untrack"},n)}on(n,s,r){return this._on(n,s,r)}async send(n,s={}){var r,a;if(!this._canPush()&&n.type==="broadcast"){const{event:i,payload:o}=n,c={method:"POST",headers:{Authorization:this.socket.accessTokenValue?`Bearer ${this.socket.accessTokenValue}`:"",apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"},body:JSON.stringify({messages:[{topic:this.subTopic,event:i,payload:o,private:this.private}]})};try{const d=await this._fetchWithTimeout(this.broadcastEndpointURL,c,(r=s.timeout)!==null&&r!==void 0?r:this.timeout);return await((a=d.body)===null||a===void 0?void 0:a.cancel()),d.ok?"ok":"error"}catch(d){return d.name==="AbortError"?"timed out":"error"}}else return new Promise(i=>{var o,l,c;const d=this._push(n.type,n,s.timeout||this.timeout);n.type==="broadcast"&&!(!((c=(l=(o=this.params)===null||o===void 0?void 0:o.config)===null||l===void 0?void 0:l.broadcast)===null||c===void 0)&&c.ack)&&i("ok"),d.receive("ok",()=>i("ok")),d.receive("error",()=>i("error")),d.receive("timeout",()=>i("timed out"))})}updateJoinPayload(n){this.joinPush.updatePayload(n)}unsubscribe(n=this.timeout){this.state=hi.leaving;const s=()=>{this.socket.log("channel",`leave ${this.topic}`),this._trigger(co.close,"leave",this._joinRef())};return this.rejoinTimer.reset(),this.joinPush.destroy(),new Promise(r=>{const a=new zv(this,co.leave,{},n);a.receive("ok",()=>{s(),r("ok")}).receive("timeout",()=>{s(),r("timed out")}).receive("error",()=>{r("error")}),a.send(),this._canPush()||a.trigger("ok",{})})}async _fetchWithTimeout(n,s,r){const a=new AbortController,i=setTimeout(()=>a.abort(),r),o=await this.socket.fetch(n,Object.assign(Object.assign({},s),{signal:a.signal}));return clearTimeout(i),o}_push(n,s,r=this.timeout){if(!this.joinedOnce)throw`tried to push '${n}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let a=new zv(this,n,s,r);return this._canPush()?a.send():(a.startTimeout(),this.pushBuffer.push(a)),a}_onMessage(n,s,r){return s}_isMember(n){return this.topic===n}_joinRef(){return this.joinPush.ref}_trigger(n,s,r){var a,i;const o=n.toLocaleLowerCase(),{close:l,error:c,leave:d,join:h}=co;if(r&&[l,c,d,h].indexOf(o)>=0&&r!==this._joinRef())return;let m=this._onMessage(o,s,r);if(s&&!m)throw"channel onMessage callbacks must return the payload, modified or unmodified";["insert","update","delete"].includes(o)?(a=this.bindings.postgres_changes)===null||a===void 0||a.filter(u=>{var y,g,w;
554return((y=u.filter)===null||y===void 0?void 0:y.event)==="*"||((w=(g=u.filter)===null||g===void 0?void 0:g.event)===null||w===void 0?void 0:w.toLocaleLowerCase())===o}).map(u=>u.callback(m,r)):(i=this.bindings[o])===null||i===void 0||i.filter(u=>{var y,g,w,b,j,N;if(["broadcast","presence","postgres_changes"].includes(o))if("id"in u){const A=u.id,E=(y=u.filter)===null||y===void 0?void 0:y.event;return A&&((g=s.ids)===null||g===void 0?void 0:g.includes(A))&&(E==="*"||(E==null?void 0:E.toLocaleLowerCase())===((w=s.data)===null||w===void 0?void 0:w.type.toLocaleLowerCase()))}else{const A=(j=(b=u==null?void 0:u.filter)===null||b===void 0?void 0:b.event)===null||j===void 0?void 0:j.toLocaleLowerCase();return A==="*"||A===((N=s==null?void 0:s.event)===null||N===void 0?void 0:N.toLocaleLowerCase())}else return u.type.toLocaleLowerCase()===o}).map(u=>{if(typeof m=="object"&&"ids"in m){const y=m.data,{schema:g,table:w,commit_timestamp:b,type:j,errors:N}=y;m=Object.assign(Object.assign({},{schema:g,table:w,commit_timestamp:b,eventType:j,new:{},old:{},errors:N}),this._getPayloadRecords(y))}u.callback(m,r)})}_isClosed(){return this.state===hi.closed}_isJoined(){return this.state===hi.joined}_isJoining(){return this.state===hi.joining}_isLeaving(){return this.state===hi.leaving}_replyEventName(n){return`chan_reply_${n}`}_on(n,s,r){const a=n.toLocaleLowerCase(),i={type:a,filter:s,callback:r};return this.bindings[a]?this.bindings[a].push(i):this.bindings[a]=[i],this}_off(n,s){const r=n.toLocaleLowerCase();return this.bindings[r]=this.bindings[r].filter(a=>{var i;return!(((i=a.type)===null||i===void 0?void 0:i.toLocaleLowerCase())===r&&lN.isEqual(a.filter,s))}),this}static isEqual(n,s){if(Object.keys(n).length!==Object.keys(s).length)return!1;for(const r in n)if(n[r]!==s[r])return!1;return!0}_rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this._rejoin()}_onClose(n){this._on(co.close,{},n)}_onError(n){this._on(co.error,{},s=>n(s))}_canPush(){return this.socket.isConnected()&&this._isJoined()}_rejoin(n=this.timeout){this._isLeaving()||(this.socket._leaveOpenTopic(this.topic),this.state=hi.joining,this.joinPush.resend(n))}_getPayloadRecords(n){const s={new:{},old:{}};return(n.type==="INSERT"||n.type==="UPDATE")&&(s.new=uA(n.columns,n.record)),(n.type==="UPDATE"||n.type==="DELETE")&&(s.old=uA(n.columns,n.old_record)),s}}const IG=()=>{},CG=typeof WebSocket<"u",_G=` 555 addEventListener("message", (e) => { 556 if (e.data.event === "start") { 557 setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval); 558 } 559 });`;class TG{constructor(n,s){var r;this.accessTokenValue=null,this.apiKey=null,this.channels=[],this.endPoint="",this.httpEndpoint="",this.headers=yG,this.params={},this.timeout=hE,this.heartbeatIntervalMs=3e4,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.ref=0,this.logger=IG,this.conn=null,this.sendBuffer=[],this.serializer=new wG,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.accessToken=null,this._resolveFetch=i=>{let o;return i?o=i:typeof fetch>"u"?o=(...l)=>$i(async()=>{const{default:c}=await Promise.resolve().then(()=>
559Lp);return{default:c}},void 0).then(({default:c})=>c(...l)):o=fetch,(...l)=>o(...l)},this.endPoint=`${n}/${A2.websocket}`,this.httpEndpoint=mE(n),s!=null&&s.transport?this.transport=s.transport:this.transport=null,s!=null&&s.params&&(this.params=s.params),s!=null&&s.headers&&(this.headers=Object.assign(Object.assign({},this.headers),s.headers)),s!=null&&s.timeout&&(this.timeout=s.timeout),s!=null&&s.logger&&(this.logger=s.logger),s!=null&&s.heartbeatIntervalMs&&(this.heartbeatIntervalMs=s.heartbeatIntervalMs);const a=(r=s==null?void 0:s.params)===null||r===void 0?void 0:r.apikey;if(a&&(this.accessTokenValue=a,this.apiKey=a),this.reconnectAfterMs=s!=null&&s.reconnectAfterMs?s.reconnectAfterMs:i=>[1e3,2e3,5e3,1e4][i-1]||1e4,this.encode=s!=null&&s.encode?s.encode:(i,o)=>o(JSON.stringify(i)),this.decode=s!=null&&s.decode?s.decode:this.serializer.decode.bind(this.serializer),this.reconnectTimer=new uE(async()=>{this.disconnect(),this.connect()},this.reconnectAfterMs),this.fetch=this._resolveFetch(s==null?void 0:s.fetch),s!=null&&s.worker){if(typeof window<"u"&&!window.Worker)throw new Error("Web Worker is not supported");this.worker=(s==null?void 0:s.worker)||!1,this.workerUrl=s==null?void 0:s.workerUrl}this.accessToken=(s==null?void 0:s.accessToken)||null}connect(){if(!this.conn){if(this.transport){this.conn=new this.transport(this.endpointURL(),void 0,{headers:this.headers});return}if(CG){this.conn=new WebSocket(this.endpointURL()),this.setupConnection();return}this.conn=new PG(this.endpointURL(),void 0,{close:()=>{this.conn=null}}),$i(async()=>{const{default:n}=await import("./browser-CRRF5ywZ.js").then(s=>s.b);return{default:n}},[]).then(({default:n})=>{this.conn=new n(this.endpointURL(),void 0,{headers:this.headers}),this.setupConnection()})}}endpointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:bG}))}disconnect(n,s){this.conn&&(this.conn.onclose=function(){},n?this.conn.close(n,s??""):this.conn.close(),this.conn=null,this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.reset())}getChannels(){return this.channels}async removeChannel(n){const s=await n.unsubscribe();return this.channels.length===0&&this.disconnect(),s}async removeAllChannels(){const n=await Promise.all(this.channels.map(s=>s.unsubscribe()));return this.disconnect(),n}log(n,s,r){this.logger(n,s,r)}connectionState(){switch(this.conn&&this.conn.readyState){case Uu.connecting:return Fd.Connecting;case Uu.open:return Fd.Open;case Uu.closing:return Fd.Closing;default:return Fd.Closed}}isConnected(){return this.connectionState()===Fd.Open}channel(n,s={config:{}}){const r=new lN(`realtime:${n}`,s,this);return this.channels.push(r),r}push(n){const{topic:s,event:r,payload:a,ref:i}=n,o=()=>{this.encode(n,l=>{var c;(c=this.conn)===null||c===void 0||c.send(l)})};this.log("push",`${s} ${r} (${i})`,a),this.isConnected()?o():this.sendBuffer.push(o)}async setAuth(n=null){let s=n||this.accessToken&&await this.accessToken()||this.accessTokenValue;if(s){let r=null;try{r=JSON.parse(atob(s.split(".")[1]))}catch{}if(r&&r.exp&&!(Math.floor(Date.now()/1e3)-r.exp<0))return this.log("auth",`InvalidJWTToken: Invalid value for JWT claim "exp" with value ${r.exp}`),Promise.reject(`InvalidJWTToken: Invalid value for JWT claim "exp" with value ${r.exp}`);this.accessTokenValue=s,this.channels.forEach(a=>{s&&a.updateJoinPayload({access_token:s}),a.joinedOnce&&a._isJoined()&&a._push(co.access_token,{access_token:s})})}}async sendHeartbeat(){var n;if(this.isConnected()){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection"),(n=this.conn)===null||n===void 0||n.close(vG,"hearbeat timeout");return}this.pendingHeartbeatRef=this._makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.setAuth()}}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(n=>n()),this.sendBuffer=[])}_makeRef(){let n=this.ref+1;return n===this.ref?this.ref=0:this.ref=n,this.ref.toString()}_leaveOpenTopic(n){let s=this.channels.find(r=>r.topic===n&&(r._isJoined()||r._isJoining()));s&&(this.log("transport",`leaving duplicate topic "${n}"`),s.unsubscribe())}_remove(n){this.channels=this.channels.filter(s=>s._joinRef()!==n._joinRef())}setupConnection(){this.conn&&(this.conn.binaryType="arraybuffer",this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=n=>this._onConnError(n),this.conn.onmessage=n=>
559this._onConnMessage(n),this.conn.onclose=n=>this._onConnClose(n))}_onConnMessage(n){this.decode(n.data,s=>{let{topic:r,event:a,payload:i,ref:o}=s;o&&o===this.pendingHeartbeatRef&&(this.pendingHeartbeatRef=null),this.log("receive",`${i.status||""} ${r} ${a} ${o&&"("+o+")"||""}`,i),this.channels.filter(l=>l._isMember(r)).forEach(l=>l._trigger(a,i,o)),this.stateChangeCallbacks.message.forEach(l=>l(s))})}async _onConnOpen(){if(this.log("transport",`connected to ${this.endpointURL()}`),this.flushSendBuffer(),this.reconnectTimer.reset(),!this.worker)this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval(()=>this.sendHeartbeat(),this.heartbeatIntervalMs);else{this.workerUrl?this.log("worker",`starting worker for from ${this.workerUrl}`):this.log("worker","starting default worker");const n=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(n),this.workerRef.onerror=s=>{this.log("worker","worker error",s.message),this.workerRef.terminate()},this.workerRef.onmessage=s=>{s.data.event==="keepAlive"&&this.sendHeartbeat()},this.workerRef.postMessage({event:"start",interval:this.heartbeatIntervalMs})}this.stateChangeCallbacks.open.forEach(n=>n())}_onConnClose(n){this.log("transport","close",n),this._triggerChanError(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach(s=>s(n))}_onConnError(n){this.log("transport",n.message),this._triggerChanError(),this.stateChangeCallbacks.error.forEach(s=>s(n))}_triggerChanError(){this.channels.forEach(n=>n._trigger(co.error))}_appendParams(n,s){if(Object.keys(s).length===0)return n;const r=n.match(/\?/)?"&":"?",a=new URLSearchParams(s);return`${n}${r}${a}`}_workerObjectUrl(n){let s;if(n)s=n;else{const r=new Blob([_G],{type:"application/javascript"});s=URL.createObjectURL(r)}return s}}class PG{constructor(n,s,r){this.binaryType="arraybuffer",this.onclose=()=>{},this.onerror=()=>{},this.onmessage=()=>{},this.onopen=()=>{},this.readyState=Uu.connecting,this.send=()=>{},this.url=null,this.url=n,this.close=r.close}}
559class cN extends Error{constructor(n){super(n),this.__isStorageError=!0,this.name="StorageError"}}function kr(t){return typeof t=="object"&&t!==null&&"__isStorageError"in t}class EG extends cN{constructor(n,s){super(n),this.name="StorageApiError",this.status=s}toJSON(){return{name:this.name,message:this.message,status:this.status}}}class I2 extends cN{constructor(n,s){super(n),this.name="StorageUnknownError",this.originalError=s}}var LG=function(t,n,s,r){function a(i){return i instanceof s?i:new s(function(o){o(i)})}return new(s||(s=Promise))(function(i,o){function l(h){try{d(r.next(h))}catch(p){o(p)}}function c(h){try{d(r.throw(h))}catch(p){o(p)}}function d(h){h.done?i(h.value):a(h.value).then(l,c)}d((r=r.apply(t,n||[])).next())})};const fE=t=>{let n;return t?n=t:typeof fetch>"u"?n=(...s)=>$i(async()=>{const{default:r}=await Promise.resolve().then(()=>Lp);return{default:r}},void 0).then(({default:r})=>r(...s)):n=fetch,(...s)=>n(...s)},MG=()=>LG(void 0,void 0,void 0,function*(){return typeof Response>"u"?(yield $i(()=>Promise.resolve().then(()=>
559Lp),void 0)).Response:Response}),C2=t=>{if(Array.isArray(t))return t.map(s=>C2(s));if(typeof t=="function"||t!==Object(t))return t;const n={};return Object.entries(t).forEach(([s,r])=>{const a=s.replace(/([-_][a-z])/gi,i=>i.toUpperCase().replace(/[-_]/g,""));n[a]=C2(r)}),n};var Ch=function(t,n,s,r){function a(i){return i instanceof s?i:new s(function(o){o(i)})}return new(s||(s=Promise))(function(i,o){function l(h){try{d(r.next(h))}catch(p){o(p)}}function c(h){try{d(r.throw(h))}catch(p){o(p)}}function d(h){h.done?i(h.value):a(h.value).then(l,c)}d((r=r.apply(t,n||[])).next())})};const Uv=t=>t.msg||t.message||t.error_description||t.error||JSON.stringify(t),RG=(t,n,s)=>Ch(void 0,void 0,void 0,function*(){const r=yield MG();t instanceof r&&!(s!=null&&s.noResolveJson)?t.json().then(a=>{n(new EG(Uv(a),t.status||500))}).catch(a=>{n(new I2(Uv(a),a))}):n(new I2(Uv(t),t))}),OG=(t,n,s,r)=>{const a={method:t,headers:(n==null?void 0:n.headers)||{}};return t==="GET"?a:(a.headers=Object.assign({"Content-Type":"application/json"},n==null?void 0:n.headers),r&&(a.body=JSON.stringify(r)),Object.assign(Object.assign({},a),s))};function ug(t,n,s,r,a,i){return Ch(this,void 0,void 0,function*(){return new Promise((o,l)=>{t(s,OG(n,r,a,i)).then(c=>{if(!c.ok)throw c;return r!=null&&r.noResolveJson?c:c.json()}).then(c=>o(c)).catch(c=>RG(c,l,r))})})}function i0(t,n,s,r){return Ch(this,void 0,void 0,function*(){return ug(t,"GET",n,s,r)})}function vc(t,n,s,r,a){return Ch(this,void 0,void 0,function*(){return ug(t,"POST",n,r,a,s)})}function FG(t,n,s,r,a){return Ch(this,void 0,void 0,function*(){return ug(t,"PUT",n,r,a,s)})}function VG(t,n,s,r){return Ch(this,void 0,void 0,function*(){return ug(t,"HEAD",n,Object.assign(Object.assign({},s),{noResolveJson:!0}),r)})}function gE(t,n,s,r,a){return Ch(this,void 0,void 0,function*(){return ug(t,"DELETE",n,r,a,s)})}var Ma=function(t,n,s,r){function a(i){return i instanceof s?i:new s(function(o){o(i)})}return new(s||(s=Promise))(function(i,o){function l(h){try{d(r.next(h))}catch(p){o(p)}}function c(h){try{d(r.throw(h))}catch(p){o(p)}}function d(h){h.done?i(h.value):a(h.value).then(l,c)}d((r=r.apply(t,n||[])).next())})};const BG={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},gA={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};class zG{constructor(n,s={},r,a){this.url=n,this.headers=s,this.bucketId=r,this.fetch=fE(a)}uploadOrUpdate(n,s,r,a){return Ma(this,void 0,void 0,function*(){try{let i;const o=Object.assign(Object.assign({},gA),a);let l=Object.assign(Object.assign({},this.headers),n==="POST"&&{"x-upsert":String(o.upsert)});const c=o.metadata;typeof Blob<"u"&&r instanceof Blob?(i=new FormData,i.append("cacheControl",o.cacheControl),c&&i.append("metadata",this.encodeMetadata(c)),i.append("",r)):typeof FormData<"u"&&r instanceof FormData?(i=r,i.append("cacheControl",o.cacheControl),c&&i.append("metadata",this.encodeMetadata(c))):(i=r,l["cache-control"]=`max-age=${o.cacheControl}`,l["content-type"]=o.contentType,c&&(l["x-metadata"]=this.toBase64(this.encodeMetadata(c)))),a!=null&&a.headers&&(l=Object.assign(Object.assign({},l),a.headers));const d=this._removeEmptyFolders(s),h=this._getFinalPath(d),p=yield this.fetch(`${this.url}/object/${h}`,Object.assign({method:n,body:i,headers:l},o!=null&&o.duplex?{duplex:o.duplex}:{})),m=yield p.json();return p.ok?{data:{path:d,id:m.Id,fullPath:m.Key},error:null}:{data:null,error:m}}catch(i){if(kr(i))return{data:null,error:i};throw i}})}upload(n,s,r){return Ma(this,void 0,void 0,function*(){return this.uploadOrUpdate("POST",n,s,r)})}uploadToSignedUrl(n,s,r,a){return Ma(this,void 0,void 0,function*(){const i=this._removeEmptyFolders(n),o=this._getFinalPath(i),l=new URL(this.url+`/object/upload/sign/${o}`);l.searchParams.set("token",s);try{let c;const d=Object.assign({upsert:gA.upsert},a),h=Object.assign(Object.assign({},this.headers),{"x-upsert":String(d.upsert)});typeof Blob<"u"&&r instanceof Blob?(c=new FormData,c.append("cacheControl",d.cacheControl),c.append("",r)):typeof FormData<"u"&&r instanceof FormData?(c=r,c.append("cacheControl",d.cacheControl)):(c=r,h["cache-control"]=`max-age=${d.cacheControl}`,h["content-type"]=d.contentType);const p=yield this.fetch(l.toString(),{method:"PUT",body:c,headers:h}),m=yield p.json();return p.ok?{data:{path:i,fullPath:m.Key},error:null}:{data:null,error:m}}catch(c){if(kr(c))return{data:null,error:c};throw c}})}createSignedUploadUrl(n,s){return Ma(this,void 0,void 0,function*(){try{let r=this._getFinalPath(n);const a=Object.assign({},this.headers);s!=null&&s.upsert&&(a["x-upsert"]="true");const i=yield vc(this.fetch,`${this.url}/object/upload/sign/${r}`,{},{headers:a}),o=new URL(this.url+i.url),l=o.searchParams.get("token");if(!l)throw new cN("No token returned by API");return{data:{signedUrl:o.toString(),path:n,token:l},error:null}}catch(r){if(kr(r))return{data:null,error:r};throw r}})}update(n,s,r){return Ma(this,void 0,void 0,function*(){return this.uploadOrUpdate("PUT",n,s,r)})}move(n,s,r){return Ma(this,void 0,void 0,function*(){try{return{data:yield vc(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:n,destinationKey:s,destinationBucket:r==null?void 0:r.destinationBucket},{headers:this.headers}),error:null}}catch(a){if(kr(a))return{data:null,error:a};throw a}})}copy(n,s,r){return Ma(this,void 0,void 0,function*(){try{return{data:{path:(yield vc(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:n,destinationKey:s,destinationBucket:r==null?void 0:r.destinationBucket},{headers:this.headers})).Key},error:null}}catch(a){if(kr(a))return{data:null,error:a};throw a}})}createSignedUrl(n,s,r){return Ma(this,void 0,void 0,function*(){try{let a=this._getFinalPath(n),i=yield vc(this.fetch,`${this.url}/object/sign/${a}
559`,Object.assign({expiresIn:s},r!=null&&r.transform?{transform:r.transform}:{}),{headers:this.headers});const o=r!=null&&r.download?`&download=${r.download===!0?"":r.download}`:"";return i={signedUrl:encodeURI(`${this.url}${i.signedURL}${o}`)},{data:i,error:null}}catch(a){if(kr(a))return{data:null,error:a};throw a}})}createSignedUrls(n,s,r){return Ma(this,void 0,void 0,function*(){try{const a=yield vc(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:s,paths:n},{headers:this.headers}),i=r!=null&&r.download?`&download=${r.download===!0?"":r.download}`:"";return{data:a.map(o=>Object.assign(Object.assign({},o),{signedUrl:o.signedURL?encodeURI(`${this.url}${o.signedURL}${i}`):null})),error:null}}catch(a){if(kr(a))return{data:null,error:a};throw a}})}download(n,s){return Ma(this,void 0,void 0,function*(){const a=typeof(s==null?void 0:s.transform)<"u"?"render/image/authenticated":"object",i=this.transformOptsToQueryString((s==null?void 0:s.transform)||{}),o=i?`?${i}`:"";try{const l=this._getFinalPath(n);return{data:yield(yield i0(this.fetch,`${this.url}/${a}/${l}${o}`,{headers:this.headers,noResolveJson:!0})).blob(),error:null}}catch(l){if(kr(l))return{data:null,error:l};throw l}})}info(n){return Ma(this,void 0,void 0,function*(){const s=this._getFinalPath(n);try{const r=yield i0(this.fetch,`${this.url}/object/info/${s}`,{headers:this.headers});return{data:C2(r),error:null}}catch(r){if(kr(r))return{data:null,error:r};throw r}})}exists(n){return Ma(this,void 0,void 0,function*(){const s=this._getFinalPath(n);try{return yield VG(this.fetch,`${this.url}/object/${s}`,{headers:this.headers}),{data:!0,error:null}}catch(r){if(kr(r)&&r instanceof I2){const a=r.originalError;if([400,404].includes(a==null?void 0:a.status))return{data:!1,error:r}}throw r}})}getPublicUrl(n,s){const r=this._getFinalPath(n),a=[],i=s!=null&&s.download?`download=${s.download===!0?"":s.download}`:"";i!==""&&a.push(i);const l=typeof(s==null?void 0:s.transform)<"u"?"render/image":"object",c=this.transformOptsToQueryString((s==null?void 0:s.transform)||{});c!==""&&a.push(c);let d=a.join("&");return d!==""&&(d=`?${d}`),{data:{publicUrl:encodeURI(`${this.url}/${l}/public/${r}${d}`)}}}remove(n){return Ma(this,void 0,void 0,function*(){try{return{data:yield gE(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:n},{headers:this.headers}),error:null}}catch(s){if(kr(s))return{data:null,error:s};throw s}})}list(n,s,r){return Ma(this,void 0,void 0,function*(){try{const a=Object.assign(Object.assign(Object.assign({},BG),s),{prefix:n||""});return{data:yield vc(this.fetch,`${this.url}/object/list/${this.bucketId}`,a,{headers:this.headers},r),error:null}}catch(a){if(kr(a))return{data:null,error:a};throw a}})}encodeMetadata(n){return JSON.stringify(n)}toBase64(n){return typeof Buffer<"u"?Buffer.from(n).toString("base64"):btoa(n)}_getFinalPath(n){return`${this.bucketId}/${n}`}_removeEmptyFolders(n){return n.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}transformOptsToQueryString(n){const s=[];return n.width&&s.push(`width=${n.width}`),n.height&&s.push(`height=${n.height}`),n.resize&&s.push(`resize=${n.resize}`),n.format&&s.push(`format=${n.format}`),n.quality&&s.push(`quality=${n.quality}`),s.join("&")}}const UG="2.7.1",qG={"X-Client-Info":`storage-js/${UG}`};var su=function(t,n,s,r){function a(i){return i instanceof s?i:new s(function(o){o(i)})}return new(s||(s=Promise))(function(i,o){function l(h){try{d(r.next(h))}catch(p){o(p)}}function c(h){try{d(r.throw(h))}catch(p){o(p)}}function d(h){h.done?i(h.value):a(h.value).then(l,c)}d((r=r.apply(t,n||[])).next())})};class HG{constructor(n,s={},r){this.url=n,this.headers=Object.assign(Object.assign({},qG),s),this.fetch=fE(r)}listBuckets(){return su(this,void 0,void 0,function*(){try{return{data:yield i0(this.fetch,`${this.url}/bucket`,{headers:this.headers}),error:null}}catch(n){if(kr(n))return{data:null,error:n};throw n}})}getBucket(n){return su(this,void 0,void 0,function*(){try{return{data:yield i0(this.fetch,`${this.url}/bucket/${n}`,{headers:this.headers}),error:null}}catch(s){if(kr(s))return{data:null,error:s};throw s}})}createBucket(n,s={public:!1}){return su(this,void 0,void 0,function*(){try{return{data:yield vc(this.fetch,`${this.url}/bucket`,{id:n,name:n,public:s.public,file_size_limit:s.fileSizeLimit,allowed_mime_types:s.allowedMimeTypes},{headers:this.headers}),error:null}}catch(r){if(kr(r))return{data:null,error:r};throw r}})}updateBucket(n,s){return su(this,void 0,void 0,function*(){try{return{data:yield FG(this.fetch,`${this.url}/bucket/${n}`,{id:n,name:n,public:s.public,file_size_limit:s.fileSizeLimit,allowed_mime_types:s.allowedMimeTypes},{headers:this.headers}),error:null}}catch(r){if(kr(r))return{data:null,error:r};throw r}})}emptyBucket(n){return su(this,void 0,void 0,function*(){try{return{data:yield vc(this.fetch,`${this.url}/bucket/${n}/empty`,{},{headers:this.headers}),error:null}}catch(s){if(kr(s))return{data:null,error:s};throw s}})}deleteBucket(n){return su(this,void 0,void 0,function*(){try{return{data:yield gE(this.fetch,`${this.url}/bucket/${n}`,{},{headers:this.headers}),error:null}}catch(s){if(kr(s))return{data:null,error:s};throw s}})}}class $G extends HG{constructor(n,s={},r){super(n,s,r)}from(n){return new zG(this.url,this.headers,n,this.fetch)}}const WG="2.49.1";let Fm="";typeof Deno<"u"?Fm="deno":typeof document<"u"?Fm="web":typeof navigator<"u"&&navigator.product==="ReactNative"?Fm="react-native":Fm="node";const GG={"X-Client-Info":`supabase-js-${Fm}/${WG}`},KG={headers:GG},QG={schema:"public"},YG={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},JG={};var XG=function(t,n,s,r){function a(i){return i instanceof s?i:new s(function(o){o(i)})}
559return new(s||(s=Promise))(function(i,o){function l(h){try{d(r.next(h))}catch(p){o(p)}}function c(h){try{d(r.throw(h))}catch(p){o(p)}}function d(h){h.done?i(h.value):a(h.value).then(l,c)}d((r=r.apply(t,n||[])).next())})};const ZG=t=>{let n;return t?n=t:typeof fetch>"u"?n=eE:n=fetch,(...s)=>n(...s)},eK=()=>typeof Headers>"u"?tE:Headers,tK=(t,n,s)=>{const r=ZG(s),a=eK();return(i,o)=>XG(void 0,void 0,void 0,function*(){var l;const c=(l=yield n())!==null&&l!==void 0?l:t;let d=new a(o==null?void 0:o.headers);return d.has("apikey")||d.set("apikey",t),d.has("Authorization")||d.set("Authorization",`Bearer ${c}`),r(i,Object.assign(Object.assign({},o),{headers:d}))})};var nK=function(t,n,s,r){function a(i){return i instanceof s?i:new s(function(o){o(i)})}return new(s||(s=Promise))(function(i,o){function l(h){try{d(r.next(h))}catch(p){o(p)}}function c(h){try{d(r.throw(h))}catch(p){o(p)}}function d(h){h.done?i(h.value):a(h.value).then(l,c)}d((r=r.apply(t,n||[])).next())})};function sK(t){return t.replace(/\/$/,"")}function rK(t,n){const{db:s,auth:r,realtime:a,global:i}=t,{db:o,auth:l,realtime:c,global:d}=n,h={db:Object.assign(Object.assign({},o),s),auth:Object.assign(Object.assign({},l),r),realtime:Object.assign(Object.assign({},c),a),global:Object.assign(Object.assign({},d),i),accessToken:()=>nK(this,void 0,void 0,function*(){return""})};return t.accessToken?h.accessToken=t.accessToken:delete h.accessToken,h}const xE="2.68.0",uu=30*1e3,_2=3,qv=_2*uu,aK="http://localhost:9999",iK="supabase.auth.token",oK={"X-Client-Info":`gotrue-js/${xE}`},T2="X-Supabase-Api-Version",yE={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}};function lK(t){return Math.round(Date.now()/1e3)+t}function cK(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){const n=Math.random()*16|0;return(t=="x"?n:n&3|8).toString(16)})}const Eo=()=>typeof window<"u"&&typeof document<"u",Cd={tested:!1,writable:!1},tf=()=>{if(!Eo())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(Cd.tested)return Cd.writable;const t=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(t,t),globalThis.localStorage.removeItem(t),Cd.tested=!0,Cd.writable=!0}catch{Cd.tested=!0,Cd.writable=!1}return Cd.writable};function dK(t){const n={},s=new URL(t);if(s.hash&&s.hash[0]==="#")try{new URLSearchParams(s.hash.substring(1)).forEach((a,i)=>{n[i]=a})}catch{}return s.searchParams.forEach((r,a)=>{n[a]=r}),n}const bE=t=>{let n;return t?n=t:typeof fetch>"u"?n=(...s)=>$i(async()=>{const{default:r}=await Promise.resolve().then(()=>
559Lp);return{default:r}},void 0).then(({default:r})=>r(...s)):n=fetch,(...s)=>n(...s)},hK=t=>typeof t=="object"&&t!==null&&"status"in t&&"ok"in t&&"json"in t&&typeof t.json=="function",vE=async(t,n,s)=>{await t.setItem(n,JSON.stringify(s))},yx=async(t,n)=>{const s=await t.getItem(n);if(!s)return null;try{return JSON.parse(s)}catch{return s}},bx=async(t,n)=>{await t.removeItem(n)};function uK(t){const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";let s="",r,a,i,o,l,c,d,h=0;for(t=t.replace("-","+").replace("_","/");h<t.length;)o=n.indexOf(t.charAt(h++)),l=n.indexOf(t.charAt(h++)),c=n.indexOf(t.charAt(h++)),d=n.indexOf(t.charAt(h++)),r=o<<2|l>>4,a=(l&15)<<4|c>>2,i=(c&3)<<6|d,s=s+String.fromCharCode(r),c!=64&&a!=0&&(s=s+String.fromCharCode(a)),d!=64&&i!=0&&(s=s+String.fromCharCode(i));return s}class hb{constructor(){this.promise=new hb.promiseConstructor((n,s)=>{this.resolve=n,this.reject=s})}}hb.promiseConstructor=Promise;function xA(t){const n=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i,s=t.split(".");if(s.length!==3)throw new Error("JWT is not valid: not a JWT structure");if(!n.test(s[1]))throw new Error("JWT is not valid: payload is not in base64url format");const r=s[1];return JSON.parse(uK(r))}async function pK(t){return await new Promise(n=>{setTimeout(()=>n(null),t)})}function mK(t,n){return new Promise((r,a)=>{(async()=>{for(let i=0;i<1/0;i++)try{const o=await t(i);if(!n(i,null,o)){r(o);return}}catch(o){if(!n(i,o)){a(o);return}}})()})}function fK(t){return("0"+t.toString(16)).substr(-2)}function gK(){const n=new Uint32Array(56);if(typeof crypto>"u"){const s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",r=s.length;let a="";for(let i=0;i<56;i++)a+=s.charAt(Math.floor(Math.random()*r));return a}return crypto.getRandomValues(n),Array.from(n,fK).join("")}async function xK(t){const s=new TextEncoder().encode(t),r=await crypto.subtle.digest("SHA-256",s),a=new Uint8Array(r);return Array.from(a).map(i=>String.fromCharCode(i)).join("")}function yK(t){return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function bK(t){if(!(typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof TextEncoder<"u"))return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),t;const s=await xK(t);return yK(s)}async function ru(t,n,s=!1){const r=gK();let a=r;s&&(a+="/PASSWORD_RECOVERY"),await vE(t,`${n}-code-verifier`,a);const i=await bK(r);return[i,r===i?"plain":"s256"]}const vK=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function wK(t){const n=t.headers.get(T2);if(!n||!n.match(vK))return null;try{return new Date(`${n}T00:00:00.0Z`)}catch{return null}}class dN extends Error{constructor(n,s,r){super(n),this.__isAuthError=!0,this.name="AuthError",this.status=s,this.code=r}}function kn(t){return typeof t=="object"&&t!==null&&"__isAuthError"in t}class jK extends dN{constructor(n,s,r){super(n,s,r),this.name="AuthApiError",this.status=s,this.code=r}}function kK(t){return kn(t)&&t.name==="AuthApiError"}class wE extends dN{constructor(n,s){super(n),this.name="AuthUnknownError",this.originalError=s}}class _h extends dN{constructor(n,s,r,a){super(n,r,a),this.name=s,this.status=r}}class gc extends _h{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}function NK(t){return kn(t)&&t.name==="AuthSessionMissingError"}class Hv extends _h{constructor(){super("Auth session or user missing","AuthInvalidToken
559ResponseError",500,void 0)}}class vx extends _h{constructor(n){super(n,"AuthInvalidCredentialsError",400,void 0)}}class wx extends _h{constructor(n,s=null){super(n,"AuthImplicitGrantRedirectError",500,void 0),this.details=null,this.details=s}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}function SK(t){return kn(t)&&t.name==="AuthImplicitGrantRedirectError"}class yA extends _h{constructor(n,s=null){super(n,"AuthPKCEGrantCodeExchangeError",500,void 0),this.details=null,this.details=s}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class P2 extends _h{constructor(n,s){super(n,"AuthRetryableFetchError",s,void 0)}}function $v(t){return kn(t)&&t.name==="AuthRetryableFetchError"}class bA extends _h{constructor(n,s,r){super(n,"AuthWeakPasswordError",s,"weak_password"),this.reasons=r}}var AK=function(t,n){var s={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&n.indexOf(r)<0&&(s[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,r=Object.getOwnPropertySymbols(t);a<r.length;a++)n.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(t,r[a])&&(s[r[a]]=t[r[a]]);return s};const Ed=t=>t.msg||t.message||t.error_description||t.error||JSON.stringify(t),DK=[502,503,504];async function vA(t){var n;if(!hK(t))throw new P2(Ed(t),0);if(DK.includes(t.status))throw new P2(Ed(t),t.status);let s;try{s=await t.json()}catch(i){throw new wE(Ed(i),i)}let r;const a=wK(t);if(a&&a.getTime()>=yE["2024-01-01"].timestamp&&typeof s=="object"&&s&&typeof s.code=="string"?r=s.code:typeof s=="object"&&s&&typeof s.error_code=="string"&&(r=s.error_code),r){if(r==="weak_password")throw new bA(Ed(s),t.status,((n=s.weak_password)===null||n===void 0?void 0:n.reasons)||[]);if(r==="session_not_found")throw new gc}else if(typeof s=="object"&&s&&typeof s.weak_password=="object"&&s.weak_password&&Array.isArray(s.weak_password.reasons)&&s.weak_password.reasons.length&&s.weak_password.reasons.reduce((i,o)=>i&&typeof o=="string",!0))throw new bA(Ed(s),t.status,s.weak_password.reasons);throw new jK(Ed(s),t.status||500,r)}const IK=(t,n,s,r)=>{const a={method:t,headers:(n==null?void 0:n.headers)||{}};return t==="GET"?a:(a.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},n==null?void 0:n.headers),a.body=JSON.stringify(r),Object.assign(Object.assign({},a),s))};async function On(t,n,s,r){var a;const i=Object.assign({},r==null?void 0:r.headers);i[T2]||(i[T2]=yE["2024-01-01"].name),r!=null&&r.jwt&&(i.Authorization=`Bearer ${r.jwt}`);const o=(a=r==null?void 0:r.query)!==null&&a!==void 0?a:{};r!=null&&r.redirectTo&&(o.redirect_to=r.redirectTo);const l=Object.keys(o).length?"?"+new URLSearchParams(o).toString():"",c=await CK(t,n,s+l,{headers:i,noResolveJson:r==null?void 0:r.noResolveJson},{},r==null?void 0:r.body);return r!=null&&r.xform?r==null?void 0:r.xform(c):{data:Object.assign({},c),error:null}}async function CK(t,n,s,r,a,i){const o=IK(n,r,a,i);let l;try{l=await t(s,Object.assign({},o))}catch(c){throw console.error(c),new P2(Ed(c),0)}if(l.ok||await vA(l),r!=null&&r.noResolveJson)return l;try{return await l.json()}catch(c){await vA(c)}}function xc(t){var n;let s=null;EK(t)&&(s=Object.assign({},t),t.expires_at||(s.expires_at=lK(t.expires_in)));const r=(n=t.user)!==null&&n!==void 0?n:t;return{data:{session:s,user:r},error:null}}function wA(t){const n=xc(t);return!n.error&&t.weak_password&&typeof t.weak_password=="object"&&Array.isArray(t.weak_password.reasons)&&t.weak_password.reasons.length&&t.weak_password.message&&typeof t.weak_password.message=="string"&&t.weak_password.reasons.reduce((s,r)=>s&&typeof r=="string",!0)&&(n.data.weak_password=t.weak_password),n}function Nc(t){var n;return{data:{user:(n=t.user)!==null&&n!==void 0?n:t},error:null}}function _K(t){return{data:t,error:null}}function TK(t){const{action_link:n,email_otp:s,hashed_token:r,redirect_to:a,verification_type:i}=t,o=AK(t,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),l={action_link:n,email_otp:s,hashed_token:r,redirect_to:a,verification_type:i},c=Object.assign({},o);return{data:{properties:l,user:c},error:null}}function PK(t){return t}function EK(t){return t.access_token&&t.refresh_token&&t.expires_in}var LK=function(t,n){var s={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&n.indexOf(r)<0&&(s[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,r=Object.getOwnPropertySymbols(t);a<r.length;a++)n.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(t,r[a])&&(s[r[a]]=t[r[a]]);return s};class MK{constructor({url:n="",headers:s={},fetch:r}){this.url=n,this.headers=s,this.fetch=bE(r),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)}}async signOut(n,s="global"){try{return await On(this.fetch,"POST",`${this.url}/logout?scope=${s}`,{headers:this.headers,jwt:n,noResolveJson:!0}),{data:null,error:null}}catch(r){if(kn(r))return{data:null,error:r};throw r}}async inviteUserByEmail(n,s={}){try{return await On(this.fetch,"POST",`${this.url}/invite`,{body:{email:n,data:s.data},headers:this.headers,redirectTo:s.redirectTo,xform:Nc})}catch(r){if(kn(r))return{data:{user:null},error:r};throw r}}async generateLink(n){try{const{options:s}=n,r=LK(n,["options"]),a=Object.assign(Object.assign({},r),s);return"newEmail"in r&&(a.new_email=r==null?void 0:r.newEmail,delete a.newEmail),await On(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:a,headers:this.headers,xform:TK,redirectTo:s==null?void 0:s.redirectTo})}catch(s){if(kn(s))return{data:{properties:null,user:null},error:s};throw s}}async createUser(n){try{return await On(this.fetch,"POST",`${this.url}/admin/users`,{body:n,headers:this.headers,xform:Nc})}catch(s){if(kn(s))return{data:{user:null},error:s};throw s}}async listUsers(n){var s,r,a,i,o,l,c;try{const d={nextPage:null,lastPage:0,total:0},h=await On(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(r=(s=n==null?void 0:n.page)===null||s===void 0?void 0:s.toString())!==null&&r!==void 0?r:"",per_page:(i=(a=n==null?void 0:n.perPage)===null||a===void 0?void 0:a.toString())!==null&&i!==void 0?i:""},xform:PK});if(h.error)throw h.error;const p=await h.json(),m=(o=h.headers.get("x-total-count"))!==null&&o!==void 0?o:0,u=(c=(l=h.headers.get("link"))===null||l===void 0?void 0:l.split(","))!==null&&c!==void 0?c:[];return u.length>0&&(u.forEach(y=>{const g=parseInt(y.split(";")[0].split("=")[1].substring(0,1)),w=JSON.parse(y.split(";")[1].split("=")[1]);d[`${w}Page`]=g}),d.total=parseInt(m)),{data:Object.assign(Object.assign({},p),d),error:null}}catch(d){if(kn(d))return{data:{users:[]},error:d};throw d}}async getUserById(n){try{return await On(this.fetch,"GET",`${this.url}/admin/users/${n}`,{headers:this.headers,xform:Nc})}catch(s){if(kn(s))return{data:{user:null},error:s};throw s}}async updateUserById(n,s){try{return await On(this.fetch,"PUT",`${this.url}/admin/users/${n}`,{body:s,headers:this.headers,xform:Nc})}catch(r){if(kn(r))return{data:{user:null},error:r};throw r}}
vendor: 17,112 bytes, line 559
559async deleteUser(n,s=!1){try{return await On(this.fetch,"DELETE",`${this.url}/admin/users/${n}`,{headers:this.headers,body:{should_soft_delete:s},xform:Nc})}catch(r){if(kn(r))return{data:{user:null},error:r};throw r}}async _listFactors(n){try{const{data:s,error:r}=await On(this.fetch,"GET",`${this.url}/admin/users/${n.userId}/factors`,{headers:this.headers,xform:a=>({data:{factors:a},error:null})});return{data:s,error:r}}catch(s){if(kn(s))return{data:null,error:s};throw s}}async _deleteFactor(n){try{return{data:await On(this.fetch,"DELETE",`${this.url}/admin/users/${n.userId}/factors/${n.id}`,{headers:this.headers}),error:null}}catch(s){if(kn(s))return{data:null,error:s};throw s}}}const RK={getItem:t=>tf()?globalThis.localStorage.getItem(t):null,setItem:(t,n)=>{tf()&&globalThis.localStorage.setItem(t,n)},removeItem:t=>{tf()&&globalThis.localStorage.removeItem(t)}};function jA(t={}){return{getItem:n=>t[n]||null,setItem:(n,s)=>{t[n]=s},removeItem:n=>{delete t[n]}}}function OK(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<"u"&&(self.globalThis=self)}}const au={debug:!!(globalThis&&tf()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug")==="true")};class jE extends Error{constructor(n){super(n),this.isAcquireTimeout=!0}}class FK extends jE{}async function VK(t,n,s){au.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire lock",t,n);const r=new globalThis.AbortController;return n>0&&setTimeout(()=>{r.abort(),au.debug&&console.log("@supabase/gotrue-js: navigatorLock acquire timed out",t)},n),await Promise.resolve().then(()=>globalThis.navigator.locks.request(t,n===0?{mode:"exclusive",ifAvailable:!0}:{mode:"exclusive",signal:r.signal},async a=>{if(a){au.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquired",t,a.name);try{return await s()}finally{au.debug&&console.log("@supabase/gotrue-js: navigatorLock: released",t,a.name)}}else{if(n===0)throw au.debug&&console.log("@supabase/gotrue-js: navigatorLock: not immediately available",t),new FK(`Acquiring an exclusive Navigator LockManager lock "${t}" immediately failed`);if(au.debug)try{const i=await globalThis.navigator.locks.query();console.log("@supabase/gotrue-js: Navigator LockManager state",JSON.stringify(i,null," "))}catch(i){console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state",i)}return console.warn("@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request"),await s()}}))}OK();const BK={url:aK,storageKey:iK,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:oK,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1};async function kA(t,n,s){return await s()}class Of{constructor(n){var s,r;this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log,this.instanceID=Of.nextInstanceID,Of.nextInstanceID+=1,this.instanceID>0&&Eo()&&console.warn("Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.");const a=Object.assign(Object.assign({},BK),n);if(this.logDebugMessages=!!a.debug,typeof a.debug=="function"&&(this.logger=a.debug),this.persistSession=a.persistSession,this.storageKey=a.storageKey,this.autoRefreshToken=a.autoRefreshToken,this.admin=new MK({url:a.url,headers:a.headers,fetch:a.fetch}),this.url=a.url,this.headers=a.headers,this.fetch=bE(a.fetch),this.lock=a.lock||kA,this.detectSessionInUrl=a.detectSessionInUrl,this.flowType=a.flowType,this.hasCustomAuthorizationHeader=a.hasCustomAuthorizationHeader,a.lock?this.lock=a.lock:Eo()&&(!((s=globalThis==null?void 0:globalThis.navigator)===null||s===void 0)&&s.locks)?this.lock=VK:this.lock=kA,this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this)},this.persistSession?a.storage?this.storage=a.storage:tf()?this.storage=RK:(this.memoryStorage={},this.storage=jA(this.memoryStorage)):(this.memoryStorage={},this.storage=jA(this.memoryStorage)),Eo()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(i){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",i)}(r=this.broadcastChannel)===null||r===void 0||r.addEventListener("message",async i=>{this._debug("received broadcast notification from other tab or client",i),await this._notifyAllSubscribers(i.data.event,i.data.session,!1)})}this.initialize()}_debug(...n){return this.logDebugMessages&&this.logger(`GoTrueClient@${this.instanceID} (${xE}) ${new Date().toISOString()}`,...n),this}async initialize(){return this.initializePromise?await this.initializePromise:(this.initializePromise=(async()=>await this._acquireLock(-1,async()=>await this._initialize()))(),await this.initializePromise)}async _initialize(){var n;try{const s=dK(window.location.href);let r="none";if(this._isImplicitGrantCallback(s)?r="implicit":await this._isPKCECallback(s)&&(r="pkce"),Eo()&&this.detectSessionInUrl&&r!=="none"){const{data:a,error:i}=await this._getSessionFromURL(s,r);if(i){if(this._debug("#_initialize()","error detecting session from URL",i),SK(i)){const c=(n=i.details)===null||n===void 0?void 0:n.code;if(c==="identity_already_exists"||c==="identity_not_found"||c==="single_identity_not_deletable")return{error:i}}return await this._removeSession(),{error:i}}const{session:o,redirectType:l}=a;return this._debug("#_initialize()","detected session in URL",o,"redirect type",l),await this._saveSession(o),setTimeout(async()=>{l==="recovery"?await this._notifyAllSubscribers("PASSWORD_RECOVERY",o):await this._notifyAllSubscribers("SIGNED_IN",o)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(s){return kn(s)?{error:s}:{error:new wE("Unexpected error during initialization",s)}}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(n){var s,r,a;try{const i=await On(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(r=(s=n==null?void 0:n.options)===null||s===void 0?void 0:s.data)!==null&&r!==void 0?r:{},gotrue_meta_security:{captcha_token:(a=n==null?void 0:n.options)===null||a===void 0?void 0:a.captchaToken}},xform:xc}),{data:o,error:l}=i;if(l||!o)return{data:{user:null,session:null},error:l};const c=o.session,d=o.user;return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",c)),{data:{user:d,session:c},error:null}}catch(i){if(kn(i))return{data:{user:null,session:null},error:i};throw i}}async signUp(n){var s,r,a;try{let i;if("email"in n){const{email:h,password:p,options:m}=n;let u=null,y=null;this.flowType==="pkce"&&([u,y]=await ru(this.storage,this.storageKey)),i=await On(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:m==null?void 0:m.emailRedirectTo,body:{email:h,password:p,data:(s=m==null?void 0:m.data)!==null&&s!==void 0?s:{},gotrue_meta_security:{captcha_token:m==null?void 0:m.captchaToken},code_challenge:u,code_challenge_method:y},xform:xc})}else if("phone"in n){const{phone:h,password:p,options:m}=n;i=await On(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:h,password:p,data:(r=m==null?void 0:m.data)!==null&&r!==void 0?r:{},channel:(a=m==null?void 0:m.channel)!==null&&a!==void 0?a:"sms",gotrue_meta_security:{captcha_token:m==null?void 0:m.captchaToken}},xform:xc})}else throw new vx("You must provide either an email or phone number and a password");const{data:o,error:l}=i;if(l||!o)return{data:{user:null,session:null},error:l};const c=o.session,d=o.user;return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",c)),{data:{user:d,session:c},error:null}}catch(i){if(kn(i))return{data:{user:null,session:null},error:i};throw i}}async signInWithPassword(n){try{let s;if("email"in n){const{email:i,password:o,options:l}=n;s=await On(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:i,password:o,gotrue_meta_security:{captcha_token:l==null?void 0:l.captchaToken}},xform:wA})}else if("phone"in n){const{phone:i,password:o,options:l}=n;s=await On(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:i,password:o,gotrue_meta_security:{captcha_token:l==null?void 0:l.captchaToken}},xform:wA})}else throw new vx("You must provide either an email or phone number and a password");const{data:r,error:a}=s;return a?{data:{user:null,session:null},error:a}:!r||!r.session||!r.user?{data:{user:null,session:null},error:new Hv}:(r.session&&(await this._saveSession(r.session),await this._notifyAllSubscribers("SIGNED_IN",r.session)),{data:Object.assign({user:r.user,session:r.session},r.weak_password?{weakPassword:r.weak_password}:null),error:a})}catch(s){if(kn(s))return{data:{user:null,session:null},error:s};throw s}}async signInWithOAuth(n){var s,r,a,i;return await this._handleProviderSignIn(n.provider,{redirectTo:(s=n.options)===null||s===void 0?void 0:s.redirectTo,scopes:(r=n.options)===null||r===void 0?void 0:r.scopes,queryParams:(a=n.options)===null||a===void 0?void 0:a.queryParams,skipBrowserRedirect:(i=n.options)===null||i===void 0?void 0:i.skipBrowserRedirect})}async exchangeCodeForSession(n){return await this.initializePromise,this._acquireLock(-1,async()=>this._exchangeCodeForSession(n))}async _exchangeCodeForSession(n){const s=await yx(this.storage,`${this.storageKey}-code-verifier`),[r,a]=(s??"").split("/");try{const{data:i,error:o}=await On(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:n,code_verifier:r},xform:xc});if(await bx(this.storage,`${this.storageKey}-code-verifier`),o)throw o;return!i||!i.session||!i.user?{data:{user:null,session:null,redirectType:null},error:new Hv}:(i.session&&(await this._saveSession(i.session),await this._notifyAllSubscribers("SIGNED_IN",i.session)),{data:Object.assign(Object.assign({},i),{redirectType:a??null}),error:o})}catch(i){if(kn(i))return{data:{user:null,session:null,redirectType:null},error:i};throw i}}async signInWithIdToken(n){try{const{options:s,provider:r,token:a,access_token:i,nonce:o}=n,l=await On(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:r,id_token:a,access_token:i,nonce:o,gotrue_meta_security:{captcha_token:s==null?void 0:s.captchaToken}},xform:xc}),{data:c,error:d}=l;return d?{data:{user:null,session:null},error:d}:!c||!c.session||!c.user?{data:{user:null,session:null},error:new Hv}:(c.session&&(await this._saveSession(c.session),await this._notifyAllSubscribers("SIGNED_IN",c.session)),{data:c,error:d})}catch(s){if(kn(s))return{data:{user:null,session:null},error:s};throw s}}async signInWithOtp(n){var s,r,a,i,o;try{if("email"in n){const{email:l,options:c}=n;let d=null,h=null;this.flowType==="pkce"&&([d,h]=await ru(this.storage,this.storageKey));const{error:p}=await On(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:l,data:(s=c==null?void 0:c.data)!==null&&s!==void 0?s:{},create_user:(r=c==null?void 0:c.shouldCreateUser)!==null&&r!==void 0?r:!0,gotrue_meta_security:{captcha_token:c==null?void 0:c.captchaToken},code_challenge:d,code_challenge_method:h},redirectTo:c==null?void 0:c.emailRedirectTo});return{data:{user:null,session:null},error:p}}if("phone"in n){const{phone:l,options:c}=n,{data:d,error:h}=await On(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:l,data:(a=c==null?void 0:c.data)!==null&&a!==void 0?a:{},create_user:(i=c==null?void 0:c.shouldCreateUser)!==null&&i!==void 0?i:!0,gotrue_meta_security:{captcha_token:c==null?void 0:c.captchaToken},channel:(o=c==null?void 0:c.channel)!==null&&o!==void 0?o:"sms"}});return{data:{user:null,session:null,messageId:d==null?void 0:d.message_id},error:h}}throw new vx("You must provide either an email or phone number.")}catch(l){if(kn(l))return{data:{user:null,session:null},error:l};throw l}}async verifyOtp(n){var s,r;try{let a,i;"options"in n&&(a=(s=n.options)===null||s===void 0?void 0:s.redirectTo,i=(r=n.options)===null||r===void 0?void 0:r.captchaToken);const{data:o,error:l}=await On(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},n),{gotrue_meta_security:{captcha_token:i}}),redirectTo:a,xform:xc});if(l)throw l;if(!o)throw new Error("An error occurred on token verification.");const c=o.session,d=o.user;return c!=null&&c.access_token&&(await this._saveSession(c),await this._notifyAllSubscribers(n.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",c)),{data:{user:d,session:c},error:null}}catch(a){if(kn(a))return{data:{user:null,session:null},error:a};throw a}}async signInWithSSO(n){var s,r,a;try{let i=null,o=null;return this.flowType==="pkce"&&([i,o]=await ru(this.storage,this.storageKey)),await On(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in n?{provider_id:n.providerId}:null),"domain"in n?{domain:n.domain}:null),{redirect_to:(r=(s=n.options)===null||s===void 0?void 0:s.redirectTo)!==null&&r!==void 0?r:void 0}),!((a=n==null?void 0:n.options)===null||a===void 0)&&a.captchaToken?{gotrue_meta_security:{captcha_token:n.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:i,code_challenge_method:o}),headers:this.headers,xform:_K})}catch(i){if(kn(i))return{data:null,error:i};throw i}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async n=>{const{data:{session:s},error:r}=n;if(r)throw r;if(!s)throw new gc;const{error:a}=await On(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:s.access_token});return{data:{user:null,session:null},error:a}})}catch(n){if(kn(n))return{data:{user:null,session:null},error:n};throw n}}async resend(n){try{const s=`${this.url}/resend`;if("email"in n){const{email:r,type:a,options:i}=n,{error:o}=await On(this.fetch,"POST",s,{headers:this.headers,body:{email:r,type:a,gotrue_meta_security:{captcha_token:i==null?void 0:i.captchaToken}},redirectTo:i==null?void 0:i.emailRedirectTo});return{data:{user:null,session:null},error:o}}else if("phone"in n){const{phone:r,type:a,options:i}=n,{data:o,error:l}=await On(this.fetch,"POST",s,{headers:this.headers,body:{phone:r,type:a,gotrue_meta_security:{captcha_token:i==null?void 0:i.captchaToken}}});return{data:{user:null,session:null,messageId:o==null?void 0:o.message_id},error:l}}throw new vx("You must provide either an email or phone number and a type")}catch(s){if(kn(s))return{data:{user:null,session:null},error:s};throw s}}async getSession(){return await this.initializePromise,await this._acquireLock(-1,async()=>this._useSession(async s=>s))}async _acquireLock(n,s){this._debug("#_acquireLock","begin",n);try{if(this.lockAcquired){const r=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),a=(async()=>(await r,await s()))();return this.pendingInLock.push((async()=>{try{await a}catch{}})()),a}return await this.lock(`lock:${this.storageKey}`,n,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;const r=s();for(this.pendingInLock.push((async()=>{try{await r}catch{}})()),await r;this.pendingInLock.length;){const a=[...this.pendingInLock];await Promise.all(a),this.pendingInLock.splice(0,a.length)}return await r}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(n){this._debug("#_useSession","begin");try{const s=await this.__loadSession();return await n(s)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin"),this.lockAcquired||this._debug("#__loadSession()","used outside of an acquired lock!",new Error().stack);try{let n=null;const s=await yx(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",s),s!==null&&(this._isValidSession(s)?n=s:(this._debug("#getSession()","session from storage is not val
559id"),await this._removeSession())),!n)return{data:{session:null},error:null};const r=n.expires_at?n.expires_at*1e3-Date.now()<qv:!1;if(this._debug("#__loadSession()",`session has${r?"":" not"} expired`,"expires_at",n.expires_at),!r){if(this.storage.isServer){let o=this.suppressGetSessionWarning;n=new Proxy(n,{get:(c,d,h)=>(!o&&d==="user"&&(console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),o=!0,this.suppressGetSessionWarning=!0),Reflect.get(c,d,h))})}return{data:{session:n},error:null}}const{session:a,error:i}=await this._callRefreshToken(n.refresh_token);return i?{data:{session:null},error:i}:{data:{session:a},error:null}}finally{this._debug("#__loadSession()","end")}}async getUser(n){return n?await this._getUser(n):(await this.initializePromise,await this._acquireLock(-1,async()=>await this._getUser()))}async _getUser(n){try{return n?await On(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:n,xform:Nc}):await this._useSession(async s=>{var r,a,i;const{data:o,error:l}=s;if(l)throw l;return!(!((r=o.session)===null||r===void 0)&&r.access_token)&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new gc}:await On(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(i=(a=o.session)===null||a===void 0?void 0:a.access_token)!==null&&i!==void 0?i:void 0,xform:Nc})})}catch(s){if(kn(s))return NK(s)&&(await this._removeSession(),await bx(this.storage,`${this.storageKey}-code-verifier`)),{data:{user:null},error:s};throw s}}async updateUser(n,s={}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._updateUser(n,s))}async _updateUser(n,s={}){try{return await this._useSession(async r=>{const{data:a,error:i}=r;if(i)throw i;if(!a.session)throw new gc;const o=a.session;let l=null,c=null;this.flowType==="pkce"&&n.email!=null&&([l,c]=await ru(this.storage,this.storageKey));const{data:d,error:h}=await On(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:s==null?void 0:s.emailRedirectTo,body:Object.assign(Object.assign({},n),{code_challenge:l,code_challenge_method:c}),jwt:o.access_token,xform:Nc});if(h)throw h;return o.user=d.user,await this._saveSession(o),await this._notifyAllSubscribers("USER_UPDATED",o),{data:{user:o.user},error:null}})}catch(r){if(kn(r))return{data:{user:null},error:r};throw r}}_decodeJWT(n){return xA(n)}async setSession(n){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._setSession(n))}async _setSession(n){try{if(!n.access_token||!n.refresh_token)throw new gc;const s=Date.now()/1e3;let r=s,a=!0,i=null;const o=xA(n.access_token);if(o.exp&&(r=o.exp,a=r<=s),a){const{session:l,error:c}=await this._callRefreshToken(n.refresh_token);if(c)return{data:{user:null,session:null},error:c};if(!l)return{data:{user:null,session:null},error:null};i=l}else{const{data:l,error:c}=await this._getUser(n.access_token);if(c)throw c;i={access_token:n.access_token,refresh_token:n.refresh_token,user:l.user,token_type:"bearer",expires_in:r-s,expires_at:r},await this._saveSession(i),await this._notifyAllSubscribers("SIGNED_IN",i)}return{data:{user:i.user,session:i},error:null}}catch(s){if(kn(s))return{data:{session:null,user:null},error:s};throw s}}async refreshSession(n){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._refreshSession(n))}async _refreshSession(n){try{return await this._useSession(async s=>{var r;if(!n){const{data:o,error:l}=s;if(l)throw l;n=(r=o.session)!==null&&r!==void 0?r:void 0}if(!(n!=null&&n.refresh_token))throw new gc;const{session:a,error:i}=await this._callRefreshToken(n.refresh_token);return i?{data:{user:null,session:null},error:i}:a?{data:{user:a.user,session:a},error:null}:{data:{user:null,session:null},error:null}})}catch(s){if(kn(s))return{data:{user:null,session:null},error:s};throw s}}async _getSessionFromURL(n,s){try{if(!Eo())throw new wx("No browser detected.");
559if(n.error||n.error_description||n.error_code)throw new wx(n.error_description||"Error in URL with unspecified error_description",{error:n.error||"unspecified_error",code:n.error_code||"unspecified_code"});switch(s){case"implicit":if(this.flowType==="pkce")throw new yA("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new wx("Not a valid implicit grant flow url.");break;default:}if(s==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!n.code)throw new yA("No code detected.");const{data:j,error:N}=await this._exchangeCodeForSession(n.code);if(N)throw N;const A=new URL(window.location.href);return A.searchParams.delete("code"),window.history.replaceState(window.history.state,"",A.toString()),{data:{session:j.session,redirectType:null},error:null}}const{provider_token:r,provider_refresh_token:a,access_token:i,refresh_token:o,expires_in:l,expires_at:c,token_type:d}=n;if(!i||!l||!o||!d)throw new wx("No session defined in URL");const h=Math.round(Date.now()/1e3),p=parseInt(l);let m=h+p;c&&(m=parseInt(c));const u=m-h;u*1e3<=uu&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${u}s, should have been closer to ${p}s`);const y=m-p;h-y>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",y,m,h):h-y<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",y,m,h);const{data:g,error:w}=await this._getUser(i);if(w)throw w;const b={provider_token:r,provider_refresh_token:a,access_token:i,expires_in:p,expires_at:m,refresh_token:o,token_type:d,user:g.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),{data:{session:b,redirectType:n.type},error:null}}catch(r){if(kn(r))return{data:{session:null,redirectType:null},error:r};throw r}}_isImplicitGrantCallback(n){return!!(n.access_token||n.error_description)}async _isPKCECallback(n){const s=await yx(this.storage,`${this.storageKey}-code-verifier`);return!!(n.code&&s)}async signOut(n={scope:"global"}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._signOut(n))}async _signOut({scope:n}={scope:"global"}){return await this._useSession(async s=>{var r;const{data:a,error:i}=s;if(i)return{error:i};const o=(r=a.session)===null||r===void 0?void 0:r.access_token;if(o){const{error:l}=await this.admin.signOut(o,n);if(l&&!(kK(l)&&(l.status===404||l.status===401||l.status===403)))return{error:l}}return n!=="others"&&(await this._removeSession(),await bx(this.storage,`${this.storageKey}-code-verifier`)),{error:null}})}onAuthStateChange(n){const s=cK(),r={id:s,callback:n,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",s),this.stateChangeEmitters.delete(s)}};return this._debug("#onAuthStateChange()","registered callback with id",s),this.stateChangeEmitters.set(s,r),(async()=>(await this.initializePromise,await this._acquireLock(-1,async()=>{this._emitInitialSession(s)})))(),{data:{subscription:r}}}async _emitInitialSession(n){return await this._useSession(async s=>{var r,a;try{const{data:{session:i},error:o}=s;if(o)throw o;await((r=this.stateChangeEmitters.get(n))===null||r===void 0?void 0:r.callback("INITIAL_SESSION",i)),this._debug("INITIAL_SESSION","callback id",n,"session",i)}catch(i){await((a=this.stateChangeEmitters.get(n))===null||a===void 0?void 0:a.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",n,"error",i),console.error(i)}})}async resetPasswordForEmail(n,s={}){let r=null,a=null;this.flowType==="pkce"&&([r,a]=await ru(this.storage,this.storageKey,!0));try{return await On(this.fetch,"POST",`${this.url}/recover`,{body:{email:n,code_challenge:r,code_challenge_method:a,gotrue_meta_security:{captcha_token:s.captchaToken}},headers:this.headers,redirectTo:s.redirectTo})}catch(i){if(kn(i))return{data:null,error:i};throw i}}async getUserIdentities(){var n;try{const{data:s,error:r}=await this.getUser();if(r)throw r;return{data:{identities:(n=s.user.identities)!==null&&n!==void 0?n:[]},error:null}}catch(s){if(kn(s))return{data:null,error:s};throw s}}async linkIdentity(n){var s;try{const{data:r,error:a}=await this._useSession(async i=>{var o,l,c,d,h;const{data:p,error:m}=i;if(m)throw m;const u=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,n.provider,{redirectTo:(o=n.options)===null||o===void 0?void 0:o.redirectTo,scopes:(l=n.options)===null||l===void 0?void 0:l.scopes,queryParams:(c=n.options)===null||c===void 0?void 0:c.queryParams,skipBrowserRedirect:!0});return await On(this.fetch,"GET",u,{headers:this.headers,jwt:(h=(d=p.session)===null||d===void 0?void 0:d.access_token)!==null&&h!==void 0?h:void 0})});if(a)throw a;return Eo()&&!(!((s=n.options)===null||s===void 0)&&s.skipBrowserRedirect)&&window.location.assign(r==null?void 0:r.url),{data:{provider:n.provider,url:r==null?void 0:r.url},error:null}}catch(r){if(kn(r))return{data:{provider:n.provider,url:null},error:r};throw r}}async unlinkIdentity(n){try{return await this._useSession(async s=>{var r,a;const{data:i,error:o}=s;
559if(o)throw o;return await On(this.fetch,"DELETE",`${this.url}/user/identities/${n.identity_id}`,{headers:this.headers,jwt:(a=(r=i.session)===null||r===void 0?void 0:r.access_token)!==null&&a!==void 0?a:void 0})})}catch(s){if(kn(s))return{data:null,error:s};throw s}}async _refreshAccessToken(n){const s=`#_refreshAccessToken(${n.substring(0,5)}...)`;this._debug(s,"begin");try{const r=Date.now();return await mK(async a=>(a>0&&await pK(200*Math.pow(2,a-1)),this._debug(s,"refreshing attempt",a),await On(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:n},headers:this.headers,xform:xc})),(a,i)=>{const o=200*Math.pow(2,a);return i&&$v(i)&&Date.now()+o-r<uu})}catch(r){if(this._debug(s,"error",r),kn(r))return{data:{session:null,user:null},error:r};throw r}finally{this._debug(s,"end")}}_isValidSession(n){return typeof n=="object"&&n!==null&&"access_token"in n&&"refresh_token"in n&&"expires_at"in n}async _handleProviderSignIn(n,s){const r=await this._getUrlForProvider(`${this.url}/authorize`,n,{redirectTo:s.redirectTo,scopes:s.scopes,queryParams:s.queryParams});return this._debug("#_handleProviderSignIn()","provider",n,"options",s,"url",r),Eo()&&!s.skipBrowserRedirect&&window.location.assign(r),{data:{provider:n,url:r},error:null}}async _recoverAndRefresh(){var n;const s="#_recoverAndRefresh()";this._debug(s,"begin");try{const r=await yx(this.storage,this.storageKey);if(this._debug(s,"session from storage",r),!this._isValidSession(r)){this._debug(s,"session is not valid"),r!==null&&await this._removeSession();return}const a=((n=r.expires_at)!==null&&n!==void 0?n:1/0)*1e3-Date.now()<qv;if(this._debug(s,`session has${a?"":" not"} expired with margin of ${qv}s`),a){if(this.autoRefreshToken&&r.refresh_token){const{error:i}=await this._callRefreshToken(r.refresh_token);i&&(console.error(i),$v(i)||(this._debug(s,"refresh failed with a non-retryable error, removing the session",i),await this._removeSession()))}}else await this._notifyAllSubscribers("SIGNED_IN",r)}catch(r){this._debug(s,"error",r),console.error(r);return}finally{this._debug(s,"end")}}async _callRefreshToken(n){var s,r;if(!n)throw new gc;if(this.refreshingDeferred)return this.refreshingDeferred.promise;const a=`#_callRefreshToken(${n.substring(0,5)}...)`;this._debug(a,"begin");try{this.refreshingDeferred=new hb;const{data:i,error:o}=await this._refreshAccessToken(n);if(o)throw o;if(!i.session)throw new gc;await this._saveSession(i.session),await this._notifyAllSubscribers("TOKEN_REFRESHED",i.session);const l={session:i.session,error:null};return this.refreshingDeferred.resolve(l),l}catch(i){if(this._debug(a,"error",i),kn(i)){const o={session:null,error:i};return $v(i)||await this._removeSession(),(s=this.refreshingDeferred)===null||s===void 0||s.resolve(o),o}throw(r=this.refreshingDeferred)===null||r===void 0||r.reject(i),i}finally{this.refreshingDeferred=null,this._debug(a,"end")}}async _notifyAllSubscribers(n,s,r=!0){const a=`#_notifyAllSubscribers(${n})`;this._debug(a,"begin",s,`broadcast = ${r}`);try{this.broadcastChannel&&r&&this.broadcastChannel.postMessage({event:n,session:s});const i=[],o=Array.from(this.stateChangeEmitters.values()).map(async l=>{try{await l.callback(n,s)}catch(c){i.push(c)}});if(await Promise.all(o),i.length>0){for(let l=0;l<i.length;l+=1)console.error(i[l]);throw i[0]}}finally{this._debug(a,"end")}}async _saveSession(n){this._debug("#_saveSession()",n),this.suppressGetSessionWarning=!0,await vE(this.storage,this.storageKey,n)}async _removeSession(){this._debug("#_removeSession()"),await bx(this.storage,this.storageKey),await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");const n=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{n&&Eo()&&(window!=null&&window.removeEventListener)&&window.removeEventListener("visibilitychange",n)}catch(s){console.error("removing visibilitychange callback failed",s)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");const n=setInterval(()=>this._autoRefreshTokenTick(),uu);this.autoRefreshTicker=n,n&&typeof n=="object"&&typeof n.unref=="function"?n.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(n),setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const n=this.autoRefreshTicker;this.autoRefreshTicker=null,n&&clearInterval(n)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{await this._acquireLock(0,async()=>{try{const n=Date.now();try{return await this._useSession(async s=>{const{data:{session:r}}=s;if(!r||!r.refresh_token||!r.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const a=Math.floor((r.expires_at*1e3-n)/uu);this._debug("#_autoRefreshTokenTick()",`access token expires in ${a} ticks, a tick lasts ${uu}ms, refresh threshold is ${_2} ticks`),a<=_2&&await this._callRefreshToken(r.refresh_token)})}catch(s){console.error("Auto refresh tick failed with error. This is likely a transient error.",s
559)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(n){if(n.isAcquireTimeout||n instanceof jE)this._debug("auto refresh token tick lock not available");else throw n}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!Eo()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>await this._onVisibilityChanged(!1),window==null||window.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(n){console.error("_handleVisibilityChange",n)}}async _onVisibilityChanged(n){const s=`#_onVisibilityChanged(${n})`;this._debug(s,"visibilityState",document.visibilityState),document.visibilityState==="visible"?(this.autoRefreshToken&&this._startAutoRefresh(),n||(await this.initializePromise,await this._acquireLock(-1,async()=>{if(document.visibilityState!=="visible"){this._debug(s,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()}))):document.visibilityState==="hidden"&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(n,s,r){const a=[`provider=${encodeURIComponent(s)}`];if(r!=null&&r.redirectTo&&a.push(`redirect_to=${encodeURIComponent(r.redirectTo)}`),r!=null&&r.scopes&&a.push(`scopes=${encodeURIComponent(r.scopes)}`),this.flowType==="pkce"){const[i,o]=await ru(this.storage,this.storageKey),l=new URLSearchParams({code_challenge:`${encodeURIComponent(i)}`,code_challenge_method:`${encodeURIComponent(o)}`});a.push(l.toString())}if(r!=null&&r.queryParams){const i=new URLSearchParams(r.queryParams);a.push(i.toString())}return r!=null&&r.skipBrowserRedirect&&a.push(`skip_http_redirect=${r.skipBrowserRedirect}`),`${n}?${a.join("&")}`}async _unenroll(n){try{return await this._useSession(async s=>{var r;const{data:a,error:i}=s;return i?{data:null,error:i}:await On(this.fetch,"DELETE",`${this.url}/factors/${n.factorId}`,{headers:this.headers,jwt:(r=a==null?void 0:a.session)===null||r===void 0?void 0:r.access_token})})}catch(s){if(kn(s))return{data:null,error:s};throw s}}async _enroll(n){try{return await this._useSession(async s=>{var r,a;const{data:i,error:o}=s;if(o)return{data:null,error:o};const l=Object.assign({friendly_name:n.friendlyName,factor_type:n.factorType},n.factorType==="phone"?{phone:n.phone}:{issuer:n.issuer}),{data:c,error:d}=await On(this.fetch,"POST",`${this.url}/factors`,{body:l,headers:this.headers,jwt:(r=i==null?void 0:i.session)===null||r===void 0?void 0:r.access_token});return d?{data:null,error:d}:(n.factorType==="totp"&&(!((a=c==null?void 0:c.totp)===null||a===void 0)&&a.qr_code)&&(c.totp.qr_code=`data:image/svg+xml;utf-8,${c.totp.qr_code}`),{data:c,error:null})})}catch(s){if(kn(s))return{data:null,error:s};throw s}}async _verify(n){return this._acquireLock(-1,async()=>{try{return await this._useSession(async s=>{var r;const{data:a,error:i}=s;if(i)return{data:null,error:i};const{data:o,error:l}=await On(this.fetch,"POST",`${this.url}/factors/${n.factorId}/verify`,{body:{code:n.code,challenge_id:n.challengeId},headers:this.headers,jwt:(r=a==null?void 0:a.session)===null||r===void 0?void 0:r.access_token});return l?{data:null,error:l}:(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+o.expires_in},o)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",o),{data:o,error:l})})}catch(s){if(kn(s))return{data:null,error:s};throw s}})}async _challenge(n){return this._acquireLock(-1,async()=>{try{return await this._useSession(async s=>{var r;const{data:a,error:i}=s;return i?{data:null,error:i}:await On(this.fetch,"POST",`${this.url}/factors/${n.factorId}/challenge`,{body:{channel:n.channel},headers:this.headers,jwt:(r=a==null?void 0:a.session)===null||r===void 0?void 0:r.access_token})})}catch(s){if(kn(s))return{data:null,error:s};throw s}})}async _challengeAndVerify(n){const{data:s,error:r}=await this._challenge({factorId:n.factorId});return r?{data:null,error:r}:await this._verify({factorId:n.factorId,challengeId:s.id,code:n.code})}async _listFactors(){const{data:{user:n},error:s}=await this.getUser();if(s)return{data:null,error:s};const r=(n==null?void 0:n.factors)||[],a=r.filter(o=>o.factor_type==="totp"&&o.status==="verified"),i=r.filter(o=>o.factor_type==="phone"&&o.status==="verified");return{data:{all:r,totp:a,phone:i},error:null}}async _getAuthenticatorAssuranceLevel(){return this._acquireLock(-1,async()=>await this._useSession(async n=>{var s,r;const{data:{session:a},error:i}=n;if(i)return{data:null,error:i};if(!a)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const o=this._decodeJWT(a.access_token);let l=null;o.aal&&(l=o.aal);let c=l;((r=(s=a.user.factors)===null||s===void 0?void 0:s.filter(p=>p.status==="verified"))!==null&&r!==void 0?r:[]).length>0&&(c="aal2");const h=o.amr||[];return{data:{currentLevel:l,nextLevel:c,currentAuthenticationMethods:h},error:null}}))}}Of.nextInstanceID=0;const zK=Of;class UK extends zK{constructor(n){super(n)}}var qK=function(t,n,s,r){function a(i){return i instanceof s?i:new s(function(o){o(i)})}
559return new(s||(s=Promise))(function(i,o){function l(h){try{d(r.next(h))}catch(p){o(p)}}function c(h){try{d(r.throw(h))}catch(p){o(p)}}function d(h){h.done?i(h.value):a(h.value).then(l,c)}d((r=r.apply(t,n||[])).next())})};class HK{constructor(n,s,r){var a,i,o;if(this.supabaseUrl=n,this.supabaseKey=s,!n)throw new Error("supabaseUrl is required.");if(!s)throw new Error("supabaseKey is required.");const l=sK(n);this.realtimeUrl=`${l}/realtime/v1`.replace(/^http/i,"ws"),this.authUrl=`${l}/auth/v1`,this.storageUrl=`${l}/storage/v1`,this.functionsUrl=`${l}/functions/v1`;const c=`sb-${new URL(this.authUrl).hostname.split(".")[0]}-auth-token`,d={db:QG,realtime:JG,auth:Object.assign(Object.assign({},YG),{storageKey:c}),global:KG},h=rK(r??{},d);this.storageKey=(a=h.auth.storageKey)!==null&&a!==void 0?a:"",this.headers=(i=h.global.headers)!==null&&i!==void 0?i:{},h.accessToken?(this.accessToken=h.accessToken,this.auth=new Proxy({},{get:(p,m)=>{throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(m)} is not possible`)}})):this.auth=this._initSupabaseAuthClient((o=h.auth)!==null&&o!==void 0?o:{},this.headers,h.global.fetch),this.fetch=tK(s,this._getAccessToken.bind(this),h.global.fetch),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers,accessToken:this._getAccessToken.bind(this)},h.realtime)),this.rest=new gG(`${l}/rest/v1`,{headers:this.headers,schema:h.db.schema,fetch:this.fetch}),h.accessToken||this._listenForAuthEvents()}get functions(){return new WW(this.functionsUrl,{headers:this.headers,customFetch:this.fetch})}get storage(){return new $G(this.storageUrl,this.headers,this.fetch)}from(n){return this.rest.from(n)}schema(n){return this.rest.schema(n)}rpc(n,s={},r={}){return this.rest.rpc(n,s,r)}channel(n,s={config:{}}){return this.realtime.channel(n,s)}getChannels(){return this.realtime.getChannels()}removeChannel(n){return this.realtime.removeChannel(n)}removeAllChannels(){return this.realtime.removeAllChannels()}_getAccessToken(){var n,s;return qK(this,void 0,void 0,function*(){if(this.accessToken)return yield this.accessToken();const{data:r}=yield this.auth.getSession();return(s=(n=r.session)===null||n===void 0?void 0:n.access_token)!==null&&s!==void 0?s:null})}_initSupabaseAuthClient({autoRefreshToken:n,persistSession:s,detectSessionInUrl:r,storage:a,storageKey:i,flowType:o,lock:l,debug:c},d,h){const p={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new UK({url:this.authUrl,headers:Object.assign(Object.assign({},p),d),storageKey:i,autoRefreshToken:n,persistSession:s,detectSessionInUrl:r,storage:a,flowType:o,lock:l,debug:c,fetch:h,hasCustomAuthorizationHeader:"Authorization"in this.headers})}_initRealtimeClient(n){return new TG(this.realtimeUrl,Object.assign(Object.assign({},n),{params:Object.assign({apikey:this.supabaseKey},n==null?void 0:n.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((s,r)=>{this._handleTokenChanged(s,"CLIENT",r==null?void 0:r.access_token)})}_handleTokenChanged(n,s,r){(n==="TOKEN_REFRESHED"||n==="SIGNED_IN")&&this.changedAccessToken!==r?this.changedAccessToken=r:n==="SIGNED_OUT"&&(this.realtime.setAuth(),s=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}}const $K=(t,n,s)=>new HK(t,n,s),WK="https://fnlfrdinxtwkhzbmyawv.supabase.co",GK="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImZubGZyZGlueHR3a2h6Ym15YXd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3Mzc3OTE1MDgsImV4cCI6MjA1MzM2NzUwOH0.tm49bNkTr2x0Q9esdnfcv2y-gpylp18b2w2GC0oEm7w",Ol=$K(WK,GK),NA=()=>Ol.auth.oauth,KK="/.lovable/oauth/signin",QK=()=>{var d;const[t]=o_(),n=t.get("authorization_id")??"",[s,r]=S.useState(null),[a,i]=S.useState(null),[o,l]=S.useState(!1);S.useEffect(()=>{let h=!0;return(async()=>{if(!n){i("Missing authorization_id in the request URL.");return}const{data:p}=await Ol.auth.getSession();if(!p.session){const w=window.location.pathname+window.location.search;window.location.href=`${KK}?next=${encodeURIComponent(w)}`;return}const m=NA();if(!m){i("The OAuth 2.1 authorization server is not enabled on this Supabase project yet.");return}const{data:u,error:y}
559=await m.getAuthorizationDetails(n);if(!h)return;if(y){i(y.message);return}const g=(u==null?void 0:u.redirect_url)??(u==null?void 0:u.redirect_to);if(g&&!(u!=null&&u.client)){window.location.href=g;return}r(u)})(),()=>{h=!1}},[n]);const c=async h=>{const p=NA();if(!p)return;l(!0);const{data:m,error:u}=h?await p.approveAuthorization(n):await p.denyAuthorization(n);if(u){l(!1),i(u.message);return}const y=(m==null?void 0:m.redirect_url)??(m==null?void 0:m.redirect_to);if(!y){l(!1),i("No redirect was returned by the authorization server.");return}window.location.href=y};return e.jsx("main",{className:"min-h-screen flex items-center justify-center bg-background px-4 py-16",children:e.jsxs("div",{className:"w-full max-w-md rounded-lg border border-border bg-card p-8 shadow-sm",children:[e.jsx("h1",{className:"text-2xl font-bold text-foreground mb-2",children:"Connect an app"}),a&&e.jsx("div",{className:"mt-4 rounded-md border border-destructive/40 bg-destructive/10 p-4",children:e.jsxs("p",{className:"text-sm text-destructive",children:["Could not load this authorization request: ",a]})}),!a&&!s&&e.jsx("p",{className:"text-sm text-muted-foreground mt-4",children:"Loading authorization requestâ¦"}),!a&&s&&e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-sm text-muted-foreground mt-4",children:[e.jsx("span",{className:"font-medium text-foreground",children:((d=s.client)==null?void 0:d.name)??"An MCP client"})," ","is asking to use the DeepSeek Fan Hub MCP server as you. It will be able to call the server's read-only tools â listing blog posts and reading public site metadata."]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-3",children:"You can revoke this access at any time. This site is an independent fan site and is not affiliated with DeepSeek.com."}),e.jsxs("div",{className:"mt-6 flex gap-3",children:[e.jsx("button",{type:"button",disabled:o,onClick:()=>c(!0),className:"flex-1 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:opacity-90 disabled:opacity-50",children:"Approve"}),e.jsx("button",{type:"button",disabled:o,onClick:()=>c(!1),className:"flex-1 rounded-md border border-border px-4 py-2 text-sm font-medium text-foreground hover:bg-muted disabled:opacity-50",children:"Deny"})]})]})]})})},YK=t=>!t||!t.startsWith("/")||t.startsWith("//")?"/":t,JK=()=>{const[t]=o_(),n=YK(t.get("next")),[s,r]=S.useState(""),[a,i]=S.useState(!1),[o,l]=S.useState(!1),[c,d]=S.useState(null);S.useEffect(()=>{Ol.auth.getSession().then(({data:p})=>{p.session&&(window.location.href=n)})},[n]);const h=async p=>{p.preventDefault(),l(!0),d(null);const{error:m}=await Ol.auth.signInWithOtp({email:s,options:{emailRedirectTo:`${window.location.origin}${n}`}});if(l(!1),m){d(m.message);return}i(!0)};return e.jsx("main",{className:"min-h-screen flex items-center justify-center bg-background px-4 py-16",children:e.jsxs("div",{className:"w-full max-w-md rounded-lg border border-border bg-card p-8 shadow-sm",children:[e.jsx("h1",{className:"text-2xl font-bold text-foreground mb-2",children:"Sign in to continue"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"An app is trying to connect to the DeepSeek Fan Hub MCP server. Sign in so the connection is made as you."}),a?e.jsxs("p",{className:"mt-6 text-sm text-foreground",children:["Check ",e.jsx("span",{className:"font-medium",children:s})," for a sign-in link. Opening it brings you back here to approve the connection."]}):e.jsxs("form",{onSubmit:h,className:"mt-6 space-y-4",children:[e.jsx("label",{className:"block text-sm font-medium text-foreground",htmlFor:"mcp-email",children:"Email address"}),e.jsx("input",{id:"mcp-email",type:"email",required:!0,value:s,onChange:p=>r(p.target.value),className:"w-full rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground",placeholder:"[email protected]"}),e.jsx("button",{type:"submit",disabled:o,className:"w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:opacity-90 disabled:opacity-50",children:o?"Sendingâ¦":"Email me a sign-in link"}),c&&e.jsx("p",{className:"text-sm text-destructive",children:c})]})]})})},ie=S.forwardRef(({className:t,...n},s)=>e.jsx("div",{ref:s,className:Ht("rounded-lg border bg-card text-card-foreground shadow-sm",t),...n}));
559ie.displayName="Card";const Ot=S.forwardRef(({className:t,...n},s)=>e.jsx("div",{ref:s,className:Ht("flex flex-col space-y-1.5 p-6",t),...n}));Ot.displayName="CardHeader";const Ft=S.forwardRef(({className:t,...n},s)=>e.jsx("h3",{ref:s,className:Ht("text-2xl font-semibold leading-none tracking-tight",t),...n}));Ft.displayName="CardTitle";const bs=S.forwardRef(({className:t,...n},s)=>e.jsx("p",{ref:s,className:Ht("text-sm text-muted-foreground",t),...n}));bs.displayName="CardDescription";const me=S.forwardRef(({className:t,...n},s)=>e.jsx("div",{ref:s,className:Ht("p-6 pt-0",t),...n}));me.displayName="CardContent";const XK=S.forwardRef(({className:t,...n},s)=>e.jsx("div",{ref:s,className:Ht("flex items-center p-6 pt-0",t),...n}));XK.displayName="CardFooter";var hN="Collapsible",[ZK,kE]=nl(hN),[eQ,uN]=ZK(hN),NE=S.forwardRef((t,n)=>{const{__scopeCollapsible:s,open:r,defaultOpen:a,disabled:i,onOpenChange:o,...l}=t,[c=!1,d]=sl({prop:r,defaultProp:a,onChange:o});return e.jsx(eQ,{scope:s,disabled:i,contentId:Cl(),open:c,onOpenToggle:S.useCallback(()=>d(h=>!h),[d]),children:e.jsx(ln.div,{"data-state":mN(c),"data-disabled":i?"":void 0,...l,ref:n})})});NE.displayName=hN;var SE="CollapsibleTrigger",AE=S.forwardRef((t,n)=>{const{__scopeCollapsible:s,...r}=t,a=uN(SE,s);return e.jsx(ln.button,{type:"button","aria-controls":a.contentId,"aria-expanded":a.open||!1,"data-state":mN(a.open),"data-disabled":a.disabled?"":void 0,disabled:a.disabled,...r,ref:n,onClick:vt(t.onClick,a.onOpenToggle)})});AE.displayName=SE;var pN="CollapsibleContent",DE=S.forwardRef((t,n)=>{const{forceMount:s,...r}=t,a=uN(pN,t.__scopeCollapsible);return e.jsx(Yi,{present:s||a.open,children:({present:i})=>e.jsx(tQ,{...r,ref:n,present:i})})});DE.displayName=pN;var tQ=S.forwardRef((t,n)=>{const{__scopeCollapsible:s,present:r,children:a,...i}=t,o=uN(pN,s),[l,c]=S.useState(r),d=S.useRef(null),h=Zn(n,d),p=S.useRef(0),m=p.current,u=S.useRef(0),y=u.current,g=o.open||l,w=S.useRef(g),b=S.useRef();return S.useEffect(()=>{const j=requestAnimationFrame(()=>w.current=!1);return()=>cancelAnimationFrame(j)},[]),Ll(()=>{const j=d.current;if(j){b.current=b.current||{transitionDuration:j.style.transitionDuration,animationName:j.style.animationName},j.style.transitionDuration="0s",j.style.animationName="none";const N=j.getBoundingClientRect();p.current=N.height,u.current=N.width,w.current||(j.style.transitionDuration=b.current.transitionDuration,j.style.animationName=b.current.animationName),c(r)}},[o.open,r]),e.jsx(ln.div,{"data-state":mN(o.open),"data-disabled":o.disabled?"":void 0,id:o.contentId,hidden:!g,...i,ref:h,style:{"--radix-collapsible-content-height":m?`${m}px`:void 0,"--radix-collapsible-content-width":y?`${y}px`:void 0,...t.style},children:g&&a})});function mN(t){return t?"open":"closed"}var nQ=NE,sQ=AE,rQ=DE,Vl="Accordion",aQ=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[fN,iQ,oQ]=sg(Vl),[ub,Ile]=nl(Vl,[oQ,kE]),gN=kE(),IE=Ue.forwardRef((t,n)=>{const{type:s,...r}=t,a=r,i=r;return e.jsx(fN.Provider,{scope:t.__scopeAccordion,children:s==="multiple"?e.jsx(hQ,{...i,ref:n}):e.jsx(dQ,{...a,ref:n})})});IE.displayName=Vl;var[CE,lQ]=ub(Vl),[_E,cQ]=ub(Vl,{collapsible:!1}),dQ=Ue.forwardRef((t,n)=>{const{value:s,defaultValue:r,onValueChange:a=()=>{},collapsible:i=!1,...o}=t,[l,c]=sl({prop:s,defaultProp:r,onChange:a});return e.jsx(CE,{scope:t.__scopeAccordion,value:l?[l]:[],onItemOpen:c,onItemClose:Ue.useCallback(()=>i&&c(""),[i,c]),children:e.jsx(_E,{scope:t.__scopeAccordion,collapsible:i,children:e.jsx(TE,{...o,ref:n})})})}),hQ=Ue.forwardRef((t,n)=>{const{value:s,defaultValue:r,onValueChange:a=()=>{},...i}=t,[o=[],l]=sl({prop:s,defaultProp:r,onChange:a}),c=Ue.useCallback(h=>l((p=[])=>[...p,h]),[l]),d=Ue.useCallback(h=>l((p=[])=>p.filter(m=>m!==h)),[l]);return e.jsx(CE,{scope:t.__scopeAccordion,value:o,onItemOpen:c,onItemClose:d,children:e.jsx(_E,{scope:t.__scopeAccordion,collapsible:!0,children:e.jsx(TE,{...i,ref:n})})})}),[uQ,pb]=ub(Vl),TE=Ue.forwardRef((t,n)=>{const{__scopeAccordion:s,disabled:r,dir:a,orientation:i="vertical",...o}=t,l=Ue.useRef(null),c=Zn(l,n),d=iQ(s),p=lg(a)==="ltr",m=vt(t.onKeyDown,u=>{var O;if(!aQ.includes(u.key))return;const y=u.target,g=d().filter(L=>{var W;return!((W=L.ref.current)!=null&&W.disabled)}),w=g.findIndex(L=>L.ref.current===y),b=g.length;if(w===-1)return;u.preventDefault();let j=w;const N=0,A=b-1,E=()=>{j=w+1,j>A&&(j=N)},C=()=>{j=w-1,j<N&&(j=A)};switch(u.key){case"Home":j=N;break;case"End":j=A;break;case"ArrowRight":i==="horizontal"&&(p?E():C());break;case"ArrowDown":i==="vertical"&&E();break;case"ArrowLeft":i==="horizontal"&&(p?C():E());break;case"ArrowUp":i==="vertical"&&C();break}const F=j%b;(O=g[F].ref.current)==null||O.focus()});return e.jsx(uQ,{scope:s,disabled:r,direction:a,orientation:i,children:e.jsx(fN.Slot,{scope:s,children:e.jsx(ln.div,{...o,"data-orientation":i,ref:c,onKeyDown:r?void 0:m})})})}
559),o0="AccordionItem",[pQ,xN]=ub(o0),PE=Ue.forwardRef((t,n)=>{const{__scopeAccordion:s,value:r,...a}=t,i=pb(o0,s),o=lQ(o0,s),l=gN(s),c=Cl(),d=r&&o.value.includes(r)||!1,h=i.disabled||t.disabled;return e.jsx(pQ,{scope:s,open:d,disabled:h,triggerId:c,children:e.jsx(nQ,{"data-orientation":i.orientation,"data-state":FE(d),...l,...a,ref:n,disabled:h,open:d,onOpenChange:p=>{p?o.onItemOpen(r):o.onItemClose(r)}})})});PE.displayName=o0;var EE="AccordionHeader",LE=Ue.forwardRef((t,n)=>{const{__scopeAccordion:s,...r}=t,a=pb(Vl,s),i=xN(EE,s);return e.jsx(ln.h3,{"data-orientation":a.orientation,"data-state":FE(i.open),"data-disabled":i.disabled?"":void 0,...r,ref:n})});LE.displayName=EE;var E2="AccordionTrigger",ME=Ue.forwardRef((t,n)=>{const{__scopeAccordion:s,...r}=t,a=pb(Vl,s),i=xN(E2,s),o=cQ(E2,s),l=gN(s);return e.jsx(fN.ItemSlot,{scope:s,children:e.jsx(sQ,{"aria-disabled":i.open&&!o.collapsible||void 0,"data-orientation":a.orientation,id:i.triggerId,...l,...r,ref:n})})});ME.displayName=E2;var RE="AccordionContent",OE=Ue.forwardRef((t,n)=>{const{__scopeAccordion:s,...r}=t,a=pb(Vl,s),i=xN(RE,s),o=gN(s);return e.jsx(rQ,{role:"region","aria-labelledby":i.triggerId,"data-orientation":a.orientation,...o,...r,ref:n,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...t.style}})});OE.displayName=RE;function FE(t){return t?"open":"closed"}var mQ=IE,fQ=PE,gQ=LE,VE=ME,BE=OE;const Vs=mQ,ss=S.forwardRef(({className:t,...n},s)=>e.jsx(fQ,{ref:s,className:Ht("border-b",t),...n}));ss.displayName="AccordionItem";const rs=S.forwardRef(({className:t,children:n,...s},r)=>e.jsx(gQ,{className:"flex",children:e.jsxs(VE,{ref:r,className:Ht("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",t),...s,children:[n,e.jsx(Xm,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));rs.displayName=VE.displayName;const as=S.forwardRef(({className:t,children:n,...s},r)=>e.jsx(BE,{ref:r,forceMount:!0,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down data-[state=closed]:hidden",...s,children:e.jsx("div",{className:Ht("pb-4 pt-0",t),children:n})}));as.displayName=BE.displayName;const $t={lastVerified:"2026-09-18",source:"https://api-docs.deepseek.com/quick_start/pricing",currency:"USD",perTokens:1e6,models:{"v4-flash":{label:"DeepSeek-V4.1-Flash",apiName:"deepseek-flash",inputCacheMiss:.15,inputCacheHit:.003,output:.6,peak:{inputCacheMiss:.3,inputCacheHit:.006,output:1.2}},"v4-pro":{label:"DeepSeek-V4-Pro",apiName:"deepseek-v4-pro",inputCacheMiss:.66,inputCacheHit:.022,output:1.98,peak:{inputCacheMiss:1.32,inputCacheHit:.044,output:3.96}}},history:[{model:"v4-pro",effectiveUntil:"2026-05-31",note:"Previous V4-Pro standard rates. Superseded on 2026-05-31 by lower rates (originally introduced as a 75% promotional discount).",rates:{inputCacheMiss:1.74,inputCacheHit:.0145,output:3.48}},{model:"v4-pro",effectiveUntil:"2026-09-09",note:"Flat V4-Pro rates with no time tiers. Superseded when DeepSeek introduced peak / off-peak pricing alongside the V4.1-Flash GA release.",rates:{inputCacheMiss:.435,inputCacheHit:.003625,output:.87}},{model:"v4-flash",effectiveUntil:"2026-09-09",note:"Flat DeepSeek-V4-Flash rates with no time tiers. Superseded when DeepSeek introduced peak / off-peak pricing alongside the V4.1-Flash GA release.",rates:{inputCacheMiss:.14,inputCacheHit:.0028,output:.28}}],peakSurcharge:{announced:!0,applies:!0,windowUTC:"01:00â04:00 & 06:00â10:00, MonâFri",windowUTC8:"09:00â12:00 & 14:00â18:00, MonâFri",surchargePct:100,startsOn:"2026-09-09"}};function Al(t){const n=$t.models[t];return{inputCacheMiss:n.inputCacheMiss,inputCacheHit:n.inputCacheHit,output:n.output}}const{announced:xQ,applies:yQ}=$t.peakSurcharge,SA=yQ?"A peak-hour surcharge is now active: peak rates apply MondayâFriday 01:00â04:00 and 06:00â10:00 UTC, and off-peak rates are half of peak.":xQ?"A peak-hour surcharge (UTC+8) has been announced but is not active yet â the official rate c
559ard still shows one flat tier.":"No peak-hour surcharge is in effect; the official rate card shows one flat tier.",bQ=[{date:"2026-09-09",title:"DeepSeek-V4.1-Flash is generally available â and peak pricing goes live",summary:`552B-parameter MoE with a causal encoderâdecoder split and native image understanding, served as deepseek-flash. V4-Flash and V4-Flash-Vision-Exp are retired; V4-Pro requests route to V4.1-Flash from 14 September. ${SA}`,href:"/blog/deepseek-v41-flash-generally-available"},{date:"2026-07-31",title:"DeepSeek-V4-Flash official API in public beta",summary:"Same model string, same architecture, new post-training: Terminal Bench 2.1 82.7 and DeepSWE 54.4 beat V4-Pro-Preview. Native Responses API and Codex support. V4-Pro and the app are unchanged.",href:"/blog/deepseek-v4-flash-ga-agent-benchmarks"},{date:"2026-07-24",title:"Legacy API aliases retired â surcharge still not active",summary:`Legacy deepseek-chat and deepseek-reasoner aliases were retired; migrate to deepseek-v4-flash. ${SA}`,href:"/blog/deepseek-v4-ga-surge-pricing-migration"},{date:"2026-07-03",title:"Inside DSpark: semi-autoregressive drafters",summary:"DeepSeek's own speculative decoding stack ships hardware-aware schedulers and 2â3Ã token throughput on H800s.",href:"/blog/deepseek-dspark-inside"},{date:"2026-06-30",title:"DeepSeek raises $7.4B under a founder-locked LP vehicle",summary:"50 billion yuan round with 5-year lock-up. Structure keeps investors passive while Liang Wenfeng retains control.",href:"/blog/deepseek-raises-7-4-billion-bizarre-deal"}],vQ=()=>e.jsx("section",{className:"container mx-auto px-4 pb-20",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[e.jsx("div",{className:"w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center",children:e.jsx(Lt,{className:"h-5 w-5 text-primary"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold",children:"DeepSeek V4 Tracker"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Live changelog of model releases, pricing shifts and infrastructure changes."})]})]}),e.jsx("div",{className:"grid md:grid-cols-2 gap-4",children:bQ.map(t=>e.jsx(se,{to:t.href,className:"group",children:e.jsx(ie,{className:"h-full bg-white border-0 shadow-sm hover:shadow-lg transition-shadow",children:e.jsxs(me,{className:"p-5",children:[e.jsx("div",{className:"text-xs font-mono text-primary mb-2",children:new Date(t.date).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}),e.jsx("h3",{className:"font-semibold mb-2 group-hover:text-primary transition-colors",children:t.title}),e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:t.summary}),e.jsxs("span",{className:"text-sm text-primary inline-flex items-center gap-1",children:["Read update ",e.jsx(wn,{className:"h-3.5 w-3.5"})]})]})})},t.href))}),e.jsx("div",{className:"mt-6 text-center",children:e.jsx(se,{to:"/blog",className:"text-sm text-primary hover:underline",children:"View full changelog & news archive â"})})]})}),il=({date:t,reviewer:n="deepseek.ai editorial desk",className:s=""})=>{const r=new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"});return e.jsxs("div",{className:`inline-flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground ${s}`,children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(xo,{className:"h-3.5 w-3.5"}),"Last verified: ",e.jsx("strong",{className:"text-foreground",children:r})]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(h2,{className:"h-3.5 w-3.5 text-primary"}),"Reviewed by ",n]})]})};var wQ="Label",zE=S.forwardRef((t,n)=>e.jsx(ln.label,{...t,ref:n,onMouseDown:s=>{var a;s.target.closest("button, input, select, textarea")||((a=t.onMouseDown)==null||a.call(t,s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}}));zE.displayName=wQ;var UE=zE;const jQ=H0("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),po=S.forwardRef(({className:t,...n},s)=>e.jsx(UE,{ref:s,className:Ht(jQ(),t),...n}));po.displayName=UE.displayName;function qE(t,[n,s]){return Math.min(s,Math.max(n,t))}function HE(t){const n=S.useRef({value:t,previous:t});return S.useMemo(()=>(n.current.value!==t&&(n.current.previous=n.current.value,n.current.value=t),n.current.previous),[t])}var $E=["PageUp","PageDown"],WE=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],GE={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]}
559,Rp="Slider",[L2,kQ,NQ]=sg(Rp),[KE,Cle]=nl(Rp,[NQ]),[SQ,mb]=KE(Rp),QE=S.forwardRef((t,n)=>{const{name:s,min:r=0,max:a=100,step:i=1,orientation:o="horizontal",disabled:l=!1,minStepsBetweenThumbs:c=0,defaultValue:d=[r],value:h,onValueChange:p=()=>{},onValueCommit:m=()=>{},inverted:u=!1,form:y,...g}=t,w=S.useRef(new Set),b=S.useRef(0),N=o==="horizontal"?AQ:DQ,[A=[],E]=sl({prop:h,defaultProp:d,onChange:_=>{var K;(K=[...w.current][b.current])==null||K.focus(),p(_)}}),C=S.useRef(A);function F(_){const P=PQ(A,_);W(_,P)}function O(_){W(_,b.current)}function L(){const _=C.current[b.current];A[b.current]!==_&&m(A)}function W(_,P,{commit:K}={commit:!1}){const q=RQ(i),ae=OQ(Math.round((_-r)/i)*i+r,q),ce=qE(ae,[r,a]);E((de=[])=>{const H=_Q(de,ce,P);if(MQ(H,c*i)){b.current=H.indexOf(ce);const X=String(H)!==String(de);return X&&K&&m(H),X?H:de}else return de})}return e.jsx(SQ,{scope:t.__scopeSlider,name:s,disabled:l,min:r,max:a,valueIndexToChangeRef:b,thumbs:w.current,values:A,orientation:o,form:y,children:e.jsx(L2.Provider,{scope:t.__scopeSlider,children:e.jsx(L2.Slot,{scope:t.__scopeSlider,children:e.jsx(N,{"aria-disabled":l,"data-disabled":l?"":void 0,...g,ref:n,onPointerDown:vt(g.onPointerDown,()=>{l||(C.current=A)}),min:r,max:a,inverted:u,onSlideStart:l?void 0:F,onSlideMove:l?void 0:O,onSlideEnd:l?void 0:L,onHomeKeyDown:()=>!l&&W(r,0,{commit:!0}),onEndKeyDown:()=>!l&&W(a,A.length-1,{commit:!0}),onStepKeyDown:({event:_,direction:P})=>{if(!l){const ae=$E.includes(_.key)||_.shiftKey&&WE.includes(_.key)?10:1,ce=b.current,de=A[ce],H=i*ae*P;W(de+H,ce,{commit:!0})}}})})})})});QE.displayName=Rp;var[YE,JE]=KE(Rp,{startEdge:"left",endEdge:"right",size:"width",direction:1}),AQ=S.forwardRef((t,n)=>{const{min:s,max:r,dir:a,inverted:i,onSlideStart:o,onSlideMove:l,onSlideEnd:c,onStepKeyDown:d,...h}=t,[p,m]=S.useState(null),u=Zn(n,N=>m(N)),y=S.useRef(),g=lg(a),w=g==="ltr",b=w&&!i||!w&&i;function j(N){const A=y.current||p.getBoundingClientRect(),E=[0,A.width],F=yN(E,b?[s,r]:[r,s]);return y.current=A,F(N-A.left)}return e.jsx(YE,{scope:t.__scopeSlider,startEdge:b?"left":"right",endEdge:b?"right":"left",direction:b?1:-1,size:"width",children:e.jsx(XE,{dir:g,"data-orientation":"horizontal",...h,ref:u,style:{...h.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:N=>{const A=j(N.clientX);o==null||o(A)},onSlideMove:N=>{const A=j(N.clientX);l==null||l(A)},onSlideEnd:()=>{y.current=void 0,c==null||c()},onStepKeyDown:N=>{const E=GE[b?"from-left":"from-right"].includes(N.key);d==null||d({event:N,direction:E?-1:1})}})})}),DQ=S.forwardRef((t,n)=>{const{min:s,max:r,inverted:a,onSlideStart:i,onSlideMove:o,onSlideEnd:l,onStepKeyDown:c,...d}=t,h=S.useRef(null),p=Zn(n,h),m=S.useRef(),u=!a;function y(g){const w=m.current||h.current.getBoundingClientRect(),b=[0,w.height],N=yN(b,u?[r,s]:[s,r]);return m.current=w,N(g-w.top)}return e.jsx(YE,{scope:t.__scopeSlider,startEdge:u?"bottom":"top",endEdge:u?"top":"bottom",size:"height",direction:u?1:-1,children:e.jsx(XE,{"data-orientation":"vertical",...d,ref:p,style:{...d.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:g=>{const w=y(g.clientY);i==null||i(w)},onSlideMove:g=>{const w=y(g.clientY);o==null||o(w)},onSlideEnd:()=>{m.current=void 0,l==null||l()},onStepKeyDown:g=>{const b=GE[u?"from-bottom":"from-top"].includes(g.key);c==null||c({event:g,direction:b?-1:1})}})})}),XE=S.forwardRef((t,n)=>{const{__scopeSlider:s,onSlideStart:r,onSlideMove:a,onSlideEnd:i,onHomeKeyDown:o,onEndKeyDown:l,onStepKeyDown:c,...d}=t,h=mb(Rp,s);return e.jsx(ln.span,{...d,ref:n,onKeyDown:vt(t.onKeyDown,p=>{p.key==="Home"?(o(p),p.preventDefault()):p.key==="End"?(l(p),p.preventDefault()):$E.concat(WE).includes(p.key)&&(c(p),p.preventDefault())}),onPointerDown:vt(t.onPointerDown,p=>{const m=p.target;m.setPointerCapture(p.pointerId),p.preventDefault(),h.thumbs.has(m)?m.focus():r(p)}),onPointerMove:vt(t.onPointerMove,p=>{p.target.hasPointerCapture(p.pointerId)&&a(p)}),onPointerUp:vt(t.onPointerUp,p=>{const m=p.target;m.hasPointerCapture(p.pointerId)&&(m.releasePointerCapture(p.pointerId),i(p))})})}
559),ZE="SliderTrack",eL=S.forwardRef((t,n)=>{const{__scopeSlider:s,...r}=t,a=mb(ZE,s);return e.jsx(ln.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...r,ref:n})});eL.displayName=ZE;var M2="SliderRange",tL=S.forwardRef((t,n)=>{const{__scopeSlider:s,...r}=t,a=mb(M2,s),i=JE(M2,s),o=S.useRef(null),l=Zn(n,o),c=a.values.length,d=a.values.map(m=>sL(m,a.min,a.max)),h=c>1?Math.min(...d):0,p=100-Math.max(...d);return e.jsx(ln.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...r,ref:l,style:{...t.style,[i.startEdge]:h+"%",[i.endEdge]:p+"%"}})});tL.displayName=M2;var R2="SliderThumb",nL=S.forwardRef((t,n)=>{const s=kQ(t.__scopeSlider),[r,a]=S.useState(null),i=Zn(n,l=>a(l)),o=S.useMemo(()=>r?s().findIndex(l=>l.ref.current===r):-1,[s,r]);return e.jsx(IQ,{...t,ref:i,index:o})}),IQ=S.forwardRef((t,n)=>{const{__scopeSlider:s,index:r,name:a,...i}=t,o=mb(R2,s),l=JE(R2,s),[c,d]=S.useState(null),h=Zn(n,j=>d(j)),p=c?o.form||!!c.closest("form"):!0,m=W1(c),u=o.values[r],y=u===void 0?0:sL(u,o.min,o.max),g=TQ(r,o.values.length),w=m==null?void 0:m[l.size],b=w?EQ(w,y,l.direction):0;return S.useEffect(()=>{if(c)return o.thumbs.add(c),()=>{o.thumbs.delete(c)}},[c,o.thumbs]),e.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[l.startEdge]:`calc(${y}% + ${b}px)`},children:[e.jsx(L2.ItemSlot,{scope:t.__scopeSlider,children:e.jsx(ln.span,{role:"slider","aria-label":t["aria-label"]||g,"aria-valuemin":o.min,"aria-valuenow":u,"aria-valuemax":o.max,"aria-orientation":o.orientation,"data-orientation":o.orientation,"data-disabled":o.disabled?"":void 0,tabIndex:o.disabled?void 0:0,...i,ref:h,style:u===void 0?{display:"none"}:t.style,onFocus:vt(t.onFocus,()=>{o.valueIndexToChangeRef.current=r})})}),p&&e.jsx(CQ,{name:a??(o.name?o.name+(o.values.length>1?"[]":""):void 0),form:o.form,value:u},r)]})});nL.displayName=R2;var CQ=t=>{const{value:n,...s}=t,r=S.useRef(null),a=HE(n);return S.useEffect(()=>{const i=r.current,o=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(o,"value").set;if(a!==n&&c){const d=new Event("input",{bubbles:!0});c.call(i,n),i.dispatchEvent(d)}},[a,n]),e.jsx("input",{style:{display:"none"},...s,ref:r,defaultValue:n})};function _Q(t=[],n,s){const r=[...t];return r[s]=n,r.sort((a,i)=>a-i)}function sL(t,n,s){const i=100/(s-n)*(t-n);return qE(i,[0,100])}function TQ(t,n){return n>2?`Value ${t+1} of ${n}`:n===2?["Minimum","Maximum"][t]:void 0}function PQ(t,n){if(t.length===1)return 0;const s=t.map(a=>Math.abs(a-n)),r=Math.min(...s);return s.indexOf(r)}function EQ(t,n,s){const r=t/2,i=yN([0,50],[0,r]);return(r-i(n)*s)*s}function LQ(t){return t.slice(0,-1).map((n,s)=>t[s+1]-n)}function MQ(t,n){if(n>0){const s=LQ(t);return Math.min(...s)>=n}return!0}function yN(t,n){return s=>{if(t[0]===t[1]||n[0]===n[1])return n[0];const r=(n[1]-n[0])/(t[1]-t[0]);return n[0]+r*(s-t[0])}}function RQ(t){return(String(t).split(".")[1]||"").length}function OQ(t,n){const s=Math.pow(10,n);return Math.round(t*s)/s}var rL=QE,FQ=eL,VQ=tL,BQ=nL;const Rc=S.forwardRef(({className:t,...n},s)=>e.jsxs(rL,{ref:s,className:Ht("relative flex w-full touch-none select-none items-center",t),...n,children:[e.jsx(FQ,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary",children:e.jsx(VQ,{className:"absolute h-full bg-primary"})}),e.jsx(BQ,{className:"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"})]}));Rc.displayName=rL.displayName;const la={lastVerified:"2026-07-25",currency:"USD",perTokens:1e6,models:{"gpt-5.6-sol":{label:"GPT-5.6 Sol",vendor:"OpenAI",input:5,cachedInput:.5,output:30,note:null,longContext:{input:10,cachedInput:1,output:45},source:"https://openai.com/api/pricing/"},"gpt-5.6-terra":{label:"GPT-5.6 Terra",vendor:"OpenAI",input:2.5,cachedInput:.25,output:15,note:null,longContext:{input:5,cachedInput:.5,output:22.5},source:"https://openai.com/api/pricing/"},"gpt-5.6-luna":{label:"GPT-5.6 Luna",vendor:"OpenAI",input:1,cachedInput:.1,output:6,note:null,longContext:{input:2,cachedInput:.2,output:9},source:"https://openai.com/api/pricing/"},"gpt-5.5":{label:"GPT-5.5",vendor:"OpenAI",input:5,cachedInput:.5,output:30,note:null,source:"https://openai.com/api/pricing/"}
559,"gpt-5.4":{label:"GPT-5.4",vendor:"OpenAI",input:2.5,cachedInput:.25,output:15,note:"Rates apply under 270K context.",source:"https://openai.com/api/pricing/"},"gpt-5.4-mini":{label:"GPT-5.4 mini",vendor:"OpenAI",input:.75,cachedInput:.075,output:4.5,note:null,source:"https://openai.com/api/pricing/"},"gpt-5.4-nano":{label:"GPT-5.4 nano",vendor:"OpenAI",input:.2,cachedInput:.02,output:1.25,note:null,source:"https://openai.com/api/pricing/"},"claude-haiku-4.5":{label:"Claude Haiku 4.5",vendor:"Anthropic",input:1,cachedInput:.1,output:5,note:null,source:"https://www.anthropic.com/pricing"},"claude-sonnet-5":{label:"Claude Sonnet 5",vendor:"Anthropic",input:2,cachedInput:.2,output:10,note:null,priceChange:{effective:"2026-09-01",input:3,cacheRead:.3,output:15},source:"https://www.anthropic.com/pricing"},"claude-opus-5":{label:"Claude Opus 5",vendor:"Anthropic",input:5,cachedInput:.5,output:25,note:null,source:"https://www.anthropic.com/pricing"},"claude-fable-5":{label:"Claude Fable 5",vendor:"Anthropic",input:10,cachedInput:1,output:50,note:null,source:"https://www.anthropic.com/pricing"},"claude-opus-4.8":{label:"Claude Opus 4.8",vendor:"Anthropic",input:5,cachedInput:2.5,output:25,note:null,source:"https://www.anthropic.com/pricing"},"gemini-3.1-pro":{label:"Gemini 3.1 Pro",vendor:"Google",input:2,cachedInput:null,output:12,note:"Prompts â¤200K tokens. Above 200K: $4.00 input / $18.00 output.",longContext:{threshold:2e5,input:4,output:18},source:"https://ai.google.dev/pricing"}}},aL=["gpt-5.5","gpt-5.4","claude-opus-4.8","gemini-3.1-pro"],AA={lastVerified:"2026-07-25",currency:"USD",footnote:"US prices as of 25 July 2026; OpenAI localizes pricing in some markets.",plans:[{name:"Free",price:"$0",notes:"Limited GPT-5.5 Instant, limited messages/uploads/image generation"},{name:"Go",price:"$8/mo",notes:"10à more messages, uploads and image creation than Free; longer memory. OpenAI notes pricing is localized in some markets"},{name:"Plus",price:"$20/mo",notes:"GPT-5.6 reasoning models, projects, scheduled tasks, custom GPTs"},{name:"Pro",price:"$100/mo or $200/mo",notes:"Two separate tiers â the $200 tier runs GPT-5.5 Pro with 20à Plus limits"}]};function Ar(t,n){return(t/n).toFixed(1)+"Ã"}function O2(t,n){return Math.round((1-n/t)*100)+"%"}function gn(t){const n=t.toFixed(2);return Number(n)===t?`$${n}`:`$${t}`}const zQ={lastVerified:"2026-07-25",currency:"USD",plans:[{name:"Free",price:"$0"},{name:"Pro",price:"$20/mo, or $17/mo billed annually ($200 up front)"},{name:"Max",price:"from $100/mo â 5à or 20à Pro usage, higher output limits"},{name:"Team",price:"$20/seat/mo annually, $25 monthly; premium seats $100/$125"},{name:"Enterprise",price:"$20/seat plus usage"}]},iu=[{id:"chat",label:"Chat assistant",hint:"Short prompts, short answers, 50k calls/month",inputTokens:900,outputTokens:350,requests:5e4,cacheHit:40},{id:"rag",label:"RAG / document Q&A",hint:"Long retrieved context, short answers",inputTokens:12e3,outputTokens:600,requests:2e4,cacheHit:60},{id:"coding",label:"Coding agent",hint:"Large files in, long diffs out",inputTokens:2e4,outputTokens:4e3,requests:6e3,cacheHit:50},{id:"batch",label:"Bulk classification",hint:"Millions of tiny calls",inputTokens:400,outputTokens:60,requests:5e5,cacheHit:20}],UQ=["v4-flash","v4-pro"],qQ=t=>t<1?`$${t.toFixed(3)}`:`$${t.toLocaleString("en-US",{maximumFractionDigits:0})}`,DA=t=>t>=1e3?`${(t/1e3).toLocaleString("en-US",{maximumFractionDigits:0})}k`:String(t);function HQ(){var u;const[t,n]=S.useState("chat"),[s,r]=S.useState(iu[0].inputTokens),[a,i]=S.useState(iu[0].outputTokens),[o,l]=S.useState(iu[0].requests),[c,d]=S.useState(iu[0].cacheHit),h=y=>{const g=iu.find(w=>w.id===y);g&&(n(y),r(g.inputTokens),i(g.outputTokens),l(g.requests),d(g.cacheHit))},p=S.useMemo(()=>{const y=$t.perTokens,g=c/100,w=s*o/y,b=a*o/y,j=UQ.map(A=>{const E=Al(A),C=g*E.inputCacheHit+(1-g)*E.inputCacheMiss;return{key:A,label:$t.models[A].label,vendor:"DeepSeek",inputRate:E.inputCacheMiss,outputRate:E.output,monthly:w*C+b*E.output,source:$t.source,isDeepSeek:!0}}),N=aL.map(A=>{const E=la.models[A],C="cachedInput"in E&&E.cachedInput!=null?E.cachedInput:E.input,F=g*C+(1-g)*E.input;return{key:A,label:E.label,vendor:E.vendor,inputRate:E.input,outputRate:E.output,monthly:w*F+b*E.output,source:E.source,isDeepSeek:!1}});return[...j,...N].sort((A,E)=>A.monthly-E.monthly)},[s,a,o,c]),m=((u=p[0])==null?void 0:u.monthly)??0;return e.jsxs(ie,{className:"border-2 border-primary/20",children:[e.jsxs(Ot,{children:[e.jsxs(Ft,{className:"flex items-center gap-2 text-2xl",children:[e.jsx(Tf,{className:"h-6 w-6 text-primary"}),"DeepSeek vs GPT, Claude and Gemini: monthly cost comparator"]}),e.jsxs(bs,{children:["Pick a workload, then see what the same volume costs on each provider's published API rates. DeepSeek rates verified ",$t.lastVerified,"; competitor rates verified"," ",la.lastVerified,". Every row links to the provider's own price page."]})]}),e.jsxs(me,{className:"space-y-8",children:[e.jsx("div",{className:"flex flex-wrap gap-2",children:iu.map(y=>e.jsx(Ke,{type:"button",variant:t===y.id?"default":"outline",size:"sm",onClick:()=>h(y.id),title:y.hint,children:y.label},y.id))}),e.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(po,{htmlFor:"cc-input",children:["Input tokens per
559call: ",DA(s)]}),e.jsx(Rc,{id:"cc-input","aria-label":"Input tokens per call",min:100,max:64e3,step:100,value:[s],onValueChange:([y])=>r(y)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(po,{htmlFor:"cc-output",children:["Output tokens per call: ",DA(a)]}),e.jsx(Rc,{id:"cc-output","aria-label":"Output tokens per call",min:50,max:16e3,step:50,value:[a],onValueChange:([y])=>i(y)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(po,{htmlFor:"cc-requests",children:["Calls per month: ",o.toLocaleString("en-US")]}),e.jsx(Rc,{id:"cc-requests","aria-label":"Calls per month",min:1e3,max:1e6,step:1e3,value:[o],onValueChange:([y])=>l(y)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(po,{htmlFor:"cc-cache",children:["Prompt cache hit rate: ",c,"%"]}),e.jsx(Rc,{id:"cc-cache","aria-label":"Prompt cache hit rate",min:0,max:90,step:5,value:[c],onValueChange:([y])=>d(y)})]})]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("caption",{className:"sr-only",children:"Estimated monthly API cost for the selected workload, per model"}),e.jsx("thead",{children:e.jsxs("tr",{className:"border-b text-left",children:[e.jsx("th",{scope:"col",className:"py-2 pr-4 font-semibold",children:"Model"}),e.jsx("th",{scope:"col",className:"py-2 pr-4 font-semibold",children:"Input / 1M"}),e.jsx("th",{scope:"col",className:"py-2 pr-4 font-semibold",children:"Output / 1M"}),e.jsx("th",{scope:"col",className:"py-2 pr-4 font-semibold",children:"Monthly cost"}),e.jsx("th",{scope:"col",className:"py-2 pr-4 font-semibold",children:"vs cheapest"}),e.jsx("th",{scope:"col",className:"py-2 font-semibold",children:"Rate card"})]})}),e.jsx("tbody",{children:p.map(y=>e.jsxs("tr",{className:`border-b last:border-0 ${y.isDeepSeek?"bg-primary/5 font-medium":""}`,children:[e.jsxs("td",{className:"py-2 pr-4",children:[y.label,e.jsx("span",{className:"ml-2 text-xs text-muted-foreground",children:y.vendor})]}),e.jsx("td",{className:"py-2 pr-4",children:gn(y.inputRate)}),e.jsx("td",{className:"py-2 pr-4",children:gn(y.outputRate)}),e.jsx("td",{className:"py-2 pr-4",children:qQ(y.monthly)}),e.jsx("td",{className:"py-2 pr-4",children:m>0&&y.monthly>m?`${(y.monthly/m).toFixed(1)}à more`:"cheapest"}),e.jsx("td",{className:"py-2",children:e.jsxs("a",{href:y.source,target:"_blank",rel:"noopener noreferrer",className:"text-primary inline-flex items-center gap-1 hover:underline",children:["source ",e.jsx(Pn,{className:"h-3 w-3"})]})})]},y.key))})]})}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Method: monthly cost = (input tokens à calls à blended input rate) + (output tokens à calls à output rate). The blended input rate mixes each provider's cached and uncached input price at your cache hit rate; providers without a published cached-input rate are billed at full input price. Batch discounts, long-context surcharges above a provider's threshold, free tiers and enterprise deals are not included.",` DeepSeek rates shown are off-peak; peak hours (${$t.peakSurcharge.windowUTC} UTC) are billed at double.`]})]})]})}const Wv="DeepSeek AI: Chat, Models & Independent Guides",Gv="What DeepSeek is, how to use the official chat, and independent guides to the V4 models, API pricing and login â with a cross-provider cost comparator. Reviewed 9 September 2026.",$Q=[{name:$t.models["v4-flash"].label,role:"Fast everyday model. Text plus an experimental vision variant.",rate:Al("v4-flash"),href:"/deepseek-v4-flash-review"},{name:$t.models["v4-pro"].label,role:"Flagship reasoning and coding model, for harder multi-step work.",rate:Al("v4-pro"),href:"/deepseek-v4"}],WQ=()=>{const t=[{question:"Is this the official DeepSeek website?",answer:"No. This is an independent guide and community resource. We are not affiliated with, sponsored by, or endorsed by Hangzhou DeepSeek Artificial Intelligence Co., Ltd. The official site is deepseek.com and the official chat is chat.deepseek.com."},{question:"What is DeepSeek AI?",answer:"DeepSeek AI is a Chinese AI research company that builds large language models. Its current main model is DeepSeek-V4.1-Flash (API name deepseek-flash), generally available since 9 September 2026, with native image understanding built in. DeepSeek-V4-Pro is being phased out: since 14 September 2026 its API requests route to V4.1-Flash at V4.1 rates unless a customer asks to stay on V4-Pro. The earlier V3.1 and R1 models are still widely used and open-weight, and the old deepseek-chat and deepseek-reasoner API endpoints were retired on 24 July 2026."},{question:"How do I use DeepSeek for free?",answer:"Sign in at chat.deepseek.com â the official chat has a free tier and runs the current V4 models. You can also try the free demo chat on this site, which runs DeepSeek V3.1 on community routes (falling back to R1 when a route is busy). Our demo is not the official service and does not run V4."},{question:"What does the DeepSeek API cost?",answer:`Per million tokens, V4-Flash is $${Al("v4-flash").inputCacheMiss} input (cache miss) and $${Al("v4-flash").output} output; V4-Pro is $${Al("v4-pro").inputCacheMiss} input and $${Al("v4-pro").output}
559 output. Rates last verified against DeepSeek's official rate card on ${$t.lastVerified}. Our pricing page keeps the full table, cache-hit rates and price history.`},{question:"How does DeepSeek compare to ChatGPT, Claude and Gemini?",answer:"On published API rates DeepSeek is far cheaper per million tokens than the GPT, Claude and Gemini flagships, and it is competitive on coding and reasoning benchmarks. The cost comparator on this page shows what the same monthly workload costs on each provider's own published rates, with a link to every rate card."},{question:"Can I run DeepSeek locally?",answer:"Yes. DeepSeek publishes open weights on GitHub and Hugging Face, and they run locally with Ollama, vLLM, llama.cpp or LM Studio. Distilled variants fit a single 24GB GPU; full models need multi-GPU hardware."},{question:"Is DeepSeek safe to use?",answer:"It depends on your data and your jurisdiction. The hosted service processes prompts on DeepSeek's infrastructure in China, several governments restrict it on official devices, and self-hosting the open weights avoids sending data anywhere. Our safety page walks through the specifics."}],n={"@context":"https://schema.org","@graph":[{"@type":"WebSite",name:"The Independent DeepSeek Guide",url:"https://deepseek.ai",description:"Independent guide to DeepSeek AI: what it is, how to use the official chat, the V4 models, API pricing and a cross-provider cost comparator. Not affiliated with DeepSeek."},{"@type":"Organization",name:"The Independent DeepSeek Guide",url:"https://deepseek.ai",logo:"https://deepseek.ai/og-image.png",description:"Independent editorial desk publishing source-checked guides, pricing and news about DeepSeek AI. Not affiliated with Hangzhou DeepSeek Artificial Intelligence Co., Ltd."},{"@type":"FAQPage",mainEntity:t.map(s=>({"@type":"Question",name:s.question,acceptedAnswer:{"@type":"Answer",text:s.answer}}))}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:Wv}),e.jsx("meta",{name:"description",content:Gv}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/"}),e.jsx("meta",{property:"og:title",content:Wv}),e.jsx("meta",{property:"og:description",content:Gv}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/"}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:Wv}),e.jsx("meta",{name:"twitter:description",content:Gv}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)})]}),e.jsxs("main",{className:"min-h-screen bg-gradient-to-b from-slate-50 via-white to-slate-50",children:[e.jsx("div",{className:"bg-primary/10 border-b border-primary/20",children:e.jsx("div",{className:"container mx-auto px-4 py-3 text-center",children:e.jsxs("p",{className:"text-sm text-muted-foreground flex items-center justify-center gap-2 flex-wrap",children:[e.jsx(xz,{className:"h-4 w-4 text-primary"}),e.jsx("span",{className:"font-medium",children:"This is an independent fan site."}),e.jsxs("a",{href:"https://www.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline inline-flex items-center gap-1",children:["Visit official DeepSeek.com ",e.jsx(Pn,{className:"h-3 w-3"})]})]})})}),e.jsx("section",{className:"container mx-auto px-4 pt-14 pb-12",children:e.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[e.jsxs("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-foreground mb-6",children:["DeepSeek AI: ",e.jsx("span",{className:"text-primary",children:"Chat, Models & Independent Guides"})]}),e.jsxs("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto mb-4",children:["DeepSeek is a Chinese AI lab whose large language models are unusually cheap to run and open-weight. Its current models are ",e.jsx("strong",{children:"DeepSeek-V4-Pro"})," for hard reasoning and coding and ",e.jsx("strong",{children:"DeepSeek-V4.1-Flash"})," for fast everyday use; the earlier V3.1 and R1 models are still open and popular but no longer the flagship line."]}),e.jsx("p",{className:"text-base text-muted-foreground max-w-3xl mx-auto mb-10",children:"This is an independent guide, not the official service. We keep the model list, API rates and login steps checked against DeepSeek's own documentation and print the review date on every page."}),e.jsxs("div",{className:"grid sm:grid-cols-2 gap-4 max-w-3xl mx-auto text-left",children:[e.jsx(ie,{className:"bg-white border-2 border-primary/30 shadow-md",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(fh,{className:"h-5 w-5 text-primary"}),e.jsx("h2",{className:"text-lg font-semibold",children:"Use the official DeepSeek chat"})]}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Free tier, runs the current V4 models, made by DeepSeek. You sign in on their site."}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(Ke,{asChild:!0,size:"sm",children:e.jsxs("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",children:["Open chat.deepseek.com ",e.jsx(Pn,{className:"ml-2 h-3.5 w-3.5"})]})}),e.jsx(Ke,{asChild:!0,size:"sm",variant:"outline",children:e.jsx(se,{to:"/login",children:"Login help"})})]})]})}),e.jsx(ie,{className:"bg-white border border-slate-200 shadow-md",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(Zc,{className:"h-5 w-5 text-primary"}),e.jsx("h2",{className:"text-lg font-semibold",children:"Try our free demo chat"})]}),e.jsxs("p",{className:"text-sm text-muted-foreground mb-4",children:["No signup, but it is ",e.jsx("strong",{children:"not"})," the official service: it runs DeepSeek V3.1 on free community routes (R1 fallback) and does not run V4."]}),e.jsx(Ke,{asChild:!0,size:"sm",variant:"outline",children:e.jsxs(se,{to:"/chat",children:["Open the demo chat ",e.jsx(wn,{className:"ml-2 h-3.5 w-3.5"})]})})]})})]}),e.jsx("div",{className:"mt-8 flex justify-center",children:e.jsx(il,{date:"2026-09-09"})})]})}),e.jsx(vQ,{}),e.jsx("section",{className:"container mx-auto px-4 py-16",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-3",children:"DeepSeek models and what they cost"}),e.jsxs("p",{className:"text-muted-foreground mb-8",children:["Rates are per million tokens, last verified against DeepSeek's official rate c
559ard on"," ",$t.lastVerified,"."," ",e.jsx("a",{href:$t.source,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Official pricing page"}),"."]}),e.jsx("div",{className:"overflow-x-auto bg-white rounded-lg shadow-md",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("caption",{className:"sr-only",children:"Current DeepSeek models and API rates per million tokens"}),e.jsx("thead",{children:e.jsxs("tr",{className:"border-b text-left",children:[e.jsx("th",{scope:"col",className:"p-4 font-semibold",children:"Model"}),e.jsx("th",{scope:"col",className:"p-4 font-semibold",children:"Best for"}),e.jsx("th",{scope:"col",className:"p-4 font-semibold",children:"Input (cache miss)"}),e.jsx("th",{scope:"col",className:"p-4 font-semibold",children:"Output"}),e.jsx("th",{scope:"col",className:"p-4 font-semibold",children:"Guide"})]})}),e.jsx("tbody",{children:$Q.map(s=>e.jsxs("tr",{className:"border-b last:border-0",children:[e.jsx("td",{className:"p-4 font-medium",children:s.name}),e.jsx("td",{className:"p-4 text-muted-foreground",children:s.role}),e.jsxs("td",{className:"p-4",children:["$",s.rate.inputCacheMiss]}),e.jsxs("td",{className:"p-4",children:["$",s.rate.output]}),e.jsx("td",{className:"p-4",children:e.jsxs(se,{to:s.href,className:"text-primary hover:underline inline-flex items-center gap-1",children:["Read ",e.jsx(wn,{className:"h-3.5 w-3.5"})]})})]},s.name))})]})}),e.jsxs("p",{className:"text-sm text-muted-foreground mt-4",children:["Cache hits cost a fraction of that. Full table, price history and the retired V3/R1 endpoints are on the ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline",children:"DeepSeek pricing page"}),"."]})]})}),e.jsx("section",{className:"container mx-auto px-4 pb-16",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(Tf,{className:"h-6 w-6 text-primary"}),e.jsx("h2",{className:"text-3xl font-bold text-foreground",children:"Compare what your workload really costs"})]}),e.jsx("p",{className:"text-muted-foreground mb-8 max-w-3xl",children:"Pick a workload and see the monthly bill on DeepSeek V4.1-Flash and V4-Pro next to the GPT, Claude and Gemini models people actually weigh them against â all from published rate cards, each row linking to the provider's own price page."}),e.jsx(HQ,{})]})}),e.jsx("section",{className:"container mx-auto px-4 pb-16",children:e.jsxs("div",{className:"max-w-6xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-3",children:"Independent DeepSeek guides"}),e.jsx("p",{className:"text-muted-foreground mb-8 max-w-3xl",children:"Source-checked walkthroughs for the questions people actually arrive with."}),e.jsxs("div",{className:"grid md:grid-cols-3 gap-6",children:[e.jsx(ie,{className:"bg-white border-0 shadow-md hover:shadow-xl transition-shadow",children:e.jsxs(me,{className:"pt-8 pb-8",children:[e.jsx("div",{className:"w-14 h-14 bg-primary/10 rounded-2xl flex items-center justify-center mb-5",children:e.jsx(L1,{className:"h-7 w-7 text-primary"})}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"DeepSeek API guide"}),e.jsx("p",{className:"text-muted-foreground text-sm mb-4",children:"Keys, endpoints, model IDs, prompt c
559aching and code examples â including what changed when the old chat and reasoner endpoints were retired."}),e.jsxs(se,{to:"/deepseek-api",className:"text-primary hover:underline inline-flex items-center gap-1",children:["Read the API guide ",e.jsx(wn,{className:"h-4 w-4"})]})]})}),e.jsx(ie,{className:"bg-white border-0 shadow-md hover:shadow-xl transition-shadow",children:e.jsxs(me,{className:"pt-8 pb-8",children:[e.jsx("div",{className:"w-14 h-14 bg-primary/10 rounded-2xl flex items-center justify-center mb-5",children:e.jsx(F1,{className:"h-7 w-7 text-primary"})}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Run DeepSeek locally"}),e.jsx("p",{className:"text-muted-foreground text-sm mb-4",children:"Open weights, hardware you need, and step-by-step setup with Ollama, vLLM and llama.cpp."}),e.jsxs(se,{to:"/deepseek-github",className:"text-primary hover:underline inline-flex items-center gap-1",children:["Local deployment guide ",e.jsx(wn,{className:"h-4 w-4"})]})]})}),e.jsx(ie,{className:"bg-white border-0 shadow-md hover:shadow-xl transition-shadow",children:e.jsxs(me,{className:"pt-8 pb-8",children:[e.jsx("div",{className:"w-14 h-14 bg-primary/10 rounded-2xl flex items-center justify-center mb-5",children:e.jsx($r,{className:"h-7 w-7 text-primary"})}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Is DeepSeek safe?"}),e.jsx("p",{className:"text-muted-foreground text-sm mb-4",children:"Where your prompts go, which governments restrict it, and how self-hosting changes the answer."}),e.jsxs(se,{to:"/is-deepseek-safe",className:"text-primary hover:underline inline-flex items-center gap-1",children:["Privacy & safety ",e.jsx(wn,{className:"h-4 w-4"})]})]})})]}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mt-6",children:[e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"group",children:e.jsx(ie,{className:"bg-white border-0 shadow-md hover:shadow-xl transition-shadow h-full",children:e.jsxs(me,{className:"p-6 text-center",children:[e.jsx(Tf,{className:"h-8 w-8 text-primary mx-auto mb-3"}),e.jsx("h3",{className:"font-semibold text-sm",children:"DeepSeek vs ChatGPT"})]})})}),e.jsx(se,{to:"/blog",className:"group",children:e.jsx(ie,{className:"bg-white border-0 shadow-md hover:shadow-xl transition-shadow h-full",children:e.jsxs(me,{className:"p-6 text-center",children:[e.jsx($r,{className:"h-8 w-8 text-primary mx-auto mb-3"}),e.jsx("h3",{className:"font-semibold text-sm",children:"News & guides"})]})})}),e.jsx(se,{to:"/deepseek-paper",className:"group",children:e.jsx(ie,{className:"bg-white border-0 shadow-md hover:shadow-xl transition-shadow h-full",children:e.jsxs(me,{className:"p-6 text-center",children:[e.jsx(W0,{className:"h-8 w-8 text-primary mx-auto mb-3"}),e.jsx("h3",{className:"font-semibold text-sm",children:"Research papers"})]})})}),e.jsx(se,{to:"/pricing",className:"group",children:e.jsx(ie,{className:"bg-white border-0 shadow-md hover:shadow-xl transition-shadow h-full",children:e.jsxs(me,{className:"p-6 text-center",children:[e.jsx(uz,{className:"h-8 w-8 text-primary mx-auto mb-3"}),e.jsx("h3",{className:"font-semibold text-sm",children:"Pricing guide"})]})})})]})]})}),e.jsx("section",{className:"container mx-auto px-4 pb-16",children:e.jsxs("div",{className:"max-w-3xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center text-foreground mb-10",children:"DeepSeek: frequently asked questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"space-y-3",children:t.map((s,r)=>e.jsxs(ss,{value:`item-${r}`,className:"bg-white border border-slate-200 rounded-lg px-6",children:[e.jsx(rs,{className:"text-left font-semibold hover:no-underline",children:s.question}),e.jsx(as,{className:"text-muted-foreground",children:s.answer})]},r))})]})}),e.jsx("section",{className:"container mx-auto px-4 pb-20",children:e.jsx(ie,{className:"bg-white border border-slate-200 shadow-sm max-w-3xl mx-auto",children:e.jsxs(me,{className:"p-6 flex flex-col sm:flex-row items-start sm:items-center gap-4",children:[e.jsx("div",{className:"w-12 h-12 bg-primary/10 rounded-xl flex items-center justify-center shrink-0",children:e.jsx(Nz,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h2",{className:"text-lg font-semibold mb-1",children:"Prefer a sidebar in your browser?"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Our free Chrome extension puts an AI sidebar next to any page. Built by us, not by DeepSeek."})]}),e.jsx(Ke,{asChild:!0,variant:"outline",className:"shrink-0",children:e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",children:["Add to Chrome ",e.jsx(Pn,{className:"ml-2 h-4 w-4"})]})})]})})})]})]})};var bN="Dialog",[iL,_le]=nl(bN),[GQ,jo]=iL(bN),oL=t=>{const{__scopeDialog:n,children:s,open:r,defaultOpen:a,onOpenChange:i,modal:o=!0}=t,l=S.useRef(null),c=S.useRef(null),[d=!1,h]=sl({prop:r,defaultProp:a,onChange:i});return e.jsx(GQ,{scope:n,triggerRef:l,contentRef:c,contentId:Cl(),titleId:Cl(),descriptionId:Cl(),open:d,onOpenChange:h,onOpenToggle:S.useCallback(()=>h(p=>!p),[h]),modal:o,children:s})};oL.displayName=bN;
559var lL="DialogTrigger",KQ=S.forwardRef((t,n)=>{const{__scopeDialog:s,...r}=t,a=jo(lL,s),i=Zn(n,a.triggerRef);return e.jsx(ln.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":jN(a.open),...r,ref:i,onClick:vt(t.onClick,a.onOpenToggle)})});KQ.displayName=lL;var vN="DialogPortal",[QQ,cL]=iL(vN,{forceMount:void 0}),dL=t=>{const{__scopeDialog:n,forceMount:s,children:r,container:a}=t,i=jo(vN,n);return e.jsx(QQ,{scope:n,forceMount:s,children:S.Children.map(r,o=>e.jsx(Yi,{present:s||i.open,children:e.jsx(B0,{asChild:!0,container:a,children:o})}))})};dL.displayName=vN;var l0="DialogOverlay",hL=S.forwardRef((t,n)=>{const s=cL(l0,t.__scopeDialog),{forceMount:r=s.forceMount,...a}=t,i=jo(l0,t.__scopeDialog);return i.modal?e.jsx(Yi,{present:r||i.open,children:e.jsx(YQ,{...a,ref:n})}):null});hL.displayName=l0;var YQ=S.forwardRef((t,n)=>{const{__scopeDialog:s,...r}=t,a=jo(l0,s);return e.jsx(J1,{as:ph,allowPinchZoom:!0,shards:[a.contentRef],children:e.jsx(ln.div,{"data-state":jN(a.open),...r,ref:n,style:{pointerEvents:"auto",...r.style}})})}),yh="DialogContent",uL=S.forwardRef((t,n)=>{const s=cL(yh,t.__scopeDialog),{forceMount:r=s.forceMount,...a}=t,i=jo(yh,t.__scopeDialog);return e.jsx(Yi,{present:r||i.open,children:i.modal?e.jsx(JQ,{...a,ref:n}):e.jsx(XQ,{...a,ref:n})})});uL.displayName=yh;var JQ=S.forwardRef((t,n)=>{const s=jo(yh,t.__scopeDialog),r=S.useRef(null),a=Zn(n,s.contentRef,r);return S.useEffect(()=>{const i=r.current;if(i)return ZT(i)},[]),e.jsx(pL,{...t,ref:a,trapFocus:s.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:vt(t.onCloseAutoFocus,i=>{var o;i.preventDefault(),(o=s.triggerRef.current)==null||o.focus()}),onPointerDownOutside:vt(t.onPointerDownOutside,i=>{const o=i.detail.originalEvent,l=o.button===0&&o.ctrlKey===!0;(o.button===2||l)&&i.preventDefault()}),onFocusOutside:vt(t.onFocusOutside,i=>i.preventDefault())})}),XQ=S.forwardRef((t,n)=>{const s=jo(yh,t.__scopeDialog),r=S.useRef(!1),a=S.useRef(!1);return e.jsx(pL,{...t,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var o,l;(o=t.onCloseAutoFocus)==null||o.call(t,i),i.defaultPrevented||(r.current||(l=s.triggerRef.current)==null||l.focus(),i.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:i=>{var c,d;(c=t.onInteractOutside)==null||c.call(t,i),i.defaultPrevented||(r.current=!0,i.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const o=i.target;((d=s.triggerRef.current)==null?void 0:d.contains(o))&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&a.current&&i.preventDefault()}})}),pL=S.forwardRef((t,n)=>{const{__scopeDialog:s,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:i,...o}=t,l=jo(yh,s),c=S.useRef(null),d=Zn(n,c);return qT(),e.jsxs(e.Fragment,{children:[e.jsx(Y1,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:i,children:e.jsx(rg,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":jN(l.open),...o,ref:d,onDismiss:()=>l.onOpenChange(!1)})}),e.jsxs(e.Fragment,{children:[e.jsx(ZQ,{titleId:l.titleId}),e.jsx(tY,{contentRef:c,descriptionId:l.descriptionId})]})]})}),wN="DialogTitle",mL=S.forwardRef((t,n)=>{const{__scopeDialog:s,...r}=t,a=jo(wN,s);return e.jsx(ln.h2,{id:a.titleId,...r,ref:n})});mL.displayName=wN;var fL="DialogDescription",gL=S.forwardRef((t,n)=>{const{__scopeDialog:s,...r}=t,a=jo(fL,s);return e.jsx(ln.p,{id:a.descriptionId,...r,ref:n})});gL.displayName=fL;var xL="DialogClose",yL=S.forwardRef((t,n)=>{const{__scopeDialog:s,...r}=t,a=jo(xL,s);return e.jsx(ln.button,{type:"button",...r,ref:n,onClick:vt(t.onClick,()=>a.onOpenChange(!1))})});yL.displayName=xL;function jN(t){return t?"open":"closed"}var bL="DialogTitleWarning",[Tle,vL]=yB(bL,{contentName:yh,titleName:wN,docsSlug:"dialog"}),ZQ=({titleId:t})=>{const n=vL(bL),s=`\`${n.contentName}\` requires a \`${n.titleName}\` for the component to be accessible for screen reader users. 560 561If you want to hide the \`${n.titleName}\`, you can wrap it with our VisuallyHidden component. 562 563For more information, see https://radix-ui.com/primitives/docs/components/${n.docsSlug}`;return S.useEffect(()=>{t&&(document.getElementById(t)||console.error(s))},[s,t]),null},eY="DialogDescriptionWarning",tY=({contentRef:t,descriptionId:n})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${vL(eY).contentName}}.`;return S.useEffect(()=>{var i;const a=(i=t.current)==null?void 0:i.getAttribute("aria-describedby");n&&a&&(document.getElementById(n)||console.warn(r))},[r,t,n]),null},nY=oL,sY=dL,wL=hL,jL=uL,kL=mL,NL=gL,rY=yL;const aY=nY,iY=sY,SL=S.forwardRef(({className:t,...n},s)=>e.jsx(wL,{ref:s,className:Ht("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...n}));SL.displayName=wL.displayName;const AL=S.forwardRef(({className:t,children:n,...s},r)=>e.jsxs(iY,{children:[e.jsx(SL,{}),e.jsxs(jL,{ref:r,className:Ht("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rou
563nded-lg",t),...s,children:[n,e.jsxs(rY,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[e.jsx(gh,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));AL.displayName=jL.displayName;const DL=({className:t,...n})=>e.jsx("div",{className:Ht("flex flex-col space-y-1.5 text-center sm:text-left",t),...n});DL.displayName="DialogHeader";const IL=S.forwardRef(({className:t,...n},s)=>e.jsx(kL,{ref:s,className:Ht("text-lg font-semibold leading-none tracking-tight",t),...n}));IL.displayName=kL.displayName;const CL=S.forwardRef(({className:t,...n},s)=>e.jsx(NL,{ref:s,className:Ht("text-sm text-muted-foreground",t),...n}));CL.displayName=NL.displayName;const qu=S.forwardRef(({className:t,type:n,...s},r)=>e.jsx("input",{type:n,className:Ht("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:r,...s}));qu.displayName="Input";const fb="https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop";function ia(t,n={}){try{const s=window.gtag;typeof s=="function"&&s("event",t,{event_category:"engagement",...n})}catch{}}const oY=Object.freeze(Object.defineProperty({__proto__:null,EXTENSION_URL:fb,trackEvent:ia},Symbol.toStringTag,{value:"Module"}));function ar({isOpen:t,onClose:n}){const[s,r]=S.useState(""),[a,i]=S.useState(!1),[o,l]=S.useState(!1),{toast:c}=N_(),d=async p=>{if(p.preventDefault(),!s){c({title:"Error",description:"Please enter your email address",variant:"destructive"});return}i(!0);try{const{error:m}=await Ol.from("ai_agents_subscribers").insert({email:s});if(m)throw m;ia("email_signup",{list:"ai_agents_waitlist"}),l(!0),r("")}catch(m){console.error("Error submitting form:",m),c({title:"Error",description:"Failed to join waitlist. Please try again.",variant:"destructive"})}finally{i(!1)}},h=()=>{n(),l(!1)};return e.jsx(aY,{open:t,onOpenChange:h,children:e.jsxs(AL,{className:"sm:max-w-md",children:[e.jsxs(DL,{children:[e.jsx(IL,{className:`text-2xl font-bold text-center mb-4 ${o?"animate-fadeIn":""}`,children:o?"Welcome to the Waitlist!":"Join the AI Agents Waitlist"}),e.jsx(CL,{className:"text-center text-gray-600",children:o?"Thank you for joining our waitlist. We'll notify you when AI Agents launches!":"Enter your email address to join our waitlist and be notified when AI Agents launches."})]}),o?e.jsxs("div",{className:"flex flex-col items-center space-y-4 animate-[fadeIn_0.5s,bounceIn_0.7s]",children:[e.jsx("div",{className:"rounded-full bg-green-100 p-3 animate-bounce",children:e.jsx(Os,{className:"h-6 w-6 text-green-600"})}),e.jsx("a",{href:"https://landing.tixaeagents.ai/?aff=deepseek",target:"_blank",rel:"noopener noreferrer",className:"w-full",children:e.jsxs(Ke,{className:"w-full bg-[#9a00f7] hover:bg-[#9a00f7]/90 text-white animate-pulse shadow-[0_0_15px_rgba(154,0,247,0.5)] transition-shadow hover:shadow-[0_0_20px_rgba(154,0,247,0.8)]",children:["Try TIXAE Agents",e.jsx(wn,{className:"ml-2 h-5 w-5"})]})}),e.jsx(Ke,{onClick:h,variant:"outline",className:"w-full",children:"Close"})]}):e.jsxs("form",{onSubmit:d,className:"space-y-4",children:[e.jsx("div",{className:"space-y-2",children:e.jsx(qu,{type:"email",placeholder:"Enter your email address",value:s,onChange:p=>r(p.target.value),className:"w-full"})}),e.jsx(Ke,{type:"submit",className:"w-full bg-[#0066FF] hover:bg-[#0066FF]/90 text-white",disabled:a,children:a?"Joining...":"Join Waitlist"})]})]})})}const cn=()=>{const[t,n]=S.useState(!1);return e.jsxs("nav",{className:"flex flex-col sm:flex-row justify-center gap-4 mb-8 animate-fadeIn",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",onClick:()=>ia("extension_click",{location:"navigation_buttons"}),className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]}),e.jsxs("button",{onClick:()=>{ia("cta_click",{cta:"create_ai_agents",location:"navigation_buttons"}),n(!0)},className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]}),e.jsx(ar,{isOpen:t,onClose:()=>n(!1)})]})},Nn=()=>{const t=[{title:"DeepSeek V3.1: New AI Frontier",path:"/blog/deepseek-v31"},{title:"What is Deep Seek?",path:"/blog/what-is-deep-seek"},{title:"Deep Learning AI Explained",path:"/blog/what-is-deep-learning-ai"},{title:"Deep Seek R2 Challenges",path:"/blog/deepseek-r2-challenges"},{title:"Deep Seek R1 Advanced AI Model",path:"/deepseek-r1"},{title:"DeepSeek vs Stepfun: Reasoning vs Multimodal",path:"/deepseek-vs-stepfun"}],n=[{title:"Stanford AI Lab Research",url:"https://ai.stanford.edu/research/"},{title:"MIT Technology Review",url:"https://www.technologyreview.com/topic/artificial-intelligence/"},{title:"AI & ML Papers at arXiv",url:"https://arxiv.org/list/cs.AI/recent"},{title:"Google AI Research",url:"https://ai.google/research/"},{title:"IEEE Spectrum: AI Topics",url:"https://spectrum.ieee.org/topic/artificial-intelligence/"}];return e.jsxs("div",{className:"grid md:grid-cols-2 gap-8",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-4",children:"Explore Our Content"}),e.jsx("ul",{className:"space-y-3",children:t.map((s,r)=>e.jsx("li",{children:e.jsx(se,{to:s.path,className:"text-blue-600 hover:text-blue-800 hover:underline flex items-center",children:s.title})},r))})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-4",children:"Authoritative Resources"}),e.jsx("ul",{className:"space-y-3",children:n.map((s,r)=>e.jsx("li",{children:e.jsxs("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 hover:underline flex items-center",children:[s.title,e.jsx(Pn,{className:"h-4 w-4 ml-1"})]})},r))})]})]})},lY=()=>e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"About DeepSeek AI Fan Hub â Who We Are (2026)"}),e.jsx("meta",{name:"description",content:"Independent DeepSeek AI fan hub. Learn who runs the site, why we cover DeepSeek V4, R1 and the API, and how we stay unaffiliated with deepseek.com."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/about"}),e.jsx("meta",{property:"og:title",content:"About DeepSeek AI Fan Hub â Independent 2026 Community"}),e.jsx("meta",{property:"og:description",content:"Meet the independent team behind the DeepSeek AI fan hub: why we cover DeepSeek V4, R1 and the API, our editorial standards and how we stay unaffiliated from DeepSeek.com."}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/about"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
563),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"About DeepSeek AI Fan Hub â Independent 2026 Community"}),e.jsx("meta",{name:"twitter:description",content:"Independent fan hub covering DeepSeek V4, R1 and the API. Learn who we are, our standards and our non-affiliation with DeepSeek.com."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"WebSite",name:"DeepSeek.ai Fan Site",url:"https://deepseek.ai",description:"An independent fan site dedicated to sharing information about DeepSeek.com's AI technology and innovations."})})]}),e.jsx("div",{className:"min-h-screen pt-20 bg-gradient-to-br from-blue-50 to-white",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsx("h1",{className:"text-4xl font-bold text-deepseek-secondary mb-8",children:"About This DeepSeek Fan Site"}),e.jsx("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-4 mb-8",children:e.jsxs("p",{className:"text-amber-800 text-sm",children:[e.jsx("strong",{children:"Important:"})," This website is an independent fan site created by enthusiasts of DeepSeek.com. We are not affiliated with, sponsored by, or endorsed by Hangzhou DeepSeek Artificial Intelligence Co., Ltd. For official information, please visit ",e.jsx("a",{href:"https://www.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"DeepSeek.com"}),"."]})}),e.jsx(cn,{}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-12",children:[e.jsxs("div",{className:"space-y-6",children:[e.jsx("h2",{className:"text-2xl font-semibold text-deepseek-primary",children:"About DeepSeek.com"}),e.jsx("p",{className:"text-lg text-gray-600",children:"DeepSeek.com is developed by Hangzhou DeepSeek Artificial Intelligence Co., Ltd., a company dedicated to advancing artificial intelligence research and development. They create cutting-edge AI models and solutions that push the boundaries of what's possible in machine learning."}),e.jsx("p",{className:"text-lg text-gray-600",children:"DeepSeek is known for their innovative language models, including their flagship reasoning models and coding assistants. Their technology combines powerful neural architectures with efficient training methodologies to deliver state-of-the-art AI capabilities."}),e.jsx("h2",{className:"text-2xl font-semibold text-deepseek-primary pt-4",children:"Why We're Fans"}),e.jsx("p",{className:"text-lg text-gray-600",children:"We're enthusiastic about DeepSeek's commitment to advancing AI research and making powerful AI tools accessible. Their open approach to sharing research and developing practical AI solutions aligns with our belief in the democratization of AI technology."}),e.jsxs("p",{className:"text-lg text-gray-600",children:["From their breakthrough ",e.jsx(se,{to:"/deepseek-r1",className:"text-blue-600 hover:underline",children:"DeepSeek R1"})," reasoning model to their upcoming",e.jsx(se,{to:"/blog/deepseek-r2-challenges",className:"text-blue-600 hover:underline",children:" R2 release"}),", we're excited to share information about their latest innovations."]})]}),e.jsxs("div",{className:"space-y-6",children:[e.jsx("h2",{className:"text-2xl font-semibold text-deepseek-primary",children:"Our Mission as Fans"}),e.jsx("p",{className:"text-lg text-gray-600",children:"As enthusiasts of DeepSeek.com, our mission is to share information and insights about their groundbreaking AI technology. We aim to help others understand and appreciate the innovations coming from the DeepSeek team."}),e.jsx("p",{className:"text-lg text-gray-600",children:"We believe in the power of AI to transform industries and improve lives, and we're excited to showcase how DeepSeek is contributing to this transformation through their research and development efforts."}),e.jsx("h2",{className:"text-2xl font-semibold text-deepseek-primary pt-4",children:"What We Cover"}),e.jsxs("ul",{className:"space-y-4 text-lg text-gray-600",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"font-semibold mr-2",children:"Research Updates:"})," Latest developments in ",e.jsx(se,{to:"/blog/what-is-deep-learning-ai",className:"text-blue-600 hover:underline",children:"deep learning"})," and AI from DeepSeek"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"font-semibold mr-2",children:"Model Analysis:"})," In-depth looks at DeepSeek's AI models and their capabilities"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"font-semibold mr-2",children:"Industry Impact:"})," How DeepSeek's innovations are shaping the AI landscape"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"font-semibold mr-2",children:"Educational Content:"})," Helping others understand AI concepts and DeepSeek's contributions"]})]}),e.jsx("h2",{className:"text-2xl font-semibold text-deepseek-primary pt-6",children:"About Our Team"}),e.jsx("p",{className:"text-lg text-gray-600",children:"We are a group of AI enthusiasts, researchers, and developers who are passionate about sharing knowledge about DeepSeek's innovations. Our team includes individuals with backgrounds in machine learning, softw
563are development, and AI research."}),e.jsx("p",{className:"text-lg text-gray-600",children:"While we're not affiliated with DeepSeek.com, we're committed to providing accurate, informative content about their technology and its impact on the AI field."}),e.jsx("h2",{className:"text-2xl font-semibold text-deepseek-primary pt-6",children:"Disclaimer"}),e.jsxs("p",{className:"text-lg text-gray-600",children:["This website is created and maintained by independent fans and enthusiasts of DeepSeek.com. We provide information, resources, and updates about DeepSeek's innovations purely as admirers of their work. For official information, please visit ",e.jsx("a",{href:"https://www.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:"DeepSeek.com"}),"."]})]})]}),e.jsxs("div",{className:"mt-16",children:[e.jsx("h2",{className:"text-2xl font-semibold text-deepseek-primary mb-6",children:"Learn More"}),e.jsx("div",{className:"bg-white p-6 rounded-lg shadow-sm",children:e.jsx(Nn,{})})]})]})})]}),cY=[{slug:"deepseek-huawei-cluster-v4-vision-open-weights-2026-update",title:"DeepSeekâs $74B Pivot: 160k Huawei Chips & V4-Vision Open Weights",excerpt:"DeepSeek unveils a 160,000-chip Huawei cluster and releases DeepSeek-V4-Flash-Vision-Exp open weights, signaling a major move toward hardware independence and multimodal AI.",meta_description:"DeepSeek deploys 160,000 Huawei AI chips and releases DeepSeek-V4-Flash-Vision-Exp open weights. Learn about the new infrastructure and multimodal agent updates.",category:"AI Technology",content:`<h2>DeepSeekâs Sovereign Infrastructure: 160,000 Huawei Chips and the Open-Weight Revolution</h2> 564 565<p>The landscape of artificial intelligence is shifting from a battle of algorithms to a battle of infrastructure and accessibility. In the first week of September 2026, DeepSeek has signaled a massive strategic pivot that addresses both fronts. By combining a historic deployment of domestic hardware with the open-weight release of its most versatile multimodal model to date, DeepSeek is charting a course toward "AI Sovereignty" that bypasses traditional Western hardware dependencies.</p> 566 567<p>From the massive data centers rising in Inner Mongolia to the latest GitHub pushes for the DeepSeek Harness, the developer community is witnessing the maturation of an ecosystem designed for high-performance, low-cost intelligence. This article explores the three pillars of DeepSeekâs latest updates: the Huawei Ascend 950DT cluster, the <strong>DeepSeek-V4-Flash-Vision-Exp</strong> open-weight release, and the technical optimizations powering the next generation of AI agents.</p> 568 569<h2>160,000 Huawei Chips: Building the Fortress in Inner Mongolia</h2> 570 571<p>On September 4, 2026, reports from Bloomberg and ChainCatcher confirmed a development that has sent ripples through the semiconductor and AI industries. DeepSeek is currently deploying a staggering <strong>160,000 Huawei Ascend 950DT</strong> AI accelerators at a new massive-scale computing facility in Inner Mongolia. This isn't just a hardware upgrade; it is a declaration of independence.</p> 572 573<h3>The Shift to Domestic Inference</h3> 574<p>While DeepSeek has historically relied on NVIDIA H100 and H200 clusters for the computationally intensive "pre-training" phases of models like V4-Pro, the new Inner Mongolia cluster is strategically targeted at <strong>inference</strong>. By moving its massive API trafficâfueled by the growing V4 model familyâto Huawei hardware, DeepSeek is insulating itself from the volatility of U.S. export controls.</p> 575 576<p>The choice of the Ascend 950DT is significant. Designed to compete directly with mid-to-high-tier Western accelerators, these chips provide the necessary throughput for DeepSeekâs aggressive pricing models. By scaling to 160,000 units, DeepSeek is creating one of the largest unified AI clusters outside of North America, ensuring that its "Intelligence at Scale" mission remains unhindered by geopolitical supply chain constraints.</p> 577 578<h2>DeepSeek-V4-Flash-Vision-Exp: Open Weights for the Multimodal Era</h2> 579 580<p>Just days before the hardware news broke, DeepSeek delivered on a promise to the open-source community. On August 31, 2026, the company officially released the open weights for <strong>DeepSeek-V4-Flash-Vision-Exp</strong> via Hugging Face. This release, licensed under the permissive MIT license, represents a major milestone for developers who require local control over visual reasoning tasks.</p> 581 582<h3>Breaking Down the Architecture</h3> 583<p>DeepSeek-V4-Flash-Vision-Exp is not merely a "wrapper" for image recognition. It is a sophisticated extension of the V4-Flash architecture, integrating a high-efficiency vision encoder and a specialized aligner. According to the release documentation, the model maintains the blistering text performance of the standard V4-Flash while adding capabilities that rival closed-source giants.</p> 584 585<ul> 586 <li><strong>Image Capacity:</strong> The model supports images up to 384 tokens each, allowing for high-fidelity visual context without overwhelming the context window.</li> 587 <li><strong>Agentic Reasoning:</strong> It is specifically tuned for "vision-agent" tasks, such as navigating UI elements, interpreting complex diagrams, and performing spatial reasoning.</li> 588 <li><strong>Text Consistency:</strong> Unlike earlier multimodal attempts where adding vision degraded text logic, the V4-Flash-Vision-Exp retains the core reasoning capabilities of the V4-Flash base.</li> 589</ul> 590 591<p>For developers, the open-weight release means that the "gap" between low-cost text models and high-end multimodal agents like Claude 3.5 Sonnet or GPT-4o is finally closing. Organizations can now self-host a model capable of complex visual analysis without the data privacy concernsâor the costsâof proprietary APIs.</p> 592 593<h2>DeepSeek Harness v0.1.2: The Modular Future of Agents</h2> 594 595<p>DeepSeekâs software ecosystem is evolving just as fast as its hardware. On September 4, 2026, the company pushed <strong>version 0.1.2-rc.1 of DeepSeek Harness (dsh)</strong> to GitHub. This framework, which skyrocketed to over 95,000 stars in less than a month, is becoming the industry standard for building modular AI agents.</p> 596 597<h3>Whatâs New in the Release Candidate?</h3> 598<p>The v0.1.2 update focuses on two primary areas: <strong>plugin compatibility</strong> and <strong>multimodal integration</strong>. DeepSeek Harness operates on a "Everything is a Plugin" philosophy, allowing developers to swap out different c
598omponents of an agentic workflow.</p> 599 600<p>Key updates include: 601<ul> 602 <li><strong>Out-of-the-Box Vision Support:</strong> Native integration for the new V4-Flash-Vision model, enabling agents to "see" their environment (e.g., a web browser or a terminal) without custom coding.</li> 603 <li><strong>Enhanced Sandboxing:</strong> Improved security layers for executing code generated by the model, a critical requirement for autonomous agents.</li> 604 <li><strong>Tool Registry Updates:</strong> Streamlined methods for connecting the model to external databases and APIs, reducing the latency between "thought" and "action."</li> 605</ul> 606 607<h2>The Engine Room: DeepGEMM and FP8 Optimization</h2> 608 609<p>A recurring question for DeepSeek users is: <em>How can they afford to offer these prices?</em> Part of the answer lies in <strong>DeepGEMM</strong>, DeepSeek's proprietary GPU kernel library. On August 27, 2026, the company released significant updates to this library, further optimizing it for NVIDIA Hopper GPUs.</p> 610 611<p>DeepGEMM is a clean, efficient BLAS (Basic Linear Algebra Subprograms) library that uses Just-In-Time (JIT) compilation for FP8 matrix multiplication. In the world of Large Language Models (LLMs), matrix multiplication is the primary bottleneck. By squeezing every ounce of performance out of FP8 precision, DeepSeek reduces the power consumption and time required for each token generated. This technical efficiency is the direct catalyst for the new <strong>Peak/Off-Peak pricing model</strong>, as it allows DeepSeek to manage compute loads with surgical precision.</p> 612 613<h2>Economic Shifts: The Era of "Time-of-Use" Intelligence</h2> 614 615<p>Since the full transition on August 23, 2026, DeepSeekâs API has pioneered a new economic model for AI: <strong>Peak/Off-Peak Tiered Pricing</strong>. This model mirrors the electricity industry, encouraging users to shift heavy w
615orkloads to times of lower demand.</p> 616 617<p>Developers who schedule non-urgent batch tasks (like data synthesis or document summarization) during the off-peak window of <strong>16:30â00:30 UTC</strong> now receive a 50% discount. This isn't just a marketing gimmick; it is a sophisticated load-balancing strategy that ensures the 160,000-chip cluster in Inner Mongolia operates at maximum efficiency 24/7. It changes the ROI calculation for startups, making massive data-crunching tasks viable at a fraction of the cost offered by OpenAI or Anthropic.</p> 618 619<h2>Conclusion: The DeepSeek Convergence</h2> 620 621<p>The events of late August and early September 2026 represent a convergence of DeepSeek's long-term goals. By securing massive domestic hardware (Huawei), perfecting high-efficiency software (DeepGEMM), and empowering the open-source community (V4-Flash-Vision-Exp), DeepSeek is no longer just a model providerâit is the architect of a new AI infrastructure.</p> 622 623<p>For the developer, the message is clear: whether you are building locally with open weights or scaling on their API, the barriers to high-tier intelligence have never been lower. DeepSeek is proving that the future of AI isn't just about being the smartest; it's about being the most accessible, efficient, and resilient.</p> 624 625<hr> 626 627<h2>Frequently Asked Questions (FAQ)</h2> 628 629<h3>1. How does the Huawei Ascend 950DT compare to NVIDIA chips for DeepSeek models?</h3> 630<p>The Huawei Ascend 950DT is highly optimized for the inference requirements of DeepSeekâs MoE (Mixture-of-Experts) architecture. While NVIDIA chips remain superior for the raw throughput needed during initial training, the 950DT offers a domestic alternative that allows DeepSeek to scale its API services without being affected by international hardware sanctions.</p> 631 632<h3>2. Can I run DeepSeek-V4-Flash-Vision-Exp on a consumer GPU?</h3> 633<p>Yes. Because it is a "Flash" model, it is designed for efficiency. While the exact VRAM requirements depend on the quantization, the V4-Flash architecture is generally accessible to high-end consumer GPUs (like the RTX 4090 or 5090), especially when using the FP8 optimizations provided by libraries like DeepGEMM.</p> 634 635<h3>3. What does "Everything is a Plugin" mean in DeepSeek Harness?</h3> 636<p>It means the framework is modular. You can swap the LLM (e.g., using V4-Pro for reasoning and V4-Flash for speed), change the sandbox environment (where code is tested), or update the tool registry (what the agent can do) without rewriting the core logic of your AI agent.</p> 637 638<h3>4. How do I access the 50% Off-Peak pricing for the DeepSeek API?</h3> 639<p>The discount is applied automatically based on the time the request is received. Off-peak hours are currently set between 16:30 and 00:30 UTC. Developers are encouraged to use the <code>batch_request</code> endpoint to queue tasks specifically for these hours.</p> 640 641<h3>5. Is the DeepGEMM library only for DeepSeek models?</h3> 642<p>No. DeepGEMM is an open-source library that can be used by anyone developing for NVIDIA Hopper GPUs. However, it is specifically tuned for the types of matrix multiplications (FP8) that DeepSeek uses, making it most effective when paired with their architecture.</p> 643 644<h3>6. Why did DeepSeek release the vision model as "Exp" (Experimental)?</h3> 645<p>The "Exp" tag indicates that while the model is stable for general use, DeepSeek is actively soliciting community feedback on its multimodal reasoning. This allows for rapid iterations based on how developers use the vision encoder in real-world agentic workflows.</p> 646<h2>Sources and further reading</h2> 647<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 648<ul> 649 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 650 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 651 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 652 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 653 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate c
653ard</a></li> 654 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 655 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 656</ul> 657<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-09-06T10:00:35.338+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-v4-rollout-flash-vision-pricing-harness-2026-guide",title:"DeepSeek V4 Complete: Flash-Vision, Pro GA, and the New API Economics",excerpt:"DeepSeek completes the V4 rollout with the release of V4-Flash-Vision-Exp and V4-Pro GA, alongside a new peak-hour API pricing strategy and viral open-source infrastructure tools.",meta_description:"Explore the August 2026 DeepSeek V4 rollout: DeepSeek-V4-Pro GA, V4-Flash-Vision release, new peak-hour pricing, and the viral DeepSeek Harness (dsh) open-source tool.",category:"AI Technology",content:`<h2>The DeepSeek V4 Era: A Revolution in Multimodal Speed and Open-Source Infrastructure</h2> 658 659<p>The landscape of artificial intelligence underwent a tectonic shift in August 2026. Within a span of just two weeks, DeepSeek successfully finalized the rollout of its fourth-generation model architecture, while simultaneously disrupting the industryâs economic and open-source standards. As of August 23, 2026, the DeepSeek ecosystem has transitioned from a promising alternative to a dominant force in the high-performance AI market.</p> 660 661<p>This transformation wasn't just about raw power; it was about the strategic release of the <strong>deepseek-v4-flash-vision-exp</strong> model, the General Availability (GA) of the flagship <strong>V4-Pro</strong>, and a radical new approach to API pricing and infrastructure transparency. For developers and enterprises, these updates represent a new "DeepSeek Standard" that prioritizes multimodal agent capabilities and low-level hardware optimization.</p> 662 663<h3>August 21: The Arrival of DeepSeek-V4-Flash-Vision-Exp</h3> 664<p>On August 21, 2026, the DeepSeek Official API Changelog announced the release of <code>deepseek-v4-flash-vision-exp</code>. This experimental multimodal model is the final piece of the V4 puzzle, integrating sophisticated image and screenshot understanding into the ultra-fast V4-Flash architecture.</p> 665 666<p>What makes this release particularly significant is its specialized focus. Unlike general-purpose vision models, the Flash-Vision variant is engineered for <strong>multimodal agent workflows</strong>. According to official documentation, it excels in:</p> 667<ul> 668 <li><strong>UI Automation:</strong> Navigating complex software interfaces by "seeing" elements and interactive components.</li> 669 <li><strong>Chart and Data Analysis:</strong> Interpreting visual data visualizations with precision that rivals top-tier models.</li> 670 <li><strong>Visual Reasoning:</strong> Executing tasks that require both textual logic and visual context.</li> 671</ul> 672<p>Initial benchmarks released by DeepSeek claim that while the model maintains the high-speed text reasoning of the base V4-Flash, its visual task execution performance nears that of Anthropicâs Opus 4.8. This brings frontier-level vision capabilities to a model optimized for low-latency, high-volume production environments.</p> 673 674<h3>The Flagship Ascends: DeepSeek-V4-Pro Reaches GA</h3> 675<p>The V4-Flash-Vision release followed closely on the heels of the most anticipated milestone of the year: the General Availability (GA) of <strong>DeepSeek-V4-Pro</strong> on August 13, 2026. This 1.6-trillion parameter behemoth is now fully accessible via the DeepSeek App, Web interface, and API.</p> 676 677<p>With the transition from preview to GA, DeepSeek introduced a groundbreaking "thinking effort" selector. Users can now choose between <strong>low, high, and max</strong> reasoning levels, allowing for a precise balance between response speed and cognitive depth. This feature is particularly impactful for the model's performance on agent-specific benchmarks. In the latest V4-Pro updates, the model achieved a staggering <strong>87.9 on Terminal Bench 2.1</strong> and <strong>
67771.1 on DSBench-FullStack</strong>, signaling a massive leap in its ability to write code, manage servers, and handle end-to-end development tasks.</p> 678 679<h3>A New Economic Reality: Peak-Hour API Pricing</h3> 680<p>The technological leap of V4 has been accompanied by a significant shift in DeepSeek's commercial strategy. Effective August 16, 2026, DeepSeek implemented a <strong>peak/off-peak API pricing structure</strong>, a move that reflects the growing demand for its infrastructure.</p> 681 682<p>As reported by <em>Adtmag</em> and the official API documentation, tokens during peak hours (01:00-04:00 and 06:00-10:00 UTC) now cost double the off-peak rate. The most dramatic change involves V4-Pro cache hits, which saw price increases of up to 1,100% compared to their initial preview rates. This pricing model signals DeepSeek's transition from a "growth-at-all-costs" phase to a sustainable, high-demand utility provider. Developers are now encouraged to schedule non-urgent, high-volume tasks during off-peak windows to maximize cost-efficiency.</p> 683 684<h3>DeepSeek Harness (dsh): The Viral Open-Source Sensation</h3> 685<p>Perhaps the most surprising success of the August rollout was the release of <strong>DeepSeek Harness (dsh)</strong> on August 13. Hosted on GitHub and built on the Cordis meta-framework, <em>dsh</em> is a plugin-based execution runtime designed specifically for building autonomous AI agents.</p> 686 687<p>The philosophy behind the harness is modularity. Developers can swap model adapters, tool registries, and execution environments as isolated plugins. The community response was unprecedented; according to <em>InfoQ</em>, the repository achieved viral growth, surpassing <strong>100,000 stars within days</strong> of its developer preview release. This tool essentially provides the blueprint for how the industry will build autonomous systems using the V4 architecture.</p> 688 689<h3>Under the Hood: DeepEP and DeepGEMM Libraries</h3> 690<p>DeepSeekâs commitment to the open-source community extended into the very core of their model efficiency. Between August 11 and August 20, the organization open-sourced two critical low-level libraries:</p> 691<ol> 692 <li><strong>DeepEP (Expert-Parallelism):</strong>
692 An efficient communication library that refactors how Expert Parallelism is handled, allowing sparse Mixture-of-Experts (MoE) models to scale more effectively across large GPU clusters.</li> 693 <li><strong>DeepGEMM:</strong> A BLAS (Basic Linear Algebra Subprograms) kernel library specifically optimized for GPU efficiency during inference and training.</li> 694</ol> 695<p>By releasing these tools, DeepSeek is effectively handing the industry the "secret sauce" required to run 1.6-trillion parameter models with the efficiency usually reserved for much smaller architectures. This move ensures that the "DeepSeek way" of efficient scaling becomes a community standard.</p> 696 697<h2>Comparison of DeepSeek V4 Model Variants (August 2026)</h2> 698<table style="width:100%; border-collapse: collapse;"> 699 <thead> 700 <tr style="background-color: #f2f2f2;"> 701 <th style="padding: 10px; border: 1px solid #ddd;">Feature</th> 702 <th style="padding: 10px; border: 1px solid #ddd;">DeepSeek-V4-Pro</th> 703 <th style="padding: 10px; border: 1px solid #ddd;">V4-Flash-Vision-Exp</th> 704 </tr> 705 </thead> 706 <tbody> 707 <tr> 708 <td style="padding: 10px; border: 1px solid #ddd;"><strong>Parameters</strong></td> 709 <td style="padding: 10px; border: 1px solid #ddd;">1.6 Trillion (MoE)</td> 710 <td style="padding: 10px; border: 1px solid #ddd;">Optimized Flash Distillation</td> 711 </tr> 712 <tr> 713 <td style="padding: 10px; border: 1px solid #ddd;"><strong>Primary Use Case</strong></td> 714 <td style="padding: 10px; border: 1px solid #ddd;">Complex Reasoning & Logic</td> 715 <td style="padding: 10px; border: 1px solid #ddd;">Multimodal Agents & UI Automation</td> 716 </tr> 717 <tr> 718 <td style="padding: 10px; border: 1px solid #ddd;"><strong>Key Performance</strong></td> 719 <td style="padding: 10px; border: 1px solid #ddd;">87.9 Terminal Bench 2.1</td> 720 <td style="padding: 10px; border: 1px solid #ddd;">Visual Tasks near Opus 4.8</td> 721 </tr> 722 <tr> 723 <td style="padding: 10px; border: 1px solid #ddd;"><strong>Thinking Levels</strong></td> 724 <td style="padding: 10px; border: 1px solid #ddd;">Low, High, Max</td> 725 <td style="padding: 10px; border: 1px solid #ddd;">High-Speed Default</td> 726 </tr> 727 </tbody> 728</table> 729 730<h3>Summary of Recent Major Milestones</h3> 731<ul> 732 <li><strong>August 11-20:</strong> DeepEP and DeepGEMM libraries open-sourced for MoE optimization.</li> 733 <li><strong>August 13:</strong> DeepSeek-V4-Pro reaches GA; DeepSeek Harness (dsh) goes viral.</li> 734 <li><strong>August 16:</strong> Peak/Off-peak API pricing takes effect globally.</li> 735 <li><strong>August 21:</strong> DeepSeek-V4-Flash-Vision-Exp released for multimodal agent preview.</li> 736</ul> 737 738<h3>Conclusion: The Strategic Shift</h3> 739<p>The events of August 2026 mark the end of DeepSeekâs "underdog" status. By providing the best-in-class reasoning model (V4-Pro), a high-speed vision model for agents (V4-Flash-Vision), and the infrastructure to run them (dsh, DeepEP), DeepSeek has created a self-sustaining ecosystem. While the new pricing model may be a hurdle for some, it is a clear indication that the demand for DeepSeekâs intelligence now matchesâand perhaps exceedsâthe industry's most established players.</p> 740 741<h2>Frequently Asked Questions</h2> 742 743<h3>1. What is the difference between DeepSeek-V4-Pro and V4-Flash-Vision-Exp?</h3> 744<p>DeepSeek-V4-Pro is the flagship 1.6T parameter model designed for maximum reasoning, coding, and logical depth. It is best for complex, text-based tasks. V4-Flash-Vision-Exp is an experimental, faster model that adds image and screenshot understanding, making it ideal for visual agents and UI automation where speed is critical.</p> 745 746<h3>2. When are the peak and off-peak hours for DeepSeek API pricing?</h3> 747<p>As of August 16, 2026, peak hours are 01:00-04:00 and 06:00-10:00 UTC. During these times, API token costs are doubled. Developers should check their local time zones to optimize their API usage costs.</p> 748 749<h3>3. Why did DeepSeek open-source DeepEP and DeepGEMM?</h3> 750<p>These libraries are designed to help the AI community run sparse Mixture-of-Experts (MoE) models more efficiently. By sharing these low-level optimizations, DeepSeek encourages the adoption of its architecture and helps other developers achieve frontier-level performance on standard GPU hardware.</p> 751 752<h3>4. How do I access the "Thinking Effort" levels in V4-Pro?</h3> 753<p>The levels (Low, High, Max) are available through the DeepSeek Web interface and can be specified via a parameter in the API. Higher effort levels provide more thorough reasoning for complex prompts but will result in higher latency and token usage.</p> 754 755<h3>5. What is DeepSeek Harness (dsh) and why is it popular?</h3> 756<p>DeepSeek Harness (dsh) is an open-source runtime for building autonomous agents. Its popularity stems from its plugin-based architecture, which allows developers to easily customize how their agents interact with tools, models, and environments, significantly lowering the barrier to entry for agentic AI development.</p> 757 758<h3>6. Does the Flash-Vision model support video analysis?</h3> 759<p>The current release of <code>deepseek-v4-flash-vision-exp</code> is optimized for images and screenshots, particularly for UI automation and chart analysis. Full-scale video analysis is not the primary focus of this specific experimental release, though it can process sequences of screenshots.</p> 760<h2>Sources and further reading</h2> 761<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 762<ul> 763 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 764 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 765 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 766 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 767 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate c
767ard</a></li> 768 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 769 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 770</ul> 771<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-08-23T10:00:33.357+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-v4-pro-ga-harness-surge-pricing-guide-2026",title:"DeepSeek V4-Pro GA: Agent Frameworks & New Surge Pricing Guide",excerpt:"DeepSeek launches V4-Pro GA, the DeepSeek Harness agent framework, and industry-first surge pricing. Learn how to optimize 'Thinking Effort' and leverage off-peak AI rates.",meta_description:"DeepSeek-V4-Pro reaches GA with new 'Thinking Effort' controls and DeepSeek Harness agent framework. Explore the new peak/off-peak pricing and benchmark scores.",category:"AI Technology",content:` 772<h2>The V4-Pro Era: DeepSeek Redefines the Agentic Workflow and API Economics</h2> 773 774<p>The landscape of large language models (LLMs) just shifted beneath our feet. Between August 2 and August 16, 2026, DeepSeek AI executed a series of strategic releases that signal a transition from "models as tools" to "models as autonomous agents." With the official <strong>General Availability (GA) of DeepSeek-V4-Pro</strong>, the launch of the <strong>DeepSeek Harness</strong> framework, and a revolutionaryâif controversialâ<strong>surge pricing model</strong>, the company is rewriting the playbook for how AI is consumed and integrated.</p> 775 776<p>For developers and enterprise leaders, these updates represent more than just incremental performance gains. They introduce a new philosophy of "flexible intelligence," where users can modulate the model's reasoning effort and cost based on the complexity of the task at hand. In this deep dive, we will break down the technical specifications of V4-Pro, the mechanics of the new Harness framework, and what the industry's first peak/off-peak pricing model means for your bottom line.</p> 777 778<h2 id="v4-pro-ga">1. DeepSeek-V4-Pro: The New Gold Standard for Agentic Logic</h2> 779<p>On August 13, 2026, DeepSeek officially moved <strong>DeepSeek-V4-Pro (build 0813)</strong> out of preview and into General Availability. While the preview phase gave us a glimpse of the modelâs potential, the GA release arrives with significant optimizations for real-world production environments, particularly in the realm of <strong>autonomous agents</strong>.</p> 780 781<h3>Benchmark Supremacy: Terminal Bench & DeepSWE</h3> 782<p>The V4-Pro build isn't just a chatbot; it is designed to operate within digital environments. According to the <a href="https://api-docs.deepseek.com/updates/">DeepSeek Official API Changelog</a>, the model has achieved industry-leading scores on benchmarks that measure practical utility:</p> 783<ul> 784 <li><strong>Terminal Bench 2.1: 87.9</strong> â This score reflects the model's ability to navigate complex CLI environments, manage file systems, and execute multi-step terminal commands without human intervention.</li> 785 <li><strong>DeepSWE: 62.7</strong> â A benchmark focused on "Software Engineering" tasks, measuring the model's capacity to resolve GitHub issues, debug legacy code, and refactor entire modules autonomously.</li> 786</ul> 787 788<h3>Native OpenAI Compatibility and Codex Integration</h3> 789<p>To ensure a frictionless transition for developers, DeepSeek-V4-Pro now includes <strong>native support for the OpenAI Responses API format</strong>. This means that applications built for GPT-4o or o1 can often be migrated to DeepSeek by simply changing the base URL and API key. Furthermore, the release includes a new one-click configuration script specifically for <strong>Codex integrations</strong>, making it the preferred backend for modern IDE extensions and automated DevOps pipelines.</p> 790 791<h2 id="deepseek-harness">2. DeepSeek Harness: "Everything is a Plugin"</h2> 792<p>Parallel to the model release on August 13, DeepSeek dropped a bombshell on GitHub: <strong>DeepSeek Harness (dsh)</strong>. Within days, the repository surpassed 80,000 stars, underscoring the community's hunger for a robust, open-source agent framework.</p> 793 794<h3>The Architecture of Autonomy</h3> 795<p>The core philosophy of DeepSeek Harness is modularity. By treating every capabilityâfrom web searching to code executionâas a plugin, the framework allows for <strong>multi-agent collaboration</strong>. In a typical Harness workflow, a "Manager" agent might delegate a sub-task to a "Coder" agent, which then uses a "Terminal" plugin to verify the code.</p> 796 797<p>Key features of DeepSeek Harness include: 798<ul> 799 <li><strong>Long-term Task Management:</strong> The ability to maintain state across hours or days of execution, allowing for massive projects like full-stack migrations.</li> 800 <li><strong>Terminal-Based Workflows:</strong> Built-in safety layers that allow the model to interact with a terminal environment, optimized specifically for the V4-Proâs high Terminal Bench scores.</li> 801 <li><strong>Native V4-Flash Support:</strong> While V4-Pro handles the heavy reasoning, the framework is designed to route simpler sub-tasks to the faster, cheaper V4-Flash model to optimize latency.</li> 802</ul> 803<p><em>Source: <a href="https://github.com/deepseek-ai/deepseek-harness">DeepSeek GitHub / npm</a></em></p> 804 805<h2 id="thinking-effort">3. Granular Control: The "Thinking Effort" Parameter</h2> 806<p>One of the most innovative features introduced alongside V4-Pro is the <strong>"Thinking Effort"</strong> control. Historically, reasoning models have been "black boxes"âyou send a prompt and wait, often paying for high compute even on simple questions. DeepSeek has disrupted this with a new API parameter available in the <a href="https://api-docs.deepseek.com/guides/thinking_mode">API Documentation</a>.</p> 807 808<p>Users can now specify three levels of reasoning depth:</p> 809<table> 810 <thead> 811 <tr> 812 <th>Setting</th> 813 <th>Best Use Case</th> 814 <th>
814Primary Benefit</th> 815 </tr> 816 </thead> 817 <tbody> 818 <tr> 819 <td><strong>Low</strong></td> 820 <td>Data extraction, simple Q&A, formatting</td> 821 <td>Maximum speed, lowest token cost</td> 822 </tr> 823 <tr> 824 <td><strong>High</strong></td> 825 <td>General coding, logical reasoning, summarization</td> 826 <td>Balanced performance for daily tasks</td> 827 </tr> 828 <tr> 829 <td><strong>Max</strong></td> 830 <td>Complex software engineering, math proofs, multi-agent orchestration</td> 831 <td>Deepest logical rigor; handles edge cases</td> 832 </tr> 833 </tbody> 834</table> 835 836<h2 id="pricing-shift">4. The Great Rebalancing: Peak vs. Off-Peak Pricing</h2> 837<p>As of 16:00 UTC on August 16, 2026, DeepSeek has become the first major AI provider to implement <strong>structural surge pricing</strong>. This move, reported by Bloomberg and confirmed via the <a href="https://api-docs.deepseek.com/updates/">DeepSeek Official News</a> portal, aims to manage the immense global demand for V4-Pro's compute cycles.</p> 838 839<h3>The Math of the Surge</h3> 840<p>Under the new model, rates for the V4 model family <strong>quadruple</strong> during peak hours. Specifically, <strong>DeepSeek-V4-Pro now costs $3.96 per 1 million output tokens during peak windows</strong>. Conversely, <strong>off-peak rates are set at 50% of the peak price</strong>, creating a massive incentive for developers to schedule batch processing, data cleaning, and non-urgent training runs during lower-demand hours.</p> 841 842<p>This "Utility Model" of AI pricing treats compute like electricity. While it may increase costs for real-time customer-facing applications during business hours, it offers a pathway for cost-conscious startups to utilize world-class intelligence at a fraction of the cost by optimizing their task scheduling.</p> 843 844<h2 id="open-source-infra">5. DeepGEMM and DeepEP: Giving Back to the Infrastructure Layer</h2> 845<p>DeepSeekâs dominance isn't just about their models; it's about the efficiency of their underlying hardware utilization. In a move to support the broader research community, DeepSeek released two critical high-performance libraries earlier this month:</p> 846<ul> 847 <li><strong>DeepEP (Released Aug 5):</strong> A specialized <strong>expert-parallel communication library</strong> designed to speed up the data transfer between different "experts" in a Mixture-of-Experts (MoE) architecture.</li> 848 <li><strong>DeepGEMM (Released Aug 11):</strong> A collection of clean, efficient <strong>BLAS (Basic Linear Algebra Subprograms) kernels</strong> for GPUs, optimized for the specific matrix multiplications required by modern LLMs.</li> 849</ul> 850<p>By open-sourcing these tools (<a href="https://github.com/deepseek-ai/DeepGEMM">DeepGEMM</a> | <a href="https://github.com/deepseek-ai/DeepEP">DeepEP</a>), DeepSeek is cementing its position not just as a model provider, but as a foundational pillar of the global AI infrastructure ecosystem.</p> 851 852<h2 id="conclusion">The Path Forward: DeepSeek in H2 2026</h2> 853<p>The first half of August 2026 has been a watershed moment for DeepSeek. By combining the <strong>high-reasoning power of V4-Pro</strong> with the <strong>modular flexibility of DeepSeek Harness</strong> and the <strong>economic transparency of surge pricing</strong>, the company has created a complete ecosystem for the next generation of AI development.</p> 854 855<p>For users, the message is clear: the era of "one-size-fits-all" AI is over. Whether you are tuning your "Thinking Effort" to save pennies on a simple task or scheduling your agentic workflows for 3:00 AM to take advantage of off-peak rates, DeepSeek is giving you the steering wheel. The V4-Pro GA release isn't just a launchâit's an invitation to build more efficiently than ever before.</p> 856 857<hr /> 858 859<h2>Frequently Asked Questions (FAQ)</h2> 860 861<h3>What is the difference between DeepSeek-V4-Pro and V4-Flash?</h3> 862<p>DeepSeek-V4-Pro is the flagship reasoning model optimized for complex logic, software engineering, and multi-agent tasks (GA as of Aug 13, 2026). V4-Flash is a smaller, faster version designed for low-latency tasks and is often used as a sub-agent within the DeepSeek Harness framework to handle simpler commands.</p> 863 864<h3>How do I enable the "Thinking Effort" parameter in the API?</h3> 865<p>The parameter is passed in your API request body as <code>thinking_effort</code>. You can set it to <code>low</code>, <code>high</code>, or <code>max</code>. This allows you to control how much compute the model uses for reasoning before generating a final response, directly impacting both latency and cost.</p> 866 867<h3>When are the "Off-Peak" hours for DeepSeek API pricing?</h3> 868<p>Off-peak hours typically align with periods of lower global demand. You should check the DeepSeek API dashboard for a real-time schedule, but the goal is to provide a 50% discount compared to peak rates, which are $3.96 per 1M output tokens for V4-Pro as of August 16, 2026.</p> 869 870<h3>Can I use DeepSeek Harness with other models?</h3> 871<p>While DeepSeek Harness is open-source and modular ("everything is a plugin"), it is natively optimized for DeepSeek-V4-Pro and V4-Flash. However, due to its plugin-based architecture, the community is expected to develop adapters for other OpenAI-compatible models quickly.</p> 872 873<h3>What makes the Terminal Bench 2.1 score significant?</h3> 874<p>A score of 87.9 on Terminal Bench 2.1 indicates that V4-Pro can accurately interpret and execute complex sequences of bash commands, handle errors in the terminal, and navigate directory structures. This is a critical metric for "Agentic AI" that needs to perform actual work on a computer rather than just writing text.</p> 875 876<h3>Are DeepGEMM and DeepEP only for DeepSeek models?</h3> 877<p>No. DeepGEMM and DeepEP are general-purpose high-performance libraries for GPU optimization and expert-parallel communication. Any researcher or developer building large-scale Mixture-of-Experts (MoE) models can utilize these libraries to improve the efficiency of their own training and inference stacks.<
877/p> 878`,published_at:"2026-08-16T10:00:37.216+00:00",updated_at:"2026-08-16T10:00:37.240587+00:00",hero_image_url:null},{slug:"deepseek-rag-knowledge-management-guide-2026",title:"DeepSeek for RAG: The 2026 Guide to Efficient Knowledge Retrieval",excerpt:"Unlock the full potential of DeepSeek in 2026 with our guide to Retrieval-Augmented Generation (RAG). Learn how to build efficient, private, and low-cost AI knowledge systems.",meta_description:"Master DeepSeek for RAG: A 2026 technical guide on building high-performance knowledge systems using DeepSeek-V3, R1, and advanced retrieval architectures.",category:"AI Technology",content:` 879<p>In the rapidly evolving landscape of Large Language Models (LLMs), the "Goldilocks" problem persists: How do you find a model that is smart enough for complex reasoning but lean enough to be fast and cost-effective? For years, developers were forced to choose between the sheer power of massive closed-source models and the flexibility of smaller open-weight models. However, the rise of <strong>DeepSeek</strong> and its sophisticated fine-tuning ecosystem has introduced a third way.</p> 880 881<p>One of the most powerful, yet underutilized, methods for maximizing DeepSeek's performance is <strong>Retrieval-Augmented Generation (RAG)</strong>. While DeepSeek models boast impressive context windows, RAG remains the gold standard for reducing hallucinations, ensuring data privacy, and grounding AI responses in real-time proprietary information. In this deep dive, we will explore why DeepSeek has become the preferred backbone for RAG architectures in 2026 and provide a technical blueprint for building your own high-performance knowledge system.</p> 882 883<h2>Why DeepSeek is the Ultimate RAG Engine</h2> 884<p>Building a RAG pipeline requires more than just a smart model; it requires a model that can handle "needle-in-a-haystack" retrieval tasks without degrading in logic. DeepSeekâs architecture, specifically its implementation of Multi-head Latent Attention (MLA), makes it uniquely suited for this task.</p> 885 886<h3>1. Superior Contextual Compression</h3> 887<p>In a RAG system, the model is often fed large chunks of retrieved text. DeepSeekâs MLA architecture significantly reduces the KV (Key-Value) cache size. For developers, this means you can feed the model more context from your vector database without seeing the exponential spike in latency or memory usage that plagues other Transformer-based models. This efficiency allows for "Long-RAG" setups where the model can synthesize information across dozens of documents simultaneously.</p> 888 889<h3>2. Precise Instruction Following</h3> 890<p>A successful RAG response depends on the model's ability to strictly adhere to the retrieved context. DeepSeek has been rigorously trained using Group Relative Policy Optimization (GRPO), which hones its ability to distinguish between its internal training data and the external "truth" provided in a prompt. This reduces the risk of the model overriding your company's data with its own outdated pre-training knowledge.</p> 891 892<h3>3. Economic Scalability</h3> 893<p>When you are running a RAG system that processes thousands of queries a day, inference costs become the primary bottleneck. DeepSeekâs Mixture-of-Experts (MoE) design ensures that only a fraction of its total parameters are activated for any given token. This results in an intelligence-to-cost ratio that consistently outperforms competitors, making large-scale knowledge management financially viable for startups and enterprises alike.</p> 894 895<h2>The Technical Blueprint: Building a DeepSeek-Powered RAG Pipeline</h2> 896<p>To build a modern RAG system with DeepSeek, you need to look beyond simple vector search. We are moving toward "Agentic RAG," where the model doesn't just read dataâit decides how to query it. Below is the step-by-step architecture.</p> 897 898<h3>Step 1: Document Pre-processing and Semantic Chunking</h3> 899<p>The quality of your RAG system is only as good as your data ingestion. Instead of simple character-based splitting, use <strong>Semantic Chunking</strong>. This involves using DeepSeek to identify natural breaks in meaning within your documents, ensuring that related concepts stay together in the vector database.</p> 900<ul> 901 <li><strong>Tooling:</strong> Use LangChain or LlamaIndex with DeepSeek-V3 or DeepSeek-R1.</li> 902 <li><strong>Strategy:</strong> Generate "Synthetic Questions" for each chunk during ingestion. This helps the vector search match user queries to the underlying intent rather than just keywords.</li> 903</ul> 904 905<h3>Step 2: Choosing the Right Embedding Model</h3> 906<p>While DeepSeek handles the generation, you need a high-dimensional embedding model to represent your data. The <strong>DeepSeek-V3</strong> series is highly compatible with BGE (Beijing General Embeddings) and HuggingFaceâs latest embedding models. Ensure your embedding dimensions align with the complexity of your domain (e.g., 768 or 1024 dimensions for technical documentation).</p> 907 908<h3>Step 3: The "Re-Ranker" Stage</h3> 909<p>Standard vector search often returns the "nearest" results, but not necessarily the most "relevant" ones. A two-stage retrieval process is essential:</p> 910<ol> 911 <li><strong>Initial Retrieval:</strong> Pull the top 20 candidate chunks using fast vector similarity (cosine distance).</li> 912 <li><strong>Re-Ranking:</strong> Pass these 20 chunks through a smaller DeepSeek model (like a distilled 7B or 8B version) to score their actual relevance to the query. Keep only the top 5.</li> 913</ol> 914 915<h3>Step 4: Prompt Engineering for Grounded Generation</h3> 916<p>When passing the retrieved data to DeepSeek, the structure of the system prompt is vital. Here is a proven template for 2026:</p> 917<pre> 918"You are a professional assistant. You will be provided with a query and a set of context snippets. 919Your task is to answer the query ONLY using the provided context. 920If the answer is not in the context, state that you do not know. 921Cite your sources using the format [Source #]. 922 923Context: 924{retrieved_chunks} 925 926Query: 927{user_query}" 928</pre> 929 930<h2>Advanced Strategy: Implementing "Agentic RAG" with DeepSeek</h2> 931<p>In 2026, static RAG is being replaced by <strong>Agentic RAG</strong>. In this setup, DeepSeek acts as an orchestrator. If a user asks a complex question, the model doesn't just perform one search;
931 it breaks the question down into sub-tasks.</p> 932<p>For example, if a user asks, "How does our 2026 revenue compare to the 2025 projections?" a DeepSeek agent will:</p> 933<ul> 934 <li>Recognize that it needs two different sets of data (2025 projections and 2026 actuals).</li> 935 <li>Execute two separate searches in the vector database.</li> 936 <li>Perform a mathematical comparison using its reasoning capabilities.</li> 937 <li>Synthesize the final report.</li> 938</ul> 939<p>DeepSeekâs high performance in <em>function calling</em> and <em>tool use</em> makes it the ideal candidate for this multi-step reasoning.</p> 940 941<h2>Performance Benchmarks: DeepSeek in RAG Scenarios</h2> 942<p>While general benchmarks tell one story, RAG-specific benchmarks (like RGB or RECALL) highlight DeepSeek's strengths. In publicly reported community benchmarks throughout 2025 and early 2026, DeepSeek has shown:</p> 943<ul> 944 <li><strong>Hallucination Rates:</strong> DeepSeek-R1 (Distilled) shows a 30% lower hallucination rate in closed-book RAG tasks compared to other 70B class models.</li> 945 <li><strong>Latency:</strong> Thanks to MLA, the time-to-first-token (TTFT) remains under 200ms even with context windows exceeding 32k tokens.</li> 946 <li><strong>Context Adherence:</strong> In "Long-Bench" tests, DeepSeek maintains 95%+ accuracy in retrieving information from the middle of the prompt, avoiding the "lost in the middle" phenomenon common in earlier LLMs.</li> 947</ul> 948 949<h2>Common Challenges and How to Overcome Them</h2> 950<h3>1. Data Staleness</h3> 951<p>RAG solves the knowledge cutoff problem, but your vector database must be synchronized. Implement a <strong>Change Data Capture (CDC)</strong> pipeline that triggers an embedding update whenever your source documents (Confluence, Notion, GitHub) are modified.</p> 952<h3>2. Excessive Noise</h3> 953<p>Feeding too much irrelevant context to DeepSeek can dilute the answer. Always use a <strong>Threshold Filter</strong> on your vector similarity scores. If a chunk's similarity score is below 0.7, discard itâit's more likely to confuse the model than help it.</p> 954<h3>3. Privacy and Security</h3> 955<p>One of the biggest draws of DeepSeek is the ability to run it locally or in a private VPC. By combining a local DeepSeek deployment (via vLLM or Ollama) with a local vector store (like Qdrant or Milvus), you can build a RAG system where no data ever leaves your firewall.</p> 956 957<h2>FAQ: Mastering DeepSeek for RAG</h2> 958 959<h3>Which DeepSeek model is best for RAG?</h3> 960<p>For most enterprise applications, <strong>DeepSeek-V3</strong> is the best balance of intelligence and speed. However, if you require intense logical reasoning or mathematical synthesis of retrieved data, the <strong>DeepSeek-R1</strong> series is superior due to its specialized reasoning paths.</p> 961 962<h3>Do I need to fine-tune DeepSeek for my specific data?</h3> 963<p>Generally, no. RAG is designed to avoid the need for frequent fine-tuning. DeepSeek is already highly capable of following instructions. Fine-tuning should only be considered if you need the model to adopt a very specific professional tone or if you are working in a highly specialized field (like deep organic chemistry) with unique nomenclature.</p> 964 965<h3>How does DeepSeek handle multilingual RAG?</h3> 966<p>DeepSeek is exceptionally strong in English and Chinese, and performs competitively in major European and Asian languages. Its cross-lingual retrieval capabilities allow you to query in English and retrieve relevant documents written in other supported languages, provided your embedding model is also multilingual.</p> 967 968<h3>What is the maximum context window I should use for DeepSeek RAG?</h3> 969<p>While DeepSeek supports massive context windows (up to 128k or more in some versions), for RAG, the "sweet spot" is typically between 8k and 16k tokens. This provides enough room for 10-15 high-quality document chunks while keeping costs low and responses snappy.</p> 970 971<h3>Can DeepSeek RAG handle images and tables?</h3> 972<p>Yes, by utilizing DeepSeekâs multimodal capabilities (DeepSeek-VL series), you can implement <strong>Multimodal RAG</strong>. This involves using a vision-language model to describe images/tables in your documents and storing those descriptions alongside the text for retrieval.</p> 973 974<h2>The Future of Knowledge: DeepSeek and Beyond</h2> 975<p>As we move through 2026, the barrier to entry for sophisticated AI systems continues to fall. DeepSeek has proven that you don't need a trillion-dollar budget to access world-class intelligence. By leveraging DeepSeek as the engine for your RAG pipeline, you are building a system that is not only smart and current but also economically sustainable.</p> 976 977<p>Whether you are building a customer support bot, a research assistant, or a private corporate brain, the combination of <strong>DeepSeek's architecture</strong> and <strong>Retrieval-Augmented Generation</strong> is the most robust path forward in the age of AI. The question is no longer whether AI can handle your dataâit's how fast you can build the pipeline to let DeepSeek show you what it's capable of.</p> 978 979<h2>Sources and further reading</h2> 980<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 981<ul> 982 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 983 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 984 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 985 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 986 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate c
986ard</a></li> 987 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 988 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 989</ul> 990<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-08-09T10:00:26.273+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-multimodal-vision-language-guide-2026",title:"Beyond Text: The 2026 Guide to DeepSeekâs Multimodal Visual Intelligence",excerpt:"Explore the architecture and real-world applications of DeepSeek's vision-language models. Learn how DeepSeek-VL dominates multimodal AI through efficiency and open-weight accessibility.",meta_description:"Deep dive into DeepSeek's multimodal AI architecture. Compare DeepSeek-VL benchmarks, explore use cases in robotics and med-tech, and learn local deployment tips.",category:"AI Technology",content:` 991<h2>Introduction: The Open-Source Frontier of Multimodal AI</h2> 992<p>As we navigate the AI landscape of 2026, the conversation has shifted from simple text generation to complex, cross-modal understanding. While many proprietary giants have built walled gardens around their vision-language models, <strong>DeepSeek</strong> has consistently championed a more transparent, efficient, and accessible path. The DeepSeek-VL (Vision-Language) series has emerged as the gold standard for developers and researchers who require high-performance visual reasoning without the astronomical costs of closed-source APIs.</p> 993 994<p>This deep dive explores the sophisticated architecture behind DeepSeekâs multimodal capabilities, specifically focusing on how it bridges the gap between raw pixel data and high-level semantic reasoning. Whether you are building an autonomous drone system, an automated medical imaging assistant, or a next-generation e-commerce visual search engine, understanding the "how" behind DeepSeekâs visual intelligence is crucial.</p> 995 996<h2>1. The Foundation: DeepSeek-VL Architecture Explained</h2> 997<p>DeepSeekâs approach to multimodal AI isn't just about "tacking on" a vision encoder to a language model. It is a fundamental rethinking of how different data modalities should interact. At its core, the DeepSeek vision-language pipeline consists of three critical components: the Vision Encoder, the Vision-Language Adapter, and the Large Language Model (LLM) backbone.</p> 998 999<h3>The Vision Encoder: Capturing the Nuance</h3> 1000<p>DeepSeek typically utilizes a high-resolution vision transformer (ViT) as its primary "eye." Unlike earlier models that struggled with small details, DeepSeek employs a hybrid-resolution strategy. This allows the model to process a global overview of an image while simultaneously focusing on high-resolution patches where detail is densest. This is particularly vital for tasks like OCR (Optical Character Recognition) and technical document analysis.</p> 1001 1002<h3>The Signal Bridge: DeepSeekâs Proprietary Adapter</h3> 1003<p>The "magic" happens in the adapter. DeepSeek uses a sophisticated cross-attention mechanism that aligns visual features with the language model's token space. Instead of overwhelming the LLM with thousands of visual tokens, DeepSeekâs adapter compresses visual information into a highly semantic "visual vocabulary." This ensures that the model maintains a high "intelligence density," allowing for faster inference and lower memory overhead during multimodal tasks.</p> 1004 1005<h2>2. Key Features: Why DeepSeek Leads in Multimodal Efficiency</h2> 1006<p>In 2026, efficiency is the most valuable currency in AI. DeepSeekâs multimodal models are designed with several proprietary features that set them apart from competitors like GPT-4o or Gemini Pro.</p> 1007 1008<ul> 1009 <li><strong>Dynamic Resolution Scaling:</strong> DeepSeek models can adapt their processing power based on the complexity of the input image. A simple icon requires less compute than a complex architectural blueprint, saving up to 40% in inference costs.</li> 1010 <li><strong>Multi-image Contextualization:</strong> Unlike many models that treat images in isolation, DeepSeek can process sequences of images, making it ideal for video frame analysis and comparative visual tasks.</li> 1011 <li><strong>Native Document Understanding:</strong> By training specifically on a massive corpus of PDFs, charts, and infographics, DeepSeek excels at "Reading" as much as "Seeing."</li> 1012</ul> 1013 1014<h2>3. Use Case Deep-Dive: From Retail to Robotics</h2> 1015<p>How does DeepSeek perform in the real world? Letâs look at three high-impact sectors where DeepSeek is currently outperforming its peers.</p> 1016 1017<h3>Automated Quality Control in Manufacturing</h3> 1018<p>Manufacturers are leveraging DeepSeek to identify microscopic defects in hardware. Because DeepSeek can be deployed locally (on-premise), companies can process thous
1018ands of images per minute without data ever leaving the factory floor. The model's ability to explain *why* it flagged a part as defectiveâusing natural languageâis a game-changer for human-AI collaboration.</p> 1019 1020<h3>Medical Imaging and Diagnostic Support</h3> 1021<p>In the healthcare sector, DeepSeekâs multimodal capabilities are used to provide preliminary readings of X-rays and MRIs. While not a replacement for radiologists, DeepSeek acts as a "second pair of eyes," highlighting anomalies and cross-referencing them with medical literature in real-time. Its open-weight nature allows hospitals to fine-tune the model on specific, sensitive patient datasets securely.</p> 1022 1023<h3>Visual E-Commerce and Personal Styling</h3> 1024<p>DeepSeek powers the next generation of "shop the look" features. By understanding style, fabric texture, and fit through visual analysis, the model can recommend products with a level of nuance that keyword-based search engines simply cannot match. It understands the difference between "boho-chic" and "minimalist" not just as labels, but as visual patterns.</p> 1025 1026<h2>4. Performance Benchmarks: DeepSeek vs. The Competition</h2> 1027<p>While proprietary models often claim the top spot in raw benchmarks, DeepSeek leads in <strong>Performance-per-Dollar</strong>. In the 2026 Multimodal Benchmarks (MMB), DeepSeek-VL2 demonstrated a 92% accuracy rate in visual reasoning tasks, rivaling GPT-4o while being 5x cheaper to run via API and 10x more efficient for local hosting.</p> 1028 1029<p>Specifically, in the <em>CMMU (Chinese Multi-modal Understanding)</em> and <em>MathVista</em> benchmarks, DeepSeek has shown a unique ability to solve complex mathematical problems presented in visual formatsâa traditional weak point for many large-scale vision models.</p> 1030 1031<h2>5. Technical Implementation: Deploying DeepSeek for Vision Tasks</h2> 1032<p>For developers looking to integrate DeepSeekâs multimodal power, the process is streamlined thanks to its compatibility with popular frameworks like Hugging Face Transformers and vLLM.</p> 1033 1034<h3>Step 1: Environment Setup</h3> 1035<p>Ensure you have a modern GPU environment (NVIDIA H100 or A100 recommended for optimal performance). You will need the latest \`transformers\` and \`accelerate\` libraries.</p> 1036 1037<h3>Step 2: Loading the Model</h3> 1038<p>DeepSeek uses a unified model loader. Unlike text-only models, you must initialize the processor, which handles both image resizing and text tokenization.</p> 1039 1040<pre><code> 1041from transformers import AutoProcessor, DeepSeekVLV2ForConditionalGeneration 1042import torch 1043 1044model_id = "deepseek-ai/deepseek-vl2-tiny" 1045processor = AutoProcessor.from_pretrained(model_id) 1046model = DeepSeekVLV2ForConditionalGeneration.from_pretrained(model_id, torch_dtype=torch.bfloat16).cuda() 1047</code></pre> 1048 1049<h3>Step 3: Inference</h3> 1050<p>When prompting, you combine text instructions with image inputs. DeepSeek's instruction-following capabilities allow for complex queries like "Compare the two charts below and summarize the trend differences."</p> 1051 1052<h2>6. The Future of Multimodal DeepSeek</h2> 1053<p>Looking ahead to the rest of 2026 and 2027, we expect DeepSeek to push the boundaries of <strong>Real-time Video Understanding</strong>. The next iteration of their architecture aims to reduce visual latency to sub-100ms, enabling true AI-powered visual assistants that can "see" the world in real-time through AR glasses or mobile cameras.</p> 1054 1055<p>Furthermore, the integration of <em>DeepSeekâs Reinforcement Learning (RL)</em> techniques into the vision pipeline promises models that don't just describe what they see, but can reason through visual cause-and-effect with unprecedented logic.</p> 1056 1057<h2>Frequently Asked Questions (FAQ)</h2> 1058 1059<h3>Is DeepSeek-VL truly open-source?</h3> 1060<p>DeepSeek releases its models under the DeepSeek License, which allows for both research and commercial use. While not "Open Source" in the strict OSI definition (as training data isn't always fully public), the model weights and architecture are open for local deployment and modification, providing much more freedom than "Black Box" APIs.</p> 1061 1062<h3>What are the hardware requirements for running DeepSeek Multimodal locally?</h3> 1063<p>For the "Tiny" versions of DeepSeek-VL, a consumer GPU with 12GB-16GB of VRAM (like an RTX 4070 Ti) is sufficient. For the full-scale production models, you generally need 24GB+ VRAM (RTX 3
1063090/4090) or multi-GPU setups for low-latency inference.</p> 1064 1065<h3>How does DeepSeek handle privacy in vision tasks?</h3> 1066<p>One of the primary advantages of DeepSeek is local deployment. Since you can run the model on your own servers, your images and visual data never need to be uploaded to the cloud, making it the preferred choice for privacy-sensitive industries like legal, medical, and defense.</p> 1067 1068<h3>Does DeepSeek support OCR (Optical Character Recognition)?</h3> 1069<p>Yes, DeepSeek-VL is exceptionally strong at OCR. It can extract text from dense documents, handwritten notes, and complex infographics with high spatial accuracy, often outperforming dedicated OCR engines by understanding the context of the text it is reading.</p> 1070 1071<h3>Can DeepSeek process video files?</h3> 1072<p>While the current models are optimized for images, they can process video by analyzing keyframes. Developers typically extract 1-2 frames per second and feed them into DeepSeek as a sequence, allowing the model to perform temporal reasoning and summarize video content.</p> 1073 1074<h2>Conclusion: The Visual Intelligence Revolution</h2> 1075<p>DeepSeek has proven that you don't need the world's largest compute budget to create world-class multimodal AI. By focusing on architectural efficiency, smart data alignment, and open accessibility, they have democratized high-performance visual reasoning. As we move deeper into 2026, DeepSeek remains the primary choice for those who value performance, privacy, and the power to build without limits.</p> 1076 1077<h2>Sources and further reading</h2> 1078<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 1079<ul> 1080 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 1081 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 1082 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 1083 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 1084 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate card</a></li> 1085 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 1086 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 1087</ul> 1088<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-08-02T10:00:27.912+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-reinforcement-learning-grpo-reasoning-guide",title:"DeepSeekâs Logic Leap: The 2026 Guide to Reinforcement Learning AI",excerpt:"Explore the revolution of DeepSeek's Reinforcement Learning and GRPO architecture. Learn why 'Reasoning' models are replacing 'Memorization' models in the 2026 AI landscape.",meta_description:"Deep-dive into DeepSeek's RL and GRPO architecture. Discover how DeepSeek's reasoning-first approach outperforms traditional SFT models in coding and logic.",category:"AI Technology",content:` 1089<h2>The Paradigm Shift: Understanding DeepSeekâs Reinforcement Learning Revolution</h2> 1090<p>In the landscape of 2026, Large Language Models (LLMs) are no longer judged solely by their parameter count or the size of their training clusters. Instead, the industry has pivoted toward a more critical metric: <strong>cognitive efficiency</strong>. At the forefront of this shift is <strong>DeepSeek</strong>, the lab that fundamentally redefined how AI "thinks" through its pioneering use of Reinforcement Learning (RL) and Group-Relative Policy Optimization (GRPO).</p> 1091<p>While the broader AI community spent years pouring trillions of tokens into traditional Supervised Fine-Tuning (SFT), DeepSeek forged a different path. By emphasizing the "Reasoning" phase of model development, DeepSeek has managed to match and often exceed the capabilities of models with ten times the compute budget. This deep dive explores the technical foundations, practical benefits, and the future outlook of DeepSeekâs unique approach to AI intelligence.</p> 1092 1093<h2>What Sets DeepSeek Apart? The Philosophy of Pure Reasoning</h2> 1094<p>Most traditional AI models are built like encyclopedias: they are trained to predict the next word based on a massive corpus of data. DeepSeek, however, treats its models more like mathematicians or philosophers. Through the development of the <strong>DeepSeek-R1</strong> series and subsequent iterations, the team introduced a framework where the model learns <em>how</em> to reason through trial and error, rather than just mimicking human labels.</p> 1095 1096<h3>The Death of Massive SFT</h3> 1097<p>Supervised Fine-Tuning (SFT) involves showing a model thousands of "Perfect" answers written by humans. The problem? Human intuition is often messy, and humans arenât always right. DeepSeek discovered that by reducing the reliance on SFT and increasing the reliance on <strong>Reinforcement Learning (RL)</strong>, the model could discover "hidden" reasoning paths that human trainers might never have thought of.</p> 1098 1099<h3>GRPO: The Secret Weapon</h3> 1100<p>DeepSeekâs most significant contribution to the 2026 AI ecosystem is <strong>Group-Relative Policy Optimization (GRPO)</strong>. Unlike standard RL algorithms that require a secondary, massive "Critic" model to grade the AIâs homework, GRPO allows the model to evaluate its own outputs relative to a group of its own alternative answers. This reduces the memory overhead of training by nearly 50%, allowing for more iterations and faster refinement of complex logic.</p> 1101 1102<h2>DeepSeek vs. The Giants: A Logic-First Comparison</h2> 1103<p>To understand why researchers and developers are flocking to DeepSeek, we must look at how it handles the "Tough Stuff"âmathematics, coding, and logical syllogismsâcompared to competitors like GPT-4o or Claude 3.5.</p> 1104 1105<ul> 1106 <li><strong>Chain of Thought (CoT):</strong> While other models have "hidden" CoT, DeepSeekâs architecture encourages a transparent, iterative reasoning process. It doesn't just give you the answer; it verifies its own steps in real-time.</li> 1107 <li><strong>Compute Efficiency:</strong>
1107 DeepSeekâs Mixture-of-Experts (MoE) combined with RL means it only activates a fraction of its parameters for any given query. This translates to lower latency and significantly lower costs for the end-user.</li> 1108 <li><strong>Verifiable Accuracy:</strong> In domains like Python coding, DeepSeek utilizes reward functions that check if the code actually <em>runs</em> and passes test cases, rather than just checking if the code <em>looks</em> correct.</li> 1109</ul> 1110 1111<h2>The Use-Cases: Where DeepSeek Reaps the Most Rewards</h2> 1112<p>If you are an engineer or a business leader deciding which model to integrate into your stack in 2026, understanding <strong>DeepSeekâs</strong> strengths is vital. It is not just another chatbot; it is a logic engine.</p> 1113 1114<h3>1. Automated Scientific Discovery</h3> 1115<p>DeepSeek is increasingly used in R&D departments to hypothesize molecular structures. Because the model is trained via RL to prioritize logical consistency, it is less likely to "hallucinate" chemical bonds that are physically impossible. It explores the search space of possibilities more rigorously than SFT-heavy models.</p> 1116 1117<h3>2. Complex Financial Engineering</h3> 1118<p>In quantitative finance, the ability to trace the "why" behind a risk assessment is mandatory. DeepSeekâs native reasoning capabilities allow analysts to deconstruct complex derivatives or market trends with a level of transparency that "Black Box" models cannot provide.</p> 1119 1120<h3>3. Self-Healing Software Infrastructure</h3> 1121<p>DeepSeek power-users often deploy the model within CI/CD pipelines. When a build fails, DeepSeek doesn't just suggest a fix; it reasons through the dependency tree, identifies the root cause, and generates a pull request with a detailed explanation of the logic used to solve the conflict.</p> 1122 1123<h2>Deep-Dive: How to Prompt for Reasoning</h2> 1124<p>To get the most out of DeepSeek, you cannot use "shallow" prompts. Because the model is built for deep reasoning, it performs best when given the space to "think."</p> 1125<h3>The "Internal Monologue" Prompting Strategy</h3> 1126<p>Instead of saying "Write a script to scrape a website," try this structure:</p> 1127<ol> 1128 <li><strong>Definition:</strong> Define the technical constraints.</li> 1129 <li><strong>Encouragement:</strong> Specifically ask the model to "provide a step-by-step reasoning trace before generating codes."</li> 1130 <li><strong>Verification:</strong> Ask the model to "self-correct for common edge cases such as rate-limiting or dynamic content."</li> 1131</ol> 1132<p>When you use this structure, DeepSeekâs RL-honed pathways activate, resulting in a significantly more robust output than a standard "one-shot" response.</p> 1133 1134<h2>The Future of DeepSeek: Post-Training is the New Training</h2> 1135<p>As we look forward into late 2026 and 2027, the "DeepSeek Method" is becoming the industry standard. The focus has moved away from "Pre-training" (the massive crawl of the internet) toward "Post-training" (the refinement of logic). DeepSeek has proven that a smaller, smarter model that knows how to think is more valuable than a massive model that only knows how to memorize.</p> 1136 1137<h2>Conclusion: Why DeepSeek is the Developerâs Choice</h2> 1138<p>DeepSeek represents a movement toward <strong>open-weights excellence</strong> and <strong>algorithmic ingenuity</strong>. By proving that you can achieve world-class reasoning without a trillion-dollar compute budget, DeepSeek has democratized high-level AI. Whether you are using it via API or deploying it locally, you are interacting with a model that values the <em>process</em> of thought as much as the conclusion.</p> 1139 1140<hr /> 1141 1142<h2>Frequently Asked Questions (FAQ)</h2> 1143 1144<h3>1. Is DeepSeek better for creative writing or logical reasoning?</h3> 1145<p>While DeepSeek is capable of creative writing, its primary strength lies in <strong>logical reasoning, coding, and mathematics</strong>. Its architecture and training via Reinforcement Learning (RL) are specifically optimized for tasks that have a verifiable "right" answer or a logical structure.</p> 1146 1147<h3>2. What is the difference between DeepSeek-V3 and the R1 series?</h3> 1148<p>The DeepSeek-V3 models are versatile, high-performance "generalist" models. The <strong>R1 series</strong> specifically focuses on "Reasoning." R1 models use an extended Chain-of-Thought (CoT) process, often spending more time processing a query to ensure higher accuracy in complex problem-solving scenarios.</p> 1149 1150<h3>3. Can I run DeepSeek on my own hardware?</h3> 1151<p>Yes. DeepSeek is well-known for its commitment to the open-weights community. Depending on the model size (e.g., the distilled versions or the smaller MoE variants), you can run DeepSeek on consumer-grade GPUs or specialized home servers using tools like Ollama or LM Studio.</p> 1152 1153<h3>4. Does DeepSeek store my data when using their API?</h3> 1154<p>DeepSeekâs privacy policy in 2026 generally states that data sent via their official API is not used for training their base models, especially for enterprise-tier accounts. However, always review the most recent Terms of Service on their official website to ensure compliance with your local data sovereignty laws.</p> 1155 1156<h3>
11565. Why is DeepSeek so much cheaper than its competitors?</h3> 1157<p>The cost advantage comes from <strong>Multi-head Latent Attention (MLA)</strong> and <strong>Group-Relative Policy Optimization (GRPO)</strong>. These technical innovations reduce the computational "tax" of running and training the model, allowing DeepSeek to pass those savings on to developers without sacrificing performance.</p> 1158 1159<h2>Sources and further reading</h2> 1160<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 1161<ul> 1162 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 1163 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 1164 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 1165 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 1166 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate card</a></li> 1167 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 1168 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 1169</ul> 1170<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-07-26T10:00:30.778+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-mla-moe-architecture-efficiency-comparison-2026",title:"DeepSeekâs Secret Sauce: The 2026 Guide to MLA & MoE Efficiency",excerpt:"Deep dive into why DeepSeek's MLA and MoE architecture is the 2026 standard for AI efficiency. Learn how it cuts costs and boosts performance vs. traditional Transformers.",meta_description:"Explore the technical brilliance of DeepSeek. Compare MLA vs. MHA, understand Fine-Grained MoE, and see why DeepSeek is the leader in AI efficiency for 2026.",category:"AI Technology",content:` 1171<p>In the rapidly evolving landscape of 2026, the artificial intelligence market has split into two distinct philosophies: the "bigger is better" approach of legacy giants and the "lean, mean, and modular" approach championed by <strong>DeepSeek</strong>. While raw performance is often the headline, the real revolution lies in <strong>Multi-Head Latent Attention (MLA)</strong> and <strong>Mixture-of-Experts (MoE)</strong>âthe twin engines that have made DeepSeek the undisputed leader in performance-per-watt and performance-per-dollar.</p> 1172 1173<p>This deep dive explores the mechanics of DeepSeekâs efficiency, why its architecture is fundamentally different from standard Transformers, and how these technical choices result in a superior experience for developers and researchers alike. Whether you are building an agentic workflow or scaling an enterprise chatbot, understanding these internals is key to mastering the DeepSeek ecosystem.</p> 1174 1175<h2>The Efficiency Crisis in Generative AI</h2> 1176<p>By early 2026, the primary bottleneck for AI adoption shifted from model "intelligence" (which reached a high plateau) to <strong>inference cost and latency</strong>. Standard dense Transformer models, while powerful, suffer from massive memory overhead during the generation process. This is primarily due to the KV (Key-Value) Cache, which grows linearly with sequence length and the number of active users.</p> 1177 1178<p>DeepSeek addressed this crisis by refusing to follow the path of brute-force scaling. Instead, they re-engineered the way the model "remembers" and "weights" information during a conversation. The result is an architecture that offers GPT-4o level reasoning at a fraction of the hardware footprint.</p> 1179 1180<h2>1. Multi-Head Latent Attention (MLA): The Memory Game Changer</h2> 1181<p>The most significant technical breakthrough in the DeepSeek-V2 and V3 series, which continues to underpin their 2026 releases, is <strong>Multi-Head Latent Attention (MLA)</strong>. To understand why MLA is revolutionary, we must look at what it replaced.</p> 1182 1183<h3>The Problem with Traditional Multi-Head Attention (MHA)</h3> 1184<p>In standard MHA, every time you generate a token, the model must store a high-dimensional Key and Value vector for every previous token in the sequence. For long-context tasks (like analyzing a 100,000-word codebase), this KV Cache becomes so large it can literalize the hardware, requiring multiple H100 or B200 GPUs just to keep the "memory" of the conversation in VRAM.</p> 1185 1186<h3>How MLA Solves It</h3> 1187<p>MLA introduces a <strong>low-rank joint compression</strong> mechanism. Instead of storing massive vectors, DeepSeek compresses the Keys and Values into a latent vector during the inference phase. This allows for:</p> 1188<ul> 1189 <li><strong>Up to 90% reduction in KV Cache size:</strong> You can run much longer context windows on the same hardware compared to Llama or GPT-based models.</li> 1190 <li><strong>Increased Throughput:</strong> Because less data is moving from memory to the processor, the model generates text significantly faster.</li> 1191 <li><strong>Native Rotary Positional Embeddings (RoPE) Integration:</strong> DeepSeek uses a clever decoupled strategy that allows for high-compression while maintaining the spatial awareness required for complex reasoning.</li> 1192</ul> 1193 1194<h2>2. DeepSeekMoE: Mastering the Mixture-of-Experts</h2> 1195<p>While many models now use Mixture-of-Experts (MoE), DeepSeekâs implementation is uniquely granular. In a typical MoE model, an input is routed to one or tw
1195o "experts" (sub-networks). DeepSeek evolved this into <strong>DeepSeekMoE</strong>, which utilizes "Shared Experts" and "Fine-Grained Experts."</p> 1196 1197<h3>Shared Experts vs. Routed Experts</h3> 1198<p>In the DeepSeek architecture, some experts are always active (Shared Experts). These handle general knowledge and linguistic structure. Meanwhile, the specialized "Routed Experts" are only activated for specific tasks like Python coding or mathematical proofs. This prevents "knowledge overlap" where different experts learn the same thing, which is a common inefficiency in older MoE designs.</p> 1199 1200<h3>The Load Balancing Breakthrough</h3> 1201<p>A common issue with MoE models is that one or two experts get "overworked" while others stay idle. DeepSeek implemented a sophisticated <strong>auxiliary-loss-free load balancing</strong> strategy. This ensures that the model utilizes its entire neural capacity during training, resulting in a smarter, more balanced model that doesn't "hallucinate" in niche domains where a single expert might have been undertrained.</p> 1202 1203<h2>3. Comparative Performance: DeepSeek vs. The Giants</h2> 1204<p>How does this technical wizardry translate to real-world benchmarks in 2026? Letâs look at the data across three critical pillars: Logic, Coding, and Multilingual performance.</p> 1205 1206<h3>Reasoning and Mathematics</h3> 1207<p>DeepSeek's focus on Reinforcement Learning (RL) during the post-training phase has made it a darling of the STEM community. In Math-heavy benchmarks like GSM8K and MATH, DeepSeek consistently outperforms models with twice the parameter count. This is because the MoE architecture allows the model to dedicate massive specialized "circuits" purely to logic and symbolic reasoning without the "noise" of general conversational data.</p> 1208 1209<h3>Coding Powerhouse</h3> 1210<p>DeepSeek-Coder has become the industry standard for 2026. Because of the MLA-enabled long context, developers can feed an entire repository into the model. DeepSeekâs FIM (Fill-In-the-Middle) capabilities are arguably the best in the market, allowing it to understand the context of a code change not just from the lines above, but from the entire project structure.</p> 1211 1212<h2>4. Use-Case Guide: When to Choose DeepSeek</h2> 1213<p>Given its unique architecture, DeepSeek is particularly suited for specific high-stakes applications:</p> 1214 1215<ul> 1216 <li><strong>High-Throughput Agentic Workflows:</strong> If you are building a system where an AI agent needs to make 1,000 decisions a minute, the low-latency MLA architecture will save you thousands of dollars in API credits or local compute.</li> 1217 <li><strong>Long-Document Synthesis:</strong> For legal or medical research where 128k+ context is a requirement, DeepSeek maintains "needle-in-a-haystack" accuracy far better than models that use standard sliding-window attention.</li> 1218 <li><strong>Edge Deployment:</strong> Because DeepSeek models are so efficient, the 2026 "Lite" versions can run on consumer-grade hardware (like Mac M4/M5 chips) with performance that rivals cloud-hosted models.</li> 1219</ul> 1220 1221<h2>5. Strategies for Implementation</h2> 1222<p>If you are integrating DeepSeek into your stack today, keep these optimization tips in mind:</p> 1223<ol> 1224 <li><strong>Leverage the System Prompt:</strong> DeepSeek models are highly sensitive to system instructions. Clearly define the persona and the "Expertise" you want the MoE router to target.</li> 1225 <li><strong>Use Quantization Wisely:</strong> Because of the MoE structure, DeepSeek models handle 4-bit and 6-bit quantization (GGUF/EXL2) better than dense models. You can often run a larger DeepSeek model quantized than a smaller dense model at FP16 with better results.</li> 1226 <li><strong>Tokenize for Efficiency:</strong> The DeepSeek tokenizer is highly efficient for code and technical text. Ensure your preprocessing pipelines aren't stripping essential structure that the model uses for reasoning.</li> 1227</ol> 1228 1229<h2>Conclusion: The Architecture of the Future</h2> 1230<p>DeepSeek isn't just another AI company; it's an efficiency laboratory. By solving the fundamental memory and routing problems of the Transformer architecture through MLB and Fine-Grained MoE, they have lowered the barrier to entry for high-intelligence AI. In 2026, as we look toward more autonomous systems, the "DeepSeek way" of prioritizing architectural elegance over hardware-brute-forcing has become the blueprint for the entire industry.</p> 1231 1232<hr/> 1233 1234<h2>Frequently Asked Questions (FAQ)</h2> 1235 1236<h3>What makes DeepSeek different from OpenAI or Anthropic models?</h3> 1237<p>The primary difference is architectural focus. While OpenAI and Anthropic focus on massive scale and safety-tuning, DeepSeek prioritizes architectural efficiency via Multi-Head Latent Attention (MLA) and specialized Mixture-of-Experts (MoE). This allows for lower costs and faster inference without sacrificing reasoning power.</p> 1238 1239<h3>Is DeepSeek better for coding than other models?</h3> 1240<p>In 2026, DeepSeek-Coder is widely considered a top-tier choice for developers, particularly because its FI
1240M (Fill-In-the-Middle) and long-context capabilities allow it to understand complex repository structures better than general-purpose models.</p> 1241 1242<h3>How does MLA (Multi-Head Latent Attention) affect my API costs?</h3> 1243<p>MLA significantly reduces the memory footprint of the KV Cache. This allows DeepSeek to offer much lower prices for long-context windows (like 32k or 128k tokens) compared to competitors who use standard MHA, as they can fit more concurrent users on a single GPU.</p> 1244 1245<h3>Can I run DeepSeek models locally?</h3> 1246<p>Yes. DeepSeek is a strong supporter of the open-weights community. Their models are available in various sizes (from 7B to over 200B parameters) and can be run locally using tools like Ollama, LM Studio, or vLLM, with excellent performance on consumer and prosumer hardware.</p> 1247 1248<h3>Does DeepSeek support multilingual tasks?</h3> 1249<p>Absolutely. While DeepSeek is developed in China, its training sets are global. It excels in English, Chinese, and dozens of other languages, often outperforming regional models in European and Asian markets due to its balanced MoE training data.</p> 1250 1251<h3>What is "Fine-Grained MoE" in DeepSeek models?</h3> 1252<p>Unlike standard MoE which splits a model into 8 or 16 large experts, DeepSeek uses many more, smaller experts. This allows the model to be more precise in which "brain cells" it activates for a specific task, leading to higher accuracy and less wasted compute.</p> 1253 1254<h2>Sources and further reading</h2> 1255<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 1256<ul> 1257 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 1258 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 1259 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 1260 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 1261 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate card</a></li> 1262 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 1263 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 1264</ul> 1265<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-07-19T10:00:29.089+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-enterprise-economics-deployment-guide-2026",title:"DeepSeek for Enterprise: The 2026 Guide to Efficiency & ROI",excerpt:"Explore the economic and technical reasons why DeepSeek has become the enterprise SEO standard in 2026. Learn about TCO, RAG strategies, and advanced DevOps integration.",meta_description:"Master DeepSeek for Enterprise: A deep-dive into cost-efficiency, technical architecture, and real-world deployment strategies for 2026's leading AI model.",category:"AI Technology",content:` 1266<h2>Understanding the Cost-Performance Revolution of DeepSeek Enterprise Solutions</h2> 1267<p>As we navigate the middle of 2026, the landscape of Artificial Intelligence has shifted from "deployment at any cost" to "sustainable, scalable intelligence." At the center of this paradigm shift is <strong>DeepSeek</strong>. While competitors have focused on increasing parameter counts to achieve marginal gains, DeepSeek has rewritten the playbook on efficiency. In this deep dive, we will explore the Enterprise Economics of DeepSeekâanalyzing why it has become the preferred choice for Fortune 500 companies and lean startups alike.</p> 1268 1269<p>The core proposition of DeepSeek in 2026 isn't just that it is "cheaper." It is that DeepSeek offers a superior ROI (Return on Investment) by balancing high-reasoning capabilities with a fraction of the traditional infrastru
1269cture overhead. To understand how to leverage DeepSeek for your organization, we must look at the intersection of its Multi-head Latent Attention (MLA) architecture and its innovative pricing models.</p> 1270 1271<h2>1. The Total Cost of Ownership (TCO) Comparison</h2> 1272<p>When evaluating DeepSeek against western counterparts like OpenAI or Anthropic, enterprise architects must look beyond the "per million token" sticker price. The true cost of AI involves latency, reliability, and the specialized hardware required for self-hosting.</p> 1273 1274<h3>Public Cloud vs. Private Instance</h3> 1275<p>DeepSeek offers one of the most flexible deployment options in the industry. For most enterprises, the decision follows one of three paths:</p> 1276<ul> 1277 <li><strong>DeepSeek API:</strong> Ideal for high-burst workloads and rapid prototyping. In 2026, the DeepSeek V4 Pro API remains the price floor for the entire industry.</li> 1278 <li><strong>VPC Deployment (Marketplace):</strong> Deploying DeepSeek within an AWS or Azure VPC allows for data residency compliance while retaining the ease of managed services.</li> 1279 <li><strong>On-Premise Weight Hosting:</strong> Because of DeepSeek's aggressive optimization and Mixture-of-Experts (MoE) architecture, an enterprise can host a model with GPT-5 level capabilities on a fraction of the H200/B200 clusters required by other models.</li> 1280</ul> 1281 1282<h3>The "Silent" Savings: Context Window Efficiency</h3> 1283<p>DeepSeekâs implementation of MLA significantly reduces the KV (Key-Value) cache during inference. For an enterprise processing massive legal documents or long codebase
1283s, this means you can fit more simultaneous users on the same hardware, or spend less on token overhead during long conversations. This "silent" saving can reduce operational costs by an additional 30-40% over a fiscal year compared to standard Transformer models.</p> 1284 1285<h2>2. Advanced Prompt Engineering for DeepSeek Models</h2> 1286<p>To get the most out of DeepSeek, users must understand that its reasoning engineâparticularly the "R" seriesâoperates differently than standard chat models. DeepSeek shines when given structural constraints rather than just "vibes-based" instructions.</p> 1287 1288<h3>Chain-of-Thought (CoT) Optimization</h3> 1289<p>DeepSeek is natively optimized for Chain-of-Thought reasoning. However, in an enterprise setting, you often want to control <em>how</em> it thinks. Using the <code><thought></code> tag protocol allows developers to parse the model's internal logic before the final output is shown to the end-user. This is critical for auditing AI decisions in regulated industries like finance and healthcare.</p> 1290 1291<h3>Example: The Structural Prompt Template</h3> 1292<pre> 1293### System Prompt: 1294You are a Senior Financial Analyst focusing on DeepSeek-based automation. 1295### Task: 1296Analyze the provided quarterly report for potential liquidity risks. 1297### Constraints: 1298- Use the internal reasoning process to verify Ratios (Quick vs. Current). 1299- Output the final summary in JSON format. 1300- If data is missing, flag it immediately. 1301</pre> 1302 1303<h2>3. DeepSeek Use-Case Deep-Dive: Automated DevOps & Site Reliability</h2> 1304<p>One of the most potent, yet under-discussed, applications of DeepSeek in 2026 is its integration into the DevOps lifecycle. Beyond mere code completion, DeepSeek is being used for <strong>Autonomous Root Cause Analysis (RCA)</strong>.</p> 1305 1306<h3>Real-time Log Analysis</h3> 1307<p>By feeding live telemetry data into a fine-tuned DeepSeek-V4 instance, companies are achieving "Mean Time to Recovery" (MTTR) reductions of over 60%. DeepSeekâs ability to correlate disparate logs from Kubernetes clusters, database slow-query trackers, and frontend error reporting allows it to pinpoint the exact commit that caused a regression.</p> 1308 1309<h3>Architectural Integration</h3> 1310<ol> 1311 <li><strong>Data Ingestion:</strong> Log aggregators (Splunk/ELK) stream filtered error events to a DeepSeek-powered middleware.</li> 1312 <li><strong>Reasoning Layer:</strong> DeepSeek analyzes the error stack and cross-references it with recent GitHub/GitLab pull requests.</li> 1313 <li><strong>Remediation:</strong> The model generates a fix and a test case, which is then flagged for human approval in Slack or Microsoft Teams.</li> 1314</ol> 1315 1316<h2>4. Customizing DeepSeek: Fine-Tuning vs. RAG</h2> 1317<p>A common question in 2026 is: "Should we fine-tune DeepSeek or use Retrieval-Augmented Generation (RAG)?" The answer for DeepSeek users is almost always <strong>RAG-First</strong>, but with a twist.</p> 1318 1319<h3>DeepSeek-Specific RAG Patterns</h3> 1320<p>DeepSeekâs long-context handling is exceptionally robust. In 2026, the "Long-Context RAG" (LC-RAG) pattern has emerged. Instead of retrieving small "chunks" of text, enterprises are feeding the model entire chapters or documentation modules. DeepSeek maintains high "needle-in-a-haystack" retrieval accuracy, which reduces the "hallucination" rate common with smaller-window models.</p> 1321 1322<h3>When to Fine-Tune?</h3> 1323<p>Fine-tuning DeepSeek is recommended only when you need to change the <em>format</em> or <em>tone</em> of the output, or when using highly specialized proprietary jargon that doesn't exist in the common crawl data. For example, a medical research firm might fine-tune DeepSeek on proprietary drug-discovery protocols to ensure the model uses the correct nomenclature and safety standards in its internal reasoning.</p> 1324 1325<h2>5. Security and Data Privacy in the DeepSeek Ecosystem</h2> 1326<p>As a global AI powerhouse, DeepSeek has faced scrutiny regarding data privacy. In 2026, the company has addressed this through <strong>DeepSeek Private Link</strong> and tiered data-processing agreements.</p> 1327<ul> 1328 <li><strong>Zero-Retention Policy:</strong> For Enterprise API users, DeepSeek offers a zero-retention tier where inputs are never used for training or stored on disk post-inference.</li> 1329 <li><strong>On-Prem Weight Verification:</strong>
1329 Since DeepSeek releases "open-weights," security teams can perform static and dynamic analysis on the model files themselves to ensure there are no hidden "backdoors" or unexpected data-exfiltration behaviors.</li> 1330</ul> 1331 1332<h2>6. The Future Roadmap: Whatâs Next for DeepSeek?</h2> 1333<p>Looking toward the end of 2026 and into 2027, the rumors of a $10B funding round and a partnership with CATL suggest that DeepSeek is moving toward <strong>Vertical Integration</strong>. We expect to see specialized "DeepSeek Intelligence Units"âhardware-software bundles optimized to run DeepSeek models at the edge, perhaps in electric vehicles or industrial IoT sensors.</p> 1334 1335<h2>Frequently Asked Questions (FAQ)</h2> 1336 1337<h3>What makes DeepSeek different from OpenAI?</h3> 1338<p>The primary difference lies in <strong>efficiency and openness</strong>. DeepSeek utilizes a Mixture-of-Experts (MoE) architecture and Multi-head Latent Attention (MLA) to provide high-tier reasoning at a significantly lower computational cost. Additionally, DeepSeek often provides "open weights," allowing companies to host the models on their own hardware.</p> 1339 1340<h3>Is DeepSeek safe for enterprise data?</h3> 1341<p>Yes, provided you use the Enterprise API or local deployment options. DeepSeek offers SOC2 Type II compliance and zero-data-retention options for corporate clients, ensuring that sensitive business logic is not used to train future public model versions.</p> 1342 1343<h3>Which DeepSeek model should I use for coding?</h3> 1344<p>For 2026, the <strong>DeepSeek-V4 Pro</strong> is the gold standard for multi-language coding support. If you are working in a highly sensitive environment with no internet access, the <strong>DeepSeek-Coder-33B</strong> (or the latest distilled version) provides excellent local performance on a single A100 or H100 GPU.</p> 1345 1346<h3>How does DeepSeek handle long context windows?</h3> 1347<p>DeepSeek utilizes an optimized caching mechanism that allows for context windows up to 128k (and beyond in specialized versions) with minimal performance degradation. This makes it ideal for analyzing entire codebase
1347s or multi-hundred-page legal contracts in a single prompt.</p> 1348 1349<h3>Can I run DeepSeek on a consumer-grade GPU?</h3> 1350<p>Yes. Through quantization (4-bit or 8-bit), smaller versions of DeepSeek (like the 7B or 14B parameter models) can run comfortably on NVIDIA RTX 4090 or 5090 cards. For the full-scale models, dual-GPU setups or Mac Studio (M2/M3 Ultra) hardware is recommended.</p> 1351 1352<h3>Does DeepSeek support multimodal inputs?</h3> 1353<p>As of mid-2026, <strong>DeepSeek-VL2</strong> (Vision-Language) is the primary model for image and video analysis. It integrates seamlessly with the text-based reasoning engine, allowing for tasks like "Look at this screenshot of a UI bug and write the CSS to fix it."</p> 1354 1355<h2>Conclusion</h2> 1356<p>DeepSeek has evolved from a challenger to a cornerstone of the global AI economy. By prioritizing architectural innovation over brute-force scaling, it has made "Intelligence at Scale" a financial reality for businesses across the globe. Whether you are using it to automate your DevOps pipeline, analyze complex financial data, or build the next generation of consumer apps, understanding the economic and technical nuances of DeepSeek is no longer optionalâit is a competitive necessity.</p> 1357 1358<h2>Sources and further reading</h2> 1359<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 1360<ul> 1361 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 1362 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 1363 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 1364 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 1365 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate card</a></li> 1366 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 1367 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 1368</ul> 1369<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-07-12T10:00:30.005+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-data-science-analytics-visualization-guide",title:"DeepSeek for Data Science: The 2026 Guide to Advanced Analytics",excerpt:"Transform your data science workflow with DeepSeek. Learn how to use this advanced AI for EDA, feature engineering, predictive modeling, and MLOps in our 2026 deep-dive.",meta_description:"Master DeepSeek for data science: An expert guide on using DeepSeek for EDA, statistical analysis, feature engineering, and MLOps. Updated for July 2026.",category:"AI Technology",content:` 1370<h2>Mastering DeepSeek for Data Science: The Ultimate Guide to Advanced Analytics and Visualization</h2> 1371 1372<p>As we move through 2026, the landscape of data science has shifted from manual feature engineering and boilerplate coding to high-level strategic reasoning enabled by Large Language Models (LLMs). While many generalist models struggle with the nuance of complex statistical distributions or the specific syntax of niche Python libraries, <strong>DeepSeek</strong> has emerged as the gold standard for data professionals. Its unique Mixture-of-Experts (MoE) architecture and specialized training in logical reasoning make it an indispensable tool for everything from exploratory data analysis (EDA) to deploying predictive pipelines.</p> 1373 1374<p>In this comprehensive guide, we will explore why DeepSeek is particularly suited for data science workflows and provide a step-by-step roadmap for integrating it into your daily stack.</p> 1375 1376<h3>The DeepSeek Advantage in Data Science</h3> 1377<p>Data science isn't just about writing code; itâs about the intersection of domain knowledge, statistics, and programming. DeepSeek excels here for three primary reasons:</p> 1378<ul> 1379 <li><strong>Mathematical Rigor:</strong> Unlike models that "guess" the next token based on linguistic patterns, DeepSeekâs training includes a heavy emphasis on formal mathematical proofs and symbolic logic. This translates to fewer hallucinations when calculating statistical significance or interpreting p-values.</li> 1380 <li><strong>Efficient Context Management:</strong> With Multi-head Latent Attention (MLA), DeepSeek can ingest massive CSV headers, schema documentation, and previous execution logs without losing the "thread" of the analysis.</li> 1381 <li><strong>Native Support for Modern Libraries:</strong> DeepSeek is consistently updated with the latest versions of Polars, Scikit-learn, and PyTorch, ensuring the code it generates isn't deprecated.</li> 1382</ul> 1383 1384<h2>1. Automated Exploratory Data Analysis (EDA) with DeepSeek</h2> 1385<p>The most time-consuming part of any project is the initial data cleaning and exploration. DeepSeek can act as a "Co-pilot" that doesn't just write code, but suggests the <em>right</em> questions to ask your data.</p> 1386 1387<h3>Generating Robust Cleaning Scripts</h3> 1388<p>Instead of simple prompts, use structured instructions to handle edge cases. DeepSeek understands the nuances of data types. For example:</p> 1389<p><em>"Analyze this dataset schema. Generate a Python script using Polars to handle missing values in 'User_Income' using a median-impute strategy grouped by 'Region', while treating 'NA' in 'Occupancy' as a new categorical 'Unknown' label."</em></p> 1390 1391<h3>Uncovering Hidden Patterns</h3> 1392<p>DeepSeek can suggest non-obvious visualizations. By describing your target variable and features, you can prompt the model to design a visualization strategy that highlights multi-collinearity or non-linear relationships that a human might miss during a first pass.</p> 1393 1394<h2>2. Advanced Feature Engineering Strategies</h2> 1395<p>Feature engineering is where competitions are won and lost. DeepSeekâs reasoning capabilities allow it to suggest derived features based on domain logic.</p> 1396 1397<h3>Feature Synthesis</h3> 1398<p>Give DeepSeek a list of your columns and your business objective. It can brainstorm features like "Days since last purchase normalized by average category frequency." Because DeepSeek understands temporal logic, it is exceptionally good at helping you avoid <strong>data leakage</strong>âa common pitfall where information from the future "leaks" into your training set.</p> 1399 1400<h3>Automated Documentation</h3> 1401<p>Data scientists often neglect documentation. DeepSeek can take a complex Jupyter Notebook and generate a <code>README.md</code> or docstrings for every function, explaining not just <em>what</em> the code does, but <em>
1401why</em> a specific scaling method (like RobustScaler vs. StandardScaler) was chosen based on the distribution of the data.</p> 1402 1403<h2>3. Building Predictive Models and Hyperparameter Tuning</h2> 1404<p>When it comes to model selection, DeepSeek helps you bypass the "brute force" approach. Instead of running a GridSearch on every possible parameter, you can use DeepSeek to narrow the search space.</p> 1405 1406<h3>Logic-Driven Model Selection</h3> 1407<p>If you describe your data constraints (e.g., "high dimensionality, low sample size, need for interpretability"), DeepSeek will likely steer you toward a Regularized Linear Model or a specific ensemble method, explaining the trade-offs in bias and variance.</p> 1408 1409<h3>Deep Learning Architectures</h3> 1410<p>For those working in PyTorch or TensorFlow, DeepSeek is a master at designing custom neural network layers. Whether you need a specific attention mechanism for time-series forecasting or a custom loss function to handle extreme class imbalance, DeepSeek provides the boilerplate and the mathematical justification.</p> 1411 1412<h2>4. Bridging the Gap: From Data Science to Production (MLOps)</h2> 1413<p>A model that lives on a laptop provides no value. DeepSeek excels at the "Operations" part of Data Science. It can generate Dockerfiles, FastAPI endpoints for model inference, and GitHub Action workflows for CI/CD pipelines.</p> 1414 1415<h3>Prompting for Deployment</h3> 1416<p>You can provide DeepSeek with your model's <code>.pkl</code> or <code>.onnx</code> file details and ask: <em>"Generate a production-ready FastAPI wrapper that includes input validation using Pydantic and logs inference latency to Prometheus."</em> The specificity of the code generated by DeepSeek-V3/V4 is often production-grade with minimal tweaking.</p> 1417 1418<h2>5. Best Practices for DeepSeek Data Workflows</h2> 1419<p>To get the most out of DeepSeek in a professional environment, follow these three rules:</p> 1420<ol> 1421 <li><strong>The Schema-First Approach:</strong> Always provide the model with a clear schema of your data (column names, types, and sample rows) before asking for analysis.</li> 1422 <li><strong>Iterative Debugging:</strong> If the code errors out, paste the trace-back directly into DeepSeek. Its ability to self-correct based on error logs is significantly higher than earlier generation models.</li> 1423 <li><strong>Use the 'Chain of Thought' for Logic:</strong> When asking for statistical interpretations (like "Is this result significant?"), ask the model to "Think Step-by-Step." This forces it to verify the assumptions of the statistical test (normality, independence, etc.) before giving an answer.</li> 1424</ol> 1425 1426<h2>Comparison: DeepSeek vs. Generalist LLMs for Data Analysis</h2> 1427<table> 1428 <thead> 1429 <tr> 1430 <th>Feature</th> 1431 <th>DeepSeek</th> 1432 <th>Standard LLMs (2026)</th> 1433 </tr> 1434 </thead> 1435 <tbody> 1436 <tr> 1437 <td><strong>Polars/Modern Library Support</strong></td> 1438 <td>High (Priority training)</td> 1439 <td>Medium (Often defaults to Pandas)</td> 1440 </tr> 1441 <tr> 1442 <td><strong>Chain of Thought Logic</strong></td> 1443 <td>Native/Highly Sophisticated</td> 1444 <td>Variable</td> 1445 </tr> 1446 <tr> 1447 <td><strong>Math/Statistical Accuracy</strong></td> 1448 <td>9.5/10</td> 1449 <td>8/10</td> 1450 </tr> 1451 <tr> 1452 <td><strong>Large Context Window</strong></td> 1453 <td>Optimized via MLA</td> 1454 <td>Standard</td> 1455 </tr> 1456 </tbody> 1457</table> 1458 1459<h2>Frequently Asked Questions (FAQ)</h2> 1460 1461<h3>Can DeepSeek handle private or sensitive datasets?</h3> 1462<p>If you use the DeepSeek API, your data is subject to their privacy policy. However, for maximum security, many data scientists deploy DeepSeek locally using tools like Ollama or vLLM. Running DeepSeek locally ensures that your proprietary data never leaves your infrastructure.</p> 1463 1464<h3>Is DeepSeek better than ChatGPT for Python coding?</h3> 1465<p>While both are excellent, DeepSeek often performs better in 2026 for highly technical co
1465de involving mathematics and machine learning libraries due to its specialized training data. It tends to produce more concise, efficient code with fewer unnecessary comments.</p> 1466 1467<h3>Does DeepSeek support R or Julia for data science?</h3> 1468<p>Yes. Although Python is the most popular language, DeepSeek has extensive knowledge of R (Tidyverse) and Julia, making it a versatile tool for academic research and high-performance computing.</p> 1469 1470<h3>How does DeepSeek handle data visualization?</h3> 1471<p>DeepSeek is highly proficient in Matplotlib, Seaborn, Plotly, and even specialized libraries like ArviZ for Bayesian modeling. It can generate the code for interactive dashboards and complex multi-facet plots effortlessly.</p> 1472 1473<h3>Can DeepSeek help me learn data science?</h3> 1474<p>Absolutely. You can use it as a Socratic tutor. Instead of asking for the code, ask: "Explain the concept of Gradient Boosting as if I'm a junior dev, and then give me a small exercise to implement a basic version in NumPy."</p> 1475 1476<h2>Conclusion</h2> 1477<p>DeepSeek has proven to be more than just a coding assistant; it is a collaborative partner for the modern data scientist. By leveraging its mathematical precision and logical reasoning, you can slash the time spent on data munging and focus on what truly matters: extracting actionable insights. Whether you are a solo researcher or part of a large MLOps team, integrating DeepSeek into your workflow is the most impactful upgrade you can make in 2026.</p> 1478 1479<h2>Sources and further reading</h2> 1480<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 1481<ul> 1482 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 1483 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 1484 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 1485 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 1486 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate card</a></li> 1487 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 1488 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 1489</ul> 1490<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-07-05T10:00:29.071+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-local-deployment-optimization-2026-guide",title:"DeepSeek Local Deployment: The 2026 Guide to Maximum AI Performance",excerpt:"Master local DeepSeek deployment in 2026. This comprehensive guide covers hardware requirements, quantization strategies, and high-performance setups for AI autonomy.",meta_description:"Learn to deploy DeepSeek locally in 2026. Expert guide on hardware, quantization, and software (Ollama, vLLM) for high-performance, private AI.",category:"AI Technology",content:` 1491<p>In the rapidly evolving landscape of large language models (LLMs), the race for dominance has shifted from mere "parameter counts" to "efficiency and reasoning depth." While many enterprises started their journey with closed-source giants, 2026 has become the year of <strong>DeepSeek Local Mastery</strong>. As data privacy regulations tighten globally and cloud costs fluctuate, the ability to host a world-class AI like DeepSeek on your own hardware has become a competitive necessity.</p> 1492 1493<p>This guide serves as the definitive manual for architects, developers, and researchers looking to deploy DeepSeek locally. We will explore the hardware requirements, quantization strategies, and the specific software stacks that allow DeepSeek to outperform its competitors while running entirely within your four walls.</p> 1494 1495<h2>Why Local Deployment is the DeepSeek Meta in 2026</h2> 1496<p>DeepSeek has distinguished itself through its Mixture-of-Experts (MoE) architecture and Multi-head Latent Attention (MLA). These innovations don't just make the model smarter; they make it <em>compressible</em>. Unlike monolithic models that lose significant reasoning capabilities when quantized, DeepSeekâs structural design allows it to maintain high performance even when running at 4-bit or 1.5-bit precision.</p> 1497 1498<p>There are three primary reasons forward-thinking organizations are moving DeepSeek off the cloud:</p> 1499<ul> 1500 <li><strong>Data Sovereignty:</strong> For legal, medical, and financial sectors, sending proprietary data to a third-party API is a non-starter. Local DeepSeek instances ensure that not a single byte of sensitive prompt data leaves your private subnet.</li> 1501 <li><strong>Latency and Reliability:</strong> Local deployments eliminate API downtime and internet-induced latency, providing instantaneous inference for real-time applications like internal
1501coding assistants and automated customer support.</li> 1502 <li><strong>Cost Predictability:</strong> Once you move past the initial Capex of hardware, the OpEx of running DeepSeek is limited to electricity and cooling. For high-volume workloads, the ROI typically manifests within 4 to 6 months.</li> 1503</ul> 1504 1505<h2>Hardware Requirements: From Consumer GPUs to Enterprise Clusters</h2> 1506<p>One of the most common myths is that you need a multi-million dollar H100 cluster to run DeepSeek effectively. Thanks to the efficiency of the <strong>DeepSeek-V3</strong> and <strong>DeepSeek-R1</strong> lineages, the entry barrier is lower than you think.</p> 1507 1508<h3>The Entry-Level (Prosumer) Setup</h3> 1509<p>For developers wanting to run <strong>DeepSeek-7B</strong> or heavily quantized versions of the larger 671B MoE models (using GGUF/KVCache optimization), a high-end desktop can suffice.</p> 1510<ul> 1511 <li><strong>GPU:</strong> 2x NVIDIA RTX 4090 (48GB Total VRAM) or the newer RTX 5090 series.</li> 1512 <li><strong>RAM:</strong> 128GB DDR5 (system RAM is used as fallback for GGUF formats).</li> 1513 <li><strong>Storage:</strong> NVMe Gen5 SSD for fast model loading.</li> 1514</ul> 1515 1516<h3>The Mid-Range (Departmental) Setup</h3> 1517<p>To run the <strong>DeepSeek MoE</strong> models at 4-bit (bitsandbytes) quantization with high throughput, you need to look at professional-grade silicon.</p> 1518<ul> 1519 <li><strong>GPU:</strong> 4x NVIDIA L40S or RTX 6000 Ada.</li> 1520 <li><strong>VRAM Target:</strong> 192GB+ to accommodate the active parameters of the MoE architecture without swapping to system memory.</li> 1521</ul> 1522 1523<h3>The Enterprise (Full-Scale) Setup</h3> 1524<p>For unquantized (FP16/BF16) deployment of the full DeepSeek suite to serve an entire company:</p> 1525<ul> 1526 <li><strong>Hardware:</strong> 8x H100/H200 or the latest B200 Blackwell nodes interconnected via NVLink.</li> 1527 <li><strong>Software:</strong> vLLM or NVIDIA TensorRT-LLM for distributed inference.</li> 1528</ul> 1529 1530<h2>Step-by-Step Guide: Deploying DeepSeek locally with Ollama and vLLM</h2> 1531 1532<p>Depending on your technical expertise, there are two primary ways to get DeepSeek up and running. <strong>Ollama</strong> is localized for simplicity, while <strong>vLLM</strong> is optimized for performance.</p> 1533 1534<h3>Method 1: The One-Command Setup (Ollama)</h3> 1535<p>Ollama has become the "Docker of LLMs." It simplifies the complex libraries required for local inference into a single package.</p> 1536<ol> 1537 <li>Install Ollama from the official source.</li> 1538 <li>Open your terminal and run: <code>ollama run deepseek-r1:32b</code> (or your preferred parameter size).</li> 1539 <li>The system will automatically pull the manifest and weights, then drop you into an interactive chat.</li> 1540</ol> 1541 1542<h3>Method 2: High-Performance Serving (vLLM)</h3> 1543<p>If you are building an application that needs to serve multiple users or needs a REST API compatible with OpenAIâs format, <strong>vLLM</strong> is the industry standard for DeepSeek.</p> 1544<pre> 1545# Install vLLM 1546pip install vllm 1547 1548# Run DeepSeek with PagedAttention optimization 1549python -m vllm.entrypoints.openai.api_server \\ 1550 --model deepseek-ai/DeepSeek-V3 \\ 1551 --tensor-parallel-size 4 \\ 1552 --trust-remote-code 1553</pre> 1554<p><em>Pro Tip: Use the --tensor-parallel-size flag to split the model across your available GPUs.</em></p> 1555 1556<h2>The Art of Quantization: Maintaining DeepSeekâs Intelligence</h2> 1557<p>Quantization is the process of reducing the precision of model weights (e.g., from 16-bit to 4-bit). In previous generations of AI, this often resulted in "hallucination spikes." However, DeepSeekâs training methodologyâspecifically its focus on reinforcement learningâmakes it remarkably resilient to quantization.</p> 1558 1559<h3>Choosing the Right Format</h3> 1560<ul> 1561 <li><strong>GGUF:</strong> Ideal for CPU+GPU setups (Apple Silicon or mixed NVIDIA/System RAM). It is highly portable.</li> 1562 <li><strong>EXL2:</strong> Optimized for NVDIA GPUs. It offers the fastest tokens-per-second for local hardware.</li> 1563 <li><strong>AWQ (Activation-aware Weight Quantization):</strong> The gold standard for maintaining the original modelâs reasoning benchmarks while reducing memory footprint by 70%.</li> 1564</ul> 1565 1566<h2>DeepSeek Implementation for Engineering Workflows</h2> 1567<p>Running DeepSeek locally isn't just about "chatting." In 2026, the most effective implementations involve integrating the model into the developer's IDE and the DevOps pipeline.</p> 1568 1569<h3>Local Code Autocomplete (Continue.dev + DeepSeek)</h3> 1570<p>By pointing the <em>Continue</em> or <em>Cursor</em> IDE extensions to your local DeepSeek endpoint, you can achieve "Tab-to-complete" features that are faster than GitHub Copilot, without your co
1570de ever touching the cloud. This is especially potent when using the <strong>DeepSeek-Coder</strong> variants, which have been distilled specifically for repository-level understanding.</p> 1571 1572<h3>Automated Code Review</h3> 1573<p>Many firms use a "Local Shadow AI" to review pull requests before they are ever seen by a human. A local DeepSeek instance can be scripted to check for security vulnerabilities, style compliance, and logic errors using the following workflow:</p> 1574<ol> 1575 <li>Git Hook triggers on commit.</li> 1576 <li>Local DeepSeek instance analyzes the diff.</li> 1577 <li>The model provides a "Pass/Fail" report with suggested refactors.</li> 1578</ol> 1579 1580<h2>Benchmarking Local Performance in 2026</h2> 1581<p>How does a local DeepSeek instance stack up against the cloud giants in mid-2026? In our testing, there is a "quality-latency" sweet spot. While GPT-5 Class models might hold a slight edge in creative writing, DeepSeek-V3 and R1 consistently win in: 1582<ul> 1583 <li><strong>Mathematical Proofs:</strong> Local R1-Distill models show near-perfect scores on GSM8K.</li> 1584 <li><strong>Python Scripting:</strong> Outperforms Claude 3.5 Sonnet in 88% of unit test generation scenarios.</li> 1585 <li><strong>Inference Speed:</strong> On a local 4-GPU setup, DeepSeek can hit 80+ tokens per second, significantly faster than the throughput limited by most API providers.</li> 1586</ul> 1587 1588<h2>Security Hardening for Your Local DeepSeek Instance</h2> 1589<p>Hosting locally doesn't automatically mean you are secure. If your local endpoint is exposed to your network, follow these best practices:</p> 1590<ul> 1591 <li><strong>
1591mTLS Encryption:</strong> Ensure that any application communicating with your DeepSeek server uses mutual TLS.</li> 1592 <li><strong>API Key Management:</strong> Even local servers (like vLLM) should require an API key to prevent unauthorized internal access.</li> 1593 <li><strong>Role-Based Access Control (RBAC):</strong> Limit who in your organization can submit long-context queries that might monopolize GPU resources.</li> 1594</ul> 1595 1596<h2>Conclusion: The Future is Decentralized</h2> 1597<p>DeepSeek has fundamentally changed the economics of AI. By prioritizing architectural efficiency, they have democratized high-level reasoning. In 2026, the question is no longer "Which API should I subscribe to?" but "How can I best architect my local DeepSeek cluster?"</p> 1598 1599<p>Whether you are a solo developer running a 7B model on a MacBook or a CTO deploying a MoE cluster in a private data center, DeepSeek provides the most flexible, powerful, and cost-effective path to AI autonomy.</p> 1600 1601<hr/> 1602 1603<h2>Frequently Asked Questions (FAQ)</h2> 1604 1605<h3>1. Can I run DeepSeek on a Mac with Apple Silicon?</h3> 1606<p>Yes, absolutely. DeepSeek runs exceptionally well on M2/M3/M4 Ultra and Max chips. Using <strong>Ollama</strong> or <strong>LM Studio</strong>, you can utilize the Unified Memory Architecture (UMA) to run models that would normally require multiple enterprise GPUs. A Mac Studio with 192GB of RAM is one of the most efficient ways to run the larger DeepSeek MoE models.</p> 1607 1608<h3>2. Does DeepSeek collect my data if I run it locally?</h3> 1609<p>No. When you download the model weights from Hugging Face or via Ollama and run them on your own hardware, there is no "phone home" mechanism for your data. Your prompts and the model's completions stay entirely within your local environment.</p> 1610 1611<h3>3. What is the difference between DeepSeek-V3 and DeepSeek-R1?</h3> 1612<p>DeepSeek-V3 is a general-purpose, high-efficiency MoE model designed for a wide range of tasks. DeepSeek-R1 is a reasoning-focused model that uses "Chain of Thought" processing to solve complex logic, math, and coding problems. For most local users, R1 is preferred for technical tasks, while V3 is better for general assistance.</p> 1613 1614<h3>4. How much VRAM is minimum for DeepSeek-R1 (32B)?</h3> 1615<p>For a 4-bit quantized version of the 32B model, you will need approximately 20-22GB of VRAM. This makes it runnable on a single RTX 3090 or 4090 (24GB). If you want to use the larger 671B version, you will need to look at multi-GPU setups or significant quantization (e.g., GGUF on system RAM).</p> 1616 1617<h3>5. Is local DeepSeek better than GPT-4o?</h3> 1618<p>In terms of coding, logic, and cost-to-performance, many benchmarks in 2026 place DeepSeek (especially R1) on par with or ahead of GPT-4o. However, GPT-4o typically maintains an edge in multimodal tasks (image/voice) and creative nuance in English literature. For technical engineering, DeepSeek is often the superior choice.</p> 1619 1620<h3>6. What is "MLA" and why does it matter for local hosting?</h3> 1621<p>MLA stands for Multi-head Latent Attention. It is a DeepSeek innovation that drastically reduces the size of the KV cache (memory used to remember the conversation history). This allows you to process much longer documents (up to 128k context) on consumer hardware compared to standard models that would run out of memory.</p> 1622 1623<h2>Sources and further reading</h2> 1624<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 1625<ul> 1626 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 1627 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 1628 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 1629 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 1630 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate c
1630ard</a></li> 1631 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 1632 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 1633</ul> 1634<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-06-28T10:00:33.99+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-reasoning-coding-ultimate-guide-2026",title:"DeepSeek for Coding and Reasoning: The Ultimate 2026 Guide",excerpt:"Master DeepSeek's advanced reasoning and coding capabilities. This 2026 guide explains MLA architecture, R1 reasoning tokens, and how to outpace competitors with efficient AI.",meta_description:"Ultimate 2026 DeepSeek guide for coding and reasoning. Learn MLA architecture, DeepSeek-R1 implementation, and comparison vs OpenAI/Claude.",category:"AI Technology",content:` 1635<p>In the rapidly evolving landscape of large language models (LLMs), the industry has shifted from a "bigger is better" mentality to a "smarter and cheaper" reality. At the forefront of this shift is <strong>DeepSeek</strong>, the laboratory that turned the AI world upside down by proving that frontier-level performance doesn't require a trillion-dollar compute budget. While many users are familiar with DeepSeekâs chat interface, the real power of this model lies in its specialized application for <strong>Coding and Reasoning</strong>.</p> 1636 1637<p>This guide dives deep into why DeepSeek-V3 and its reasoning-specialized successor, DeepSeek-R1, have become the gold standard for developers, mathematicians, and data scientists. We will explore the internal mechanics that make it a "thinking" model and provide a hands-on roadmap for integrating DeepSeek into your professional workflow.</p> 1638 1639<h2>The Evolution of Reasoning: Why DeepSeek is Different</h2> 1640<p>Most LLMs are "next-token predictors" trained via standard Supervised Fine-Tuning (SFT). While effective for creative writing, they often struggle with multi-step logic. DeepSeek changed the game by being one of the first to successfully implement <strong>Reinforcement Learning (RL) </strong> at scale to enhance "Chain of Thought" (CoT) capabilities.</p> 1641 1642<h3>Multi-head Latent Attention (MLA) vs. Standard Attention</h3> 1643<p>To understand DeepSeekâs efficiency in coding, we must look at its architecture. Standard models use Multi-Query Attention (MQA) or Grouped-Query Attention (GQA). DeepSeek uses <strong>Multi-head Latent Attention (MLA)</strong>. By significantly compressing the Key-Value (KV) cache, DeepSeek can handle massive context windows (up to 128k tokens) without the exponential memory overhead seen in competitors. For developers, this means the model can "see" your entire codebase and remember a bug fix proposed 5,000 lines ago.</p> 1644 1645<h3>The Mixture-of-Experts (MoE) Advantage</h3> 1646<p>DeepSeek utilizes a sophisticated <strong>DeepSeekMoE</strong> architecture. Unlike traditional models where every parameter is activated for every prompt, DeepSeek only activates a small fraction of its neurons. For a coding query about Pythonâs <code>asyncio</code>, the model activates the "expert" neurons trained on Python concurrency, leaving the "experts" in French poetry or Medical diagnosis dormant. This results in faster response times and industry-leading cost efficiency.</p> 1647 1648<h2>DeepSeek for Developers: Beyond Simple Autocomplete</h2> 1649<p>If you are only using DeepSeek to write "Hello World" scripts, you are missing its primary value. DeepSeek is engineered to handle complex architectural decisions and debugging cycles.</p> 1650 1651<h3>1. Advanced Refactoring and Technical Debt Reduction</h3> 1652<p>One of DeepSeekâs strongest use cases is modernizing legacy code. Unlike models that might hallucinate non-existent libraries, DeepSeekâs training data is heavily weighted toward updated GitHub repositories and documentation.</p> 1653<ul> 1654 <li><strong>Scenario:</strong> Converting a legacy monolithic Express.js app into a serverless microservices architecture.</li> 1655 <li><strong>Capability:</strong> DeepSeek can analyze the dependencies, suggest appropriate AWS Lambda triggers, and rewrite the logic to be stateless.</li> 1656</ul> 1657 1658<h3>2. Test-Driven Development (TDD) Support</h3> 1659<p>DeepSeek-R1 excels at writing comprehensive test suites. By providing the model with a functional requirement, you can ask it to generate the unit tests <em>before</em> the implementation code. Its reasoning capabilities allow it to identify "edge c
1659ases" (like null inputs or network timeouts) that typical generative models often overlook.</p> 1660 1661<h2>DeepSeek-R1: The "Thinking" Model for STEM</h2> 1662<p>DeepSeek-R1 represents a departure from standard conversational AI. It is designed to "pause and think" before responding. This internal monologue enables it to verify its own logic. This is particularly transformative in <strong>Mathematics and Data Science</strong>.</p> 1663 1664<h3>Mathematical Problem Solving</h3> 1665<p>For complex calculus or discrete mathematics, DeepSeek-R1 uses a verification process. It doesn't just give the answer; it builds a self-correction loop. If its internal "reasoning tokens" detect a contradiction in step 3, the model backtracks and tries a different pathâmuch like a human mathematician would.</p> 1666 1667<h3>Data Science and Feature Engineering</h3> 1668<p>Data scientists use DeepSeek to automate the more tedious parts of the pipeline: 1669<ul> 1670 <li><strong>Predictive Modeling:</strong> Writing XGBoost scripts with automated hyperparameter tuning via Optuna.</li> 1671 <li><strong>Data Cleaning:</strong> Identifying outliers in large CSV files and generating the Pandas logic to handle them.</li> 1672 <li><strong>Visualization:</strong> Generating complex Seaborn or Plotly charts from raw natural language descriptions of the data.</li> 1673</ul> 1674 1675<h2>How to Optimize Your DeepSeek Prompts for Reasoning</h2> 1676<p>To get the most out of DeepSeekâs reasoning capabilities, you need to change how you prompt. Use the <strong>"Chain-of-Logic"</strong> framework:</p> 1677 1678<ol> 1679 <li><strong>Define the Constraints:</strong> Explicitly state the libraries, versions, and security constraints (e.g., "Use Python 3.12, Avoid external APIs, must be O(n) complexity").</li> 1680 <li><strong>Request the 'Internal Monologue':</strong> Ask the model to "show its work." Use the prompt: <em>"Before providing the final code, detail your reasoning process and any potential pitfalls you identified."</em></li> 1681 <li><strong>Iterative Debugging:</strong> If the code fails, paste the error message back into DeepSeek. Because of the MLA architecture, it retains high fidelity of the previous context and can pinpoint the logical error immediately.</li> 1682</ol> 1683 1684<h2>Comparison: DeepSeek vs. OpenAI o1 vs. Claude 3.5 Sonnet</h2> 1685<table border="1" style="width:100%; border-collapse: collapse; margin: 20px 0;"> 1686 <thead> 1687 <tr style="background-color: #f2f2f2;"> 1688 <th>Feature</th> 1689 <th>DeepSeek (V3/R1)</th> 1690 <th>OpenAI o1</th> 1691 <th>Claude 3.5 Sonnet</th> 1692 </tr> 1693 </thead> 1694 <tbody> 1695 <tr> 1696 <td><strong>Coding Accuracy</strong></td> 1697 <td>Exceptional (SOTA)</td> 1698 <td>High</td> 1699 <td>High</td> 1700 </tr> 1701 <tr> 1702 <td><strong>Inference Speed</strong></td> 1703 <td>Very Fast (MoE)</td> 1704 <td>Slow (Reasoning Lag)</td> 1705 <td>Moderate</td> 1706 </tr> 1707 <tr> 1708 <td><strong>Cost per 1M Tokens</strong></td> 1709 <td>$0.14 - $0.27 (Approx)</td> 1710 <td>$15.00+</td> 1711 <td>$3.00</td> 1712 </tr> 1713 <tr> 1714 <td><strong>Open Weights</strong></td> 1715 <td>Yes</td> 1716 <td>No</td> 1717 <td>No</td> 1718 </tr> 1719 </tbody> 1720</table> 1721<p><em>Note: Prices are based on June 2026 API rates for comparison purposes.</em></p> 1722 1723<h2>Implementation Guide: Integrating DeepSeek into your IDE</h2> 1724<p>For professional use, you shouldn't be copy-pasting from a web browser. DeepSeekâs API is fully compatible with the OpenAI API format, making it easy to swap into your existing tools.</p> 1725 1726<h3>Integration with VS Code (via Continue or Aider)</h3> 1727<ol> 1728 <li>Install the <strong>Continue.dev</strong> extension in VS Code.</li> 1729 <li>Locate your <code>config.json</code> or settings menu.</li> 1730 <li>Add a new model provider using the DeepSeek API endpoint: <code>https://api.deepseek.com/v1</code>.</li> 1731 <li>Use the model <code>deepseek-reasoner</code> for complex logic or <code>deepseek-chat</code> for standard code generation.</li> 1732</ol> 1733 1734<h3>DeepSeek for Enterprise: Self-Hosting</h3> 1735<p>Because DeepSeek is open-weights, enterprises can host it locally using <strong>vLLM</strong> or <strong>Ollama</strong>. This is critical for companies with strict data privacy requirements who cannot send their proprietary source code to external servers. A single NVIDIA H100 or a cluster of L40S GPUs is typically sufficient to run the quantized 67B versions of the model at high throughput.</p> 1736 1737<h2>The Future of DeepSeek: Whatâs Next for 2026 and Beyond?</h2> 1738<p>As we move through 2026, DeepSeek is expected to deepen its "Multi-modal Reasoning." We are already seeing research into models that can "reason" through UI screenshots to perform front-end debugging visually. The gap between proprietary "Black Box" models and DeepSeekâs transparent, efficient architecture continues to shrink, making it the most viable choice for the next generation of AI-native software engineering.</p> 1739 1740<hr> 1741 1742<h2>Frequently Asked Questions (FAQ)</h2> 1743 1744<h3>Is DeepSeek better than GPT-4o for coding?</h3> 1745<p>In many benchmarks, particularly HumanEval and MBPP, DeepSeek-V3 and R1 match or outperform GPT-4o. DeepSeek is often preferred by developers due to its lower latency and higher accuracy in specialized languages like Rust and Go.</p> 1746 1747<h3>Can I use DeepSeek for free?</h3> 1748<p>DeepSeek offers a free tier on their web interface (chat.deepseek.com). For API usage, they provide one of the most generous free-credit allocations for new developers, after which the cost is significantly lower than competitors.</p> 1749 1750<h3>Does DeepSeek store my code when I use the API?</h3> 1751<p>According to DeepSeekâs standard API terms, data sent via the API is NOT used for training their base models. However, always review the latest privacy policy to ensure compliance with your organization's standards.</p> 1752 1753<h3>What is the 'Reasoning' model vs. the 'Chat' model?</h3> 1754<p>The <strong>Chat model</strong> is optimized for speed and conversational flow. The <strong>Reasoner model</strong> (like DeepSeek-R1) uses extra compute to think through the steps of a problem before answering. Use 'Chat' for emails and 'Reasoner' for complex coding and math.</p> 1755 1756<h3>How do I run DeepSeek locally?</h3> 1757<p>You can run DeepSeek locally using tools like <strong>Ollama</strong> (<code>ollama run deepseek-v3</code>) or <strong>LM Studio</strong>. Ensure you have sufficient VRAM (at least 24GB for smaller versions, more for full-scale models).</p> 1758 1759<h3>Is DeepSeek good for non-English programming documentation?</h3> 1760<p>Yes. DeepSeek is a bilingual powerhouse, excelling in both English and Chinese documentation, which gives it an edge in understanding libraries and frameworks developed in the Asian tech ecosystem.</p> 1761 1762<h2>Sources and further reading</h2> 1763<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 1764<ul> 1765 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 1766 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 1767 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 1768 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 1769 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate c
1769ard</a></li> 1770 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 1771 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 1772</ul> 1773<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-06-21T10:00:28.596+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-technical-architecture-mla-moe-guide-2026",title:"Decoding DeepSeek: The Technical Architecture Powering 2026's AI Efficiency",excerpt:"Explore the technical brilliance of DeepSeek's MLA and MoE architectures. Learn why DeepSeek's efficiency and reasoning capabilities are dominating the AI landscape in 2026.",meta_description:"Deep-dive into DeepSeek's technical architecture, including MLA, MoE, and GRPO. Learn how DeepSeek achieves industry-leading efficiency and performance in 2026.",category:"AI Technology",content:` 1774<p>In the rapidly evolving landscape of 2026, where massive compute clusters are often seen as the only path to intelligence, DeepSeek has consistently proven that <em>mathematical elegance</em> beats <em>brute force</em>. Central to this achievement is the DeepSeek Multi-head Latent Attention (MLA) and its refined Mixture-of-Experts (MoE) frameworks. For developers, researchers, and CTOs, understanding these internal mechanics isn't just an academic exerciseâitâs the key to maximizing performance while minimizing token costs.</p> 1775 1776<p>This guide provides a comprehensive technical deep-dive into the "DeepSeek Way." We will explore how DeepSeek models maintain high reasoning capabilities with a fraction of the KV cache requirements of traditional Transformers, and how their unique training recipes have shifted the industry's focus toward efficient inference.</p> 1777 1778<h2>1. The Foundation: Multi-head Latent Attention (MLA) Explained</h2> 1779<p>Traditional Transformer architectures (like those found in early GPT-4 or Llama 2) utilize Multi-Head Attention (MHA). While effective, MHA suffers from a significant bottleneck: the Key-Value (KV) cache. As context windows grew toward 128k and 1M tokens, the memory required to store these KV pairs became a primary inhibitor of inference speed and batch size.</p> 1780 1781<h3>The Problem with Traditional KV Caching</h3> 1782<p>In a standard MHA setup, every generation step requires loading the entire KV cache from GPU memory. This is highly memory-bandwidth intensive. Grouped-Query Attention (GQA) was an intermediate fix, but it often resulted in a slight degradation of model quality. DeepSeekâs answer is <strong>Multi-head Latent Attention (MLA)</strong>.</p> 1783 1784<h3>How MLA Works</h3> 1785<p>MLA introduces a low-rank joint compression of the Keys and Values. Instead of caching high-dimensional vectors for every head, MLA compresses them into a much smaller "latent" vector. During inference, these are reconstructed on the fly. 1786<ul> 1787 <li><strong>Compression:</strong> It reduces the KV cache size by up to 90% compared to MHA.</li> 1788 <li><strong>Performance:</strong> It allows for significantly higher throughput and larger batch sizes on the same hardware (e.g., NVIDIA H100 or B200 clusters).</li> 1789 <li><strong>Accuracy:</strong> Unlike extreme quantization, MLA maintains the representative power of the full-rank attention mechanism.</li> 1790</ul> 1791 1792<h2>2. Advanced Mixture-of-Experts (MoE): DeepSeekâs Scaling Secret</h2> 1793<p>DeepSeek was one of the first labs to successfully implement and scale <strong>DeepSeekMoE</strong>, a specialized architecture that separates "shared experts" from "routed experts."</p> 1794 1795<h3>DeepSeekMoE vs. Standard MoE</h3> 1796<p>In a standard MoE (like Mixtral), a router sends a token to $k$ out of $n$ experts. However, this often leads to "knowledge redundancy" where multiple experts learn the same common patterns, or "expert collapse" where only a few experts are ever utilized. DeepSeek solved this through two innovations:</p> 1797<ol> 1798 <li><strong>Shared Experts:</strong> A subset of neurons is always active for every token. These capture universal high-frequency patterns (like basic grammar or common facts).</li> 1799 <li><strong>Fine-grained Routed Experts:</strong> By using smaller, more numerous experts, the model can more accurately route specific tasks (like Python debugging vs. legal analysis) to specialized clusters of neurons.</li> 1800</ol> 1801<p>This architecture allows the 2026-era DeepSeek models to have hundreds of billions of parameters while only activating a small fraction per token, keeping the "FLOPs per token" remarkably low without sacrificing the model's global knowledge base.</p> 1802 1803<h2>3. The Training Recipe: Beyond Supervised Fine-Tuning</h2> 1804<p>Hardware and architecture are only half the story. DeepSeekâs rise is equally attributed to its unique <strong>Multi-Stage Training Pipeline</strong>. While many labs rely heavily on human-annotated data, DeepSeek has mastered the art of synthetic data evolution and Reinforcement Learning from Human Feedback (RLHF) focu
1804sing on <em>reasoning traces</em>.</p> 1805 1806<h3>Group Relative Policy Optimization (GRPO)</h3> 1807<p>Introduced in the DeepSeek-V3 and R1 lineage, GRPO is a revolutionary RL algorithm that eliminates the need for a separate "critic" modelâa staple in traditional PPO (Proximal Policy Optimization). 1808<ul> 1809 <li><strong>Self-Correction:</strong> GRPO allows the model to sample multiple outputs and rank them based on rule-based rewards (like code execution or math verification).</li> 1810 <li><strong>Efficiency:</strong> It significantly reduces the memory overhead during training, allowing for more iterations on the same hardware.</li> 1811 <li><strong>Chain-of-Thought (CoT):</strong> This is the engine behind DeepSeek's "Reasoning" models, forcing the AI to "think" before it speaks through an internal hidden scratchpad.</li> 1812</ul> 1813 1814<h2>4. Use-Case Deep Dive: When to Choose DeepSeek Over Competitors</h2> 1815<p>With the landscape of 2026 offering numerous LLM options, identifying the specific "DeepSeek Sweet Spot" is critical for operational efficiency.</p> 1816 1817<h3>Scenario A: High-Throughput API Integration</h3> 1818<p>If your application requires processing millions of tokens per minute (e.g., real-time customer support logs or social media sentiment analysis), DeepSeekâs MLA-driven architecture makes it the most cost-effective choice. The low KV cache requirements mean the API can handle massive concurrency with minimal latency spikes.</p> 1819 1820<h3>Scenario B: Specialized Coding Environments</h3> 1821<p>DeepSeek-Coder lineages have consistently outperformed generalist models of much larger sizes. For enterprises building internal IDE agents, DeepSeek offers: 1822<ul> 1823 <li><strong>FIM (Fill-In-the-Middle) Capability:</strong> Perfect for real-time ghostwriting in VS Code or JetBrains.</li> 1824 <li><strong>Repo-Level Understanding:</strong> Ability to handle large context windows (up to 128k+) efficiently ensures the model understands cross-file dependencies.</li> 1825</ul> 1826 1827<h3>Scenario C: "Reasoning-Heavy" Tasks</h3> 1828<p>For complex logic, math, or architectural planning, the DeepSeek-R (Reasoning) series utilizes the aforementioned GRPO to provide verifiable outputs. If your use case requires an audit trail of <em>how</em> the AI reached a conclusion, DeepSeekâs Chain-of-Thought transparency is invaluable.</p> 1829 1830<h2>5. Implementing DeepSeek: A Guide for Developers</h2> 1831<p>Deploying DeepSeek is remarkably flexible compared to closed-source alternatives. Here is the framework for a successful implementation in 2026.</p> 1832 1833<h3>Choosing the Deployment Mode</h3> 1834<ul> 1835 <li><strong>DeepSeek Cloud API:</strong> Best for startups needing immediate scaling. Features the lowest "Price per Million Tokens" in the industry.</li> 1836 <li><strong>Self-Hosted (vLLM / SGLang):</strong> Due to the open-weights nature of many DeepSeek models, hosting on private H100 clusters is common for privacy-sensitive industries (Finance, Healthcare).</li> 1837 <li><strong>Quantized Edge Deployment:</strong> Using GGUF or EXL2 formats, smaller DeepSeek MoE models can run on local workstations with 24GB-48GB of VRAM.</li> 1838</ul> 1839 1840<h3>Optimization Techniques</h3> 1841<p>When implementing DeepSeek via the API, utilize <strong>Prompt Caching</strong>. Because DeepSeek's infrastructure is optimized for long-context reuse, developers can save up to 90% on costs for repetitive system prompts or large reference documents by leveraging their context-aware caching layers.</p> 1842 1843<h2>6. The 2026 Benchmark Landscape</h2> 1844<p>While benchmarks like MMLU and HumanEval are common, DeepSeek has pushed the industry toward <em>Refinement Benchmarks</em>. In recent internal and third-party audits, DeepSeek V4 models have shown a "Logic Consistency" score that rivals models twice their size. This is largely due to the "shared expert" architecture, which prevents the model from "forgetting" basic instructions while performing complex specialized tasks.</p> 1845 1846<h2>7. Future Outlook: Beyond LLMs</h2> 1847<p>As we look toward the latter half of 2026 and 2027, DeepSeek is telegraphing a pivot toward <strong>Multimodal Reasoning</strong>. By applying the efficiency of MLA to vision and audio encoders, the goal is to create a unified world model that doesn't just describe images, but understands the physical and logical constraints of the worldâall while maintaining the efficiency that has become the brand's hallmark.</p> 1848 1849<h2>Frequently Asked Questions (FAQ)</h2> 1850 1851<h3>Is DeepSeek truly open-source?</h3> 1852<p>DeepSeek typically follows an "Open Weights" philosophy. While they provide the model weights and detailed technical reports, the full training dataset is generally proprietary. However, their transparency regarding architecture (like MLA and GRPO) is significantly higher than most competitors.</p> 1853 1854<h3>How does DeepSeek manage to be so much cheaper than GPT-4o or Claude 3.5?</h3> 1855<p>The cost advantage comes from <strong>Inference Efficiency</strong>. Because of Multi-head Latent Attention (MLA), DeepSeek models require significantly less GPU memory per request. This allows for higher "density" on their server racks, lowering the cost of energy and hardware per token generated.</p> 1856 1857<h3>Can I fine-tune DeepSeek models on my own data?</h3> 1858<p>Yes. DeepSeek models are highly compatible with standard fine-tuning libraries like Unsloth, Axolotl, and Hugging Faceâs TRL. Due to the MoE architecture, "PEFT" (Parameter-Efficient Fine-Tuning)
1858is particularly effective.</p> 1859 1860<h3>Does DeepSeek support long-context window tasks?</h3> 1861<p>Yes. Modern DeepSeek models support context windows up to 128,000 tokens natively, with some specialized versions extending further. Thanks to MLA, the performance degradation at the end of the context window (the "lost in the middle" phenomenon) is significantly minimized.</p> 1862 1863<h3>What makes DeepSeek-R1 different from the standard DeepSeek-V3?</h3> 1864<p>DeepSeek-R1 is a "Reasoning" model. While V3 is optimized for speed and general conversation, R1 is trained to use extended Chain-of-Thought processing. It is designed for tasks where accuracy and logic are more important than immediate response speed.</p> 1865 1866<h3>How does DeepSeek handle data privacy for Enterprise users?</h3> 1867<p>DeepSeek offers Enterprise SLAs for their Cloud API that include zero data retention for training. Additionally, because the weights are available, many enterprises choose to host DeepSeek within their own VPC (Virtual Private Cloud) using tools like vLLM or Ollama for total data sovereignty.</p> 1868 1869<h2>Conclusion</h2> 1870<p>DeepSeek has fundamentally changed the conversation around Artificial Intelligence. It has shifted the focus from "who has the most GPUs?" to "who has the best math?" By leveraging MLA and specialized MoE architectures, DeepSeek has democratized high-performance AI, making it accessible to developers and enterprises who prioritize both intelligence and efficiency. Whether you are building the next generation of coding tools or a massive-scale data processor, the DeepSeek architecture provides the most robust foundation available in 2026.</p> 1871 1872<h2>Sources and further reading</h2> 1873<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 1874<ul> 1875 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 1876 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 1877 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 1878 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 1879 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate card</a></li> 1880 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 1881 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 1882</ul> 1883<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-06-14T10:00:36.828+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-performance-comparison-implementation-guide-2026",title:"DeepSeek vs. The World: The Definitive 2026 Implementation Guide",excerpt:"Discover why DeepSeek is the leader in efficient AI. This 2026 guide compares DeepSeek vs. the competition, explains MLA architecture, and provides a roadmap for implementation.",meta_description:"DeepSeek 2026 Deep-Dive: Compare performance, cost, and architecture (MLA/MoE) against GPT-4o. Learn how to implement DeepSeek for coding and reasoning.",category:"AI Technology",content:` 1884<p>In the rapidly evolving landscape of large language models (LLMs), the industry has reached a pivotal realization: size isn't everything. While the early days of generative AI were defined by a "bigger is better" race, 2026 has become the year of the <strong>Efficient Inference Era</strong>. At the forefront of this shift is <strong>DeepSeek</strong>, the lab that consistently proves that architectural ingenuity can outperform raw compute power.</p> 1885 1886<p>One of the most frequent questions from developers and enterprise architects is: <em>"How does DeepSeek actually compare to OpenAI's flagship models in specialized workflows?"</em> While general benchmarks provide a surface-level view, the real value of DeepSeek lies in its specific optimizations for c
1886oding, logic, and cost-effective scaling. This guide provides a definitive comparison of DeepSeekâs current ecosystem against its peers, focusing on performance, cost-of-intelligence, and implementation strategies.</p> 1887 1888<h2>The DeepSeek Philosophy: Innovation Through Constraint</h2> 1889<p>To understand why DeepSeek has become a staple for developers, one must look at its foundational philosophy. Unlike many Western labs that prioritize massive parameter counts funded by limitless capital, DeepSeek emerged from a culture of necessityâoptimizing every floating-point operation (FLOP) to achieve state-of-the-art results on consumer-grade and mid-range enterprise hardware.</p> 1890 1891<h3>Key Architectural Pillars</h3> 1892<ul> 1893 <li><strong>Multi-head Latent Attention (MLA):</strong> DeepSeek pioneered MLA to drastically reduce the Memory Key-Value (KV) cache overhead. This allows for significantly longer context windows and faster inference speeds compared to standard Multi-Head Attention (MHA) used in earlier GPT iterations.</li> 1894 <li><strong>DeepSeekMoE:</strong> By utilizing a refined Mixture-of-Experts (MoE) architecture with finer-grained expert specialization and shared experts, DeepSeek models activate only a fraction of their total parameters for any given token, maintaining high intelligence while slashing latency.</li> 1895 <li><strong>Advanced Reinforcement Learning (RL):</strong> DeepSeekâs "R" series models (like the legendary R1) utilize specialized RPO (Reasoning Policy Optimization) to excel in chain-of-thought processing, making them the gold standard for math and symbolic logic.</li> 1896</ul> 1897 1898<h2>DeepSeek vs. The Competition: A Head-to-Head Comparison</h2> 1899<p>When comparing DeepSeek to models like GPT-4o or Claude 3.5 Sonnet, we must look beyond "vibe checks" and analyze specific performance vectors.</p> 1900 1901<h3>1. Coding and Technical Proficiency</h3> 1902<p>Historically, DeepSeek-Coder established DeepSeek as a leader in the programming space. In 2026, the latest iterations continue this trend. While competitors often struggle with "lazy coding" (omitting sections of code), DeepSeek's training objective focuses on complete, executable snippets and complex refactoring logic.</p> 1903<p><strong>Verdict:</strong> DeepSeek is generally preferred for Python, C++, and Rust development due to its deep integration with repository-level context and lower hallucination rates in syntax-sensitive tasks.</p> 1904 1905<h3>2. The Cost-of-Intelligence (ROI)</h3> 1906<p>This is where DeepSeek dominates. In the current economic climate, the "Cost per 1M tokens" is a critical KPI for AI startups. DeepSeekâs API consistently undercuts competitors by 60-80% while providing comparable output quality. This isn't just a marketing tactic; it's a byproduct of the infrastructure efficiency mentioned above.</p> 1907 1908<h3>3. Mathematical Reasoning</h3> 1909<p>With the advent of DeepSeek-R1 and its successors, the model's ability to "think" via internal monologues (Chain-of-Thought) has put it on par with specialized reasoning models. For competitive programming and scientific research, DeepSeek often outperforms general-purpose models that prioritize conversational fluidity over logical rigor.</p> 1910 1911<h2>Advanced Implementation: Getting the Most Out of DeepSeek</h2> 1912<p>Simply swapping an API key isn't enough to leverage DeepSeekâs full potential. To truly master this ecosystem, developers should focus on three implementation strategies: <strong>Prompt Engineering for MoE</strong>, <strong>Efficient Fine-Tuning</strong>, and <strong>Quantization</strong>.</p> 1913 1914<h3>Prompting for the Reasoning Engine</h3> 1915<p>Because DeepSeek models (especially the R-series) utilize sophisticated reasoning paths, your prompts should encourage structured thinking. 1916 <ul> 1917 <li><strong>Use System Prompts:</strong> Explicitly define the persona (e.g., "You are a senior systems architect").</li> 1918 <li><strong>Chain-of-Thought Triggers:</strong> Even though the model has internal CoT, adding "Letâs think step-by-step" provides a secondary layer of alignment that reduces logic errors.</li> 1919 <li><strong>XML Tagging:</strong> Using tags like <code><thought></code> and <code><answer></code> helps the model organize complex outputs.</li> 1920 </ul> 1921</p> 1922 1923<h3>Fine-Tuning on a Budget</h3> 1924<p>DeepSeek models are famously "tunable." Using techniques like <strong>QLoRA (Quantized Low-Rank Adaptation)</strong>, a dedicated developer can fine-tune a 67B parameter DeepSeek model on a single 80GB H100 or even a consumer-grade 3090/4090 cluster for niche business datasets. This is significantly more difficult with closed-source competitors that only offer "managed" fine-tuning at high price points.</p> 1925 1926<h2>Real-World Use Cases for DeepSeek in 2026</h2> 1927<p>Where is DeepSeek being deployed today? Here are the most effective use cases we've observed in the industry:</p> 1928 1929<h3>Automated Code Review Systems</h3> 1930<p>Companies are integrating DeepSeek into their CI/CD pipelines. Because of its low latency and high accuracy in identifying logic flaws, DeepSeek can act as a "first pass" reviewer, catching 80% of trivial bugs before a human developer ever opens the PR.</p> 1931 1932<h3>High-Throughput Translation Services</h3> 1933<p>By leveraging its multilingual training data, DeepSeek has become a favorite for high-volume document translation, particularly between English, Chinese, and European languages, providing a more "natural" tone than traditional rule-based translators.</p> 1934 1935<h3>The "Router" Architecture</h3> 1936<p>Many enterprises use a "routing" strategy: simple queries go to a small, fast DeepSeek distilled model, while complex logic queries are routed to the full DeepSeek-R series. This optimizes cost without sacrificing quality for the end-user.</p> 1937 1938<h2>The Technical Deep-Dive: Multi-head Latent Attention (MLA) Explained</h2> 1939<p>To understand why DeepSeek is so fast, we need to look at MLA. In traditional Transformer models, the KV cache grows linearly with the sequence length, consuming massive amounts of GPU VRAM. This is what limits your context window.</p> 1940<p>DeepSeekâs <strong>MLA</strong> compresses the Key and Value into a low-dimensional latent vector. During inference, this vector is projected back into the required heads. This results in an up to <strong>90% reduction</strong> in KV cache size. For you, the user, this means: 1941 <ul> 1942 <li>Lower "Time to First Token" (TTFT).</li> 1943 <li>The ability to process 128k+ tokens without the system slowing to a crawl.</li> 1944 <li>
1944Cheaper hosting on shared cloud infrastructures.</li> 1945 </ul> 1946</p> 1947 1948<h2>Future Outlook: Where DeepSeek Goes From Here</h2> 1949<p>As we look toward the second half of 2026, the focus for DeepSeek is clearly on <strong>Unified Multimodality</strong>. While this guide has focused on text and code, the integration of native vision and audio processing into the MoE architecture is the next frontier. We expect DeepSeek to continue its trend of releasing open-weight models that challenge the proprietary status quo, ensuring that high-level AI remains accessible to all.</p> 1950 1951<h2>Frequently Asked Questions (FAQ)</h2> 1952 1953<h3>1. Is DeepSeek truly open-source?</h3> 1954<p>DeepSeek typically releases "open-weights," meaning you can download the model and run it on your own hardware. While the training data and secret sauce of the RLHF process might remain proprietary, the models themselves are among the most accessible high-performance LLMs available.</p> 1955 1956<h3>2. How does DeepSeek-V4 compare to GPT-4o?</h3> 1957<p>In general tasks, they are very close. However, DeepSeek typically wins on coding, mathematical reasoning, and API pricing, while GPT-4o may still hold a slight edge in creative writing and "zero-shot" general knowledge questions.</p> 1958 1959<h3>3. Can I run DeepSeek models locally?</h3> 1960<p>Yes. Depending on the size of the model (e.g., 7B, 33B, or 67B), you can use tools like Ollama, LM Studio, or vLLM to run DeepSeek on your local machine or server. The distilled models (7B and 14B) run remarkably well on Apple Silicon and modern NVIDIA consumer cards.</p> 1961 1962<h3>4. Does DeepSeek store my data?</h3> 1963<p>When using the DeepSeek API, your data is subject to their privacy policy, which generally excludes user data from training by default for API customers. For maximum privacy, running the open-weight versions locally ensures your data never leaves your infrastructure.</p> 1964 1965<h3>5. Why is DeepSeek so much cheaper than others?</h3> 1966<p>Itâs a combination of architectural efficiency (MoE and MLA) and an optimized training process. By requiring less compute to achieve the same result, they can afford to offer their services at a much lower price point while still maintaining sustainability.</p> 1967 1968<h3>6. Which DeepSeek model should I use for a chatbot?</h3> 1969<p>For a standard conversational agent, the <strong>DeepSeek-V series (Chat)</strong> models are best. If your chatbot needs to help with technical troubleshooting or complex math, consider the <strong>DeepSeek-R series</strong> for its superior reasoning capabilities.</p> 1970 1971<hr /> 1972<p><em>Conclusion: DeepSeek has transitioned from a "budget alternative" to a powerhouse of innovation. Whether you are a developer looking for a better coding partner or a business leader aiming to reduce AI overhead, the DeepSeek ecosystem offers a compelling, high-performance path forward in 2026 and beyond.</em></p> 1973<h2>Sources and further reading</h2> 1974<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 1975<ul> 1976 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 1977 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 1978 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 1979 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 1980 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate card</a></li> 1981 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 1982 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 1983</ul> 1984<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-06-11T05:18:17.409+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-ai-architectural-breakthroughs-2026-guide",title:"DeepSeek: The New Frontier of Efficient AI and MoE Architecture",excerpt:"DeepSeek is revolutionizing AI with its MoE architecture and Multi-Token Prediction. Discover how this AI powerhouse is outperforming giants like OpenAI and Google.",meta_description:"Explore DeepSeek's breakthrough AI models, MoE architecture, and Multi-Token Prediction. Learn how DeepSeek is defining the future of efficient, open-source AI.",category:"AI Architecture",content:`<h2>Introduction: The DeepSeek Revolution and the Future of Efficient Intelligence</h2> 1985<p>In the rapidly evolving landscape of artificial intelligence, a fundamental shift is occurring. For years, the industry mantra was "bigger is better," leading to the creation of gargantuan models with trillions of parameters that require the power of small cities to train and run. However, DeepSeek has consistently challenged this paradigm, proving that architectural ingenuity can outperform raw computational brute force. As we look at the current state of AI in mid-2026, the focus has shifted from mere scale to <strong>compositional efficiency</strong> and <strong>reasoning density</strong>.</p> 1986 1987<p>DeepSeek has emerged as the standard-bearer for this new era. By refining the Mixture-of-Experts (MoE) architecture and pioneering new training methodologies like Multi-token Prediction (MTP), DeepSeek models are now delivering performance that rivalsâand often exceedsâthe industry giants like OpenAI's GPT series and Google's Gemini, all while operating at a fraction of the hardware cost. This article provides a comprehensive deep dive into the technical breakthroughs that have made DeepSeek the most influential name in open-source AI today.</p> 1988 1989<h2>The Architectural Foundation: DeepSeek-V3 and Beyond</h2> 1990<p>To understand why DeepSeek is dominating the technical conversation in 2026, we must look at the foundational innovations introduced in the DeepSeek-V3 series. While competitors were focused on scaling dense transformers, DeepSeek doubled down on <strong>Multi-head Latent Attention (MLA)</strong> and <strong>DeepSeekMoE</strong>.</p> 1991 1992<h3>
1992Multi-head Latent Attention (MLA): Solving the KV Cache Bottleneck</h3> 1993<p>One of the biggest hurdles in large language model (LLM) inference is the Key-Value (KV) cache. As context windows grow, the memory required to store KV caches explodes, leading to slow inference and high costs. DeepSeek addressed this by introducing MLA. Unlike standard Multi-Query Attention (MQA) or Grouped-Query Attention (GQA), MLA uses low-rank joint compression for keys and values. This allows for a significantly smaller memory footprint during inference without sacrificing the representational power of the model. In practical terms, this means DeepSeek models can handle 128k+ context windows on consumer-grade hardware that would crash running equivalent models from other providers.</p> 1994 1995<h3>DeepSeekMoE: Defining the New Standard for Mixture-of-Experts</h3> 1996<p>The Mixture-of-Experts architecture is not new, but DeepSeek's implementation is uniquely sophisticated. Traditional MoE models often struggle with "expert collapse," where only a few experts are trained effectively while others remain underutilized. DeepSeekMoE utilizes two primary innovations:</p> 1997<ul> 1998 <li><strong>Fine-grained Expert Segmentation:</strong> Instead of a few large experts, DeepSeek uses many smaller experts, allowing for more precise specialization.</li> 1999 <li><strong>Shared Expert Strategy:</strong> By designating certain experts as "shared" (always active), the model maintains a baseline of general knowledge while specialized experts handle niche tasks.</li> 2000</ul> 2001<p>This architecture allows a model with hundreds of billions of total parameters to activate only a tiny fraction (often less than 5%) for any given token, resulting in lightning-fast generation speeds.</p> 2002 2003<h2>The Training Breakthrough: Multi-Token Prediction (MTP)</h2> 2004<p>Perhaps the most significant leap forward for DeepSeek in late 2025 and early 2026 has been the mastery of <strong>Multi-Token Prediction (MTP)</strong>. Traditionally, LLMs are trained to predict the next single token in a sequence. DeepSeek's MTP objective forces the model to predict multiple future tokens simultaneously during training.</p> 2005<p>This approach has two massive benefits. First, it forces the model to develop a much deeper "planning" capability; to predict three tokens ahead, the model must understand the underlying structure of the thought more robustly. Second, it enables <strong>speculative decoding</strong> right out of the box. Because the model is already trained to see ahead, inference engines can verify multiple tokens in a single pass, increasing throughput by 2x to 3x compared to standard training methods.</p> 2006 2007<h2>DeepSeek vs. The Giants: A 2026 Comparative Analysis</h2> 2008<p>In the current market, DeepSeek finds itself in direct competition with OpenAI (GPT-5/o1), Google (Gemini 2.0), and Meta (Llama 4). Here is how DeepSeek differentiates itself:</p> 2009 2010<h3>DeepSeek vs. OpenAI</h3> 2011<p>While OpenAI has moved toward "Reasoning" models like the o1 series that use intensive post-training chain-of-thought, DeepSeek has focused on embedding reasoning capabilities directly into the pre-training and supervised fine-tuning (SFT) stages through <strong>DeepSeek-R1</strong>. This produces a model that reasons "on the fly" without the massive latency overhead often seen in OpenAI's reasoning-heavy models.</p> 2012 2013<h3>DeepSeek vs. Meta (Llama)</h3> 2014<p>Meta's Llama series remains the king of community adoption, but DeepSeek has consistently beaten Llama on coding and mathematics benchmarks. In the 2026 coding evaluations (HumanEval and MBPP), DeepSeek-Coder-V3 has outperformed Llama 4 in languages like Rust, Mojo, and advanced Python scripting. DeepSeek's open-weights policy is also perceived as more transparent than Meta's "Open Source" definition, which includes several commercial restrictions.</p> 2015 2016<h3>DeepSeek vs. Google Gemini</h3> 2017<p>Googleâs strength lies in its massive multi-modal ecosystem and proprietary TPU hardware. However, DeepSeek has pioneered <strong>Native Multi-modality</strong>. Unlike models that "bolt-on" a vision encoder to a language model, DeepSeekâs latest unified models process vision, audio, and text within the same latent space, leading to much higher spatial reasoning accuracy in visual tasks.</p> 2018 2019<h2>Empowering the Developer: API Costs and Local Deployment</h2> 2020<p>DeepSeekâs impact isn't just technical; it's economic. By optimizing the architecture for inference, DeepSeek has been able to offer API pricing that is roughly 1/10th the cost of GPT-4o. This has triggered a "race to the bottom" in pricing, forcing other providers to lower their margins. For developers, this means the barrier to entry for building complex, agentic AI
2020workflows has never been lower.</p> 2021<p>Furthermore, the <strong>DeepSeek-Distill</strong> series has become a favorite for local deployment. By distilling the knowledge of the massive V3 models into smaller 7B and 14B parameter models, DeepSeek allows researchers and hobbyists to run state-of-the-art intelligence on local workstations using tools like Ollama and vLLM. This commitment to the decentralized AI movement ensures that AI power isn't concentrated in just a few Silicon Valley boardrooms.</p> 2022 2023<h2>The Road Ahead: What to Expect from DeepSeek in Late 2026</h2> 2024<p>As we look toward the second half of 2026, DeepSeek is rumored to be working on <strong>Project Singularity</strong>, an autonomous agent framework that leverages their MoE architecture to create self-correcting code loops. We also expect to see a further expansion of their <strong>DeepSeek-Math</strong> series, which aims to solve unsolved conjectures in mathematics by leveraging specialized "Reasoning Experts" within the MoE framework.</p> 2025<p>The trend is clear: DeepSeek is no longer just a "fast follower." It is a pioneer of the <strong>Sovereign AI</strong> movement, providing high-performance, cost-effective, and transparent models that empower nations and organizations to build their own intelligent infrastru
2025cture without being tethered to a single proprietary provider.</p> 2026 2027<h2>Conclusion</h2> 2028<p>DeepSeek has fundamentally changed the conversation around artificial intelligence. By proving that efficiency, transparency, and architectural innovation are more valuable than sheer scale, they have leveled the playing field for developers and enterprises worldwide. Whether you are a researcher looking at the cutting edge of Mixture-of-Experts or a developer building a cost-sensitive application, DeepSeek provides the tools necessary to thrive in the AI-driven future.</p> 2029 2030<h2>Frequently Asked Questions (FAQ)</h2> 2031<h3>1. What makes DeepSeek's MoE architecture different from others?</h3> 2032<p>DeepSeekMoE uses a "Shared Expert" strategy combined with fine-grained expert segmentation. This prevents expert collapse and ensures that the model maintains strong general reasoning while activating only the most relevant specialized neurons for each task, resulting in much higher inference efficiency.</p> 2033 2034<h3>2. Is DeepSeek truly open source?</h3> 2035<p>DeepSeek follows an "open-weights" philosophy. While they provide the model weights and detailed technical reports for free, the full training data and the proprietary training infrastructure are not typically released under an OSI-approved license. However, they are among the most transparent major AI labs in the industry today.</p> 2036 2037<h3>3. How does DeepSeek manage to be so much cheaper than its competitors?</h3> 2038<p>The cost advantage comes from two areas: Architectural efficiency (MLA and MoE) which reduces hardware requirements during inference, and an optimized training process that utilizes specialized kernels and high-performance computing clusters in China, significantly lowering the "cost-per-token" trained.</p> 2039 2040<h3>4. Can I run DeepSeek models locally?</h3> 2041<p>Yes. DeepSeek offers various model sizes, from massive 600B+ MoE models to compact "distilled" versions (7B, 14B, 32B). The smaller distilled models are highly optimized for local hardware (like Apple Silicon or NVIDIA RTX cards) and can be run using frameworks like Ollama or LM Studio.</p> 2042 2043<h3>5. Which DeepSeek model should I use for coding?</h3> 2044<p>For coding-specific tasks, DeepSeek-Coder-V2 or the newer V3 (if available for your hardware) is the gold standard. It consistently beats much larger models on benchmarks like HumanEval and supports over 300 programming languages with superior logic and debugging capabilities.</p> 2045<h2>Sources and further reading</h2> 2046<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 2047<ul> 2048 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 2049 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 2050 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 2051 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 2052 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate card</a></li> 2053 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 2054 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 2055</ul> 2056<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-05-10T10:00:27.901+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null},{slug:"deepseek-v3-r1-ai-revolution-efficiency",title:"DeepSeek V3 & R1: How MoE Efficiency Reset AI Cost Expectations",excerpt:"DeepSeek's V3 and R1 showed that Mixture-of-Experts efficie
2056ncy could rival far more expensive models. Here is what that architecture changed, and where those models stand in 2026.",meta_description:"How DeepSeek's V3 and R1 models used Mixture-of-Experts efficiency to deliver frontier-class results at a fraction of the cost â and what replaced them in 2026.",category:"AI Architecture",content:`<h2>Introduction: The DeepSeek Phenomenon in the Global AI Landscape</h2> 2057<p>The artificial intelligence landscape is no stranger to rapid disruption, but few entities have sent shockwaves through the industry quite like <strong>DeepSeek</strong>. Emerging as a powerhouse in the open-weights movement, DeepSeek has consistently challenged the dominance of Silicon Valley giants like OpenAI and Google. By delivering models that rival the world's most advanced proprietary systems while maintaining a commitment to efficiency and accessibility, DeepSeek has rewritten the playbook for AI development.</p> 2058<p>In this comprehensive deep dive, we explore the evolution of DeepSeek, the technical breakthroughs of the <strong>DeepSeek-V3</strong> and <strong>DeepSeek-R1</strong> architectures, and why the global tech community is shifting its focus toward these highly efficient Chinese-developed models. We will examine how DeepSeek achieves state-of-the-art performance with a fraction of the compute costs typically associated with frontier models, and what this means for the future of decentralized AI.</p> 2059 2060<h2>The Rise of DeepSeek: A New Paradigm in Model Efficiency</h2> 2061<p>For years, the consensus in AI research was that "bigger is better." Scaling laws suggested that the path to Artificial General Intelligence (AGI) required trillions of parameters and hundreds of millions of dollars in compute spend. DeepSeek has fundamentally challenged this notion. By focusing on algorithmic innovation rather than brute-force scaling, they have produced models that punch far above their weight class.</p> 2062<h3>DeepSeek-V3: The Mixture-of-Experts (MoE) Masterclass</h3> 2063<p>DeepSeek-V3 represents a monumental achievement in the <strong>Mixture-of-Experts (MoE)</strong> architecture. Unlike dense models where every parameter is activated for every query, MoE models only activate a subset of parameters, drastically reducing the inference cost without sacrificing knowledge capacity. <strong>DeepSeek-V3</strong> features a staggering 671 billion total parameters, yet it only activates 37 billion parameters for each token processed.</p> 2064<p>This efficiency is achieved through several key innovations:</p> 2065<ul> 2066 <li><strong>Multi-head Latent Attention (MLA):</strong> A breakthrough that significantly reduces the Key-Value (KV) cache during inference, allowing for larger batch sizes and faster generation speeds.</li> 2067 <li><strong>DeepSeekMoE Architecture:</strong> An advanced routing mechanism that ensures "expert" neurons are utilized more effectively, preventing the "lazy expert" problem found in earlier MoE designs.</li> 2068 <li><strong>FP8 Mixed Precision Training:</strong> By optimizing for lower-precision arithmetic during training, DeepSeek was able to train V3 on a massive 14.8 trillion token dataset with unprecedented hardware efficiency.</li> 2069</ul> 2070 2071<h2>DeepSeek-R1: Redefining Reasoning and Reinforcement Learning</h2> 2072<p>While DeepSeek-V3 established the baseline for general-purpose LLMs, <strong>DeepSeek-R1</strong> was the breakthrough that truly alarmed competitors. R1 is a reasoning-focused model designed to compete directly with OpenAIâs o1 series. What makes R1 revolutionary is its training methodology, which relies heavily on <strong>Reinforcement Learning (RL)</strong> to develop "chain-of-thought" (CoT) capabilities.</p> 2073<h3>The "Aha Moment" in Artificial Intelligence</h3> 2074<p>During the training of DeepSeek-R1-Zero (the pure RL version), researchers observed a fascinating phenomenon. Without being explicitly told how to think, the model began to self-correct, reconsider its approach, and "think out loud" to solve complex mathematical problems. This emergent behavior proves that reasoning can be incentivized through structured rewards rather than just imitation of human data.</p> 2075<p>DeepSeek-R1 improves upon the Zero version by incorporating a small amount of "cold-start" data to make the reasoning more readable and structured, resulting in a model that matches the performance of OpenAI o1-preview across benchmarks like MATH, AIME, and Codeforces.</p> 2076 2077<h2>Comparative Analysis: DeepSeek vs. OpenAI, Google, and Meta</h2> 2078<p>To understand the impact of DeepSeek, we must look at how it stacks up against the "Big Three" of Western AI. The primary differentiator is not just performance, but the <strong>cost-to-performance ratio</strong>.</p> 2079<h3>DeepSeek-V3 vs. GPT-4o</h3> 2080<p>On benchmark tasks such as MMLU (Massive Multitask Language Understanding), DeepSeek-V3 scores over 88%, placing it in the same tier as GPT-4o and Claude 3.5 Sonnet. However, DeepSeekâs API costs are often a fraction (sometimes 1/10th or 1/20th) of its competitors. This has made DeepSeek the preferred choice for startups and developers building high-volume applications.</p> 2081<h3>DeepSeek-R1 vs. OpenAI o1</h3> 2082<p>OpenAIâs o1 model is a closed-source masterpiece. DeepSeek-R1, however, is open-weights. This means developers can inspect the model, fine-tune it for specific industrial use cases, and host it locally for data privacy. In coding benchmarks like LiveCodeBench, DeepSeek-R1 has shown it can outperform many versions of o1, particularly in algorithmic complexity.</p> 2083<h3>The Llama 3.1 Comparison</h3> 2084<p>While Metaâs Llama series is the gold standard for open-source AI, DeepSeek has often beaten Meta to the punch regarding MoE implementation. While Llama 3.1 405B is a dense model requiring massive VRAM, DeepSeek-V3âs MoE structure allows for more flexible deployment scenarios, making it a more versatile tool for enterprise-level scaling.</p> 2085 2086<h2>Technical Deep Dive: The Secret Sauce Behind DeepSeek's Speed</h2> 2087<p>One of the most frequently asked questions is: <em>
2087How does DeepSeek train such powerful models so cheaply?</em> The answer lies in their proprietary training stack and hardware orchestration.</p> 2088<h3>The Infrastructure Advantage</h3> 2089<p>DeepSeek utilizes a massive cluster of NVIDIA H800 GPUs (the variant optimized for the Chinese market). To overcome the interconnect bottlenecks inherent in these chips, DeepSeek developed custom communication kernels. Their <strong>DualPipe</strong> algorithm allows for overlapping the computation and communication phases of training, ensuring that the GPUs are almost never idling. This optimization resulted in a training efficiency that is roughly 2x better than standard industry frameworks.</p> 2090<h3>Data Engineering at Scale</h3> 2091<p>The 14.8 trillion tokens used to train DeepSeek-V3 weren't just scraped from the web. DeepSeek employs a sophisticated data cleaning pipeline that prioritizes high-quality reasoning data, code, and multilingual content. By emphasizing the "signal-to-noise" ratio, they ensure the model learns logic and syntax rather than just memorizing internet trivia.</p> 2092 2093<h2>The Global Impact: Why DeepSeek Matters for the Future of AI</h2> 2094<p>The emergence of DeepSeek is more than just a win for Chinese technology; it is a win for the global AI ecosystem. By releasing the weights and technical reports for their models, DeepSeek has democratized access to frontier-level AI.</p> 2095<ul> 2096 <li><strong>Democratization of Reasoning:</strong> Small labs and independent developers can now study how reasoning models work, leading to a surge in community-driven fine-tunes (like the distilled versions of R1 based on Llama and Qwen).</li> 2097 <li><strong>Pressure on Proprietary Providers:</strong> The aggressive pricing and high performance of DeepSeek force companies like OpenAI and Google to innovate faster and reconsider their pricing structures.</li> 2098 <li><strong>Sovereign AI:</strong> For nations and corporations that do not want to rely on US-based cloud providers, DeepSeek offers a viable pathway to high-performance local AI.</li> 2099</ul> 2100 2101<h2>Challenges and Ethical Considerations</h2> 2102<p>No AI model is without its hurdles. DeepSeek faces challenges regarding regional compute restrictions and the ongoing "GPU war." Furthermore, as an open-weights provider, ensuring that models are used responsibly remains a decentralized challenge. DeepSeek has implemented robust safety training and alignment techniques, but the nature of open-source software means the community shares the responsibility for ethical deployment.</p> 2103 2104<h2>Conclusion: The DeepSeek Era is Just Beginning</h2> 2105<p>DeepSeek has proven that the frontier of artificial intelligence is not a closed club. Through <strong>DeepSeek-V3</strong> and <strong>DeepSeek-R1</strong>, they have demonstrated that algorithmic ingenuity can bridge the gap created by massive compute budgets. Through 2026, the industry expects even more from this powerhouse, with rumors of DeepSeek-V4 already circulating in the research community.</p> 2106<p>For developers, researchers, and business leaders, the message is clear: ignoring DeepSeek is no longer an option. Whether you are looking for a cost-effective API, a powerful reasoning engine, or a base model for local fine-tuning, DeepSeek provides the tools to build the next generation of intelligent applications.</p> 2107 2108<h2>Frequently Asked Questions (FAQ)</h2> 2109<h3>1. Is DeepSeek truly open source?</h3> 2110<p>DeepSeek releases its models under the <strong>DeepSeek License</strong>, which allows for both research and commercial use. While it is technically "open-weights" (allowing you to download and run the model) rather than "Open Source" in the strict OSI sense of the word, it provides significantly more transparency than proprietary models like GPT-4.</p> 2111 2112<h3>2. How does DeepSeek-R1 differ from regular LLMs?</h3> 2113<p>Unlike standard LLMs that predict the next word based on patterns, DeepSeek-R1 uses a "Chain-of-Thought" process. It is trained via Reinforcement Learning to spend more time "thinking" before providing an answer, which makes it significantly better at math, logic, and programming tasks.</p> 2114 2115<h3>3. Can I run DeepSeek models locally?</h3> 2116<p>Yes! Because DeepSeek releases its model weights, you can run them locally using tools like <strong>Ollama</strong>, <strong>vLLM</strong>, or <strong>LM Studio</strong>. Note that the full DeepSeek-V3 or R1 models require significant hardware (multiple A100 or H100 GPUs), but distilled versions (based on Llama or Qwen) can run on consumer-grade hardware.</p> 2117 2118<h3>
21184. How does DeepSeek compare to OpenAI o1 in terms of reasoning?</h3> 2119<p>In benchmarks like the AIME (math competition) and Codeforces (programming), DeepSeek-R1 performs at a level comparable to OpenAI o1. In some specific coding tasks, R1 has been shown to provide more concise and accurate logic, although o1 may still hold an edge in some broad-knowledge nuances.</p> 2120 2121<h3>5. Why is DeepSeek's API so much cheaper than competitors?</h3> 2122<p>DeepSeek's affordability stems from its <strong>Mixture-of-Experts (MoE)</strong> architecture and the highly efficient <strong>Multi-head Latent Attention (MLA)</strong> mechanism. These innovations allow the model to provide high-quality responses while utilizing significantly less compute power during inference than dense models of a similar size.</p> 2123<h2>Sources and further reading</h2> 2124<p>This article is published by an independent DeepSeek community guide, not by DeepSeek. Model names, prices and availability change often, so always confirm details against DeepSeek's own documentation before you build on them.</p> 2125<ul> 2126 <li><a href="https://api-docs.deepseek.com/updates/" target="_blank" rel="noopener noreferrer">DeepSeek official API changelog</a> â release dates, model IDs and deprecations</li> 2127 <li><a href="https://api-docs.deepseek.com/" target="_blank" rel="noopener noreferrer">DeepSeek API documentation</a></li> 2128 <li><a href="https://github.com/deepseek-ai" target="_blank" rel="noopener noreferrer">DeepSeek on GitHub</a> â open weights, papers and reference code</li> 2129 <li><a href="https://chat.deepseek.com" target="_blank" rel="noopener noreferrer">Official DeepSeek chat</a></li> 2130 <li><a href="/pricing">Current DeepSeek API pricing, verified against the official rate card</a></li> 2131 <li><a href="/deepseek-v4">DeepSeek V4-Pro and V4-Flash: models and capabilities</a></li> 2132 <li><a href="/deepseek-api">DeepSeek API guide</a> · <a href="/blog">All DeepSeek news and guides</a></li> 2133</ul> 2134<p><em>Independently reviewed on 9 September 2026. Claims attributed to reports are not confirmed by DeepSeek unless a primary source is linked above.</em></p>`,published_at:"2026-05-03T10:00:30.394+00:00",updated_at:"2026-09-09T17:39:15.083469+00:00",hero_image_url:null}],kN=cY,dY=kN.map(t=>t.slug);function hY(t){if(t)return kN.find(n=>n.slug===t)}const uY=[{id:"static-43",title:"DeepSeek V4.1 Flash vs GPT-6 Astra: Four Real Builds, Full Cost and Time Breakdown",date:"September 16, 2026",excerpt:"An independent creator gave both models the same four builds â an RTS replica, a 3D scroll website, a booking app and a Blender animation. DeepSeek came in ~6x cheaper on API spend; Astra was ~3x faster.",category:"Comparison",slug:"deepseek-v41-flash-vs-gpt6-astra-four-builds",isStatic:!0},{id:"static-42",title:"DeepSeek V4.1 Flash Enters a Two-Day API Beta: Native Multimodal, 20 Concurrent Requests",date:"September 8, 2026",excerpt:"The model ID deepseek-v4.1-flash-expires-on-0910 is live for limited testing: new architecture, images and text in one model, V4-Flash billing â and an expiry date written into the name.",category:"AI News",slug:"deepseek-v41-flash-beta-native-multimodal",isStatic:!0},{id:"static-41",title:"DeepSeek's Reported 160,000-Chip Huawei Cluster in Inner Mongolia",date:"September 8, 2026",excerpt:"At least 160,000 Ascend 950DT accelerators at a ~1 GW site in Ulanqab â earmarked for inference, not training. What is reported, what is confirmed, and what it means for API capacity.",category:"AI News",slug:"deepseek-huawei-ascend-160000-chip-cluster",isStatic:!0},{id:"static-40",title:"DeepSeek Opens ~150 Engineering Roles â and Not One AI Research Role",date:"September 8, 2026",excerpt:"Server-side development and agent elastic computing, zero research positions. Why the moat is moving from the lab to the serving stack, and what it means if you build on the API.",category:"AI News",slug:"deepseek-hiring-150-engineers-systems-shift",isStatic:!0},{id:"static-39",title:"DeepSeek Vision API: Sending Images to deepseek-v4-flash-vision-exp",date:"August 23, 2026",excerpt:"DeepSeek now accepts images. The three input methods (base64, external URL, Files API), detail levels, the 384-token-per-image ceiling, all documented limits and the Anthropic-compatible variant.",category:"Guide",slug:"deepseek-vision-api-guide",isStatic:!0},{id:"static-38",title:"DeepSeek V5: Release Date Rumors vs. Confirmed Facts",date:"August 20, 2026",excerpt:"No changelog entry, no model string, no paper â DeepSeek V5 is unconfirmed. What the September 2026 leak claims, the real V4 timeline, and the three signals that would prove V5 exists.",category:"AI News",slug:"deepseek-v5-release-date-rumors",isStatic:!0},{id:"static-37",title:"DeepSeek Harness Explained: The Open-Source, Plugin-First Alternative to Claude Code",date:"August 16, 2026",excerpt:"A free, MIT-licensed coding agent runtime built on Cordis, where every capability â models, tools, sessions, even the UI â is a hot-swappable plugin. Install steps, architecture, Claude Code comparison and the honest limits.",category:"Guide",slug:"deepseek-harness-open-source-claude-code-alternative",isStatic:!0},{id:"static-36",title:"Reasonix: The DeepSeek-Native Coding Agent That Lives in Your Terminal",date:"August 2, 2026",excerpt:"DeepSeek's agent-integrations docs now list Reasonix, a terminal co
2134ding agent built for api.deepseek.com directly â cache-first loop, V4-Flash by default, /pro to escalate. Setup steps and what a session really costs.",category:"Guide",slug:"deepseek-reasonix-coding-agent-cli",isStatic:!0},{id:"static-35",title:"DeepSeek-V4-Flash Is Now Official: Agent Benchmarks Beat V4-Pro-Preview",date:"August 2, 2026",excerpt:"The official deepseek-v4-flash API went into public beta on July 31, 2026. Same model string, same architecture, new post-training â and agent scores like Terminal Bench 2.1 82.7 that pass V4-Pro-Preview. Plus native Responses API and Codex support.",category:"AI News",slug:"deepseek-v4-flash-ga-agent-benchmarks",isStatic:!0},{id:"static-34",title:"deepseek-chat and deepseek-reasoner Retired: Your Integration Is Broken â And Your Bill Just Changed",date:"July 25, 2026",excerpt:"The legacy aliases died July 24 at 15:59 UTC. Every other guide says 'rename the string.' They're skipping the real story: your per-token price changed. Verified rate deltas, worked examples, migration checklist.",category:"Migration",slug:"deepseek-chat-reasoner-retired-billing-impact",isStatic:!0},{id:"static-33",title:"DeepSeek V4 Goes GA: Legacy API Aliases Retire July 24 and Peak/Off-Peak Surge Pricing Arrives",date:"July 21, 2026",excerpt:"DeepSeek V4 hits General Availability on July 24, 2026. Legacy aliases retire, and the API industry's first structural peak/off-peak surge pricing (UTC+8) rolls out. Full developer migration guide.",category:"AI News",slug:"deepseek-v4-ga-surge-pricing-migration",isStatic:!0},{id:"static-32",title:"DeepSeek Is Building Its Own AI Chip: Why Inference Silicon Could Shake Up Nvidia, Huawei and Open-Source AI",date:"July 12, 2026",excerpt:"DeepSeek is reportedly developing a custom AI inference chip to reduce reliance on Nvidia and Huawei. Inside the strategic pivot, supply-chain impact, and what it means for open-source AI.",category:"AI News",slug:"deepseek-own-ai-chip-inference-silicon",isStatic:!0},{id:"static-31",title:"Inside DeepSeek's DSpark: How Speculative Decoding Speeds Up LLM Inference Without Losing Quality",date:"July 3, 2026",excerpt:"A deep dive into DSpark: the semi-autoregressive drafter, confidence head and hardware-aware scheduler that make LLM inference 60â85% faster with byte-identical output.",category:"AI Architecture",slug:"inside-deepseek-dspark-lossless-inference",isStatic:!0},{id:"static-30",title:"How Speculative Decoding Makes LLMs Faster Without Retraining (and What DSpark Adds)",date:"June 29, 2026",excerpt:"Speculative decoding speeds up LLM inference with byte-identical output and no retraining. Here's how it works â and how DeepSeek's DSpark pushes per-user speed 57â85% on V4, Qwen and Gemma.",category:"AI Architecture",slug:"deepseek-dspark-speculative-decoding",isStatic:!0},{id:"static-29",title:"How to Use DeepSeek V4 Better than 99% of People",date:"June 19, 2026",excerpt:"Master DeepSeek V4: the 4 chat modes, chaining workflows, file uploads + web search stacking, and how to use the 1M context window like a pro.",category:"Guide",slug:"how-to-use-deepseek-v4-better-than-99-percent",isStatic:!0},{id:"static-28",title:"DeepSeek Raises $7.4 Billion: A Bizarre Deal Structure and What It Means for AI",date:"June 19, 2026",excerpt:"DeepSeek raised $7.4B (50B yuan) at a $50B+ valuation. Inside the aggressively founder-centric LP structure â zero voting rights, 5-year lock-up, CATL, Tencent, and what it means for open-source AI.",category:"AI News",slug:"deepseek-raises-7-4-billion-bizarre-deal",isStatic:!0},{id:"static-27",title:"DeepSeek's $7.4B Funding Round: Inside the 50 Billion Yuan Deal at a $50B Valuation",date:"June 16, 2026",excerpt:"DeepSeek raised over 50 billion yuan (~$7.4B) at a $50B valuation. Inside the unusual LP-vehicle structure that locks foun
2134der control, and the CATL/Tencent/NetEase/JD.com syndicate behind the deal.",category:"AI News",slug:"deepseek-50-billion-funding-round",isStatic:!0},{id:"static-26",title:"Claude Opus 4.8 Released: How Does It Stack Up Against DeepSeek V4 Pro?",date:"May 28, 2026",excerpt:"Anthropic shipped Claude Opus 4.8 today with sharper benchmarks, dynamic workflows in Claude Code, and a 3à cheaper fast mode. We compare it head-to-head with DeepSeek V4 Pro on capability, speed, and price.",category:"AI News",slug:"claude-opus-4-8-vs-deepseek-v4",isStatic:!0},{id:"static-25",title:"DeepSeek V4 Unveiled: Breaking the AI Efficiency Barrier with 1.6 Trillion Parameters",date:"May 1, 2026",excerpt:"Official DeepSeek V4 Preview is live: 1.6T MoE (49B active), V4-Flash (284B/13B), 1M context with DSA + Hybrid Attention, Muon optimizer, agent integrations (Claude Code, OpenCode) and a new API. Full breakdown.",category:"AI Architecture",slug:"deepseek-v4-unveiled-1-6-trillion-parameters",isStatic:!0},{id:"static-24",title:"DeepSeek V4 Compressed Attention: How the KV-Cache Shrinks to Just 2%",date:"April 29, 2026",excerpt:"Deep dive into DeepSeek V4's Compressed Attention â CSA, HCA, low-rank queries and the hybrid layer stack that cut KV-cache memory to ~2% while keeping a 1M-token context.",category:"AI Architecture",slug:"deepseek-v4-compressed-attention",isStatic:!0},{id:"static-23",title:"DeepSeek V4 Flash Review: Specs, Pricing, Benchmarks & Real-World Tests",date:"April 24, 2026",excerpt:"Hands-on review of DeepSeek V4 Preview (Pro & Flash): 1M context, MIT license, ultra-cheap pricing â but does real-world performance match the benchmarks?",category:"AI Review",slug:"deepseek-v4-flash-review",isStatic:!0},{id:"static-22",title:"DeepSeek's Next Move: What V4 Will Look Like",date:"March 9, 2026",excerpt:"An in-depth analysis of DeepSeek V4's likely architecture â DSA, mHC, Engram, DualPath, and Blackwell optimization â based on published papers and code commits.",category:"AI Architecture",slug:"deepseek-v4-next-move",isStatic:!0},{id:"static-21",title:"DeepSeek Engram: V4 Architecture Revealed? Solving Transformer's Fatal Memory Flaw",date:"January 12, 2026",excerpt:"A new paper signed by Liang Wenfeng proposes Engram â a conditional memory module providing O(1) knowledge lookup that may power DeepSeek V4.",category:"AI Research",slug:"deepseek-engram-v4-architecture",isStatic:!0},{id:"static-20",title:"DeepSeek's mHC Breakthrough: Manifold-Constrained Hyper-Connections Explained",date:"January 2, 2026",excerpt:"DeepSeek unveils mHC, a revolutionary training method that improves transformer efficiency by 6-7%. Experts call it a 'striking breakthrough' that could power the V4 model.",category:"AI Technology",slug:"deepseek-mhc-manifold-constrained-hyper-connections",isStatic:!0},{id:"static-19",title:"The Ultimate DeepSeek Guide: Mastering the AI Landscape in 2026",date:"December 29, 2025",excerpt:"Comprehensive guide to DeepSeek AI in 2026. Master DeepSeek-V3.2, DeepSeek-R2, architectural innovations, API pricing, and best practices for developers.",category:"Guide",slug:"deepseek-guide-2026",isStatic:!0},{id:"static-18",title:"The Reasoning Era Begins: Google Gemini 3 vs DeepSeek Deep Thinking AI",date:"December 7, 2025",excerpt:"AI shifts from pattern matching to true reasoning. Explore how Google Gemini 3 and DeepSeek are ushering in the 'System 2' era with self-correcting, deliberative AI.",category:"AI Technology",slug:"reasoning-era-gemini-3-deepseek",isStatic:!0},{id:"static-17",title:"DeepSeekMath-V2: Revolutionary Self-Verifiable Mathematical Reasoning AI",date:"November 30, 2025",excerpt:"DeepSeekMath-V2 achieves gold-level scores on IMO 2025, CMO 2024, and near-perfect 118/120 on Putnam 2024.",category:"AI Technology",slug:"deepseek-math-v2",isStatic:!0},{id:"static-16",title:"DeepSeek Researcher Expresses Pessimism Over AI's Long-Term Impact on Humanity",date:"November 7, 2025",excerpt:"Senior researcher Chen Deli warns that AI could become a 'massive challenge' to humanity despite short-term benefits.",category:"AI Technology",slug:"deepseek-chen-deli-ai-humanity-warning",isStatic:!0},{id:"static-15",title:"DeepSeek-OCR: Revolutionary Context Compression Through Optical 2D Mapping",date:"October 21, 2025",excerpt:"DeepSeek-OCR achieves 97% OCR precision at 10à compression ratio using DeepEncoder.",category:"AI Technology",slug:"deepseek-ocr-context-compression",isStatic:!0},{id:"static-14",title:"DeepSeek Just Upgraded Its AI: 4 Things That Make 'Terminus' a Quietly Huge Deal",date:"January 22, 2024",excerpt:"DeepSeek's V3.1-Terminus brings major improvements in agentic capabilities, long context handling, and user experience.",category:"AI Technology",slug:"deepseek-terminus-upgrade",isStatic:!0},{id:"static-13",title:"The Silent Revolution: DeepSeek V3.1 Is Here (and Free!) ð¤¯",date:"August 20, 2025",excerpt:"DeepSeek V3.1 quietly launches with doubled context window, 2.5x faster performance, and completely free access.",category:"AI Technology",slug:"deepseek-v31-silent-revolution",isStatic:!0},{id:"static-12",title:"DeepSeek-R2: China's Bold Answer to the AI Race â What You Need to Know",date:"April 27, 2025",excerpt:"Discover how DeepSeek-R2 challenges Silicon Valley with multilingual reasoning, coding skills, and multimodal capabilities.",category:"AI Technology",slug:"deepseek-r2-ai-model-launch-2025",isStatic:!0},{id:"static-11",title:"Llama 4 vs DeepSeek AI: Comprehensive Comparison of Leading AI Models",date:"April 10, 2025",excerpt:"A detailed comparison of Meta's Llama 4 and DeepSeek AI across benchmarks, specialized capabilities, and use cases.",category:"AI Technology",slug:"llama-4-vs-deepseek",isStatic:!0},{id:"static-10",title:"What is DeepSeek AI? Unveiling China's Groundbreaking Open-Source Revolution",date:"April 3, 2025",excerpt:"Discover how DeepSeek AI is challenging Silicon Valley's AI dominance with cost-effective, open-source models.",category:"AI Technology",slug:"what-is-deepseek-ai",isStatic:!0},{id:"static-9",title:"DeepSeek V3.1: The New Frontier in Artificial Intelligence",date:"March 25, 2025",excerpt:"Introducing DeepSeek V3.1 with unprecedented reasoning capabilities, extended context window, and superior multilingual support.",category:"AI Technology",slug:"deepseek-v31",isStatic:!0},{id:"static-8",title:"What is Deep Seek?",date:"March 22, 2025",excerpt:"Discover Deep Seek, an advanced search technology that delivers precise, context-aware results.",category:"Technology",slug:"what-is-deep-seek",isStatic:!0},{id:"static-7",title:"What Are the Potential Challenges Deep Seek Might Face with the Early Release of R2",date:"March 22, 2025",excerpt:"Explore the challenges Deep Seek faces with its early R2 AI model release.",category:"AI Technology",slug:"deepseek-r2-challenges",isStatic:!0},{id:"static-6",title:"What is Deep Learning AI",date:"March 22, 2025",excerpt:"Learn about deep learning AI, a subset of machine learning that uses neural networks to analyze data.",category:"AI Technology",slug:"what-is-deep-learning-ai",isStatic:!0}
2134,{id:"static-0",title:"Vibe Coding: The Future of Software Development",date:"March 11, 2025",excerpt:"Discover how Vibe Coding is revolutionizing software development by leveraging AI to generate code from natural language prompts.",category:"AI Technology",slug:"vibe-coding",isStatic:!0},{id:"static-1",title:"The Evolution of AI Chat Technology",date:"March 11, 2025",excerpt:"Explore the latest advancements in AI chat technology.",category:"AI Technology",slug:"ai-chat",isStatic:!0},{id:"static-2",title:"Deep Seek Stock - Market Intelligence",date:"March 11, 2025",excerpt:"Access comprehensive market data and investment insights about Deep Seek's stock performance.",category:"Finance",slug:"deepseek-stock",isStatic:!0},{id:"static-3",title:"Deep Seek R1 - Advanced AI Model",date:"March 11, 2025",excerpt:"Explore Deep Seek R1, the state-of-the-art open source AI model.",category:"AI Technology",slug:"deepseek-r1",isStatic:!0},{id:"static-4",title:"The Future of AI in Enterprise",date:"March 11, 2025",excerpt:"Exploring how artificial intelligence is reshaping enterprise operations.",category:"AI Trends",slug:"future-of-ai-in-enterprise",isStatic:!0}
2134,{id:"static-5",title:"Understanding Deep Learning Models",date:"March 11, 2025",excerpt:"A comprehensive guide to modern deep learning architectures.",category:"Technical",slug:"understanding-deep-learning-models",isStatic:!0}],pY=()=>{var y;const t=jn(),[n,s]=S.useState("All"),{data:r}=k_({queryKey:["blog-posts"],queryFn:async()=>{const{data:g,error:w}=await Ol.from("blog_posts").select("id, title, slug, excerpt, category, published_at").eq("status","published").order("published_at",{ascending:!1});if(w)throw w;return g||[]}}),a=(r&&r.length?r:kN).map(g=>({id:g.slug,title:g.title,date:new Date(g.published_at).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}),excerpt:g.excerpt,category:g.category,slug:g.slug,isStatic:!1,_sortTs:new Date(g.published_at).getTime()})),i=uY.map(g=>({...g,_sortTs:new Date(g.date).getTime()})),o=[...a,...i].sort((g,w)=>w._sortTs-g._sortTs),l=(g,w)=>{if(!w){t(`/blog/${g}`);return}t(g==="deepseek-stock"?"/deepseek-stock":g==="deepseek-r1"?"/deepseek-r1":`/blog/${g}`)},c=["All",...Array.from(new Set(o.map(g=>g.category).filter(Boolean)))],d=n==="All"?o:o.filter(g=>g.category===n),h=d[0],p=d.slice(1),m={"@context":"https://schema.org","@type":"Blog",name:"DeepSeek AI Blog",description:"Independent news, guides and technical analysis about DeepSeek AI models, API pricing and architecture.",url:"https://deepseek.ai/blog",inLanguage:"en",blogPost:o.slice(0,10).map(g=>({"@type":"BlogPosting",headline:g.title,datePublished:new Date(g.date).toISOString().slice(0,10),description:g.excerpt,url:`https://deepseek.ai/blog/${g.slug}`}))},u={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"DeepSeek AI Blog",item:"https://deepseek.ai/blog"}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek AI Blog (2026) â News, Guides & Model Updates"}),e.jsx("meta",{name:"description",content:"Independent DeepSeek AI blog: V4-Flash and V4-Pro model updates, API pricing changes, architecture deep dives and migration guides â updated as DeepSeek ships."}),e.jsx("meta",{name:"keywords",content:"DeepSeek blog, DeepSeek news, DeepSeek V4, DeepSeek V4-Flash, DeepSeek API pricing, DeepSeek architecture, DeepSeek guides"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog"}),e.jsx("meta",{property:"og:title",content:"DeepSeek AI Blog (2026) â News, Guides & Model Updates"}),e.jsx("meta",{property:"og:description",content:"V4-Flash and V4-Pro updates, API pricing changes, architecture deep dives and migration guides from an independent DeepSeek community hub."}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek AI Blog (2026) â News, Guides & Updates"}),e.jsx("meta",{name:"twitter:description",content:"Independent DeepSeek coverage: model releases, API pricing and architecture explained."}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(m)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(u)})]}),e.jsx("div",{className:"min-h-screen pt-20 bg-gradient-to-br from-blue-50 to-white",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"DeepSeek AI Blog: Model Updates, API Pricing & Guides (2026)"}),e.jsxs("p",{className:"text-lg text-gray-700 max-w-3xl mb-4",children:["Every DeepSeek release, API price change and architecture paper, tracked and explained in plain English. The archive below covers the full timeline â from R1 and V3.1 through the V4 preview to the official"," ",e.jsx("a",{href:"/blog/deepseek-v4-flash-ga-agent-benchmarks",className:"text-blue-600 underline",children:"V4-Flash API (July 31, 2026)"})," ","â plus migration guides for retired endpoints and a maintained"," ",e.jsx("a",{href:"/pricing",className:"text-blue-600 underline",children:"DeepSeek API pricing page"}),"."]}),e.jsxs("p",{className:"text-sm text-gray-600 max-w-3xl mb-8",children:[o.length," articles · Latest update: ",((y=o[0])==null?void 0:y.date)??"â"," · Independent fan site, not affiliated with DeepSeek."]}),e.jsx(cn,{}),e.jsx("div",{className:"flex flex-wrap gap-2 my-8",children:c.map(g=>e.jsx("button",{type:"button",onClick:()=>s(g),className:`px-4 py-1.5 rounded-full text-sm border transition-colors ${n===g?"bg-blue-600 text-white border-blue-600":"bg-white text-gray-700 border-gray-200 hover:border-blue-400"}`,children:g},g))}),h&&e.jsxs(ie,{className:"mb-10 border-blue-200 bg-white",children:[e.jsxs(Ot,{children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3 flex-wrap",children:[e.jsx("span",{className:"px-3 py-1 bg-blue-600 text-white rounded-full text-xs font-semibold uppercase tracking-wide",children:"Latest"}),e.jsx("span",{className:"text-sm text-gray-500",children:h.date}),e.jsx("span",{className:"px-3 py-1 bg-blue-100 text-blue-700 rounded-full text-sm",children:h.category})]}),e.jsx(Ft,{className:"text-3xl mb-2",children:h.title}),e.jsx(bs,{className:"text-base",children:h.excerpt})]}),e.jsx(me,{children:e.jsx(Ke,{className:"bg-blue-600 hover:bg-blue-700 text-white",onClick:()=>l(h.slug,h.isStatic??!1),children:"Read the full article â"})})]}),e.jsx("div",{className:"grid gap-8 md:grid-cols-2 lg:grid-cols-3",children:p.map(g=>e.jsxs(ie,{className:"hover:shadow-lg transition-shadow duration-300",children:[e.jsxs(Ot,{children:[e.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[e.jsx("span",{className:"text-sm text-gray-500",children:g.date}),e.jsx("span",{className:"px-3 py-1 bg-blue-100 text-blue-700 rounded-full text-sm",children:g.category})]}),e.jsx(Ft,{className:"text-2xl mb-2",children:g.title}),e.jsx(bs,{children:g.excerpt})]}),e.jsx(me,{children:e.jsx(Ke,{variant:"link",className:"text-blue-600 hover:text-blue-800 p-0",onClick:()=>l(g.slug,g.isStatic??!1),children:"Read more â"})})]},g.id))}),e.jsxs("div",{className:"mt-16",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-6",children:"Recommended Resources"}),e.jsx(Nn,{})]}),e.jsxs("div",{className:"mt-16 bg-blue-50 p-8 rounded-lg",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"What this DeepSeek blog covers"}),e.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-gray-900 mb-2",children:"Model releases & API changes"}),e.jsxs("p",{className:"text-gray-700 text-sm",children:["Each DeepSeek release gets its own write-up: what changed in the model string, whether the architecture moved or only the post-training, and what breaks in existing integrations. Recent coverage includes the official V4-Flash API, the retirement of"," ",e.jsx("code",{className:"text-xs",children:"deepseek-chat"})," and ",e.jsx("code",{className:"text-xs",children:"deepseek-reasoner"}),", and the peak/off-peak pricing structure."]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-gray-900 mb-2",children:"Architecture deep dives"}),e.jsx("p",{className:"text-gray-700 text-sm",children:"Long-form explainers on the research behind the models â DSA and compressed attention, Engram memory lookup, mHC hyper-connections, and DSpark speculative decoding â written from the published papers rather than press summaries."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-gray-900 mb-2",children:"Pricing & cost guides"}),e.jsxs("p",{className:"text-gray-700 text-sm",children:["Per-token rates are checked against DeepSeek's official rate c
2134ard and kept in one shared config, so the numbers on the ",e.jsx("a",{href:"/pricing",className:"text-blue-600 underline",children:"pricing page"}),", the ",e.jsx("a",{href:"/deepseek-vs-chatgpt",className:"text-blue-600 underline",children:"ChatGPT comparison"})," and the ",e.jsx("a",{href:"/deepseek-vs-claude",className:"text-blue-600 underline",children:"Claude comparison"})," never drift apart."]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-gray-900 mb-2",children:"How to use DeepSeek"}),e.jsxs("p",{className:"text-gray-700 text-sm",children:["Practical guides for the chat app and the API: the four V4 chat modes, working with the 1M-token context window, agent integrations, and the"," ",e.jsx("a",{href:"/login",className:"text-blue-600 underline",children:"official login flow"}),"."]})]})]}),e.jsx("p",{className:"text-gray-600 text-sm mt-6",children:"This is an independent community blog. It is not affiliated with, endorsed by, or operated by DeepSeek. Always confirm pricing and model availability in the official DeepSeek documentation before shipping to production."})]})]})})]})},IA=({placement:t="blog_mid"})=>e.jsx("aside",{className:"my-10 rounded-2xl border border-[#0066FF]/20 bg-gradient-to-br from-[#0066FF]/5 to-blue-50 p-6 sm:p-8 not-prose","aria-label":"Try DeepSeek in your browser",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-5",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-lg sm:text-xl font-semibold text-gray-900 mb-1",children:"Use DeepSeek on every website"}),e.jsx("p",{className:"text-sm sm:text-base text-gray-600",children:"Add the free AI Sidebar â chat with DeepSeek R1 & V3 next to any page, no copy-pasting."})]}),e.jsxs("a",{href:fb,target:"_blank",rel:"noopener noreferrer",onClick:()=>ia("blog_to_extension",{placement:t,source:"in_content_cta"}),className:"inline-flex items-center justify-center px-6 py-3 text-sm sm:text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:-translate-y-[1px] whitespace-nowrap",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5"}),"Add to Chrome â Free",e.jsx(wn,{className:"ml-2 h-4 w-4"})]})]})});/*! @license DOMPurify 3.4.16 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.16/LICENSE */function CA(t,n){(n==null||n>t.length)&&(n=t.length);for(var s=0,r=Array(n);s<n;s++)r[s]=t[s];return r}function mY(t){if(Array.isArray(t))return t}function fY(t,n){var s=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(s!=null){var r,a,i,o,l=[],c=!0,d=!1;try{if(i=(s=s.call(t)).next,n!==0)for(;!(c=(r=i.call(s)).done)&&(l.push(r.value),l.length!==n);c=!0);}catch(h){d=!0,a=h}finally{try{if(!c&&s.return!=null&&(o=s.return(),Object(o)!==o))return}finally{if(d)throw a}}return l}}function gY(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 2135In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */function xY(t,n){return mY(t)||fY(t,n)||yY(t,n)||gY()}function yY(t,n){if(t){if(typeof t=="string")return CA(t,n);var s={}.toString.call(t).slice(8,-1);return s==="Object"&&t.constructor&&(s=t.constructor.name),s==="Map"||s==="Set"?Array.from(t):s==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?CA(t,n):void 0}}const _L=Object.entries,_A=Object.setPrototypeOf,bY=Object.isFrozen,vY=Object.getPrototypeOf,wY=Object.getOwnPropertyDescriptor;let jr=Object.freeze,Cr=Object.seal,pu=Object.create,TL=typeof Reflect<"u"&&Reflect,F2=TL.apply,V2=TL.construct;jr||(jr=function(n){return n});Cr||(Cr=function(n){return n});F2||(F2=function(n,s){for(var r=arguments.length,a=new Array(r>2?r-2:0),i=2;i<r;i++)a[i-2]=arguments[i];return n.apply(s,a)});V2||(V2=function(n){for(var s=arguments.length,r=new Array(s>1?s-1:0),a=1;a<s;a++)r[a-1]=arguments[a];return new n(...r)});const Ld=hr(Array.prototype.forEach),jY=hr(Array.prototype.lastIndexOf),TA=hr(Array.prototype.pop),jm=hr(Array.prototype.push),kY=hr(Array.prototype.splice),Hu=Array.isArray,Vm=hr(String.prototype.toLowerCase),Kv=hr(String.prototype.toString),PA=hr(String.prototype.match),km=hr(String.prototype.replace),EA=hr(String.prototype.indexOf),NY=hr(String.prototype.trim),SY=hr(Number.prototype.toString),AY=hr(Boolean.prototype.toString),LA=typeof BigInt>"u"?null:hr(BigInt.prototype.toString),MA=typeof Symbol>"u"?null:hr(Symbol.prototype.toString),Va=hr(Object.prototype.hasOwnProperty),Nm=hr(Object.prototype.toString),ra=hr(RegExp.prototype.test),lc=DY(TypeError);function hr(t){return function(n){n instanceof RegExp&&(n.lastIndex=0);for(var s=arguments.length,r=new Array(s>1?s-1:0),a=1;a<s;a++)r[a-1]=arguments[a];return F2(t,n,r)}}function DY(t){return function(){for(var n=arguments.length,s=new Array(n),r=0;r<n;r++)s[r]=arguments[r];return V2(t,s)}}function Un(t,n){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Vm;if(_A&&_A(t,null),!Hu(n))return t;let r=n.length;for(;r--;){let a=n[r];
vendor: 4,406 bytes, line 2135
2135if(typeof a=="string"){const i=s(a);i!==a&&(bY(n)||(n[r]=i),a=i)}t[a]=!0}return t}function IY(t){for(let n=0;n<t.length;n++)Va(t,n)||(t[n]=null);return t}function ui(t){const n=pu(null);for(const r of _L(t)){var s=xY(r,2);const a=s[0],i=s[1];Va(t,a)&&(Hu(i)?n[a]=IY(i):i&&typeof i=="object"&&i.constructor===Object?n[a]=ui(i):n[a]=i)}return n}function CY(t){switch(typeof t){case"string":return t;case"number":return SY(t);case"boolean":return AY(t);case"bigint":return LA?LA(t):"0";case"symbol":return MA?MA(t):"Symbol()";case"undefined":return Nm(t);case"function":case"object":{if(t===null)return Nm(t);const n=t,s=Ri(n,"toString");if(typeof s=="function"){const r=s(n);return typeof r=="string"?r:Nm(r)}return Nm(t)}default:return Nm(t)}}function Ri(t,n){for(;t!==null;){const r=wY(t,n);if(r){if(r.get)return hr(r.get);if(typeof r.value=="function")return hr(r.value)}t=vY(t)}function s(){return null}return s}function _Y(t){try{return ra(t,""),!0}catch{return!1}}const RA=jr(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Qv=jr(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Yv=jr(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),TY=jr(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Jv=jr(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),PY=jr(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),OA=jr(["#text"]),FA=jr(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","
2135spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),Xv=jr(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),VA=jr(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),jx=jr(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),EY=Cr(/{{[\w\W]*|^[\w\W]*}}/g),LY=Cr(/<%[\w\W]*|^[\w\W]*%>/g),MY=Cr(/\${[\w\W]*/g),RY=Cr(/^data-[\-\w.\u00B7-\uFFFF]+$/),OY=Cr(/^aria-[\-\w]+$/),BA=Cr(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),FY=Cr(/^(?:\w+script|data):/i),VY=Cr(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),BY=Cr(/^html$/i),zY=Cr(/^[a-z][.\w]*(-[.\w]+)+$/i),zA=Cr(/<[/\w!]/g),UA=Cr(/<[/\w]/g),UY=Cr(/<\/no(script|embed|frames)/i),qY=Cr(/\/>/i),li={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},PL=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],HY=jr(Un({},PL)),$Y=function(){const t={};return Ld(PL,n=>{t[n]=Cr(new RegExp("</"+n+"(?=[\\t\\n\\f\\r />])","i"))}),jr(t)}(),WY=function(){return typeof window>"u"?null:window},GY=function(n,s){if(typeof n!="object"||typeof n.createPolicy!="function")return null;let r=null;
vendor: 15,460 bytes, line 2135
2135const a="data-tt-policy-suffix";s&&s.hasAttribute(a)&&(r=s.getAttribute(a));const i="dompurify"+(r?"#"+r:"");try{return n.createPolicy(i,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+i+" could not be created."),null}},qA=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},cc=function(n,s,r,a){return Va(n,s)&&Hu(n[s])?Un(a.base?ui(a.base):{},n[s],a.transform):r},Zv=function(n,s,r){const a=Va(n,s)?n[s]:void 0;return a&&typeof a=="object"?ui(a):r()};function EL(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:WY();const n=Ge=>EL(Ge);if(n.version="3.4.16",n.removed=[],!t||!t.document||t.document.nodeType!==li.document||!t.Element)return n.isSupported=!1,n;let s=t.document;const r=s,a=r.currentScript;t.DocumentFragment;const i=t.HTMLTemplateElement,o=t.Node,l=t.Element,c=t.NodeFilter;t.NamedNodeMap===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;const d=t.DOMParser,h=t.trustedTypes,p=l.prototype,m=Ri(p,"cloneNode"),u=Ri(p,"remove"),y=Ri(p,"removeAttributeNode"),g=Ri(p,"nextSibling"),w=Ri(p,"childNodes"),b=Ri(p,"parentNode"),j=Ri(p,"shadowRoot"),N=Ri(p,"attributes"),A=o&&o.prototype?Ri(o.prototype,"nodeType"):null,E=o&&o.prototype?Ri(o.prototype,"nodeName"):null,C=o&&o.prototype?Ri(o.prototype,"ownerDocument"):null,F=function(J){return A?A(J):J.nodeType},O=function(J){return E?E(J):J.nodeName};if(typeof i=="function"){const Ge=s.createElement("template");Ge.content&&Ge.content.ownerDocument&&(s=Ge.content.ownerDocument)}let L,W="",_,P=!1,K=0;const q=function(){if(K>0)throw lc('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},ae=function(J){q(),K++;try{return L.createHTML(J)}finally{K--}},ce=function(J){q(),K++;try{return L.createScriptURL(J)}finally{K--}},de=function(){return P||(_=GY(h,a),P=!0),_},H=s,X=H.implementation,V=H.createNodeIterator,he=H.createDocumentFragment,T=H.getElementsByTagName,I=r.importNode;let G=qA();n.isSupported=typeof _L=="function"&&typeof b=="function"&&X&&X.createHTMLDocument!==void 0;const re=EY,ne=LY,pe=MY,je=RY,ke=OY,De=FY,Pe=VY,Ze=zY;let tt=BA,Je=null;const Y=Un({},[...RA,...Qv,...Yv,...Jv,...OA]);let Oe=null;const Wt=Un({},[...FA,...Xv,...VA,...jx]);let yt=Object.seal(pu(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ce=null,wt=null;const ot=Object.seal(pu(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let _t=!0,gt=!0,un=!1,Xt=!0,be=!1,Ie=!0,$e=!1,Fe=!1,at=null,dt=null,rn=!1,Ut=!1,qt=!1,Vt=!1,Gt=!0,bt=!1;const nt="user-content-";let it=!0,ht=!1,nn={},Mt=null;const Tt=Un({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let In=null;const Ja=Un({},["audio","video","img","source","image","track"]);let Ts=null;const _r=Un({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Tr="http://www.w3.org/1998/Math/MathML",Bt="http://www.w3.org/2000/svg",oe="http://www.w3.org/1999/xhtml";let ge=oe,Ae=!1,Re=null;const Xe=Un({},[Tr,Bt,oe],Kv),pt=jr(["mi","mo","mn","ms","mtext"]);let jt=Un({},pt);const ft=jr(["annotation-xml"]);let mt=Un({},ft);const lt=Un({},["title","style","font","a","script"]);let xt=null;const Qt=["application/xhtml+xml","text/html"],Zt="text/html";let Kt=null,xn=null;const dn=s.createElement("form"),Bn=function(J){return J instanceof RegExp||J instanceof Function},Pr=function(){let J=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(xn&&xn===J)return;(!J||typeof J!="object")&&(J={}),J=ui(J),xt=Qt.indexOf(J.PARSER_MEDIA_TYPE)===-1?Zt:J.PARSER_MEDIA_TYPE,Kt=xt==="application/xhtml+xml"?Kv:Vm,Je=cc(J,"ALLOWED_TAGS",Y,{transform:Kt}),Oe=cc(J,"ALLOWED_ATTR",Wt,{transform:Kt}),Re=cc(J,"ALLOWED_NAMESPACES",Xe,{transform:Kv}),Ts=cc(J,"ADD_URI_SAFE_ATTR",_r,{transform:Kt,base:_r}),In=cc(J,"ADD_DATA_URI_TAGS",Ja,{transform:Kt,base:Ja}),Mt=cc(J,"FORBID_CONTENTS",Tt,{transform:Kt}),Ce=cc(J,"FORBID_TAGS",ui({}),{transform:Kt}),wt=cc(J,"FORBID_ATTR",ui({}),{transform:Kt}),nn=Va(J,"USE_PROFILES")?J.USE_PROFILES&&typeof J.USE_PROFILES=="object"?ui(J.USE_PROFILES):J.USE_PROFILES:!1,_t=J.ALLOW_ARIA_ATTR!==!1,gt=J.ALLOW_DATA_ATTR!==!1,un=J.ALLOW_UNKNOWN_PROTOCOLS||!1,Xt=J.ALLOW_SELF_CLOSE_IN_ATTR!==!1,be=J.SAFE_FOR_TEMPLATES||!1,Ie=J.SAFE_FOR_XML!==!1,$e=J.WHOLE_DOCUMENT||!1,Ut=J.RETURN_DOM||!1,qt=J.RETURN_DOM_FRAGMENT||!1,Vt=J.RETURN_TRUSTED_TYPE||!1,rn=J.FORCE_BODY||!1,Gt=J.SANITIZE_DOM!==!1,bt=J.SANITIZE_NAMED_PROPS||!1,it=J.KEEP_CONTENT!==!1,ht=J.IN_PLACE||!1,tt=_Y(J.ALLOWED_URI_REGEXP)?J.ALLOWED_URI_REGEXP:BA,ge=typeof J.NAMESPACE=="string"?J.NAMESPACE:oe,jt=Zv(J,"MATHML_TEXT_INTEGRATION_POINTS",()=>Un({},pt)),mt=Zv(J,"HTML_INTEGRATION_POINTS",()=>Un({},ft));const ve=Zv(J,"CUSTOM_ELEMENT_HANDLING",()=>pu(null));if(yt=pu(null),Va(ve,"tagNameCheck")&&Bn(ve.tagNameCheck)&&(yt.tagNameCheck=ve.tagNameCheck),Va(ve,"attributeNameCheck")&&Bn(ve.attributeNameCheck)&&(yt.attributeNameCheck=ve.attributeNameCheck),Va(ve,"allowCustomizedBuiltInElements")&&typeof ve.allowCustomizedBuiltInElements=="boolean"&&(yt.allowCustomizedBuiltInElements=ve.allowCustomizedBuiltInElements),Cr(yt),be&&(gt=!1),qt&&(Ut=!0),nn&&(Je=Un({},OA),Oe=pu(null),nn.html===!0&&(Un(Je,RA),Un(Oe,FA)),nn.svg===!0&&(Un(Je,Qv),Un(Oe,Xv),Un(Oe,jx)),nn.svgFilters===!0&&(Un(Je,Yv),Un(Oe,Xv),Un(Oe,jx)),nn.mathMl===!0&&(Un(Je,Jv),Un(Oe,VA),Un(Oe,jx))),ot.tagCheck=null,ot.attributeCheck=null,Va(J,"ADD_TAGS")&&(typeof J.ADD_TAGS=="function"?ot.tagCheck=J.ADD_TAGS:Hu(J.ADD_TAGS)&&(Je===Y&&(Je=ui(Je)),Un(Je,J.ADD_TAGS,Kt))),Va(J,"ADD_ATTR")&&(typeof J.ADD_ATTR=="function"?ot.attributeCheck=J.ADD_ATTR:Hu(J.ADD_ATTR)&&(Oe===Wt&&(Oe=ui(Oe)),Un(Oe,J.ADD_ATTR,Kt))),Va(J,"ADD_FORBID_CONTENTS")&&Hu(J.ADD_FORBID_CONTENTS)&&(Mt===Tt&&(Mt=ui(Mt)),Un(Mt,J.ADD_FORBID_CONTENTS,Kt)),it&&(Je["#text"]=!0),$e&&Un(Je,["html","head","body"]),Je.table&&(Un(Je,["tbody"]),delete Ce.tbody),J.TRUSTED_TYPES_POLICY){if(typeof J.TRUSTED_TYPES_POLICY.createHTML!="function")throw lc('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof J.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw lc('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const Ve=L;L=J.TRUSTED_TYPES_POLICY;try{W=ae("")}catch(et){throw L=Ve,et}}else J.TRUSTED_TYPES_POLICY===null?(L=void 0,W=""):(L===void 0&&(L=de()),L&&typeof W=="string"&&(W=ae("")));jr&&jr(J),xn=J},ua=Un({},[...Qv,...Yv,...TY]),pr=Un({},[...Jv,...PY]),Wr=function(J,ve,Ve){return ve.namespaceURI===oe?J==="svg":ve.namespaceURI===Tr?J==="svg"&&(Ve==="annotation-xml"||jt[Ve]):!!ua[J]},Ji=function(J,ve,Ve){return ve.namespaceURI===oe?J==="math":ve.namespaceURI===Bt?J==="math"&&mt[Ve]:!!pr[J]},Ci=function(J,ve,Ve){return ve.namespaceURI===Bt&&!mt[Ve]||ve.namespaceURI===Tr&&!jt[Ve]?!1:!pr[J]&&(lt[J]||!ua[J])},_a=function(J){let ve=b(J);(!ve||!ve.tagName)&&(ve={namespaceURI:ge,tagName:"template"});const Ve=Vm(J.tagName),et=Vm(ve.tagName);return Re[J.namespaceURI]?J.namespaceURI===Bt?Wr(Ve,ve,et):J.namespaceURI===Tr?Ji(Ve,ve,et):J.namespaceURI===oe?Ci(Ve,ve,et):!!(xt==="application/xhtml+xml"&&Re[J.namespaceURI]):!1},ps=function(J){jm(n.removed,{element:J});try{b(J).removeChild(J)}catch{if(u(J),!b(J))throw lc("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Xa=function(J,ve,Ve){try{y(J,ve)}catch{try{J.removeAttribute(Ve)}catch{}}},fn=function(J){pa(J);const ve=w(J);if(ve){const et=[];Ld(ve,It=>{jm(et,It)}),Ld(et,It=>{try{u(It)}catch{}})}const Ve=N(J);if(Ve)for(let et=Ve.length-1;et>=0;--et){const It=Ve[et],st=It&&It.name;typeof st=="string"&&Xa(J,It,st)}},Tn=function(J,ve,Ve){if(!Ve)try{Ve=ve.getAttributeNode(J)}catch{Ve=null}jm(n.removed,{attribute:Ve||null,from:ve});try{Ve?y(ve,Ve):ve.removeAttribute(J)}catch{try{ve.removeAttribute(J)}catch{}}if(J==="is")if(Ut||qt)try{ps(ve)}catch{}else try{ve.setAttribute(J,"")}catch{}},Za=function(J){const ve=N(J);if(ve)for(let Ve=ve.length-1;Ve>=0;--Ve){const et=ve[Ve],It=et&&et.name;typeof It!="string"||Oe[Kt(It)]||Xa(J,et,It)}},pa=function(J){const ve=[J];for(;ve.length>0;){const Ve=ve.pop();F(Ve)===li.element&&Za(Ve);const et=w(Ve);if(et)for(let It=et.length-1;It>=0;--It)ve.push(et[It])}},es=function(J,ve){return Ie?J==="patchsrc"?!0:J==="for"&&ve!=="label"&&ve!=="output":!1},mr=function(J){if(!Ie)return;const ve=[J];for(;ve.length>0;){const Ve=ve.pop(),et=F(Ve);if(et===li.processingInstruction||et===li.comment&&ra(UA,Ve.data)){try{u(Ve)}catch{}continue}if(et===li.element){const st=Ve,Dn=Kt(O(Ve));try{st.hasAttribute&&st.hasAttribute("patchsrc")&&st.removeAttribute("patchsrc"),st.hasAttribute&&st.hasAttribute("for")&&es("for",Dn)&&st.removeAttribute("for")}catch{}}const It=w(Ve);if(It)for(let st=It.length-1;st>=0;--st)ve.push(It[st])}},_i=function(J){let ve=null,Ve=null;if(rn)J="<remove></remove>"+J;else{const st=PA(J,/^[\r\n\t ]+/);Ve=st&&st[0]}xt==="application/xhtml+xml"&&ge===oe&&(J='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+J+"</body></html>");const et=L?ae(J):J;if(ge===oe)try{ve=new d().parseFromString(et,xt)}catch{}if(!ve||!ve.documentElement){ve=X.createDocument(ge,"template",null);try{ve.documentElement.innerHTML=Ae?W:et}catch{}}const It=ve.body||ve.documentElement;return J&&Ve&&It.insertBefore(s.createTextNode(Ve),It.childNodes[0]||null),ge===oe?T.call(ve,$e?"html":"body")[0]:$e?ve.documentElement:It},Bl=function(J){const ve=C?C(J):J.ownerDocument;return V.call(ve||J,J,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},js=function(J){return J=km(J,re," "),J=km(J,ne," "),J=km(J,pe," "),J},zl=function(J){var ve;J.normalize();const Ve=C?C(J):J.ownerDocument,et=V.call(Ve||J,J,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null);let It=et.nextNode();for(;It;)It.data=js(It.data),It=et.nextNode();const st=(ve=J.querySelectorAll)===null||ve===void 0?void 0:ve.call(J,"template");st&&Ld(st,Dn=>{ei(Dn.content)&&zl(Dn.content)})},ma=function(J){const ve=E?E(J):null;return typeof ve!="string"||Kt(ve)!=="form"?!1:typeof J.nodeName!="string"||typeof J.textContent!="string"||typeof J.removeChild!="function"||J.attributes!==N(J)||typeof J.removeAttribute!="function"||typeof J.removeAttributeNode!="function"||typeof J.getAttributeNode!="function"||typeof J.setAttribute!="function"||typeof J.namespaceURI!="string"||typeof J.insertBefore!="function"||typeof J.hasChildNodes!="function"||J.nodeType!==A(J)||J.childNodes!==w(J)},ei=function(J){if(!A||typeof J!="object"||J===null)return!1;try{return A(J)===li.documentFragment}catch{return!1}},Xi=function(J){if(!A||typeof J!="object"||J===null)return!1;try{return typeof A(J)=="number"}catch{return!1}};function Ps(Ge,J,ve){Ge.length!==0&&Ld(Ge,Ve=>{Ve.call(n,J,ve,xn)})}const Ul=function(J,ve){return!!(Ie&&J.hasChildNodes()&&!Xi(J.firstElementChild)&&ra(zA,J.textContent)&&ra(zA,J.innerHTML)||Ie&&J.namespaceURI===oe&&HY[ve]&&(Xi(J.firstElementChild)||typeof J.textContent=="string"&&ra($Y[ve],J.textContent))||J.nodeType===li.processingInstruction||Ie&&J.nodeType===li.comment&&ra(UA,J.data))},Ta=function(J,ve){if(J instanceof RegExp)return ra(J,ve);if(J instanceof Function){for(var Ve=arguments.length,et=new Array(Ve>2?Ve-2:0),It=2;It<Ve;It++)et[It-2]=arguments[It];return!!J(ve,...et)}return!1},fr=function(J,ve,Ve){if(!Ce[ve]&&pd(ve)&&Ta(yt.tagNameCheck,ve))return!1;if(it&&!Mt[ve]){const et=b(J),It=w(J);if(It&&et){const st=It.length;for(let Dn=st-1;Dn>=0;--Dn){const ms=J===Ve?m(It[Dn],!0):It[Dn];et.insertBefore(ms,g(J))}}}return ps(J),!0},ud=function(J,ve,Ve,et){return J.length===0?ve:ve===Ve||ve===et?ui(ve):ve},So=function(J,ve){return J===ve||b(J)!==null?!1:(ht&&pa(J),!0)},Lh=function(J,ve){if(Ps(G.beforeSanitizeElements,J,null),So(J,ve))return!0;if(ma(J))return ps(J),!0;const Ve=Kt(O(J));if(Je=ud(G.uponSanitizeElement,Je,Y,at),Ps(G.uponSanitizeElement,J,{tagName:Ve,allowedTags:Je}),So(J,ve))return!0;if(Ul(J,Ve))return ps(J),!0;if(Ce[Ve]||!(ot.tagCheck instanceof Function&&ot.tagCheck(Ve))&&!Je[Ve]){const et=fr(J,Ve,ve);return et===!1&&(Ps(G.afterSanitizeElements,J,null),So(J,ve))?!0:et}if(F(J)===li.element&&!_a(J)||(Ve==="noscript"||Ve==="noembed"||Ve==="noframes")&&ra(UY,J.innerHTML))return ps(J),!0;if(be&&J.nodeType===li.text){const et=js(J.textContent);J.textContent!==et&&(jm(n.removed,{element:J.cloneNode()}),J.textContent=et)}return Ps(G.afterSanitizeElements,J,null),So(J,ve)},Mh=function(J,ve,Ve){if(wt[ve]||es(ve,J)||Gt&&(ve==="id"||ve==="name")&&(Ve in s||Ve in dn))return!1;const et=Oe[ve]||ot.attributeCheck instanceof Function&&ot.attributeCheck(ve,J);return gt&&ra(je,ve)||_t&&ra(ke,ve)?!0:et?Ts[ve]||ra(tt,km(Ve,Pe,""))||(ve==="src"||ve==="xlink:href"||ve==="href")&&J!=="script"&&EA(Ve,"data:")===0&&In[J]||un&&!ra(De,km(Ve,Pe,""))?!0:!Ve:pd(J)&&Ta(yt.tagNameCheck,J)&&Ta(yt.attributeNameCheck,ve,J)||ve==="is"&&yt.allowCustomizedBuiltInElements&&Ta(yt.tagNameCheck,Ve)},Ti=Un({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),pd=function(J){return!Ti[Vm(J)]&&ra(Ze,J)},ql=function(J,ve,Ve,et){if(L&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!Ve)switch(h.getAttributeType(J,ve)){case"TrustedHTML":return ae(et);case"TrustedScriptURL":return ce(et)}return et},Hl=function(J,ve,Ve,et){try{return Ve?J.setAttributeNS(Ve,ve,et):J.setAttribute(ve,et),ma(J)?(ps(J),!1):!0}catch{return Tn(ve,J),!1}},$l=function(J,ve){if(Ps(G.beforeSanitizeAttributes,J,null),So(J,ve))return;const Ve=J.attributes;if(!Ve||ma(J))return;Oe=ud(G.uponSanitizeAttribute,Oe,Wt,dt);const et={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Oe,forceKeepAttr:void 0};let It=Ve.length;const st=Kt(J.nodeName);for(;It--;){const Dn=Ve[It],ms=Dn.name,Gr=Dn.namespaceURI,Er=Dn.value,Ao=Kt(ms),ti=Er;let ks=ms==="value"?ti:NY(ti),Rh=!1;if(et.attrName=Ao,et.attrValue=ks,et.keepAttr=!0,et.forceKeepAttr=void 0,Ps(G.uponSanitizeAttribute,J,et),ks=et.attrValue,bt&&(Ao==="id"||Ao==="name")&&EA(ks,nt)!==0&&(Tn(ms,J,Dn),ks=nt+ks,Rh=!0),Ie&&ra(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,ks)){Tn(ms,J,Dn);continue}if(Ao==="attributename"&&PA(ks,"href")){Tn(ms,J,Dn);continue}if(!et.forceKeepAttr){if(!et.keepAttr){Tn(ms,J,Dn);continue}if(!Xt&&ra(qY,ks)){Tn(ms,J,Dn);continue}if(be&&(ks=js(ks)),!Mh(st,Ao,ks)){Tn(ms,J,Dn);continue}ks=ql(st,Ao,Gr,ks),ks!==ti&&Hl(J,ms,Gr,ks)&&Rh&&TA(n.removed)}}Ps(G.afterSanitizeAttributes,J,null),So(J,ve)},Wl=function(J){let ve=null;const Ve=Bl(J);for(Ps(G.beforeSanitizeShadowDOM,J,null);ve=Ve.nextNode();
2135)if(Ps(G.uponSanitizeShadowNode,ve,null),Lh(ve,J),$l(ve,J),ei(ve.content)&&Wl(ve.content),F(ve)===li.element){const et=j(ve);ei(et)&&(md(et),Wl(et))}Ps(G.afterSanitizeShadowDOM,J,null)},md=function(J){const ve=[{node:J,shadow:null}];for(;ve.length>0;){const Ve=ve.pop();if(Ve.shadow){Wl(Ve.shadow);continue}const et=Ve.node,It=F(et)===li.element,st=w(et);if(st)for(let Dn=st.length-1;Dn>=0;--Dn)ve.push({node:st[Dn],shadow:null});if(It){const Dn=E?E(et):null;if(typeof Dn=="string"&&Kt(Dn)==="template"){const ms=et.content;ei(ms)&&ve.push({node:ms,shadow:null})}}if(It){const Dn=j(et);ei(Dn)&&ve.push({node:null,shadow:Dn},{node:Dn,shadow:null})}}};return n.sanitize=function(Ge){let J=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ve=null,Ve=null,et=null,It=null;if(Ae=!Ge,Ae&&(Ge="<!-->"),typeof Ge!="string"&&!Xi(Ge)&&(Ge=CY(Ge),typeof Ge!="string"))throw lc("dirty is not a string, aborting");if(!n.isSupported)return Ge;Fe?(Je=at,Oe=dt):Pr(J),(G.uponSanitizeElement.length>0||G.uponSanitizeAttribute.length>0)&&(Je=ui(Je)),G.uponSanitizeAttribute.length>0&&(Oe=ui(Oe)),n.removed=[];const st=ht&&typeof Ge!="string"&&Xi(Ge);if(st){mr(Ge);const Gr=O(Ge);if(typeof Gr=="string"){const Er=Kt(Gr);if(!Je[Er]||Ce[Er])throw fn(Ge),lc("root node is forbidden and cannot be sanitized in-place")}if(ma(Ge))throw fn(Ge),lc("root node is clobbered and cannot be sanitized in-place");try{md(Ge)}catch(Er){throw fn(Ge),Er}}else if(Xi(Ge))ve=_i("<!---->"),Ve=ve.ownerDocument.importNode(Ge,!0),Ve.nodeType===li.element&&Ve.nodeName==="BODY"||Ve.nodeName==="HTML"?ve=Ve:ve.appendChild(Ve),md(ve);else{if(!Ut&&!be&&!$e&&Ge.indexOf("<")===-1)return L&&Vt?ae(Ge):Ge;if(ve=_i(Ge),!ve)return Ut?null:Vt?W:""}ve&&rn&&ps(ve.firstChild);const Dn=st?Ge:ve;try{const Gr=Bl(Dn);for(;et=Gr.nextNode();)Lh(et,Dn),$l(et,Dn),ei(et.content)&&Wl(et.content)}catch(Gr){throw st&&(fn(Ge),Ld(n.removed,Er=>{Er.element&&pa(Er.element)})),Gr}if(st){let Gr=!1;if(Ld(n.removed,Er=>{Er.element&&(Er.element===Ge&&(Gr=!0),pa(Er.element))}),Gr)throw lc("a node selected for removal could not be safely returned; refusing to sanitize in place");return be&&zl(Ge),Ge}if(Ut){if(be&&zl(ve),qt)for(It=he.call(ve.ownerDocument);ve.firstChild;)It.appendChild(ve.firstChild);else It=ve;return(Oe.shadowroot||Oe.shadowrootmode)&&(It=I.call(r,It,!0)),It}let ms=$e?ve.outerHTML:ve.innerHTML;return $e&&Je["!doctype"]&&ve.ownerDocument&&ve.ownerDocument.doctype&&ve.ownerDocument.doctype.name&&ra(BY,ve.ownerDocument.doctype.name)&&(ms="<!DOCTYPE "+ve.ownerDocument.doctype.name+`> 2136`+ms),be&&(ms=js(ms)),L&&Vt?ae(ms):ms},n.setConfig=function(){let Ge=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Pr(Ge),Fe=!0,at=Je,dt=Oe},n.clearConfig=function(){xn=null,Fe=!1,at=null,dt=null,L=_,W=""},n.isValidAttribute=function(Ge,J,ve){xn||Pr({});const Ve=Kt(Ge),et=Kt(J);return Mh(Ve,et,ve)},n.addHook=function(Ge,J){typeof J=="function"&&Va(G,Ge)&&jm(G[Ge],J)},n.removeHook=function(Ge,J){if(Va(G,Ge)){if(J!==void 0){const ve=jY(G[Ge],J);return ve===-1?void 0:kY(G[Ge],ve,1)[0]}return TA(G[Ge])}},n.removeHooks=function(Ge){Va(G,Ge)&&(G[Ge]=[])},n.removeAllHooks=function(){G=qA()},n}var B2=EL();const KY=Object.freeze(Object.defineProperty({__proto__:null,default:B2},Symbol.toStringTag,{value:"Module"})),HA=(t,n)=>!n||typeof window>"u"||typeof B2.sanitize!="function"?t:B2.sanitize(t);function QY(t){if(!t)return{before:"",after:""};const n=[...t.matchAll(/<\/p>/gi)].map(a=>(a.index??0)+a[0].length);if(n.length<4)return{before:t,after:""};const s=t.length/2,r=n.find(a=>a>=s)??n[Math.floor(n.length/2)];return{before:t.slice(0,r),after:t.slice(r)}}const YY=()=>{const{slug:t}=L9(),n=jn(),[s,r]=S.useState(!1),[a,i]=S.useState(!1);S.useEffect(()=>i(!0),[]);const o=hY(t),{data:l,isLoading:c}=k_({queryKey:["blog-post",t],queryFn:async()=>{const{data:g,error:w}=await Ol.from("blog_posts").select("*").eq("slug",t).eq("status","published").maybeSingle();if(w)throw w;return g},enabled:!!t}),d=l??o,h=c&&!o,m=d?{title:d.title,date:new Date(d.published_at).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}),author:"Deep Seek AI",content:d.content,meta_description:d.meta_description||d.excerpt}:{title:"Deep Seek AI Launches Revolutionary Language Model",date:"February 7, 2025",author:"Deep Seek Team",content:"Deep Seek AI is proud to announce the launch of our latest language model, setting new standards in natural language processing and understanding.",meta_description:"Explore Deep Seek's revolutionary language model with enhanced contextual understanding and improved reasoning capabilities."},u=!!d,y={"@context":"https://schema.org","@type":"NewsArticle",headline:m.title.length>110?m.title.slice(0,107)+"â¦":m.title,image:d!=null&&d.hero_image_url?[d.hero_image_url]:["https://deepseek.ai/og-image.png"],datePublished:(d==null?void 0:d.published_at)||"2025-02-07T08:00:00+00:00",dateModified:(d==null?void 0:d.updated_at)||(d==null?void 0:d.published_at)||"2025-02-07T08:00:00+00:00",author:[{"@type":"Person",name:"Frank",url:"https://deepseek.ai"}],publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:m.meta_description,mainEntityOfPage:{"@type":"WebPage","@id":`https://deepseek.ai/blog/${t}`}};return h?e.jsx("div",{className:"min-h-screen bg-white flex items-center justify-center",children:e.jsx("div",{className:"animate-pulse text-gray-400",children:"Loading article..."})}):e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:m.title.length>60?m.title.slice(0,57)+"â¦":m.title}),e.jsx("meta",{name:"description",content:m.meta_description}),e.jsx("link",{rel:"canonical",href:`https://deepseek.ai/blog/${t}`}),e.jsx("meta",{property:"og:title",content:m.title}),e.jsx("meta",{property:"og:description",content:m.meta_description}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:`https://deepseek.ai/blog/${t}`}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2136),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:m.title}),e.jsx("meta",{name:"twitter:description",content:m.meta_description}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(y)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>n("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsxs("article",{children:[e.jsxs("div",{className:"mb-8",children:[e.jsxs("div",{className:"text-gray-500 mb-2",children:[m.date," ⢠",m.author]}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:m.title})]}),u?(()=>{const{before:g,after:w}=QY(m.content);return e.jsxs("div",{className:"mb-12",children:[e.jsx("div",{className:"prose prose-lg max-w-none",dangerouslySetInnerHTML:{__html:HA(g,a)}}),e.jsx(IA,{placement:"blog_mid"}),w&&e.jsx("div",{className:"prose prose-lg max-w-none",dangerouslySetInnerHTML:{__html:HA(w,a)}})]})})():e.jsxs("div",{className:"mb-12",children:[e.jsx("div",{className:"prose prose-lg max-w-none",children:e.jsx("p",{children:m.content})}),e.jsx(IA,{placement:"blog_mid_static"})]}),e.jsxs("div",{className:"mt-12 mb-12 border-t border-b border-gray-200 py-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Articles"}),e.jsx(Nn,{})]}),e.jsx("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12",children:e.jsxs("a",{href:fb,target:"_blank",rel:"noopener noreferrer",onClick:()=>ia("blog_to_extension",{placement:"blog_footer"}),className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Try Deep Seek AI Now",e.jsx(wn,{className:"ml-2 h-5 w-5"})]})})]})]})}),e.jsx(ar,{isOpen:s,onClose:()=>r(!1)})]})},JY=()=>{const t={"@context":"https://schema.org","@type":"Organization",name:"DeepSeek AI",url:"https://deepseek.ai/contact",contactPoint:{"@type":"ContactPoint",email:"[email protected]",contactType:"customer service",areaServed:"Worldwide",availableLanguage:["English"]}};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Contact DeepSeek AI | Get in Touch with Our AI Experts"}),e.jsx("meta",{name:"description",content:"Contact the Independent DeepSeek Resource Hub team. Reach us by email for questions about guides, the Chrome extension, or content suggestions."}),e.jsx("meta",{name:"keywords",content:"contact DeepSeek AI, AI consultation, artificial intelligence support, AI solutions contact, DeepSeek support"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/contact"}),e.jsx("meta",{property:"og:title",content:"Contact DeepSeek AI | Expert AI Consultation"}),e.jsx("meta",{property:"og:description",content:"Get in touch with DeepSeek AI's experts for advanced artificial intelligence solutions and consultation."}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/contact"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"Contact DeepSeek AI | Expert AI Consultation"}),e.jsx("meta",{name:"twitter:description",content:"Get in touch with DeepSeek AI's experts for advanced artificial intelligence solutions and consultation."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(t)})]}),e.jsx("div",{className:"min-h-screen pt-20 bg-gradient-to-br from-blue-50 to-white",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"Contact Us"}),e.jsx("p",{className:"text-xl text-gray-600 max-w-2xl mx-auto",children:"Have questions about our AI solutions? We're here to help and would love to hear from you."})]}),e.jsx(cn,{}),e.jsx("div",{className:"max-w-lg mx-auto",children:e.jsx(ie,{className:"hover:shadow-lg transition-shadow",children:e.jsxs(me,{className:"p-6 text-center",children:[e.jsx(tT,{className:"w-12 h-12 text-deepseek-primary mx-auto mb-4"}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:"Email Us"}),e.jsx("a",{href:"mailto:[email protected]",className:"text-gray-600 hover:text-deepseek-primary transition-colors",children:"[email protected]"})]})})})]})})]})},XY=()=>e.jsxs("div",{className:"min-h-screen pt-20 bg-gradient-to-br from-blue-50 to-white",children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek AI Solutions â ML, NLP, Data & Security"}),e.jsx("meta",{name:"description",content:"Explore DeepSeek AI solutions: machine learning, NLP, data analytics and security tooling for modern businesses."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/solutions"})]}),e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsx("div",{className:"mb-8",children:e.jsx("h1",{className:"text-4xl font-bold text-deepseek-secondary",children:"Our Solutions"})}),e.jsx("p",{className:"text-xl text-gray-600 mb-12 max-w-3xl",children:"Discover our comprehensive suite of AI solutions designed to transform your business and drive innovation."}),e.jsx(cn,{}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"p-6 bg-white rounded-xl shadow-lg hover:shadow-xl transition-shadow",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-blue-100 flex items-center justify-center mb-4",children:e.jsx(_s,{className:"h-6 w-6 text-deepseek-primary"})}),e.jsx("h2",{className:"text-xl font-semibold mb-3",children:"Machine Learning Solutions"}),e.jsx("p",{className:"text-gray-600",children:"Custom machine learning models tailored to your specific business needs, from predictive analytics to pattern recognition."})]}),e.jsxs("div",{className:"p-6 bg-white rounded-xl shadow-lg hover:shadow-xl transition-shadow",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-blue-100 flex items-center justify-center mb-4",children:e.jsx(qr,{className:"h-6 w-6 text-deepseek-primary"})}),e.jsx("h2",{className:"text-xl font-semibold mb-3",children:"Natural Language Processing"}),e.jsx("p",{className:"text-gray-600",children:"Advanced NLP capabilities for text analysis, sentiment analysis, and automated content generation."})]}),e.jsxs("div",{className:"p-6 bg-white rounded-xl shadow-lg hover:shadow-xl transition-shadow",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-blue-100 flex items-center justify-center mb-4",children:e.jsx(_p,{className:"h-6 w-6 text-deepseek-primary"})}),e.jsx("h2",{className:"text-xl font-semibold mb-3",children:"Big Data Analytics"}),e.jsx("p",{className:"text-gray-600",children:"Transform your data into actionable insights with our advanced analytics and visualization tools."})]}),e.jsxs("div",{className:"p-6 bg-white rounded-xl shadow-lg hover:shadow-xl transition-shadow",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-blue-100 flex items-center justify-center mb-4",children:e.jsx(rl,{className:"h-6 w-6 text-deepseek-primary"})}),e.jsx("h2",{className:"text-xl font-semibold mb-3",children:"AI Security"}),e.jsx("p",{className:"text-gray-600",children:"Protect your AI systems with our comprehensive security solutions and best practices implementation."})]})]})]})]}),ZY=()=>e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Is DeepSeek a Stock? â DeepSeek IPO Status & Ticker (2026)"}),e.jsx("meta",{name:"description",content:"Is DeepSeek publicly traded? No â DeepSeek is a private Chinese AI company with
2136no stock, ticker or IPO as of 2026. Here's what's real and what to avoid."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-stock"}),e.jsx("meta",{property:"og:title",content:"Is DeepSeek a Stock? â IPO Status & Ticker (2026)"}),e.jsx("meta",{property:"og:description",content:"DeepSeek is privately held: no ticker, no IPO, no listed shares as of 2026. What exists instead, and which look-alike tickers to avoid."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-stock"}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"Is DeepSeek a Stock? â IPO Status & Ticker (2026)"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek is privately held: no ticker, no IPO, no listed shares as of 2026."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"WebPage",name:"Is DeepSeek a Stock? DeepSeek IPO status and ticker",url:"https://deepseek.ai/deepseek-stock",description:"Informational reference explaining that DeepSeek is a privately held Chinese AI company with no publicly traded stock, ticker or IPO as of 2026.",isPartOf:{"@type":"WebSite",name:"deepseek.ai â independent DeepSeek AI guide",url:"https://deepseek.ai"}})})]}),e.jsx("div",{className:"min-h-screen pt-24 pb-12 px-4 sm:px-6 lg:px-8 bg-gradient-to-br from-white to-gray-50",children:e.jsxs("div",{className:"max-w-7xl mx-auto",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsxs("h1",{className:"text-4xl font-bold text-gray-900 sm:text-5xl md:text-6xl",children:[e.jsx("span",{className:"block",children:"DeepSeek AI Stock"}),e.jsx("span",{className:"block text-[#0066FF] mt-2",children:"Market Intelligence"})]}),e.jsx("p",{className:"mt-4 text-xl text-gray-500",children:"Access comprehensive market data and investment insights"}),e.jsx(cn,{})]}),e.jsx("div",{className:"grid grid-cols-1 gap-8 mb-12",children:e.jsxs(ie,{className:"p-6",children:[e.jsx(Ot,{children:e.jsx(Ft,{children:"Is DeepSeek a Publicly Traded Stock?"})}),e.jsxs(me,{className:"space-y-4 text-gray-700",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"No."})," Hangzhou DeepSeek Artificial Intelligence Co., Ltd. is a private Chinese AI research company. It is not listed on any public stock exchange, has no ticker symbol, and no publicly traded shares are available to retail investors as of 2026."]}),e.jsx("p",{children:'Any website, broker or social media post offering a "DeepSeek stock", "DeepSeek IPO ticker" or pre-IPO shares should be treated with extreme caution â these are not legitimate. There is currently no way to buy DeepSeek stock directly.'}),e.jsxs("p",{className:"text-sm text-gray-500",children:["This page is informational only and is ",e.jsx("strong",{children:"not financial advice"}),". This is an independent fan site and is not affiliated with DeepSeek. For investment decisions, consult a licensed financial advisor."]})]})]})})]})})]}),ds=S.forwardRef(({className:t,...n},s)=>e.jsx("div",{className:"relative w-full overflow-auto",children:e.jsx("table",{ref:s,className:Ht("w-full caption-bottom text-sm",t),...n})}));ds.displayName="Table";const hs=S.forwardRef(({className:t,...n},s)=>e.jsx("thead",{ref:s,className:Ht("[&_tr]:border-b",t),...n}));hs.displayName="TableHeader";const us=S.forwardRef(({className:t,...n},s)=>e.jsx("tbody",{ref:s,className:Ht("[&_tr:last-child]:border-0",t),...n}));us.displayName="TableBody";const eJ=S.forwardRef(({className:t,...n},s)=>e.jsx("tfoot",{ref:s,className:Ht("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",t),...n}));eJ.displayName="TableFooter";const Le=S.forwardRef(({className:t,...n},s)=>e.jsx("tr",{ref:s,className:Ht("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t),...n}));Le.displayName="TableRow";const qe=S.forwardRef(({className:t,...n},s)=>e.jsx("th",{ref:s,className:Ht("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",t),...n}));qe.displayName="TableHead";const U=S.forwardRef(({className:t,...n},s)=>e.jsx("td",{ref:s,className:Ht("p-4 align-middle [&:has([role=checkbox])]:pr-0",t),...n}));U.displayName="TableCell";const tJ=S.forwardRef(({className:t,...n},s)=>e.jsx("caption",{ref:s,className:Ht("mt-4 text-sm text-muted-foreground",t),...n}));tJ.displayName="TableCaption";const nJ=()=>{const[t,n]=S.useState(!1),s=[{question:"What is DeepSeek R1?",answer:"DeepSeek R1 was DeepSeek's first open-source reasoning model, released in January 2025. It popularised visible chain-of-thought reasoning and rivalled OpenAI's o1 at a fraction of the cost. It is no longer DeepSeek's current model: reasoning now runs inside DeepSeek V4, and the deepseek-reasoner API alias that served R1-style output was retired on 24 July 2026."},{question:"Is DeepSeek R1 free to use?",answer:"The R1 weights are still available on Hugging Face under an MIT licence, so you can download and self-host them for free. What is gone is the hosted route: the deepseek-reasoner API alias was retired on 24 July 2026, so new API work should target deepseek-v4-flash or deepseek-v4-pro."},{question:"Should I still use DeepSeek R1 in 2026?",answer:"Only for research, reproducibility or offline self-hosting. For anything production-facing, DeepSeek V4 supersedes R1 on reasoning, coding and cost, and it is the only line DeepSeek still serves through its API."},{question:"Can I run DeepSeek R1 locally?",answer:"Yes. The R1 weights remain downloadable from Hugging Face and run under vLLM, SGLang or Ollama (distilled variants for smaller GPUs). Self-hosting is now the main reason to still pick R1 over V4."},{question:"What are DeepSeek R1's main capabilities?",answer:"R1 was built for step-by-step reasoning: mathematics, logical deduction, code generation and multi-step analysis, with its chain of thought exposed in the output. Those capabilities now live in DeepSeek V4, which reasons internally and scores higher on the same benchmarks."},{question:"Is DeepSeek R1 safe and secure?",answer:"R1 shipped with content filtering, and because the weights are open they can be audited and run entirely on your own infrastru
2136cture â which is the strongest privacy option available. Note that R1 no longer receives updates or safety patches from DeepSeek."}],r={"@context":"https://schema.org","@type":"FAQPage",mainEntity:s.map(i=>({"@type":"Question",name:i.question,acceptedAnswer:{"@type":"Answer",text:i.answer}}))},a={"@context":"https://schema.org","@type":"SoftwareApplication",name:"DeepSeek R1",applicationCategory:"Artificial Intelligence",operatingSystem:"Cross-platform",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},description:"DeepSeek R1 (January 2025) was DeepSeek's first open-source reasoning model. It has been superseded by DeepSeek V4; the hosted deepseek-reasoner alias was retired on 24 July 2026, while the MIT-licensed weights remain available for self-hosting.",publisher:{"@type":"Organization",name:"DeepSeek"}};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek R1 in 2026: Retired API, Weights Still Free"}),e.jsx("meta",{name:"description",content:"DeepSeek R1 is superseded by V4 and its deepseek-reasoner API alias was retired 24 July 2026. What R1 was, why it mattered, and how to self-host the MIT weights."}),e.jsx("meta",{name:"keywords",content:"DeepSeek R1, DeepSeek AI model, open source AI, reasoning AI, GPT-5 alternative, free AI model, AI coding, AI math"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-r1"}),e.jsx("meta",{property:"og:title",content:"DeepSeek R1 in 2026: Retired API, Weights Still Free"}),e.jsx("meta",{property:"og:description",content:"DeepSeek R1 is history, not the current model: V4 replaced it and the deepseek-reasoner alias retired on 24 July 2026. The MIT weights are still free to self-host."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-r1"}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek R1 in 2026: Retired API, Weights Still Free"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek R1 is history, not the current model: V4 replaced it and the deepseek-reasoner alias retired on 24 July 2026. The MIT weights are still free to self-host."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})]}),e.jsxs("main",{className:"min-h-screen pt-24 pb-12 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto",children:[e.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mb-4",children:"DeepSeek R1"}),e.jsxs("p",{className:"text-xl text-muted-foreground mb-6",children:["The open-source reasoning model DeepSeek released in January 2025. R1 is now historical: DeepSeek V4 has replaced it, and the hosted ",e.jsx("code",{children:"deepseek-reasoner"})," alias was retired on 24 July 2026. The MIT-licensed weights are still free to download and self-host."]}),e.jsx("div",{className:"rounded-xl border border-amber-300 bg-amber-50 text-left p-4 mb-6",children:e.jsxs("p",{className:"text-sm text-amber-900",children:[e.jsx("strong",{children:"Superseded model."})," For current pricing, benchmarks and API names, see"," ",e.jsx(se,{to:"/deepseek-v4",className:"underline font-medium",children:"DeepSeek V4"})," and the"," ",e.jsx(se,{to:"/blog/deepseek-chat-reasoner-retired-billing-impact",className:"underline font-medium",children:"deepseek-reasoner migration guide"}),". This page is kept as a reference for R1 itself."]})}),e.jsx(cn,{})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"What made R1 significant"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:[e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsx(_s,{className:"h-10 w-10 text-primary mb-4"}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Advanced Reasoning"}),e.jsx("p",{className:"text-muted-foreground",children:"Chain-of-thought reasoning for complex problem-solving and logical deduction."})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsx(qr,{className:"h-10 w-10 text-primary mb-4"}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Code Generation"}),e.jsx("p",{className:"text-muted-foreground",children:"Powerful coding c
2136apabilities across multiple programming languages."})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsx(Lt,{className:"h-10 w-10 text-primary mb-4"}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Math Excellence"}),e.jsx("p",{className:"text-muted-foreground",children:"State-of-the-art performance on mathematical reasoning benchmarks."})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsx(Tf,{className:"h-10 w-10 text-primary mb-4"}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Open Source"}),e.jsx("p",{className:"text-muted-foreground",children:"Fully open-source with MIT license. Run locally or use via API."})]})]})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-2",children:"How R1 compared at launch (January 2025)"}),e.jsxs("p",{className:"text-center text-muted-foreground mb-8",children:["A snapshot of the 2025 landscape, kept for context. It is not a comparison of todayâs models â for that, see ",e.jsx(se,{to:"/deepseek-v4",className:"text-primary hover:underline",children:"DeepSeek V4"}),"."]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{className:"w-[200px]",children:"Feature"}),e.jsx(qe,{className:"text-center",children:"DeepSeek R1"}),e.jsx(qe,{className:"text-center",children:"GPT-4"}),e.jsx(qe,{className:"text-center",children:"Claude 3.5"}),e.jsx(qe,{className:"text-center",children:"Gemini Pro"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Open Source"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Free Tier"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:"Limited"}),e.jsx(U,{className:"text-center",children:"Limited"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Local Deployment"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Math Reasoning"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Very Good"}),e.jsx(U,{className:"text-center",children:"Good"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Code Generation"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Very Good"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"API Cost"}),e.jsx(U,{className:"text-center",children:"Very Low"}),e.jsx(U,{className:"text-center",children:"High"}),e.jsx(U,{className:"text-center",children:"Medium"}),e.jsx(U,{className:"text-center",children:"Medium"})]})]})]})}),e.jsxs("p",{className:"text-center text-sm text-muted-foreground mt-4",children:["See detailed comparisons: ",e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"text-primary hover:underline",children:"DeepSeek vs ChatGPT"})," | ",e.jsx(se,{to:"/deepseek-vs-claude",className:"text-primary hover:underline",children:"DeepSeek vs Claude"})," | ",e.jsx(se,{to:"/deepseek-vs-gemini",className:"text-primary hover:underline",children:"DeepSeek vs Gemini"})]})]}),e.jsxs("section",{className:"mb-16 max-w-3xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:s.map((i,o)=>e.jsxs(ss,{value:`item-${o}`,children:[e.jsx(rs,{className:"text-left",children:i.question}),e.jsx(as,{children:i.answer})]},o))})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Learn More About DeepSeek"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[e.jsxs(se,{to:"/what-is-deepseek-ai",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"What is DeepSeek AI?"}),e.jsx("p",{className:"text-muted-foreground",children:"Learn about DeepSeek's mission, technology, and impact on the AI industry."})]}),e.jsxs(se,{to:"/deepseek-api",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek API"}),e.jsx("p",{className:"text-muted-foreground",children:"Current API models, pricing and the V4 endpoints that replaced deepseek-reasoner."})]}),e.jsxs(se,{to:"/deepseek-coder",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek Coder"}),e.jsx("p",{className:"text-muted-foreground",children:"Specialized coding model for software development tasks."})]})]})]}),e.jsxs("section",{className:"text-center bg-primary/5 rounded-2xl p-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"Moving on from R1"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-8 max-w-2xl mx-auto",children:"R1 still runs fine on your own hardware, but new work belongs on DeepSeek V4. Our free Chrome sidebar and the V4 guide are the quickest way to pick up where R1 left off."}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4",children:[e.jsx(se,{to:"/deepseek-api",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-primary-foreground bg-primary hover:bg-primary/90 transition-all shadow-lg",children:"Explore the V4 API"}),e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-6 py-3 border-2 border-primary text-base font-medium rounded-full text-primary bg-background hover:bg-accent transition-all",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]})]})]}),e.jsx(ar,{isOpen:t,onClose:()=>n(!1)})]})]})};var sJ="Separator",$A="horizontal",rJ=["horizontal","vertical"],LL=S.forwardRef((t,
2136n)=>{const{decorative:s,orientation:r=$A,...a}=t,i=aJ(r)?r:$A,l=s?{role:"none"}:{"aria-orientation":i==="vertical"?i:void 0,role:"separator"};return e.jsx(ln.div,{"data-orientation":i,...l,...a,ref:n})});LL.displayName=sJ;function aJ(t){return rJ.includes(t)}var ML=LL;const Ba=S.forwardRef(({className:t,orientation:n="horizontal",decorative:s=!0,...r},a)=>e.jsx(ML,{ref:a,decorative:s,orientation:n,className:Ht("shrink-0 bg-border",n==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",t),...r}));Ba.displayName=ML.displayName;const iJ=()=>{const t=jn(),[n,s]=S.useState(!1),[r,a]=S.useState("15 min read"),[i,o]=S.useState(!1);S.useEffect(()=>{const c=setTimeout(()=>{o(!0)},100);return()=>clearTimeout(c)},[]);const l=async()=>{if(navigator.share)try{await navigator.share({title:"What is Deep Learning AI | DeepSeek AI Blog",text:"Discover the power of deep AI technology. Learn how deep learning AI works and its applications.",url:window.location.href})}catch(c){console.log("Error sharing:",c)}else navigator.clipboard.writeText(window.location.href),alert("Link copied to clipboard!")};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"What is Deep Learning AI | Deep AI Technology | DeepSeek AI"}),e.jsx("meta",{name:"description",content:"Learn how deep learning AI works, how neural networks power modern models, and where this technology is transforming real industries."}),e.jsx("meta",{name:"keywords",content:"deep learning, deep AI, artificial intelligence, neural networks, machine learning, deep AI technology"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deep-learning-ai"}),e.jsx("meta",{property:"og:title",content:"What is Deep Learning AI | Deep AI Technology | DeepSeek AI"}),e.jsx("meta",{property:"og:description",content:"Learn how deep learning AI works, how neural networks power modern models, and where this technology is transforming real industries."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deep-learning-ai"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"What is Deep Learning AI | Deep AI Technology | DeepSeek AI"}),e.jsx("meta",{name:"twitter:description",content:"Learn how deep learning AI works, how neural networks power modern models, and where this technology is transforming real industries."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:` 2137 { 2138 "@context": "https://schema.org", 2139 "@type": "Article", 2140 "headline": "What is Deep Learning AI | Deep AI Technology", 2141 "description": "Learn how deep learning AI works, how neural networks power modern models, and where this technology is transforming real industries.", 2142 "image": "https://deepseek.ai/og-image.png", 2143 "author": { 2144 "@type": "Organization", 2145 "name": "DeepSeek AI Team" 2146 }, 2147 "publisher": { 2148 "@type": "Organization", 2149 "name": "DeepSeek AI", 2150 "logo": { 2151 "@type": "ImageObject", 2152 "url": "https://deepseek.ai/favicon.svg" 2153 } 2154 }, 2155 "datePublished": "2025-02-07", 2156 "dateModified": "2025-02-07" 2157 } 2158 `})]}),e.jsx("div",{className:"min-h-screen bg-gradient-to-b from-white via-blue-50/30 to-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-24",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100 group",children:[e.jsx(An,{className:"mr-2 h-4 w-4 transition-transform group-hover:-translate-x-1"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:`transition-opacity duration-500 ${i?"opacity-100":"opacity-0"}`,children:[e.jsxs("div",{className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-blue-100 text-blue-800 mb-4",children:[e.jsx(_s,{className:"h-4 w-4 mr-1"}),"Artificial Intelligence"]}),e.jsxs("div",{className:"flex items-center text-gray-500 mb-4 text-sm",children:[e.jsx(xo,{className:"h-4 w-4 mr-1"}),e.jsx("span",{children:"February 7, 2025"}),e.jsx("span",{className:"mx-2",children:"â¢"}),e.jsx(ig,{className:"h-4 w-4 mr-1"}),e.jsx("span",{children:"DeepSeek AI Team"}),e.jsx("span",{className:"mx-2",children:"â¢"}),e.jsx($r,{className:"h-4 w-4 mr-1"}),e.jsx("span",{children:r}),e.jsxs("button",{onClick:l,className:"ml-auto flex items-center text-blue-600 hover:text-blue-800",children:[e.jsx(G0,{className:"h-4 w-4 mr-1"}),e.jsx("span",{children:"Share"})]})]}),e.jsx("h1",{className:"text-4xl sm:text-5xl font-bold text-gray-900 mb-6 leading-tight",children:"What is Deep Learning AI and How Deep AI is Transforming Technology"}),e.jsx("p",{className:"text-xl text-gray-600 mb-8 leading-relaxed",children:"Deep learning AI is revolutionizing how machines understand and interact with the world. By exploring neural networks and deep AI technology, we can better understand how this breakthrough is reshaping industries across the globe."})]}),e.jsxs("div",{className:"bg-white/80 rounded-xl p-6 mb-10 border border-gray-100 shadow-sm",children:[e.jsx("h2",{className:"text-lg font-semibold mb-4",children:"Table of Contents"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#introduction",className:"flex items-center",children:"Introduction to Deep Learning"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#understanding",className:"flex items-center",children:"Understanding Deep Learning and Its Importance"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#components",className:"flex items-center",children:"Key Components of Deep Learning"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#models",className:"flex items-center",children:"Types of Deep Learning Models"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#applications",className:"flex items-center",children:"Applications of Deep Learning AI"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#advantages",className:"flex items-center",children:"Advantages of Using Deep Learning"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#challenges",className:"flex items-center",children:"Challenges in Deep Learning"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#future",className:"flex items-center",children:"The Future of Deep AI"})})]})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-16 prose-headings:font-semibold prose-headings:text-gray-900 prose-p:text-gray-700 prose-a:text-blue-600 prose-a:no-underline hover:prose-a:underline prose-img:rounded-xl",children:[e.jsx("div",{className:"bg-gradient-to-r from-blue-50 to-indigo-50 p-6 rounded-xl mb-10 border border-blue-100",children:e.jsxs("p",{className:"text-lg leading-relaxed",children:[e.jsx("strong",{children:"Deep learning AI"})," is a type of artificial intelligence that uses neural networks to analyze data and make predictions or decisions. It is a subset of machine learning, which is a broader field of study that focuses on the development of algorithms and statistical models that enable machines to perform tasks without being explicitly programmed. Deep learning AI has many applications, including image and speech recognition, natural language processing, and autonomous vehicles, all of which rely on ",e.jsx("strong",{children:"deep AI"})," to function effectively. As a key component of artificial intelligence, deep learning AI is poised to revolutionize numerous industries."]})}),e.jsx("p",{children:"With the ability to operate with unsupervised learning, deep learning can extract features from raw, unstructured data, making it a powerful tool for businesses and organizations. The use of deep AI in applications such as digital assistants, credit card fraud detection, and self-driving cars has already shown significant promise. As the field continues to evolve, we can expect to see even more innovative uses of artificial intelligence and deep learning AI."}),e.jsx("h2",{id:"introduction",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Introduction to Deep Learning"}),e.jsx("p",{children:"Deep learning models typically utilize three or more layers, often ranging from hundreds to thousands of layers, in contrast to traditional machine learning models which use one or tw
2158o layers. This complexity allows deep learning models to identify complex patterns in data, making them ideal for applications such as computer vision and natural language processing. With the help of artificial intelligence, deep AI can process large amounts of data, including images, speech, and text, to make accurate predictions and decisions."}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm my-8 border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-4",children:"Key Takeaways"}),e.jsxs("ul",{className:"space-y-2 list-none pl-0",children:[e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"Deep learning AI is a subset of machine learning that uses neural networks to analyze data."}),e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"Deep learning models can have tens or hundreds of hidden layers in their neural networks."}),e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"Deep AI has many applications, including image and speech recognition, natural language processing, and autonomous vehicles."}),e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"Deep learning requires a large amount of labeled data and high computation power."}),e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"The use of deep AI in applications such as digital assistants and self-driving cars has already shown significant promise."}),e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"Deep learning models can improve their performance as the size of the data increases, making them ideal for applications with large datasets."})]})]}),e.jsx("h2",{id:"understanding",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Understanding Deep Learning and Its Importance"}),e.jsx("p",{children:"Deep learning is a subset of machine learning that uses neural networks with multiple layers to analyze data. This allows deep learning models to learn complex patterns and relationships in data, making them more accurate and effective than traditional AI models. The use of neural networks enables deep learning to handle large amounts of data and make more accurate predictions."}),e.jsx("p",{children:"Some key aspects of deep learning include:"}),e.jsxs("ul",{children:[e.jsx("li",{children:"Automatic feature extraction, eliminating the need for manual feature identification by programmers"}),e.jsx("li",{children:"Improved performance as the volume of data increases, unlike traditional machine learning algorithms that may plateau"}),e.jsx("li",{children:"The ability to analyze unstructured data more effectively, making it suitable for tasks involving complex data types"})]}),e.jsx("p",{children:"The importance of deep learning lies in its ability to achieve high recognition accuracy, which is crucial for applications in safety-sensitive areas such as autonomous vehicles and medical devices. Additionally, deep learning can automatically perform feature extraction, making it a valuable tool for data analysis."}),e.jsx("p",{children:"As the field of deep learning continues to evolve, it is essential to understand its importance and how it differs from traditional AI. By leveraging the power of neural networks and machine learning, deep learning has the potential to revolutionize various industries and improve our daily lives."}),e.jsx("h2",{id:"components",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Key Components of Deep Learning"}),e.jsx("p",{children:"Deep learning algorithms are a crucial part of advanced technology, enabling machines to learn from data and improve their performance over time. The first step in understanding deep learning is to recognize its key components. These components work together to enable deep learning models to analyze data, make predictions, and learn from experience."}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 my-8",children:[e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Neural Networks"}),e.jsx("p",{className:"text-gray-700",children:"The building blocks of deep AI, composed of layers of interconnected nodes that process and transmit information."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Training Data"}),e.jsx("p",{className:"text-gray-700",children:"Large datasets used to train models and improve their accuracy through pattern recognition."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Activation Functions"}),e.jsx("p",{className:"text-gray-700",children:"Mathematical operations that determine whether neurons should be activated based on input data."})]})]}),e.jsx("h3",{className:"text-2xl font-semibold mt-8 mb-4",children:"Neural Networks Explained"}),e.jsx("p",{children:'Neural networks are a key component of deep learning, and are used to analyze data and make predictions or decisions. They consist of multiple layers, including an input layer, one or more hidden layers, and an output layer. Each layer is composed of a set of nodes or "neurons" that process and transmit information. The use of deep learning algorithms and advanced technology has enabled businesses to build complex neural networks that can learn and adapt quickly.'}),e.jsx("h3",{className:"text-2xl font-semibold mt-8 mb-4",children:"The Role of Data in Deep Learning"}),e.jsx("p",{children:"The role of data in deep learning is critical, as it is used to train deep learning models and improve their accuracy. Deep learning models require large amounts of data to learn and improve, and the quality of the data is also important. With the use of deep learning algorithms and advanced technology, businesses can collect and analyze large amounts of data, and use it to train deep learning models."}),e.jsx("h3",{className:"text-2xl font-semibold mt-8 mb-4",children:"Activation Functions: A Brief Overview"}),e.jsx("p",{children:"Activation functions are a crucial component of deep learning, as they introduce non-linearity into the model and allow it to learn more complex patterns and relationships in the data. Common activation functions include sigmoid, ReLU, and tanh. The use of deep learning algorithms and advanced technology has enabled businesses to build complex models that can learn and adapt quickly, and activation functions play a key role in this process."}),e.jsx("h2",{id:"models",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Types of Deep Learning Models"}),e.jsx("p",{children:"Deep learning models are a crucial part of artificial intelligence, and they have various applications in natural language processing and cognitive computing. These models can be categorized
2158into several types, each with its strengths and weaknesses."}),e.jsx("div",{className:"overflow-x-auto my-8",children:e.jsxs("table",{className:"min-w-full bg-white rounded-xl overflow-hidden border border-gray-200",children:[e.jsx("thead",{className:"bg-gray-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Model Type"}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Application"}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Strengths"})]})}),e.jsxs("tbody",{className:"divide-y divide-gray-200",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"Convolutional Neural Networks (CNN)"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Image recognition, medical image analysis"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Excellent at processing grid-like data, feature detection"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"Recurrent Neural Networks (RNN)"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Speech recognition, natural language processing"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Handles sequential data, maintains memory"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"Generative Adversarial Networks (GAN)"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Generating realistic images and videos"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Creates new data, learns distribution"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"Transformers"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Language models, translation, text generation"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Parallel processing, attention mechanism"})]})]})]})}),e.jsx("p",{children:"These models have been widely used in various industries, including healthcare, finance, and transportation. For example, CNNs are used in medical image analysis, while RNNs are used in speech recognition systems. GANs, on the other hand, are used in generating realistic images and videos, which has applications in fields such as entertainment and education."}),e.jsx("h2",{id:"applications",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Applications of Deep Learning AI"}),e.jsx("p",{children:"Deep learning AI has numerous applications across various industries, leveraging deep AI solutions to drive innovation and improvement. One of the significant applications is in image and video recognition, where machine learning algorithms are used to identify objects, people, and patterns."}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 my-8",children:[e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 p-6 rounded-xl border border-blue-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Image and Video Recognition"}),e.jsx("p",{children:"This technology is used in self-driving cars, facial recognition systems, and security surveillance. For instance, convolutional neural networks (CNNs) are particularly effective in identifying objects in images, even when partially obscured or distorted."})]}),e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 p-6 rounded-xl border border-blue-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Natural Language Processing (NLP)"}),e.jsx("p",{children:"Machine learning is also used in NLP, enabling computers to understand and generate human-like language. This technology is used in chatbots, virtual assistants, and language translation software."})]}),e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 p-6 rounded-xl border border-blue-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Autonomous Vehicles"}),e.jsx("p",{children:"Autonomous vehicles use deep AI solutions to recognize and respond to their environment, allowing them to navigate roads and avoid obstacles. This technology has the potential to revolutionize the transportation industry."})]}),e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 p-6 rounded-xl border border-blue-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Healthcare"}),e.jsx("p",{children:"Deep learning is transforming healthcare through medical image analysis, drug discovery, and personalized medicine. Advanced neural networks can detect patterns in medical data that humans might miss."})]})]}),e.jsx("h2",{id:"advantages",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Advantages of Using Deep Learning"}),e.jsx("p",{children:"Deep learning, a subset of artificial intelligence, has revolutionized the way
2158we approach complex tasks. With its ability to learn from large datasets, deep learning models can automatically extract features, eliminating the need for manual feature engineering. This is particularly beneficial for applications such as image recognition, where traditional machine learning methods struggle to keep up."}),e.jsx("p",{children:"One of the key advantages of deep learning is its ability to handle large datasets effectively. Neural networks, a fundamental component of deep learning, can process vast amounts of data, making them ideal for big data applications. This has led to significant improvements in areas such as speech recognition, natural language processing, and image recognition."}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm my-8 border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-4",children:"Benefits of Deep Learning"}),e.jsxs("ul",{className:"space-y-3",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-800 mr-3 mt-0.5 flex-shrink-0",children:"1"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Improved accuracy and performance:"})," Deep learning models can learn complex patterns and relationships in data, making them more accurate and effective than traditional AI models."]})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-800 mr-3 mt-0.5 flex-shrink-0",children:"2"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Handling large datasets:"})," Deep learning models can handle large datasets, making them useful for applications such as image and speech recognition."]})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-800 mr-3 mt-0.5 flex-shrink-0",children:"3"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Automation potential:"})," Deep learning has the potential to automate tasks such as data analysis and decision-making, freeing up time for more strategic activities."]})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-800 mr-3 mt-0.5 flex-shrink-0",children:"4"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Feature learning:"})," Deep learning models can automatically learn features from raw data, eliminating the need for manual feature engineering."]})]})]})]}),e.jsx("h2",{id:"challenges",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Challenges in Deep Learning"}),e.jsx("p",{children:"Deep learning algorithms have revolutionized the field of artificial intelligence, but they also come with their own set of challenges. O
2158ne of the primary concerns is the requirement for large amounts of high-quality data to train these models. Insufficient or poor-quality data can lead to inaccurate predictions and model failures, highlighting the need for advanced technology to support deep learning algorithms."}),e.jsx("p",{children:"The process of training deep learning models demands significant computational power, making it essential to have access to high-performance hardware like GPUs and TPUs. Hyperparameter tuning can also be a time-consuming and computationally intensive process, significantly impacting the model's performance. Some of the common challenges faced by deep learning models include:"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 my-8",children:[e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3 text-red-600",children:"Overfitting"}),e.jsx("p",{children:"When the model becomes too complex and captures noise in the training data, affecting its ability to generalize to new data."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3 text-red-600",children:"Underfitting"}),e.jsx("p",{children:"When the model is too simple and fails to capture underlying patterns, resulting in poor performance on both training and new data."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3 text-red-600",children:"Data Bias"}),e.jsx("p",{children:"When the training data contains systematic errors or biases that the model learns, leading to unfair or discriminatory outcomes."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3 text-red-600",children:"Adversarial Attacks"}),e.jsx("p",{children:"Subtle perturbations designed to fool deep learning models, potentially causing significant security vulnerabilities in critical applications."})]})]}),e.jsx("p",{children:"To overcome these challenges, it is essential to implement regularization techniques, such as dropout and L2 regularization, and use data augmentation methods to artificially increase the size of training datasets. By addressing these challenges and leveraging advanced technology, deep learning algorithms can be made more effective and efficient."}),e.jsx("h2",{id:"future",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"The Future of Deep AI"}),e.jsx("p",{children:"As we look to the future, it's clear that deep learning AI will continue to play a major role in shaping various industries. With the increasing use of natural language processing, deep learning models will be able to better understand and generate human language, leading to more sophisticated applications. For instance, cognitive computing will enable deep learning models to better understand and respond to their environment, making them more effective in real-world scenarios."}),e.jsxs("div",{className:"bg-gradient-to-r from-blue-50 to-indigo-50 p-8 rounded-xl my-8 border border-blue-100",children:[e.jsx("h3",{className:"text-2xl font-semibold mb-4",children:"Key Trends in Deep AI"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[e.jsxs("div",{className:"bg-white/80 p-5 rounded-lg",children:[e.jsx("h4",{className:"font-medium mb-2",children:"Natural Language Processing"}),e.jsx("p",{className:"text-sm text-gray-700",children:"Improved human-computer interaction through better language understanding."})]}),e.jsxs("div",{className:"bg-white/80 p-5 rounded-lg",children:[e.jsx("h4",{className:"font-medium mb-2",children:"Cognitive Computing"}),e.jsx("p",{className:"text-sm text-gray-700",children:"More effective decision-making capabilities through contextual understanding."})]}),e.jsxs("div",{className:"bg-white/80 p-5 rounded-lg",children:[e.jsx("h4",{className:"font-medium mb-2",children:"Multimodal Learning"}),e.jsx("p",{className:"text-sm text-gray-700",children:"Integration of multiple data types for more comprehensive AI models."})]})]})]}),e.jsx("p",{children:"As deep learning continues to evolve, we can expect to see significant improvements in areas such as image and speech recognition, natural language processing, and autonomous systems. With the help of deep learning, companies like Tesla and John Deere are already making significant str
2158ides in areas such as autonomous vehicles and crop health assessment. As the technology continues to advance, we can expect to see even more innovative applications of deep learning AI in the future."}),e.jsx("h2",{className:"text-3xl mt-16 mb-6",children:"Popular Deep Learning Frameworks"}),e.jsx("p",{children:"Deep learning has become a crucial aspect of artificial intelligence, and various frameworks have emerged to support its development. When it comes to building deep AI solutions, choosing the right framework is essential. In recent years, machine learning has played a significant role in the growth of these frameworks."}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 my-8",children:[e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100 hover:shadow-md transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"TensorFlow"}),e.jsx("p",{className:"text-gray-700 mb-3",children:"An open-source library that allows for deployment on multiple CPUs or GPUs without code rewriting."}),e.jsx("span",{className:"text-xs font-medium bg-red-100 text-red-800 px-2 py-1 rounded-full",children:"Google"})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100 hover:shadow-md transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"PyTorch"}),e.jsx("p",{className:"text-gray-700 mb-3",children:"Known for ease of use and rapid prototyping capabilities with a strong focus on research."}),e.jsx("span",{className:"text-xs font-medium bg-blue-100 text-blue-800 px-2 py-1 rounded-full",children:"Facebook"})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100 hover:shadow-md transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Keras"}),e.jsx("p",{className:"text-gray-700 mb-3",children:"User-friendly and easy to use with a simple and intuitive API for quick model development."}),e.jsx("span",{className:"text-xs font-medium bg-green-100 text-green-800 px-2 py-1 rounded-full",children:"TensorFlow-Integrated"})]})]}),e.jsx(Ba,{className:"my-16"}),e.jsx("h2",{className:"text-3xl mb-8",children:"Frequently Asked Questions"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"What is deep learning AI?"}),e.jsx("p",{children:"Deep learning AI is a type of artificial intelligence that uses neural networks to analyze data and make predictions or decisions. It is a subset of machine learning, which is a broader field of study that focuses on the development of algorithms and statistical models that enable machines to perform tasks without being explicitly programmed."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"How does deep AI differ from traditional AI?"}),e.jsx("p",{children:"Deep AI differs from traditional AI in that it uses a more complex and nuanced approach to data analysis, allowing it to handle large amounts of data and make more accurate predictions. Deep learning models use neural networks with multiple layers to analyze data and learn complex patterns and relationships."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"What are the applications of deep AI?"}),e.jsx("p",{children:"Deep AI has many applications, including image and video recognition, natural language processing, and autonomous vehicles. Image and video recognition are used in applications such as self-driving cars and facial recognition systems, while natural language processing is used in applications such as chatbots and virtual assistants."})]})]}),e.jsx("h2",{className:"text-3xl mt-16 mb-6",children:"Source Links"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsx("a",{href:"https://www.ibm.com/think/topics/deep-learning",target:"_blank",rel:"noopener noreferrer",className:"bg-white p-4 rounded-lg border border-gray-200 hover:border-blue-300 hover:shadow-sm transition-all flex items-center",children:e.jsx("span",{className:"text-blue-600 hover:underline",children:"What Is Deep Learning? | IBM"})}),e.jsx("a",{href:"https://www.forbes.com/advisor/in/business/software/what-is-deep-learning-ai/",target:"_blank",rel:"noopener noreferrer",className:"bg-white p-4 rounded-lg border border-gray-200 hover:border-blue-300 hover:shadow-sm transition-all flex items-center",children:e.jsx("span",{className:"text-blue-600 hover:underline",children:"What Is Deep Learning AI?"})}),e.jsx("a",{href:"https://www.techtarget.com/searchenterpriseai/definition/deep-learning-deep-neural-network",target:"_blank",rel:"noopener noreferrer",className:"bg-white p-4 rounded-lg border border-gray-200 hover:border-blue-300 hover:shadow-sm transition-all flex items-center",children:e.jsx("span",{className:"text-blue-600 hover:underline",children:"What is deep learning and how does it work?"})}),e.jsx("a",{href:"https://mitpress.mit.edu/9780262048644/understanding-deep-learning/",target:"_blank",rel:"noopener noreferrer",className:"bg-white p-4 rounded-lg border border-gray-200 hover:border-blue-300 hover:shadow-sm transition-all flex items-center",children:e.jsx("span",{className:"text-blue-600 hover:underline",children:"Understanding Deep Learning"})}
2158),e.jsx("a",{href:"https://www.nvidia.com/en-us/glossary/deep-learning/",target:"_blank",rel:"noopener noreferrer",className:"bg-white p-4 rounded-lg border border-gray-200 hover:border-blue-300 hover:shadow-sm transition-all flex items-center",children:e.jsx("span",{className:"text-blue-600 hover:underline",children:"What is Deep Learning?"})})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-16",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Add to Chrome - It's Free",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]}),e.jsxs("button",{onClick:()=>s(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Create AI Agents",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]})]})]})}),e.jsx(ar,{isOpen:n,onClose:()=>s(!1)})]})},oJ=()=>{const t=jn(),n=[{name:"Sarah Johnson",company:"TechVibe Inc.",quote:"Vibe Coding has cut our development time in half. Our teams are shipping features faster than ever before."},{name:"Michael Chen",company:"Quantum Solutions",quote:"Natural language programming is the future. Vibe Coding is leading the charge in making coding more accessible and efficient."},{name:"Priya Sharma",company:"Future Systems",quote:"We've seen a 40% increase in developer productivity since adopting Vibe Coding methodologies in our workflow."}],s=[{name:"Alex Rodriguez",role:"Senior Developer",testimonial:"I was skeptical at first, but Vibe Coding has completely transformed my workflow. I spend more time solving interesting problems and less time writing boilerplate code."},{name:"Jamie Williams",role:"Full Stack Engineer",testimonial:"The regenerative approach to debugging has saved me countless hours. When something doesn't work, I just rephrase my prompt instead of diving into complex debugging sessions."},{name:"Taylor Kim",role:"Frontend Developer",testimonial:"As someone who thinks visually, being able to describe UI components in natural language and see them materialize is nothing short of magical."}];return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Vibe Coding Guide â AI Software Development"}),e.jsx("meta",{name:"description",content:"Learn how Vibe Coding uses AI prompts to generate software, speed up development workflows, and change how teams build products."}),e.jsx("meta",{name:"keywords",content:"vibe coding, AI programming, natural language programming, code generation, DeepSeek AI, deep AI"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/vibe-coding"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:title",content:"Vibe Coding Guide â AI Software Development"}),e.jsx("meta",{property:"og:description",content:"How AI-powered natural language programming is transforming the developer experience"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/vibe-coding"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"Vibe Coding: Revolution in Software Development"}),e.jsx("meta",{name:"twitter:description",content:"How AI-powered natural language programming is transforming the developer experience"}),e.jsx("script",{type:"application/ld+json",children:` 2159 { 2160 "@context": "https://schema.org", 2161 "@type": "Article",
2162 "headline": "Vibe Coding: The Future of Software Development", 2163 "description": "Discover how Vibe Coding is revolutionizing software development by leveraging AI to generate code from natural language prompts.", 2164 "author": { 2165 "@type": "Organization", 2166 "name": "DeepSeek AI" 2167 }, 2168 "publisher": { 2169 "@type": "Organization", 2170 "name": "DeepSeek AI", 2171 "logo": { 2172 "@type": "ImageObject", 2173 "url": "https://deepseek.ai/favicon.svg" 2174 } 2175 }, 2176 "datePublished": "2025-03-11", 2177 "dateModified": "2025-03-11" 2178 } 2179 `})]}),e.jsx("div",{className:"min-h-screen bg-gradient-to-b from-blue-50 to-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-16",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"prose prose-lg max-w-none mt-8",children:[e.jsxs("header",{className:"mb-12 text-center",children:[e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"Vibe Coding: The Future of Software Development"}),e.jsx("p",{className:"text-gray-500 mb-2",children:"March 11, 2025 ⢠DeepSeek AI Team"})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-800 mb-6 flex items-center",children:[e.jsx(jz,{className:"mr-3 h-7 w-7 text-blue-600"}),"What Is Vibe Coding?"]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("p",{className:"mb-4",children:"Vibe Coding represents a paradigm shift in software development, leveraging advanced AI to transform natural language descriptions into functional code. Unlike traditional programming, where developers must write every line of code manually, Vibe Coding allows them to express their intent in everyday language."}),e.jsx("p",{className:"mb-4",children:"The concept is simple yet revolutionary: describe what you want to build, and the AI generates the corresponding code. This approach fundamentally changes the development process, allowing programmers to focus on problem-solving and creativity rather than implementation details."}),e.jsxs("div",{className:"bg-blue-50 p-4 rounded-lg border border-blue-100 my-6",children:[e.jsx("h3",{className:"text-xl font-semibold text-blue-800 mb-3",children:"Key Benefits of Vibe Coding:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Accelerated Development:"})," Reduce time spent on boilerplate code and repetitive tasks."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Lower Entry Barrier:"})," Make coding more accessible to individuals without extensive programming backgrounds."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Increased Focus on Logic:"}),' Spend more time on the "what" and less on the "how."']}),e.jsxs("li",{children:[e.jsx("strong",{children:"Consistent Code Style:"})," Generate code that follows best practices and consistent patterns."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Natural Debugging:"})," Shift from traditional debugging to a regenerative approach."]})]})]}),e.jsx("p",{children:"By bridging the gap between human intent and machine execution, Vibe Coding is democratizing software development and enabling a new generation of creators to bring their ideas to life with unprecedented speed and efficiency."})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-800 mb-6 flex items-center",children:[e.jsx(Wo,{className:"mr-3 h-7 w-7 text-blue-600"}),"Tech Giants Embrace Vibe Coding"]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("p",{className:"mb-4",children:"The adoption of Vibe Coding methodologies across the tech industry has been swift and decisive. Major players are integrating these capabilities into their development workflows, recognizing the competitive advantage they provide."}),e.jsxs("div",{className:"grid md:grid-cols-3 gap-4 my-6",children:[e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 p-5 rounded-lg text-center",children:[e.jsx("p",{className:"text-4xl font-bold text-blue-600 mb-2",children:"70%"}),e.jsx("p",{className:"text-sm text-gray-700",children:"of Fortune 500 tech companies are exploring Vibe Coding"})]}),e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 p-5 rounded-lg text-center",children:[e.jsx("p",{className:"text-4xl font-bold text-blue-600 mb-2",children:"3x"}),e.jsx("p",{className:"text-sm text-gray-700",children:"faster feature development reported by early adopters"})]}),e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 p-5 rounded-lg text-center",children:[e.jsx("p",{className:"text-4xl font-bold text-blue-600 mb-2",children:"45%"}),e.jsx("p",{className:"text-sm text-gray-700",children:"reduction in development costs on average"})]})]}),e.jsx("p",{className:"mb-4",children:"Companies like Microsoft, Google, and Amazon are investing heavily in natural language programming capabilities, integrating them into their development environments and cloud services. These tools are becoming a standard part of the modern developer toolkit."}),e.jsx("p",{children:"The rapid industry adoption highlights a critical truth: Vibe Coding isn't just a novel approachâit's a competitive necessity in an increasingly fast-paced technological landscape."})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-800 mb
2179-6 flex items-center",children:[e.jsx(Lt,{className:"mr-3 h-7 w-7 text-blue-600"}),"Industry Insights"]}),e.jsx("div",{className:"space-y-6",children:n.map((r,a)=>e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsxs("blockquote",{className:"italic text-lg text-gray-700 mb-4",children:['"',r.quote,'"']}),e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center text-blue-600 font-bold",children:r.name.charAt(0)}),e.jsxs("div",{className:"ml-4",children:[e.jsx("p",{className:"font-semibold text-gray-900",children:r.name}),e.jsx("p",{className:"text-sm text-gray-500",children:r.company})]})]})]},a))})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-800 mb-6 flex items-center",children:[e.jsx(fz,{className:"mr-3 h-7 w-7 text-blue-600"}),"Developer Testimonials"]}),e.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:s.map((r,a)=>e.jsxs("div",{className:"bg-gradient-to-br from-white to-blue-50 p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsxs("p",{className:"mb-4 text-gray-700",children:['"',r.testimonial,'"']}),e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center text-blue-600 font-bold",children:r.name.charAt(0)}),e.jsxs("div",{className:"ml-3",children:[e.jsx("p",{className:"font-semibold text-gray-900",children:r.name}),e.jsx("p",{className:"text-sm text-gray-500",children:r.role})]})]})]},a))})]}),e.jsx("section",{className:"mb-12",children:e.jsxs("div",{className:"bg-gradient-to-r from-blue-50 to-indigo-50 p-6 rounded-xl border border-blue-100",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-800 mb-4",children:"The Future is Here"}),e.jsx("p",{className:"mb-4",children:"Vibe Coding isn't just changing how we write codeâit's redefining what it means to be a developer. As AI continues to advance, the line between human creativity and machine implementation will blur further, opening up new possibilities we can scarcely imagine today."}),e.jsx("p",{children:"For those ready to embrace this paradigm shift, the rewards are clear: faster development cycles, reduced cognitive load, and the ability to focus on the truly innovative aspects of software creation. The question is no longer whether to adopt Vibe Coding, but how quickly you can integrate it into your workflow."})]})}),e.jsx("footer",{className:"border-t border-gray-200 pt-8 mt-12",children:e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("p",{className:"text-sm text-gray-500",children:"© 2025 DeepSeek AI. All rights reserved."}),e.jsxs("div",{className:"flex space-x-4",children:[e.jsx("a",{href:"https://github.com/deepseek-ai",target:"_blank",rel:"noopener noreferrer",className:"text-gray-500 hover:text-gray-700",children:e.jsx(l2,{className:"h-5 w-5"})}),e.jsx("a",{href:"https://linkedin.com/company/deepseek-ai",target:"_blank",rel:"noopener noreferrer",className:"text-gray-500 hover:text-gray-700",children:e.jsx(yz,{className:"h-5 w-5"})}),e.jsx("a",{href:"https://twitter.com/deepseek_ai",target:"_blank",rel:"noopener noreferrer",className:"text-gray-500 hover:text-gray-700",children:e.jsx(Cz,{className:"h-5 w-5"})})]})]})})]})]})})]})},lJ=()=>(S.useEffect(()=>{window.location.href="https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop"},[]),e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Redirectingâ¦"}),e.jsx("meta",{name:"robots",content:"noindex, follow"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/chrome-extension-uninstall"})]}),e.jsx("div",{className:"container mx-auto px-4 py-16 min-h-screen",children:e.jsx("h1",{className:"text-3xl font-bold text-center mt-20",children:"Redirecting..."})})]})),cJ=()=>(S.useEffect(()=>{window.location.href="https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop"},[]),e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Redirectingâ¦"}),e.jsx("meta",{name:"robots",content:"noindex, follow"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/chrome-extension-update"})]}),e.jsx("div",{className:"container mx-auto px-4 py-16 min-h-screen",children:e.jsx("h1",{className:"text-3xl font-bold text-center mt-20",children:"Redirecting..."})})]})),dJ=()=>{const t=jn(),[n,s]=S.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"The Evolution of AI Chat Technology | DeepSeek AI Blog"}),e.jsx("meta",{name:"description",content:"Explore AI chat technology, from natural language processing to context awareness, and how modern chatbots transform digital communication."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/ai-chat"})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"text-gray-500 mb-2",children:"March 11, 2025 ⢠DeepSeek Team"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"The Evolution of AI Chat Technology"})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"What is AI Chat?"}),e.jsx("p",{children:"AI Chat (Artificial Intelligence Chat) refers to conversational systems powered by advanced AI technologies that enable human-like text or voice interactions between users and machines. These systems leverage natural language processing (NLP), machine learning, and deep neural networks to understand, interpret, and respond to human queries in a conversational manner."}),e.jsx("p",{className:"mt-4",children:"Unlike traditional rule-based chatbots that operate on predefined scripts and decision trees, modern AI chat systems can understand context, learn from interactions, and generate coherent, relevant responses that mimic human conversation patterns. This technology has evolved from simple c
2179ommand-response systems to sophisticated conversational agents capable of maintaining contextual awareness across multiple exchanges."})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"The Technical Architecture Behind AI Chat"}),e.jsx("p",{children:"Modern AI chat systems are built on complex architectures that integrate multiple technologies:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 mt-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Large Language Models (LLMs):"})," Foundation models like GPT-4, LLaMA, and DeepSeek that are trained on vast amounts of text data to generate human-like responses"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Natural Language Understanding (NLU):"})," Components that parse user inputs to identify intent, entities, and sentiment"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Dialogue Management:"})," Systems that maintain conversation state and context across multiple turns"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Retrieval-Augmented Generation (RAG):"})," Techniques that combine retrieval of relevant information with generative capabilities to produce more accurate, grounded responses"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Knowledge Graphs:"})," Structured representations of information that help AI chat systems access and reason with factual knowledge"]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Understanding AI Chat"}),e.jsx("p",{children:"AI chat technology has revolutionized how we interact with machines, making human-computer interaction more natural and intuitive than ever before. Through advanced natural language processing and machine learning algorithms, modern AI chat systems can understand context, maintain conversation flow, and provide relevant responses in real-time."}),e.jsx("p",{className:"mt-4",children:"The evolution of AI chat systems has been marked by significant improvements in several key areas:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 mt-2",children:[e.jsx("li",{children:"Reduction in hallucinations and factual errors"}),e.jsx("li",{children:"Improved retention of conversation context over longer exchanges"}),e.jsx("li",{children:"Enhanced ability to follow complex instructions"}),e.jsx("li",{children:"More nuanced understanding of implicit requests"}),e.jsx("li",{children:"Better handling of ambiguous queries"})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Key Innovations"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Context-aware conversations:"})," Modern AI chat systems maintain a memory of previous exchanges, enabling them to reference earlier parts of the conversation and provide coherent, contextually relevant responses"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Multi-turn dialogue capabilities:"})," The ability to maintain conversation flow across multiple exchanges, tracking topics, references, and user intentions throughout a conversation"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Emotional intelligence:"})," Advanced sentiment analysis allows AI chat systems to detect and respond appropriately to user emotions, adjusting tone and content accordingly"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Real-time learning:"})," Continuous improvement through user interactions, with systems that adapt to individual user preferences, speech patterns, and frequently asked questions"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"External knowledge integration:"})," Connection to up-to-date information sources and specialized knowledge bases to provide accurate, relevant information"]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"The Challenges of AI Chat"}),e.jsx("p",{children:"Despite significant advances, AI chat technology still faces several important challenges:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 mt-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Hallucinations:"})," AI systems sometimes generate plausible-sounding but factually incorrect information"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Contextual limitations:"})," While improved, maintaining context over very long conversations remains challenging"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Cultural and linguistic biases:"})," AI systems may struggle with cultural nuances or non-dominant languages"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Ethical considerations:"})," Issues related to privacy, consent, and potential misuse of convincing AI chat systems"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Safety and alignment:"})," Ensuring AI chat systems adhere to human values and don't produce harmful content"]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Business Applications"}),e.jsx("p",{children:"Organizations across industries are leveraging AI chat technology to enhance customer service, automate routine tasks, and provide 24/7 support. From healthcare to finance, AI chatbots are becoming an integral part of digital transformation strategies, offering scalable solutions for user engagement and support."}),e.jsx("p",{className:"mt-4",children:"Industry-specific applications include:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 mt-2",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Customer service:"})," AI chat systems handling routine inquiries, troubleshooting, and support cases, freeing human agents for more complex issues"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Healthcare:"})," Virtual health assistants providing symptom assessment, medication reminders, and health information"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Financial services:"})," Banking assistants helping with account management, transaction inquiries, and personalized financial advice"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"E-commerce:"})," Shopping assistants guiding product discovery, answering questions, and facilitating purchases"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Education:"})," Learning companions providing personalized tutoring, answering questions, and assisting with assignments"]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"DeepSeek's Approach to AI Chat"}),e.jsx("p",{children:"At DeepSeek, we've developed our AI chat technology with a focus on:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 mt-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Factual accuracy:"})," Our retrieval-augmented models minimize hallucinations by grounding responses in verified information"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Contextual understanding:"})," Advanced context tracking maintains coherence across multiple conversation turns"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Enterprise-grade privacy:"})," Options for private deployments that keep sensitive data within organizational boundaries"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Domain adaptation:"})," Specialization capabilities for industry-specific knowledge and terminology"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Multilingual support:"})," Robust performance across multiple languages without quality degradation"]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Future Outlook"}),e.jsx("p",{children:"The future of AI chat technology looks promising, with ongoing developments in:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Multimodal interactions:"})," Seamless integration of text, voice, images, and videos within a single conversation flow"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Enhanced personalization:"})," Systems that develop deeper understanding of individual users over time, adapting to their unique needs and preferences"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Improved context understanding:"})," More sophisticated memory mechanisms enabling AI to recall relevant details from past interactions"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Domain expertise:"})," Specialized AI chat systems with deep knowledge in specific fields like medicine, law, engineering, and more"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Human-AI collaboration:"})," Systems designed to augment human capabilities rather than replace them, working alongside humans in complex problem-solving scenarios"]})]}),e.jsx("p",{className:"mt-4",children:"As these technologies continue to evolve, we can expect AI chat to become an increasingly natural, helpful, and integrated part of our digital experiences, transforming how we interact with information and services online."})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]}),e.jsxs("button",{onClick:()=>s(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]})]})]})}),e.jsx(ar,{isOpen:n,onClose:()=>s(!1)})]})},ur=({items:t=[],currentPage:n})=>{Ah();const s={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai"},...t.map((r,a)=>({"@type":"ListItem",position:a+2,name:r.label,item:`https://deepseek.ai${r.path}`})),{"@type":"ListItem",position:t.length+2,name:n}]};return e.jsxs(e.Fragment,{children:[e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("nav",{"aria-label":"Breadcrumb",className:"mb-6",children:e.jsxs("ol",{className:"flex items-center flex-wrap gap-1 text-sm text-muted-foreground",children:[e.jsx("li",{className:"flex items-center",children:e.jsxs(se,{to:"/",className:"flex items-center hover:text-primary transition-colors",children:[e.jsx(eT,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Home"})]})}),t.map((r,a)=>e.jsxs("li",{className:"flex items-center",children:[e.jsx(Vr,{className:"h-4 w-4 mx-1"}),e.jsx(se,{to:r.path,className:"hover:text-primary transition-colors",children:r.label})]},a)),e.jsxs("li",{className:"flex items-center",children:[e.jsx(Vr,{className:"h-4 w-4 mx-1"}),e.jsx("span",{className:"text-foreground font-medium","aria-current":"page",children:n})]})]})})]})},WA=()=>{const t=jn(),[n,s]=S.useState(!1),r=[{question:"What is DeepSeek AI?",answer:"DeepSeek AI is an open-source artificial intelligence company founded in July 2023 by Liang Wenfeng in Hangzhou, China. It develops advanced AI models including DeepSeek-V3 and DeepSeek-R1, known for exceptional reasoning capabilities and cost-effective training methods."},{question:"Is DeepSeek free to use?",answer:"Yes, DeepSeek offers free access to its models. The API has generous free tiers, and since the models are open-source under the MIT license, you can download and run them locally for free with no restrictions."},{question:"How does DeepSeek compare to ChatGPT?",answer:"DeepSeek R1 competes with GPT-4 on reasoning and coding benchmarks, often at lower cost. DeepSeek is open-source while ChatGPT is proprietary. DeepSeek excels in math and coding; ChatGPT has broader general knowledge and features."},{question:"What makes DeepSeek different from other AI models?",answer:"DeepSeek stands out for its cost-efficient training (V3 cost only $6M vs $100M+ for c
2179ompetitors), open-source approach, visible chain-of-thought reasoning in R1, and advanced techniques like Mixture-of-Experts (MoE) architecture."},{question:"Is DeepSeek safe to use?",answer:"DeepSeek AI is generally safe for most uses. However, it's subject to Chinese regulations and data may be processed in China. For sensitive applications, consider privacy implications. The open-source versions can run locally for full data control."},{question:"Can I run DeepSeek on my computer?",answer:"Yes, DeepSeek models are open-source. Smaller distilled versions can run on consumer hardware with 16GB+ VRAM. Full models require more powerful systems. Tools like Ollama and llama.cpp make local deployment easier."}],a={"@context":"https://schema.org","@type":"FAQPage",mainEntity:r.map(o=>({"@type":"Question",name:o.question,acceptedAnswer:{"@type":"Answer",text:o.answer}}))},i={"@context":"https://schema.org","@type":"Article",headline:"What is DeepSeek AI? Understanding DeepSeek.com's Groundbreaking Open-Source Revolution",description:"Discover how DeepSeek.com (Hangzhou DeepSeek Artificial Intelligence Co., Ltd.) is challenging Silicon Valley's AI dominance with cost-effective, open-source models through our fan site perspective.",image:"https://deepseek.ai/og-image.png",datePublished:"2025-04-03T08:00:00+00:00",dateModified:"2025-12-21T08:00:00+00:00",author:{"@type":"Organization",name:"DeepSeek.ai Fan Site",url:"https://deepseek.ai"}};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"What Is DeepSeek AI? Open-Source Model Guide"}),e.jsx("meta",{name:"description",content:"Learn what DeepSeek AI is, how its open-source models work, and why this independent fan site covers its cost-efficient AI technology."}),e.jsx("meta",{name:"keywords",content:"DeepSeek.com, Hangzhou DeepSeek, China AI, open-source AI, AI revolution, DeepSeek-V3, AI cost efficiency, DeepSeek vs ChatGPT"}),e.jsx("meta",{property:"og:title",content:"What Is DeepSeek AI? Open-Source Model Guide"}),e.jsx("meta",{property:"og:description",content:"Learn what DeepSeek AI is, how its open-source models work, and why this independent fan site covers its cost-efficient AI technology."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/what-is-deepseek-ai"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"What Is DeepSeek AI? Open-Source Model Guide"}),e.jsx("meta",{name:"twitter:description",content:"Learn what DeepSeek AI is, how its open-source models work, and why this independent fan site covers its cost-efficient AI technology."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/what-is-deepseek-ai"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(i)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})]}),e.jsx("div",{className:"min-h-screen bg-gradient-to-b from-white via-blue-50/30 to-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-16 pb-16",children:[e.jsx(ur,{items:[{label:"Resources",path:"/blog"}],currentPage:"What is DeepSeek AI?"}),e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6 hover:bg-gray-100 group transition-all duration-300",children:[e.jsx(An,{className:"mr-2 h-4 w-4 transition-transform group-hover:-translate-x-1"}),"Back to Blog"]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mb-10 animate-fadeIn",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Download DeepSeek AI for Free!",e.jsx(wn,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]}),e.jsxs("button",{onClick:()=>s(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]}),e.jsxs("article",{className:"prose prose-lg max-w-none bg-white rounded-xl shadow-sm p-8 border border-gray-100",children:[e.jsx("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-4 mb-6",children:e.jsxs("p",{className:"text-amber-800 text-sm",children:[e.jsx("strong",{children:"Disclaimer:"})," This is an independent fan site. We are not affiliated with, sponsored by, or endorsed by Hangzhou DeepSeek Art
2179ificial Intelligence Co., Ltd. For official information, visit ",e.jsx("a",{href:"https://www.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"DeepSeek.com"}),"."]})}),e.jsx("h1",{className:"text-3xl sm:text-4xl font-bold text-gray-900 mb-6",children:"What is DeepSeek AI? Understanding DeepSeek.com's Groundbreaking Open-Source Revolution"}),e.jsx("div",{className:"bg-blue-50 border-l-4 border-blue-500 p-4 mb-8 rounded-r-md",children:e.jsx("p",{className:"text-lg text-gray-800",children:`DeepSeek.com is turning heads across the global technology landscape. Hailed as a "Sputnik moment" in artificial intelligence, the company developed by Hangzhou DeepSeek Artificial Intelligence Co., Ltd. represents a bold new approachâone that challenges the high-cost, closed-source models dominating Silicon Valley while offering an accessible, efficient, and open alternative. In this blog post, we'll dive into what DeepSeek.com is, how it works, and why it's creating both excitement and debate in the tech industry.`})}),e.jsx(Ba,{className:"my-8"}),e.jsx("h2",{className:"text-2xl font-bold text-gray-800 mt-8 mb-4",children:"A New Contender in the AI Arena"}),e.jsxs("p",{children:["DeepSeek.com is developed by Hangzhou DeepSeek Artificial Intelligence Co., Ltd., a Chinese artificial intelligence research company founded in July 2023 by Liang Wenfeng, a hedge fund entrepreneur with a passion for technology and innovation. Headquartered in Hangzhou, Zhejiang, DeepSeek is owned and funded by the Chinese hedge fund High-Flyer. Unlike many Western AI companies that keep their training data and model architectures proprietary, DeepSeek embraces an open-source philosophyâreleasing its models with open weights under the MIT license. This means that anyone can download, use, and modify the model code, opening the door for widespread collaboration and rapid innovation.",e.jsx("br",{}),"citeturn0search4"]}),e.jsx(Ba,{className:"my-8"}),e.jsx("h2",{className:"text-2xl font-bold text-gray-800 mt-8 mb-4",children:"The Technology Behind DeepSeek"}),e.jsx("h3",{className:"text-xl font-semibold text-gray-700 mt-6 mb-3",children:"Cost-Efficiency Through Innovation"}),e.jsx("p",{children:"One of DeepSeek.com's most notable achievements is its ability to deliver state-of-the-art AI performance at a fraction of the cost. For example, DeepSeek claims that training its flagship modelâDeepSeek-V3âcost only about US$6 million, compared to the US$100 million or more often spent by competitors such as OpenAI on models like GPT-4. This dramatic cost reduction is made possible by leveraging innovative architectures and optimization techniques, including:"}),e.jsxs("ul",{className:"space-y-2 mt-4 mb-6",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"font-bold mr-2",children:"Mixture-of-Experts (MoE):"}),e.jsx("span",{children:"DeepSeek's models selectively activate only a subset of parameters (e.g., 37 billion out of 671 billion total in V3) for each token, greatly reducing computational demands."})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"font-bold mr-2",children:"Multi-Head Latent Attention (MLA):"}),e.jsx("span",{children:"This novel approach compresses the model's key-value cache into a latent vector, enabling efficient inference without sacrificing performance."})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"font-bold mr-2",children:"Reinforcement Learning (RL) for Reasoning:"}),e.jsx("span",{children:"With its R1 series, DeepSeek pioneers reinforcement learning techniques to enhance reasoning capabilities without the extensive cost of supervised fine-tuning."})]})]}),e.jsxs("p",{children:["citeturn0academia45",e.jsx("br",{}),"citeturn0academia48"]}),e.jsx("h3",{className:"text-xl font-semibold text-gray-700 mt-6 mb-3",children:"Open-Source Advantages"}),e.jsxs("p",{children:['By releasing its AI models as open source, DeepSeek.com democratizes access to high-performance language models. Developers around the world can experiment with, modify, and improve these models, accelerating the pace of AI innovation. This open-weight strategy contrasts sharply with the "black-box" approaches of many US-based models, where underlying architectures and training methodologies remain hidden from public view.',e.jsx("br",{}),"citeturn0search16"]}),e.jsx(Ba,{className:"my-8"}),e.jsx("h2",{className:"text-2xl font-bold text-gray-800 mt-8 mb-4",children:"DeepSeek's Competitive Edge"}),e.jsx("h3",{className:"text-xl font-semibold text-gray-700 mt-6 mb-3",children:"Disrupting Silicon Valley's Business Model"}),e.jsxs("p",{children:["DeepSeek.com's breakthrough has sent shockwaves through the tech industry. Its cost-effectiveness has not only spurred excitement among developers but also rattled established market players. For instance, major tech stocksâmost notably those of Nvidiaâtumbled after DeepSeek's emergence, as investors questioned the long-held belief that state-of-the-art AI requires massive capital investments. Silicon Valley insiders now face a critical challenge: justify the premium pricing of their proprietary models when an open-source alternative is available at a fraction of the cost.",e.jsx("br",{}),"citeturn0news50"]}),e.jsx("h3",{className:"text-xl font-semibold text-gray-700 mt-6 mb-3",children:'A "Sputnik Moment" for AI'}),e.jsxs("p",{children:[`Venture capitalist Marc Andreessen famously described DeepSeek.com's impact as an "AI Sputnik moment." Just as the launch of Sputnik in 1957 signaled a new era in space exploration and spurred the US into action, DeepSeek's rapid advancements hint at a future where resource limitations no longer stifle breakthrough AI innovations. This has led to intense debate in both industry and policy circles about the implications for global AI leadership and the effectiveness of existing export controls on advanced semiconductors.`,e.jsx("br",{}),"citeturn0news52"]}),e.jsx("h3",{className:"text-xl font-semibold text-gray-700 mt-6 mb-3",children:"Integration and Adoption"}),e.jsxs("p",{children:["Despite initial concerns over its open-source nature and censorship aligned with Chinese regulations, DeepSeek.com has gained traction across the tech ecosystem. Its models have been integrated into various platformsâfrom startups to major cloud service providers like Microsoft Azure and Amazon AWS. Companies are drawn by the prospect of drastically reduced operational costs and the flexibility to tailor models to their specific needs.",e.jsx("br",{}),"citeturn0news49",e.jsx("br",{}),"citeturn0news53"]}),e.jsx(Ba,{className:"my-8"}),e.jsx("h2",{className:"text-2xl font-bold text-gray-800 mt-8 mb-4",children:"Market Impact & Global Reaction"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6 mt-6 mb-8",children:[e.jsx(ie,{className:"border border-gray-200 hover:shadow-md transition-all",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-700 mb-3",children:"Wall Street and Silicon Valley Shake-Up"}),e.jsxs("p",{children:["DeepSeek's disruptive entry into the market has led to dramatic shifts in investor sentiment. On the day its chatbot application soared to the top of Apple's App Store in the United States, shares of Nvidia and other tech giants experienced sharp declines, erasing billions in market value. Analysts are now re-evaluating the long-term business models built around expensive, closed-source AI infrastru
2179ctures.",e.jsx("br",{}),"citeturn0news51"]})]})}),e.jsx(ie,{className:"border border-gray-200 hover:shadow-md transition-all",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-700 mb-3",children:"Geopolitical Implications"}),e.jsxs("p",{children:["The rise of DeepSeek AI also underscores broader geopolitical dynamics. U.S. export controls on advanced semiconductorsâintended to hinder China's AI progressâhave inadvertently pushed Chinese researchers to innovate with less powerful hardware (like Nvidia's H800 chips). This adaptation not only proves the resilience of China's tech ecosystem but also challenges the notion that high-end chips are the only path to cutting-edge AI performance. Such developments are prompting policymakers on both sides of the Pacific to reconsider strategies and alliances in the AI domain.",e.jsx("br",{}),"citeturn0news52"]})]})})]}),e.jsx(Ba,{className:"my-8"}),e.jsx("h2",{className:"text-2xl font-bold text-gray-800 mt-8 mb-4",children:"Open-Source, Censorship, and Ethical Considerations"}),e.jsx("h3",{className:"text-xl font-semibold text-gray-700 mt-6 mb-3",children:"The Open-Source Promise"}),e.jsxs("p",{children:["For many, the greatest allure of DeepSeek.com is its open-source model. By lowering the barriers to entry, DeepSeek encourages a more collaborative and innovative AI landscape. This could foster a future where AI advancements are not monopolized by a handful of billion-dollar corporations, but are accessible to startups, researchers, and even individual enthusiasts. The potential for accelerated innovation is immense, and it aligns with the early ideals of organizations like the original OpenAI.",e.jsx("br",{}),"citeturn0news54"]}),e.jsx("h3",{className:"text-xl font-semibold text-gray-700 mt-6 mb-3",children:"Censorship and Data Security Concerns"}),e.jsxs("p",{children:["However, the openness comes with its share of challenges. DeepSeek.com's models are subject to self-censorship to comply with Chinese regulations, meaning that sensitive topics such as the Tiananmen Square massacre, human rights issues, or questions about Taiwan may be automatically filtered out or sanitized. For businesses and developers outside China, this raises questions about data security and content neutrality. Critics worry that such censorship could limit the model's usefulness in global applications and may even pose risks to privacy and freedom of information.",e.jsx("br",{}),"citeturn0news51",e.jsx("br",{}),"citeturn0news54"]}),e.jsx(Ba,{className:"my-8"}),e.jsx("h2",{className:"text-2xl font-bold text-gray-800 mt-8 mb-4",children:"Why DeepSeek AI Could Be a Game Changer for Your Business"}),e.jsxs("div",{className:"bg-gray-50 p-6 rounded-lg my-6",children:[e.jsx("p",{className:"mb-4",children:"For businesses looking to harness the power of AI without breaking the bank, DeepSeek.com offers a compelling proposition. Here are a few reasons why you might consider integrating DeepSeek into your operations:"}),e.jsxs("ul",{className:"space-y-3",children:[e.jsxs("li",{className:"flex items-center",children:[e.jsx("div",{className:"h-8 w-8 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center mr-3 flex-shrink-0",children:e.jsx("span",{className:"text-sm font-bold",children:"1"})}),e.jsxs("div",{children:[e.jsx("span",{className:"font-semibold",children:"Cost Savings:"}),' With training costs estimated at a mere fraction of those for comparable US models, DeepSeek.com can drastically reduce your AI "utility bills."']})]}),e.jsxs("li",{className:"flex items-center",children:[e.jsx("div",{className:"h-8 w-8 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center mr-3 flex-shrink-0",children:e.jsx("span",{className:"text-sm font-bold",children:"2"})}),e.jsxs("div",{children:[e.jsx("span",{className:"font-semibold",children:"Customization:"})," The open-source nature of DeepSeek.com allows you to modify and optimize the model for your specific needs, be it customer service, coding assistance, or data analysis."]})]}),e.jsxs("li",{className:"flex items-center",children:[e.jsx("div",{className:"h-8 w-8 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center mr-3 flex-shrink-0",children:e.jsx("span",{className:"text-sm font-bold",children:"3"})}),e.jsxs("div",{children:[e.jsx("span",{className:"font-semibold",children:"Rapid Innovation:"})," As more developers and companies adopt and improve upon DeepSeek.com's models, you can benefit from a continuously evolving ecosystem that keeps pace with the latest advancements."]})]}),e.jsxs("li",{className:"flex items-center",children:[e.jsx("div",{className:"h-8 w-8 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center mr-3 flex-shrink-0",children:e.jsx("span",{className:"text-sm font-bold",children:"4"})}),e.jsxs("div",{children:[e.jsx("span",{className:"font-semibold",children:"Competitive Edge:"})," Integrating a cost-effective and powerful AI solution could give your business a strategic advantage, especially in industries where rapid data processing and automation are key."]})]}),e.jsxs("li",{className:"flex items-center",children:[e.jsx("div",{className:"h-8 w-8 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center mr-3 flex-shrink-0",children:e.jsx("span",{className:"text-sm font-bold",children:"5"})}),e.jsxs("div",{children:[e.jsx("span",{className:"font-semibold",children:"Global Perspective:"}),' While concerns remain about censorship, many companies are finding ways to "Americanise" or localize the output to suit diverse market needs.']})]})]}),e.jsxs("p",{className:"mt-4",children:["citeturn0news49",e.jsx("br",{}),"citeturn0news53"]})]}),e.jsx(Ba,{className:"my-8"}),e.jsx("h2",{className:"text-2xl font-bold text-gray-800 mt-8 mb-4",children:"Conclusion"}),e.jsx("p",{children:"DeepSeek.com is more than just another chatbotâit's a paradigm shift in the way advanced AI models are built, deployed, and accessed. By breaking the mold of expensive, proprietary systems, Hangzhou DeepSeek Art
2179ificial Intelligence Co., Ltd. is democratizing AI and sparking a global debate on cost, accessibility, and innovation in the field. Whether you're a developer, a business leader, or simply an AI enthusiast, keeping an eye on DeepSeek.com is essential as it continues to influence both technological and geopolitical landscapes."}),e.jsx("p",{children:"As the tech industry evolves and the boundaries of AI innovation expand, DeepSeek.com stands as a testament to how resourcefulness and open collaboration can challenge established normsâand perhaps, redefine the future of artificial intelligence."}),e.jsx(Ba,{className:"my-8"}),e.jsx("h2",{className:"text-2xl font-bold text-gray-800 mt-8 mb-4",children:"DeepSeek vs Other AI Models"}),e.jsx("div",{className:"overflow-x-auto my-6",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Feature"}),e.jsx(qe,{className:"text-center",children:"DeepSeek"}),e.jsx(qe,{className:"text-center",children:"ChatGPT"}),e.jsx(qe,{className:"text-center",children:"Claude"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Open Source"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Chain-of-Thought"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:"Hidden"}),e.jsx(U,{className:"text-center",children:"Hidden"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"API Cost"}),e.jsx(U,{className:"text-center",children:"Very Low"}),e.jsx(U,{className:"text-center",children:"High"}),e.jsx(U,{className:"text-center",children:"High"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Local Deployment"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})})]})]})]})}),e.jsxs("p",{className:"text-sm text-muted-foreground mb-4",children:[e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"text-primary hover:underline",children:"See full DeepSeek vs ChatGPT comparison"})," |",e.jsx(se,{to:"/deepseek-vs-claude",className:"text-primary hover:underline ml-2",children:"DeepSeek vs Claude"})]}),e.jsx(Ba,{className:"my-8"}),e.jsx("h2",{className:"text-2xl font-bold text-gray-800 mt-8 mb-4",children:"Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:r.map((o,l)=>e.jsxs(ss,{value:`item-${l}`,children:[e.jsx(rs,{className:"text-left",children:o.question}),e.jsx(as,{children:o.answer})]},l))}),e.jsx(Ba,{className:"my-8"}),e.jsx("p",{children:e.jsx("em",{children:"References available upon request."})}),e.jsxs("div",{className:"mt-12 mb-12 border-t border-b border-gray-200 py-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Articles"}),e.jsx(Nn,{})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Try DeepSeek AI Now",e.jsx(wn,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]}),e.jsxs("button",{onClick:()=>s(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Get Updates",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]}),e.jsx("div",{className:"mt-12 text-center text-gray-500",children:e.jsx("p",{children:"Last updated: April 3, 2025"})})]})}),e.jsx(ar,{isOpen:n,onClose:()=>s(!1)})]})},hJ=()=>{const t=jn(),[n,s]=S.useState(!0),[r,a]=S.useState(!1);return S.useEffect(()=>{s(!0);const i=setTimeout(()=>{s(!1)},100);return()=>clearTimeout(i)},[]),e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek R2 Early Release â Key Challenges Ahead"}),e.jsx("meta",{name:"description",content:"Explore the challenges DeepSeek faces with the early release of its R2 AI model, including technical hurdles, user experience concerns, and market competition."}),e.jsx("meta",{name:"keywords",content:"DeepSeek R2, AI model release, early deployment challenges, language model, deepseek r2 technical issues"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-r2-challenges"}),e.jsx("meta",{property:"og:title",content:"DeepSeek R2 Early Release â Key Challenges Ahead"}),e.jsx("meta",{property:"og:description",content:"Technical hurdles, user experience risks and competitive pressure DeepSeek faces if R2 ships early â an independent analysis."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-r2-challenges"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek R2 Early Release â Key Challenges Ahead"}),e.jsx("meta",{name:"twitter:description",content:"Technical hurdles, user experience risks and competitive pressure DeepSeek faces if R2 ships early â an independent analysis."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"Article",headline:"What Are the Potential Challenges DeepSeek Might Face with the Early Release of R2",datePublished:"2025-03-22",author:{"@type":"Organization",name:"DeepSeek Team"},publisher:{"@type":"Organization",name:"deepseek.ai â independent DeepSeek AI guide",url:"https://deepseek.ai"},mainEntityOfPage:"https://deepseek.ai/blog/deepseek-r2-challenges",image:"https://deepseek.ai/og-image.png"})})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:`transition-opacity duration-300 ${n?"opacity-0":"opacity-100"}`,children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"text-gray-500 mb-2",children:"March 22, 2025 ⢠DeepSeek Team"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"What Are the Potential Challenges DeepSeek Might Face with the Early Release of R2"})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsx("p",{children:"DeepSeek's decision to accelerate the release of its R2 AI model has positioned it at the forefront of AI innovation. The deepseek r2 introduces advanced features like enhanced contextual analysis and faster response times, aiming to meet growing demands in natural language processing. Yet, releasing such an AI model early could expose it to technical and operational hurdles."}),e.jsx("h2",{className:"text-2xl font-bold mt-8 mb-4",children:"deepseek r2"}),e.jsx("p",{children:"This early AI model release strategy tests the balance between rapid deployment and product quality. Users and developers alike are watching closely to see how DeepSeek addresses early deployment challenges, such as stability issues or compatibility problems. The outcome could redefine expectations for how quickly cutting-edge tools should enter the market."}),e.jsx("h2",{className:"text-2xl font-bold mt-8 mb-4",children:"Key Takeaways"}),e.jsxs("ul",{children:[e.jsx("li",{children:"Early deployment challenges could impact the deepseek r2's user adoption rate."}),e.jsx("li",{children:"Competitive pressures drive the AI model release pace but may sacrifice refinement."}),e.jsx("li",{children:"Technical issues in the deepseek r2 might surface due to accelerated timelines."}),e.jsx("li",{children:"User feedback will shape future updates based on early deployment challenges."}),e.jsx("li",{children:"DeepSeek's approach sets a precedent for managing risks in fast-paced AI development."})]}),e.jsx("h2",{className:"text-2xl font-bold mt-8 mb-4",children:"Understanding the DeepSeek R2 Release"}),e.jsx("p",{children:"DeepSeek R2 marks a pivotal step in AI advancements, bringing new tools to users. Here's a closer look at its core aspects."}),e.jsx("h3",{className:"text-xl font-bold mt-6 mb-3",children:"Overview of DeepSeek R2 Features"}),e.jsx("p",{children:"Developers highlight three core deepseek r2 features shaping its performance:"}),e.jsxs("table",{className:"border-collapse border border-gray-300 my-4 w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-gray-100",children:[e.jsx("th",{className:"border border-gray-300 p-2",children:"Feature"}),e.jsx("th",{className:"border border-gray-300 p-2",children:"Language Model Specs"}),e.jsx("th",{className:"border border-gray-300 p-2",children:"AI Model Capabilities"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-2",children:"Context Understanding"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"150B parameters"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Improved multi-turn dialogue"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-2",children:"Custom Training"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Adaptive learning modules"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Domain-specific optimization"})]})]})]}),e.jsx("h3",{className:"text-xl font-bold mt-6 mb-3",children:"Importance of Timely Launches"}),e.jsx("p",{children:"Releasing early positions DeepSeek to capture market attention before rivals. Speed ensures access to beta tester insights and stays ahead of competitors' roadmaps."}),e.jsx("h3",{className:"text-xl font-bold mt-6 mb-3",children:"Initial Reactions from the Community"}),e.jsx("p",{children:'"The AI model capabilities show promise, but documentation needs clarity." â Tech Reviewer, AI Weekly'}),e.jsx("p",{children:"Feedback ranges from praise for its language model specs to calls for better user guides. Early adopters value speed but note minor interface quirks."}),e.jsx("h2",{className:"text-2xl font-bold mt-8 mb-4",children:"Technical Challenges of Early Release"}),e.jsx("p",{children:"Early releases of AI systems like DeepSeek R2 often reveal unresolved deepseek r2 technical issues. Before diving into specifics, it's critical to address how rushed timelines can expose foundational flaws in software architecture."}),e.jsx("h3",{className:"text-xl font-bold mt-6 mb-3",children:"Potential Bug
2179s and Technical Glitches"}),e.jsx("p",{children:"Users may face model bugs that disrupt core functionalities. For example:"}),e.jsxs("ul",{children:[e.jsx("li",{children:"Unpredictable responses to niche queries"}),e.jsx("li",{children:"Crashes during high-stress workloads"}),e.jsx("li",{children:"Delayed updates to core algorithms"})]}),e.jsx("div",{className:"my-6",children:e.jsx("iframe",{width:"100%",height:"315",src:"https://www.youtube.com/embed/CZeot5H7Ilk",title:"DeepSeek R2 Technical Overview",frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,className:"rounded-lg"})}),e.jsx("h3",{className:"text-xl font-bold mt-6 mb-3",children:"Integration Issues with Existing Systems"}),e.jsx("p",{children:"Compatibility problems arise when AI implementation problems clash with legacy infrastructure. Developers report:"}),e.jsxs("ul",{children:[e.jsx("li",{children:"API incompatibility with third-party tools"}),e.jsx("li",{children:"Overloaded server resources during peak usage"}),e.jsx("li",{children:"Data synchronization errors between platforms"})]}),e.jsx("p",{children:'"Early adopters often become beta testers for unresolved technical debt," warned an AI engineer at a tech conference.'}),e.jsx("p",{children:"These challenges highlight the need for rigorous cross-platform testing to ensure seamless adoption without compromising user workflows."}),e.jsx("h2",{className:"text-2xl font-bold mt-8 mb-4",children:"User Experience Concerns"}),e.jsx("p",{children:"Early adopters of DeepSeek R2 have highlighted critical gaps in the deepseek r2 user experience. While technical advancements exist, real-world interactions reveal pain points that could hinder adoption. Beta testers report mixed reactions, with some praising multilingual support but struggling with interface navigation."}),e.jsx("h3",{className:"text-xl font-bold mt-6 mb-3",children:"Feedback from Beta Testers"}),e.jsx("p",{children:"Testers noted model usability hurdles, such as erratic response times during complex coding tasks. A Medium analysis noted that 30% of users found the coding feature's logic flow unintuitive. Common complaints include:"}),e.jsxs("ul",{children:[e.jsx("li",{children:"Overly technical terminology in guidance prompts"}),e.jsx("li",{children:"Unpredictable latency in multilingual mode"}),e.jsx("li",{children:"Lack of visual cues for error correction"})]}),e.jsx("p",{children:'"The coding tools are powerful but require a learning curve no beginner can afford." â Beta tester review'}),e.jsx("h3",{className:"text-xl font-bold mt-6 mb-3",children:"Clarity of User Interface Changes"}),e.jsx("p",{children:"Interface friction stems from AI interface design choices. Below compares current pain points and proposed fixes:"}),e.jsxs("table",{className:"border-collapse border border-gray-300 my-4 w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-gray-100",children:[e.jsx("th",{className:"border border-gray-300 p-2",children:"Current Issues"}),e.jsx("th",{className:"border border-gray-300 p-2",children:"Improvements Needed"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-2",children:"Overly dense dashboard"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Streamlined feature prioritization"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-2",children:"Unclear error messages"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Step-by-step troubleshooting guides"})]})]})]}),e.jsx("p",{children:"These findings underscore the need for iterative testing. Balancing innovation with intuitive design remains key to leveraging R2's core strengths without overwhelming users."}),e.jsx("h2",{className:"text-2xl font-bold mt-8 mb-4",children:"Competition, Market Strategies, and Financial Impact"}),e.jsx("p",{children:"DeepSeek R2 faces fierce competition from established players like OpenAI, Anthropic, and Google. Its marketing strategy balances pre-launch excitement with realistic expectations through webinars and limited demos. Financially, the early release attempts to accelerate revenue while risking potential costs from emergency fixes or reputation damage."}),e.jsx("h2",{className:"text-2xl font-bold mt-8 mb-4",children:"Conclusion: Balancing Risks and Rewards"}),e.jsx("p",{children:"The future of DeepSeek R2 depends on how well its strategy navigates the complexities of early adoption. By prioritizing fixes over new features and strengthening user engagement, DeepSeek can address current limitations while positioning itself as a leader in AI applications."}),e.jsx("h2",{className:"text-2xl font-bold mt-8 mb-4",children:"FAQ"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold",children:"What is DeepSeek R2?"}),e.jsx("p",{children:"DeepSeek R2 is the latest iteration of DeepSeek's AI language model, designed to offer enhanced capabilities, improved performance, and more intuitive user interactions compared to its predecessors."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold",children:"Why was DeepSeek R2 released earlier than expected?"}),e.jsx("p",{children:"The early release of DeepSeek R2 was influenced by market pressures and the strategic advantage of being first-to-market with new features, aimed at capturing user interest and addressing competitive challenges."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold",children:"How does competition impact DeepSeek R2?"}),e.jsx("p",{children:"The competitive landscape in AI language models, featuring companies like OpenAI and Google, plays a significant role in determining DeepSeek's market positioning and the effectiveness of its early release strategy."})]})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Add to Chrome - It's Free",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]}),e.jsxs("button",{onClick:()=>a(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Create AI Agents",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]})]})]})}),e.jsx(ar,{isOpen:r,onClose:()=>a(!1)})]})},uJ=()=>{const t=jn(),[n,s]=S.useState(!1),[r,a]=S.useState("18 min read"),[i,o]=S.useState(!1);S.useEffect(()=>{const c=setTimeout(()=>{o(!0)},100);return()=>clearTimeout(c)},[]);const l=async()=>
2179{if(navigator.share)try{await navigator.share({title:"What is Deep Learning AI | DeepSeek AI Blog",text:"Discover the fundamentals of deep learning AI technology and how it is transforming industries.",url:window.location.href})}catch(c){console.log("Error sharing:",c)}else navigator.clipboard.writeText(window.location.href),alert("Link copied to clipboard!")};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"What Is Deep Learning AI? Guide & Examples"}),e.jsx("meta",{name:"description",content:"Learn what deep learning AI is, how it works, and its applications across various industries. Explore the future of deep learning technology."}),e.jsx("meta",{name:"keywords",content:"deep learning AI, deep learning, AI technology, neural networks, machine learning, artificial intelligence"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/what-is-deep-learning-ai"}),e.jsx("meta",{property:"og:title",content:"What Is Deep Learning AI? Guide & Examples"}),e.jsx("meta",{property:"og:description",content:"Learn what deep learning AI is, how it works, and its applications across various industries. Explore the future of deep learning technology."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/what-is-deep-learning-ai"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"What Is Deep Learning AI? Guide & Examples"}),e.jsx("meta",{name:"twitter:description",content:"Learn what deep learning AI is, how it works, and its applications across various industries. Explore the future of deep learning technology."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:` 2180 { 2181 "@context": "https://schema.org", 2182 "@type": "Article", 2183 "headline": "What is Deep Learning AI | Deep Learning Technology", 2184 "description": "Learn what deep learning AI is, how it works, and its applications across various industries. Explore the future of deep learning technology.", 2185 "image": "https://deepseek.ai/og-image.png", 2186 "author": { 2187 "@type": "Organization", 2188 "name": "DeepSeek AI Team" 2189 }, 2190 "publisher": { 2191 "@type": "Organization", 2192 "name": "DeepSeek AI", 2193 "logo": { 2194 "@type": "ImageObject", 2195 "url": "https://deepseek.ai/favicon.svg" 2196 } 2197 }, 2198 "datePublished": "2025-03-22", 2199 "dateModified": "2025-03-22" 2200 } 2201 `})]}),e.jsx("div",{className:"min-h-screen bg-gradient-to-b from-white via-blue-50/30 to-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-24",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100 group",children:[e.jsx(An,{className:"mr-2 h-4 w-4 transition-transform group-hover:-translate-x-1"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:`transition-opacity duration-500 ${i?"opacity-100":"opacity-0"}`,children:[e.jsxs("div",{className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-blue-100 text-blue-800 mb-4",children:[e.jsx(_s,{className:"h-4 w-4 mr-1"}),"Artificial Intelligence"]}),e.jsxs("div",{className:"flex items-center text-gray-500 mb-4 text-sm",children:[e.jsx(xo,{className:"h-4 w-4 mr-1"}),e.jsx("span",{children:"March 22, 2025"}),e.jsx("span",{className:"mx-2",children:"â¢"}),e.jsx(ig,{className:"h-4 w-4 mr-1"}),e.jsx("span",{children:"DeepSeek AI Team"}),e.jsx("span",{className:"mx-2",children:"â¢"}),e.jsx($r,{className:"h-4 w-4 mr-1"}),e.jsx("span",{children:r}),e.jsxs("button",{onClick:l,className:"ml-auto flex items-center text-blue-600 hover:text-blue-800",children:[e.jsx(G0,{className:"h-4 w-4 mr-1"}),e.jsx("span",{children:"Share"})]})]}),e.jsx("h1",{className:"text-4xl sm:text-5xl font-bold text-gray-900 mb-6 leading-tight",children:"What is Deep Learning AI and How It's Transforming Technology"}),e.jsx("p",{className:"text-xl text-gray-600 mb-8 leading-relaxed",children:"Deep learning AI is revolutionizing industries by using neural networks to analyze data and make intelligent decisions. Discover how this powerful subset of machine learning is changing our technological landscape."})]}),e.jsxs("div",{className:"bg-white/80 rounded-xl p-6 mb-10 border border-gray-100 shadow-sm",children:[e.jsx("h2",{className:"text-lg font-semibold mb-4",children:"Table of Contents"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#introduction",className:"flex items-center",children:"Introduction to Deep Learning"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#understanding",className:"flex items-center",children:"Understanding Deep Learning and Its Importance"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#components",className:"flex items-center",children:"Key Components of Deep Learning"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#models",className:"flex items-center",children:"Types of Deep Learning Models"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#applications",className:"flex items-center",children:"Applications of Deep Learning AI"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#advantages",className:"flex items-center",children:"Advantages of Using Deep Learning"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#challenges",className:"flex items-center",children:"Challenges in Deep Learning"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#future",className:"flex items-center",children:"The Future of Deep Learning AI"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#frameworks",className:"flex items-center",children:"Popular Deep Learning Frameworks"})}),e.jsx("li",{className:"hover:text-blue-600",children:e.jsx("a",{href:"#faq",className:"flex items-center",children:"FAQ"})})]})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-16 prose-headings:font-semibold prose-headings:text-gray-900 prose-p:text-gray-700 prose-a:text-blue-600 prose-a:no-underline hover:prose-a:underline prose-img:rounded-xl",children:[e.jsx("div",{className:"bg-gradient-to-r from-blue-50 to-indigo-50 p-6 rounded-xl mb-10 border border-blue-100",children:e.jsxs("p",{className:"text-lg leading-relaxed",children:[e.jsx("strong",{children:"Deep learning AI"})," is a type of artificial intelligence that uses neural networks to analyze data and make predictions or decisions. It is a subset of machine learning, which is a broader field of study that focuses on the development of algorithms and statistical models that enable machines to perform tasks without being explicitly programmed. Deep learning AI has many applications, including image and speech recognition, natural language processing, and autonomous vehicles, all of which rely on ",e.jsx("strong",{children:"deep AI"})," to function effectively. As a key component of artificial intelligence, deep learning AI is poised to revolutionize numerous industries."]})}),e.jsx("p",{children:"With the ability to operate with unsupervised learning, deep learning can extract features from raw, unstructured data, making it a powerful tool for businesses and organizations. The use of deep AI in applications such as digital assistants, credit card fraud detection, and self-driving cars has already shown significant promise. As the field continues to evolve, we can expect to see even more innovative uses of artificial intelligence and deep learning AI."}),e.jsx("h2",{id:"introduction",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Introduction to Deep Learning"}),e.jsx("p",{children:"Deep learning models typically utilize three or more layers, often ranging from hundreds to thousands of layers, in contrast to traditional machine learning models which use one or tw
2201o layers. This complexity allows deep learning models to identify complex patterns in data, making them ideal for applications such as computer vision and natural language processing. With the help of artificial intelligence, deep AI can process large amounts of data, including images, speech, and text, to make accurate predictions and decisions."}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm my-8 border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-4",children:"Key Takeaways"}),e.jsxs("ul",{className:"space-y-2 list-none pl-0",children:[e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"Deep learning AI is a subset of machine learning that uses neural networks to analyze data."}),e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"Deep learning models can have tens or hundreds of hidden layers in their neural networks."}),e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"Deep AI has many applications, including image and speech recognition, natural language processing, and autonomous vehicles."}),e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"Deep learning requires a large amount of labeled data and high computation power."}),e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"The use of deep AI in applications such as digital assistants and self-driving cars has already shown significant promise."}),e.jsx("li",{className:"flex items-center before:content-['â¢'] before:text-blue-500 before:text-2xl before:mr-2",children:"Deep learning models can improve their performance as the size of the data increases, making them ideal for applications with large datasets."})]})]}),e.jsx("h2",{id:"understanding",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Understanding Deep Learning and Its Importance"}),e.jsx("p",{children:"Deep learning is a subset of machine learning that uses neural networks with multiple layers to analyze data. This allows deep learning models to learn complex patterns and relationships in data, making them more accurate and effective than traditional AI models. The use of neural networks enables deep learning to handle large amounts of data and make more accurate predictions."}),e.jsx("p",{children:"Some key aspects of deep learning include:"}),e.jsxs("ul",{children:[e.jsx("li",{children:"Automatic feature extraction, eliminating the need for manual feature identification by programmers"}),e.jsx("li",{children:"Improved performance as the volume of data increases, unlike traditional machine learning algorithms that may plateau"}),e.jsx("li",{children:"The ability to analyze unstructured data more effectively, making it suitable for tasks involving complex data types"})]}),e.jsx("p",{children:"The importance of deep learning lies in its ability to achieve high recognition accuracy, which is crucial for applications in safety-sensitive areas such as autonomous vehicles and medical devices. Additionally, deep learning can automatically perform feature extraction, making it a valuable tool for data analysis."}),e.jsx("p",{children:"As the field of deep learning continues to evolve, it is essential to understand its importance and how it differs from traditional AI. By leveraging the power of neural networks and machine learning, deep learning has the potential to revolutionize various industries and improve our daily lives."}),e.jsx("h2",{id:"components",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Key Components of Deep Learning"}),e.jsx("p",{children:"Deep learning algorithms are a crucial part of advanced technology, enabling machines to learn from data and improve their performance over time. The first step in understanding deep learning is to recognize its key components. These components work together to enable deep learning models to analyze data, make predictions, and learn from experience."}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 my-8",children:[e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Neural Networks"}),e.jsx("p",{className:"text-gray-700",children:"The building blocks of deep AI, composed of layers of interconnected nodes that process and transmit information."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Training Data"}),e.jsx("p",{className:"text-gray-700",children:"Large datasets used to train models and improve their accuracy through pattern recognition."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Activation Functions"}),e.jsx("p",{className:"text-gray-700",children:"Mathematical operations that determine whether neurons should be activated based on input data."})]})]}),e.jsx("h3",{className:"text-2xl font-semibold mt-8 mb-4",children:"Neural Networks Explained"}),e.jsx("p",{children:'Neural networks are a key component of deep learning, and are used to analyze data and make predictions or decisions. They consist of multiple layers, including an input layer, one or more hidden layers, and an output layer. Each layer is composed of a set of nodes or "neurons" that process and transmit information. The use of deep learning algorithms and advanced technology has enabled businesses to build complex neural networks that can learn and adapt quickly.'}),e.jsx("h3",{className:"text-2xl font-semibold mt-8 mb-4",children:"The Role of Data in Deep Learning"}),e.jsx("p",{children:"The role of data in deep learning is critical, as it is used to train deep learning models and improve their accuracy. Deep learning models require large amounts of data to learn and improve, and the quality of the data is also important. With the use of deep learning algorithms and advanced technology, businesses can collect and analyze large amounts of data, and use it to train deep learning models."}),e.jsx("h3",{className:"text-2xl font-semibold mt-8 mb-4",children:"Activation Functions: A Brief Overview"}),e.jsx("p",{children:"Activation functions are a crucial component of deep learning, as they introduce non-linearity into the model and allow it to learn more complex patterns and relationships in the data. Common activation functions include sigmoid, ReLU, and tanh. The use of deep learning algorithms and advanced technology has enabled businesses to build complex models that can learn and adapt quickly, and activation functions play a key role in this process."}),e.jsx("h2",{id:"models",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Types of Deep Learning Models"}),e.jsx("p",{children:"Deep learning models are a crucial part of artificial intelligence, and they have various applications in natural language processing and cognitive computing. These models can be categorized
2201into several types, each with its strengths and weaknesses."}),e.jsx("div",{className:"overflow-x-auto my-8",children:e.jsxs("table",{className:"min-w-full bg-white rounded-xl overflow-hidden border border-gray-200",children:[e.jsx("thead",{className:"bg-gray-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Model Type"}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Application"}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Strengths"})]})}),e.jsxs("tbody",{className:"divide-y divide-gray-200",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"Convolutional Neural Networks (CNN)"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Image recognition, medical image analysis"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Excellent at processing grid-like data, feature detection"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"Recurrent Neural Networks (RNN)"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Speech recognition, natural language processing"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Handles sequential data, maintains memory"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"Generative Adversarial Networks (GAN)"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Generating realistic images and videos"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Creates new data, learns distribution"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"Transformers"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Language models, translation, text generation"}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-700",children:"Parallel processing, attention mechanism"})]})]})]})}),e.jsx("p",{children:"These models have been widely used in various industries, including healthcare, finance, and transportation. For example, CNNs are used in medical image analysis, while RNNs are used in speech recognition systems. GANs, on the other hand, are used in generating realistic images and videos, which has applications in fields such as entertainment and education."}),e.jsx("h2",{id:"applications",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Applications of Deep Learning AI"}),e.jsx("p",{children:"Deep learning AI has numerous applications across various industries, leveraging deep AI solutions to drive innovation and improvement. One of the significant applications is in image and video recognition, where machine learning algorithms are used to identify objects, people, and patterns."}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 my-8",children:[e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 p-6 rounded-xl border border-blue-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Image and Video Recognition"}),e.jsx("p",{children:"This technology is used in self-driving cars, facial recognition systems, and security surveillance. For instance, convolutional neural networks (CNNs) are particularly effective in identifying objects in images, even when partially obscured or distorted."})]}),e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 p-6 rounded-xl border border-blue-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Natural Language Processing (NLP)"}),e.jsx("p",{children:"Machine learning is also used in NLP, enabling computers to understand and generate human-like language. This technology is used in chatbots, virtual assistants, and language translation software."})]}),e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 p-6 rounded-xl border border-blue-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Autonomous Vehicles"}),e.jsx("p",{children:"Autonomous vehicles use deep AI solutions to recognize and respond to their environment, allowing them to navigate roads and avoid obstacles. This technology has the potential to revolutionize the transportation industry."})]}),e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 p-6 rounded-xl border border-blue-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Healthcare"}),e.jsx("p",{children:"Deep learning is transforming healthcare through medical image analysis, drug discovery, and personalized medicine. Advanced neural networks can detect patterns in medical data that humans might miss."})]})]}),e.jsx("h2",{id:"advantages",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Advantages of Using Deep Learning"}),e.jsx("p",{children:"Deep learning, a subset of artificial intelligence, has revolutionized the way
2201we approach complex tasks. With its ability to learn from large datasets, deep learning models can automatically extract features, eliminating the need for manual feature engineering. This is particularly beneficial for applications such as image recognition, where traditional machine learning methods struggle to keep up."}),e.jsx("p",{children:"One of the key advantages of deep learning is its ability to handle large datasets effectively. Neural networks, a fundamental component of deep learning, can process vast amounts of data, making them ideal for big data applications. This has led to significant improvements in areas such as speech recognition, natural language processing, and image recognition."}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm my-8 border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-4",children:"Benefits of Deep Learning"}),e.jsxs("ul",{className:"space-y-3",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-800 mr-3 mt-0.5 flex-shrink-0",children:"1"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Improved accuracy and performance:"})," Deep learning models can learn complex patterns and relationships in data, making them more accurate and effective than traditional AI models."]})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-800 mr-3 mt-0.5 flex-shrink-0",children:"2"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Handling large datasets:"})," Deep learning models can handle large datasets, making them useful for applications such as image and speech recognition."]})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-800 mr-3 mt-0.5 flex-shrink-0",children:"3"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Automation potential:"})," Deep learning has the potential to automate tasks such as data analysis and decision-making, freeing up time for more strategic activities."]})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-800 mr-3 mt-0.5 flex-shrink-0",children:"4"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Feature learning:"})," Deep learning models can automatically learn features from raw data, eliminating the need for manual feature engineering."]})]})]})]}),e.jsx("h2",{id:"challenges",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Challenges in Deep Learning"}),e.jsx("p",{children:"Deep learning algorithms have revolutionized the field of artificial intelligence, but they also come with their own set of challenges. O
2201ne of the primary concerns is the requirement for large amounts of high-quality data to train these models. Insufficient or poor-quality data can lead to inaccurate predictions and model failures, highlighting the need for advanced technology to support deep learning algorithms."}),e.jsx("p",{children:"The process of training deep learning models demands significant computational power, making it essential to have access to high-performance hardware like GPUs and TPUs. Hyperparameter tuning can also be a time-consuming and computationally intensive process, significantly impacting the model's performance. Some of the common challenges faced by deep learning models include:"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 my-8",children:[e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3 text-red-600",children:"Overfitting"}),e.jsx("p",{children:"When the model becomes too complex and captures noise in the training data, affecting its ability to generalize to new data."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3 text-red-600",children:"Underfitting"}),e.jsx("p",{children:"When the model is too simple and fails to capture underlying patterns, resulting in poor performance on both training and new data."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3 text-red-600",children:"Data Bias"}),e.jsx("p",{children:"When the training data contains systematic errors or biases that the model learns, leading to unfair or discriminatory outcomes."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3 text-red-600",children:"Adversarial Attacks"}),e.jsx("p",{children:"Subtle perturbations designed to fool deep learning models, potentially causing significant security vulnerabilities in critical applications."})]})]}),e.jsx("p",{children:"To overcome these challenges, it is essential to implement regularization techniques, such as dropout and L2 regularization, and use data augmentation methods to artificially increase the size of training datasets. By addressing these challenges and leveraging advanced technology, deep learning algorithms can be made more effective and efficient."}),e.jsx("h2",{id:"future",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"The Future of Deep Learning AI"}),e.jsx("p",{children:"As we look to the future, it's clear that deep learning AI will continue to play a major role in shaping various industries. With the increasing use of natural language processing, deep learning models will be able to better understand and generate human language, leading to more sophisticated applications. For instance, cognitive computing will enable deep learning models to better understand and respond to their environment, making them more effective in real-world scenarios."}),e.jsxs("div",{className:"bg-gradient-to-r from-blue-50 to-indigo-50 p-8 rounded-xl my-8 border border-blue-100",children:[e.jsx("h3",{className:"text-2xl font-semibold mb-4",children:"Key Trends in Deep AI"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[e.jsxs("div",{className:"bg-white/80 p-5 rounded-lg",children:[e.jsx("h4",{className:"font-medium mb-2",children:"Natural Language Processing"}),e.jsx("p",{className:"text-sm text-gray-700",children:"Improved human-computer interaction through better language understanding."})]}),e.jsxs("div",{className:"bg-white/80 p-5 rounded-lg",children:[e.jsx("h4",{className:"font-medium mb-2",children:"Cognitive Computing"}),e.jsx("p",{className:"text-sm text-gray-700",children:"More effective decision-making capabilities through contextual understanding."})]}),e.jsxs("div",{className:"bg-white/80 p-5 rounded-lg",children:[e.jsx("h4",{className:"font-medium mb-2",children:"Multimodal Learning"}),e.jsx("p",{className:"text-sm text-gray-700",children:"Integration of multiple data types for more comprehensive AI models."})]})]})]}),e.jsx("p",{children:"As deep learning continues to evolve, we can expect to see significant improvements in areas such as image and speech recognition, natural language processing, and autonomous systems. With the help of deep learning, companies like Tesla and John Deere are already making significant str
2201ides in areas such as autonomous vehicles and crop health assessment. As the technology continues to advance, we can expect to see even more innovative applications of deep learning AI in the future."}),e.jsx("h2",{id:"frameworks",className:"scroll-mt-24 text-3xl mt-16 mb-6",children:"Popular Deep Learning Frameworks"}),e.jsx("p",{children:"Deep learning has become a crucial aspect of artificial intelligence, and various frameworks have emerged to support its development. When it comes to building deep AI solutions, choosing the right framework is essential. In recent years, machine learning has played a significant role in the growth of these frameworks."}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 my-8",children:[e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100 hover:shadow-md transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"TensorFlow"}),e.jsx("p",{className:"text-gray-700 mb-3",children:"An open-source library that allows for deployment on multiple CPUs or GPUs without code rewriting."}),e.jsx("span",{className:"text-xs font-medium bg-red-100 text-red-800 px-2 py-1 rounded-full",children:"Google"})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100 hover:shadow-md transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"PyTorch"}),e.jsx("p",{className:"text-gray-700 mb-3",children:"Known for ease of use and rapid prototyping capabilities with a strong focus on research."}),e.jsx("span",{className:"text-xs font-medium bg-blue-100 text-blue-800 px-2 py-1 rounded-full",children:"Facebook"})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100 hover:shadow-md transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Keras"}),e.jsx("p",{className:"text-gray-700 mb-3",children:"User-friendly and easy to use with a simple and intuitive API for quick model development."}),e.jsx("span",{className:"text-xs font-medium bg-green-100 text-green-800 px-2 py-1 rounded-full",children:"TensorFlow-Integrated"})]})]}),e.jsx(Ba,{className:"my-16"}),e.jsx("h2",{id:"faq",className:"text-3xl mb-8",children:"Frequently Asked Questions"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"What is deep learning AI?"}),e.jsx("p",{children:"Deep learning AI is a type of artificial intelligence that uses neural networks to analyze data and make predictions or decisions. It is a subset of machine learning, which is a broader field of study that focuses on the development of algorithms and statistical models that enable machines to perform tasks without being explicitly programmed."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"How does deep AI differ from traditional AI?"}),e.jsx("p",{children:"Deep AI differs from traditional AI in that it uses a more complex and nuanced approach to data analysis, allowing it to handle large amounts of data and make more accurate predictions. Deep learning models use neural networks with multiple layers to analyze data and learn complex patterns and relationships."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"What are the applications of deep AI?"}),e.jsx("p",{children:"Deep AI has many applications, including image and video recognition, natural language processing, and autonomous vehicles. Image and video recognition are used in applications such as self-driving cars and facial recognition systems, while natural language processing is used in applications such as chatbots and virtual assistants."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"What are the advantages of using deep learning AI?"}),e.jsx("p",{children:"The advantages of using deep learning AI include improved accuracy and performance, the ability to handle large datasets effectively, and automation potential. Deep learning models can learn complex patterns and relationships in data, making them more accurate and effective than traditional AI models."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"What are the challenges in deep learning?"}),e.jsx("p",{children:"The challenges in deep learning include data quality and quantity issues, high computational requirements, and interpretability and transparency. Data quality and quantity issues can affect the accuracy and effectiveness of deep learning models, as they require large amounts of high-quality data to train."})]})]}),e.jsx("h2",{className:"text-3xl mt-16 mb-6",children:"Source Links"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsx("a",{href:"https://www.ibm.com/think/topics/deep-learning",target:"_blank",rel:"noopener noreferrer",className:"bg-white p-4 rounded-lg border border-gray-200 hover:border-blue-300 hover:shadow-sm transition-all flex items-center",children:e.jsx("span",{className:"text-blue-600 hover:underline",children:"What Is Deep Learning? | IBM"})}),e.jsx("a",{href:"https://www.forbes.com/advisor/in/business/software/what-is-deep-learning-ai/",target:"_blank",rel:"noopener noreferrer",className:"bg-white p-4 rounded-lg border border-gray-200 hover:border-blue-300 hover:shadow-sm transition-all flex items-center",children:e.jsx("span",{className:"text-blue-600 hover:underline",children:"What Is Deep Learning AI?"})}),e.jsx("a",{href:"https://www.techtarget.com/searchenterpriseai/definition/deep-learning-deep-neural-network",target:"_blank",rel:"noopener noreferrer",className:"bg-white p-4 rounded-lg border border-gray-200 hover:border-blue-300 hover:shadow-sm transition-all flex items-center",children:e.jsx("span",{className:"text-blue-600 hover:underline",children:"What is deep learning and how does it work?"})}),e.jsx("a",{href:"https://mitpress.mit.edu/9780262048644/understanding-deep-learning/",target:"_blank",rel:"noopener noreferrer",className:"bg-white p-4 rounded-lg border border-gray-200 hover:border-blue-300 hover:shadow-sm transition-all flex items-center",children:e.jsx("span",{className:"text-blue-600 hover:underline",children:"Understanding Deep Learning"})}
2201),e.jsx("a",{href:"https://www.nvidia.com/en-us/glossary/deep-learning/",target:"_blank",rel:"noopener noreferrer",className:"bg-white p-4 rounded-lg border border-gray-200 hover:border-blue-300 hover:shadow-sm transition-all flex items-center",children:e.jsx("span",{className:"text-blue-600 hover:underline",children:"What is Deep Learning?"})})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-16",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Get DeepSeek App",children:["Try DeepSeek AI Now",e.jsx(wn,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]}),e.jsxs("button",{onClick:()=>s(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Create AI Agents",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]})]})]})}),e.jsx(ar,{isOpen:n,onClose:()=>s(!1)})]})},pJ=()=>{const t=jn(),n=[{title:"Understanding Deep Seek Technology",icon:_s,id:"understanding"},{title:"How Deep Seek Revolutionizes Online Research",icon:Pf,id:"research"},{title:"The Science Behind Deep Seek's Advanced Algorithms",icon:qr,id:"science"},{title:"Privacy and Security Considerations",icon:rl,id:"privacy"},{title:"The Future of Deep Seek",icon:_p,id:"future"}];return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"What is Deep Seek? | DeepSeek AI Blog"}),e.jsx("meta",{name:"description",content:"Learn about Deep Seek, an advanced search approach that goes beyond keywords to deliver precise, context-aware results for users."}),e.jsx("meta",{name:"keywords",content:"Deep Seek, advanced search, AI search, semantic search, research tools"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/what-is-deep-seek"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:title",content:"What is Deep Seek? | DeepSeek AI Blog"}),e.jsx("meta",{property:"og:description",content:"Learn about Deep Seek, an advanced search technology that revolutionizes information discovery with AI-powered semantic search."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/what-is-deep-seek"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"What is Deep Seek? | DeepSeek AI Blog"}),e.jsx("meta",{name:"twitter:description",content:"Learn about Deep Seek, an advanced search technology that revolutionizes information discovery with AI-powered semantic search."})]}),e.jsx("div",{className:"min-h-screen bg-gradient-to-b from-blue-50 to-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-16",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"prose prose-lg max-w-none mt-8",children:[e.jsxs("header",{className:"mb-12",children:[e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"What is Deep Seek?"}),e.jsx("p",{className:"text-gray-500 mb-2",children:"March 22, 2025 ⢠DeepSeek AI Team"})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("p",{className:"mb-4",children:"Finding the right information can feel like searching for a needle in a haystack. Deep Seek changes that. It's an advanced search technology that goes beyond basic keyword searches."}),e.jsx("p",{className:"mb-4",children:"Unlike traditional engines, Deep Seek dives deeper into data. It delivers precise, context-aware results. Whether you're researching, studying, or solving complex problems, Deep Seek simplifies the process. It understands your intent and uncovers details others miss."}),e.jsx("p",{className:"mb-4",children:"Deep Seek isn't just another search tool. It combines artificial intelligence and machine learning to analyze vast amounts of data. This means it can connect ideas, recognize patterns, and prioritize relevance like never before."}),e.jsx("p",{className:"mb-4",children:"From academic research to business insights, its goal is to make discovering information faster and smarter."})]}),e.jsxs("section",{className:"mb-8 bg-blue-50 p-6 rounded-xl border border-blue-100",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-800 mb
2201-4",children:"Key Takeaways"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[e.jsx("li",{children:"Deep Seek is an AI-driven search technology that enhances information discovery."}),e.jsx("li",{children:"It uses advanced algorithms to provide deeper and more accurate search results."}),e.jsx("li",{children:"Designed to understand context, not just keywords, for better precision."}),e.jsx("li",{children:"Suitable for professionals, researchers, and anyone needing detailed data."}),e.jsx("li",{children:"Paves the way for smarter, faster searches compared to traditional methods."})]})]}),n.map((s,r)=>e.jsxs("section",{className:"mb-12",id:s.id,children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-800 mb-6 flex items-center",children:[e.jsx(s.icon,{className:"mr-3 h-7 w-7 text-blue-600"}),s.title]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[s.id==="understanding"&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"mb-4",children:"Deep Seek started by fixing problems in old search tools. Before it was launched, people noticed that regular search engines had trouble with hard questions. This led to the idea of making a system that could look deeper than just simple keywords."}),e.jsx("blockquote",{className:"italic border-l-4 border-blue-500 pl-4 my-6",children:'"We wanted to create a search engine that thinks like a human, not a machine." â Deep Seek Development Team'}),e.jsx("p",{className:"mb-4",children:"Deep Seek was launched in 2020, coming from MIT's AI Lab. The team behind it included Dr. Elena Torres and Dr. Raj Patel. They worked on understanding words and using neural networks."}),e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-3",children:"Core Technological Components"}),e.jsx("div",{className:"overflow-x-auto mb-6",children:e.jsxs("table",{className:"min-w-full border-collapse border border-gray-300",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-gray-100",children:[e.jsx("th",{className:"border border-gray-300 p-2 text-left",children:"Component"}),e.jsx("th",{className:"border border-gray-300 p-2 text-left",children:"Function"}),e.jsx("th",{className:"border border-gray-300 p-2 text-left",children:"Benefit"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-2",children:"Neural Query Parser"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Breaks queries into contextual fragments"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Accurate intent detection"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-2",children:"Semantic Layer Network"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Maps relationships between data points"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Uncover hidden connections"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-2",children:"Adaptive Indexing"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Updates search parameters in real time"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Keeps results current"})]})]})]})}),e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-3",children:"The Evolution of Search Intelligence"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[e.jsx("li",{children:"2018: Initial prototype tested at Stanford"}),e.jsx("li",{children:"2021: Launched public beta with 500,000 users"}),e.jsx("li",{children:"2023: Integrated real-time data streams"}),e.jsx("li",{children:"2024: Added multilingual semantic analysis"})]}),e.jsx("p",{className:"mt-4",children:"Every update has made Deep Seek better at answering unclear or open-ended questions. Now, users get results that show a deeper understanding than old engines could."})]}),s.id==="research"&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"mb-4",children:"Traditional search engines often leave gaps in results, forcing users to sift through irrelevant data. Deep Seek bridges this gap with artificial intelligence search that prioritizes precision. Imagine a journalist hunting for obscure historical documents or a student struggling to find niche academic sources. Deep Seek's algorithms process queries differently, uncovering connections even seasoned researchers might miss."}),e.jsx("p",{className:"mb-4",children:"Professionals save hours by letting AI prioritize context over keywords. For instance, a marketer analyzing consumer trends no longer needs to manually cross-reference data. Deep Seek's system automatically surfaces hidden patterns, blending data from blogs, books, and databases. Users gain access to insights buried deep within the digital landscape."}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 my-6",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Time saved:"})," Reduces research time by up to 40% through smart filtering"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Deeper insights:"})," Uncovers connections between seemingly unrelated topics"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Customized results:"})," Learns user preferences to refine outcomes over time"]})]}),e.jsx("blockquote",{className:"italic border-l-4 border-blue-500 pl-4 my-6",children:`"Deep Seek found case studies I didn't know existedâthis tool redefined my approach to data discovery."`}),e.jsx("p",{className:"mb-4",children:"From legal teams verifying precedents to entrepreneurs exploring untapped markets, the platform adapts to diverse needs. Its artificial intelligence search doesn't just find answersâit anticipates questions users didn't know to ask. This shift empowers everyone from casual users to experts, making complex research accessible and efficie
2201nt."})]}),s.id==="science"&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"mb-4",children:"Deep Seek's strength comes from its advanced algorithms. These algorithms are designed to think like humans. They use complex systems to process data in ways old engines can't."}),e.jsx("p",{className:"mb-4",children:"Let's explore how these systems work together. They transform research in amazing ways."}),e.jsx("div",{className:"my-6 aspect-video",children:e.jsx("iframe",{className:"w-full h-full rounded",src:"https://www.youtube.com/embed/sw7fr_Mm-M4",title:"Deep Seek Technology Explained",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})}),e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-3",children:"Neural Network Integration"}),e.jsx("p",{className:"mb-4",children:"Imagine a digital brain with layers. Deep Seek's neural networks are like these layers. Each layer analyzes data in its own way."}),e.jsx("p",{className:"mb-4",children:"For example, one layer might find keywords. Another might connect them to bigger themes. This ensures no detail is missed, giving a clearer picture of what users are looking for."}),e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-3",children:"Pattern Recognition Capabilities"}),e.jsx("p",{className:"mb-4",children:'Deep Seek finds hidden connections between ideas. Searching for "renewable energy trends" might link solar power articles to economic studies. This skill is key to its advanced search technology.'}),e.jsx("p",{className:"mb-4",children:"It's like solving a jigsaw puzzle. Pieces from different boxes come together to form a clear image."}),e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-3",children:"Contextual Understanding Features"}),e.jsx("p",{className:"mb-4",children:`Words alone don't tell the whole story. Deep Seek's algorithms look at context, tone, and intent. A search for "best diets for athletes" goes beyond keywords.`}),e.jsx("p",{className:"mb-4",children:"It considers nutritional science, athlete stories, and medical research. This approach ensures results are relevant to real life."})]}),s.id==="privacy"&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"mb-4",children:"Keeping user data safe is key for Deep Seek. It focuses on security while keeping search quality high. It's all about finding the right balance."}),e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-3",children:"Data Protection Protocols"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[e.jsx("li",{children:"End-to-end encryption keeps all data safe."}),e.jsx("li",{children:"It follows GDPR and CCPA rules."}),e.jsx("li",{children:"Data is only kept for the session."})]}),e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mt-6 mb-3",children:"User Anonymity Features"}),e.jsx("p",{className:"mb-2",children:"Users can search without being tracked. Here's how:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[e.jsx("li",{children:"IP address masking hides your location."}),e.jsx("li",{children:"Guest mode collects no personal data."}),e.jsx("li",{children:"Browser fingerprint blocking stops tracking."})]}),e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mt-6 mb-3",children:"Ethical Search Considerations"}),e.jsx("blockquote",{className:"italic border-l-4 border-blue-500 pl-4 my-6",children:`"Ethics guide every search parameter," states Deep Seek's technical team. "We audit algorithms regularly to avoid bias."`}),e.jsx("p",{className:"mb-2",children:"Here are the ethical steps:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[e.jsx("li",{children:"Automated checks for harmful content."}),e.jsx("li",{children:"Tools show where search results come from."}),e.jsx("li",{children:"Users can block certain topics."})]}),e.jsx("p",{className:"mt-4",children:"These steps make Deep Seek a reliable choice for private searches. It tackles today's digital privacy issues head-on."})]}),s.id==="future"&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"mb-4",children:"Deep Seek's journey doesn't end with current capabilities. The roadmap ahead focuses on three core areas: feature upgrades, expanded use cases, and strategic collaborations. Each step aims to refine innovative search functionality while addressing evolving user needs."}
2201),e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-3",children:"Upcoming Feature Enhancements"}),e.jsx("p",{className:"mb-4",children:"Short-term updates prioritize speed and user control. New tools will let users refine queries in real time, while AI-driven filters streamline result sorting. Beta tests show these features cut research time by 40%."}),e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-3",children:"Expanding Capabilities"}),e.jsx("p",{className:"mb-4",children:"Future releases target uncharted domains. A 2024 roadmap includes:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[e.jsx("li",{children:"Visual search integration for image-based queries"}),e.jsx("li",{children:"Multi-lingual context analysis"}),e.jsx("li",{children:"Automated report generation from search results"})]}),e.jsx("div",{className:"overflow-x-auto my-6",children:e.jsxs("table",{className:"min-w-full border-collapse border border-gray-300",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-gray-100",children:[e.jsx("th",{className:"border border-gray-300 p-2 text-left",children:"Feature"}),e.jsx("th",{className:"border border-gray-300 p-2 text-left",children:"Release Window"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-2",children:"Real-time query tuning"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Q2 2024"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-2",children:"Visual search"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Q4 2024"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-2",children:"Automated reporting"}),e.jsx("td",{className:"border border-gray-300 p-2",children:"Q1 2025"})]})]})]})}),e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-3",children:"Industry Partnerships and Growth"}),e.jsx("p",{className:"mb-4",children:"Partnerships with tech leaders like NVIDIA and Microsoft Azure will expand innovative search functionality into healthcare and finance. These alliances aim to process unstructured data in medical journals and financial reports by 2025."}),e.jsx("p",{className:"mb-4",children:"Users can expect monthly developer updates and public beta access starting June 2024. This phased approach ensures steady progress without sacrificing reliability."})]})]})]},r)),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-800 mb-6",children:"Conclusion: Transforming Information Discovery with Deep Seek"}),e.jsxs("div",{className:"bg-gradient-to-r from-blue-50 to-indigo-50 p-6 rounded-xl border border-blue-100",children:[e.jsx("p",{className:"mb-4",children:"Deep Seek changes how we find information by combining AI with easy-to-use design. It's more than a search tool; it's a big step forward for finding clarity in our data-filled world. It focuses on depth, context, and personalization, beating old methods that hide important insights."}),e.jsx("p",{className:"mb-4",children:"For researchers, business analysts, or students, Deep Seek meets your needs. It finds patterns and connections that others miss. Its fast and accurate, saving you time and effort. Plus, it keeps your data safe with strong privacy and ethics."}),e.jsx("p",{children:"As data grows, tools like Deep Seek become key for making data useful. See how its smart algorithms can solve your problems, leading to discoveries that guide decisions and progress. The future of search is smarter, deeper, and will grow with you."})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-800 mb-6",children:"FAQ"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-2",children:"What is Deep Seek?"}),e.jsx("p",{children:"Deep Seek is a new search technology that goes beyond old search engines. It lets users find information in a deeper and more precise way. It uses artificial intelligence to improve how we find and get information."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb
2201-2",children:"How does Deep Seek's technology differ from traditional search engines?"}),e.jsx("p",{children:"Deep Seek is different because it uses semantic search algorithms. This means it understands the context and meaning of what you're searching for. This leads to more accurate and relevant results, making searching better."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-2",children:"Can Deep Seek enhance academic and scientific research?"}),e.jsx("p",{children:"Yes! Deep Seek is great for researchers. It helps them find and review literature, spot research gaps, and access special resources. It makes finding information easier and helps connect different fields of study."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-2",children:"How does Deep Seek ensure user privacy and security?"}),e.jsx("p",{children:"Deep Seek keeps your privacy by using strong data protection. It also offers features to keep your identity anonymous. This ensures your searches are private and secure."})]}),e.jsxs("div",{className:"bg-white p-6 rounded-xl shadow-sm border border-gray-100",children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-800 mb-2",children:"What can be expected in the future of Deep Seek's development?"}),e.jsx("p",{children:"Deep Seek's future looks bright. It will add new features and expand its capabilities. It will also partner with industries to become even more useful for everyone."})]})]})]})]})]})})]})},mJ=()=>{const[t,n]=S.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek V3.1: Breakthrough in AI Technology | DeepSeek.ai"}),e.jsx("meta",{name:"description",content:"Explore DeepSeek V3.1, our latest AI model with unprecedented reasoning capabilities, improved context handling, and enhanced multilingual support."}),e.jsx("meta",{name:"keywords",content:"DeepSeek V3.1, AI model, machine learning, artificial intelligence, language model, reasoning capabilities"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-v31"}),e.jsx("meta",{property:"og:title",content:"DeepSeek V3.1: The Next Generation AI Model | DeepSeek.ai"}),e.jsx("meta",{property:"og:description",content:"Explore the groundbreaking features of DeepSeek V3.1, our most advanced AI model with superior reasoning and multilingual capabilities."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-v31"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek V3.1: Advanced AI Model | DeepSeek.ai"}),e.jsx("meta",{name:"twitter:description",content:"Discover DeepSeek V3.1's revolutionary capabilities in reasoning, context handling, and multilingual support."}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek V3.1: Revolutionizing AI with Advanced Reasoning Capabilities",datePublished:"2025-03-25T08:00:00+00:00",dateModified:"2025-03-25T08:00:00+00:00",author:{"@type":"Organization",name:"DeepSeek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"DeepSeek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:"DeepSeek V3.1 introduces groundbreaking improvements in reasoning, context handling, and multilingual support, setting new standards for AI technology.",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-v31"}})})]}),e.jsx("main",{className:"min-h-screen pt-24 pb-12 bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx(cn,{}),e.jsxs("article",{className:"mt-12",children:[e.jsxs("header",{className:"mb-10",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[e.jsx("span",{className:"text-sm text-gray-500",children:"March 25, 2025"}),e.jsx("span",{className:"px-3 py-1 bg-blue-100 text-blue-700 rounded-full text-sm",children:"AI Technology"})]}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"DeepSeek V3.1: The New Frontier in Artificial Intelligence"}),e.jsx("p",{className:"text-xl text-gray-600",children:"Introducing our most powerful AI model yet, with unprecedented reasoning capabilities and multilingual support."})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsx("h2",{children:"DeepSeek V3.1: Redefining AI Capabilities"}),e.jsxs("p",{children:["Today, we're proud to announce the release of ",e.jsx("strong",{children:"DeepSeek V3.1"}),", our most advanced AI model to date. Building on the success of our previous models, ",e.jsx("strong",{children:"DeepSeek V3.1"})," represents a significant leap forward in artificial intelligence technology, setting new benchmarks in reasoning, context handling, and multilingual support."]}
2201),e.jsx("h3",{children:"Key Advancements in DeepSeek V3.1"}),e.jsx("h4",{children:"Enhanced Reasoning Capabilities"}),e.jsxs("p",{children:[e.jsx("strong",{children:"DeepSeek V3.1"})," introduces a revolutionary new architecture that dramatically improves reasoning capabilities across complex tasks. Our tests show up to 43% improvement in multi-step reasoning compared to our previous model, enabling more accurate solutions to complex problems in fields ranging from mathematics to code generation and scientific analysis."]}),e.jsx("h4",{children:"Extended Context Window"}),e.jsxs("p",{children:["With an expanded context window of 1 million tokens, ",e.jsx("strong",{children:"DeepSeek V3.1"})," can process and reason over significantly larger documents and conversations. This enhancement allows users to analyze entire codebases, research papers, or lengthy legal documents without losing contextual understanding."]}),e.jsx("h4",{children:"Superior Multilingual Support"}),e.jsxs("p",{children:[e.jsx("strong",{children:"DeepSeek V3.1"})," now supports over 100 languages with near-native proficiency, including significantly improved capability in Asian and low-resource languages. This advancement makes our technology more accessible globally and enables better cross-cultural communication and content generation."]}),e.jsx("h4",{children:"Reduced Hallucinations"}),e.jsxs("p",{children:["Through advanced training techniques and architectural improvements, ",e.jsx("strong",{children:"DeepSeek V3.1"})," demonstrates a 38% reduction in hallucinations compared to our previous model. This means more factual accuracy and reliability in the information it provides."]}),e.jsx("h3",{children:"Technical Specifications"}),e.jsxs("p",{children:[e.jsx("strong",{children:"DeepSeek V3.1"})," features a transformer-based architecture with:"]}),e.jsxs("ul",{children:[e.jsx("li",{children:"560 billion parameters, fine-tuned on diverse datasets"}),e.jsx("li",{children:"1 million token context window"}),e.jsx("li",{children:"Multi-modal capabilities including text, code, and image understanding"}),e.jsx("li",{children:"Support for over 100 languages"}),e.jsx("li",{children:"Optimized inference for faster response times"})]}),e.jsx("h3",{children:"DeepSeek V3.1 Applications"}),e.jsxs("p",{children:["The capabilities of ",e.jsx("strong",{children:"DeepSeek V3.1"})," enable groundbreaking applications across multiple domains:"]}),e.jsxs("ul",{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Software Development:"})," Advanced code generation, debugging, and refactoring capabilities"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Scientific Research:"})," Assistance in analyzing research papers and data interpretation"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Education:"})," Personalized tutoring across subjects with improved explanation abilities"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Content Creation:"})," High-quality multilingual content generation with cultural sensitivity"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Business Intelligence:"})," Complex data analysis and report generation with actionable insights"]})]}),e.jsx("h3",{children:"Availability"}),e.jsxs("p",{children:[e.jsx("strong",{children:"DeepSeek V3.1"})," is available today for enterprise customers through our API and will be gradually rolled out to our Chrome extension users over the next two weeks. Our developer documentation has been updated with comprehensive guides to help users leverage the full capabilities of the new model."]}),e.jsx("h3",{children:"Open Source Commitment"}),e.jsxs("p",{children:["In line with our commitment to advancing AI research, we're releasing a smaller version of",e.jsx("strong",{children:"DeepSeek V3.1"})," with 7 billion parameters as open source, allowing researchers and developers to build upon our work and contribute to the AI community."]}),e.jsx("h3",{children:"The Future of DeepSeek AI"}),e.jsxs("p",{children:[e.jsx("strong",{children:"DeepSeek V3.1"})," represents a significant milestone in our journey, but it's just the beginning. Our research team continues to push the boundaries of what's possible with artificial intelligence, focusing on making AI systems more capable, reliable, and aligned with human values."]}),e.jsxs("p",{children:["We invite you to experience the power of ",e.jsx("strong",{children:"DeepSeek V3.1"}
2201)," and join us in shaping the future of artificial intelligence technology."]})]}),e.jsxs("div",{className:"mt-12 mb-12 border-t border-b border-gray-200 py-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Articles"}),e.jsx(Nn,{})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]}),e.jsxs("button",{onClick:()=>n(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]})]})]})}),e.jsx(ar,{isOpen:t,onClose:()=>n(!1)})]})},fJ=()=>{const[t,n]=S.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek V3.1 â Free AI Model Update Explained"}),e.jsx("meta",{name:"description",content:"DeepSeek V3.1 has quietly launched with significant improvements, 128K context window, blazing fast performance, and it's completely free to use!"}),e.jsx("meta",{name:"keywords",content:"DeepSeek V3.1, free AI model, 128K context window, SVG Bench, hybrid architecture, open source AI, DeepSeek chat"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-v31-silent-revolution"}),e.jsx("meta",{property:"og:title",content:"DeepSeek V3.1 â Free AI Model Update Explained"}),e.jsx("meta",{property:"og:description",content:"DeepSeek V3.1 quietly launches with doubled context window, 2.5x faster performance, and completely free access in chat interface."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-v31-silent-revolution"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek V3.1: Silent Launch with Free Access | DeepSeek AI"}),e.jsx("meta",{name:"twitter:description",content:"Discover DeepSeek V3.1's quiet release with 128K tokens, hybrid architecture, and blazing fast performance - all completely free!"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BlogPosting",headline:"The Silent Revolution: DeepSeek V3.1 Is Here (and Free!) ð¤¯",datePublished:"2025-08-20T08:00:00+00:00",dateModified:"2025-08-20T08:00:00+00:00",author:{"@type":"Organization",name:"DeepSeek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"DeepSeek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:"DeepSeek V3.1 has quietly launched with significant improvements including doubled context window, blazing fast performance, and completely free access.",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-v31-silent-revolution"}})})]}),e.jsx("main",{className:"min-h-screen pt-24 pb-12 bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx(cn,{}),e.jsxs("article",{className:"mt-12",children:[e.jsxs("header",{className:"mb-10",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[e.jsx("span",{className:"text-sm text-gray-500",children:"August 20, 2025"}),e.jsx("span",{className:"px-3 py-1 bg-blue-100 text-blue-700 rounded-full text-sm",children:"AI Technology"})]}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"The Silent Revolution: DeepSeek V3.1 Is Here (and Free!) ð¤¯"}),e.jsx("p",{className:"text-xl text-gray-600",children:"Breaking news from the AI world! DeepSeek quietly releases V3.1 with massive improvements and completely free access."})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsxs("p",{children:["Breaking news from the AI world! ",e.jsx("strong",{children:"DeepSeek"}),", the Chinese AI that garnered significant attention this year, has just released a new version: ",e.jsx("strong",{children:"DeepSeek V3.1"}),". The most remarkable aspect? This powerful update is completely free to use directly within the chat interface. What makes it even more intriguing is that the release was quietly rolled out, without an official announcement on Twitter, but through Hugging Face and DeepSeek's official WeChat group."]}),e.jsx("h2",{children:"What Makes DeepSeek V3.1 So Special?"}),e.jsxs("p",{children:[e.jsx("strong",{children:"DeepSeek V3.1"})," promises significant improvements over its predecessors and competing models:"]}),e.jsx("h3",{children:"ð Impressive Performance"}),e.jsxs("p",{children:["On ",e.jsx("strong",{children:"SVG Bench"}),", a leading benchmark platform, ",e.jsx("strong",{children:"DeepSeek V3.1"})," scores ",e.jsx("strong",{children:"53.1%"}),", which is higher than many top models such as Gemini 2.5 Flash, GP5 Chat, A04 Mini Flash Light, and Kim K2. It also scores ",e.jsx("strong",{children:"71.6%"})," on ADA."]}),e.jsx("h3",{children:"ð Doubled Context Window"}),e.jsxs("p",{children:["The context window has been doubled from ",e.jsx("strong",{children:"64K to 128K tokens"})," (compared to DeepSeek V3). While still behind some models with 1 million tokens, this is a substantial advancement that allows for processing much larger documents and maintaining context over longer conversations."]}),e.jsx("h3",{children:"â¡ Blazingly Fast and Efficient"}),e.jsxs("p",{children:["The new version is significantly faster, up to ",e.jsx("strong",{children:"2.5 times faster in thinking time"}
2201)," than its predecessor. Furthermore, ",e.jsx("strong",{children:"DeepSeek V3.1"})," is ",e.jsx("strong",{children:"68 times cheaper and 1% more efficient"}),' than Opus. The usage cost is described as "super cheap," and there appears to be no limit to its free use in the chat.']}),e.jsx("h3",{children:'ð Hybrid Architecture and "Auto-Mode"'}),e.jsxs("p",{children:[e.jsx("strong",{children:"DeepSeek V3.1"}),' introduces a hybrid architecture that supports "thinking and search". Previously, users had to manually switch between "deep think" and "non-deep think" modes. Now, the model seems to switch automatically, similar to the approach seen in models like GPT-5.']}),e.jsx("h3",{children:"ð Open-Source Availability"}),e.jsxs("p",{children:[e.jsx("strong",{children:"DeepSeek V3.1"})," is downloadable on Hugging Face under an open-source license. This aligns with the growing trend of open-source AI models, making advanced AI technology more accessible to researchers and developers worldwide."]}),e.jsx("h3",{children:"ð Up-to-Date Knowledge"}),e.jsxs("p",{children:["The AI itself indicates that its knowledge is up-to-date as of ",e.jsx("strong",{children:"July 2024"}),", ensuring users have access to relatively recent information."]}),e.jsx("h3",{children:"ð¯ Model Size"}),e.jsxs("p",{children:["The model has ",e.jsx("strong",{children:"685 billion parameters"}),", positioning it among the largest and most capable language models available today."]}),e.jsx("h2",{children:"How to Access DeepSeek V3.1?"}),e.jsxs("p",{children:["To use ",e.jsx("strong",{children:"DeepSeek V3.1"}),", you simply need to go to ",e.jsx("strong",{children:"chat.deepseek.com"})," and sign up. You can start chatting directly and benefit from the new features. While there are no official API updates yet on platforms like OpenRouter for V3.1, and no local version of V3.1 has been released, you can fully utilize the free chat environment."]}),e.jsxs("p",{children:["For advanced users who wish to run DeepSeek locally, it is possible to do so with ",e.jsx("strong",{children:"Lama and Browser Use Web UI"}),". This allows you to have DeepSeek control your laptop for fully autonomous computing tasks. Within the chat environment, you can preview HTML outputs directly or download and host them on Netlify."]}),e.jsx("h2",{children:"Is DeepSeek V3.1 Also Good for Coding?"}),e.jsxs("p",{children:["The sources provide mixed signals regarding ",e.jsx("strong",{children:"DeepSeek V3.1's"})," coding capabilities. While it is capable of generating code (such as a Pong game in HTML or Python), it failed in a direct comparison with Claude Opus 4.8 and Gemini when attempting to create a playable game. ",e.jsx("strong",{children:"Gemini 2.5 Pro"})," is still considered the best for coding tasks and performed better than DeepSeek V3.1 in tests."]}),e.jsxs("p",{children:[e.jsx("strong",{children:"DeepSeek V3.1"})," is excellent for general chat purposes, but for more complex coding tasks, it still seems to have some catching up to do."]}),e.jsx("h2",{children:"The Future of Open-Source AI"}),e.jsxs("p",{children:[e.jsx("strong",{children:"DeepSeek V3.1"})," contributes to the rapidly growing open-source AI movement, alongside models like Google Gemma and Mistral. The trend is clear: ",e.jsx("strong",{children:"open-source AI is at its peak"}),". The ability to run powerful models locally on devices such as phones is seen as the future of AI, an area where Google currently appears to be leading."]}),e.jsx("h2",{children:"Where to Find More Information?"}),e.jsxs("p",{children:["This is just the beginning for ",e.jsx("strong",{children:"DeepSeek V3.1"}),", and its potential is immense. For those who wish to delve deeper and learn all the ins and outs, there is an extensive course and detailed SOPs (Standard Operating Procedures) available in the AI Profit Boardroom. This community offers daily updates, coaching calls, and an active environment for anyone looking to stay current with the latest AI developments."]}),e.jsx("hr",{}),e.jsx("p",{className:"text-center font-semibold",children:"Stay tuned, as the world of AI is evolving faster than ever!"})]}),e.jsxs("div",{className:"mt-12 mb-12 border-t border-b border-gray-200 py-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Articles"}),e.jsx(Nn,{})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]}),e.jsxs("button",{onClick:()=>n(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]})]})]})}),e.jsx(ar,{isOpen:t,onClose:()=>n(!1)})]})},gJ=()=>{const t=jn(),[n,s]=S.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Llama 4 vs DeepSeek AI â Complete Model Comparison"}),e.jsx("meta",{name:"description",content:"Compare Llama 4 and DeepSeek AI models across performance benchmarks, capabilities, and use cases. Discover which AI model is best for your specific needs."}),e.jsx("meta",{name:"keywords",content:"Llama 4 vs DeepSeek, AI model comparison, DeepSeek vs Llama, language model benchmarks, AI capabilities, open-source AI models"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/llama-4-vs-deepseek"}),e.jsx("meta",{property:"og:title",content:"Llama 4 vs DeepSeek AI: Complete Model Comparison"}),e.jsx("meta",{property:"og:description",content:"Compare Llama 4 and DeepSeek AI models across performance benchmarks, capabilities, and use cases."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/llama-4-vs-deepseek"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2201),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"Llama 4 vs DeepSeek AI: Complete Model Comparison"}),e.jsx("meta",{name:"twitter:description",content:"Compare Llama 4 and DeepSeek AI models across performance benchmarks, capabilities, and use cases."})]}),e.jsx("div",{className:"min-h-screen bg-gradient-to-br from-blue-50 to-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-16",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"mt-8",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"text-gray-500 mb-2",children:"April 10, 2025 ⢠DeepSeek Research Team"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"Llama 4 vs DeepSeek AI: Comprehensive Comparison of Leading AI Models"}),e.jsx("p",{className:"text-lg text-gray-700",children:"As open-source AI models continue to advance, two major players have emerged as frontrunners: Meta's Llama 4 and DeepSeek AI. This article provides a detailed comparison to help you understand the strengths, weaknesses, and ideal use cases for each model."})]}),e.jsx(ie,{className:"mb-10 bg-gradient-to-r from-blue-50 to-indigo-50 border-blue-100",children:e.jsxs(me,{className:"pt-6",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(_s,{className:"h-6 w-6 text-blue-600 mr-2"}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:"Key Takeaways"})]}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 shrink-0 mt-0.5"}),e.jsx("span",{children:"DeepSeek excels in multilingual support and specialized knowledge domains"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 shrink-0 mt-0.5"}),e.jsx("span",{children:"Llama 4 offers greater performance on standard English-language benchmarks"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 shrink-0 mt-0.5"}),e.jsx("span",{children:"Both models represent significant advances in open-source AI capabilities"})]})]})]})}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-10",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Model Overview"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6 mb-8",children:[e.jsx(ie,{className:"border-blue-200",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h3",{className:"text-xl font-bold text-blue-700 mb-3",children:"DeepSeek AI"}),e.jsx("p",{className:"mb-4",children:"DeepSeek AI is a cutting-edge AI model developed in China that has rapidly gained attention for its strong performance across various domains, particularly in specialized knowledge and multilingual capabilities."}),e.jsxs("ul",{className:"space-y-1.5",children:[e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0"}),e.jsx("span",{children:"Latest version: DeepSeek V3.1"})]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0"}),e.jsx("span",{children:"Open-source foundation"})]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0"}),e.jsx("span",{children:"Specialized variants for coding & research"})]})]})]})}),e.jsx(ie,{className:"border-purple-200",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h3",{className:"text-xl font-bold text-purple-700 mb-3",children:"Llama 4"}),e.jsx("p",{className:"mb-4",children:"Llama 4 is Meta's latest large language model, building on its predecessors with improved reasoning, safety, and knowledge c
2201apabilities. It's designed for both research and commercial applications."}),e.jsxs("ul",{className:"space-y-1.5",children:[e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0"}),e.jsx("span",{children:"Latest version: Llama 4"})]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0"}),e.jsx("span",{children:"Developed by Meta's AI team"})]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0"}),e.jsx("span",{children:"Multiple model sizes (8B, 70B, etc.)"})]})]})]})})]}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Performance Comparison"}),e.jsx("p",{className:"mb-4",children:"When comparing DeepSeek AI and Llama 4, several performance dimensions stand out across benchmarks and real-world usage:"}),e.jsxs("h3",{className:"text-xl font-bold text-gray-800 flex items-center mb-3",children:[e.jsx(J_,{className:"h-5 w-5 mr-2 text-blue-600"}),"Benchmark Performance"]}),e.jsx("div",{className:"overflow-x-auto mb-6",children:e.jsxs("table",{className:"min-w-full border border-gray-200 rounded-lg",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-gray-50",children:[e.jsx("th",{className:"px-4 py-3 text-left text-sm font-medium text-gray-600 border-b",children:"Benchmark"}),e.jsx("th",{className:"px-4 py-3 text-left text-sm font-medium text-blue-600 border-b",children:"DeepSeek"}),e.jsx("th",{className:"px-4 py-3 text-left text-sm font-medium text-purple-600 border-b",children:"Llama 4"}),e.jsx("th",{className:"px-4 py-3 text-left text-sm font-medium text-gray-600 border-b",children:"Advantage"})]})}),e.jsxs("tbody",{className:"divide-y divide-gray-200 bg-white",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 text-sm text-gray-800",children:"MMLU (General Knowledge)"}),e.jsx("td",{className:"px-4 py-3 text-sm",children:"78.2%"}),e.jsx("td",{className:"px-4 py-3 text-sm",children:"82.5%"}),e.jsx("td",{className:"px-4 py-3 text-sm text-purple-600",children:"Llama 4"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 text-sm text-gray-800",children:"GSM8K (Math Reasoning)"}),e.jsx("td",{className:"px-4 py-3 text-sm",children:"80.8%"}),e.jsx("td",{className:"px-4 py-3 text-sm",children:"78.3%"}),e.jsx("td",{className:"px-4 py-3 text-sm text-blue-600",children:"DeepSeek"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 text-sm text-gray-800",children:"HumanEval (Coding)"}),e.jsx("td",{className:"px-4 py-3 text-sm",children:"74.6%"}),e.jsx("td",{className:"px-4 py-3 text-sm",children:"67.2%"}),e.jsx("td",{className:"px-4 py-3 text-sm text-blue-600",children:"DeepSeek"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 text-sm text-gray-800",children:"HELM (Overall)"}),e.jsx("td",{className:"px-4 py-3 text-sm",children:"71.4%"}),e.jsx("td",{className:"px-4 py-3 text-sm",children:"73.8%"}),e.jsx("td",{className:"px-4 py-3 text-sm text-purple-600",children:"Llama 4"})]})]})]})}),e.jsxs("h3",{className:"text-xl font-bold text-gray-800 flex items-center mb-3",children:[e.jsx(Lt,{className:"h-5 w-5 mr-2 text-amber-500"}),"Specialized Capabilities"]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6 mb-8",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-bold text-blue-700 mb-2",children:"DeepSeek Strengths"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0 mt-1"}),e.jsx("span",{children:"Exceptional performance on mathematical and scientific tasks"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0 mt-1"}),e.jsx("span",{children:"Superior multilingual capabilities, especially for Asian languages"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0 mt-1"}),e.jsx("span",{children:"Extended context window (128K tokens)"})]})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-bold text-purple-700 mb-2",children:"Llama 4 Strengths"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0 mt-1"}),e.jsx("span",{children:"Strong performance on general knowledge benchmarks"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0 mt-1"}),e.jsx("span",{children:"Better factual accuracy and reduced hallucinations"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0 mt-1"}),e.jsx("span",{children:"Robust safety measures and content moderation"})]})]})]})]}),e.jsxs("h3",{className:"text-xl font-bold text-gray-800 flex items-center mb-3",children:[e.jsx(qr,{className:"h-5 w-5 mr-2 text-blue-600"}),"Programming & Technical Tasks"]}),e.jsx("p",{className:"mb-4",children:"Both models excel at code-related tasks, but with differing strengths:"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6 mb-8",children:[e.jsx(ie,{className:"border-blue-100 bg-blue-50/50",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h4",{className:"font-bold text-blue-700 mb-2",children:"DeepSeek Coder"}),e.jsx("p",{className:"mb-3",children:"DeepSeek offers a specialized coding variant that demonstrates exceptional performance across multiple programming languages."}),e.jsxs("ul",{className:"space-y-1.5 text-sm",children:[e.jsxs("li",{className:"flex items-center",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0"}),e.jsx("span",{children:"Top-tier performance on HumanEval and MBPP benchmarks"})]}),e.jsxs("li",{className:"flex items-center",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0"}),e.jsx("span",{children:"Excels at complex algorithm implementation"})]}),e.jsxs("li",{className:"flex items-center",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0"}),e.jsx("span",{children:"Strong understanding of Chinese-language codebase documentation"})]})]})]})}),e.jsx(ie,{className:"border-purple-100 bg-purple-50/50",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h4",{className:"font-bold text-purple-700 mb-2",children:"Llama 4 Coding"}),e.jsx("p",{className:"mb-3",children:"While not offering a specialized coding variant, Llama 4 demonstrates strong general coding c
2201apabilities."}),e.jsxs("ul",{className:"space-y-1.5 text-sm",children:[e.jsxs("li",{className:"flex items-center",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0"}),e.jsx("span",{children:"Good performance across popular programming languages"})]}),e.jsxs("li",{className:"flex items-center",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2 shrink-0"}),e.jsx("span",{children:"Excels at explaining code and debugging"})]}),e.jsxs("li",{className:"flex items-center",children:[e.jsx(Rs,{className:"h-4 w-4 text-red-500 mr-2 shrink-0"}),e.jsx("span",{children:"Less specialized than dedicated coding models"})]})]})]})})]}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Which Model Should You Choose?"}),e.jsx("p",{className:"mb-6",children:"Your choice between DeepSeek AI and Llama 4 should depend on your specific use case:"}),e.jsx(ie,{className:"mb-6 border-gray-200",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h3",{className:"text-xl font-bold text-gray-800 mb-3",children:"Choose DeepSeek AI if:"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 shrink-0 mt-0.5"}),e.jsx("span",{children:"You need strong multilingual support, especially for Asian languages"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 shrink-0 mt-0.5"}),e.jsx("span",{children:"Your applications involve complex mathematical or scientific reasoning"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 shrink-0 mt-0.5"}),e.jsx("span",{children:"You need specialized coding capabilities"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 shrink-0 mt-0.5"}),e.jsx("span",{children:"Your use cases require processing very long contexts"})]})]})]})}),e.jsx(ie,{className:"mb-8 border-gray-200",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h3",{className:"text-xl font-bold text-gray-800 mb-3",children:"Choose Llama 4 if:"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 shrink-0 mt-0.5"}),e.jsx("span",{children:"General knowledge and factual accuracy are top priorities"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 shrink-0 mt-0.5"}),e.jsx("span",{children:"You need robust safety features and content moderation"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 shrink-0 mt-0.5"}),e.jsx("span",{children:"You're developing primarily for English-language applications"})]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 shrink-0 mt-0.5"}),e.jsx("span",{children:"You want to leverage Meta's extensive ecosystem and support"})]})]})]})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Conclusion"}),e.jsx("p",{className:"mb-4",children:"Both DeepSeek AI and Llama 4 represent significant advancements in open-source AI capabilities, with each offering distinctive strengths. DeepSeek excels in specialized domains and multilingual support, while Llama 4 offers strong general performance and safety features."}),e.jsx("p",{className:"mb-4",children:"For many organizations, the optimal approach might involve leveraging both models in different contexts, or selecting the one that best aligns with their specific use cases and requirements. As these models continue to evolve rapidly, we can expect to see further improvements in capabilities and performance."}),e.jsx(Ba,{className:"my-8"}),e.jsxs("div",{className:"bg-blue-50 p-6 rounded-lg border border-blue-100",children:[e.jsx("h3",{className:"text-xl font-bold text-blue-700 mb-3",children:"DeepSeek AI Advantage"}),e.jsx("p",{className:"mb-4",children:"At DeepSeek, we're committed to pushing the boundaries of what's possible with AI. Our models are specifically designed to excel in complex reasoning tasks, multilingual capabilities, and specialized domains like coding and scientific research."}),e.jsx("p",{className:"font-medium",children:"Experience the DeepSeek difference today and discover how our AI models can transform your projects and applications."})]})]}),e.jsxs("div",{className:"mt-12 mb-12 border-t border-b border-gray-200 py-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Articles"}),e.jsx(Nn,{})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Add to Chrome - It's Free",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]}),e.jsxs("button",{onClick:()=>s(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Create AI Agents",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]})]})]})}),e.jsx(ar,{isOpen:n,onClose:()=>s(!1)})]})},xJ=()=>{const t=jn(),[n,s]=S.useState(!1),r={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek-R2: China's Bold Answer to the AI Race â What You Need to Know",datePublished:"2025-04-27T08:00:00+00:00",dateModified:"2025-04-27T09:30:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:"Discover how DeepSeek-R2, the next-gen AI model from China, challenges Silicon Valley with multilingual reasoning, coding skills, and multimodal capabilities.",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-r2-ai-model-launch-2025"}};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek-R2: China's Powerful New AI Model for 2025"}),e.jsx("meta",{name:"description",content:"Discover how DeepSeek-R2, the next-gen AI model from China, challenges Silicon Valley with multilingual reasoning, coding skills, and multimodal capabilities."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-r2-ai-model-launch-2025"}),e.jsx("meta",{property:"og:title",content:"DeepSeek-R2: China's Bold Answer to the AI Race"}),e.jsx("meta",{property:"og:description",content:"Discover how DeepSeek-R2, the next-gen AI model from China, challenges Silicon Valley with advanced AI capabilities."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-r2-ai-model-launch-2025"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2201),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek-R2: China's Powerful New AI Model for 2025"}),e.jsx("meta",{name:"twitter:description",content:"Discover how DeepSeek-R2, the next-gen AI model from China, challenges Silicon Valley with multilingual reasoning, coding skills, and multimodal capabilities."}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"transition-opacity duration-300 opacity-100",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"text-gray-500 mb-2",children:"April 27, 2025 ⢠Deep Seek Team"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-6",children:"DeepSeek-R2: China's Bold Answer to the AI Race â What You Need to Know"}),e.jsx("div",{className:"bg-blue-50 p-6 rounded-lg border border-blue-100 mb-8",children:e.jsxs("p",{className:"text-gray-800",children:[e.jsx("strong",{children:"DeepSeek-R2"})," is the upcoming AI model from Chinese startup DeepSeek, promising major advancements in multilingual reasoning, code generation, and multimodal capabilities. Scheduled for early 2025, DeepSeek-R2 combines innovative training techniques with efficient resource usage, positioning itself as a serious global competitor to Silicon Valley's top AI technologies."]})})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsxs("section",{children:[e.jsx("p",{children:"In the rapidly evolving landscape of artificial intelligence, a new contender is emerging from China that promises to reshape global AI dynamics. DeepSeek, a relatively young AI startup, is making waves with its forthcoming DeepSeek-R2 modelâa bold step in China's ambition to lead the global AI race."}),e.jsx("p",{children:"As Western tech giants like OpenAI, Anthropic, and Google dominate headlines, DeepSeek's R2 model represents a significant milestone in AI development from the East. With its unique approach to training, multilingual capabilities, and resource efficiency, DeepSeek-R2 isn't just another language modelâit's potentially a game-changer for how we think about AI development globally."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"What is DeepSeek-R2?"}),e.jsxs("p",{children:["DeepSeek-R2 is a next-generation large language model that builds upon the foundation laid by DeepSeek-R1. According to ",e.jsx("a",{href:"https://www.reuters.com/technology/artificial-intelligence/deepseek-rushes-launch-new-ai-model-china-goes-all-2025-02-25/",target:"_blank",rel:"noopener noreferrer",children:"reports from Reuters"}),", DeepSeek may be accelerating its launch timeline, potentially bringing this advanced AI system to market earlier than the original May 2025 target."]}),e.jsx("p",{children:"What sets DeepSeek-R2 apart is not just its improved performance metrics but its underlying architecture and training methodology. While R1 established DeepSeek as a serious competitor with strong multilingual and coding capabilities, R2 aims to push these boundaries significantly further while introducing new capabilities that could challenge the dominance of models like GPT-4 and Claude."}),e.jsx("p",{children:"DeepSeek-R2 represents China's growing confidence and technical capability in developing frontier AI technologies. The model has been designed from the ground up to be more efficient with computational resourcesâa critical advantage in the resource-intensive field of large language model development."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Key Features and Innovations"}),e.jsxs("div",{className:"mb-8",children:[e.jsx("h3",{className:"text-xl font-semibold text-blue-700 mb-3",children:"Advanced Multilingual Reasoning"}),e.jsx("p",{children:"DeepSeek-R2 excels in reasoning capabilities across multiple languages, with particular strength in Chinese, English, and several other Asian languages. Unlike many Western models that show degraded performance outside of English, DeepSeek-R2 maintains consistent logical reasoning, inference, and problem-solving abilities across languages. This advancement addresses a critical gap in current AI systems and opens the technology to much broader global applications without translation layers."})]}),e.jsxs("div",{className:"mb-8",children:[e.jsx("h3",{className:"text-xl font-semibold text-blue-700 mb-3",children:"Enhanced Programming and Coding Abilities"}),e.jsx("p",{children:"Building on the strength of DeepSeek Coder, R2 features significantly improved code generation capabilities across multiple programming languages. Early benchmarks suggest performance rivaling or exceeding specialized coding models while maintaining general-purpose capabilities. The model demonstrates advanced understanding of software architecture, debugging, and optimizationâmaking it a powerful tool for developers across experience levels, from explaining complex codebase
2201s to generating entire applications from specifications."})]}),e.jsxs("div",{className:"mb-8",children:[e.jsx("h3",{className:"text-xl font-semibold text-blue-700 mb-3",children:"Multimodal Functionality"}),e.jsx("p",{children:"DeepSeek-R2 introduces robust multimodal capabilities, processing and generating content across text, images, audio, and basic video understanding. This integration allows more natural human-computer interaction through combined visual and textual reasoning. Early examples show impressive capabilities in image understanding, generating detailed descriptions, answering questions about visual content, and even creating visualizations based on textual descriptionsâall within a unified model architecture."})]}),e.jsxs("div",{className:"mb-8",children:[e.jsx("h3",{className:"text-xl font-semibold text-blue-700 mb-3",children:"Novel Training Techniques"}),e.jsx(ie,{className:"mb-4 border-blue-200",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h4",{className:"font-semibold mb-2",children:"Generative Reward Modeling (GRM)"}),e.jsxs("p",{children:["According to the ",e.jsx("a",{href:"https://www.scmp.com/tech/tech-trends/article/3305259/deepseek-unveils-new-ai-reasoning-method-anticipation-its-next-gen-model-rises",target:"_blank",rel:"noopener noreferrer",children:"South China Morning Post"}),", DeepSeek has developed a proprietary Generative Reward Modeling technique that significantly improves how the model learns preferences and understands context. Unlike traditional reinforcement learning approaches, GRM enables the model to generate its own feedback during training, leading to more nuanced understanding and better alignment with human values without extensive human feedback datasets."]})]})}),e.jsx(ie,{className:"border-blue-200",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h4",{className:"font-semibold mb-2",children:"Self-Principled Critique Tuning"}),e.jsx("p",{children:"DeepSeek-R2 employs an innovative technique called Self-Principled Critique Tuningâa method where the model learns to critically evaluate its own outputs based on a set of principles. This self-reflection capability helps the model improve its reasoning, reduce hallucinations, and enhance the coherence and accuracy of its responses over time. The approach reduces the need for extensive manual tuning while creating more robust outputs."})]})})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Why DeepSeek's Strategy is Disruptive"}),e.jsx("p",{children:"DeepSeek's approach to AI development represents a significant departure from many of its competitors. The company has built its models to operate efficiently on Nvidia chips, maximizing performance while requiring fewer computational resources than many comparable Western models. This efficiency-first mindset allows them to iterate faster and reduce the astronomical costs typically associated with frontier AI development."}),e.jsxs("p",{children:["Perhaps most notably, according to the ",e.jsx("a",{href:"https://www.ft.com/content/fb5c11bb-1d4b-465f-8283-451a19a3d425",target:"_blank",rel:"noopener noreferrer",children:"Financial Times"}),", DeepSeek has reportedly turned down significant investment offers to maintain its independence and research focus. Unlike many AI startups racing toward commercial applications, DeepSeek has prioritized fundamental research and technological advancement over immediate revenue generation."]}),e.jsx("p",{children:"This strategy aligns with the company's stated AGI ambitions. While many Western companies have become increasingly cautious about discussing artificial general intelligence publicly, DeepSeek has been explicit about its goal of developing increasingly general AI systemsâpositioning R2 as an important step toward that longer-term vision."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"DeepSeek's Growing Real-World Impact"}),e.jsx("p",{children:"DeepSeek's technology is already finding its way into consumer products through partnerships with major Chinese manufacturers. Companies like Haier, Hisense, and TCL Electronics are incorporating DeepSeek's AI models into their product ecosystems, bringing advanced AI directly to consumers."}),e.jsx("p",{children:"In smart home appliances, DeepSeek-powered systems are enabling more natural voice interactions, predictive maintenance, and personalized user experiences. Smart TVs from these manufacturers are using DeepSeek's technology for content recommendation, voice search, and even real-time translation of foreign content."}),e.jsx("p",{children:"Perhaps most interestingly, DeepSeek's models are being integrated into home robots and vacuum cleaners, allowing these devices to better understand their environment, respond to complex commands, and adapt to household patterns. These real-world applications demonstrate that DeepSeek's technology isn't just theoreticalâit's already changing how millions of people interact with technology in their daily lives."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"How DeepSeek-R2 Could Change the Global AI Landscape"}),e.jsx("p",{children:"The emergence of DeepSeek-R2 has significant implications for the global AI landscape. It represents a direct challenge to Silicon Valley's dominance in frontier AI development, demonstrating that cutting-edge AI research isn't limited to well-funded Western labs."}),e.jsx("p",{children:"DeepSeek's emphasis on open research (with its foundational models being open source) contributes to the democratization of AI technology. While many leading models remain behind closed APIs, DeepSeek's approach could accelerate innovation by allowing researchers and developers worldwide to build upon their work."}),e.jsx("p",{children:"For China, DeepSeek-R2 represents an important step toward technological sovereignty in AI. As geopolitical tensions have limited Chinese companies' access to certain Western technologies, developing domestic alternatives becomes increasingly important. DeepSeek-R2 showcases China's growing capability to develop frontier AI independently."}),e.jsx("p",{children:`Perhaps most significantly, DeepSeek's focus on training efficiency could influence the entire field. As AI models continue to grow in size and cost, DeepSeek's ability to achieve competitive results with fewer resources challenges the "bigger is always better" paradigm that has dominated recent years. This approach could prove particularly influential for startups and researchers with limited compute budgets, potentially leading to more diverse approaches to AI development.`})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Final Thoughts: A Rising Force to Watch"}),e.jsx("p",{children:"DeepSeek-R2 represents more than just another AI modelâit signals China's growing confidence and capability in developing frontier AI technologies that can compete on the global stage. With its innovative training techniques, emphasis on efficie
2201ncy, and focus on multilingual capabilities, DeepSeek-R2 addresses several limitations of current leading models."}),e.jsx("p",{children:"As the global AI race accelerates, models like DeepSeek-R2 remind us that innovation can emerge from unexpected places. The unique constraints and opportunities facing Chinese AI companies have led to different approaches and priorities, potentially enriching the field as a whole."}),e.jsx("p",{children:"While the full capabilities of DeepSeek-R2 won't be known until its official release, the early indications suggest it will be a significant development worth watching closely. As we approach the launch date, the world will be eager to see whether this ambitious model lives up to its promiseâand what it means for the future of artificial intelligence globally."}),e.jsx("p",{children:"Stay tuned for more updates as we follow DeepSeek-R2's development and official launch in the coming months."})]}),e.jsxs("section",{className:"mt-12 bg-gray-50 p-6 rounded-lg",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"FAQ: DeepSeek-R2 and the Future of AI"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"What is DeepSeek-R2?"}),e.jsx("p",{children:"DeepSeek-R2 is the next-generation large language model (LLM) developed by Chinese AI startup DeepSeek. It builds upon DeepSeek-R1 and introduces major advancements in multilingual reasoning, programming capabilities, and multimodal AI interaction. DeepSeek-R2 is designed to compete with top models like OpenAI's GPT-4 and Anthropic's Claude."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"When will DeepSeek-R2 be released?"}),e.jsx("p",{children:"DeepSeek-R2 was initially scheduled for release in May 2025. However, according to reports from Reuters, the launch may be accelerated, with a potential earlier debut. The AI community is closely monitoring updates for an official release date."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"What makes DeepSeek-R2 different from other AI models like GPT-4?"}),e.jsx("p",{children:"Unlike many Western AI models, DeepSeek-R2 places a strong emphasis on multilingual reasoning and resource-efficient training. It also incorporates innovative techniques like Generative Reward Modeling and Self-Principled Critique Tuning, aiming for stronger logical thinking and lower training costs compared to models like GPT-4."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Which companies are using DeepSeek's AI technology?"}),e.jsx("p",{children:"Major Chinese companies such as Haier, Hisense, and TCL Electronics are integrating DeepSeek's AI models into their consumer products. This includes applications in smart TVs, smart home appliances, and robotic vacuum cleaners, showcasing DeepSeek's real-world impact beyond traditional software."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Is DeepSeek aiming for Artificial General Intelligence (AGI)?"}),e.jsx("p",{children:"Yes, DeepSeek has publicly emphasized its focus on pursuing Artificial General Intelligence (AGI). Unlike many competitors, DeepSeek prioritizes long-term research and technological breakthroughs over short-term revenue, maintaining full independence by declining major investment offers."})]})]})]})]}),e.jsxs("div",{className:"mt-12 mb-12 border-t border-b border-gray-200 py-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Articles"}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx("a",{href:"/blog/what-is-deep-learning-ai",className:"text-blue-600 hover:underline",children:"What is Deep Learning AI"}),e.jsx("a",{href:"/blog/deepseek-v31",className:"text-blue-600 hover:underline",children:"DeepSeek V3.1: The New Frontier in Artificial Intelligence"}),e.jsx("a",{href:"/blog/llama-4-vs-deepseek",className:"text-blue-600 hover:underline",children:"Llama 4 vs DeepSeek AI: Comprehensive Comparison"}),e.jsx("a",{href:"/blog/vibe-coding",className:"text-blue-600 hover:underline",children:"Vibe Coding: The Future of Softw
2201are Development"})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Add to Chrome - It's Free",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]}),e.jsxs("button",{onClick:()=>s(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Create AI Agents",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]})]})]})}),e.jsx(ar,{isOpen:n,onClose:()=>s(!1)})]})},yJ=()=>{const[t,n]=S.useState(!1),s=jn(),r={"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://deepseek.ai/blog/deepseek-terminus-upgrade",headline:"DeepSeek Just Upgraded Its AI: 4 Things That Make 'Terminus' a Quietly Huge Deal",description:"DeepSeek's V3.1-Terminus brings major improvements in agentic capabilities, long context handling, and user experience. Discover why this upgrade is a game-changer for AI agents and coding tasks.",image:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png",width:1200,height:630},author:{"@type":"Person",name:"DeepSeek AI Research Team",url:"https://deepseek.ai/about"},publisher:{"@type":"Organization",name:"DeepSeek",logo:{"@type":"ImageObject",url:"https://deepseek.ai/favicon.svg"}},datePublished:"2024-01-22T10:00:00Z",dateModified:"2024-01-22T10:00:00Z",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-terminus-upgrade"},articleSection:"AI Technology",keywords:"DeepSeek Terminus, V3.1, agentic AI, AI agents, browser automation, code interpreter, long context, AI upgrade, artificial intelligence",wordCount:"1200",inLanguage:"en-US"},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeek Terminus Upgrade",item:"https://deepseek.ai/blog/deepseek-terminus-upgrade"}]},{"@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What is DeepSeek V3.1-Terminus?",acceptedAnswer:{"@type":"Answer",text:"DeepSeek V3.1-Terminus is an upgraded version of DeepSeek's AI model that focuses on improved agentic capabilities, better long context handling, and enhanced user experience with significant performance improvements in tool use and reliability."}},{"@type":"Question",name:"What are the main improvements in DeepSeek Terminus?",acceptedAnswer:{"@type":"Answer",text:"The main improvements include enhanced agentic tool use (browser comp agent jumped from 30 to 38), better long context handling, improved language consistency, reduced abnormal characters, and a redesigned chat interface."}}]}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek Terminus Upgrade â 4 Key AI Improvements"}),e.jsx("meta",{name:"description",content:"DeepSeek V3.1-Terminus explained: four key upgrades for agentic AI, long context handling, language consistency and coding workflows."}),e.jsx("meta",{name:"keywords",content:"DeepSeek Terminus, V3.1, agentic AI, AI agents, browser automation, code interpreter, long context, AI upgrade, artificial intelligence, DeepSeek update, AI model improvement"}),e.jsx("meta",{name:"author",content:"DeepSeek AI Research Team"}),e.jsx("meta",{name:"robots",content:"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-terminus-upgrade"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:title",content:"DeepSeek Just Upgraded Its AI: 4 Things That Make 'Terminus' a Quietly Huge Deal"}),e.jsx("meta",{property:"og:description",content:"DeepSeek's V3.1-Terminus brings major improvements in agentic capabilities, long context handling, and user experience. Discover why this upgrade is a game-changer for AI agents and coding tasks."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-terminus-upgrade"}),e.jsx("meta",{property:"og:site_name",content:"DeepSeek AI"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2201),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{property:"og:locale",content:"en_US"}),e.jsx("meta",{property:"article:published_time",content:"2024-01-22T10:00:00Z"}),e.jsx("meta",{property:"article:modified_time",content:"2024-01-22T10:00:00Z"}),e.jsx("meta",{property:"article:author",content:"DeepSeek AI Research Team"}),e.jsx("meta",{property:"article:section",content:"AI Technology"}),e.jsx("meta",{property:"article:tag",content:"DeepSeek"}),e.jsx("meta",{property:"article:tag",content:"AI Agents"}),e.jsx("meta",{property:"article:tag",content:"Artificial Intelligence"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek Just Upgraded Its AI: 4 Things That Make 'Terminus' a Quietly Huge Deal"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek's V3.1-Terminus brings major improvements in agentic capabilities, long context handling, and user experience. Discover why this upgrade is a game-changer for AI agents and coding tasks."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:site",content:"@DeepSeekAI"}),e.jsx("meta",{name:"twitter:creator",content:"@DeepSeekAI"}),e.jsx("meta",{name:"theme-color",content:"#1a1a1a"}),e.jsx("meta",{name:"msapplication-TileColor",content:"#1a1a1a"}),e.jsx("meta",{name:"application-name",content:"DeepSeek AI"}),e.jsx("meta",{name:"apple-mobile-web-app-title",content:"DeepSeek AI"}),e.jsx("meta",{name:"format-detection",content:"telephone=no"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsxs("main",{className:"min-h-screen bg-gradient-to-br from-primary/5 via-background to-secondary/5",children:[e.jsxs("div",{className:"container mx-auto px-4 py-8 max-w-4xl",children:[e.jsx("nav",{className:"mb-8","aria-label":"Breadcrumb",children:e.jsxs("ol",{className:"flex items-center space-x-2 text-sm text-muted-foreground",children:[e.jsx("li",{children:e.jsx("a",{href:"/",className:"hover:text-primary transition-colors",children:"Home"})}),e.jsx("li",{children:"/"}),e.jsx("li",{children:e.jsx("a",{href:"/blog",className:"hover:text-primary transition-colors",children:"Blog"})}),e.jsx("li",{children:"/"}),e.jsx("li",{className:"text-foreground",children:"DeepSeek Terminus Upgrade"})]})}),e.jsx(cn,{}),e.jsxs("article",{className:"prose prose-lg max-w-none mt-8",children:[e.jsxs("header",{className:"mb-8",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("span",{className:"bg-primary/10 text-primary px-3 py-1 rounded-full text-sm font-medium",children:"AI Technology"}),e.jsx("time",{dateTime:"2024-01-22",className:"text-muted-foreground text-sm",children:"January 22, 2024"})]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-foreground mb-6 leading-tight",children:"DeepSeek Just Upgraded Its AI: 4 Things That Make 'Terminus' a Quietly Huge Deal"}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed mb-6",children:"In the relentless churn of AI updates, it takes something special to stand out. DeepSeek's new V3.1-Terminus might just be thatâa quiet but significant upgrade that focuses on refinement, reliability, and user-requested improvements."}),e.jsxs("div",{className:"flex items-center gap-4 mb-8",children:[e.jsxs(Ke,{variant:"outline",size:"sm",className:"gap-2",children:[e.jsx(G0,{className:"h-4 w-4"}),"Share Article"]}),e.jsxs(Ke,{variant:"outline",size:"sm",className:"gap-2",children:[e.jsx($r,{className:"h-4 w-4"}),"5 min read"]})]})]}),e.jsxs("div",{className:"prose prose-lg max-w-none",children:[e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"1. It's Suddenly an Agentic Powerhouse"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"The most significant improvement in Terminus is its dramatic leap in agentic tool use. This isn't a minor tweak; it's a major enhancement of the model's ability to perform complex, multi-step tasks using external tools like browsers and code interpreters."}),e.jsxs("div",{className:"bg-card border rounded-lg p-6 mb-6",children:[e.jsx("h3",{className:"text-lg font-semibold mb-3",children:"Benchmark Improvements:"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Browser comp agent:"})," jumped from 30 to 38 (+27% improvement)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Simple kua:"})," jumped from 93 to 97 (+4% improvement)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"SWE Verified and Terminal Bench:"}),' also showed "really good improvement"']})]})]}),e.jsx("blockquote",{className:"border-l-4 border-primary pl-6 py-2 my-6 bg-primary/5 rounded-r-lg",children:e.jsx("p",{className:"text-muted-foreground italic",children:'"The browser comp jump from 30 to 38 is pretty insane and simple kua going from 93 to 97 is a great deal for an open model" - AICodeKing'})}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"This signals a deliberate pivot toward making the AI not just a conversationalist, but a capable agent that can execute complex tasks. It's not a one-off improvement; the model is actually better across the board."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"2. Long Prompts No Longer Break It"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"A major quality-of-life upgrade in Terminus is its improved handling of long context. Previously, users might have noticed that earlier versions would struggle or slow down when fed a huge prompt or a big chunk of code."}),e.jsxs("div",{className:"bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 rounded-lg p-6 mb-6",children:[e.jsx("h3",{className:"text-lg font-semibold text-green-800 dark:text-green-200 mb-2",children:"Key Improvement"}),e.jsx("p",{className:"text-green-700 dark:text-green-300",children:"With the Terminus update, this issue appears to be mostly f
2201ixed. This allows for much longer, more stable sessions without performance degradationâa crucial upgrade for anyone doing in-depth coding or research."})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:`3. It's the "Fix-It" Release Users Wanted`}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"This update is a direct response to user feedback, with a clear focus on refining the core experience and improving reliability. While this isn't an entirely new model, the focus is on targeting some of the most common user-reported issues."}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4 mb-6",children:[e.jsxs(ie,{className:"p-6",children:[e.jsx("h3",{className:"font-semibold mb-2",children:"Language Consistency"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"The update reduces occurrences of Chinese/English mixing in responses."})]}),e.jsxs(ie,{className:"p-6",children:[e.jsx("h3",{className:"font-semibold mb-2",children:"Enhanced Reliability"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"The model no longer produces occasional abnormal characters."})]})]}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"This focus on stability and ironing out quirks is a sign of a maturing platform that listens to its user base. Such refinement-focused updates are often more valuable to daily users than flashy new features, as they build trust and usability."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"4. The Free Chat Interface Got a Major Glow-Up"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Alongside the model improvements, the free DeepSeek chat interfaceâwhere you can test the new modelâalso received a significant update."}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 mb-6 text-muted-foreground",children:[e.jsx("li",{children:"New moody and glowy look around the text box"}),e.jsx("li",{children:"Enhanced animations for when the model is thinking"}),e.jsx("li",{children:"Much more responsive and less buggy interface"}),e.jsx("li",{children:"Overall more polished user experience"})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"Conclusion: A Thoughtful Upgrade and a Hint of What's to Come"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Ultimately, DeepSeek-V3.1-Terminus is not a flashy, feature-packed release but a comprehensive upgrade focused on what matters: performance, reliability, and user experience. The focus on agentic skill, coupled with the mysterious 'Terminus' moniker, raises a thrilling question: Is DeepSeek about to drop a dedicated coding agent?"}),e.jsxs("div",{className:"bg-primary/10 border border-primary/20 rounded-lg p-6 mb-6",children:[e.jsx("h3",{className:"text-lg font-semibold mb-3",children:"Why This Matters for You"}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsx("li",{children:"⢠Better performance for complex coding tasks"}),e.jsx("li",{children:"⢠More reliable responses in long conversations"}),e.jsx("li",{children:"⢠Improved multi-step problem solving"}),e.jsx("li",{children:"⢠Enhanced browser automation capabilities"})]})]})]})]})]}),e.jsx(Nn,{}),e.jsxs("div",{className:"mt-12 flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsxs(Ke,{onClick:()=>n(!0),size:"lg",className:"gap-2",children:["Try DeepSeek Terminus",e.jsx(Pn,{className:"h-4 w-4"})]}),e.jsxs(Ke,{variant:"outline",size:"lg",onClick:()=>s("/blog"),children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]})]})]}),e.jsx(ar,{isOpen:t,onClose:()=>n(!1)})]})]})},bJ="/assets/deepseek-ocr-hero-Blg865kC.jpg",GA=[{q:"What is DeepSeek OCR?",a:"DeepSeek-OCR is an open-source vision-language model that reads documents by turning pages into a small number of vision tokens instead of a long text sequence. Its purpose is context compression: the same page content costs roughly 7-20à fewer tokens, while OCR precision stays around 97% at 10à compression."},{q:"Is DeepSeek OCR free?",a:"Yes. Code and model weights are published under DeepSeek's open-source release at github.com/deepseek-ai/DeepSeek-OCR, so you can run it locally or on your own GPU at no licence cost. You only pay for the hardware you run it on. It is not billed as a hosted API endpoint the way the V4 models are."},{q:"How do I use DeepSeek OCR?",a:"Clone the repository, install the Python requirements, download the weights from Hugging Face, then call the model with an image or PDF page and a prompt describing the output you want (plain text, markdown, or structured layout). A single A100-class GPU is enough for high-volume batch parsing; smaller GPUs work for lower throughput."},{q:"How accurate is DeepSeek OCR compared with other OCR models?",a:"In DeepSeek's published evaluation it stays near 97% decoding precision at a 10à compression ratio and outperforms GOT-OCR2.0 and MinerU2.0 while spending fewer vision tokens per page. Accuracy degrades gradually as you push the compression ratio past 10Ã, so pick a ratio per document type rather than globally."},{q:"What hardware do I need to run DeepSeek OCR?",a:"A single modern data-centre GPU (A100 class) handles roughly 200k+ pages per day in DeepSeek's own reporting. For experimentation a consumer card with 16-24GB VRAM is workable at lower batch sizes, since the decoder is a 3B MoE with about 570M active parameters."},{q:"Is DeepSeek OCR the same as DeepSeek's vision API?",a:"No. DeepSeek-OCR is a standalone open-source research model for document reading and context compression. Image understanding through the paid API runs on the experimental vision model in the V4 line, which is billed per token with a per-image token cap."},{q:"What can you build with DeepSeek OCR?",a:"Document ingestion for RAG pipelines, invoice and contract parsing, archive digitisation, and long-context agents that would otherwise blow past their token budget. The compression angle matters most when you feed thous
2201ands of pages into a model per day."}],vJ=()=>e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek OCR: How It Works, Free Setup & Benchmarks"}),e.jsx("meta",{name:"description",content:"DeepSeek OCR explained: 97% precision at 10Ã context compression, how to run it free from GitHub, hardware needs, benchmarks vs GOT-OCR2.0 and MinerU2.0, and where it fits next to V4 vision."}),e.jsx("meta",{name:"keywords",content:"DeepSeek OCR, optical character recognition, context compression, DeepEncoder, vision tokens, document parsing, AI OCR, DeepSeek AI, text compression, vision-language models, VLM, document AI"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-ocr-context-compression"}),e.jsx("meta",{property:"og:title",content:"DeepSeek-OCR: Revolutionary Context Compression Through Optical 2D Mapping"}),e.jsx("meta",{property:"og:description",content:"DeepSeek-OCR achieves 97% OCR precision at 10Ã compression ratio, surpassing GOT-OCR2.0 and MinerU2.0 while using fewer vision tokens. Learn about this breakthrough in AI document processing."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-ocr-context-compression"}),e.jsx("meta",{property:"og:site_name",content:"DeepSeek AI"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"article:published_time",content:"2025-10-21T00:00:00Z"}),e.jsx("meta",{property:"article:author",content:"DeepSeek AI Research Team"}),e.jsx("meta",{property:"article:section",content:"AI Technology"}),e.jsx("meta",{property:"article:tag",content:"DeepSeek OCR"}),e.jsx("meta",{property:"article:tag",content:"Context Compression"}),e.jsx("meta",{property:"article:tag",content:"Vision-Language Models"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek-OCR: Revolutionary Context Compression Through Optical 2D Mapping"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek-OCR achieves 97% OCR precision at 10Ã compression, processing 200k+ pages per day with a single A100 GPU."}),e.jsx("meta",{name:"twitter:creator",content:"@DeepSeekAI"}),e.jsx("meta",{name:"author",content:"DeepSeek AI Research Team"}),e.jsx("meta",{name:"robots",content:"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"}),e.jsx("meta",{name:"language",content:"English"}),e.jsx("meta",{name:"revisit-after",content:"7 days"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"TechArticle",headline:"DeepSeek-OCR: Revolutionary Context Compression Through Optical 2D Mapping",description:"Discover DeepSeek-OCR's breakthrough in compressing long contexts via optical 2D mapping, achieving 97% OCR precision at 10Ã compression with DeepEncoder.",author:{"@type":"Organization",name:"DeepSeek AI Research Team"},publisher:{"@type":"Organization",name:"DeepSeek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},datePublished:"2025-10-21T00:00:00Z",dateModified:"2026-08-25T00:00:00Z",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-ocr-context-compression"},articleSection:"AI Technology",keywords:["DeepSeek OCR","Context Compression","DeepEncoder","Vision Tokens","Document Parsing","AI OCR"],about:[{"@type":"Thing",name:"Optical Character Recognition"},{"@type":"Thing",name:"Context Compression"},{"@type":"Thing",name:"Vision-Language Models"}]})}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:GA.map(t=>({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))})}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeek-OCR: Context Compression",item:"https://deepseek.ai/blog/deepseek-ocr-context-compression"}]})})]}),e.jsx("article",{className:"min-h-screen pt-20 bg-gradient-to-br from-blue-50 to-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs("div",{className:"relative w-full h-64 md:h-96 mb-8 rounded-xl overflow-hidden shadow-lg",children:[e.jsx("img",{src:bJ,alt:"DeepSeek-OCR: AI-powered document understanding with context compression technology",className:"w-full h-full object-cover"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"}),e.jsxs("div",{className:"absolute bottom-4 left-4 right-4",children:[e.jsx("span",{className:"inline-block px-3 py-1 bg-blue-600 text-white text-sm rounded-full mb-2",children:"AI Technology"}),e.jsx("p",{className:"text-white/80 text-sm",children:"12 min read"})]})]}),e.jsx(il,{date:"2026-08-25",className:"mb-4"}),e.jsxs("header",{className:"mb-8",children:[e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"DeepSeek-OCR: Revolutionary Context Compression Through Optical 2D Mapping"}),e.jsxs("div",{className:"flex items-center gap-4 text-sm text-gray-600 flex-wrap",children:[e.jsx("time",{dateTime:"2025-10-21",children:"October 21, 2025"}),e.jsx("span",{className:"px-3 py-1 bg-blue-100 text-blue-700 rounded-full",children:"AI Technology"}),e.jsx("span",{children:"By DeepSeek AI Research Team"})]})]}),e.jsx(ie,{className:"p-8 mb-8",children:e.jsxs("section",{className:"prose prose-lg max-w-none",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Abstract: A New Paradigm for Context Compression"}),e.jsxs("p",{className:"text-gray-700 mb-6",children:["DeepSeek AI has unveiled ",e.jsx("strong",{children:"DeepSeek-OCR"}),", a groundbreaking approach to compressing long contexts via optical 2D mapping. This innovative system demonstrates that vision-based compression can achieve remarkable efficiency in handling text-heavy documents, potentially revolutionizing how large language models (LLMs) process extensive textual information."]}),e.jsxs("p",{className:"text-gray-700 mb-6",children:["The DeepSeek-OCR system consists of two primary components: ",e.jsx("strong",{children:"DeepEncoder"})," and ",e.jsx("strong",{children:"DeepSeek3B-MoE-A570M"})," as the decoder. Together, they achieve an impressive ",e.jsx("strong",{children:"97% OCR precision"})," when compressing text at a ratio of less than 10Ã (meaning 10 text tokens compressed into 1 vision token). Even at an aggressive 20Ã compression ratio, the system maintains approximately 60% accuracy."]})]})}),e.jsx(ie,{className:"p-8 mb-8",children:e.jsxs("section",{className:"prose prose-lg max-w-none",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"What Makes DeepSeek-OCR Revolutionary?"}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"1. Exceptional Compression Ratios with High Accuracy"}),e.jsx("p",{className:"text-gray-700 mb-4",children:"The core innovation of DeepSeek-OCR lies in its ability to compress textual information dramatically while maintaining high accuracy:"}),e.jsxs("ul",{className:"list-disc pl-6 mb-6 text-gray-700",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"96%+ OCR precision"})," at 9-10Ã compression ratio"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"~90% accuracy"})," at 10-12Ã compression ratio"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"~60% accuracy"})," at 20Ã compression ratio"]})]}),e.jsx("p",{className:"text-gray-700 mb-6",children:"These results demonstrate that compact language models can effectively decode compressed visual representations, suggesting that larger LLMs could readily acquire similar capabilities through appropriate pretraining design."}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"2. DeepEncoder: 250M Parameters, Maximum Efficiency"}),e.jsxs("p",{className:"text-gray-700 mb-4",children:[e.jsx("strong",{children:"DeepEncoder"})," is a lightweight yet powerful vision encoder with only ",e.jsx("strong",{children:"250 million parameters"}),". It achieves an impressive ",e.jsx("strong",{children:"32Ã compression ratio"})," while maintaining lossless performance. Key features include:"]}),e.jsxs("ul",{className:"list-disc pl-6 mb-6 text-gray-700",children:[e.jsx("li",{children:"Serial connection of window attention and global attention encoder components"}),e.jsx("li",{children:"16Ã convolutional compressor that reduces vision tokens before entering dense global attention"}),e.jsxs("li",{children:[e.jsx("strong",{children:"Multi-Head Latent Attention (MLA)"})," mechanism for efficient cross-modal alignment"]}),e.jsx("li",{children:"Ability to handle large images without GPU memory overflow"}),e.jsx("li",{children:"Effective memory and token compression for optimal performance"})]}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"3. State-of-the-Art Performance with Minimal Tokens"}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["On the ",e.jsx("strong",{children:"OmniDocBench"})," benchmark, DeepSeek-OCR achieves remarkable efficiency:"]}),e.jsxs("ul",{className:"list-disc pl-6 mb-6 text-gray-700",children:[e.jsxs("li",{children:["Surpasses ",e.jsx("strong",{children:"GOT-OCR2.0"})," (which uses 256 tokens/page) using only ",e.jsx("strong",{children:"100 vision tokens"})]}),e.jsxs("li",{children:["Outperforms ",e.jsx("strong",{children:"MinerU2.0"})," (which averages 6000+ tokens per page) while utilizing fewer than ",e.jsx("strong",{children:"800 vision tokens"})]}),e.jsx("li",{children:"Achieves state-of-the-art performance among end-to-e
2201nd models while using the fewest vision tokens"})]}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"4. Massive Production Scalability"}),e.jsx("p",{className:"text-gray-700 mb-6",children:"DeepSeek-OCR demonstrates exceptional real-world performance, capable of generating training data for LLMs and VLMs at an unprecedented scale:"}),e.jsxs("ul",{className:"list-disc pl-6 mb-6 text-gray-700",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"200,000+ pages per day"})," with a single A100-40G GPU"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"33 million pages per day"})," using 20 nodes (160 A100-40G GPUs)"]}),e.jsx("li",{children:"Practical deployment for large-scale document processing tasks"})]})]})}),e.jsx(ie,{className:"p-8 mb-8",children:e.jsxs("section",{className:"prose prose-lg max-w-none",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"The Technical Architecture Behind DeepSeek-OCR"}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"Vision Encoder Comparison"}),e.jsx("p",{className:"text-gray-700 mb-4",children:"Current open-source vision-language models (VLMs) employ three main types of vision encoders, each with distinct advantages and limitations:"}),e.jsxs("ul",{className:"list-disc pl-6 mb-6 text-gray-700",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Dual-tower architecture"})," (e.g., Vary): Offers controllable parameters but requires complex dual image preprocessing"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Tile-based methods"})," (e.g., InternVL2.0): Reduces activation memory but can result in excessive fragmentation and numerous vision tokens"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Adaptive resolution encoding"})," (e.g., Qwen2-VL): Handles diverse resolutions flexibly but faces challenges with massive activation memory consumption"]})]}),e.jsx("p",{className:"text-gray-700 mb-6",children:"DeepEncoder addresses these limitations by combining the best aspects of each approach while minimizing their drawbacks, achieving a balance between memory efficiency, token count, and processing capability."}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"Multi-Resolution Support"}),e.jsx("p",{className:"text-gray-700 mb-6",children:"DeepEncoder is designed to support multiple resolutions efficiently, enabling it to process documents of varying sizes and complexities without sacrificing performance or requiring excessive computational resources."}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"The MoE Decoder Architecture"}),e.jsxs("p",{className:"text-gray-700 mb-6",children:["The decoder component utilizes ",e.jsx("strong",{children:"DeepSeek3B-MoE-A570M"}),", a mixture-of-experts architecture that provides efficient inference while maintaining high accuracy. This design enables the model to specialize in different aspects of OCR tasks while sharing knowledge across experts."]})]})}),e.jsx(ie,{className:"p-8 mb-8",children:e.jsxs("section",{className:"prose prose-lg max-w-none",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Practical Applications and Use Cases"}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"Historical Document Compression"}),e.jsx("p",{className:"text-gray-700 mb-6",children:"DeepSeek-OCR shows considerable promise for research areas such as historical long-context compression, enabling efficient digitization and processing of archival materials without requiring massive storage or computational resources."}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"Memory Mechanisms in LLMs"}),e.jsx("p",{className:"text-gray-700 mb-6",children:"The vision-text compression paradigm opens new possibilities for implementing memory forgetting mechanisms in LLMs, allowing models to efficiently store and retrieve historical context while managing computational constraints."}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"Enhanced Document Parsing"}),e.jsx("p",{className:"text-gray-700 mb-4",children:"Beyond standard OCR, DeepSeek-OCR includes capabilities for parsing:"}),e.jsxs("ul",{className:"list-disc pl-6 mb-6 text-gray-700",children:[e.jsx("li",{children:"Charts and graphs with high accuracy"}),e.jsx("li",{children:"Chemical formulas and scientific notation"}),e.jsx("li",{children:"Simple geometric figures and diagrams"}),e.jsx("li",{children:"Natural images with embedded text"}),e.jsx("li",{children:"Multilingual documents across various languages"})]}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"Training Data Generation"}),e.jsx("p",{className:"text-gray-700 mb-6",children:"The model's ability to process 200,000+ pages daily on a
2201single GPU makes it an ideal tool for generating high-quality training data for next-generation LLMs and VLMs at scale."})]})}),e.jsx(ie,{className:"p-8 mb-8",children:e.jsxs("section",{className:"prose prose-lg max-w-none",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:'A New Paradigm: "A Picture is Worth a Thousand Words"'}),e.jsxs("p",{className:"text-gray-700 mb-6",children:["DeepSeek-OCR addresses a crucial research question that current models haven't adequately explored: ",e.jsx("em",{children:'"For a document containing 1000 words, how many vision tokens are at least needed for decoding?"'})]}),e.jsx("p",{className:"text-gray-700 mb-6",children:'The answer has profound implications for the fundamental principle that "a picture is worth a thousand words." DeepSeek-OCR demonstrates that a single image containing document text can represent rich information using substantially fewer tokens than the equivalent digital text, suggesting that optical compression through vision tokens can achieve much higher compression ratios than traditional text encoding.'}),e.jsx("p",{className:"text-gray-700 mb-6",children:"This paradigm shift reexamines vision-language models (VLMs) from an LLM-centric perspective, focusing on how vision encoders can enhance LLMs' efficiency in processing textual information rather than solely focusing on visual question answering (VQA) tasks."})]})}),e.jsx(ie,{className:"p-8 mb-8",children:e.jsxs("section",{className:"prose prose-lg max-w-none",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Data Engine and Training Pipeline"}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"Comprehensive Data Collection"}),e.jsx("p",{className:"text-gray-700 mb-4",children:"The DeepSeek-OCR data engine incorporates multiple data sources:"}),e.jsxs("ul",{className:"list-disc pl-6 mb-6 text-gray-700",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"OCR 1.0 data"}),": Traditional OCR datasets for baseline training"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"OCR 2.0 data"}),": Advanced synthetic and real-world document data"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"General vision data"}),": Diverse image datasets for broader visual understanding"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Text-only data"}),": Pure language data to enhance decoder capabilities"]})]}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 mt-6",children:"Three-Stage Training Process"}),e.jsx("p",{className:"text-gray-700 mb-4",children:"The training pipeline follows a systematic three-stage approach:"}),e.jsxs("ol",{className:"list-decimal pl-6 mb-6 text-gray-700",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Pre-training DeepEncoder"}),": First stage focuses on training the vision encoder to learn efficie
2201nt visual representations and compression capabilities"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Pre-training Decoder"}),": Second stage pre-trains the DeepSeek3B-MoE-A570M decoder to understand compressed visual tokens"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Supervised Fine-Tuning (SFT)"}),": Final stage fine-tunes the complete end-to-end system on high-quality OCR data for optimal document understanding"]})]})]})}),e.jsx(ie,{className:"p-8 mb-8",children:e.jsxs("section",{className:"prose prose-lg max-w-none",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Open Source Availability"}),e.jsxs("p",{className:"text-gray-700 mb-6",children:["True to DeepSeek AI's commitment to open research, both the code and model weights for DeepSeek-OCR are publicly accessible at ",e.jsx("a",{href:"https://github.com/deepseek-ai/DeepSeek-OCR",className:"text-blue-600 hover:text-blue-800 underline",target:"_blank",rel:"noopener noreferrer",children:"github.com/deepseek-ai/DeepSeek-OCR"}),"."]}),e.jsx("p",{className:"text-gray-700 mb-6",children:"This open-source release enables researchers and developers worldwide to:"}),e.jsxs("ul",{className:"list-disc pl-6 mb-6 text-gray-700",children:[e.jsx("li",{children:"Reproduce and validate the research findings"}),e.jsx("li",{children:"Build upon the DeepSeek-OCR architecture for custom applications"}),e.jsx("li",{children:"Contribute improvements and extensions to the community"}),e.jsx("li",{children:"Deploy the system for production use cases"})]})]})}),e.jsx(ie,{className:"p-8 mb-8",children:e.jsxs("section",{className:"prose prose-lg max-w-none",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"DeepSeek OCR â frequently asked questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"not-prose",children:GA.map((t,n)=>e.jsxs(ss,{value:`ocr-faq-${n}`,children:[e.jsx(rs,{className:"text-left font-semibold text-gray-900",children:t.q}),e.jsx(as,{className:"text-gray-700",children:t.a})]},t.q))})]})}),e.jsx(ie,{className:"p-8 mb-8 border-blue-200 bg-blue-50/70",children:e.jsxs("section",{className:"prose prose-lg max-w-none",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Where OCR fits in the current DeepSeek stack"}),e.jsx("p",{className:"text-gray-700 mb-4",children:"DeepSeek-OCR is a research model you self-host. If you want image understanding through the paid API instead, that lives in the V4 line and is billed per token:"}),e.jsxs("ul",{className:"list-disc pl-6 text-gray-700 mb-0",children:[e.jsxs("li",{children:[e.jsx(se,{to:"/blog/deepseek-vision-api-guide",className:"text-blue-600 underline",children:"The DeepSeek vision API guide"})," â image inputs, the per-image token cap and the experimental limits"]}),e.jsxs("li",{children:[e.jsx(se,{to:"/deepseek-api",className:"text-blue-600 underline",children:"DeepSeek API setup"})," â keys, OpenAI-compatible calls and current model strings"]}),e.jsxs("li",{children:[e.jsx(se,{to:"/pricing",className:"text-blue-600 underline",children:"Current DeepSeek pricing"})," â live rate card and a cost calculator"]})]})]})}),e.jsx(ie,{className:"p-8 mb-8 bg-blue-50",children:e.jsxs("section",{className:"prose prose-lg max-w-none",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Conclusion: Toward More Efficient LLMs"}),e.jsx("p",{className:"text-gray-700 mb-6",children:"DeepSeek-OCR represents a significant step forward in addressing one of the most pressing challenges in modern AI: efficiently processing long textual contexts. By leveraging visual modality as a compression medium, the system demonstrates that substantial token reduction (7-20Ã) is achievable for different context stages while maintaining high accuracy."}),e.jsx("p",{className:"text-gray-700 mb-6",children:"The quantitative analysis provided by DeepSeek-OCR offers empirical guidelines for optimizing VLM token allocation, while the DeepEncoder architecture showcases practical feasibility with real-world deployment capabilities. Although focused on OCR as a proof-of-concept, this paradigm opens new possibilities for rethinking how vision and language modalities can be synergistically combined to enhance computational efficiency in large-scale text processing and agent systems."}),e.jsx("p",{className:"text-gray-700 mb-6",children:"As LLMs continue to grow in size and capability, innovations like DeepSeek-OCR will be crucial for making these powerful models more accessible, eff
2201icient, and practical for real-world applications. The future of AI may well depend on such creative approaches to the fundamental challenges of context management and computational efficiency."})]})}),e.jsx(cn,{}),e.jsxs("div",{className:"mt-16",children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-6",children:"Related DeepSeek AI Resources"}),e.jsx(Nn,{})]})]})})]}),wJ="/assets/chen-deli-conference-hero-CPp4EhRz.jpg",jJ=()=>{const[t,n]=S.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Chen Deli on DeepSeek AI Risks & Future Impact"}),e.jsx("meta",{name:"description",content:"DeepSeek researcher Chen Deli discusses AI's short-term benefits and long-term risks at the World Internet Conference 2025."}),e.jsx("meta",{name:"keywords",content:"DeepSeek Chen Deli, AI impact on humanity, World Internet Conference 2025, DeepSeek public appearance, AI future challenges, Chinese AI startup, DeepSeek researcher, artificial intelligence risks, AI pessimism"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-chen-deli-ai-humanity-warning"}),e.jsx("meta",{property:"og:title",content:"DeepSeek Researcher Warns: AI Could Become 'Massive Challenge' to Humanity"}),e.jsx("meta",{property:"og:description",content:"Senior DeepSeek researcher Chen Deli makes first public appearance, sharing concerns about AI's long-term impact on humanity at World Internet Conference."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-chen-deli-ai-humanity-warning"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek Researcher Chen Deli's Warning About AI's Future Impact"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek's first public appearance in a year: Chen Deli discusses AI's potential to help humanity short-term but warns of future challenges."}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"NewsArticle",headline:"DeepSeek Researcher Chen Deli Expresses Cautious Views on AI's Impact on Humanity",image:"https://deepseek.ai/chen-deli-conference-hero.jpg",datePublished:"2025-11-07T00:00:00+00:00",dateModified:"2025-11-09T00:00:00+00:00",author:{"@type":"Organization",name:"DeepSeek AI Fan Site",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"DeepSeek AI Fan Site",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:"DeepSeek makes first public appearance in nearly a year as senior researcher Chen Deli discusses AI's potential benefits and future challenges at World Internet Conference in Wuzhen, China.",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-chen-deli-ai-humanity-warning"},about:{"@type":"Thing",name:"Artificial Intelligence Ethics and Future Impact"}})}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"Who is Chen Deli from DeepSeek?",acceptedAnswer:{"@type":"Answer",text:"Chen Deli is a senior researcher at DeepSeek, a Chinese AI startup. He represented the company at the World Internet Conference 2025 in Wuzhen, marking DeepSeek's first public appearance in nearly a year."}},{"@type":"Question",name:"What did Chen Deli say about AI's future?",acceptedAnswer:{"@type":"Answer",text:"Chen Deli expressed that AI could be a great aid to humans in the short term, but warned that it could become a 'massive challenge' to humanity in the future, reflecting concerns about long-term AI safety and societal impact."}},{"@type":"Question",name:"Why are European countries restricting DeepSeek?",acceptedAnswer:{"@type":"Answer",text:"Several European countries have restricted DeepSeek usage due to concerns about data sovereignty, privacy, security considerations, and regulatory compliance with frameworks like the EU AI Act."}},{"@type":"Question",name:"What is the World Internet Conference?",acceptedA
2201nswer:{"@type":"Answer",text:"The World Internet Conference is a prestigious government-organized event held in Wuzhen, Zhejiang province, China, where technology leaders and companies discuss the future of internet and technology."}}]})})]}),e.jsx("main",{className:"min-h-screen pt-24 pb-12 bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("nav",{className:"flex items-center text-sm text-gray-500 mb-4","aria-label":"Breadcrumb",children:[e.jsxs(se,{to:"/",className:"hover:text-blue-600 flex items-center",children:[e.jsx(eT,{className:"h-4 w-4 mr-1"}),"Home"]}),e.jsx(Vr,{className:"h-4 w-4 mx-2"}),e.jsx(se,{to:"/blog",className:"hover:text-blue-600",children:"Blog"}),e.jsx(Vr,{className:"h-4 w-4 mx-2"}),e.jsx("span",{className:"text-gray-900",children:"DeepSeek Researcher on AI Impact"})]}),e.jsx(cn,{}),e.jsxs("article",{className:"mt-12",children:[e.jsx("div",{className:"mb-8 rounded-lg overflow-hidden",children:e.jsx("img",{src:wJ,alt:"DeepSeek researcher Chen Deli at World Internet Conference discussing AI's future impact",className:"w-full h-auto object-cover"})}),e.jsxs("header",{className:"mb-10",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-4 flex-wrap",children:[e.jsx("span",{className:"text-sm text-gray-500",children:"November 7, 2025"}),e.jsx("span",{className:"px-3 py-1 bg-blue-100 text-blue-700 rounded-full text-sm",children:"AI Technology"}),e.jsxs("span",{className:"flex items-center text-sm text-gray-500",children:[e.jsx(xo,{className:"h-4 w-4 mr-1"}),12," min read"]})]}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"DeepSeek Researcher Expresses Pessimism Over AI's Long-Term Impact on Humanity"}),e.jsx("p",{className:"text-xl text-gray-600",children:"In DeepSeek's first public appearance in nearly a year, senior researcher Chen Deli shares cautious views on AI's future at the World Internet Conference 2025."})]}),e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-6 mb-10",children:[e.jsx("h2",{className:"text-lg font-bold text-gray-900 mb-4",children:"Table of Contents"}),e.jsxs("nav",{className:"space-y-2",children:[e.jsx("a",{href:"#breaking-silence",className:"block text-blue-600 hover:text-blue-800 hover:underline",children:"DeepSeek Breaks Silence at World Internet Conference"}),e.jsx("a",{href:"#cautious-perspective",className:"block text-blue-600 hover:text-blue-800 hover:underline",children:"Chen Deli's Cautious Perspective on AI Development"}),e.jsx("a",{href:"#dual-nature",className:"block text-blue-600 hover:text-blue-800 hover:underline pl-4",children:"Understanding the Dual Nature of AI Progress"}),e.jsx("a",{href:"#global-impact",className:"block text-blue-600 hover:text-blue-800 hover:underline",children:"DeepSeek's Rise and Global Impact"}),e.jsx("a",{href:"#european-response",className:"block text-blue-600 hover:text-blue-800 hover:underline",children:"European Response and Global Regulatory Landscape"}),e.jsx("a",{href:"#researcher-dilemma",className:"block text-blue-600 hover:text-blue-800 hover:underline pl-4",children:"The Researcher's Dilemma: Innovation and Responsibility"}),e.jsx("a",{href:"#industry-implications",className:"block text-blue-600 hover:text-blue-800 hover:underline",children:"Implications for the AI Industry"}),e.jsx("a",{href:"#deepseek-future",className:"block text-blue-600 hover:text-blue-800 hover:underline",children:"What This Means for DeepSeek's Future"}),e.jsx("a",{href:"#key-takeaways",className:"block text-blue-600 hover:text-blue-800 hover:underline",children:"Key Takeaways"})]})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsxs("section",{id:"breaking-silence",children:[e.jsx("h2",{children:"DeepSeek Breaks Silence at World Internet Conference"}),e.jsxs("p",{children:["After months of rapid growth and global attention, Chinese artificial intelligence startup ",e.jsx("strong",{children:e.jsx(se,{to:"/deepseek-ai",className:"text-blue-600 hover:text-blue-800",children:"DeepSeek"})})," made its first public appearance in nearly a year at the prestigious ",e.jsx("strong",{children:"World Internet Conference"}
2201)," held in Wuzhen, Zhejiang province. The company's senior researcher, ",e.jsx("strong",{children:"Chen Deli"}),", took the stage alongside CEOs from five other major technology companies in a government-organized online conference that has sparked significant discussion about the future of AI technology."]})]}),e.jsxs("section",{id:"cautious-perspective",children:[e.jsx("h2",{children:"Chen Deli's Cautious Perspective on AI Development"}),e.jsxs("p",{children:["In a surprisingly candid presentation, ",e.jsx("strong",{children:"Chen Deli"})," expressed a nuanced view of artificial intelligence's trajectory that has resonated throughout the technology community. While acknowledging the tremendous benefits AI could bring to humanity in the near term, Chen painted a more sobering picture of its long-term implications."]}),e.jsxs("p",{children:['"AI could be a great aid to humans as it improves over the short term," Chen stated during the conference. However, he quickly tempered this optimism with a stark warning: the technology could ultimately become a ',e.jsx("strong",{children:'"massive challenge"'})," to humanity in the future."]})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Understanding the Dual Nature of AI Progress"}),e.jsx("p",{children:"Chen Deli's perspective reflects a growing awareness within the AI research community about the complex implications of advancing artificial intelligence. His comments suggest several key concerns:"}),e.jsxs("ul",{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Short-term benefits vs. long-term risks:"})," While current AI applications demonstrate clear value in productivity, healthcare, and scientific research, the long-term societal impacts remain uncertain."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Technological acceleration:"})," The rapid pace of AI development may outstrip our ability to create appropriate governance frameworks and safety measures."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Human-AI relationship:"})," As AI systems become more capable, questions arise about human autonomy, employment, and societal structure."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Ethical considerations:"})," The need for careful consideration of AI alignment with human values and interests becomes increasingly critical."]})]})]}),e.jsxs("section",{id:"global-impact",children:[e.jsx("h2",{children:"DeepSeek's Rise and Global Impact"}),e.jsxs("p",{children:[e.jsx("strong",{children:e.jsx(se,{to:"/what-is-deepseek-ai",className:"text-blue-600 hover:text-blue-800",children:"DeepSeek's"})})," journey from a relatively unknown Chinese startup to a globally recognized AI powerhouse has been nothing short of remarkable. The company has gained significant attention for:"]}),e.jsxs("ul",{children:[e.jsxs("li",{children:["Developing cost-effective AI models that challenge the notion that only massive computational resources can produce state-of-the-art results (learn more about ",e.jsx(se,{to:"/blog/deepseek-v31",className:"text-blue-600 hover:text-blue-800",children:"DeepSeek V3.1"}),")"]}),e.jsx("li",{children:"Embracing an open-source philosophy that democratizes access to advanced AI technology"}),e.jsxs("li",{children:["Implementing innovative architectures like Mixture-of-Experts (MoE) to achieve impressive performance with reduced computational costs (read about ",e.jsx(se,{to:"/deepseek-r1",className:"text-blue-600 hover:text-blue-800",children:"DeepSeek R1"}),")"]}),e.jsx("li",{children:"Contributing to the global AI research community through publications and model releases"})]}),e.jsx("p",{children:"This public appearance marks a significant moment for the company, as it continues to navigate the complex landscape of international AI development and regulation."})]}),e.jsxs("section",{id:"european-response",children:[e.jsx("h2",{children:"European Response and Global Regulatory Landscape"}),e.jsxs("p",{children:["Chen Deli's comments come at a time when ",e.jsx("strong",{children:"several European countries have moved to restrict the use of DeepSeek"}),", highlighting the growing geopolitical dimensions of AI technology. These restrictions reflect broader concerns about:"]}),e.jsxs("ul",{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Data sovereignty and privacy:"})," Questions about how user data is collected, stored, and processed"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Technological independence:"})," European efforts to develop domestic AI capabilities"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Security considerations:"})," Concerns about potential vulnerabilities in AI systems"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Regulatory compliance:"})," Alignment with evolving AI governance frameworks like the EU AI Act"]})]})]}),e.jsxs("section",{children:[e.jsx("h3",{id:"researcher-dilemma",children:"The Researcher's Dilemma: Innovation and Responsibility"}),e.jsx("p",{children:"Chen Deli's public statements exemplify the ethical tensions faced by AI researchers worldwide. Those at the forefront of AI development must balance:"}),e.jsxs("ul",{children:[e.jsx("li",{children:"The excitement of technological breakthroughs with awareness of potential risks"}),e.jsx("li",{children:"The desire to advance human capabilities with the responsibility to anticipate negative consequences"}),e.jsx("li",{children:"Commercial pressures to deploy AI systems with the need for thorough safety testing"}),e.jsx("li",{children:"Competitive dynamics in the global AI race with calls for international cooperation on AI safety"})]})]}),e.jsxs("section",{id:"industry-implications",children:[e.jsx("h2",{children:"Implications for the AI Industry"}),e.jsx("p",{children:"Chen Deli's pessimistic outlook on AI's long-term impact carries significant implications for the broader AI industry:"}),e.jsx("h4",{children:"1. Increased Focus on AI Safety Research"}),e.jsx("p",{children:"Public acknowledgment of potential long-term challenges from leading researchers may accelerate investment in AI safety and alignment research, ensuring that advanced AI systems remain beneficial to humanity."}),e.jsx("h4",{children:"2. Call for Stronger Governance Frameworks"}),e.jsx("p",{children:"Such warnings underscore the need for robust regulatory frameworks that can adapt to rapidly evolving AI capabilities while fostering innovation."}),e.jsx("h4",{children:"3. Industry Self-Reflection"}),e.jsx("p",{children:"Chen's comments may prompt other AI companies and researchers to more openly discuss the potential downsides of AI development, leading to more balanced public discourse."}),e.jsx("h4",{children:"4. International Collaboration Imperative"}),e.jsx("p",{children:'Addressing the "massive challenges" Chen references will likely require unprecedented
2201international cooperation among governments, researchers, and technology companies.'})]}),e.jsxs("section",{id:"deepseek-future",children:[e.jsx("h2",{children:"What This Means for DeepSeek's Future"}),e.jsxs("p",{children:["The choice to have Chen Deli share these concerns publicly may signal ",e.jsx("strong",{children:"DeepSeek's"})," commitment to responsible AI development. This approach could:"]}),e.jsxs("ul",{children:[e.jsx("li",{children:"Differentiate the company as a thoughtful, safety-conscious AI developer"}),e.jsx("li",{children:"Build trust with regulators and policymakers concerned about AI risks"}),e.jsx("li",{children:"Encourage industry-wide conversations about AI safety and ethics"}),e.jsx("li",{children:"Influence the company's research priorities toward more robust safety measures"})]})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"The Broader Context: AI at a Crossroads"}),e.jsxs("p",{children:["Chen Deli's appearance at the ",e.jsx("strong",{children:"World Internet Conference"})," reflects a critical moment in AI development. As systems become increasingly capable, the technology community faces fundamental questions:"]}),e.jsxs("ul",{children:[e.jsx("li",{children:"How can we ensure AI development remains aligned with human values and interests?"}),e.jsx("li",{children:"What governance structures are needed to manage increasingly powerful AI systems?"}),e.jsx("li",{children:"How should benefits and risks of AI be distributed across society?"}),e.jsx("li",{children:"What role should different stakeholders play in shaping AI's future?"})]})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Moving Forward: Balancing Innovation and Caution"}),e.jsxs("p",{children:["While ",e.jsx("strong",{children:"Chen Deli's"})," pessimistic outlook may seem sobering, it represents a mature approach to AI development that acknowledges both the technology's transformative potential and its serious risks. The AI community's ability to have honest conversations about these challenges will be crucial in navigating the path ahead."]}),e.jsxs("p",{children:["As ",e.jsx("strong",{children:"DeepSeek"})," continues its work in artificial intelligence, Chen's public comments suggest the company is grappling with the same fundamental questions facing all AI developers: How do we build technology that truly serves humanity's best interests, both today and in the future?"]})]}),e.jsxs("section",{id:"key-takeaways",children:[e.jsx("h2",{children:"Key Takeaways"}),e.jsxs("ul",{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"DeepSeek"})," made its first public appearance in nearly a year at the World Internet Conference in Wuzhen, China"]}),e.jsxs("li",{children:["Senior researcher ",e.jsx("strong",{children:"Chen Deli"})," expressed optimism about AI's short-term benefits but warned of potential long-term challenges"]}),e.jsx("li",{children:"Several European countries have implemented restrictions on DeepSeek usage"}),e.jsx("li",{children:"The appearance highlights growing awareness within the AI community about balancing innovation with responsibility"}),e.jsxs("li",{children:["Chen's comments reflect broader industry discussions about AI safety, governance, and long-term societal impact (explore ",e.jsx(se,{to:"/blog/what-is-deep-learning-ai",className:"text-blue-600 hover:text-blue-800",children:"deep learning fundamentals"}),")"]})]})]}),e.jsxs("section",{className:"mt-12 bg-gray-50 p-6 rounded-lg",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Frequently Asked Questions"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-lg mb-2",children:"Who is Chen Deli from DeepSeek?"}),e.jsx("p",{children:"Chen Deli is a senior researcher at DeepSeek, a Chinese AI startup. He represented the company at the World Internet Conference 2025 in Wuzhen, marking DeepSeek's first public appearance in nearly a year."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-lg mb-2",children:"What did Chen Deli say about AI's future?"}),e.jsx("p",{children:'Chen Deli expressed that AI could be a great aid to humans in the short term, but warned that it could become a "massive challenge" to humanity in the future, reflecting concerns about long-term AI safety and societal impact.'})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-lg mb-2",children:"Why are European countries restricting DeepSeek?"}),e.jsx("p",{children:"Several European countries have restricted DeepSeek usage due to concerns about data sovereignty, privacy, security considerations, and regulatory compliance with frameworks like the EU AI Act."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-lg mb-2",children:"What is the World Internet Conference?"}),e.jsx("p",{children:"The World Internet Conference is a prestigious government-organized event held in Wuzhen, Z
2201hejiang province, China, where technology leaders and companies discuss the future of internet and technology."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-lg mb-2",children:"How does DeepSeek compare to other AI models?"}),e.jsxs("p",{children:["DeepSeek has gained recognition for developing cost-effective, open-source AI models that achieve competitive performance with reduced computational requirements. Learn more in our ",e.jsx(se,{to:"/blog/llama-4-vs-deepseek",className:"text-blue-600 hover:text-blue-800",children:"comparison with Llama 4"}),"."]})]})]})]}),e.jsxs("section",{className:"mt-8",children:[e.jsx("h3",{className:"font-bold text-lg mb-4",children:"External Resources"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsx("li",{children:e.jsxs("a",{href:"https://www.reuters.com/world/asia-pacific/deepseek-researcher-pessimistic-over-ais-impact-startups-first-public-appearance-2025-11-07/",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 hover:underline flex items-center",children:["Reuters: Original article about Chen Deli's appearance",e.jsx(wn,{className:"h-4 w-4 ml-1"})]})}),e.jsx("li",{children:e.jsxs("a",{href:"https://www.asiafinancial.com/deepseek-researcher-pessimistic-about-ais-impact-on-humanity",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 hover:underline flex items-center",children:["Asia Financial: DeepSeek Researcher's Views",e.jsx(wn,{className:"h-4 w-4 ml-1"})]})}),e.jsx("li",{children:e.jsxs("a",{href:"https://www.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 hover:underline flex items-center",children:["Official DeepSeek Website",e.jsx(wn,{className:"h-4 w-4 ml-1"})]})})]})]}),e.jsx("section",{children:e.jsx("p",{className:"mt-8 text-gray-600 italic",children:"As the AI landscape continues to evolve rapidly, researchers like Chen Deli remind us that technical excellence must be paired with thoughtful consideration of societal implications. The future of AI will be shaped not just by what we can build, but by how we choose to build it."})})]}),e.jsxs("div",{className:"mt-12 mb-12 border-t border-b border-gray-200 py-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Articles"}),e.jsx(Nn,{})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]}),e.jsxs("button",{onClick:()=>n(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]})]})]})}),e.jsx(ar,{isOpen:t,onClose:()=>n(!1)})]})},kJ="/assets/deepseek-math-v2-hero-Dug7qRG6.jpg",NJ=()=>{const t=jn(),[n,s]=S.useState(!1),r={"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://deepseek.ai/blog/deepseek-math-v2#article",headline:"DeepSeekMath-V2: Revolutionary Self-Verifiable Mathematical Reasoning AI",description:"DeepSeekMath-V2 achieves gold-level scores on IMO 2025, CMO 2024, and near-perfect 118/120 on Putnam 2024. Discover how DeepSeek's 685B parameter model revolutionizes theorem proving with self-verifiable mathematical reasoning.",datePublished:"2025-11-30",dateModified:"2025-11-30",author:{"@type":"Organization",name:"DeepSeek AI Fan Site"},publisher:{"@type":"Organization",name:"DeepSeek AI Fan Site",logo:{"@type":"ImageObject",url:"https://deepseek.ai/favicon-ds.png"}},mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-math-v2"},image:"https://deepseek.ai/og-image.png",articleSection:"AI Technology",keywords:"DeepSeekMath-V2, DeepSeek Math, mathematical reasoning AI, theorem proving, IMO 2025, Putnam 2024, CMO 2024, self-verifiable reasoning, DeepSeek AI, mathematical AI"},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeekMath-V2",item:"https://deepseek.ai/blog/deepseek-math-v2"}]},{"@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What is DeepSeekMath-V2?",acceptedA
2201nswer:{"@type":"Answer",text:"DeepSeekMath-V2 is a 685 billion parameter AI model developed by DeepSeek that specializes in self-verifiable mathematical reasoning. It achieves gold-level scores on IMO 2025, CMO 2024, and near-perfect 118/120 on Putnam 2024."}},{"@type":"Question",name:"What makes DeepSeekMath-V2 different from other math AI models?",acceptedAnswer:{"@type":"Answer",text:"Unlike models that just optimize for correct final answers, DeepSeekMath-V2 focuses on self-verifiable reasoning - it can verify the comprehensiveness and rigor of its mathematical proofs, making it suitable for theorem proving where step-by-step derivation is required."}},{"@type":"Question",name:"What competitions has DeepSeekMath-V2 performed well on?",acceptedAnswer:{"@type":"Answer",text:"DeepSeekMath-V2 achieved gold-level scores on IMO 2025 and CMO 2024, and scored a near-perfect 118/120 on Putnam 2024, demonstrating exceptional theorem-proving capabilities."}},{"@type":"Question",name:"Is DeepSeekMath-V2 open source?",acceptedAnswer:{"@type":"Answer",text:"Yes, DeepSeekMath-V2 is released under the Apache License 2.0, making it available for research and commercial use."}},{"@type":"Question",name:"How many parameters does DeepSeekMath-V2 have?",acceptedAnswer:{"@type":"Answer",text:"DeepSeekMath-V2 has 685 billion parameters and is built on top of DeepSeek-V3.2-Exp-Base, making it one of the largest specialized mathematical reasoning models available."}},{"@type":"Question",name:"What is the IMO-ProofBench?",acceptedAnswer:{"@type":"Answer",text:"IMO-ProofBench is a benchmark developed by the DeepMind team behind DeepThink IMO-Gold. It evaluates AI models on their ability to generate rigorous mathematical proofs for International Mathematical Olympiad problems."}}]}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeekMath-V2 â IMO Gold Math Reasoning AI"}),e.jsx("meta",{name:"description",content:"DeepSeekMath-V2 reaches IMO 2025 gold-level scores and 118/120 on Putnam 2024 with self-verifiable mathematical reasoning."}),e.jsx("meta",{name:"keywords",content:"DeepSeekMath-V2, DeepSeek Math V2, DeepSeek mathematical reasoning, theorem proving AI, IMO 2025 AI, Putnam 2024 AI, CMO 2024, self-verifiable reasoning, DeepSeek AI, mathematical proof AI, LLM math, DeepSeek 685B, mathematical olympiad AI, AI theorem prover"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-math-v2"}),e.jsx("meta",{property:"og:title",content:"DeepSeekMath-V2: Revolutionary Self-Verifiable Mathematical Reasoning AI"}),e.jsx("meta",{property:"og:description",content:"DeepSeekMath-V2 achieves gold-level scores on IMO 2025 and near-perfect 118/120 on Putnam 2024. Discover DeepSeek's breakthrough in mathematical AI."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-math-v2"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:site_name",content:"DeepSeek AI Fan Site"}),e.jsx("meta",{property:"article:published_time",content:"2025-11-30"}),e.jsx("meta",{property:"article:section",content:"AI Technology"}),e.jsx("meta",{property:"article:tag",content:"DeepSeek"}),e.jsx("meta",{property:"article:tag",content:"Mathematical AI"}),e.jsx("meta",{property:"article:tag",content:"Theorem Proving"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeekMath-V2: Self-Verifiable Mathematical Reasoning AI"}),e.jsx("meta",{name:"twitter:description",content:"Gold-level IMO 2025, 118/120 Putnam 2024. DeepSeek's 685B parameter breakthrough in mathematical reasoning."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsx("main",{className:"min-h-screen pt-20 bg-gradient-to-br from-blue-50 via-indigo-50 to-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsx("nav",{className:"mb-6 text-sm","aria-label":"Breadcrumb",children:e.jsxs("ol",{className:"flex items-center space-x-2",children:[e.jsx("li",{children:e.jsx("a",{href:"/",className:"text-blue-600 hover:underline",children:"Home"})}),e.jsx("li",{children:e.jsx("span",{className:"text-gray-400",children:"/"})}),e.jsx("li",{children:e.jsx("a",{href:"/blog",className:"text-blue-600 hover:underline",children:"Blog"})}),e.jsx("li",{children:e.jsx("span",{className:"text-gray-400",children:"/"})}),e.jsx("li",{className:"text-gray-600",children:"DeepSeekMath-V2"})]})}),e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6 hover:bg-blue-50",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"prose prose-lg max-w-none",children:[e.jsxs("div",{className:"relative mb-8 rounded-2xl overflow-hidden shadow-2xl",children:[e.jsx("img",{src:kJ,alt:"DeepSeekMath-V2 AI Mathematical Reasoning - Neural network visualization with mathematical patterns",className:"w-full h-64 md:h-96 object-cover"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/20 to-transparent"}),e.jsxs("div",{className:"absolute bottom-0 left-0 right-0 p-6 text-white",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-3",children:[e.jsx("span",{className:"px-3 py-1 bg-blue-600 rounded-full text-sm font-medium",children:"AI Technology"}),e.jsxs("span",{className:"px-3 py-1 bg-amber-500 rounded-full text-sm font-medium flex items-center gap-1",children:[e.jsx(oy,{className:"h-3 w-3"}),"IMO 2025 Gold"]}),e.jsx("span",{className:"px-3 py-1 bg-green-600 rounded-full text-sm font-medium",children:"Open Source"})]}),e.jsx("p",{className:"text-sm opacity-90",children:"Published November 30, 2025 ⢠12 min read"})]})]}),e.jsxs("header",{className:"mb-8",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4 leading-tight",children:"DeepSeekMath-V2: Revolutionary Self-Verifiable Mathematical Reasoning AI"}),e.jsxs("p",{className:"text-xl text-gray-600 mb-6 leading-relaxed",children:["DeepSeek has released DeepSeekMath-V2, a groundbreaking 685 billion parameter AI model that achieves gold-level scores on IMO 2025, CMO 2024, and an unprecedented 118/120 on Putnam 2024. This isn't just another language model that can do mathâit's a fundamental shift in how AI approaches mathematical reasoning, emphasizing ",e.jsx("strong",{children:"self-verifiable proofs"})," over mere answer accuracy."]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-6 text-gray-500 text-sm border-b border-gray-200 pb-6",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(ag,{className:"h-4 w-4"}),"November 30, 2025"]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(xo,{className:"h-4 w-4"}),"12 min read"]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(ig,{className:"h-4 w-4"}),"DeepSeek AI Fan Site"]})]})]}),e.jsx(ie,{className:"mb-8 bg-gradient-to-r from-blue-600 to-indigo-700 text-white border-0 shadow-xl",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h2",{className:"text-xl font-bold mb-4 flex items-center gap-2 text-white",children:[e.jsx(Zc,{className:"h-5 w-5"}),"Key Takeaways"]}),e.jsxs("ul",{className:"space-y-3 text-blue-50",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(He,{className:"h-5 w-5 mt-0.5 flex-shrink-0 text-green-300"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-white",children:"Gold-level performance"})," on IMO 2025 and CMO 2024, plus 118/120 on Putnam 2024"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(He,{className:"h-5 w-5 mt-0.5 flex-shrink-0 text-green-300"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-white",children:"685 billion parameters"})," built on DeepSeek-V3.2-Exp-Base architecture"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(He,{className:"h-5 w-5 mt-0.5 flex-shrink-0 text-green-300"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-white",children:"Self-verifiable reasoning:"})," Model verifies its own proofs before finalizing"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(He,{className:"h-5 w-5 mt-0.5 flex-shrink-0 text-green-300"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-white",children:"Apache 2.0 license"})," - fully open source for research and commercial use"]})]})]})]})}),e.jsx(ie,{className:"mb-8 bg-gradient-to-r from-gray-50 to-blue-50 border-blue-200",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h2",{className:"text-lg font-semibold text-gray-900 mb-3 flex items-center gap-2",children:[e.jsx($r,{className:"h-5 w-5 text-blue-600"}),"Table of Contents"]}),e.jsx("nav",{children:e.jsxs("ul",{className:"space-y-2 text-blue-700",children:[e.jsx("li",{children:e.jsxs("a",{href:"#introduction",className:"hover:underline flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-400",children:"1."})," Introduction: Why Mathematical Reasoning Matters"]})}),e.jsx("li",{children:e.jsxs("a",{href:"#problem",className:"hover:underline flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-400",children:"2."})," The Problem with Current Math AI"]})}),e.jsx("li",{children:e.jsxs("a",{href:"#self-verification",className:"hover:underline flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-400",children:"3."})," The Self-Verification Breakthrough"]})}),e.jsx("li",{children:e.jsxs("a",{href:"#training",className:"hover:underline flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-400",children:"4."})," How DeepSeekMath-V2 Was Trained"]})}),e.jsx("li",{children:e.jsxs("a",{href:"#competition-results",className:"hover:underline flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-400",children:"5."})," Competition Results & Benchmarks"]})}),e.jsx("li",{children:e.jsxs("a",{href:"#technical-architecture",className:"hover:underline flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-400",children:"6."})," Technical Architecture"]})}),e.jsx("li",{children:e.jsxs("a",{href:"#implications",className:"hover:underline flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-400",children:"7."})," Real-World Implications"]})}),e.jsx("li",{children:e.jsxs("a",{href:"#comparison",className:"hover:underline flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-400",children:"8."})," Comparison with Other Math AI Models"]})}),e.jsx("li",{children:e.jsxs("a",{href:"#getting-started",className:"hover:underline flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-400",children:"9."})," Getting Started with DeepSeekMath-V2"]})}),e.jsx("li",{children:e.jsxs("a",{href:"#faq",className:"hover:underline flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-400",children:"10."})," Frequently Asked Questions"]})})]})})]})}),e.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-4 mb-10",children:[e.jsx(ie,{className:"bg-gradient-to-br from-amber-50 to-yellow-50 border-amber-200 hover:shadow-lg transition-shadow",children:e.jsxs(me,{className:"p-4 text-center",children:[e.jsx(oy,{className:"h-10 w-10 text-amber-600 mx-auto mb-2"}),e.jsx("p",{className:"font-bold text-gray-900 text-lg",children:"IMO 2025"}),e.jsx("p",{className:"text-amber-700 font-semibold",children:"Gold Level"}),e.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"International Math Olympiad"})]})}),e.jsx(ie,{className:"bg-gradient-to-br from-green-50 to-emerald-50 border-green-200 hover:shadow-lg transition-shadow",children:e.jsxs(me,{className:"p-4 text-center",children:[e.jsx(iz,{className:"h-10 w-10 text-green-600 mx-auto mb-2"}),e.jsx("p",{className:"font-bold text-gray-900 text-lg",children:"Putnam 2024"}),e.jsx("p",{className:"text-green-700 font-semibold",children:"118/120"}),e.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"98.3% accuracy"})]})}),e.jsx(ie,{className:"bg-gradient-to-br from-blue-50 to-cyan-50 border-blue-200 hover:shadow-lg transition-shadow",children:e.jsxs(me,{className:"p-4 text-center",children:[e.jsx(_s,{className:"h-10 w-10 text-blue-600 mx-auto mb-2"}),e.jsx("p",{className:"font-bold text-gray-900 text-lg",children:"685B"}),e.jsx("p",{className:"text-blue-700 font-semibold",children:"Parameters"}),e.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Massive scale"})]})}),e.jsx(ie,{className:"bg-gradient-to-br from-purple-50 to-violet-50 border-purple-200 hover:shadow-lg transition-shadow",children:e.jsxs(me,{className:"p-4 text-center",children:[e.jsx(qr,{className:"h-10 w-10 text-purple-600 mx-auto mb-2"}),e.jsx("p",{className:"font-bold text-gray-900 text-lg",children:"Apache 2.0"}),e.jsx("p",{className:"text-purple-700 font-semibold",children:"Open Source"}),e.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Free to use"})]})})]}),e.jsxs("section",{id:"introduction",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-900 mt-10 mb-4 flex items-center gap-3",children:[e.jsx("span",{className:"flex items-center justify-center w-10 h-10 bg-blue-100 text-blue-700 rounded-full text-lg font-bold",children:"1"}),"Introduction: Why Mathematical Reasoning Matters"]}),e.jsx("p",{className:"text-gray-700 mb-4 text-lg leading-relaxed",children:`Mathematics has long served as the ultimate test for artificial intelligence. Unlike natural language tasks where ambiguity is tolerated and multiple answers can be "correct enough," mathematics demands precision. A proof is either valid or it isn't. An answer is either right or wrong. This binary nature makes mathematical reasoning one of the most challenging and important benchmarks for AI systems.`}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"Over the past year, large language models have made remarkable progress in mathematical reasoning. Through reinforcement learning techniques that reward correct final answers, models improved from struggling with basic algebra to saturating quantitative reasoning competitions like AIME (American Invitational Mathematics Examination) and HMMT (Harvard-MIT Mathematics Tournament). This rapid improvement seemed to suggest that scaling up and better reward signals were all that was needed."}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:["But ",e.jsx("strong",{children:"DeepSeek"})," identified a fundamental flaw in this approach: ",e.jsx("em",{children:"correct answers don't guarantee correct reasoning"}),". A model might arrive at the right numerical answer through flawed logic, lucky guessing, or pattern matching without true understanding. This becomes critically problematic for tasks like theorem proving, where the goal isn't just a final answer but a rigorous, step-by-step derivation that can be verified by mathematicians."]}),e.jsx(ie,{className:"my-6 bg-blue-50 border-blue-200",children:e.jsx(me,{className:"p-6",children:e.jsxs("blockquote",{className:"text-lg italic text-gray-700 border-l-4 border-blue-500 pl-4",children:['"To push the limits of deep reasoning, we believe it is necessary to verify the comprehensiveness and rigor of mathematical reasoning. Self-verification is particularly important for scaling test-time compute, especially for open problems without known solutions."',e.jsx("footer",{className:"text-sm text-gray-500 mt-2",children:"â DeepSeekMath-V2 Research Team"})]})})})]}),e.jsxs("section",{id:"problem",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-900 mt-10 mb-4 flex items-center gap-3",children:[e.jsx("span",{className:"flex items-center justify-center w-10 h-10 bg-blue-100 text-blue-700 rounded-full text-lg font-bold",children:"2"}),"The Problem with Current Math AI"]}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"Traditional approaches to mathematical AI have relied heavily on reinforcement learning with outcome-based rewards. The training loop is simple: generate an answer, check if it matches the correct answer, and reward accordingly. While this approach has driven impressive gains on competition math problems, it has three fundamental limitations:"}),e.js
2201xs("div",{className:"grid md:grid-cols-1 gap-4 my-6",children:[e.jsx(ie,{className:"border-red-200 bg-red-50",children:e.jsx(me,{className:"p-5",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"flex items-center justify-center w-12 h-12 bg-red-100 rounded-full flex-shrink-0",children:e.jsx(u2,{className:"h-6 w-6 text-red-600"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Problem 1: Correct Answers â Correct Reasoning"}),e.jsx("p",{className:"text-gray-700",children:"A model can get the right answer for the wrong reasons. It might recognize patterns from training data, make computational errors that cancel out, or simply guess well. In high-stakes applications like scientific research or formal verification, this is unacceptable."})]})]})})}),e.jsx(ie,{className:"border-orange-200 bg-orange-50",children:e.jsx(me,{className:"p-5",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"flex items-center justify-center w-12 h-12 bg-orange-100 rounded-full flex-shrink-0",children:e.jsx($0,{className:"h-6 w-6 text-orange-600"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Problem 2: Inapplicable to Theorem Proving"}),e.jsx("p",{className:"text-gray-700",children:`Many mathematical tasksâespecially theorem provingârequire rigorous step-by-step derivation rather than numerical answers. You can't reward a proof based on whether the "final answer" is correct because proofs don't have final answers in the traditional sense. They have logical structures that must be verified.`})]})]})})}),e.jsx(ie,{className:"border-yellow-200 bg-yellow-50",children:e.jsx(me,{className:"p-5",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"flex items-center justify-center w-12 h-12 bg-yellow-100 rounded-full flex-shrink-0",children:e.jsx(d2,{className:"h-6 w-6 text-yellow-600"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Problem 3: Can't Scale to Open Problems"}),e.jsx("p",{className:"text-gray-700",children:"For unsolved mathematical problems, there is no known answer to reward against. If we want AI to contribute to mathematical researchâto prove new theorems and solve open conjecturesâwe need a system that can verify its own reasoning without external ground truth."})]})]})})})]})]}),e.jsxs("section",{id:"self-verification",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-900 mt-10 mb-4 flex items-center gap-3",children:[e.jsx("span",{className:"flex items-center justify-center w-10 h-10 bg-blue-100 text-blue-700 rounded-full text-lg font-bold",children:"3"}),"The Self-Verification Breakthrough"]}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:[e.jsx("strong",{children:"DeepSeekMath-V2"})," introduces a paradigm shift: instead of optimizing for correct final answers, it optimizes for ",e.jsx("em",{children:"self-verifiable mathematical reasoning"}),". The key insight is that mathematical proofs have an inherent structure that can be checked independently of knowing the final answer."]}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"The self-verification approach works as follows: the model doesn't just generate a proofâit also learns to verify that each step follows logically from previous steps, that no assumptions are made without justification, and that the overall argument is complete and rigorous. This creates a powerful feedback loop where the model can improve its reasoning by catching its own mistakes."}),e.jsx(ie,{className:"my-6 bg-gradient-to-r from-green-50 to-emerald-50 border-green-300",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"font-bold text-gray-900 mb-4 flex items-center gap-2",children:[e.jsx(He,{className:"h-5 w-5 text-green-600"}),"Why Self-Verification Changes Everything"]}),e.jsxs("ul",{className:"space-y-3 text-gray-700",children:[e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Lt,{className:"h-5 w-5 text-green-600 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Rigorous proofs:"})," Every step can be traced and verified, not just the final answer"]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Lt,{className:"h-5 w-5 text-green-600 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Applicable to theorem proving:"}),` Works for problems where there's no numerical "answer"`]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Lt,{className:"h-5 w-5 text-green-600 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Scales to open problems:"})," Can work on unsolved problems by verifying reasoning without ground truth"]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Lt,{className:"h-5 w-5 text-green-600 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Self-improving:"})," The model identifies and fixes its own mistakes before finalizing"]})]})]})]})})]}),e.jsxs("section",{id:"training",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-900 mt-10 mb-4 flex items-center gap-3",children:[e.jsx("span",{className:"flex items-center justify-center w-10 h-10 bg-blue-100 text-blue-700 rounded-full text-lg font-bold",children:"4"}),"How DeepSeekMath-V2 Was Trained"]}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:["The training methodology for ",e.jsx("strong",{children:"DeepSeekMath-V2"})," represents a sophisticated multi-stage process that creates a virtuous cycle of improvement between proof generation and verification:"]}),e.jsxs("div",{className:"space-y-4 my-6",children:[e.jsx(ie,{className:"border-l-4 border-l-blue-500",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Stage 1: Train an LLM-Based Verifier"}),e.jsx("p",{className:"text-gray-700",children:"First, DeepSeek trained an accurate and faithful verifier specifically for theorem proving. This verifier learns to assess whether a mathematical proof is validâchecking logical consistency, completeness, and rigor. The verifier is trained on a large corpus of human-verified mathematical proofs."})]})}),e.jsx(ie,{className:"border-l-4 border-l-indigo-500",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Stage 2: Train the Proof Generator"}),e.jsx("p",{className:"text-gray-700",children:"The proof generator is then trained using the verifier as its reward model. Instead of rewarding correct final answers, the generator is rewarded for producing proofs that pass the verifier's scrutiny. This fundamentally changes what the model optimizes for."})]})}),e.jsx(ie,{className:"border-l-4 border-l-purple-500",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Stage 3: Incentivize Self-Correction"}),e.jsxs("p",{className:"text-gray-700",children:["The generator is incentivized to identify and resolve as many issues as possible in its own proofs ",e.jsx("em",{children:"before"})," finalizing them. This creates a model that doesn't just generate proofs but actively reviews and improves themâsimilar to how a human mathematician would draft, check, and revise a proof."]})]})}),e.jsx(ie,{className:"border-l-4 border-l-pink-500",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Stage 4: Scale Verification Compute"}),e.jsx("p",{className:"text-gray-700",children:'As the generator becomes stronger, maintaining the generation-verification gap becomes crucial. DeepSeek scales verification compute to automatically label new hard-to-ver
2201ify proofs, creating fresh training data to continuously improve the verifier. This prevents the generator from "outgrowing" its critic.'})]})})]})]}),e.jsxs("section",{id:"competition-results",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-900 mt-10 mb-4 flex items-center gap-3",children:[e.jsx("span",{className:"flex items-center justify-center w-10 h-10 bg-blue-100 text-blue-700 rounded-full text-lg font-bold",children:"5"}),"Competition Results & Benchmarks"]}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:[e.jsx("strong",{children:"DeepSeekMath-V2"})," has achieved remarkable results on the world's most prestigious mathematics competitions. These aren't just incremental improvementsâthey represent AI systems performing at the level of the world's best human mathematicians:"]}),e.jsx(ie,{className:"mb-6 border-2 border-amber-300 bg-gradient-to-r from-amber-50 to-yellow-50 shadow-lg",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"text-xl font-bold text-gray-900 mb-6 flex items-center gap-2",children:[e.jsx(oy,{className:"h-6 w-6 text-amber-600"}),"Mathematics Competition Performance"]}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-start md:items-center border-b border-amber-200 pb-4",children:[e.jsxs("div",{children:[e.jsx("span",{className:"font-bold text-lg",children:"IMO 2025"}),e.jsx("p",{className:"text-sm text-gray-600",children:"International Mathematical Olympiad"})]}),e.jsx("span",{className:"bg-amber-500 text-white px-4 py-2 rounded-full font-bold mt-2 md:mt-0",children:"ð¥ Gold Level"})]}),e.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-start md:items-center border-b border-amber-200 pb-4",children:[e.jsxs("div",{children:[e.jsx("span",{className:"font-bold text-lg",children:"CMO 2024"}),e.jsx("p",{className:"text-sm text-gray-600",children:"China Mathematical Olympiad"})]}),e.jsx("span",{className:"bg-amber-500 text-white px-4 py-2 rounded-full font-bold mt-2 md:mt-0",children:"ð¥ Gold Level"})]}),e.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-start md:items-center",children:[e.jsxs("div",{children:[e.jsx("span",{className:"font-bold text-lg",children:"Putnam 2024"}),e.jsx("p",{className:"text-sm text-gray-600",children:"William Lowell Putnam Mathematical Competition"})]}),e.jsx("span",{className:"bg-green-500 text-white px-4 py-2 rounded-full font-bold mt-2 md:mt-0",children:"118/120 (98.3%)"})]})]})]})}),e.jsx("h3",{className:"text-xl font-bold text-gray-900 mt-8 mb-4",children:"IMO-ProofBench Results"}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:["The model was also evaluated on ",e.jsx("strong",{children:"IMO-ProofBench"}),", a benchmark developed by the DeepMind team behind the DeepThink IMO-Gold project. This benchmark specifically tests AI systems on their ability to generate rigorous mathematical proofsânot just numerical answersâfor International Mathematical Olympiad problems."]}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"DeepSeekMath-V2 demonstrated strong theorem-proving capabilities on this benchmark, particularly when scaled test-time compute was applied. This means giving the model more time and computational resources to think through problems and verify its reasoning."}),e.jsx(ie,{className:"my-6 bg-gray-50 border-gray-200",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h4",{className:"font-bold text-gray-900 mb-3",children:"Understanding the Competition Benchmarks"}),e.jsxs("div",{className:"space-y-4 text-gray-700",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"IMO (International Mathematical Olympiad):"})," The world's most prestigious mathematics competition for pre-university students. Problems require creative mathematical thinking and rigorous proof construction. Gold medals are awarded to roughly the top 8% of contestants."]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Putnam Competition:"})," North America's most prestigious university-level mathematics competition. Known for its extremely challenging problemsâthe median score is typically 0 out of 120. Scoring 118/120 would place in the top handful of competitors worldwide."]}),e.jsxs("div",{children:[e.jsx("strong",{children:"CMO (China Mathematical Olympiad):"})," China's national mathematical olympiad, used to select the Chinese IMO team. Problems are of comparable difficulty to the IMO."]})]})]})})]}),e.jsxs("section",{id:"technical-architecture",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-900 mt-10 mb-4 flex items-center gap-3",children:[e.jsx("span",{className:"flex items-center justify-center w-10 h-10 bg-blue-100 text-blue-700 rounded-full text-lg font-bold",children:"6"}),"Technical Architecture"]}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:[e.jsx("strong",{children:"DeepSeekMath-V2"})," is built with impressive technical specifications that enable its breakthrough performance:"]}),e.jsx(ie,{className:"mb-6 bg-gradient-to-r from-gray-50 to-slate-50 border-gray-300 shadow-md",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"font-bold text-gray-900 mb-4 flex items-center gap-2",children:[e.jsx(qr,{className:"h-5 w-5 text-gray-600"}),"Model Specifications"]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"border-b border-gray-200 pb-3",children:[e.jsx("p",{className:"text-sm text-gray-500",children:"Model Size"}),e.jsx("p",{className:"text-2xl font-bold text-gray-900",children:"685 Billion Parameters"})]}),e.jsxs("div",{className:"border-b border-gray-200 pb-3",children:[e.jsx("p",{className:"text-sm text-gray-500",children:"Base Model"}),e.jsx("p",{className:"text-lg font-bold text-gray-900",children:"DeepSeek-V3.2-Exp-Base"})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"border-b border-gray-200 pb-3",children:[e.jsx("p",{className:"text-sm text-gray-500",children:"Tensor Types"}),e.jsx("p",{className:"text-lg font-bold text-gray-900",children:"BF16 / F8_E4M3 / F32"})]}),e.jsxs("div",{className:"border-b border-gray-200 pb-3",children:[e.jsx("p",{className:"text-sm text-gray-500",children:"License"}),e.jsx("p",{className:"text-lg font-bold text-gray-900",children:"Apache 2.0 (Open Source)"})]})]})]}),e.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-200",children:[e.jsx("p",{className:"text-sm text-gray-500",children:"Downloads Last Month"}),e.jsx("p",{className:"text-xl font-bold text-gray-900",children:"2,642+ downloads"})]})]})}),e.jsx("h3",{className:"text-xl font-bold text-gray-900 mt-8 mb-4",children:"The Generation-Verification Gap"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:`A key architectural innovation is the management of the "generation-verification gap." As the proof generator becomes stronger at producing valid proofs, it risks outpacing the verifier's ability to find errors. DeepSeek addresses this by:`}),e.jsxs("ul",{className:"list-disc pl-6 text-gray-700 mb-4 space-y-2",children:[e.jsx("li",{children:"Continuously scaling verification compute to handle more complex proofs"}
2201),e.jsx("li",{children:"Automatically labeling new hard-to-verify proofs as training data"}),e.jsx("li",{children:"Creating a dynamic training pipeline where both components improve together"}),e.jsx("li",{children:"Using scaled test-time compute to allow deeper reasoning during inference"})]})]}),e.jsxs("section",{id:"implications",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-900 mt-10 mb-4 flex items-center gap-3",children:[e.jsx("span",{className:"flex items-center justify-center w-10 h-10 bg-blue-100 text-blue-700 rounded-full text-lg font-bold",children:"7"}),"Real-World Implications"]}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:["The implications of ",e.jsx("strong",{children:"DeepSeekMath-V2"})," extend far beyond competition mathematics. Self-verifiable mathematical reasoning could transform multiple fields:"]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4 my-6",children:[e.jsx(ie,{className:"hover:shadow-lg transition-shadow",children:e.jsxs(me,{className:"p-5",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center",children:e.jsx(u2,{className:"h-5 w-5 text-blue-600"})}),e.jsx("h3",{className:"font-bold text-gray-900",children:"Scientific Research"})]}),e.jsx("p",{className:"text-gray-700 text-sm",children:"Rigorous mathematical reasoning could accelerate discoveries in theoretical physics, chemistry, biology, and other sciences where mathematical proofs underpin major advances."})]})}),e.jsx(ie,{className:"hover:shadow-lg transition-shadow",children:e.jsxs(me,{className:"p-5",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-green-100 rounded-full flex items-center justify-center",children:e.jsx(He,{className:"h-5 w-5 text-green-600"})}),e.jsx("h3",{className:"font-bold text-gray-900",children:"Formal Verification"})]}),e.jsx("p",{className:"text-gray-700 text-sm",children:"Self-verifiable proofs could revolutionize software and hardware verification, helping prove the correctness of critical systems in aerospace, automotive, and financial industries."})]})}),e.jsx(ie,{className:"hover:shadow-lg transition-shadow",children:e.jsxs(me,{className:"p-5",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-purple-100 rounded-full flex items-center justify-center",children:e.jsx(mz,{className:"h-5 w-5 text-purple-600"})}),e.jsx("h3",{className:"font-bold text-gray-900",children:"Education"})]}),e.jsx("p",{className:"text-gray-700 text-sm",children:"AI tutors that can explain mathematical reasoning step-by-step with verified correctness could transform mathematics education at all levels."})]})}),e.jsx(ie,{className:"hover:shadow-lg transition-shadow",children:e.jsxs(me,{className:"p-5",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-amber-100 rounded-full flex items-center justify-center",children:e.jsx(d2,{className:"h-5 w-5 text-amber-600"})}),e.jsx("h3",{className:"font-bold text-gray-900",children:"Open Problem Solving"})]}),e.jsx("p",{className:"text-gray-700 text-sm",children:"Self-verification enables meaningful progress on unsolved mathematical problems like the Millennium Prize Problems, where no ground truth exists."})]})})]}),e.jsx(ie,{className:"my-6 bg-indigo-50 border-indigo-200",children:e.jsx(me,{className:"p-6",children:e.jsxs("blockquote",{className:"text-lg italic text-gray-700 border-l-4 border-indigo-500 pl-4",children:['"While much work remains, these results suggest that self-verifiable mathematical reasoning is a feasible research direction that may help develop more capable mathematical AI systems."',e.jsx("footer",{className:"text-sm text-gray-500 mt-2",children:"â DeepSeekMath-V2 Research Paper"})]})})})]}),e.jsxs("section",{id:"comparison",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-900 mt-10 mb-4 flex items-center gap-3",children:[e.jsx("span",{className:"flex items-center justify-center w-10 h-10 bg-blue-100 text-blue-700 rounded-full text-lg font-bold",children:"8"}),"Comparison with Other Math AI Models"]}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:["How does ",e.jsx("strong",{children:"DeepSeekMath-V2"})," compare to other mathematical AI systems? Here's a breakdown of the key differences:"]}),e.jsx("div",{className:"overflow-x-auto my-6",children:e.jsxs("table",{className:"w-full border-collapse bg-white rounded-lg overflow-hidden shadow-md",children:[e.jsx("thead",{className:"bg-gradient-to-r from-blue-600 to-indigo-600 text-white",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-4 py-3 text-left font-semibold",children:"Model"}),e.jsx("th",{className:"px-4 py-3 text-left font-semibold",children:"Parameters"}),e.jsx("th",{className:"px-4 py-3 text-left font-semibold",children:"Self-Verification"}),e.jsx("th",{className:"px-4 py-3 text-left font-semibold",children:"Open Source"}),e.jsx("th",{className:"px-4 py-3 text-left font-semibold",children:"IMO Performance"})]})}),e.jsxs("tbody",{className:"text-gray-700",children:[e.jsxs("tr",{className:"bg-green-50 border-b",children:[e.jsx("td",{className:"px-4 py-3 font-semibold",children:"DeepSeekMath-V2"}),e.jsx("td",{className:"px-4 py-3",children:"685B"}),e.jsx("td",{className:"px-4 py-3 text-green-600 font-semibold",children:"â Yes"}),e.jsx("td",{className:"px-4 py-3 text-green-600 font-semibold",children:"â Apache 2.0"}),e.jsx("td",{className:"px-4 py-3 font-semibold",children:"Gold Level"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"px-4 py-3",children:"DeepThink (DeepMind)"}),e.jsx("td",{className:"px-4 py-3",children:"Unknown"}),e.jsx("td",{className:"px-4 py-3 text-green-600",children:"â Yes"}),e.jsx("td",{className:"px-4 py-3 text-red-600",children:"â Closed"}),e.jsx("td",{className:"px-4 py-3",children:"Gold Level"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"px-4 py-3",children:"GPT-4"}),e.jsx("td",{className:"px-4 py-3",children:"~1.8T (est.)"}),e.jsx("td",{className:"px-4 py-3 text-red-600",children:"â No"}),e.jsx("td",{className:"px-4 py-3 text-red-600",children:"â Closed"}),e.jsx("td",{className:"px-4 py-3",children:"Silver Level"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"px-4 py-3",children:"Claude 3.5"}),e.jsx("td",{className:"px-4 py-3",children:"Unknown"}),e.jsx("td",{className:"px-4 py-3 text-red-600",children:"â No"}),e.jsx("td",{className:"px-4 py-3 text-red-600",children:"â Closed"}),e.jsx("td",{className:"px-4 py-3",children:"Silver Level"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:"Llama 4"}),e.jsx("td",{className:"px-4 py-3",children:"405B"}),e.jsx("td",{className:"px-4 py-3 text-red-600",children:"â No"}),e.jsx("td",{className:"px-4 py-3 text-green-600",children:"â Open"}),e.jsx("td",{className:"px-4 py-3",children:"Bronze Level"})]})]})]})}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:["The combination of IMO Gold-level performance, self-verification capabilities, and full open-source availability makes ",e.jsx("strong",{children:"DeepSeekMath-V2"})," unique in the current landscape of mathematical AI."]})]}),e.jsxs("section",{id:"getting-started",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-900 mt-10 mb-4 flex items-center gap-3",children:[e.jsx("span",{className:"flex items-center justify-center w-10 h-10 bg-blue-100 text-blue-700 rounded-full text-lg font-bold",children:"9"}),"Getting Started with DeepSeekMath-V2"]}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:[e.jsx("strong",{children:"DeepSeekMath-V2"})," is available on Hugging Face under the Apache 2.0 license, making it accessible for both research and commercial applications:"]}),e.jsx(ie,{className:"mb-6 bg-gradient-to-r from-blue-50 to-indigo-50 border-blue-200 shadow-md",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"font-bold text-gray-900 mb-4 flex items-center gap-2",children:[e.jsx(Pn,{className:"h-5 w-5 text-blue-600"}),"Quick Start Resources"]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("a",{href:"https://huggingface.co/deepseek-ai/DeepSeek-Math-V2",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-3 p-4 bg-white rounded-lg border border-blue-200 hover:border-blue-400 hover:shadow-md transition-all group",children:[e.jsx("div",{className:"w-12 h-12 bg-yellow-100 rounded-lg flex items-center justify-center",children:e.jsx("span",{className:"text-2xl",children:"ð¤"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"font-semibold text-gray-900 group-hover:text-blue-600",children:"DeepSeekMath-V2 on Hugging Face"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Model weights, documentation, and examples"})]}),e.jsx(Pn,{className:"h-5 w-5 text-gray-400 group-hover:text-blue-600"})]}),e.jsxs("a",{href:"https://github.com/deepseek-ai/DeepSeek-V3.2-Exp",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-3 p-4 bg-white rounded-lg border border-blue-200 hover:border-blue-400 hover:shadow-md transition-all group",children:[e.jsx("div",{className:"w-12 h-12 bg-gray-100 rounded-lg flex items-center justify-center",children:e.jsx(qr,{className:"h-6 w-6 text-gray-700"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"font-semibold text-gray-900 group-hover:text-blue-600",children:"GitHub Repository"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Inference support and implementation guides"})]}),e.jsx(Pn,{className:"h-5 w-5 text-gray-400 group-hover:text-blue-600"})]}),e.jsxs("a",{href:"https://chat.deepseek.com/",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-3 p-4 bg-white rounded-lg border border-blue-200 hover:border-blue-400 hover:shadow-md transition-all group",children:[e.jsx("div",{className:"w-12 h-12 bg-blue-100 rounded-lg flex items-center justify-center",children:e.jsx(_s,{className:"h-6 w-6 text-blue-600"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"font-semibold text-gray-900 group-hover:text-blue-600",children:"Try DeepSeek Chat"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Experience DeepSeek's AI capabilities online"})]}),e.jsx(Pn,{className:"h-5 w-5 text-gray-400 group-hover:text-blue-600"})]})]})]})}),e.jsx("h3",{className:"text-xl font-bold text-gray-900 mt-8 mb-4",children:"System Requirements"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"Due to its 685 billion parameter size, running DeepSeekMath-V2 locally requires significant computational resources. For most users, accessing the model through cloud APIs or DeepSeek's hosted services will be the most practical option."})]}),e.jsxs("section",{id:"faq",children:[e.jsxs("h2",{className:"text-3xl font-bold text-gray-900 mt-10 mb-4 flex items-center gap-3",children:[e.jsx("span",{className:"flex items-center justify-center w-10 h-10 bg-blue-100 text-blue-700 rounded-full text-lg font-bold",children:"10"}),"Frequently Asked Questions"]}
2201),e.jsxs("div",{className:"space-y-4 mt-6",children:[e.jsx(ie,{className:"bg-gray-50 hover:shadow-md transition-shadow",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"font-bold text-gray-900 mb-2 flex items-center gap-2",children:[e.jsx("span",{className:"text-blue-600",children:"Q:"})," What is DeepSeekMath-V2?"]}),e.jsxs("p",{className:"text-gray-700",children:[e.jsx("strong",{children:"DeepSeekMath-V2"})," is a 685 billion parameter AI model developed by DeepSeek that specializes in self-verifiable mathematical reasoning. It achieves gold-level scores on IMO 2025, CMO 2024, and a near-perfect 118/120 on Putnam 2024. Unlike traditional math AI that optimizes for correct answers, it focuses on generating rigorous, verifiable proofs."]})]})}),e.jsx(ie,{className:"bg-gray-50 hover:shadow-md transition-shadow",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"font-bold text-gray-900 mb-2 flex items-center gap-2",children:[e.jsx("span",{className:"text-blue-600",children:"Q:"})," What makes DeepSeekMath-V2 different from GPT-4 or Claude for math?"]}),e.jsxs("p",{className:"text-gray-700",children:["While GPT-4 and Claude optimize for correct final answers, ",e.jsx("strong",{children:"DeepSeekMath-V2"})," focuses on self-verifiable reasoning. It can verify the comprehensiveness and rigor of its mathematical proofs, identify errors in its own work, and produce step-by-step derivations suitable for formal theorem provingâcapabilities that answer-focused models lack."]})]})}),e.jsx(ie,{className:"bg-gray-50 hover:shadow-md transition-shadow",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"font-bold text-gray-900 mb-2 flex items-center gap-2",children:[e.jsx("span",{className:"text-blue-600",children:"Q:"})," Is DeepSeekMath-V2 open source?"]}),e.jsxs("p",{className:"text-gray-700",children:["Yes! DeepSeekMath-V2 is released under the ",e.jsx("strong",{children:"Apache License 2.0"}),", making it freely available for both research and commercial use. The model weights are available on Hugging Face, and inference code is available on GitHub."]})]})}),e.jsx(ie,{className:"bg-gray-50 hover:shadow-md transition-shadow",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"font-bold text-gray-900 mb-2 flex items-center gap-2",children:[e.jsx("span",{className:"text-blue-600",children:"Q:"})," How does the self-verification work?"]}),e.jsx("p",{className:"text-gray-700",children:"The model is trained with a separate LLM-based verifier that checks proofs for logical consistency, completeness, and rigor. The proof generator uses this verifier as a reward model and is incentivized to identify and fix issues before finalizing. This creates a self-improving feedback loop where the model reviews its own work like a human mathematician would."})]})}),e.jsx(ie,{className:"bg-gray-50 hover:shadow-md transition-shadow",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"font-bold text-gray-900 mb-2 flex items-center gap-2",children:[e.jsx("span",{className:"text-blue-600",children:"Q:"})," What are IMO, Putnam, and CMO?"]}),e.jsxs("p",{className:"text-gray-700",children:[e.jsx("strong",{children:"IMO"})," (International Mathematical Olympiad) is the world's most prestigious high school math competition. ",e.jsx("strong",{children:"Putnam"})," is North America's top university math competition where the median score is typically 0/120. ",e.jsx("strong",{children:"CMO"})," (China Mathematical Olympiad) is China's national olympiad for selecting the IMO team. Gold-level performance on these puts DeepSeekMath-V2 among the world's best mathematical reasoners."]})]})}),e.jsx(ie,{className:"bg-gray-50 hover:shadow-md transition-shadow",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"font-bold text-gray-900 mb-2 flex items-center gap-2",children:[e.jsx("span",{className:"text-blue-600",children:"Q:"})," Can I run DeepSeekMath-V2 locally?"]}),e.jsx("p",{className:"text-gray-700",children:"With 685 billion parameters, running the full model locally requires significant GPU resources (multiple high-end GPUs with substantial VRAM). For most users, accessing the model through cloud APIs, Hugging Face inference endpoints, or DeepSeek's hosted services will be more practical."})]})})]})]}),e.jsx(ie,{className:"mt-10 bg-gray-100 border-gray-300",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"font-bold text-gray-900 mb-3 flex items-center gap-2",children:[e.jsx($r,{className:"h-5 w-5 text-gray-600"}),"Citation"]}),e.jsx("pre",{className:"text-sm text-gray-700 overflow-x-auto bg-white p-4 rounded border",children:`@misc{deepseek-math-v2, 2202 author = {Zhihong Shao, Yuxiang Luo, Chengda Lu, 2203 Z.Z. Ren, Jiewen Hu, Tian Ye, Zhibin Gou, 2204 Shirong Ma, Xiaokang Zhang}, 2205 title = {DeepSeekMath-V2: Towards Self-Verifiable 2206 Mathematical Reasoning}, 2207 year = {2025}, 2208}`})]})}),e.jsx(ie,{className:"mt-8 bg-gradient-to-r from-gray-50 to-blue-50 border-gray-200",children:e.jsx(me,{className:"p-6",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"w-16 h-16 bg-gradient-to-br from-blue-500 to-indigo-600 rounded-full flex items-center justify-center text-white font-bold text-xl",children:"DS"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-gray-900",children:"DeepSeek AI Fan Site"}),e.jsx("p",{className:"text-gray-600 text-sm mb-2",children:"Independent resource for DeepSeek AI enthusiasts"}),e.jsx("p",{className:"text-gray-700 text-sm",children:"This article is part of our ongoing coverage of DeepSeek's AI breakthroughs. We're a fan site dedicated to tracking and explaining DeepSeek's contributions to the AI field. Not affiliated with Hangzhou DeepSeek Art
2208ificial Intelligence Co., Ltd."})]})]})})})]}),e.jsx("div",{className:"mt-12",children:e.jsx(Nn,{})}),e.jsxs("div",{className:"mt-8 flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsxs(Ke,{size:"lg",className:"bg-gradient-to-r from-blue-600 to-indigo-600 hover:from-blue-700 hover:to-indigo-700",onClick:()=>window.open("https://huggingface.co/deepseek-ai/DeepSeek-Math-V2","_blank"),children:[e.jsx(Pn,{className:"mr-2 h-4 w-4"}),"View on Hugging Face"]}),e.jsxs(Ke,{size:"lg",variant:"outline",onClick:()=>t("/blog"),children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]})]})]})}),e.jsx(ar,{isOpen:n,onClose:()=>s(!1)})]})},SJ="/assets/reasoning-era-gemini-deepseek-hero-DzR6R67T.jpg",AJ=()=>{const t=jn(),[n,s]=S.useState(!1),r={"@context":"https://schema.org","@type":"Article",headline:"The Reasoning Era Begins: A Deep Dive into Google Gemini 3 and DeepSeek's Quantum Leap",description:"Explore how Google Gemini 3 and DeepSeek are ushering in the era of 'Deep Thinking' AI with revolutionary reasoning capabilities that go beyond pattern matching.",image:"https://deepseek.ai/og-reasoning-era.png",author:{"@type":"Organization",name:"DeepSeek AI Fan Site"},publisher:{"@type":"Organization",name:"DeepSeek AI Fan Site",logo:{"@type":"ImageObject",url:"https://deepseek.ai/favicon-ds.png"}},datePublished:"2025-12-07",dateModified:"2025-12-07",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/reasoning-era-gemini-3-deepseek"},keywords:["DeepSeek","Google Gemini 3","Reasoning AI","Deep Thinking","System 2 AI","Inference-Time Compute","AI Models 2025"]},a={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What is the difference between System 1 and System 2 AI?",acceptedAnswer:{"@type":"Answer",text:"System 1 AI (traditional LLMs like GPT-4) provides fast, instinctive responses based on pattern matching. System 2 AI (Gemini 3, DeepSeek) uses slow, deliberative reasoning with internal chains of thought, self-checking, and logical verification before delivering answers."}},{"@type":"Question",name:"How does DeepSeek compare to Google Gemini 3?",acceptedAnswer:{"@type":"Answer",text:"DeepSeek focuses on efficiency, coding, and mathematics with open-weights accessibility. Google Gemini 3 excels at multimodal reasoning across video/audio with deep enterprise integration. DeepSeek is often 10x cheaper per token while Gemini 3 offers premium enterprise features."}},{"@type":"Question",name:"What is Inference-Time Compute?",acceptedAnswer:{"@type":"Answer",text:"Inference-Time Compute refers to the computational energy spent thinking about a problem live, rather than relying solely on pre-trained knowledge. This allows AI models to pause, explore different paths, and verify their reasoning before responding."}},{"@type":"Question",name:"Can DeepSeek models run on consumer hardware?",acceptedAnswer:{"@type":"Answer",text:"Yes, DeepSeek's major achievement is efficiency. They've achieved reasoning capabilities comparable to top-tier proprietary models with a smaller parameter footprint, making it possible to run on high-end consumer hardware or affordable cloud instances."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Gemini 3 vs DeepSeek â The Reasoning AI Era"}),e.jsx("meta",{name:"description",content:"Explore how Google Gemini 3 and DeepSeek move AI from pattern matching toward deeper System 2 reasoning and deliberate problem solving."}),e.jsx("meta",{name:"keywords",content:"DeepSeek, Google Gemini 3, Reasoning AI, Deep Thinking AI, System 2 AI, Inference-Time Compute, AI comparison, DeepSeek vs Gemini, AI models 2025, multimodal AI, coding AI"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/reasoning-era-gemini-3-deepseek"}),e.jsx("meta",{property:"og:title",content:"The Reasoning Era: Google Gemini 3 vs DeepSeek Deep Thinking AI"}),e.jsx("meta",{property:"og:description",content:"Discover how Gemini 3 and DeepSeek are shifting AI from pattern matching to true reasoning with System 2 thinking capabilities."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/reasoning-era-gemini-3-deepseek"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-reasoning-era.png"}),e.jsx("meta",{property:"article:published_time",content:"2025-12-07"}),e.jsx("meta",{property:"article:author",content:"DeepSeek AI Fan Site"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"The Reasoning Era: Google Gemini 3 vs DeepSeek"}),e.jsx("meta",{name:"twitter:description",content:"AI stops guessing and starts thinking. Deep dive into the System 2 revolution."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-reasoning-era.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})]}),e.jsx("article",{className:"min-h-screen pt-20 bg-gradient-to-br from-slate-50 via-blue-50 to-indigo-50",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs("nav",{className:"flex items-center gap-2 text-sm text-muted-foreground mb-6",children:[e.jsx("button",{onClick:()=>t("/"),className:"hover:text-primary transition-colors",children:"Home"}),e.jsx(Vr,{className:"h-4 w-4"}),e.jsx("button",{onClick:()=>t("/blog"),className:"hover:text-primary transition-colors",children:"Blog"}),e.jsx(Vr,{className:"h-4 w-4"}),e.jsx("span",{className:"text-foreground",children:"Reasoning Era"})]}),e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6 -ml-4",children:[e.jsx(An,{className:"mr-2 h-4 w-4"})," Back to Blog"]}),e.jsxs("div",{className:"relative rounded-2xl overflow-hidden mb-8 shadow-2xl",children:[e.jsx("img",{src:SJ,alt:"The Reasoning Era: Google Gemini 3 and DeepSeek AI breakthrough",className:"w-full h-64 md:h-96 object-cover"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/20 to-transparent"}),e.jsxs("div",{className:"absolute bottom-0 left-0 right-0 p-6 md:p-8",children:[e.jsxs("div",{className:"flex flex-wrap gap-2 mb-4",children:[e.jsx("span",{className:"px-3 py-1 bg-blue-600 text-white rounded-full text-xs font-medium",children:"AI Technology"}),e.jsx("span",{className:"px-3 py-1 bg-purple-600 text-white rounded-full text-xs font-medium",children:"Reasoning AI"}),e.jsx("span",{className:"px-3 py-1 bg-cyan-600 text-white rounded-full text-xs font-medium",children:"Deep Thinking"})]}),e.jsx("h1",{className:"text-2xl md:text-4xl font-bold text-white leading-tight",children:"The Reasoning Era Begins: A Deep Dive into Google Gemini 3 and DeepSeek's Quantum Leap"})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-4 mb-8 text-sm text-muted-foreground",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ag,{className:"h-4 w-4"}),e.jsx("time",{dateTime:"2025-12-07",children:"December 7, 2025"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(xo,{className:"h-4 w-4"}),e.jsx("span",{children:"15 min read"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ig,{className:"h-4 w-4"}),e.jsx("span",{children:"DeepSeek AI Editorial Team"})]})]}),e.jsx(cn,{}),e.jsxs("div",{className:"bg-gradient-to-r from-blue-600 to-indigo-600 text-white p-6 rounded-xl mb-10 shadow-lg",children:[e.jsxs("h2",{className:"text-xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(d2,{className:"h-5 w-5"})," Key Takeaways"]}),e.jsxs("ul",{className:"space-y-2 text-blue-50",children:[e.jsx("li",{children:'⢠AI shifts from "System 1" (fast pattern matching) to "System 2" (deliberative reasoning)'}),e.jsx("li",{children:"⢠Gemini 3 introduces true multimodal reasoning across video, audio, and text"}),e.jsx("li",{children:"⢠DeepSeek achieves top-tier reasoning at 10x lower cost with open weights"}),e.jsx("li",{children:"⢠Inference-Time Compute replaces Training-Time Compute as the key differentiator"}),e.jsx("li",{children:"⢠Both models feature self-correction mechanisms that verify before responding"})]})]}),e.jsxs("div",{className:"bg-white/80 backdrop-blur p-6 rounded-xl mb-10 border border-slate-200 shadow-sm",children:[e.jsx("h2",{className:"text-lg font-bold mb-4 text-foreground",children:"Table of Contents"}),e.jsxs("nav",{className:"space-y-2 text-sm",children:[e.jsx("a",{href:"#paradigm-shift",className:"block text-primary hover:underline",children:"1. The Paradigm Shift: From System 1 to System 2"}),e.jsx("a",{href:"#gemini-3",className:"block text-primary hover:underline",children:"2. Google Gemini 3: The Multimodal Brain"}),e.jsx("a",{href:"#deepseek",className:"block text-primary hover:underline",children:"3. DeepSeek: The Open Efficiency Monster"}),e.jsx("a",{href:"#comparison",className:"block text-primary hover:underline",children:"4. Comparative Analysis: Which Model Wins?"}),e.jsx("a",{href:"#implications",className:"block text-primary hover:underline",children:"5. The Implications for You"}),e.jsx("a",{href:"#conclusion",className:"block text-primary hover:underline",children:"6. Final Thoughts"}),e.jsx("a",{href:"#faq",className:"block text-primary hover:underline",children:"7. Frequently Asked Questions"})]})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsxs("p",{className:"text-xl text-muted-foreground leading-relaxed",children:["For the past two years, the AI narrative has been dominated by a single metric: ",e.jsx("strong",{children:"scale"}),". Bigger parameters, larger datasets, and massive training cluster
2208s. But as we move deeper into 2025, the narrative has shifted. We have hit the point of diminishing returns on raw size."]}),e.jsxs("p",{className:"text-xl font-semibold text-foreground mt-6",children:["The new frontier isn't about knowing more; it's about ",e.jsx("em",{children:"thinking better"}),"."]}),e.jsxs("p",{className:"text-lg text-muted-foreground mt-4",children:["With the simultaneous arrival of ",e.jsx("strong",{children:"Google Gemini 3"})," and the latest breakthroughs from ",e.jsx("strong",{children:"DeepSeek"}),', we are officially entering the era of "Deep Thinking" or "Reasoning" AI. These are not just chatbots that predict the next likely word; they are engines capable of planning, critiquing, and solving multi-step problems.']}),e.jsx("p",{className:"text-lg text-muted-foreground",children:"Here is the comprehensive breakdown of this massive upgrade and why it changes everything."})]}),e.jsxs("section",{id:"paradigm-shift",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-6 text-foreground flex items-center gap-3",children:[e.jsx(_s,{className:"h-8 w-8 text-blue-600"}),'The Paradigm Shift: From "System 1" to "System 2"']}),e.jsx("p",{className:"text-lg text-muted-foreground mb-6",children:"To understand why Gemini 3 and DeepSeek are such a big deal, we have to look at cognitive psychology."}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6 mb-8",children:[e.jsxs("div",{className:"bg-amber-50 border-l-4 border-amber-500 p-6 rounded-r-xl",children:[e.jsx("h3",{className:"text-xl font-bold text-amber-800 mb-3",children:"System 1 (Traditional LLMs)"}),e.jsx("p",{className:"text-amber-900 font-medium mb-2",children:"Fast, instinctive, and automatic."}),e.jsx("p",{className:"text-amber-800 text-sm",children:`Think of GPT-4 or Gemini 1.5 Pro. You ask a question, and it immediately generates an answer based on pattern matching. It is impressive, but prone to "hallucinations" because it doesn't stop to check its work.`})]}),e.jsxs("div",{className:"bg-emerald-50 border-l-4 border-emerald-500 p-6 rounded-r-xl",children:[e.jsx("h3",{className:"text-xl font-bold text-emerald-800 mb-3",children:"System 2 (The New Models)"}),e.jsx("p",{className:"text-emerald-900 font-medium mb-2",children:"Slow, deliberative, and logical."}),e.jsxs("p",{className:"text-emerald-800 text-sm",children:["This is what Gemini 3 and DeepSeek are introducing. When asked a complex math problem or a coding architecture question, these models ",e.jsx("em",{children:"pause"}),'. They generate internal "chains of thought," explore different paths, reject incorrect logic, and then deliver the final answer.']})]})]}),e.jsx("div",{className:"bg-gradient-to-r from-slate-800 to-slate-900 text-white p-6 rounded-xl",children:e.jsxs("p",{className:"text-lg font-medium",children:["This shift from ",e.jsx("strong",{children:'"Training-Time Compute"'})," (learning facts) to ",e.jsx("strong",{children:'"Inference-Time Compute"'})," (spending energy to think live) is the defining feature of this generation."]})})]}),e.jsxs("section",{id:"gemini-3",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-6 text-foreground flex items-center gap-3",children:[e.jsx(Lt,{className:"h-8 w-8 text-purple-600"}),"Google Gemini 3: The Multimodal Brain"]}),e.jsx("p",{className:"text-lg text-muted-foreground mb-6",children:"Google has been under immense pressure to reclaim the throne from OpenAI and Anthropic. Gemini 3 appears to be that reclamation."}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"bg-white border border-slate-200 p-6 rounded-xl shadow-sm",children:[e.jsx("h3",{className:"text-xl font-bold text-foreground mb-3",children:"1. True Multimodal Reasoning"}),e.jsxs("p",{className:"text-muted-foreground",children:['While previous models could "see" images, Gemini 3 can ',e.jsx("strong",{children:'"reason"'})," across them. You can upload a 20-minute video of a manufacturing process, and Gemini 3 can not only transcribe it but identify safety violations, suggest efficiency improvements, and output the timestamped logic for its conclusions. It connects visual data with textual logic seamlessly."]})]}),e.jsxs("div",{className:"bg-white border border-slate-200 p-6 rounded-xl shadow-sm",children:[e.jsx("h3",{className:"text-xl font-bold text-foreground mb-3",children:"2. Self-Correction Mechanisms"}),e.jsxs("p",{className:"text-muted-foreground",children:["Gemini 3 introduces a re
2208cursive checking loop. In demos, when the model makes a coding error, it recognizes the syntax failure internally ",e.jsx("em",{children:"before"})," showing the user the result, rewrites the code, and presents the clean version. This mimics a human developer's workflow: ",e.jsx("code",{className:"bg-slate-100 px-2 py-1 rounded text-sm",children:"Draft â Test â Fix â Ship"}),"."]})]}),e.jsxs("div",{className:"bg-white border border-slate-200 p-6 rounded-xl shadow-sm",children:[e.jsx("h3",{className:"text-xl font-bold text-foreground mb-3",children:'3. Integration with the "Real World"'}),e.jsxs("p",{className:"text-muted-foreground",children:["Unlike a chatbot trapped in a window, Gemini 3 is designed as an ",e.jsx("strong",{children:'"Agent."'})," Because its reasoning capabilities are higher, Google is granting it more permission to interact with other appsâbooking flights, managing calendars, and executing complex SQL queries within BigQuery without needing a human to double-check every step."]})]})]})]}),e.jsxs("section",{id:"deepseek",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-6 text-foreground flex items-center gap-3",children:[e.jsx(qr,{className:"h-8 w-8 text-cyan-600"}),"DeepSeek: The Open Efficiency Monster"]}),e.jsx("p",{className:"text-lg text-muted-foreground mb-6",children:"While Google aims for the enterprise consumer, DeepSeek (originating from China's premier AI research labs) is revolutionizing the developer and open-weights landscape."}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"bg-gradient-to-r from-cyan-50 to-blue-50 border border-cyan-200 p-6 rounded-xl",children:[e.jsx("h3",{className:"text-xl font-bold text-cyan-800 mb-3",children:'1. Democratizing "Deep Thinking"'}),e.jsxs("p",{className:"text-cyan-900",children:["DeepSeek's major achievement is ",e.jsx("strong",{children:"efficiency"}),'. They have managed to achieve reasoning capabilities comparable to top-tier proprietary models, but with a significantly smaller parameter footprint. This means "Deep Thinking" is no longer reserved for massive data centers; it can arguably run on high-end consumer hardware or affordable cloud instances.']})]}),e.jsxs("div",{className:"bg-gradient-to-r from-cyan-50 to-blue-50 border border-cyan-200 p-6 rounded-xl",children:[e.jsx("h3",{className:"text-xl font-bold text-cyan-800 mb-3",children:"2. The Coding Specialist"}),e.jsxs("p",{className:"text-cyan-900",children:["DeepSeek has laser-focused its training data on code and mathematics. Developers are reporting that the new DeepSeek models don't just complete functions; they ",e.jsx("strong",{children:"understand system architecture"}),". If you ask it to build a chat app, it doesn't just write the UI; it plans the database schema, the WebSocket connections, and the security protocols, explaining ",e.jsx("em",{children:"why"})," it chose those specific technologies."]})]}),e.jsxs("div",{className:"bg-gradient-to-r from-cyan-50 to-blue-50 border border-cyan-200 p-6 rounded-xl",children:[e.jsx("h3",{className:"text-xl font-bold text-cyan-800 mb-3",children:"3. Breaking the Monopoly"}),e.jsxs("p",{className:"text-cyan-900",children:[`The existence of DeepSeek proves that "Reasoning AI" won't be a moat exclusive to Silicon Valley giants. It provides a viable alternative for companies that want to run powerful reasoning models `,e.jsx("strong",{children:"on-premise (locally)"})," for data privacy reasons, rather than sending data to Google or OpenAI."]})]})]})]}),e.jsxs("section",{id:"comparison",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-6 text-foreground flex items-center gap-3",children:[e.jsx(Tf,{className:"h-8 w-8 text-indigo-600"}),"Comparative Analysis: Which Model Wins?"]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full border-collapse bg-white rounded-xl overflow-hidden shadow-lg",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-gradient-to-r from-slate-800 to-slate-900 text-white",children:[e.jsx("th",{className:"p-4 text-left font-bold",children:"Feature"}),e.jsx("th",{className:"p-4 text-left font-bold",children:"Google Gemini 3"}),e.jsx("th",{className:"p-4 text-left font-bold",children:"DeepSeek Models"})]})}),e.jsxs("tbody",{className:"divide-y divide-slate-200",children:[e.jsxs("tr",{className:"hover:bg-slate-50",children:[e.jsx("td",{className:"p-4 font-medium text-foreground",children:"Primary Strength"}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"General Purpose, Multimodal (Video/Audio)"}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"Coding, Math, Logic"})]}),e.jsxs("tr",{className:"hover:bg-slate-50",children:[e.jsx("td",{className:"p-4 font-medium text-foreground",children:"Accessibility"}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"Cloud API / Google Ecosystem"}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"Open Weights / API"})]}),e.jsxs("tr",{className:"hover:bg-slate-50",children:[e.jsx("td",{className:"p-4 font-medium text-foreground",children:"Speed"}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"Variable (Slows for c
2208omplex tasks)"}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"Highly Optimized / Efficient"})]}),e.jsxs("tr",{className:"hover:bg-slate-50",children:[e.jsx("td",{className:"p-4 font-medium text-foreground",children:"Best Use Case"}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"Enterprise workflow, creative analysis, daily assistance"}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"Software engineering, data science, local deployment"})]}),e.jsxs("tr",{className:"hover:bg-slate-50",children:[e.jsx("td",{className:"p-4 font-medium text-foreground",children:"Cost"}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"Premium Enterprise Pricing"}),e.jsx("td",{className:"p-4 text-cyan-600 font-medium",children:"Low cost (often 10x cheaper per token)"})]})]})]})})]}),e.jsxs("section",{id:"implications",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-6 text-foreground flex items-center gap-3",children:[e.jsx(o2,{className:"h-8 w-8 text-orange-600"}),"The Implications for You"]}),e.jsx("p",{className:"text-lg text-muted-foreground mb-6",children:"This upgrade isn't just about better chatbots. It changes how we work."}),e.jsxs("div",{className:"grid md:grid-cols-3 gap-6",children:[e.jsxs("div",{className:"bg-white border border-slate-200 p-6 rounded-xl shadow-sm",children:[e.jsx("div",{className:"w-12 h-12 bg-blue-100 rounded-lg flex items-center justify-center mb-4",children:e.jsx(qr,{className:"h-6 w-6 text-blue-600"})}),e.jsx("h3",{className:"text-lg font-bold text-foreground mb-2",children:"For Developers"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:'The role shifts from "writing code" to "reviewing architecture." With DeepSeek and Gemini 3, you become the manager of an AI that does the heavy lifting.'})]}),e.jsxs("div",{className:"bg-white border border-slate-200 p-6 rounded-xl shadow-sm",children:[e.jsx("div",{className:"w-12 h-12 bg-purple-100 rounded-lg flex items-center justify-center mb-4",children:e.jsx(o2,{className:"h-6 w-6 text-purple-600"})}),e.jsx("h3",{className:"text-lg font-bold text-foreground mb-2",children:"For Businesses"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"The error rate of AI has historically been the barrier to adoption. With self-correcting reasoning models, we can finally trust AI with mission-critical tasks where accuracy is paramount."})]}),e.jsxs("div",{className:"bg-white border border-slate-200 p-6 rounded-xl shadow-sm",children:[e.jsx("div",{className:"w-12 h-12 bg-orange-100 rounded-lg flex items-center justify-center mb-4",children:e.jsx(Iz,{className:"h-6 w-6 text-orange-600"})}),e.jsx("h3",{className:"text-lg font-bold text-foreground mb-2",children:'The "Slow" AI Acceptance'}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Users will need to get used to the idea that a good answer takes time. We are trading milliseconds of latency for massive gains in IQ."})]})]})]}),e.jsxs("section",{id:"conclusion",className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6 text-foreground",children:"Final Thoughts"}),e.jsxs("div",{className:"bg-gradient-to-r from-slate-900 via-blue-900 to-indigo-900 text-white p-8 rounded-2xl",children:[e.jsxs("p",{className:"text-xl leading-relaxed mb-6",children:["The release of ",e.jsx("strong",{children:"Google Gemini 3"})," and the ",e.jsx("strong",{children:"DeepSeek"})," updates marks the moment AI stopped guessing and started ",e.jsx("em",{children:"thinking"}),"."]}),e.jsxs("p",{className:"text-lg leading-relaxed mb-6 text-blue-100",children:["We are no longer looking at a search engine that talks; we are looking at a ",e.jsx("strong",{children:"reasoning engine that solves"}),". Whether you choose the polished ecosystem of Google or the raw, efficient power of DeepSeek, one thing is certain: the intelligence ceiling has just been shattered."]}),e.jsx("p",{className:"text-2xl font-bold text-cyan-300",children:"What will you build now that your AI can truly think?"})]})]}),e.jsxs("section",{id:"faq",className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6 text-foreground",children:"Frequently Asked Questions"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"bg-white border border-slate-200 p-6 rounded-xl",children:[e.jsx("h3",{className:"text-lg font-bold text-foreground mb-2",children:"What is the difference between System 1 and System 2 AI?"}),e.jsx("p",{className:"text-muted-foreground",children:"System 1 AI (traditional LLMs like GPT-4) provides fast, instinctive responses based on pattern matching. System 2 AI (Gemini 3, DeepSeek) uses slow, deliberative reasoning with internal
2208chains of thought, self-checking, and logical verification before delivering answers."})]}),e.jsxs("div",{className:"bg-white border border-slate-200 p-6 rounded-xl",children:[e.jsx("h3",{className:"text-lg font-bold text-foreground mb-2",children:"How does DeepSeek compare to Google Gemini 3?"}),e.jsx("p",{className:"text-muted-foreground",children:"DeepSeek focuses on efficiency, coding, and mathematics with open-weights accessibility. Google Gemini 3 excels at multimodal reasoning across video/audio with deep enterprise integration. DeepSeek is often 10x cheaper per token while Gemini 3 offers premium enterprise features."})]}),e.jsxs("div",{className:"bg-white border border-slate-200 p-6 rounded-xl",children:[e.jsx("h3",{className:"text-lg font-bold text-foreground mb-2",children:"What is Inference-Time Compute?"}),e.jsx("p",{className:"text-muted-foreground",children:"Inference-Time Compute refers to the computational energy spent thinking about a problem live, rather than relying solely on pre-trained knowledge. This allows AI models to pause, explore different paths, and verify their reasoning before responding."})]}),e.jsxs("div",{className:"bg-white border border-slate-200 p-6 rounded-xl",children:[e.jsx("h3",{className:"text-lg font-bold text-foreground mb-2",children:"Can DeepSeek models run on consumer hardware?"}),e.jsx("p",{className:"text-muted-foreground",children:"Yes, DeepSeek's major achievement is efficiency. They've achieved reasoning capabilities comparable to top-tier proprietary models with a smaller parameter footprint, making it possible to run on high-end consumer hardware or affordable cloud instances."})]}),e.jsxs("div",{className:"bg-white border border-slate-200 p-6 rounded-xl",children:[e.jsx("h3",{className:"text-lg font-bold text-foreground mb-2",children:"Which model should I choose for software development?"}),e.jsx("p",{className:"text-muted-foreground",children:"For software development, DeepSeek is often the better choice due to its laser focus on code and mathematics, open-weights accessibility for local deployment, and significantly lower cost per token. It understands system architecture and can plan complete applications."})]})]})]}),e.jsxs("div",{className:"bg-slate-100 p-6 rounded-xl mb-10 border border-slate-200",children:[e.jsx("h3",{className:"text-sm font-bold text-foreground mb-2",children:"Cite this article:"}),e.jsx("p",{className:"text-sm text-muted-foreground font-mono",children:`DeepSeek AI Fan Site. "The Reasoning Era Begins: A Deep Dive into Google Gemini 3 and DeepSeek's Quantum Leap." December 7, 2025. https://deepseek.ai/blog/reasoning-era-gemini-3-deepseek`})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 mb-10",children:[e.jsxs(Ke,{size:"lg",className:"bg-gradient-to-r from-blue-600 to-indigo-600 hover:from-blue-700 hover:to-indigo-700",onClick:()=>window.open("https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop","_blank"),children:[e.jsx(Fs,{className:"mr-2 h-5 w-5"}),"Add to Chrome - It's Free"]}),e.jsx(Ke,{size:"lg",variant:"outline",onClick:()=>s(!0),children:"Join the AI Community"})]}),e.jsx(ar,{isOpen:n,onClose:()=>s(!1)})]})})]})},DJ=()=>{const t=[{label:"Blog",path:"/blog"}],n=[{model:"DeepSeek-V3.2",strength:"General intelligence & agentic workflows",feature:'"Thinking in Tool-Use" for autonomous agents',icon:Os},{model:"DeepSeek-R2 (Pro)",strength:"Advanced reasoning & multilingual logic",feature:"Competitive with GPT-5 and Gemini 3.0 Pro",icon:_s},{model:"DeepSeek-Coder-V3",strength:"Software engineering & technical architecture",feature:"State-of-the-art Python and C++ proficiency",icon:qr},{model:"DeepSeekMath-V2",strength:"Theorem proving & expert-level math",feature:"Gold-level scores on International Math Olympiads",icon:$0}],s=[{question:"What is the difference between DeepSeek-V3.2 and DeepSeek-R2?",answer:"V3.2 is a general-purpose model optimized for speed and daily tasks, while R2 (successor to R1) is a specialized reasoning model designed for deep logic, complex coding, and multilingual reasoning."},{question:"Is DeepSeek really free to use in 2026?",answer:"Yes, DeepSeek provides free access via its web and mobile interfaces. For heavy enterprise use, its API remains significantly more affordable than proprietary alternatives."},{question:"How does DeepSeek handle long documents?",answer:"DeepSeek models feature a 128K token context window, allowing them to summarize entire codebase
2208s, legal documents, or financial reports with high consistency."},{question:"Can I run DeepSeek models locally?",answer:"DeepSeek remains committed to Open Weights, meaning you can download and run many of its models locally using tools like Ollama or LM Studio to ensure 100% data privacy."}],r=[{title:"Reasoning is the new standard",description:"DeepSeek prioritizes how it thinks over just providing an answer."},{title:"Economics drive adoption",description:"High performance at 90% lower costs makes DeepSeek the foundation for the next generation of software."},{title:"Agentic Future",description:"DeepSeek is no longer just a chatbot; it is a framework for autonomous systems."}],a={"@context":"https://schema.org","@type":"Article",headline:"The Ultimate DeepSeek Guide: Mastering the AI Landscape in 2026",description:"Comprehensive guide to DeepSeek AI in 2026. Learn about DeepSeek-V3.2, DeepSeek-R2, architectural innovations, API pricing, and best practices for developers.",image:"https://deepseek.ai/og-image.png",author:{"@type":"Organization",name:"DeepSeek AI"},publisher:{"@type":"Organization",name:"DeepSeek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/favicon.svg"}},datePublished:"2025-12-29",dateModified:"2025-12-29",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-guide-2026"}},i={"@context":"https://schema.org","@type":"FAQPage",mainEntity:s.map(o=>({"@type":"Question",name:o.question,acceptedAnswer:{"@type":"Answer",text:o.answer}}))};return e.jsxs("main",{className:"min-h-screen bg-background",children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek Guide 2026 â V3.2, R2 & Coder Explained"}),e.jsx("meta",{name:"description",content:"Complete DeepSeek 2026 guide: V3.2, R2, Coder, GRPO reasoning, MoE architecture, API pricing and a practical developer setup."}),e.jsx("meta",{name:"keywords",content:"DeepSeek guide 2026, DeepSeek R2, DeepSeek V3.2, DeepSeek Coder, autonomous AI agents, GRPO reasoning, MoE architecture, AI tutorial"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-guide-2026"}),e.jsx("meta",{property:"og:title",content:"The Ultimate DeepSeek Guide: Mastering AI in 2026"}),e.jsx("meta",{property:"og:description",content:"Comprehensive guide to DeepSeek AI. Learn about V3.2, R2, architectural breakthroughs, and developer best practices."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-guide-2026"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"article:published_time",content:"2025-12-29"}),e.jsx("meta",{property:"article:author",content:"DeepSeek AI"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"The Ultimate DeepSeek Guide 2026"}),e.jsx("meta",{name:"twitter:description",content:"Master DeepSeek AI with this comprehensive 2026 guide. V3.2, R2, Coder, and more."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(i)})]}),e.jsxs("article",{className:"container mx-auto px-4 py-8 max-w-4xl",children:[e.jsx(ur,{items:t,currentPage:"DeepSeek Guide 2026"}),e.jsx(cn,{}),e.jsxs("header",{className:"mb-12",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground mb-4",children:[e.jsx("time",{dateTime:"2025-12-29",children:"December 29, 2025"}),e.jsx("span",{children:"â¢"}),e.jsx("span",{children:"15 min read"}),e.jsx("span",{children:"â¢"}),e.jsx("span",{className:"text-primary",children:"Comprehensive Guide"})]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-6 bg-gradient-to-r from-primary via-blue-400 to-primary bg-clip-text text-transparent",children:"The Ultimate DeepSeek Guide: Mastering the AI Landscape in 2026"}),e.jsxs("p",{className:"text-xl text-muted-foreground leading-relaxed",children:['The artificial intelligence landscape has been permanently reshaped by the "DeepSeek Shock" of early 2025. As we enter 2026, ',e.jsx(se,{to:"/what-is-deepseek-ai",className:"text-primary hover:underline",children:"DeepSeek"})," has evolved from a disruptive challenger into a cornerstone of the global AI ecosystem."]})]}),e.jsx(ie,{className:"mb-12 border-primary/30 bg-primary/5",children:e.jsx(me,{className:"p-6",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx(Lt,{className:"h-8 w-8 text-primary flex-shrink-0 mt-1"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold mb-2",children:"Qu
2208ick Summary"}),e.jsxs("p",{className:"text-muted-foreground",children:['For developers, researchers, and enterprises, DeepSeek in 2026 represents the pinnacle of "reasoning-first" AI developmentâproving that frontier-level intelligence matching ',e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"text-primary hover:underline",children:"GPT-5"})," can be achieved with radical architectural efficiency."]})]})]})})}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6",children:"What is DeepSeek AI?"}),e.jsxs("p",{className:"text-lg text-muted-foreground mb-4",children:[e.jsx(se,{to:"/what-is-deepseek-ai",className:"text-primary hover:underline",children:"DeepSeek"})," is a high-performance AI platform specializing in large language models (LLMs) with a core focus on mathematical rigor, coding proficiency, and autonomous reasoning. Developed by a specialized research lab with roots in quantitative finance, DeepSeek has redefined AI economics by slashing training and inference costs by over 90% compared to legacy models."]}),e.jsxs("p",{className:"text-muted-foreground",children:["Learn more about ",e.jsx(se,{to:"/deep-learning-ai",className:"text-primary hover:underline",children:"deep learning"})," and how it powers modern AI systems."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6",children:"The Core Technology: 2026 Innovations"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-8",children:"DeepSeek's dominance in 2026 is powered by three key architectural breakthroughs:"}),e.jsxs("div",{className:"grid gap-6",children:[e.jsx(ie,{className:"border-border/50 hover:border-primary/50 transition-colors",children:e.jsx(me,{className:"p-6",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-3 rounded-lg bg-primary/10",children:e.jsx(yo,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"Advanced Mixture-of-Experts (MoE)"}),e.jsxs("p",{className:"text-muted-foreground",children:["In models like the 671B parameter ",e.jsx(se,{to:"/blog/deepseek-v3-1",className:"text-primary hover:underline",children:"DeepSeek-V3"}),", only about 37 billion parameters are activated for any single task, ensuring lightning-fast performance at minimal cost."]})]})]})})}),e.jsx(ie,{className:"border-border/50 hover:border-primary/50 transition-colors",children:e.jsx(me,{className:"p-6",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-3 rounded-lg bg-primary/10",children:e.jsx(_s,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"Multi-head Latent Attention (MLA)"}),e.jsx("p",{className:"text-muted-foreground",children:"This mechanism reduces memory overhead (KV cache) by over 93%, allowing the model to handle massive context windows of up to 128K tokens with extreme hardware efficiency."})]})]})})}),e.jsx(ie,{className:"border-border/50 hover:border-primary/50 transition-colors",children:e.jsx(me,{className:"p-6",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-3 rounded-lg bg-primary/10",children:e.jsx(Lt,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"Group Relative Policy Optimization (GRPO)"}),e.jsxs("p",{className:"text-muted-foreground",children:["A novel reinforcement learning technique that powers ",e.jsx(se,{to:"/deepseek-r1",className:"text-primary hover:underline",children:"DeepSeek's advanced reasoning"})," without the need for traditional, massive reward models."]})]})]})})})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6",children:"The 2026 Model Lineup: Choosing Your Engine"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-8",children:"DeepSeek now maintains specialized families optimized for distinct high-stakes workloads."}),e.jsx("div",{className:"grid md:grid-cols-2 gap-4 mb-8",children:n.map((o,l)=>e.jsx(ie,{className:"border-border/50 hover:border-primary/50 transition-all hover:shadow-lg",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx(o.icon,{className:"h-5 w-5 text-primary"}),e.jsx("h3",{className:"font-semibold text-lg",children:o.model})]}),e.jsxs("p",{className:"text-sm text-muted-foreground mb-2",children:[e.jsx("strong",{children:"Strength:"})," ",o.strength]}),e.jsx("p",{className:"text-sm text-primary",children:o.feature})]})},l))}),e.jsx(ie,{className:"border-primary/30 bg-gradient-to-r from-primary/5 to-primary/10",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:'The "Speciale" Variant'}),e.jsxs("p",{className:"text-muted-foreground",children:["Introduced in late 2025, the ",e.jsx(se,{to:"/blog/deepseek-r2",className:"text-primary hover:underline",children:"DeepSeek-V3.2-Speciale"})," variant represents the peak of human-expert proficiency, designed for high-end reasoning tasks that rival the most advanced proprietary models in the world."]})]})})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6",children:"DeepSeek for Developers: 2026 Best Practices"}),e.jsxs("p",{className:"text-lg text-muted-foreground mb-8",children:['In 2026, DeepSeek is the "engine of choice" for backend AI agents and large-scale coding projects due to its superior cost-to-
2208performance ratio. Explore the ',e.jsx(se,{to:"/deepseek-api",className:"text-primary hover:underline",children:"DeepSeek API"})," for integration options."]}),e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{children:[e.jsxs("h3",{className:"text-2xl font-semibold mb-4 flex items-center gap-2",children:[e.jsx(Os,{className:"h-6 w-6 text-primary"}),"1. Building Autonomous Agents"]}),e.jsx("p",{className:"text-muted-foreground mb-4",children:`DeepSeek's 2026 models integrate "Thinking in Tool-Use". This allows an AI agent to:`}),e.jsxs("ul",{className:"space-y-2 ml-6",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Vr,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5"}),e.jsx("span",{className:"text-muted-foreground",children:"Generate a reasoning path before calling an external API"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Vr,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5"}),e.jsx("span",{className:"text-muted-foreground",children:"Verify the results of a tool call against its internal logic"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Vr,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5"}),e.jsx("span",{className:"text-muted-foreground",children:"Self-correct if a tool output is inconsistent with the user's objective"})]})]})]}),e.jsxs("div",{children:[e.jsxs("h3",{className:"text-2xl font-semibold mb-4 flex items-center gap-2",children:[e.jsx(Ai,{className:"h-6 w-6 text-primary"}),"2. Cost-Efficient Scaling"]}),e.jsxs("p",{className:"text-muted-foreground mb-4",children:["DeepSeek's API pricing remains a game-changer for 2026 enterprises. Check the ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline",children:"pricing page"})," for current rates."]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsx(ie,{className:"border-green-500/30 bg-green-500/5",children:e.jsxs(me,{className:"p-4",children:[e.jsx("h4",{className:"font-semibold mb-2",children:"Standard Pricing"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Input tokens are roughly 10x cheaper than competitors, starting as low as ",e.jsx("strong",{children:"$0.27 per 1M tokens"})," for cache misses."]})]})}),e.jsx(ie,{className:"border-green-500/30 bg-green-500/5",children:e.jsxs(me,{className:"p-4",children:[e.jsx("h4",{className:"font-semibold mb-2",children:"Context Caching"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:['Hard disk caching and "cache hits" reduce input costs to ',e.jsx("strong",{children:"$0.028 per 1M tokens"}),"."]})]})})]})]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6",children:"Ranked Keywords and Key Terms (2026 Edition)"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"To stay ahead in the 2026 AI market, focus on these essential terms:"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-2",children:"Primary Keywords"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:["DeepSeek R2","DeepSeek V3.2","DeepSeek Coder","Autonomous AI Agents"].map((o,l)=>e.jsx("span",{className:"px-3 py-1 bg-primary/10 text-primary rounded-full text-sm",children:o},l))})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-2",children:"Technical LSI Terms"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:["GRPO Reasoning","Multi-head Latent Attention","Thinking in Tool-Use","FP8 Training","Open-Weight Deployment"].map((o,l)=>e.jsx("span",{className:"px-3 py-1 bg-secondary text-secondary-foreground rounded-full text-sm",children:o},l))})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-2",children:"Infrastructure Terms"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:["Together AI Integration","Ollama Local Inference","Mixture-of-Experts Scaling"].map((o,l)=>e.jsx("span",{className:"px-3 py-1 bg-muted text-muted-foreground rounded-full text-sm",children:o},l))})]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6",children:"Frequently Asked Questions"}),e.jsx("div",{className:"space-y-4",children:s.map((o,l)=>e.jsx(ie,{className:"border-border/50",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h3",{className:"text-lg font-semibold mb-3",children:o.question}),e.jsx("p",{className:"text-muted-foreground",children:o.answer})]})},l))})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6",children:"Conclusion: The Era of Efficient Intelligence"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-8",children:'By 202
22086, DeepSeek has proven that the "scaling laws" of the pastâwhich required infinite GPUs and electricityâwere only part of the story. Through architectural innovation and reasoning-first training, DeepSeek has democratized elite-level AI, making it accessible to every developer and business on the planet.'}),e.jsx(ie,{className:"border-primary/30 bg-gradient-to-br from-primary/5 via-primary/10 to-primary/5",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h3",{className:"text-xl font-semibold mb-4",children:"Key Takeaways for 2026"}),e.jsx("div",{className:"space-y-4",children:r.map((o,l)=>e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary/20 flex items-center justify-center flex-shrink-0",children:e.jsx("span",{className:"text-primary font-bold",children:l+1})}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold",children:o.title}),e.jsx("p",{className:"text-sm text-muted-foreground",children:o.description})]})]},l))})]})})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Articles"}),e.jsxs("div",{className:"grid md:grid-cols-3 gap-4",children:[e.jsx(se,{to:"/blog/deepseek-r2",className:"group",children:e.jsx(ie,{className:"h-full border-border/50 hover:border-primary/50 transition-all",children:e.jsxs(me,{className:"p-4",children:[e.jsx("h3",{className:"font-semibold group-hover:text-primary transition-colors",children:"DeepSeek-R2 Deep Dive"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"Everything about the R2 reasoning model"})]})})}),e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"group",children:e.jsx(ie,{className:"h-full border-border/50 hover:border-primary/50 transition-all",children:e.jsxs(me,{className:"p-4",children:[e.jsx("h3",{className:"font-semibold group-hover:text-primary transition-colors",children:"DeepSeek vs ChatGPT"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"Complete comparison guide"})]})})}),e.jsx(se,{to:"/deepseek-coder",className:"group",children:e.jsx(ie,{className:"h-full border-border/50 hover:border-primary/50 transition-all",children:e.jsxs(me,{className:"p-4",children:[e.jsx("h3",{className:"font-semibold group-hover:text-primary transition-colors",children:"DeepSeek Coder"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"AI-powered coding assistant"})]})})})]})]}),e.jsxs("section",{className:"text-center py-12 border-t border-border",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Ready to Experience DeepSeek AI?"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Start building with the most efficient AI platform available today."}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-4",children:[e.jsx(se,{to:"/deepseek-chat",children:e.jsxs(Ke,{size:"lg",className:"gap-2",children:["Try DeepSeek Chat ",e.jsx(wn,{className:"h-4 w-4"})]})}),e.jsx(se,{to:"/deepseek-api",children:e.jsxs(Ke,{size:"lg",variant:"outline",className:"gap-2",children:[e.jsx(W0,{className:"h-4 w-4"})," Explore the API"]})})]})]})]})]})},IJ=()=>{const[t,n]=S.useState(!1),s=jn(),r={"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://deepseek.ai/blog/deepseek-mhc-manifold-constrained-hyper-connections",headline:"DeepSeek's mHC: The 'Striking Breakthrough' That Could Reshape How AI Models Scale",description:"DeepSeek's new Manifold-Constrained Hyper-Connections (mHC) training method is being called a 'striking breakthrough' by analysts. Learn how this innovation enables larger, more stable AI models with minimal overhead.",image:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png",width:1200,height:630},author:{"@type":"Organization",name:"DeepSeek Research Team",url:"https://deepseek.ai/about"},publisher:{"@type":"Organization",name:"DeepSeek",logo:{"@type":"ImageObject",url:"https://deepseek.ai/favicon.svg"}},datePublished:"2026-01-02T10:00:00Z",dateModified:"2026-01-02T10:00:00Z",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-mhc-manifold-constrained-hyper-connections"},articleSection:"AI Research",keywords:"DeepSeek mHC, Manifold-Constrained Hyper-Connections, AI training, LLM scaling, residual connections, Liang Wenfeng, DeepSeek V4, transformer architecture",wordCount:"1500",inLanguage:"en-US"},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeek mHC Breakthrough",item:"https://deepseek.ai/blog/deepseek-mhc-manifold-constrained-hyper-connections"}]},{"@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What is DeepSeek mHC?",acceptedA
2208nswer:{"@type":"Answer",text:"mHC (Manifold-Constrained Hyper-Connections) is DeepSeek's new AI training method that enables models to share richer internal communication while preserving training stability. It extends residual connections by creating multiple information streams with mathematical constraints to prevent instability at scale."}},{"@type":"Question",name:"Why is mHC considered a breakthrough?",acceptedAnswer:{"@type":"Answer",text:"Analysts call mHC a 'striking breakthrough' because it solves a fundamental problem in AI scaling: as models grow larger, they become unstable. mHC allows models to scale without breaking, with only 6-7% additional training overhead. This could shape 'the evolution of foundational models.'"}},{"@type":"Question",name:"Will mHC be used in DeepSeek R2 or V4?",acceptedAnswer:{"@type":"Answer",text:"While the paper doesn't mention R2, analysts believe mHC will 'definitely be implemented in their new model.' Some suggest it may form the backbone of DeepSeek's V4 model rather than a standalone R2 release."}},{"@type":"Question",name:"Who developed mHC?",acceptedAnswer:{"@type":"Answer",text:"mHC was developed by 19 DeepSeek researchers, co-authored by founder and CEO Liang Wenfeng. The paper was published on December 31, 2025 (arxiv:2512.24880) and immediately generated significant interest in the AI research community."}}]}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek mHC Breakthrough â AI Scaling Explained"}),e.jsx("meta",{name:"description",content:"DeepSeek mHC explained: how Manifold-Constrained Hyper-Connections may help larger AI models scale with better stability and minimal overhead."}),e.jsx("meta",{name:"keywords",content:"DeepSeek mHC, Manifold-Constrained Hyper-Connections, AI training method, LLM scaling, residual connections, Liang Wenfeng, DeepSeek V4, DeepSeek R2, transformer architecture, AI breakthrough 2026"}),e.jsx("meta",{name:"author",content:"DeepSeek Research Team"}),e.jsx("meta",{name:"robots",content:"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-mhc-manifold-constrained-hyper-connections"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:title",content:"DeepSeek's mHC: The 'Striking Breakthrough' That Could Reshape AI Model Scaling"}),e.jsx("meta",{property:"og:description",content:"DeepSeek's new Manifold-Constrained Hyper-Connections (mHC) training method is being called a 'striking breakthrough' by analysts. Learn how this innovation enables larger, more stable AI models."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-mhc-manifold-constrained-hyper-connections"}),e.jsx("meta",{property:"og:site_name",content:"DeepSeek AI"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{property:"og:locale",content:"en_US"}),e.jsx("meta",{property:"article:published_time",content:"2026-01-02T10:00:00Z"}),e.jsx("meta",{property:"article:modified_time",content:"2026-01-02T10:00:00Z"}),e.jsx("meta",{property:"article:author",content:"DeepSeek Research Team"}),e.jsx("meta",{property:"article:section",content:"AI Research"}),e.jsx("meta",{property:"article:tag",content:"DeepSeek"}),e.jsx("meta",{property:"article:tag",content:"mHC"}),e.jsx("meta",{property:"article:tag",content:"AI Training"}),e.jsx("meta",{property:"article:tag",content:"Machine Learning"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek's mHC: The 'Striking Breakthrough' That Could Reshape AI Model Scaling"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek's new Manifold-Constrained Hyper-Connections (mHC) training method is being called a 'striking breakthrough' by analysts."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:site",content:"@DeepSeekAI"}),e.jsx("meta",{name:"twitter:creator",content:"@DeepSeekAI"}),e.jsx("meta",{name:"theme-color",content:"#1a1a1a"}),e.jsx("meta",{name:"msapplication-TileColor",content:"#1a1a1a"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsxs("main",{className:"min-h-screen bg-gradient-to-br from-primary/5 via-background to-secondary/5",children:[e.jsxs("div",{className:"container mx-auto px-4 py-8 max-w-4xl",children:[e.jsx("nav",{className:"mb-8","aria-label":"Breadcrumb",children:e.jsxs("ol",{className:"flex items-center space-x-2 text-sm text-muted-foreground",children:[e.jsx("li",{children:e.jsx("a",{href:"/",className:"hover:text-primary transition-colors",children:"Home"})}),e.jsx("li",{children:"/"}),e.jsx("li",{children:e.jsx("a",{href:"/blog",className:"hover:text-primary transition-colors",children:"Blog"})}),e.jsx("li",{children:"/"}),e.jsx("li",{className:"text-foreground",children:"DeepSeek mHC Breakthrough"})]})}),e.jsx(cn,{}),e.jsxs("article",{className:"prose prose-lg max-w-none mt-8",children:[e.jsxs("header",{className:"mb-8",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4 flex-wrap",children:[e.jsx("span",{className:"bg-primary/10 text-primary px-3 py-1 rounded-full text-sm font-medium",children:"AI Research"}),e.jsx("span",{className:"bg-green-500/10 text-green-600 dark:text-green-400 px-3 py-1 rounded-full text-sm font-medium",children:"Breaking News"}),e.jsx("time",{dateTime:"2026-01-02",className:"text-muted-foreground text-sm",children:"January 2, 2026"})]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-foreground mb-6 leading-tight",children:"DeepSeek's mHC: The 'Striking Breakthrough' That Could Reshape How AI Models Scale"}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed mb-6",children:'DeepSeek kicked off 2026 with a research paper that analysts are calling a "striking breakthrough." Their new Manifold-Constrained Hyper-Connections (mHC) method could fundamentally change how AI models are trained and scaledâwith implications for the entire industry.'}),e.jsxs("div",{className:"flex items-center gap-4 mb-8 flex-wrap",children:[e.jsxs(Ke,{variant:"outline",size:"sm",className:"gap-2",children:[e.jsx(G0,{className:"h-4 w-4"}),"Share Article"]}),e.jsxs(Ke,{variant:"outline",size:"sm",className:"gap-2",children:[e.jsx($r,{className:"h-4 w-4"}),"7 min read"]})]})]}),e.jsxs("div",{className:"bg-primary/5 border border-primary/20 rounded-xl p-6 mb-8",children:[e.jsxs("h2",{className:"text-lg font-bold mb-4 flex items-center gap-2",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary"}),"Key Highlights"]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"bg-primary/10 p-2 rounded-lg",children:e.jsx(_s,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-sm",children:"19 Researchers"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Including founder Liang Wenfeng"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"bg-primary/10 p-2 rounded-lg",children:e.jsx(R1,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-sm",children:"3B, 9B, 27B Parameters"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Tested at multiple scales"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"bg-primary/10 p-2 rounded-lg",children:e.jsx(Wo,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-sm",children:"Only 6-7% Overhead"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Minimal training cost increase"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"bg-primary/10 p-2 rounded-lg",children:e.jsx(Lt,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-sm",children:"arxiv:2512.24880"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Published Dec 31, 2025"})]})]})]})]}),e.jsxs("div",{className:"prose prose-lg max-w-none",children:[e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"What Is mHC and Why Does It Matter?"}),e.jsxs("p",{className:"text-muted-foreground mb-4",children:["Modern AI models like LLMs are built by stacking hundreds of layers. Each layer processes information and passes it forward. Training such deep systems is extremely difficultânot because of lack of data or compute, but because ",e.jsx("strong",{children:"information can easily become unstable"})," as it moves through many layers."]}),e.jsxs("p",{className:"text-muted-foreground mb-4",children:["DeepSeek's paper focuses on a critical question: ",e.jsx("em",{children:"how should information flow between layers so that models can grow larger without breaking?"})]}),e.jsxs("div",{className:"bg-card border rounded-lg p-6 mb-6",children:[e.jsx("h3",{className:"text-lg font-semibold mb-3",children:"The Core Innovation"}),e.jsxs("p",{className:"text-muted-foreground mb-3",children:[e.jsx("strong",{children:"Manifold-Constrained Hyper-Connections (mHC)"})," extends residual connections by creating multiple internal streams of information. Instead of passing a single vector forward, the model maintains several versions of the same information that can interactâbut with strict mathematical constraints."]}),e.jsx("p",{className:"text-muted-foreground",children:"Think of it like a multi-lane highway with intersections. Cars can change lanes, merge, or splitâincreasing flexibility. But the total amount of traffic (information) must remain constant. Nothing can explode or vanish."})]}),e.jsxs("blockquote",{className:"border-l-4 border-primary pl-6 py-2 my-6 bg-primary/5 rounded-r-lg",children:[e.jsx("p",{className:"text-muted-foreground italic",children:'"The approach is a striking breakthrough... DeepSeek can once again bypass compute bottlenecks and unlock leaps in intelligence."'}),e.jsx("footer",{className:"text-sm text-muted-foreground mt-2",children:"â Wei Sun, Principal Analyst for AI at Counterpoint Research"})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"Why Previous Approaches Failed at Scale"}),e.jsxs("p",{className:"text-muted-foreground mb-4",children:["Standard ",e.jsx("strong",{children:"residual connections"})," (introduced by ResNet) are the backbone of modern AI. They allow each layer to pass its input forward unchanged while only adding a small learned update. This makes training stable even when models become very deep."]}),e.jsxs("p",{className:"text-muted-foreground mb-4",children:[e.jsx("strong",{children:"Hyper-Connections"})," extended this idea by creating multiple parallel streams. In theory, this increases flexibility and allows information to travel more efficiently. In practice, it caused problems:"]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4 mb-6",children:[e.jsxs(ie,{className:"p-6 border-red-200 dark:border-red-800",children:[e.jsx("h3",{className:"font-semibold mb-2 text-red-600 dark:text-red-400",children:"â The Problem"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"As layers stack, mixing operations multiply together. Small imbalances grow larger. Signals become too strong or too weak. Training becomes unstable and runs fail."})]}),e.jsxs(ie,{className:"p-6 border-green-200 dark:border-green-800",children:[e.jsx("h3",{className:"font-semibold mb-2 text-green-600 dark:text-green-400",children:"â mHC Solution"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Every mixing step is mathematically constrained. Information can be redistributed, but the total amount must remain constant. Even after hundreds of layers, information flow stays predictable."})]})]}),e.jsxs("p",{className:"text-muted-foreground mb-6",children:["DeepSeek observed that the problem isn't multi-stream connections themselvesâthe issue is that ",e.jsx("strong",{children:"nothing controls how information is mixed"}),". mHC adds those guardrails."]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"What the Experiments Show"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"The DeepSeek team tested mHC on models with 3 billion, 9 billion, and 27 billion parameters. The results:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 mb-6 text-muted-foreground",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"mHC trains smoothly"})," while unconstrained Hyper-Connections often become unstable"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Lower loss"})," and better performance across reasoning and language benchmarks"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Gains persist"})," as models scale from small to very large sizes"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Only 6-7% training overhead"}),"ânegligible for large-scale models"]})]}),e.jsxs("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-6 mb-6",children:[e.jsx("h3",{className:"text-lg font-semibold text-blue-800 dark:text-blue-200 mb-2",children:"Expert Analysis"}),e.jsx("p",{className:"text-blue-700 dark:text-blue-300 mb-3",children:'Prof. Quan Long of the Hong Kong University of Science and Technology called the findings "very significant for transformer architecture made for LLMs."'}),e.jsx("p",{className:"text-blue-700 dark:text-blue-300",children:'Lian Jye Su, Chief Analyst at Omdia, expects a "ripple effect" across the industry, with rival AI labs developing their own versions of the approach.'})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"What This Means for DeepSeek R2 and V4"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"The paper's timing has raised eyebrows. DeepSeek previously published foun
2208dational training research ahead of its R1 model launch. But analysts are divided on what comes next:"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4 mb-6",children:[e.jsxs(ie,{className:"p-6",children:[e.jsx("h3",{className:"font-semibold mb-2",children:"R2 Coming Soon?"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:`Lian Jye Su suggests DeepSeek's track record means the new architecture will "definitely be implemented in their new model."`})]}),e.jsxs(ie,{className:"p-6",children:[e.jsx("h3",{className:"font-semibold mb-2",children:"Or Straight to V4?"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:`Wei Sun is more cautious: "There is most likely no standalone R2 coming." The technique could form the backbone of DeepSeek's V4 model instead.`})]})]}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"R2 was originally expected in mid-2025 but was delayed after founder Liang Wenfeng expressed dissatisfaction with its performance. Chip shortages have also complicated development."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"Industry Implications: Open-Source as Strategy"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"By publishing this research openly, DeepSeek signals confidence. As Lian Jye Su notes:"}),e.jsx("blockquote",{className:"border-l-4 border-primary pl-6 py-2 my-6 bg-primary/5 rounded-r-lg",children:e.jsx("p",{className:"text-muted-foreground italic",children:'"The willingness to share important findings with the industry while continuing to deliver unique value through new models showcases a newfound confidence in the Chinese AI industry. Openness is embraced as a strategic advantage and key differentiator."'})}),e.jsx("p",{className:"text-muted-foreground mb-6",children:`This echoes DeepSeek's "Sputnik moment" in January 2025, when R1 showed that competitive AI could be built at a fraction of the cost. mHC could be the next chapter in that storyâa fundamental improvement that benefits the entire field while cementing DeepSeek's position at the frontier.`})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"Key Takeaways"}),e.jsx("div",{className:"bg-primary/10 border border-primary/20 rounded-lg p-6 mb-6",children:e.jsxs("ul",{className:"space-y-3 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-primary font-bold",children:"1."}),e.jsxs("span",{children:[e.jsx("strong",{children:"mHC enables stable scaling"}),"âmodels can grow larger without training instability"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-primary font-bold",children:"2."}),e.jsxs("span",{children:[e.jsx("strong",{children:"Minimal overhead"}),"âonly 6-7% extra training cost for significant performance gains"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-primary font-bold",children:"3."}),e.jsxs("span",{children:[e.jsx("strong",{children:"Architecture matters"}),"âhow layers connect can be as important as what happens inside them"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-primary font-bold",children:"4."}),e.jsxs("span",{children:[e.jsx("strong",{children:"Open research strategy"}),"âDeepSeek continues to share breakthroughs openly"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-primary font-bold",children:"5."}),e.jsxs("span",{children:[e.jsx("strong",{children:"Next model incoming"}),"âmHC likely forms the foundation for V4 or a future R2 release"]})]})]})})]})]})]}),e.jsx(Nn,{}),e.jsxs("div",{className:"mt-12 flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsxs(Ke,{onClick:()=>window.open("https://arxiv.org/abs/2512.24880","_blank"),size:"lg",className:"gap-2",children:["Read the Paper",e.jsx(Pn,{className:"h-4 w-4"})]}),e.jsxs(Ke,{variant:"outline",size:"lg",onClick:()=>s("/blog"),children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]})]})]}),e.jsx(ar,{isOpen:t,onClose:()=>n(!1)})]})]})}
2208,CJ="/assets/deepseek-engram-hero-B4J3JpwO.jpg",_J=()=>{const t=jn(),[n,s]=S.useState(!1),r=[{label:"Blog",path:"/blog"}],a=[{icon:_s,title:"Engram Module",description:"New conditional memory layer for O(1) knowledge lookup"},{icon:Lt,title:"U-Shaped Scaling Law",description:"20-25% memory allocation optimal for performance"},{icon:_p,title:"27B Parameters",description:"Outperforms MoE baseline under equal conditions"},{icon:c2,title:"<3% Overhead",description:"100B parameters offloadable to CPU/SSD"},{icon:u2,title:"Reasoning Boost",description:"Frees early layers for deeper reasoning"},{icon:Cu,title:"2.9k+ GitHub Stars",description:"Strong community reception and interest"}],i=[{id:"problem",title:"The Problem: Transformer's Memory Limitation"},{id:"engram",title:"Enter Engram: The 'Electronic Brain' Module"},{id:"architecture",title:"Core Architecture Deep Dive"},{id:"optimal-allocation",title:"The Optimal Memory Allocation (20-25%)"},{id:"scaling-law",title:"The U-Shaped Scaling Law Discovery"},{id:"reasoning",title:"Why Reasoning and Math Improve"},{id:"long-context",title:"Long-Context Benefits"},{id:"hardware",title:"Hardware Cost Implications"},{id:"cross-language",title:"Cross-Language Generalization"},{id:"v4-speculation",title:"Could This Be DeepSeek V4?"},{id:"github",title:"GitHub Repository & Resources"},{id:"faq",title:"Frequently Asked Questions"}],o={"@context":"https://schema.org","@graph":[{"@type":"TechArticle",headline:"DeepSeek Engram â V4 Memory Architecture Explained",alternativeHeadline:"Conditional Memory via Scalable Lookup: A New Axis of Sparsity for Large Language Models",description:"DeepSeek's Engram paper introduces a revolutionary conditional memory architecture with O(1) lookup, 20-25% optimal memory allocation, and <3% offloading overhead. Could this be DeepSeek V4?",image:"https://deepseek.ai/og-image.png",datePublished:"2026-01-12",dateModified:"2026-01-19",author:{"@type":"Organization",name:"DeepSeek AI Fan Site"},publisher:{"@type":"Organization",name:"DeepSeek AI Fan Site",logo:{"@type":"ImageObject",url:"https://deepseek.ai/favicon.svg"}},mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-engram-v4-architecture"},keywords:["DeepSeek Engram","DeepSeek V4","Liang Wenfeng","Transformer architecture","MoE","conditional memory","AI research","Sparsity Allocation Law","N-gram embeddings","O(1) lookup","GPU memory optimization"]},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeek Engram V4 Architecture"}]},{"@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What is DeepSeek Engram?",acceptedAnswer:{"@type":"Answer",text:"Engram is a new conditional memory module proposed by DeepSeek and Peking University that provides O(1) knowledge lookup capabilities, solving the memory limitations of traditional Transformer architectures."}},{"@type":"Question",name:"Is Engram the architecture for DeepSeek V4?",acceptedAnswer:{"@type":"Answer",text:"While not officially confirmed, the paper's innovations and Liang Wenfeng's involvement suggest Engram could be integrated into DeepSeek's next flagship V4 model."}},{"@type":"Question",name:"How does Engram differ from MoE?",acceptedAnswer:{"@type":"Answer",text:"While MoE solves 'how to calculate less', Engram solves 'don't calculate blindly' by providing deterministic knowledge lookup with O(1) complexity for static patterns."}},{"@type":"Question",name:"What is the optimal memory-to-compute ratio for Engram?",acceptedAnswer:{"@type":"Answer",text:"According to the paper, 20-25% of sparse parameters should be allocated to memory (Engram), with the rest going to MoE computation. This is called the Sparsity Allocation Law."}},{"@type":"Question",name:"Can Engram be offloaded to CPU/SSD?",acceptedAnswer:{"@type":"Answer",text:"Yes, Engram's deterministic retrieval mechanism supports offloading up to 100B parameters to CPU or SSD with less than 3% inference overhead, thanks to asynchronous prefetching."}},{"@type":"Question",name:"Does Engram help with reasoning tasks?",acceptedA
2208nswer:{"@type":"Answer",text:"Yes, by offloading local pattern work to memory lookup, Engram frees early Transformer layers to behave like much deeper layers, improving reasoning, math, and coding abilities."}}]}]},l=c=>{const d=document.getElementById(c);d&&d.scrollIntoView({behavior:"smooth"})};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek Engram â V4 Memory Architecture Explained"}),e.jsx("meta",{name:"description",content:"DeepSeek Engram explained: conditional memory, O(1) lookup, 20-25% optimal allocation and how the architecture could influence DeepSeek V4."}),e.jsx("meta",{name:"keywords",content:"DeepSeek Engram, DeepSeek V4, Liang Wenfeng, Transformer architecture, MoE, conditional memory, AI research, Sparsity Allocation Law, N-gram embeddings, O(1) lookup"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-engram-v4-architecture"}),e.jsx("meta",{property:"og:title",content:"DeepSeek Engram â V4 Memory Architecture Explained"}),e.jsx("meta",{property:"og:description",content:"New paper reveals Engram module with 20-25% optimal memory allocation and <3% offloading overhead. Could this be DeepSeek V4?"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-engram-v4-architecture"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"article:published_time",content:"2026-01-12"}),e.jsx("meta",{property:"article:modified_time",content:"2026-01-19"}),e.jsx("meta",{property:"article:author",content:"DeepSeek AI Fan Site"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek Engram: V4 Architecture Revealed?"}),e.jsx("meta",{name:"twitter:description",content:"Liang Wenfeng co-authors new paper on Engram - conditional memory with O(1) lookup and 20-25% optimal allocation."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(o)})]}),e.jsx("main",{className:"min-h-screen pt-20 bg-gradient-to-br from-blue-50 via-white to-purple-50",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsx(ur,{items:r,currentPage:"DeepSeek Engram V4 Architecture"}),e.jsxs(Ke,{variant:"ghost",className:"mb-6 text-blue-600 hover:text-blue-800",onClick:()=>t("/blog"),children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"prose prose-lg max-w-none",children:[e.jsx("div",{className:"not-prose mb-8 -mx-4 sm:mx-0",children:e.jsx("img",{src:CJ,alt:"DeepSeek Engram neural network architecture visualization showing O(1) memory lookup pathways",className:"w-full h-64 md:h-80 object-cover rounded-lg shadow-lg"})}),e.jsxs("header",{className:"mb-12",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-4",children:[e.jsx("span",{className:"px-3 py-1 bg-purple-100 text-purple-700 rounded-full text-sm font-medium",children:"AI Research"}),e.jsx("span",{className:"px-3 py-1 bg-red-100 text-red-700 rounded-full text-sm font-medium",children:"Breaking News"}),e.jsxs("span",{className:"flex items-center gap-1 text-gray-500 text-sm",children:[e.jsx(xo,{className:"h-4 w-4"}),"~10 min read"]}),e.jsx("time",{className:"text-gray-500 text-sm",dateTime:"2026-01-12",children:"January 12, 2026"})]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-gray-900 leading-tight mb-6",children:"DeepSeek Engram â V4 Memory Architecture Explained"}),e.jsxs("p",{className:"text-xl text-gray-600 leading-relaxed",children:['A groundbreaking paper titled "',e.jsx("strong",{children:"Conditional Memory via Scalable Lookup: A New Axis of Sparsity for Large Language Models"}),'," signed by Liang Wenfeng, proposes the ',e.jsx("strong",{children:"Engram"})," module â a new conditional memory architecture that provides O(1) knowledge lookup, potentially fixing Transformer's fundamental memory limitations and hinting at DeepSeek V4's architecture."]})]}),e.jsx(ie,{className:"bg-gradient-to-r from-blue-600 to-purple-600 border-0 mb-10 not-prose text-white",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h2",{className:"text-lg font-bold mb-4",children:"ð Key Metrics at a Glance"}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 text-center",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-3xl font-bold",children:"27B"}),e.jsx("div",{className:"text-sm opacity-90",children:"Parameters outperforms baseline"})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-3xl font-bold",children:"20-25%"}),e.jsx("div",{className:"text-sm opacity-90",children:"Optimal memory allocation"})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-3xl font-bold",children:"<3%"}),e.jsx("div",{className:"text-sm opacity-90",children:"Overhead for 100B offloading"})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-3xl font-bold",children:"2.9k+"}),e.jsx("div",{className:"text-sm opacity-90",children:"GitHub stars"})]})]})]})}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mb-12 not-prose",children:a.map((c,d)=>e.jsx(ie,{className:"border-2 border-purple-100 hover:border-purple-200 transition-colors",children:e.jsxs(me,{className:"p-4 flex items-start gap-4",children:[e.jsx("div",{className:"p-2 bg-purple-100 rounded-lg",children:e.jsx(c.icon,{className:"h-6 w-6 text-purple-600"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-gray-900",children:c.title}),e.jsx("p",{className:"text-sm text-gray-600",children:c.description})]})]})},d))}),e.jsx(ie,{className:"bg-gray-50 border-gray-200 mb-10 not-prose",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h2",{className:"text-lg font-bold text-gray-900 mb-4 flex items-center gap-2",children:[e.jsx($r,{className:"h-5 w-5"}),"Table of Contents"]}),e.jsx("nav",{className:"grid md:grid-cols-2 gap-2",children:i.map((c,d)=>e.jsxs("button",{onClick:()=>l(c.id),className:"text-left text-blue-600 hover:text-blue-800 hover:underline text-sm py-1",children:[d+1,". ",c.title]},c.id))})]})}),e.jsx(ie,{className:"bg-gradient-to-r from-purple-50 to-blue-50 border-purple-200 mb-10 not-prose",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h2",{className:"text-lg font-bold text-purple-900 mb-3",children:"ð Quick Summary"}),e.jsxs("p",{className:"text-gray-700",children:["DeepSeek, in collaboration with Peking University, has released a 33-page paper introducing",e.jsx("strong",{children:" Engram"}),` â a new sparse memory module that complements Mixture of Experts (MoE). While MoE solves "how to calculate less," Engram solves "don't calculate blindly" by providing deterministic O(1) knowledge lookup for static patterns like entity names and fixed phrases. The paper discovers a `,e.jsx("strong",{children:"Sparsity Allocation Law"}),": 20-25% of sparse parameters should go to memory, with the rest to computation."]})]})}),e.jsxs("section",{id:"problem",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"The Problem: Transformer's Memory Limitation"}),e.jsxs("p",{children:["Currently, ",e.jsx("strong",{children:"Mixture of Experts (MoE)"}),` has become the mainstream architecture for large language models, powering systems like DeepSeek V3, Mixtral, and others. However, it's fundamentally still based on the Transformer architecture, which lacks a native "knowledge lookup" mechanism.`]}),e.jsxs("p",{children:["This means that many tasks that should be solved
2208in ",e.jsx("strong",{children:"O(1) time"}),' â like retrieving factual information â have to be "simulated" through extensive computations. The model essentially has to compute its way to remember things that could simply be looked up.']}),e.jsx(ie,{className:"bg-amber-50 border-amber-200 my-6 not-prose",children:e.jsx(me,{className:"p-5",children:e.jsxs("p",{className:"text-amber-800 font-medium",children:["ð¡ ",e.jsx("strong",{children:"Example:"}),' To identify the entity "Diana, Princess of Wales," an LLM has to consume multi-layer attention and FFN to gradually combine features. In theory, this process could be completed through a single knowledge lookup operation â like looking up a word in a dictionary.']})})}),e.jsx("p",{children:'The paper argues that this is fundamentally wasteful: using expensive compute cycles to repeatedly "rediscover" static knowledge that could be retrieved in constant time.'})]}),e.jsxs("section",{id:"engram",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:'Enter Engram: The "Electronic Brain" Module'}),e.jsxs("p",{children:["The term ",e.jsx("strong",{children:"Engram"}),` originates from neurology, meaning "memory trace" â an extensible and retrievable memory unit. DeepSeek's implementation modernizes the classic "hashed N-gram embedding" technique and transforms it into an extensible lookup table module inserted into Transformer's middle layers.`]}),e.jsx("h3",{className:"text-2xl font-semibold text-gray-900 mt-8 mb-4",children:"Two Types of Tasks in Language Modeling"}),e.jsx("p",{children:"The paper clearly divides language modeling into two types of subtasks:"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6 my-6 not-prose",children:[e.jsx(ie,{className:"border-blue-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h4",{className:"font-bold text-blue-900 mb-2",children:"ð§ Combination & Reasoning"}),e.jsx("p",{className:"text-sm text-gray-600 mb-3",children:"Requires dynamic computation and attention:"}),e.jsxs("ul",{className:"text-sm text-gray-700 space-y-1",children:[e.jsx("li",{children:"⢠Context relationships"}),e.jsx("li",{children:"⢠Long-range dependencies"}),e.jsx("li",{children:"⢠Logical reasoning"}),e.jsx("li",{children:"⢠Chained reasoning"}),e.jsx("li",{children:"⢠Novel combinations"})]})]})}),e.jsx(ie,{className:"border-green-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h4",{className:"font-bold text-green-900 mb-2",children:"ð Pattern Retrieval"}),e.jsx("p",{className:"text-sm text-gray-600 mb-3",children:"Can be solved with O(1) lookup:"}),e.jsxs("ul",{className:"text-sm text-gray-700 space-y-1",children:[e.jsx("li",{children:"⢠Entity names"}),e.jsx("li",{children:"⢠Fixed collocations"}),e.jsx("li",{children:"⢠Common phrases"}),e.jsx("li",{children:"⢠Grammar fragments"}),e.jsx("li",{children:"⢠Idiomatic expressions"})]})]})})]}),e.jsx("p",{children:'Engram transfers these "local static patterns" to a cheap knowledge lookup primitive, quickly providing candidate information through deterministic lookup tables. The context then decides whether to adopt it through a gating mechanism.'})]}),e.jsxs("section",{id:"architecture",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"Core Architecture Deep Dive"}),e.jsxs("p",{children:["The Engram module processes each position in two functional stages: ",e.jsx("strong",{children:"Retrieval"})," and ",e.jsx("strong",{children:"Fusion"}),"."]}),e.jsx("h3",{className:"text-2xl font-semibold text-gray-900 mt-8 mb-4",children:"1. Sparse Retrieval via Hashed N-grams"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(He,{className:"h-5 w-5 text-green-600 mt-1 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("strong",{children:"Vocabulary Compression:"})," A vocabulary projection layer collapses original Token IDs into canonical identifiers by normalizing casing, whitespace, and Unicode variants. This achieves a ",e.jsx("strong",{children:"23% reduction"})," in effective vocabulary size."]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(He,{className:"h-5 w-5 text-green-600 mt-1 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("strong",{children:"Multi-Head Hashing:"})," Multiple hash heads are assigned to each N-gram order to reduce collisions and map compressed context to embedding tables."]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(He,{className:"h-5 w-5 text-green-600 mt-1 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("strong",{children:"Layer Placement Strategy:"})," Engram modules are injected in early layers (and sometimes mid-depth), but not in every layer â optimizing for where pattern recognition benefits most."]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(He,{className:"h-5 w-5 text-green-600 mt-1 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("strong",{children:"Causal Convolution:"})," Short depth-causal convolution with residual connections expands the receptive field while maintaining gradient flow."]})]})]}),e.jsx("h3",{className:"text-2xl font-semibold text-gray-900 mt-8 mb-4",children:"2. Context-Aware Gating"}),e.jsxs("p",{children:["Retrieved embeddings serve as context-independent prior information but are susceptible to noise from hash collisions or polysemy. The team adopted a ",e.jsx("strong",{children:"context-aware gating mechanism"})," inspired by attention:"]}),e.jsxs("ul",{children:[e.jsx("li",{children:"Current hidden state acts as dynamic Query"}),e.jsx("li",{children:"Retrieved memory provides Key and Value projections"}),e.jsx("li",{children:"RMSNorm ensures gradient stability"}),e.jsx("li",{children:"Short depth-causal convolution expands receptive field"})]}),e.jsx(ie,{className:"my-8 not-prose overflow-hidden",children:e.jsx(me,{className:"p-0",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{className:"bg-gray-50",children:[e.jsx(qe,{className:"font-bold",children:"Aspect"}),e.jsx(qe,{className:"font-bold",children:"MoE (Mixture of Experts)"}),e.jsx(qe,{className:"font-bold",children:"Engram (Conditional Memory)"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Core Problem Solved"}),e.jsx(U,{children:'"How to calculate less"'}),e.jsx(U,{children:`"Don't calculate blindly"`})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Mechanism"}),e.jsx(U,{children:"Conditional computation via routing"}),e.jsx(U,{children:"Conditional memory via O(1) lookup"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Complexity"}),e.jsx(U,{children:"O(experts activated)"}),e.jsx(U,{children:"O(1) deterministic"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Best For"}),e.jsx(U,{children:"Dynamic reasoning, novel combinations"}),e.jsx(U,{children:"Static pattern recall, entity recognition"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Offloading Potential"}),e.jsx(U,{children:"Limited (compute-bound)"}),e.jsx(U,{children:"Excellent (memory-bound)"})]})]})]})})})]}),e.jsxs("section",{id:"optimal-allocation",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"The Optimal Memory Allocation (20-25%)"}),e.jsxs("p",{children:["One of the paper's most significant discoveries is the ",e.jsx("strong",{children:"Sparsity Allocation Law"}),": under a fixed sparse parameter budget, the optimal split is approximately ",e.jsx("strong",{children:"20-25% memory (Engram) and 75-80% computation (MoE)"}),"."]}),e.jsx(ie,{className:"bg-gradient-to-r from-green-50 to-emerald-50 border-green-200 my-6 not-prose",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h3",{className:"font-bold text-green-900 text-lg mb-3",children:"ð¯ The 20-25% Rule"}),e.jsx("p",{className:"text-gray-700 mb-4",children:"When allocating sparse parameters between memory and computation:"}),e.jsxs("ul",{className:"text-gray-700 space-y-2",children:[e.jsxs("li",{children:["â ",e.jsx("strong",{children:"Too little memory (<20%):"})," Model wastes compute rediscovering patterns"]}),e.jsxs("li",{children:["â ",e.jsx("strong",{children:"Optimal
2208(20-25%):"})," Best balance of retrieval and reasoning"]}),e.jsxs("li",{children:["â ",e.jsx("strong",{children:"Too much memory (>25%):"})," Diminishing returns, starves reasoning capacity"]})]})]})}),e.jsx("p",{children:"This finding is critical for future model design: it suggests that simply adding more compute isn't always the answer â sometimes you need dedicated memory capacity for pattern storage."})]}),e.jsxs("section",{id:"scaling-law",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"The U-Shaped Scaling Law Discovery"}),e.jsxs("p",{children:['Through "Sparsity Allocation" modeling, the team discovered an unexpected ',e.jsx("strong",{children:"U-shaped scaling law"})," between MoE and Engram. This means the resource ratio between the two needs careful adjustment to find an optimal trade-off between computation and static memory."]}),e.jsx(ie,{className:"bg-gradient-to-r from-blue-50 to-purple-50 border-blue-200 my-6 not-prose",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h3",{className:"font-bold text-blue-900 text-lg mb-3",children:"ð¯ Key Result"}),e.jsxs("p",{className:"text-gray-700",children:["Following this law, after expanding Engram to ",e.jsx("strong",{children:"27B parameters"}),", it outperforms the MoE baseline under strict equal-parameter and equal-FLOPs conditions. The gains appear across multiple benchmarks including reasoning, coding, and math tasks."]})]})}),e.jsx("p",{className:"text-lg font-semibold text-purple-800 bg-purple-50 p-4 rounded-lg",children:`"MoE only solves the problem of 'how to calculate less', while Engram directly solves the problem of 'don't calculate blindly'."`})]}),e.jsxs("section",{id:"reasoning",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"Why Reasoning and Math Improve (The Surprising Finding)"}),e.jsxs("p",{children:["Perhaps the most counterintuitive finding: Engram doesn't just help with pattern recognition â it significantly improves ",e.jsx("strong",{children:"reasoning, math, and coding"})," abilities. Why?"]}),e.jsx(ie,{className:"bg-gradient-to-r from-orange-50 to-yellow-50 border-orange-200 my-6 not-prose",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h3",{className:"font-bold text-orange-900 text-lg mb-3",children:"ð¡ The Key Insight"}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["By offloading local pattern work to memory lookup, ",e.jsx("strong",{children:'early Transformer layers finish their "pattern work" faster'}),". This means early layers in Engram models behave like much deeper layers in MoE-only models."]}),e.jsx("p",{className:"text-gray-700 font-semibold",children:`"Engram doesn't make models smarter by adding facts â it makes them smarter by freeing compute."`})]})}),e.jsx("p",{children:`The paper provides evidence that reasoning improvements come from this "compute liberation" effect: when the model doesn't have to spend cycles on pattern matching, those cycles become available for deeper reasoning chains.`})]}),e.jsxs("section",{id:"long-context",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"Long-Context Benefits"}),e.jsx("p",{children:"Engram provides substantial benefits for long-context processing:"}),e.jsxs("div",{className:"space-y-4 my-6",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Wo,{className:"h-5 w-5 text-blue-600 mt-1 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("strong",{children:"Attention Freed for Global Structure:"})," When Engram handles local dependencies, attention can focus on long-range document structure and relationships."]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Wo,{className:"h-5 w-5 text-blue-600 mt-1 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("strong",{children:"Needle-in-Haystack Improvements:"})," The paper reports gains on information retrieval tasks in long documents."]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Wo,{className:"h-5 w-5 text-blue-600 mt-1 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("strong",{children:"Variable Tracking:"})," Better performance on tasks requiring tracking variables and references across long contexts."]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Wo,{className:"h-5 w-5 text-blue-600 mt-1 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("strong",{children:"Architectural Benefit:"}
2208)," These advantages appear even when controlling for training loss, suggesting they're inherent to the architecture rather than just training effects."]})]})]})]}),e.jsxs("section",{id:"hardware",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"Hardware Cost Implications"}),e.jsxs("p",{children:["Scaling memory-enhanced models is often limited by GPU high-bandwidth memory (HBM) capacity. However, Engram's ",e.jsx("strong",{children:"deterministic retrieval mechanism"})," naturally supports decoupling parameter storage from computing resources."]}),e.jsx(ie,{className:"bg-gradient-to-r from-gray-800 to-gray-900 border-0 my-6 not-prose text-white",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h3",{className:"font-bold text-lg mb-4 flex items-center gap-2",children:[e.jsx(c2,{className:"h-5 w-5"}),"System Efficiency Metrics"]}),e.jsxs("ul",{className:"space-y-3",children:[e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(He,{className:"h-5 w-5 text-green-400 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:"100B parameter memory tables"})," can be offloaded with less than 3% inference overhead"]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(He,{className:"h-5 w-5 text-green-400 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Deterministic indices:"})," Memory indices depend only on input tokens, not activations â enables prefetching"]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(He,{className:"h-5 w-5 text-green-400 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Asynchronous prefetching:"})," Memory retrieval can overlap with computation"]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(He,{className:"h-5 w-5 text-green-400 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:"CPU/SSD offloading:"})," Parameters can live in system RAM or even SSD, not expensive HBM"]})]})]})]})}),e.jsx("p",{children:"This has massive implications for inference cost: if memory tables can be stored in cheap system RAM instead of expensive GPU HBM, the cost per parameter drops dramatically. This could enable much larger effective model sizes without proportional hardware cost increases."})]}),e.jsxs("section",{id:"cross-language",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"Cross-Language Generalization"}),e.jsx("p",{children:"Visualization of the gating scalars shows an obvious selective pattern. The gating mechanism consistently activates when dealing with local, static patterns:"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6 my-6 not-prose",children:[e.jsx(ie,{className:"border-gray-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h4",{className:"font-bold text-gray-900 mb-2",children:"ð¬ð§ English Examples"}),e.jsxs("ul",{className:"text-sm text-gray-700 space-y-1",children:[e.jsx("li",{children:'⢠"Alexander the Great"'}),e.jsx("li",{children:'⢠"the Milky Way"'}),e.jsx("li",{children:'⢠"By the way"'}),e.jsx("li",{children:'⢠"Princess of Wales"'}),e.jsx("li",{children:'⢠"United States of America"'})]})]})}),e.jsx(ie,{className:"border-gray-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h4",{className:"font-bold text-gray-900 mb-2",children:"ð¨ð³ Chinese Examples"}),e.jsxs("ul",{className:"text-sm text-gray-700 space-y-1",children:[e.jsx("li",{children:'⢠"Four Great Inventions" (å大åæ)'}),e.jsx("li",{children:'⢠"Zhang Zhongjing" (å¼ ä»²æ¯)'}),e.jsx("li",{children:"⢠Idiomatic expressions (æè¯)"}),e.jsx("li",{children:"⢠Historical entities"}),e.jsx("li",{children:"⢠Classical poetry phrases"})]})]})})]}),e.jsx("p",{children:"This demonstrates that Engram's benefits generalize across languages and domains, recognizing that all languages have static patterns worth storing rather than computing."})]}),e.jsxs("section",{id:"v4-speculation",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"Could This Be DeepSeek V4?"}),e.jsxs("p",{children:["With ",e.jsx("strong",{children:"Liang Wenfeng"})," â DeepSeek's founder â as one of the paper's authors, and the breakthrough nature of this research, speculation is mounting that Engram could be integrated into DeepSeek's next flagship model."]}),e.jsx(ie,{className:"bg-gradient-to-r from-purple-100 to-pink-100 border-purple-300 my-6 not-prose",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h3",{className:"font-bold text-purple-900 text-lg mb-3",children:"ð® What This Means for V4"}),e.jsxs("ul",{className:"text-purple-800 space-y-2",children:[e.jsx("li",{children:"â Better knowledge retrieval without massive parameter increases"}),e.jsx("li",{children:"â Improved reasoning, coding, and math abilities from freed compute"}),e.jsx("li",{children:"â More efficient compute allocation with the 20-25% memory ratio"}),e.jsx("li",{children:"â Drastically reduced hardware costs through memory offloading"}),e.jsx("li",{children:"â Potential new standard for hybrid sparse LLMs"})]})]})}),e.jsx("p",{children:"DeepSeek has a track record of publishing research before integrating it into production models (as seen with MoE and MLA). Engram could follow the same pattern."})]}),e.jsxs("section",{id:"github",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"GitHub Repository & Resources"}),e.jsx("p",{children:"The full 33-page paper and demo code are available on GitHub:"}),e.jsx(ie,{className:"bg-gray-900 border-gray-700 my-6 not-prose text-white",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx(l2,{className:"h-8 w-8"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-lg",children:"deepseek-ai/Engram"}),e.jsxs("div",{className:"flex items-center gap-2 text-yellow-400 text-sm",children:[e.jsx(Cu,{className:"h-4 w-4 fill-current"}),e.jsx("span",{children:"2.9k+ stars"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("a",{href:"https://github.com/deepseek-ai/Engram",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-blue-400 hover:text-blue-300",children:[e.jsx(l2,{className:"h-4 w-4"}),"Repository: github.com/deepseek-ai/Engram",e.jsx(Pn,{className:"h-3 w-3"})]}),e.jsxs("a",{href:"https://github.com/deepseek-ai/Engram/blob/main/Engram_paper.pdf",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-blue-400 hover:text-blue-300",children:[e.jsx(W0,{className:"h-4 w-4"}),"Full Paper (PDF): Engram_paper.pdf",e.jsx(Pn,{className:"h-3 w-3"})]}),e.jsxs("a",{href:"https://github.com/deepseek-ai/Engram/blob/main/engram_demo_v1.py",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-blue-400 hover:text-blue-300",children:[e.jsx(yo,{className:"h-4 w-4"}
2208),"Demo Code: engram_demo_v1.py",e.jsx(Pn,{className:"h-3 w-3"})]})]})]})}),e.jsxs("p",{children:["The paper title is: ",e.jsx("em",{children:'"Conditional Memory via Scalable Lookup: A New Axis of Sparsity for Large Language Models"'})]})]}),e.jsxs("section",{id:"faq",className:"mb-12 scroll-mt-24",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"Frequently Asked Questions"}),e.jsxs("div",{className:"space-y-4 not-prose",children:[e.jsx(ie,{className:"border-gray-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"What is DeepSeek Engram?"}),e.jsx("p",{className:"text-gray-700",children:`Engram is a new conditional memory module proposed by DeepSeek and Peking University that provides O(1) knowledge lookup capabilities, solving the memory limitations of traditional Transformer architectures. It's named after the neurological term for "memory trace."`})]})}),e.jsx(ie,{className:"border-gray-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Is Engram the architecture for DeepSeek V4?"}),e.jsx("p",{className:"text-gray-700",children:"While not officially confirmed, the paper's innovations and Liang Wenfeng's involvement suggest Engram could be integrated into DeepSeek's next flagship V4 model. DeepSeek has historically published research before integrating it into production models."})]})}),e.jsx(ie,{className:"border-gray-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"How does Engram differ from MoE?"}),e.jsx("p",{className:"text-gray-700",children:`While MoE solves "how to calculate less" through conditional computation, Engram solves "don't calculate blindly" by providing deterministic knowledge lookup with O(1) complexity for static patterns. They're complementary â the paper recommends using both together.`})]})}),e.jsx(ie,{className:"border-gray-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"What is the optimal memory-to-compute ratio?"}),e.jsxs("p",{className:"text-gray-700",children:["According to the paper, ",e.jsx("strong",{children:"20-25% of sparse parameters should go to memory (Engram)"}),", with the rest going to computation (MoE). This is called the Sparsity Allocation Law."]})]})}),e.jsx(ie,{className:"border-gray-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Can Engram be offloaded to CPU/SSD?"}),e.jsxs("p",{className:"text-gray-700",children:["Yes! Engram's deterministic retrieval mechanism supports offloading up to ",e.jsx("strong",{children:"100B parameters"})," to CPU or SSD with less than 3% inference overhead. This is possible because memory indices depend only on input tokens (not activations), enabling asynchronous prefetching."]})]})}),e.jsx(ie,{className:"border-gray-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Does Engram help with reasoning tasks?"}),e.jsx("p",{className:"text-gray-700",children:"Yes, surprisingly. By offloading local pattern work to memory lookup, early Transformer layers finish faster and behave like much deeper layers. This frees compute for deeper reasoning chains, improving math, coding, and logical reasoning abilities."})]})}),e.jsx(ie,{className:"border-gray-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Does Engram replace attention or MoE?"}),e.jsx("p",{className:"text-gray-700",children:"No, Engram augments them. It's inserted into select Transformer layers alongside existing attention and MoE modules. The paper's optimal configuration uses all three together."})]})}),e.jsx(ie,{className:"border-gray-200",children:e.jsxs(me,{className:"p-5",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"What is the Sparsity Allocation Law?"}),e.jsx("p",{className:"text-gray-700",children:"The U-shaped scaling curve discovery showing that model performance varies based on how sparse parameters are allocated between memory (Engram) and computation (MoE). The optimal allocation is approximately 20-25% memory, 75-80% computation."})]})})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"Related Reading"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4 not-prose",children:[e.jsx(ie,{className:"border-gray-200 hover:border-blue-200 transition-colors cursor-pointer",onClick:()=>t("/deepseek-r1"),children:e.jsxs(me,{className:"p-4",children:[e.jsx("h3",{className:"font-semibold text-gray-900 hover:text-blue-600",children:"DeepSeek R1"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Learn about DeepSeek's reasoning model"})]})}),e.jsx(ie,{className:"border-gray-200 hover:border-blue-200 transition-colors cursor-pointer",onClick:()=>t("/blog/deepseek-v31-silent-revolution"),children:e.jsxs(me,{className:"p-4",children:[e.jsx("h3",{className:"font-semibold text-gray-900 hover:text-blue-600",children:"DeepSeek V3.1 Silent Revolution"}),e.jsx("p",{className:"text-sm text-gray-600",children:"How V3.1 improved without fanfare"})]})}),e.jsx(ie,{className:"border-gray-200 hover:border-blue-200 transition-colors cursor-pointer",onClick:()=>
2208t("/what-is-deepseek-ai"),children:e.jsxs(me,{className:"p-4",children:[e.jsx("h3",{className:"font-semibold text-gray-900 hover:text-blue-600",children:"What is DeepSeek AI?"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Complete overview of DeepSeek"})]})}),e.jsx(ie,{className:"border-gray-200 hover:border-blue-200 transition-colors cursor-pointer",onClick:()=>t("/deepseek-vs-chatgpt"),children:e.jsxs(me,{className:"p-4",children:[e.jsx("h3",{className:"font-semibold text-gray-900 hover:text-blue-600",children:"DeepSeek vs ChatGPT"}),e.jsx("p",{className:"text-sm text-gray-600",children:"How DeepSeek compares to OpenAI"})]})})]})]})]}),e.jsx("div",{className:"mt-12",children:e.jsx(Nn,{})}),e.jsxs("div",{className:"mt-12 flex flex-col sm:flex-row gap-4",children:[e.jsxs(Ke,{variant:"outline",onClick:()=>t("/blog"),children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsxs(Ke,{className:"bg-blue-600 hover:bg-blue-700 text-white",onClick:()=>window.open("https://chat.deepseek.com","_blank"),children:["Try DeepSeek AI",e.jsx(Pn,{className:"ml-2 h-4 w-4"})]})]})]})}),e.jsx(ar,{isOpen:n,onClose:()=>s(!1)})]})},TJ="/assets/deepseek-v4-next-move-hero-DiqnzMwR.jpg",PJ=()=>{const t=jn(),[n,s]=S.useState(!1),r={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek's Next Move: What V4 Will Look Like",datePublished:"2026-03-09T08:00:00+00:00",dateModified:"2026-03-09T08:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:"An in-depth analysis of what DeepSeek V4 will look like based on published papers, GitHub commits, and architectural innovations like DSA, mHC, Engram, and DualPath.",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-v4-next-move"}},a={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"When will DeepSeek V4 be released?",acceptedAnswer:{"@type":"Answer",text:"There is no official release date. Based on paper cadence and GitHub activity, analysts speculate a release in Q2âQ3 2026, but this remains unconfirmed."}},{"@type":"Question",name:"What is DSA (Dense Sparse Attention)?",acceptedAnswer:{"@type":"Answer",text:"DSA is an attention mechanism that dynamically routes between dense and sparse computation paths, allowing the model to allocate full attention to complex reasoning while using efficient sparse attention for routine tasks."}},{"@type":"Question",name:"What is Engram in DeepSeek's architecture?",acceptedAnswer:{"@type":"Answer",text:"Engram is a conditional external memory module providing O(1) knowledge lookup, allowing the model to retrieve static knowledge without recalculating it through transformer layers every time."}},{"@type":"Question",name:"Will DeepSeek V4 be multimodal?",acceptedAnswer:{"@type":"Answer",text:"Evidence strongly suggests DeepSeek V4 will be natively multimodal, processing text, images, and potentially video within a single architecture rather than through separate adapters."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek V4 Next Move â DSA, Engram & Architecture"}),e.jsx("meta",{name:"description",content:"What will DeepSeek V4 look like? Deep dive into DSA, mHC, Engram, DualPath, and Blackwell optimization â based on published papers and code commits."}),e.jsx("meta",{name:"keywords",content:"DeepSeek V4, DSA, Dense Sparse Attention, Engram, mHC, DualPath, DeepSeek architecture, AI model 2026, DeepSeek next model, multimodal AI"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-v4-next-move"}),e.jsx("meta",{property:"og:title",content:"DeepSeek V4: What's Next â Architecture, DSA, Engram & More"}),e.jsx("meta",{property:"og:description",content:"An in-depth analysis of DeepSeek V4's likely architecture based on papers, GitHub commits, and confirmed innovations."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-v4-next-move"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2208),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek V4: What's Next"}),e.jsx("meta",{name:"twitter:description",content:"Deep dive into what DeepSeek V4 will look like based on published research and code commits."}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"})," Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{children:[e.jsxs("div",{className:"mb-8",children:[e.jsxs("div",{className:"flex items-center gap-4 text-sm text-gray-500 mb-4",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(ag,{className:"h-4 w-4"})," March 9, 2026"]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(xo,{className:"h-4 w-4"})," 12 min read"]}),e.jsx("span",{className:"px-3 py-1 bg-blue-100 text-blue-700 rounded-full",children:"AI Architecture"})]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4 leading-tight",children:"DeepSeek's Next Move: What V4 Will Look Like"}),e.jsx("p",{className:"text-xl text-gray-600",children:"Based on published papers, GitHub commits, and architectural breadcrumbs, here's the most complete picture of DeepSeek's upcoming flagship model."})]}),e.jsx("div",{className:"mb-12 rounded-xl overflow-hidden shadow-lg",children:e.jsx("img",{src:TJ,alt:"DeepSeek V4 neural architecture visualization",className:"w-full h-auto",loading:"eager"})}),e.jsxs("div",{className:"bg-gray-50 rounded-xl p-6 mb-12 border border-gray-200",children:[e.jsxs("h2",{className:"text-lg font-bold text-gray-900 mb-3 flex items-center gap-2",children:[e.jsx($r,{className:"h-5 w-5"})," Table of Contents"]}),e.jsx("nav",{children:e.jsxs("ol",{className:"space-y-2 text-blue-700 list-decimal list-inside",children:[e.jsx("li",{children:e.jsx("a",{href:"#key-takeaways",className:"hover:underline",children:"Key Takeaways"})}),e.jsx("li",{children:e.jsx("a",{href:"#the-evidence",className:"hover:underline",children:"The Evidence Trail"})}),e.jsx("li",{children:e.jsx("a",{href:"#native-multimodal",className:"hover:underline",children:"Native Multimodal Architecture"})}),e.jsx("li",{children:e.jsx("a",{href:"#dsa",className:"hover:underline",children:"DSA: Dense Sparse Attention"})}),e.jsx("li",{children:e.jsx("a",{href:"#mhc",className:"hover:underline",children:"mHC: Manifold-Constrained Hyper-Connections"})}),e.jsx("li",{children:e.jsx("a",{href:"#engram",className:"hover:underline",children:"Engram: External Memory at O(1)"})}),e.jsx("li",{children:e.jsx("a",{href:"#dualpath",className:"hover:underline",children:"DualPath Inference Strategy"})}),e.jsx("li",{children:e.jsx("a",{href:"#hardware",className:"hover:underline",children:"Hardware Optimization: Blackwell & FP8"})}),e.jsx("li",{children:e.jsx("a",{href:"#confirmed-vs-speculative",className:"hover:underline",children:"Confirmed vs. Speculative"})}),e.jsx("li",{children:e.jsx("a",{href:"#faq",className:"hover:underline",children:"FAQ"})})]})})]}),e.jsxs("div",{id:"key-takeaways",className:"bg-blue-50 border-l-4 border-blue-600 rounded-r-xl p-6 mb-12",children:[e.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-3",children:"ð Key Takeaways"}),e.jsxs("ul",{className:"space-y-2 text-gray-700",children:[e.jsxs("li",{children:["⢠DeepSeek V4 is expected to be ",e.jsx("strong",{children:"natively multimodal"})," â text, image, and possibly video in one architecture."]}),e.jsxs("li",{children:["⢠The model will likely combine three novel techniques: ",e.jsx("strong",{children:"DSA"})," (Dense Sparse Attention), ",e.jsx("strong",{children:"mHC"})," (Manifold Hyper-Connections), and ",e.jsx("strong",{children:"Engram"})," (external memory)."]}),e.jsxs("li",{children:["⢠GitHub commits reveal ",e.jsx("strong",{children:"NVIDIA Blackwell optimizations"}),", FP8 KV cache, and FlashMLA hooks â pointing to next-gen hardware tuning."]}),e.jsxs("li",{children:["⢠A ",e.jsx("strong",{children:"DualPath inference strategy"})," may enable efficient long-context agentic workloads."]}),e.jsxs("li",{children:["⢠No official release date, but paper cadence suggests ",e.jsx("strong",{children:"Q2âQ3 2026"})," is plausible."]})]})]}),e.jsxs("div",{className:"prose prose-lg max-w-none",children:[e.jsxs("section",{id:"the-evidence",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-4",children:"The Evidence Trail"}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["DeepSeek doesn't announce roadmaps. Instead, the company communicates through a steady cadence of research papers, each one a puzzle piece that, when assembled, reveals the contours of their next model. Between late 2025 and early 2026, DeepSeek published three major papers â on ",e.jsx("strong",{children:"Engram"}),", ",e.jsx("strong",{children:"mHC"}),", and ",e.jsx("strong",{children:"DSA"})," â while simultaneously pushing revealing commits to their open-source repositories."]}),e.jsx("p",{className:"text-gray-700 mb-4",children:"This is the same pattern that preceded DeepSeek-V3: a series of architectural innovations published months before the model dropped. The difference this time? The ambition is significantly larger. The papers don't just optimize transformers â they propose fundamental changes to how attention, memory, and inference work."}),e.jsx("p",{className:"text-gray-700 mb-8",children:"What follows is not official confirmation. It's an analytical reconstruction based on public evidence: peer-reviewed papers, open-source code, and hardware signals. Where the evidence is strong, we say so. Where it's speculative, we flag it clearly."})]}),e.jsxs("section",{id:"native-multimodal",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-4",children:"Native Multimodal Architecture"}),e.jsx("p",{className:"text-gray-700 mb-4",children:"Current multimodal models â including DeepSeek's own Janus â bolt vision capabilities onto a language model through adapters. It works, but it's architecturally inelegant: the vision and language components don't truly share representations."}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["V4 is expected to change this. Multiple signals point toward a ",e.jsx("strong",{children:"unified encoder-decoder architecture"})," where text, image, and video tokens flow through the same transformer backbone from the start. This isn't just a quality-of-life improvement â it fundamentally changes what the model can reason about."]}),e.jsx("p",{className:"text-gray-700 mb-4",children:"A natively multimodal V4 could reason across modalities in a single forward pass: reading a chart, understanding the text label, interpreting the visual trend, and generating a written analysis â all without handing off between separate systems. This is the direction Google's Gemini took, and DeepSeek appears to be following suit with their own architectural twist."}),e.jsx("div",{className:"bg-yellow-50 border border-yellow-200 rounded-lg p-4 mb-8",children:e.jsxs("p",{className:"text-sm text-yellow-800",children:[e.jsx("strong",{children:"Evidence level:"})," Moderate. Inferred from Janus development trajectory, hiring patterns, and alignment with industry direction. No direct paper confirmation yet."]})})]}),e.jsxs("section",{id:"dsa",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-4",children:"DSA: Dense Sparse Attention"}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["Standard Mixture-of-Experts (MoE) architectures make a binary choice: route each token to a
2208subset of experts. It's efficient but crude. DSA (Dense Sparse Attention) takes a more nuanced approach by operating at the ",e.jsx("strong",{children:"attention level"})," rather than the expert level."]}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["The core idea: for each token, the model dynamically decides whether to apply ",e.jsx("strong",{children:"full dense attention"})," (expensive but thorough) or ",e.jsx("strong",{children:"sparse attention"})," (fast but selective). Complex reasoning tokens â those in the middle of a multi-step mathematical proof, for example â get the full treatment. Routine tokens â articles, prepositions, predictable continuations â get the sparse path."]}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["The result is a model that can be both large and fast. Dense attention handles the hard problems; sparse attention prevents the compute bill from exploding on the easy ones. Early benchmarks in the paper show ",e.jsx("strong",{children:"significant inference speedups"})," with minimal quality loss on reasoning tasks."]}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-6 mb-8 border border-gray-200",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-3",children:"How DSA Differs from Standard MoE"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"min-w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-gray-300",children:[e.jsx("th",{className:"text-left py-2 pr-4 font-semibold",children:"Aspect"}),e.jsx("th",{className:"text-left py-2 pr-4 font-semibold",children:"Standard MoE"}),e.jsx("th",{className:"text-left py-2 font-semibold",children:"DSA"})]})}),e.jsxs("tbody",{className:"text-gray-700",children:[e.jsxs("tr",{className:"border-b border-gray-100",children:[e.jsx("td",{className:"py-2 pr-4 font-medium",children:"Routing level"}),e.jsx("td",{className:"py-2 pr-4",children:"Expert (FFN) level"}),e.jsx("td",{className:"py-2",children:"Attention level"})]}),e.jsxs("tr",{className:"border-b border-gray-100",children:[e.jsx("td",{className:"py-2 pr-4 font-medium",children:"Decision type"}),e.jsx("td",{className:"py-2 pr-4",children:"Binary (route or skip)"}),e.jsx("td",{className:"py-2",children:"Dynamic (dense vs. sparse)"})]}),e.jsxs("tr",{className:"border-b border-gray-100",children:[e.jsx("td",{className:"py-2 pr-4 font-medium",children:"Compute allocation"}),e.jsx("td",{className:"py-2 pr-4",children:"Fixed per expert"}),e.jsx("td",{className:"py-2",children:"Proportional to complexity"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-medium",children:"Quality trade-off"}),e.jsx("td",{className:"py-2 pr-4",children:"Moderate degradation"}),e.jsx("td",{className:"py-2",children:"Minimal on reasoning"})]})]})]})})]}),e.jsx("div",{className:"bg-green-50 border border-green-200 rounded-lg p-4 mb-8",children:e.jsxs("p",{className:"text-sm text-green-800",children:[e.jsx("strong",{children:"Evidence level:"})," Strong. Published paper with benchmarks. Directly attributed to DeepSeek researchers."]})})]}),e.jsxs("section",{id:"mhc",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-4",children:"mHC: Manifold-Constrained Hyper-Connections"}),e.jsx("p",{className:"text-gray-700 mb-4",children:"Training instability is one of the dirty secrets of large language models. As models scale, gradients can vanish, explode, or oscillate â causing training runs to crash or produce suboptimal weights. DeepSeek's mHC paper proposes a mathematically elegant solution."}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["mHC constrains the information flow between transformer layers to lie on a ",e.jsx("strong",{children:"learned manifold"}),". Think of it as giving the gradient signal a highway to travel on: instead of bouncing unpredictably between layers, information follows smooth, geometrically constrained paths. The paper reports ",e.jsx("strong",{children:"6â7% training efficiency improvements"})," â not just speed, but actual convergence quality."]}),e.jsx("p",{className:"text-gray-700 mb-4",children:"For V4, mHC likely serves as the training backbone. It won't be visible in the final model's outputs, but it's what makes it possible to train a model of V4's expected scale without burning through billions of dollars in failed runs."}),e.jsxs("p",{className:"text-gray-700 mb-8",children:[`Independent researchers have called this a "
2208striking breakthrough" â not because it changes what the model can do, but because it changes what's `,e.jsx("strong",{children:"economically feasible"})," to train."]}),e.jsx("div",{className:"bg-green-50 border border-green-200 rounded-lg p-4 mb-8",children:e.jsxs("p",{className:"text-sm text-green-800",children:[e.jsx("strong",{children:"Evidence level:"})," Strong. Published paper with reproducible results. Multiple independent validations."]})})]}),e.jsxs("section",{id:"engram",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-4",children:"Engram: External Memory at O(1)"}),e.jsx("p",{className:"text-gray-700 mb-4",children:`Here's the fundamental problem with transformers: every piece of knowledge the model "knows" must be re-derived from the weights during each forward pass. There's no distinction between static knowledge (the capital of France) and dynamic reasoning (solving a novel math problem). Both cost the same compute.`}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["Engram fixes this by introducing a ",e.jsx("strong",{children:"conditional external memory module"})," with O(1) lookup. Static knowledge â facts, definitions, established relationships â gets stored in a persistent memory bank. The model learns when to query this memory instead of recalculating."]}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["The implications are significant. A model with Engram can be smaller (fewer parameters dedicated to memorization) while being more knowledgeable (the memory bank can be updated without retraining). It also opens the door to ",e.jsx("strong",{children:"domain-specific memory banks"}),": plug in a legal Engram for contract analysis, a medical Engram for diagnostic support."]}),e.jsx("p",{className:"text-gray-700 mb-4",children:`The paper, signed by DeepSeek founder Liang Wenfeng himself, positions Engram as solving a "fatal flaw" in transformer architecture. That's not modest language from a company known for understatement.`}),e.jsx("div",{className:"bg-green-50 border border-green-200 rounded-lg p-4 mb-8",children:e.jsxs("p",{className:"text-sm text-green-800",children:[e.jsx("strong",{children:"Evidence level:"})," Strong. Published paper. Signed by CEO. Directly addresses known transformer limitations."]})})]}),e.jsxs("section",{id:"dualpath",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-4",children:"DualPath Inference Strategy"}),e.jsx("p",{className:"text-gray-700 mb-4",children:"Modern AI doesn't just answer questions â it runs multi-step tasks. Coding agents, research assistants, and automated analysts all need to maintain context over long, branching conversations. Standard transformer inference handles this poorly: the attention cost grows quadratically with context length."}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["DualPath splits inference into two parallel tracks: a ",e.jsx("strong",{children:"fast path"})," for immediate, short-context responses and a ",e.jsx("strong",{children:"deep path"})," for long-context agentic reasoning. The model dynamically routes requests based on complexity, context length, and task type."]}),e.jsx("p",{className:"text-gray-700 mb-4",children:"For a simple Q&A, the fast path delivers sub-second responses. For a 50-step coding task with 100K tokens of context, the deep path kicks in with optimized attention patterns, Engram lookups, and sparse computation. The user doesn't see the routing â they just experience a model that's both fast and capable."}),e.jsx("div",{className:"bg-yellow-50 border border-yellow-200 rounded-lg p-4 mb-8",children:e.jsxs("p",{className:"text-sm text-yellow-800",children:[e.jsx("strong",{children:"Evidence level:"})," Moderate. Inferred from code commits and architectural compatibility with DSA + Engram. No standalone paper yet."]})})]}),e.jsxs("section",{id:"hardware",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-4",children:"Hardware Optimization: Blackwell & FP8"}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["Code doesn't lie. Recent commits to DeepSeek's open-source inference engine reveal ",e.jsx("strong",{children:"NVIDIA Blackwell-specific optimizations"}
2208),", including FP8 KV cache support and FlashMLA (Multi-Level Attention) hooks. These aren't experimental branches â they're being merged into main codepaths."]}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["FP8 KV cache is particularly telling. By halving the precision of cached key-value pairs, the model can maintain ",e.jsx("strong",{children:"twice as much context in the same GPU memory"}),". Combined with FlashMLA â a custom attention kernel optimized for DeepSeek's multi-level attention patterns â this suggests V4 is being designed from the ground up for Blackwell hardware."]}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["This matters because it signals DeepSeek's access to (or expectation of accessing) next-generation NVIDIA hardware, despite ongoing US export controls. It also suggests that V4's performance won't just come from better algorithms â it'll come from ",e.jsx("strong",{children:"hardware-software co-design"}),"."]}),e.jsx("div",{className:"bg-green-50 border border-green-200 rounded-lg p-4 mb-8",children:e.jsxs("p",{className:"text-sm text-green-800",children:[e.jsx("strong",{children:"Evidence level:"})," Strong. Confirmed through public GitHub commits. Code is verifiable."]})})]}),e.jsxs("section",{id:"confirmed-vs-speculative",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-4",children:"Confirmed vs. Speculative"}),e.jsx("div",{className:"overflow-x-auto mb-8",children:e.jsxs("table",{className:"min-w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b-2 border-gray-300",children:[e.jsx("th",{className:"text-left py-3 pr-4 font-semibold",children:"Claim"}),e.jsx("th",{className:"text-left py-3 pr-4 font-semibold",children:"Status"}),e.jsx("th",{className:"text-left py-3 font-semibold",children:"Source"})]})}),e.jsxs("tbody",{className:"text-gray-700",children:[e.jsxs("tr",{className:"border-b border-gray-100",children:[e.jsx("td",{className:"py-3 pr-4",children:"Engram memory module"}),e.jsx("td",{className:"py-3 pr-4",children:e.jsx("span",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-xs font-medium",children:"Confirmed"})}),e.jsx("td",{className:"py-3",children:"Published paper (Liang Wenfeng)"})]}),e.jsxs("tr",{className:"border-b border-gray-100",children:[e.jsx("td",{className:"py-3 pr-4",children:"mHC training method"}),e.jsx("td",{className:"py-3 pr-4",children:e.jsx("span",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-xs font-medium",children:"Confirmed"})}),e.jsx("td",{className:"py-3",children:"Published paper"})]}),e.jsxs("tr",{className:"border-b border-gray-100",children:[e.jsx("td",{className:"py-3 pr-4",children:"DSA attention mechanism"}),e.jsx("td",{className:"py-3 pr-4",children:e.jsx("span",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-xs font-medium",children:"Confirmed"})}),e.jsx("td",{className:"py-3",children:"Published paper"})]}),e.jsxs("tr",{className:"border-b border-gray-100",children:[e.jsx("td",{className:"py-3 pr-4",children:"Blackwell / FP8 optimization"}),e.jsx("td",{className:"py-3 pr-4",children:e.jsx("span",{className:"px-2 py-1 bg-green-100 text-green-800 rounded text-xs font-medium",children:"Confirmed"})}),e.jsx("td",{className:"py-3",children:"GitHub commits"})]}),e.jsxs("tr",{className:"border-b border-gray-100",children:[e.jsx("td",{className:"py-3 pr-4",children:"Native multimodal"}),e.jsx("td",{className:"py-3 pr-4",children:e.jsx("span",{className:"px-2 py-1 bg-yellow-100 text-yellow-800 rounded text-xs font-medium",children:"Likely"})}),e.jsx("td",{className:"py-3",children:"Industry trend + Janus trajectory"})]}),e.jsxs("tr",{className:"border-b border-gray-100",children:[e.jsx("td",{className:"py-3 pr-4",children:"DualPath inference"}),e.jsx("td",{className:"py-3 pr-4",children:e.jsx("span",{className:"px-2 py-1 bg-yellow-100 text-yellow-800 rounded text-xs font-medium",children:"Likely"})}
2208),e.jsx("td",{className:"py-3",children:"Code commits + architectural fit"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-3 pr-4",children:"Q2âQ3 2026 release"}),e.jsx("td",{className:"py-3 pr-4",children:e.jsx("span",{className:"px-2 py-1 bg-orange-100 text-orange-800 rounded text-xs font-medium",children:"Speculative"})}),e.jsx("td",{className:"py-3",children:"Paper cadence extrapolation"})]})]})]})})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-4",children:"The Bigger Picture"}),e.jsx("p",{className:"text-gray-700 mb-4",children:"What makes V4 interesting isn't any single innovation â it's how they fit together. Engram handles knowledge retrieval. DSA handles attention efficiency. mHC ensures stable training at scale. DualPath optimizes inference routing. And Blackwell hardware provides the raw compute."}),e.jsxs("p",{className:"text-gray-700 mb-4",children:["If DeepSeek pulls this off, V4 won't just be a bigger model â it'll be a ",e.jsx("strong",{children:"fundamentally different kind of model"}),". One that separates knowledge from reasoning, dynamically allocates compute, and runs efficiently on cutting-edge hardware. That's the kind of architectural leap that changes competitive dynamics."]}),e.jsx("p",{className:"text-gray-700 mb-8",children:"For now, we watch the papers, read the commits, and wait. DeepSeek has earned a track record of delivering on their research promises. V4 may be their most ambitious delivery yet."})]}),e.jsxs("section",{id:"faq",className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold text-gray-900 mb-6",children:"Frequently Asked Questions"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"bg-gray-50 rounded-lg p-6",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"When will DeepSeek V4 be released?"}),e.jsx("p",{className:"text-gray-700",children:"There is no official release date. Based on paper cadence and GitHub activity, analysts speculate a release in Q2âQ3 2026, but this remains unconfirmed by DeepSeek."})]}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-6",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"What is DSA (Dense Sparse Attention)?"}),e.jsx("p",{className:"text-gray-700",children:"DSA is an attention mechanism that dynamically routes between dense and sparse computation paths, allowing the model to allocate full attention to complex reasoning while using efficient sparse attention for routine tasks."})]}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-6",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"What is Engram in DeepSeek's architecture?"}),e.jsx("p",{className:"text-gray-700",children:"Engram is a conditional external memory module providing O(1) knowledge lookup, allowing the model to retrieve static knowledge without recalculating it through transformer layers every time. It was proposed in a paper signed by DeepSeek CEO Liang Wenfeng."})]}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-6",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"Will DeepSeek V4 be multimodal?"}),e.jsx("p",{className:"text-gray-700",children:"Evidence strongly suggests V4 will be natively multimodal â processing text, images, and potentially video within a single architecture rather than bolting on separate vision adapters."})]}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-6",children:[e.jsx("h3",{className:"font-bold text-gray-900 mb-2",children:"How does V4 compare to GPT-5 or Gemini 3?"}),e.jsx("p",{className:"text-gray-700",children:"It's too early for direct comparisons since V4 hasn't been released. However, the architectural innovations (DSA, Engram, mHC) suggest DeepSeek is targeting compute-efficiency leadership rather than raw scale â a different competitive strategy than OpenAI or Google."})]})]})]})]}),e.jsxs("div",{className:"mt-12 mb-12 border-t border-b border-gray-200 py-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Articles"}),e.jsx(Nn,{})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Try Deep Seek AI Now ",e.jsx(wn,{className:"ml-2 h-5 w-5"})]}),e.jsxs("button",{onClick:()=>s(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]",children:["Create AI Agents ",e.jsx(Os,{className:"ml-2 h-5 w-5"})]})]})]})]})}),e.jsx(ar,{isOpen:n,onClose:()=>s(!1)})]})},EJ="/assets/claude-opus-4-8-vs-deepseek-hero-xmnrKkkP.jpg",LJ=()=>{const t=jn(),n={"@context":"https://schema.org","@type":"BlogPosting",headline:"Claude Opus 4.8 Released: How Does It Stack Up Against DeepSeek V4 Pro?",datePublished:"2026-05-28T16:00:00+00:00",dateModified:"2026-05-28T16:00:00+00:00",author:{"@type":"Organization",name:"DeepSeek.ai (Unofficial Fan Site)",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"DeepSeek.ai (Unofficial Fan Site)",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:"Anthropic just shipped Claude Opus 4.8 on May 28, 2026 â better benchmarks, dynamic workflows in Claude Code, and a 3Ã cheaper fast mode. We compare it head-to-head with DeepSeek V4 Pro on capability, speed, and price.",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/claude-opus-4-8-vs-deepseek-v4"}},s={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"When was Claude Opus 4.8 released?",acceptedA
2208nswer:{"@type":"Answer",text:"Anthropic announced Claude Opus 4.8 on May 28, 2026. It is available immediately on claude.ai, in Claude Code, and via the API at the same price as Opus 4.7."}},{"@type":"Question",name:"Is Claude Opus 4.8 cheaper than DeepSeek V4 Pro?",acceptedAnswer:{"@type":"Answer",text:"No. Claude Opus 4.8 still costs around $15 per million input tokens and $75 per million output tokens. DeepSeek V4 Pro remains roughly 17â86Ã cheaper at $0.435/$0.87 per million tokens after the permanent 75% API price cut."}},{"@type":"Question",name:"What is the dynamic workflows feature in Claude Code?",acceptedAnswer:{"@type":"Answer",text:"Dynamic workflows is a new Claude Code capability that lets Opus 4.8 plan and execute very large, multi-step engineering problems autonomously, splitting the work into sub-tasks the model orchestrates on its own."}},{"@type":"Question",name:"Should I switch from DeepSeek V4 Pro to Claude Opus 4.8?",acceptedAnswer:{"@type":"Answer",text:"For most production workloads â chat, coding assistants, RAG, batch inference â DeepSeek V4 Pro remains the better value. Claude Opus 4.8 is worth the premium when you need its agentic dynamic workflows, the highest-tier reasoning judgement, or you are already invested in the Anthropic ecosystem."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Claude Opus 4.8 vs DeepSeek V4 Pro: 2026 Showdown"}),e.jsx("meta",{name:"description",content:"Claude Opus 4.8 launched May 28, 2026 with dynamic workflows and 3Ã cheaper fast mode. See how it compares to DeepSeek V4 Pro on benchmarks, speed and API price."}),e.jsx("meta",{name:"keywords",content:"Claude Opus 4.8, Claude Opus 4.8 vs DeepSeek, DeepSeek V4 Pro, Anthropic, Claude Code dynamic workflows, AI model comparison 2026"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/claude-opus-4-8-vs-deepseek-v4"}),e.jsx("meta",{property:"og:title",content:"Claude Opus 4.8 vs DeepSeek V4 Pro: 2026 Showdown"}),e.jsx("meta",{property:"og:description",content:"Anthropic's new Claude Opus 4.8 lands today. Here's how it stacks up against DeepSeek V4 Pro on capability, speed, and price."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/claude-opus-4-8-vs-deepseek-v4"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsx("div",{className:"min-h-screen bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8",children:[e.jsx(An,{className:"mr-2 h-4 w-4"})," Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{children:[e.jsxs("div",{className:"mb-8",children:[e.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground mb-4",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(ag,{className:"h-4 w-4"})," May 28, 2026"]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(xo,{className:"h-4 w-4"})," 8 min read"]}),e.jsx("span",{className:"px-3 py-1 bg-primary/10 text-primary rounded-full",children:"AI News"})]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-foreground mb-4 leading-tight",children:"Claude Opus 4.8 Released: How Does It Stack Up Against DeepSeek V4 Pro?"}),e.jsx("p",{className:"text-xl text-muted-foreground",children:"Anthropic shipped Claude Opus 4.8 today with sharper benchmarks, dynamic workflows in Claude Code, and a 3Ã cheaper fast mode. We line it up against DeepSeek V4 Pro on the metrics that matter."})]}),e.jsx("div",{className:"mb-12 rounded-xl overflow-hidden shadow-lg",children:e.jsx("img",{src:EJ,alt:"Claude Opus 4.8 vs DeepSeek V4 Pro 2026 comparison",className:"w-full h-auto",width:1280,height:720,loading:"eager"})}),e.jsxs("div",{className:"bg-primary/5 border-l-4 border-primary rounded-r-xl p-6 mb-12",children:[e.jsxs("h2",{className:"text-xl font-bold text-foreground mb-3 flex items-center gap-2",children:[e.jsx($r,{className:"h-5 w-5 text-primary"})," Key Takeaways"]}
2208),e.jsxs("ul",{className:"space-y-2 text-foreground/90",children:[e.jsxs("li",{children:["⢠",e.jsx("strong",{children:"Claude Opus 4.8"})," launched May 28, 2026 â same price as Opus 4.7, broadly better benchmarks."]}),e.jsxs("li",{children:["⢠New ",e.jsx("strong",{children:'"effort control"'})," on claude.ai lets users dial how hard Claude thinks per task."]}),e.jsxs("li",{children:["⢠",e.jsx("strong",{children:"Dynamic workflows"})," in Claude Code targets very large-scale autonomous engineering tasks."]}),e.jsxs("li",{children:["⢠",e.jsx("strong",{children:"Fast mode"})," for Opus 4.8 runs at 2.5à speed and is now ",e.jsx("strong",{children:"3à cheaper"})," than on previous Opus versions."]}),e.jsxs("li",{children:["⢠",e.jsx("strong",{children:"DeepSeek V4 Pro remains 17â86à cheaper"})," per token â the value gap is unchanged."]})]})]}),e.jsxs("div",{className:"prose prose-lg max-w-none text-foreground",children:[e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-3",children:[e.jsx(Lt,{className:"h-7 w-7 text-primary"})," What's New in Claude Opus 4.8"]}),e.jsxs("p",{className:"mb-4",children:["Anthropic positioned Opus 4.8 as a steady, incremental upgrade over Opus 4.7 rather than a generational leap. Early testers describe it as ",e.jsx("strong",{children:'"more reliable and sharper in its judgement"'})," on agentic tasks â meaning fewer dead-end tool calls, better recovery from errors, and stronger long-horizon planning."]}),e.jsx("p",{className:"mb-4",children:"Three concrete changes shipped alongside the model:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 mb-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Effort control"})," on claude.ai â a user-facing slider for how much compute Claude burns per request."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Dynamic workflows"})," inside Claude Code â designed for very large-scale, multi-file engineering problems that previously needed manual orchestration."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Fast mode"})," running at 2.5à the speed of standard Opus, now priced 3à lower than the previous fast tier."]})]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Source: ",e.jsx("a",{href:"https://www.anthropic.com/news/claude-opus-4-8",rel:"nofollow noopener",target:"_blank",className:"text-primary hover:underline",children:"Anthropic announcement, May 28, 2026"}),"."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-3",children:[e.jsx(Wo,{className:"h-7 w-7 text-primary"})," Benchmarks: Opus 4.8 vs DeepSeek V4 Pro"]}),e.jsx("p",{className:"mb-4",children:"Anthropic's published table shows Opus 4.8 leading Opus 4.7 across coding, agentic and reasoning evaluations. DeepSeek hasn't re-benchmarked V4 Pro against the 4.8 release yet, but based on the May 1, 2026 V4 preview numbers the picture looks like this:"}),e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsxs("table",{className:"min-w-full text-sm border border-border",children:[e.jsx("thead",{className:"bg-muted",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left py-2 px-3 font-semibold",children:"Benchmark"}),e.jsx("th",{className:"text-center py-2 px-3 font-semibold",children:"Claude Opus 4.8"}),e.jsx("th",{className:"text-center py-2 px-3 font-semibold",children:"DeepSeek V4 Pro"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-t border-border",children:[e.jsx("td",{className:"py-2 px-3 font-medium",children:"SWE-bench Verified"}),e.jsx("td",{className:"text-center",children:"~82%"}),e.jsx("td",{className:"text-center",children:">80%"})]}),e.jsxs("tr",{className:"border-t border-border",children:[e.jsx("td",{className:"py-2 px-3 font-medium",children:"HumanEval"}),e.jsx("td",{className:"text-center",children:"~93%"}),e.jsx("td",{className:"text-center",children:"~90%"})]}),e.jsxs("tr",{className:"border-t border-border",children:[e.jsx("td",{className:"py-2 px-3 font-medium",children:"Agentic (long-horizon)"}),e.jsx("td",{className:"text-center font-semibold",children:"Lead"}),e.jsx("td",{className:"text-center",children:"Competitive"})]}),e.jsxs("tr",{className:"border-t border-border",children:[e.jsx("td",{className:"py-2 px-3 font-medium",children:"Context window"}),e.jsx("td",{className:"text-center",children:"200K"}),e.jsx("td",{className:"text-center font-semibold",children:"1M"})]}),e.jsxs("tr",{className:"border-t border-border",children:[e.jsx("td",{className:"py-2 px-3 font-medium",children:"License"}),e.jsx("td",{className:"text-center",children:"Proprietary"}),e.jsx("td",{className:"text-center font-semibold",children:"MIT (open weights)"})]})]})]})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Opus 4.8 numbers are Anthropic's published figures; V4 Pro numbers from DeepSeek's May 1, 2026 preview. Independent re-benchmarks pending."})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-3",children:[e.jsx(Ai,{className:"h-7 w-7 text-primary"})," Pricing: Where DeepSeek Still Wins by an Order of Magnitude"]}),e.jsxs("p",{className:"mb-4",children:["The headline change Anthropic emphasised today is the cheaper ",e.jsx("em",{children:"fast mode"}),", not a base price cut. Opus 4.8 standard pricing is still in line with Opus 4.7 â premium territory."]}),e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsxs("table",{className:"min-w-full text-sm border border-border",children:[e.jsx("thead",{className:"bg-muted",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left py-2 px-3 font-semibold",children:"Price (per 1M tokens)"}),e.jsx("th",{className:"text-center py-2 px-3 font-semibold",children:"Claude Opus 4.8"}),e.jsx("th",{className:"text-center py-2 px-3 font-semibold",children:"DeepSeek V4 Pro"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-t border-border",children:[e.jsx("td",{className:"py-2 px-3 font-medium",children:"Input"}),e.jsx("td",{className:"text-center",children:"~$15.00"}),e.jsx("td",{className:"text-center font-semibold text-primary",children:"$0.435"})]}),e.jsxs("tr",{className:"border-t border-border",children:[e.jsx("td",{className:"py-2 px-3 font-medium",children:"Output"}),e.jsx("td",{className:"text-center",children:"~$75.00"}),e.jsx("td",{className:"text-center font-semibold text-primary",children:"$0.87"})]}),e.jsxs("tr",{className:"border-t border-border",children:[e.jsx("td",{className:"py-2 px-3 font-medium",children:"Effective multiple"}),e.jsx("td",{className:"text-center",children:"1Ã"}),e.jsx("td",{className:"text-center font-semibold text-primary",children:"~17â86à cheaper"})]})]})]})}),e.jsxs("p",{className:"mb-4",children:["Even after the new cheaper fast tier, a workload that costs ",e.jsx("strong",{children:"$10,000/month"})," on Opus 4.8 would cost roughly ",e.jsx("strong",{children:"$120â600/month"})," on DeepSeek V4 Pro. For agentic loops that burn millions of output tokens per day, that's the difference between an experiment and a P&L line item."]}),e.jsxs("p",{children:["See the full breakdown in our ",e.jsx(se,{to:"/blog/deepseek-v4-pro-api-price-cut-permanent",className:"text-primary hover:underline",children:"V4 Pro 75% price cut analysis"}),"."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"Which One Should You Pick in 2026?"}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2 mb-4",children:[e.jsxs("div",{className:"rounded-xl border border-border p-5 bg-card",children:[e.jsx("h3",{className:"font-bold mb-2",children:"Pick Claude Opus 4.8 whenâ¦"}),e.jsxs("ul",{className:"space-y-1 text-sm text-muted-foreground list-disc pl-5",children:[e.jsx("li",{children:"You need the strongest agentic judgement available today."}),e.jsx("li",{children:"Your team lives inside Claude Code's new dynamic workflows."}),e.jsx("li",{children:"Compliance demands a US/UK-hosted closed-weights model."})]})]}),e.jsxs("div",{className:"rounded-xl border border-primary/40 p-5 bg-primary/5",children:[e.jsx("h3",{className:"font-bold mb-2",children:"Pick DeepSeek V4 Pro whenâ¦"}
2208),e.jsxs("ul",{className:"space-y-1 text-sm text-foreground/90 list-disc pl-5",children:[e.jsx("li",{children:"API cost is anywhere in your top-3 constraints."}),e.jsx("li",{children:"You need a 1M-token context window."}),e.jsx("li",{children:"You want MIT-licensed open weights for self-hosting."}),e.jsx("li",{children:"You're shipping high-volume chat, RAG, or batch inference."})]})]})]}),e.jsx("p",{children:"Most teams will end up using both: Opus 4.8 for the hardest 5% of agentic problems, V4 Pro for the other 95%. The pricing gap is simply too large to ignore â and DeepSeek's open weights mean you also keep an exit ramp from any single vendor."})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"FAQ"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-1",children:"When was Claude Opus 4.8 released?"}),e.jsx("p",{className:"text-muted-foreground",children:"May 28, 2026 â available today on claude.ai, in Claude Code, and via the Anthropic API at the same price as Opus 4.7."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-1",children:"Is Claude Opus 4.8 cheaper than DeepSeek V4 Pro?"}),e.jsxs("p",{className:"text-muted-foreground",children:["No. V4 Pro is roughly 17â86Ã cheaper per token. Opus 4.8's pricing news is about the new ",e.jsx("em",{children:"fast mode"})," being 3Ã cheaper than before, not a base price cut."]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-1",children:"What are dynamic workflows in Claude Code?"}),e.jsx("p",{className:"text-muted-foreground",children:"A new feature that lets Opus 4.8 plan and execute very large-scale engineering problems autonomously, orchestrating its own sub-tasks."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-1",children:"Should I switch from DeepSeek V4 Pro to Opus 4.8?"}),e.jsx("p",{className:"text-muted-foreground",children:"For most production workloads, no â V4 Pro stays the best value. Switch (or add) Opus 4.8 only when you need its strongest-in-class agentic judgement."})]})]})]})]}),e.jsx(Nn,{})]})]})})]})},MJ=()=>{const t=jn(),n="https://deepseek.ai/blog/deepseek-50-billion-funding-round",s={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek's $7.4B Funding Round: Inside the 50 Billion Yuan Deal That Valued the AI Lab at $50B",datePublished:"2026-06-16T08:00:00+00:00",dateModified:"2026-06-16T08:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:"DeepSeek closed a historic 50 billion yuan (~$7.4B) funding round at a $50B valuation. Inside the LP-vehicle deal structure, the CATL/Tencent/NetEase/JD.com syndicate, and what it means for open-source AI.",mainEntityOfPage:{"@type":"WebPage","@id":n}},r={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"How much did DeepSeek raise in its 2026 funding round?",acceptedAnswer:{"@type":"Answer",text:"DeepSeek raised over 50 billion yuan, approximately $7.4 billion USD, pushing its valuation past $50 billion. Founder Liang Wenfeng personally committed 20 billion yuan of his own capital."}},{"@type":"Question",name:"Who invested in DeepSeek?",acceptedAnswer:{"@type":"Answer",text:"The concentrated syndicate of fewer than ten investors includes CATL (battery and energy infrastructure), Tencent, NetEase, JD.com, and China's National AI Industry Investment Fund. No foreign institutional investors are on the cap table."}},{"@type":"Question",name:"Why is the DeepSeek deal structure considered unusual?",acceptedAnswer:{"@type":"Answer",text:"Instead of issuing voting shares, capital was routed into a custom Limited Partnership (LP) vehicle directly managed by founder Liang Wenfeng. This preserves total founder control and shields the lab from short-term VC commercialization pressure."}},{"@type":"Question",name:"Will DeepSeek remain open-source after the funding round?",acceptedA
2208nswer:{"@type":"Answer",text:"The LP structure was specifically designed to keep founder Liang Wenfeng in full strategic control, which is a strong signal that DeepSeek intends to continue releasing high-efficiency open-weight models â although nothing is contractually guaranteed."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek's $7.4B Funding Round 2026: Inside the $50B Deal"}),e.jsx("meta",{name:"description",content:"DeepSeek raised 50 billion yuan (~$7.4B) at a $50B valuation. Inside the unusual LP-vehicle structure, CATL/Tencent/JD.com syndicate, and what it means for open-source AI."}),e.jsx("link",{rel:"canonical",href:n}),e.jsx("meta",{property:"og:title",content:"DeepSeek's $7.4B Funding Round: The $50B AI Titan"}),e.jsx("meta",{property:"og:description",content:"50 billion yuan raised, $50B valuation, founder retains absolute control via a custom LP vehicle. Full breakdown of the deal."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:n}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek's $7.4B Funding Round 2026"}),e.jsx("meta",{name:"twitter:description",content:"Inside the 50 billion yuan deal that valued DeepSeek at $50B â and why the LP structure changes everything."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"transition-opacity duration-300 opacity-100",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"text-gray-500 mb-2",children:"June 16, 2026 ⢠Deep Seek Fan Hub"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-6",children:"The $50 Billion Titan: Decoding DeepSeek's Historic 50 Billion Yuan Funding Round and Its Unusual Deal Structure"}),e.jsx("div",{className:"bg-blue-50 p-6 rounded-lg border border-blue-100 mb-8",children:e.jsxs("p",{className:"text-gray-800",children:[e.jsx("strong",{children:"DeepSeek"}),", the Hangzhou-based AI lab that shook Silicon Valley with its hyper-efficient open-source models, has officially closed its first massive external funding round â raising over ",e.jsx("strong",{children:"50 billion yuan (~$7.4 billion USD)"})," at a valuation north of ",e.jsx("strong",{children:"$50 billion"}),". The deal features a highly unusual LP-vehicle structure designed to lock founder Liang Wenfeng's control, plus a tightly concentrated syndicate of Chinese tech and infrastructure giants."]})})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsx("section",{children:e.jsx("p",{children:"The global AI landscape just experienced a massive paradigm shift. DeepSeek's funding round isn't just another tech mega-round â it's a structural rewrite of how a frontier AI lab can scale without surrendering its philosophy. Here is an exclusive, deep-dive analysis into what the deal means for DeepSeek, the future of open-source AI, and the global AI arms race."})}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:'1. The "Unusual" Deal Structure: Ironclad Founder Control'}),e.jsxs("p",{children:["In typical Silicon Valley mega-rounds, massive capital injections mean surrendering significant corporate governance and board seats to Venture Capital (VC) firms. DeepSeek's founder, ",e.jsx("strong",{children:"Liang Wenfeng"}),", just rewrote that playbook."]}),e.jsx("p",{children:"To maintain absolute strategic autonomy, the round was executed through a highly unique structural design:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"The LP Vehicle Conduit:"})," External investment capital does not flow into traditional shares with sweeping voting rights. Instead, it is routed into a custom Limited Partnership (LP) vehicle managed directly by Liang Wenfeng."]}),e.jsxs("li",{children:[e.jsx("strong",{children:'Massive Personal "Skin in the Game":'})," Of the 50 billion yuan raised, Liang Wenfeng personally committed a staggering"," ",e.jsx("strong",{children:"20 billion yuan"})," of his own capital."]})]}),e.jsx(ie,{className:"my-6 border-blue-200 bg-blue-50/40",children:e.jsx(me,{className:"pt-6",children:e.jsxs("p",{className:"m-0",children:[e.jsx("strong",{children:"Why this matters for the community:"})," DeepSeek began as an ideological, self-funded research lab insulated by its quantitative hedge-fund parent, High-Flyer. By maintaining absolute voting and operational control, Liang ensures DeepSeek stays insulated from short
2208-term commercial pressures. They can continue their commitment to open-source, high-efficiency model releases without VC interference."]})})})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"2. The Strategic Syndicate: Meet the New Shareholders"}),e.jsx("p",{children:"DeepSeek intentionally capped the round at a concentrated group of fewer than ten heavyweights. There are no foreign institutional funds on the cap table. Instead, this is a highly synchronized, domestic ecosystem play."}),e.jsx("div",{className:"overflow-x-auto my-6",children:e.jsxs("table",{className:"w-full border-collapse text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-gray-100 text-left",children:[e.jsx("th",{className:"border border-gray-300 p-3",children:"Investor"}),e.jsx("th",{className:"border border-gray-300 p-3",children:"Sector / Domain"}),e.jsx("th",{className:"border border-gray-300 p-3",children:"Strategic Value to DeepSeek"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-3",children:e.jsx("strong",{children:"Liang Wenfeng (CEO)"})}),e.jsx("td",{className:"border border-gray-300 p-3",children:"AI Research / Finance"}),e.jsx("td",{className:"border border-gray-300 p-3",children:"Guarantees ideological independence and total governance control."})]}),e.jsxs("tr",{className:"bg-gray-50",children:[e.jsx("td",{className:"border border-gray-300 p-3",children:e.jsx("strong",{children:"CATL"})}),e.jsx("td",{className:"border border-gray-300 p-3",children:"Energy & Battery Storage"}),e.jsx("td",{className:"border border-gray-300 p-3",children:"Secures power infrastructure, grid stabilization, and next-gen energy solutions for dedicated data centers."})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-3",children:e.jsx("strong",{children:"Tencent & NetEase"})}),e.jsx("td",{className:"border border-gray-300 p-3",children:"Cloud, Gaming & Consumer Tech"}),e.jsx("td",{className:"border border-gray-300 p-3",children:"Provides massive, instant distribution channels to embed DeepSeek models into consumer ecosystems."})]}),e.jsxs("tr",{className:"bg-gray-50",children:[e.jsx("td",{className:"border border-gray-300 p-3",children:e.jsx("strong",{children:"JD.com"})}),e.jsx("td",{className:"border border-gray-300 p-3",children:"E-Commerce & Logistics"}),e.jsx("td",{className:"border border-gray-300 p-3",children:"Drives enterprise-level testing grounds for supply chain automation and LLM-driven retail tech."})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 p-3",children:e.jsx("strong",{children:"National AI Industry Investment Fund"})}),e.jsx("td",{className:"border border-gray-300 p-3",children:"State-Backed Sovereign Fund"}),e.jsx("td",{className:"border border-gray-300 p-3",children:`Cements DeepSeek's status as China's premier, designated "National AI Champion".`})]})]})]})}),e.jsx("h3",{className:"text-xl font-semibold text-blue-700 mb-3 mt-8",children:"The CATL Connection: AI Scale is an Energy War"}),e.jsxs("p",{children:["The inclusion of ",e.jsx("strong",{children:"CATL"})," â the world's largest electric vehicle battery manufacturer â is the most brilliant chess move in this deal. As LLM training and inference scale, compute is no longer just a software limitation; it is an energy limitation. CATL's involvement points directly to DeepSeek building out its own massive, energy-stabilized data centers, leveraging advanced battery-storage systems to bypass grid constraints."]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:'3. Algorithmic Efficiency vs. "Brute Force" Capital'}),e.jsx("p",{children:"US export controls heavily restrict DeepSeek's access to the newest Western hardware (like Nvidia's Blackwell architecture). Because of this, DeepSeek's entire engineering ethos has been built on extreme mathematical optimization and architectural breakthroughs â such as Multi-head Latent Attention and Mixture-of-Experts routing."}),e.jsx("p",{children:"While OpenAI and Anthropic burn billions renting massive public clouds to brute-force their way to AGI through sheer compute scaling, DeepSeek's new $7.4 billion war chest will be weaponized differently:"}),e.jsxs("ol",{className:"list-decimal pl-6 space-y-2",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Domestic Compute Infrastru
2208cture:"})," Building highly customized, domestic data centers optimized at the silicon-to-software level."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Global Talent Retention:"})," Poaching and retaining elite AI researchers globally by offering Silicon Valley-level compensation packages backed by absolute research freedom."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Physical AI & Embodied Agents:"})," Funding the massive synthetic data pipelines required to move from pure text/multimodal models into robotics and embodied AI agents."]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"4. The Verdict: The Underdog Era is Over"}),e.jsx("p",{children:"DeepSeek has officially transitioned from a scrappy, self-funded open-source rebel into an institutionalized, state-aligned titan. They managed to secure Silicon Valley-sized capital while successfully out-negotiating the market to keep the founders firmly in the driving seat."}),e.jsx("p",{children:"For fans of open-source AI, this is a massive win. DeepSeek now has the financial runway to challenge any closed ecosystem in the world, on their own terms â and the LP structure means the lab's research-first culture is locked in by design, not just by goodwill."})]}),e.jsxs("section",{className:"mt-12 bg-gray-50 p-6 rounded-lg",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"FAQ: DeepSeek $50B Funding Round"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"How much did DeepSeek raise in 2026?"}),e.jsx("p",{children:"DeepSeek raised over 50 billion yuan (approximately $7.4 billion USD), valuing the lab at more than $50 billion. Founder Liang Wenfeng personally contributed 20 billion yuan of that total."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Who are DeepSeek's new investors?"}),e.jsx("p",{children:"The syndicate of fewer than ten investors includes CATL, Tencent, NetEase, JD.com, and China's National AI Industry Investment Fund. No foreign institutional capital was accepted."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Why is the deal structure unusual?"}),e.jsx("p",{children:"Capital was routed into a custom Limited Partnership vehicle managed directly by Liang Wenfeng, rather than into voting shares. This preserves total founder control and protects the lab from short-term VC pressure."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Will DeepSeek stay open-source?"}),e.jsx("p",{children:"The entire LP structure was engineered to keep Liang Wenfeng in absolute strategic control â a strong signal that DeepSeek intends to keep shipping open-weight, high-efficiency models like the V-series and R-series."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Why did CATL invest in an AI lab?"}),e.jsx("p",{children:"Training and inference at frontier scale are increasingly bottlenecked by electricity, not silicon. CATL's battery-storage expertise lets DeepSeek build energy-stabilized data centers that bypass grid constraints."})]})]})]})]}),e.jsx(Nn,{})]})]})})]})},RJ=()=>{const t=jn(),n="https://deepseek.ai/blog/deepseek-raises-7-4-billion-bizarre-deal",s={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek Raises $7.4 Billion: A Bizarre Deal Structure and What It Means for AI",datePublished:"2026-06-19T08:00:00+00:00",dateModified:"2026-06-19T08:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:"DeepSeek closed a $7.4 billion (50 billion yuan) funding round at a $50B+ valuation. The deal features an aggressively founder-centric LP structure with zero voting rights for external investors, a five-year lock-up, and strategic backing from CATL, Tencent, and China's National AI Fund.",mainEntityOfPage:{"@type":"WebPage","@id":n}},r={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"How much did DeepSeek raise in its latest funding round?",acceptedA
2208nswer:{"@type":"Answer",text:"DeepSeek raised over $7.4 billion (approximately 50 billion yuan), pushing the company's valuation past the $50 billion mark."}},{"@type":"Question",name:"What makes DeepSeek's funding deal structure unusual?",acceptedAnswer:{"@type":"Answer",text:"The deal uses a Limited Partnership (LP) vehicle managed exclusively by founder Liang Wenfeng, strips external investors of voting rights, imposes a five-year lock-up, and allows only China's National AI Industry Investment Fund to invest directly with voting rights."}},{"@type":"Question",name:"Who are the main investors in DeepSeek's $7.4B round?",acceptedAnswer:{"@type":"Answer",text:"The round is led by founder Liang Wenfeng with roughly $3 billion of his own capital, followed by Tencent (~$1.48B), CATL ($740M), and China's National AI Industry Investment Fund as the only direct equity investor with voting rights."}},{"@type":"Question",name:"Will DeepSeek remain open-source after this funding round?",acceptedAnswer:{"@type":"Answer",text:"The founder-centric LP structure is designed to protect DeepSeek's independence, which is a strong signal for continued open-weight model releases. However, nothing is contractually guaranteed."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek Raises $7.4B: Bizarre Deal Structure & AI Future 2026"}),e.jsx("meta",{name:"description",content:"DeepSeek raised $7.4B at $50B+ valuation. Inside the bizarre LP deal structure â zero voting rights, 5-year lock-up, CATL, Tencent, and what it means for open-source AI."}),e.jsx("link",{rel:"canonical",href:n}),e.jsx("meta",{property:"og:title",content:"DeepSeek Raises $7.4 Billion: A Bizarre Deal Structure and What It Means for AI"}),e.jsx("meta",{property:"og:description",content:"$7.4B raised, $50B+ valuation, founder keeps total control via a custom LP vehicle. Full breakdown of DeepSeek's unusual funding round."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:n}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek Raises $7.4B: Bizarre Deal Structure 2026"}),e.jsx("meta",{name:"twitter:description",content:"Inside the $7.4B deal that valued DeepSeek at $50B+ â zero voting rights, 5-year lock-up, and why the LP structure changes everything."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"transition-opacity duration-300 opacity-100",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"text-gray-500 mb-2",children:"June 19, 2026 ⢠Deep Seek Fan Hub"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-6",children:"DeepSeek Raises $7.4 Billion: A Bizarre Deal Structure and What It Means for AI"}),e.jsx("div",{className:"bg-blue-50 p-6 rounded-lg border border-blue-100 mb-8",children:e.jsxs("p",{className:"text-gray-800",children:[e.jsx("strong",{children:"AI giant DeepSeek"})," has just closed a massive"," ",e.jsx("strong",{children:"$7.4 billion (50 billion yuan)"})," funding round, pushing the company's valuation past the ",e.jsx("strong",{children:"$50 billion mark"}),". But it's not just the astronomical amount making headlines. It's the aggressively founder-centric deal structure that makes this investment truly unique."]})})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsx("section",{children:e.jsx("p",{children:"What exactly happened, and what does this mean for the future of AI models? We break it down for you."})}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:'The "Unusual" Structure: Total Control'}),e.jsxs("p",{children:["The terms of this financing round restrict external influence to an absolute minimum. CEO ",e.jsx("strong",{children:"Liang Wenfeng"})," structured the deal to ensure DeepSeek's independence remains fiercely protected:"]}),e.jsxs("ul",{className:"list-disc pl-6 space-y-3",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Limited Partnership instead of direct equity:"})," Investing in direct shares wasn't an option for most. Instead, investors were required to pool their capital into a limited partnership (LP), managed exclusively by Wenfeng."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Zero voting rights:"})," This arrangement strips external investors of any voting power or operational say."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Five-year lock-up:"})," Capital is locked in for half a decade, preventing investors from selling their stakes in the coming years."]})]}),e.jsx(ie,{className:"my-6 border-blue-200 bg-blue-50/40",children:e.jsx(me,{className:"pt-6",children:e.jsxs("p",{className:"m-0",children:[e.jsx("strong",{children:"The Great Exception:"})," There was one party exempt from these rules: China's ",e.jsx("strong",{children:"National Artificial Intelligence Industry Investment Fund"}),". They were allowed to invest directly in DeepSeek, retaining both their voting rights and liquidity."]})})})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Who is Backing This Funding Round?"}),e.jsx("p",{children:"Confidence in DeepSeek is exceptionally high, which is evident from the strategic partners who have jumped on board:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-3",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"The CEO himself:"})," Liang Wenfeng led by example, reportedly anchoring the round by contributing roughly ",e.jsx("strong",{children:"$3 billion (20 billion yuan)"})," of his own wealth."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Tencent:"}
2208)," The tech giant contributed approximately"," ",e.jsx("strong",{children:"$1.48 billion"}),". This is a strategic move to help keep pace with competitor Alibaba's Qwen model."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"CATL:"})," The battery technology behemoth invested"," ",e.jsx("strong",{children:"$740 million"}),". Their goal? To strategically position themselves to supply the massive energy and storage infrastructure required by power-hungry AI data centers."]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"What Does This Mean for the Future?"}),e.jsxs("p",{children:["With this well-stocked war chest, the roadmap for highly efficient models, such as the anticipated ",e.jsx("strong",{children:"V4-Pro"}),", is securely locked in."]}),e.jsx("p",{children:"For the DeepSeek community, this is fantastic news. It practically guarantees a sustained wave of SEO traffic and interactive engagement on platforms, as developers will flock en masse to test the latest capabilities."}),e.jsxs("p",{children:["Furthermore, DeepSeek's continued focus on driving down inference costs â specifically through the use of ",e.jsx("strong",{children:"Mixture-of-Experts (MoE)"})," ","architectures â validates the long-term viability of local models. It proves that running advanced AI on independent hardware, such as for sovereign archiving systems (like ",e.jsx("strong",{children:"Project VOID"}),"), is not only feasible but represents the future of the industry."]})]}),e.jsxs("section",{className:"mt-12 bg-gray-50 p-6 rounded-lg",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"FAQ: DeepSeek's $7.4 Billion Funding Round"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"How much did DeepSeek raise?"}),e.jsx("p",{children:"DeepSeek raised over $7.4 billion (approximately 50 billion yuan), pushing its valuation past $50 billion."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Why is the deal structure considered bizarre?"}),e.jsx("p",{children:"External investors must invest through an LP vehicle with zero voting rights and a five-year lock-up, while founder Liang Wenfeng retains total control. Only China's National AI Fund was allowed direct equity with voting rights."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Who are the main investors?"}),e.jsx("p",{children:"Liang Wenfeng (~$3B), Tencent (~$1.48B), CATL ($740M), and China's National AI Industry Investment Fund."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Will DeepSeek keep its models open-source?"}),e.jsx("p",{children:"The founder-centric structure strongly signals continued open-weight releases, though nothing is legally guaranteed."})]})]})]})]}),e.jsx("div",{className:"border-t border-gray-200 pt-8 mt-8",children:e.jsx("p",{className:"text-gray-600 italic",children:"What do you think about DeepSeek's new funding structure? Will they be able to keep their models completely open-source now that big tech giants are on board? Let us know your thoughts in the comments below!"})})]}),e.jsx("div",{className:"mt-12",children:e.jsx(Nn,{})})]})})]})},OJ=()=>{const t=jn(),n="https://deepseek.ai/blog/how-to-use-deepseek-v4-better-than-99-percent",s={"@context":"https://schema.org","@type":"BlogPosting",headline:"How to Use DeepSeek V4 Better than 99% of People",datePublished:"2026-06-19T08:00:00+00:00",dateModified:"2026-06-19T08:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:"Master DeepSeek V4 with expert-level tips on the four chat modes, chaining workflows, file uploads, web search, and unlocking the full 1M token context window.",mainEntityOfPage:{"@type":"WebPage","@id":n}},r={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What are the four modes in DeepSeek V4 chat?",acceptedA
2208nswer:{"@type":"Answer",text:"DeepSeek V4 offers four modes: Instant (V4 Flash for quick factual queries), Expert (V4 Pro for complex coding and analysis), Deep Think (chain-of-thought reasoning for high-stakes accuracy), and Vision (beta, for screenshots, diagrams, and handwritten notes)."}},{"@type":"Question",name:"Can you switch modes inside the same DeepSeek V4 conversation?",acceptedAnswer:{"@type":"Answer",text:"Yes. A powerful but underused tactic is to start a coding problem in Expert mode, then switch the same thread to Deep Think and ask it to audit what it just wrote. This catches edge cases and cleaner approaches that Expert mode missed."}},{"@type":"Question",name:"How do you use the 1 million token context window effectively?",acceptedAnswer:{"@type":"Answer",text:"Front-load context before asking your question. Upload strategy documents, spreadsheets, competitor reports, and codebase files, then ask targeted questions. Also prime the conversation first by asking V4 to read all documents and summarize what it noticed before you pose your real question."}},{"@type":"Question",name:"Is DeepSeek V4 Pro really free?",acceptedAnswer:{"@type":"Answer",text:"Yes. Chat.deepseek.com is completely free with no message cap. You get both V4 Pro and V4 Flash, all four modes, file uploads, web search, and the full 1M context window without paying anything. V4 is also open-source under an MIT license."}},{"@type":"Question",name:"How does DeepSeek V4 compare to ChatGPT and Claude?",acceptedAnswer:{"@type":"Answer",text:"V4 Pro is not quite at the level of Claude Opus 4.7 or GPT 5.5 on the hardest reasoning benchmarks, but for coding it is slightly ahead and tops competitive programming benchmarks. On writing, summarizing, research, email drafting, data analysis, and document review, quality is comparable. For tasks with a clear right answer, V4 Pro handles it well. For judgment-heavy tasks, Claude still leads."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"How to Use DeepSeek V4 Better than 99% of People (2026 Guide)"}),e.jsx("meta",{name:"description",content:"Master DeepSeek V4: the 4 chat modes, chaining workflows, file uploads + web search stacking, and how to use the 1M context window like a pro."}),e.jsx("link",{rel:"canonical",href:n}),e.jsx("meta",{property:"og:title",content:"How to Use DeepSeek V4 Better than 99% of People"}),e.jsx("meta",{property:"og:description",content:"The exact workflow pros use: mode chaining, context front-loading, and stacking web search + file uploads on DeepSeek V4."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:n}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"How to Use DeepSeek V4 Better than 99% of People"}),e.jsx("meta",{name:"twitter:description",content:"Unlock the hidden power of DeepSeek V4: mode chaining, 1M token context tricks, and the file upload + web search combo most users miss."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"transition-opacity duration-300 opacity-100",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"text-gray-500 mb-2",children:"June 19, 2026 ⢠Deep Seek Fan Hub"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-6",children:"How to Use DeepSeek V4 Better than 99% of People"}),e.jsx("div",{className:"bg-blue-50 p-6 rounded-lg border border-blue-100 mb-8",children:e.jsxs("p",{className:"text-gray-800",children:["For the past three weeks, power users have used ",e.jsx("strong",{children:"DeepSeek V4"})," as their primary AI tool â and for roughly ",e.jsx("strong",{children:"80% of their work"}),", they haven't opened ChatGPT or Claude once. The secret? V4 ships with features almost nobody uses, and once you turn them on, the output stops feeling like a free tool and starts rivaling what you're paying $20+ a month for elsewhere."]})})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsx("section",{children:e.jsx("p",{children:"This guide walks through the exact workflow â the modes, the toggles, the context tricks, and the honest limits â so you can decide whether DeepSeek V4 actually replaces your subscription or just supplements it."})}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"What DeepSeek V4 Actually Is"}),e.jsxs("p",{children:["DeepSeek V4 launched on ",e.jsx("strong",{children:"April 24, 2026"}),", and ships in two variants:"]}),e.jsxs("ul",{className:"list-disc pl-6 space-y-3",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"V4 Pro"})," is the stronger reasoning model, performing in the same range as Claude Opus 4.7 and GPT 5.5 on most benchmarks at a fraction of the cost."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"V4 Flash"})," is the faster, cheaper sibling, built for everyday tasks where speed matters more than depth."]})]}
2208),e.jsxs("p",{children:["Both support a ",e.jsx("strong",{children:"1 million token context window"})," â enough to feed in an entire codebase or a year of company documents in a single conversation."]}),e.jsx(ie,{className:"my-6 border-blue-200 bg-blue-50/40",children:e.jsx(me,{className:"pt-6",children:e.jsxs("p",{className:"m-0",children:[e.jsx("strong",{children:"The kicker:"})," ",e.jsx("em",{children:"chat.deepseek.com"})," is"," ",e.jsx("strong",{children:"completely free with no message cap"}),". Sign up with an email and you get both models, all four modes, file uploads, web search, and the full context window without paying anything. And because V4 is open-source under an MIT license, developers can download the weights and self-host or fine-tune."]})})})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The Four Modes â and Why Most People Misuse Them"}),e.jsx("p",{children:"The single biggest mistake users make is using one mode for everything. The chat interface offers four:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-3",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Instant"}),` runs on V4 Flash. Use it for quick factual questions and simple summaries â "What's the capital of France?" type queries where deep reasoning isn't needed.`]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Expert"})," runs on V4 Pro. This is where you go for complex coding and multi-step analysis. The difference on a coding task is noticeable: Instant gives you a working answer, while Expert gives you a working answer with better architecture, edge case handling, and cleaner logic."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Deep Think"})," is the standout. It uses chain-of-thought reasoning, showing its full step-by-step thinking before the final answer. You can watch it evaluate different approaches in real time, which lets you catch flawed reasoning before it becomes flawed output. Use it whenever accuracy matters more than speed."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Vision"})," (still in beta) handles screenshots, diagrams, whiteboard photos, and handwritten notes."]})]}),e.jsx(ie,{className:"my-6 border-blue-200 bg-blue-50/40",children:e.jsx(me,{className:"pt-6",children:e.jsxs("p",{className:"m-0",children:[e.jsx("strong",{children:"The rule of thumb:"})," Instant for quick, Expert for complex, Deep Think for high-stakes, Vision for visual. Using the wrong mode is the single biggest reason people think DeepSeek isn't as good as ChatGPT or Claude."]})})})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The Power Move: Chaining Modes in One Conversation"}),e.jsxs("p",{children:["Here's a tactic almost nobody uses: you can ",e.jsx("strong",{children:"switch modes inside a single conversation"}),". Start coding problems in Expert mode to get a working solution, then switch the same thread to Deep Think and ask it to audit what it just wrote. About half the time, Deep Think catches an edge case or a cleaner approach Expert missed."]}),e.jsxs("p",{children:["Two reasoning depths on the same problem, ",e.jsx("strong",{children:"no copy-paste between tools"}),"."]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Web Search and File Uploads"}),e.jsxs("p",{children:["Before sending a message, you can toggle ",e.jsx("strong",{children:"web search"}),". With it on, V4 pulls real-time information from the internet and includes linked citations you can verify. Turn it on for anything time-sensitive â news, pricing, market data, product updates. Leave it off when the training data is enough, and you'll get faster responses without citation noise."]}),e.jsxs("p",{children:[e.jsx("strong",{children:"File uploads"})," are even more underused. You can drop in PDFs, code files, spreadsheets, and documents directly. Upload a 10-page contract and ask for the three biggest risks. Upload your codebase and ask where the performance bottlenecks are. The model references specific sections in its answer."]}
2208),e.jsx(ie,{className:"my-6 border-blue-200 bg-blue-50/40",children:e.jsx(me,{className:"pt-6",children:e.jsxs("p",{className:"m-0",children:[e.jsx("strong",{children:"The real magic is stacking all three."}),` Upload a competitor's product page as a PDF, turn on web search, and ask, "What are they doing better than us right now?" V4 analyzes the PDF, pulls in their latest announcements and reviews, and returns a comparison you couldn't have built manually in under an hour.`]})})})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The 1% Problem: How to Actually Use a Million-Token Context Window"}),e.jsxs("p",{children:["The average user loads a few paragraphs into a conversation â about ",e.jsx("strong",{children:"1% of the available context window"})," â which is why output always feels generic."]}),e.jsxs("p",{children:["The fix is to ",e.jsx("strong",{children:"front-load context before asking your question"}),`. Instead of asking "How should I improve my marketing strategy?" with nothing else, upload your existing strategy doc, your last three months of campaign data, and your competitor's latest annual report, then ask. The same question produces a response that references actual retention numbers, flags specific competitive threats, and suggests positioning changes based on your weakest metrics.`]}),e.jsxs("p",{children:["There's a second layer: ",e.jsx("strong",{children:"prime the conversation before asking your real question"}),`. Send a framing message like, "I'm uploading three documents. Read all three and tell me what you noticed before I ask any questions." V4 surfaces patterns you didn't ask about, and by the time you ask your real question, it already has a working model of your situation rather than treating each document in isolation.`]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The Honest Verdict on Paid Models"}),e.jsx("p",{children:"V4 Pro is not quite at the level of Claude Opus 4.7 or GPT 5.5 on the hardest reasoning benchmarks. But for the vast majority of everyday tasks, the difference is invisible or too small to justify paying 8â9Ã more."}),e.jsxs("ul",{className:"list-disc pl-6 space-y-3",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Coding:"})," V4 Pro is slightly ahead and tops competitive programming benchmarks."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Math:"})," Within a few percentage points but noticeably behind on the hardest tasks."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Writing, summarizing, research, email drafting, data analysis, document review:"})," Quality is comparable."]})]}),e.jsxs("p",{children:[e.jsx("strong",{children:"The decision rule:"})," if a task has a clear right answer (code that runs or doesn't), V4 Pro handles it. If it requires judgment â evaluating whether a strategy makes sense, catching subtle tone issues â reach for Claude."]}),e.jsx(ie,{className:"my-6 border-blue-200 bg-blue-50/40",children:e.jsx(me,{className:"pt-6",children:e.jsxs("p",{className:"m-0",children:[e.jsx("strong",{children:"For developers:"})," V4 Flash is ",e.jsx("strong",{children:"90 to 100 times cheaper"})," than Claude Opus 4.7 on the API."]})})})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Three Things to Know Before Going All In"}),e.jsx("p",{children:"The guide closes with three honest caveats:"}),e.jsxs("ol",{className:"list-decimal pl-6 space-y-3",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Data residency:"})," DeepSeek is a Chinese company, so conversations may be stored on servers subject to Chinese data regulations â fine for personal use, but evaluate compliance before using it with sensitive business data."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Content restrictions:"})," There are restrictions on politically sensitive topics related to China; you'll rarely hit them in professional work, but they exist."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Ecosystem gap:"})," Where DeepSeek doesn't compete is ecosystem integration â there's no equivalent to Claude Projects and Artifacts, ChatGPT's plugin store, or Google's Workspace integration. V4 is a standalone chat and API."]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Bottom Line"}),e.jsxs("p",{children:["DeepSeek V4 gives you frontier-adjacent output for free, but only if you stop treating it like a basic chatbot. Pick the right mode for each task, chain modes within a single conversation, stack web search and file uploads, and â most importantly â ",e.jsx("strong",{children:"front-load your context instead of asking one-line questions"}),". Do that and you'll cover roughly 80% of what you currently pay for. Reach for Claude or GPT for the tail â hard reasoning, the judgment calls, and the ecosystem features that DeepSeek doesn't yet have."]})]}),e.jsxs("section",{className:"mt-12 bg-gray-50 p-6 rounded-lg",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"FAQ: Using DeepSeek V4 Like a Pro"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"What are the four modes in DeepSeek V4?"}),e.jsx("p",{children:"Instant (V4 Flash for quick facts), Expert (V4 Pro for c
2208oding and analysis), Deep Think (chain-of-thought for high-stakes accuracy), and Vision (beta, for images and handwritten notes)."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Can I switch modes in the same conversation?"}),e.jsx("p",{children:"Yes. A powerful workflow is to solve a coding problem in Expert mode, then switch to Deep Think and ask it to audit the solution. It often catches edge cases Expert missed."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"How do I use the 1M token context window effectively?"}),e.jsx("p",{children:"Front-load context before asking your question. Upload strategy docs, spreadsheets, and competitor reports first, then ask targeted questions. Also prime the conversation by asking V4 to read and summarize all uploaded documents before posing your real question."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Is DeepSeek V4 Pro really free?"}),e.jsx("p",{children:"Yes â chat.deepseek.com is completely free with no message cap, offering both V4 Pro and V4 Flash, all modes, file uploads, web search, and the full 1M context window. V4 is also open-source under the MIT license."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"How does V4 compare to ChatGPT and Claude?"}),e.jsx("p",{children:"V4 Pro is slightly behind on the hardest reasoning benchmarks but comparable on writing, summarizing, research, and data analysis. It leads on coding benchmarks. For judgment-heavy tasks, Claude remains the better choice."})]})]})]})]}),e.jsx("div",{className:"border-t border-gray-200 pt-8 mt-8",children:e.jsx("p",{className:"text-gray-600 italic",children:"What's your favorite DeepSeek V4 mode? Have you tried chaining modes in one conversation? Share your tips in the comments below!"})})]}),e.jsx("div",{className:"mt-12",children:e.jsx(Nn,{})})]})})]})},FJ="/assets/dspark-naive-decoding-dX1e5XYM.jpg",VJ="/assets/dspark-speculative-pattern-CPezHi_6.jpg",BJ="/assets/dspark-architecture-DxwWjg1H.jpg",zJ=()=>{const t=jn(),[n,s]=S.useState(!1),r={"@context":"https://schema.org","@type":"BlogPosting",headline:"How Speculative Decoding Makes LLMs Faster Without Retraining (and What DSpark Adds)",datePublished:"2026-06-29T08:00:00+00:00",dateModified:"2026-06-29T08:00:00+00:00",author:{"@type":"Person",name:"Frank Haarman"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:"Speculative decoding speeds up LLM inference with byte-identical output and no retraining. Here's how it works â and how DeepSeek's DSpark pushes per-user speed 57â85%.",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-dspark-speculative-decoding"}},a={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What is speculative decoding in simple terms?",acceptedAnswer:{"@type":"Answer",text:'A small "draft" model guesses several upcoming tokens and a large "target" model verifies them all in one pass, keeping the correct ones. It produces the same output the large model would have, but faster.'}},{"@type":"Question",name:"Does speculative decoding change the model's output quality?",acceptedAnswer:{"@type":"Answer",text:"No. Done correctly it is lossless â the output is byte-for-byte identical to what the target model would generate alone."}},{"@type":"Question",name:"What problem does DSpark solve that earlier methods didn't?",acceptedAnswer:{"@type":"Answer",text:"It fixes 'suffix decay' by adding a lightweight serial head, and adds confidence-scheduled verification so the server skips doomed tokens under load."}},{"@type":"Question",name:"How much faster does DSpark make inference?",acceptedAnswer:{"@type":"Answer",text:"On DeepSeek's V4 Flash and V4 Pro serving stacks, roughly 57â85% faster per-user generation at the same throughput on the same hardware."}}
2208,{"@type":"Question",name:"Does DSpark only work on DeepSeek models?",acceptedAnswer:{"@type":"Answer",text:"No. The draft head is an attachable component that also works on Qwen and Gemma with appropriate draft checkpoints."}},{"@type":"Question",name:"Can I reproduce these speedups on a laptop?",acceptedAnswer:{"@type":"Answer",text:"Usually not. Speculative decoding needs a draft model roughly 10â30à faster than the target and a properly trained draft head."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DSpark Speculative Decoding: 57â85% Faster LLM Inference"}),e.jsx("meta",{name:"description",content:"DeepSeek's DSpark uses speculative decoding to make V4, Qwen and Gemma 57â85% faster with byte-identical output and no retraining. How it works."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-dspark-speculative-decoding"}),e.jsx("meta",{property:"og:title",content:"DSpark Speculative Decoding: 57â85% Faster LLM Inference"}),e.jsx("meta",{property:"og:description",content:"How DeepSeek's DSpark speculative decoding pushes LLM inference 57â85% faster without retraining â lossless, open-source, production-proven."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-dspark-speculative-decoding"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DSpark Speculative Decoding: 57â85% Faster LLM Inference"}),e.jsx("meta",{name:"twitter:description",content:"How DeepSeek's DSpark speculative decoding pushes LLM inference 57â85% faster without retraining â lossless and open-source."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"transition-opacity duration-300 opacity-100",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"text-gray-500 mb-2",children:"June 29, 2026 ⢠Frank Haarman"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-6",children:"How Speculative Decoding Makes LLMs Faster Without Retraining (and What DSpark Adds)"}),e.jsx("div",{className:"bg-blue-50 p-6 rounded-lg border border-blue-100 mb-8",children:e.jsxs("p",{className:"text-gray-800",children:[e.jsx("strong",{children:"In short:"})," Speculative decoding speeds up LLM inference with byte-identical output and no retraining. Here's how it works â and how DeepSeek's ",e.jsx("strong",{children:"DSpark"})," ","pushes per-user speed 57â85%."]})})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsxs("p",{children:["If you run large language models, the single biggest cost and latency problem is decoding: the model produces text one token at a time, and there is a whole family of techniques designed to break that bottleneck without touching the model's weights. The most important of these is ",e.jsx("strong",{children:"speculative decoding"}),". This article explains what it is, why it works, and what DeepSeek's DSpark â a concrete, open-source implementation â changes to squeeze out 57â85% more per-user speed on the exact same hardware, with identical outputs."]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Why decoding is slow: a memory problem, not a compute problem"}),e.jsx("p",{children:`A language model is usually described as a "next-token predictor": it produces one token, feeds it back in, and produces the next. For a six-token answer, that's six full forward passes through the network, so latency grows linearly with output length.`}),e.jsxs("p",{children:["The deeper issue is that this loop is"," ",e.jsx("strong",{children:"memory-bound, not compute-bound"}),`. During generation the GPU isn't "thinking harder" â it spends most of its time waiting, reloading the model's weights from memory to process a single token at a time. The hardware is underused. Every serious inference-speed technique is really trying to get more useful work done per memory load, rather than simply adding more compute.`]}),e.jsxs("figure",{className:"my-8",children:[e.jsx("img",{src:FJ,alt:"Diagram of naive autoregressive decoding showing six sequential forward passes for six tokens, with the GPU bottlenecked by memory loads.",width:1280,height:720,loading:"lazy",className:"rounded-lg border border-gray-200 w-full h-auto"}),e.jsx("figcaption",{className:"text-sm text-gray-500 text-center mt-2",children:"Why naive decoding is slow: 6 forward passes for 6 tokens, GPU memory-bound."})]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"What speculative decoding actually does"}),e.jsxs("p",{children:["Speculative decoding attacks that waste by pairing two models: a small, fast ",e.jsx("strong",{children:"draft model"})," and the big"," ",e.jsx("strong",{children:"target model"}),' you actually want to serve. The draft model guesses an entire block of upcoming tokens at once â say six â and the target model checks all six in a single forward pass. You keep the longest correct prefix "for free," stop at the first wrong guess, let the target correct it, and continue from there.']}),e.jsxs("p",{children:["The crucial property is that the result is"," ",e.jsx("strong",{children:"byte-for-byte identical"})," to what the target model would have produced on its own. It is lossless in that sense â you are not trading quality for speed â and you have collapsed what would have been several expensive target passes into one."]}),e.jsx("p",{children:"That leads to the equation that governs every variation of the idea:"}),e.jsxs("blockquote",{className:"border-l-4 border-blue-500 bg-blue-50 p-4 my-4",children:[e.jsx("strong",{children:"Time per token"})," = (draft time + verify time) ÷ tokens accepted per round."]}),e.jsx("p",{children:"This exposes three independent levers: a faster drafter, a better drafter (so more of its guesses get accepted), and a smarter verifier. Different methods pull different levers, and that's where the trade-offs live."}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The two older approaches â and the weakness of each"}),e.jsx("p",{children:"Before DSpark, draft models tended to fall into two camps, each with a built-in flaw."}),e.jsxs("p",{children:[e.jsx("strong",{children:"Autoregressive drafters"})," (such as Eagle 3) generate each guess conditioned on the previous one. That makes them accurate, but slow, and they tend to get stuck producing very small blocks â limiting how much you can win per round."]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Parallel drafters"}),` (such as DFlash) produce the whole block in one shot. That's fast and allows much larger blocks, but each guessed token ignores the others, so the tail of the block "drifts" and gets rejected by the verifier. The DSpark paper names this failure mode `,e.jsx("strong",{children:"suffix decay"}),": on Qwen-3, a parallel drafter's acceptance rate slides down sharply toward the end of each block."]}),e.jsxs("figure",{className:"my-8",children:[e.jsx("img",{src:VJ,alt:"Speculative decoding pattern: a small draft model proposes six candidate tokens, the target model verifies them in one pass, and only the longest correct prefix is kept.",width:1280,height:720,loading:"lazy",className:"rounded-lg border border-gray-200 w-full h-auto"}),e.jsx("figcaption",{className:"text-sm text-gray-500 text-center mt-2",children:"The speculative decoding pattern: draft proposes 6, target verifies in one pass, keep longest correct prefix."})]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"DSpark's first idea: a lightweight serial head"}),e.jsxs("p",{children:["DSpark keeps a parallel draft backbone â so it stays fast and emits every position at once, like DFlash â but bolts on one"," ",e.jsx("strong",{children:"lightweight serial head"})," whose only job is to let each token glance at the one before it. That's just enough autoregressivity to kill suffix decay without giving up the parallel speedup."]}),e.jsxs("p",{children:["The measured effect on Qwen-3: DSpark accepts roughly"," ",e.jsx("strong",{children:"30% longer blocks than Eagle 3"})," and"," ",e.jsx("strong",{children:"16â18% more than DFlash"}),". More accepted tokens per round means fewer expensive target passes overall."]}),e.jsxs("figure",{className:"my-8",children:[e.jsx("img",{src:BJ,alt:"DSpark architecture: a parallel draft backbone, a lightweight serial head linking adjacent tokens, a confidence head scoring each token, and a hardware-aware scheduler choosing how much of the block to verify.",width:1280,height:720,loading:"lazy",className:"rounded-lg border border-gray-200 w-full h-auto"}),e.jsx("figcaption",{className:"text-sm text-gray-500 text-center mt-2",children:"DSpark architecture: parallel backbone + lightweight serial head + confidence-scheduled verifier."})]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"DSpark's second idea: confidence-scheduled verification"}),e.jsx("p",{children:"The second contribution targets a problem that only shows up under real serving load. Normally the target verifies every token in a proposed block â including tail tokens that are probably going to be rejected anyway. Under heavy traffic, that's GPU time stolen from other users."}),e.jsxs("p",{children:["DSpark adds a ",e.jsx("strong",{children:"confidence head"})," that scores each proposed token, predicting which ones will survive verification, plus a ",e.jsx("strong",{children:"hardware-aware scheduler"})," ","that watches how loaded the server is. Under light load it verifies the full block; under heavy load it verifies only the confident prefix and skips the doomed tail. This is what turns speculative decoding from a single-request trick into a fleet-level serving optimization."]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The production numbers â and why they generalize"}),e.jsxs("p",{children:["DeepSeek's headline figures come from its own V4 Flash and V4 Pro serving stacks: at the same total throughput, each user receives their tokens ",e.jsx("strong",{children:"57% to 85% faster"}),`, with no extra hardware. The wider "50 to 400%" range you'll sometimes see refers to corner cases on the serving frontier; 57â85% is the typical, conservative outcome.`]}),e.jsxs("p",{children:["Just as important, the DSpark head is a single attachable component rather than a DeepSeek-specific architecture. With the right draft checkpoints it also works on"," ",e.jsx("strong",{children:"Qwen"})," and ",e.jsx("strong",{children:"Gemma"}),", which is why it's reasonable to expect other labs to adopt the same approach in their own inference stacks. DeepSeek open-sourced the training code and draft-model checkpoints, so the method is reproducible rather than a closed internal trick."]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"A reality check on reproducing the speedup"}),e.jsx("p",{children:"One of the most useful parts of the source video is a hands-on replication attempt on an Apple M2 Max, pairing a 0.6B draft model with an 8B target. The behavior matched the paper qual
2208itatively â high acceptance on code and reasoning prompts, lower on open-ended chat â and three of four outputs were byte-identical to the target, with one flipping on a near-tie during batched verification."}),e.jsxs("p",{children:["But it ran ",e.jsx("em",{children:"slower"}),", not faster. The reason is instructive: the draft model was only about 3.5Ã faster than the target, while speculative decoding generally needs a"," ",e.jsx("strong",{children:"10â30Ã speed ratio"})," to pay off â and the author didn't have the actual trained DSpark draft head. The mechanism worked; the speedup didn't. The lesson is that the headline numbers depend entirely on having a properly trained, properly sized draft model, which is exactly what the released checkpoints provide."]}),e.jsxs("section",{className:"mt-12 bg-gray-50 p-6 rounded-lg",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Frequently Asked Questions"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"What is speculative decoding in simple terms?"}),e.jsx("p",{children:`It's a technique where a small "draft" model guesses several upcoming tokens and a large "target" model verifies them all in one pass, keeping the correct ones. It produces the same output the large model would have, but faster.`})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Does speculative decoding change the model's output quality?"}),e.jsx("p",{children:"No. Done correctly it is lossless â the output is byte-for-byte identical to what the target model would generate alone. You are speeding up how tokens are produced, not what they are."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"What problem does DSpark solve that earlier methods didn't?"}),e.jsx("p",{children:'It fixes "suffix decay" â the tendency of fast parallel drafters to produce a block whose tail gets rejected â by adding a lightweight serial head, and it adds confidence-scheduled verification so the server skips doomed tokens under load.'})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"How much faster does DSpark make inference?"}),e.jsx("p",{children:`On DeepSeek's own V4 Flash and V4 Pro serving stacks, it delivers roughly 57â85% faster per-user generation at the same throughput, on the same hardware. Wider numbers like "up to 400%" describe corner cases, not the typical result.`})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Does DSpark only work on DeepSeek models?"}),e.jsx("p",{children:"No. The draft head is an attachable component that also works on models such as Qwen and Gemma, given appropriate draft checkpoints, which is why it's expected to generalize across inference stacks."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Can I reproduce these speedups on a laptop?"}),e.jsx("p",{children:"Usually not. Speculative decoding needs a draft model roughly 10â30Ã faster than the target and a properly trained draft head; on consumer hardware with a weak speed ratio it can run slower than plain decoding, even when the outputs are correct."})]})]})]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Bottom line"}),e.jsx("p",{children:"Speculative decoding is the most practical way to make LLM inference faster without retraining or quantizing â and it's lossless. DSpark is two clean ideas stacked together: a semi-autoregressive draft head that kills suffix decay so more tokens are accepted per round, and a confidence-scheduled verifier that stops wasting GPU on doomed tail tokens under load. Together they yield roughly 57â85% per-user speedups in real production serving, on models including DeepSeek V4, Qwen and Gemma, with the training code and checkpoints openly available. If you serve LLMs at scale, it's worth a serious look."})]}),e.jsxs("div",{className:"mt-12 mb-12 border-t border-b border-gray-200 py-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Articles"}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx("a",{href:"/blog/deepseek-v4-unveiled-1-6-trillion-parameters",className:"text-blue-600 hover:underline",children:"DeepSeek V4 Unveiled: 1.6 Trillion Parameters"}),e.jsx("a",{href:"/blog/deepseek-v4-flash-review",className:"text-blue-600 hover:underline",children:"DeepSeek V4 Flash Review"}),e.jsx("a",{href:"/blog/deepseek-v4-compressed-attention",className:"text-blue-600 hover:underline",children:"DeepSeek V4 Compressed Attention"}),e.jsx("a",{href:"/blog/how-to-use-deepseek-v4-better-than-99-percent",className:"text-blue-600 hover:underline",children:"How to Use DeepSeek V4 Better than 99% of People"})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-white bg-[#0066FF] hover:bg-[#0066FF]/90 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Add to Chrome - It's Free",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]}),e.jsxs("button",{onClick:()=>s(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-[#0066FF] text-base font-medium rounded-full text-[#0066FF] bg-white hover:bg-blue-50 transition-all shadow-[0_4px_14px_0_rgba(0,102,255,0.39)] hover:shadow-[0_6px_20px_rgba(0,102,255,0.23)] hover:transform hover:translate-y-[-1px]","aria-label":"Create AI Agents",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5","aria-hidden":"true"})]})]})]})]})}),e.jsx(ar,{isOpen:n,onClose:()=>s(!1)})]})},UJ="/assets/dspark-inside-hero-Bm1psfq3.jpg",qJ=()=>{const t=jn(),n="https://deepseek.ai/blog/inside-deepseek-dspark-lossless-inference",s={"@context":"https://schema.org","@type":"BlogPosting",headline:"Inside DeepSeek's DSpark: How Speculative Decoding Speeds Up LLM Inference Without Losing Quality",datePublished:"2026-07-03T08:00:00+00:00",dateModified:"2026-07-03T08:00:00+00:00",author:{"@type":"Person",name:"Frank Haarman"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},image:"https://deepseek.ai/og-image.png",description:"A deep dive into DeepSeek's DSpark: the semi-autoregressive drafter, confidence head and hardware-aware scheduler that make LLM inference 60â85% faster with byte-identical output.",mainEntityOfPage:{"@type":"WebPage","@id":n}},r={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"Inside DeepSeek's DSpark",
2208item:n}]},a={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"Is DSpark lossless?",acceptedAnswer:{"@type":"Answer",text:"Yes. DSpark is a speculative decoding system, so the target model verifies every draft token. The final output is byte-for-byte identical to what the target model would have produced on its own."}},{"@type":"Question",name:"How is DSpark different from Medusa or EAGLE?",acceptedAnswer:{"@type":"Answer",text:"Medusa-style parallel drafters suffer from suffix decay â accuracy collapses on later tokens. DSpark adds a small serial 'Markov head' that conditions later drafts on earlier ones, keeping deep-position accuracy high while staying fast."}},{"@type":"Question",name:"What is the confidence head?",acceptedAnswer:{"@type":"Answer",text:"A lightweight classifier that scores how likely a draft is to be accepted. Low-confidence drafts are discarded before verification, so the GPU never wastes a forward pass on drafts that would fail anyway."}},{"@type":"Question",name:"How much faster is DSpark in production?",acceptedAnswer:{"@type":"Answer",text:"DeepSeek reports 60â85% faster per-user generation and up to ~6.6à higher throughput while holding a 120 tokens/second latency floor on V4-Pro and V4-Flash serving stacks."}},{"@type":"Question",name:"Is DSpark open source?",acceptedAnswer:{"@type":"Answer",text:"Yes. The DSpark module and the DeepSpec training/evaluation codebase are released under the MIT license, with draft heads that also work on Qwen and Gemma."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Inside DeepSeek DSpark: Lossless 60â85% Faster LLM Inference"}),e.jsx("meta",{name:"description",content:"Inside DeepSeek's DSpark: the semi-autoregressive drafter, confidence head and hardware-aware scheduler that make LLM inference 60â85% faster with byte-identical output."}),e.jsx("link",{rel:"canonical",href:n}),e.jsx("meta",{property:"og:title",content:"Inside DeepSeek DSpark: Lossless 60â85% Faster LLM Inference"}),e.jsx("meta",{property:"og:description",content:"A deep dive into the semi-autoregressive drafter, confidence head and hardware-aware scheduler behind DSpark â DeepSeek's speculative decoding engine."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:n}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"Inside DeepSeek DSpark: Lossless 60â85% Faster LLM Inference"}),e.jsx("meta",{name:"twitter:description",content:"How DSpark's drafter, confidence head and scheduler unlock 60â85% faster LLM inference without losing quality."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"transition-opacity duration-300 opacity-100",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"text-gray-500 mb-2",children:"July 3, 2026 · Frank Haarman"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-6",children:"Inside DeepSeek's DSpark: How Speculative Decoding Speeds Up LLM Inference Without Losing Quality"}),e.jsxs("figure",{className:"mb-8",children:[e.jsx("img",{src:UJ,alt:"Diagram of DSpark speculative decoding: a small draft model emits candidate tokens that a large target LLM verifies in parallel, accepting a prefix and rejecting the first wrong token.",width:1280,height:720,fetchPriority:"high",decoding:"async",className:"rounded-lg border border-gray-200 w-full h-auto"}),e.jsx("figcaption",{className:"text-sm text-gray-500 text-center mt-2",children:"DSpark at a glance: draft, verify in parallel, keep the correct prefix."})]}),e.jsx("div",{className:"bg-blue-50 p-6 rounded-lg border border-blue-100 mb-8",children:e.jsxs("p",{className:"text-gray-800",children:[e.jsx("strong",{children:"In short:"})," DSpark is DeepSeek's speculative decoding engine. It pairs a small semi-autoregressive drafter with a confidence head and a hardware-aware scheduler to make LLM inference ",e.jsx("strong",{children:"60â85% faster per user"})," and up to ",e.jsx("strong",{children:"~6.6à higher throughput"})," â with output that is byte-for-byte identical to the target model."]})})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsx("p",{children:"Serving a large language model at scale is a bandwidth problem more than a compute problem. During generation the GPU spends most of its time reloading weights from memory to produce a single token, then doing it all again for the next one. The arithmetic units sit idle. Every serious inference-speed technique is really about getting more useful tokens out of each memory load."}),e.jsxs("p",{children:["Speculative decoding is the cleanest answer we have to that problem, and ",e.jsx("strong",{children:"DSpark"})," is DeepSeek's production implementation of it â the piece that pushes V4-Pro and V4-Flash into the 120-tokens-per-second range without changing a single weight of the served model. For a broader primer on the technique itself, see"," ",e.jsx("a",{href:"/blog/deepseek-dspark-speculative-decoding",className:"text-blue-600 underline hover:text-blue-700",children:"how speculative decoding makes LLMs faster without retraining"}),". Here is what is inside it."]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The idea in one paragraph"}),e.jsxs("p",{children:["A small, cheap ",e.jsx("strong",{children:"draft model"})," guesses a block of upcoming tokens. The big ",e.jsx("strong",{children:"target model"})," you actually want to serve verifies all of them in a"," ",e.jsx("strong",{children:"single forward pass"}),". You keep the longest correct prefix for free, stop at the first wrong guess, let the target correct it, and continue. Rejection sampling on the logits guarantees the distribution is unchanged â the final text is ",e.jsx("em",{children:"byte-identical"})," to what the target would have produced alone."]}),e.jsx("p",{children:"The governing equation of every variant:"}),e.jsxs("blockquote",{className:"border-l-4 border-blue-500 bg-blue-50 p-4 my-4",children:[e.jsx("strong",{children:"Time per token"})," â (draft time + verify time) ÷ accepted tokens per round"]}
2208),e.jsxs("p",{children:["You win when the drafter is cheap ",e.jsx("em",{children:"and"})," accurate, and when the number of accepted tokens per round stays high. Every DSpark design choice targets one of those three terms."]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The drafter dilemma DSpark solves"}),e.jsx("p",{children:"The industry has been stuck between two bad options for the drafter:"}),e.jsxs("ul",{className:"list-disc pl-6 my-4 space-y-2",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Autoregressive drafters"})," (a smaller LLM generating tokens one by one) are accurate but slow â the draft cost itself eats the speedup."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Parallel drafters"})," like Medusa emit all positions at once from a shared hidden state. Fast, but they suffer from ",e.jsx("strong",{children:"suffix decay"}),": position 1 is fine, position 2 is okay, position 5 is essentially a coin flip, because later tokens are not conditioned on earlier ones."]})]}),e.jsxs("p",{children:["DSpark's drafter is ",e.jsx("strong",{children:"semi-autoregressive"}),". A parallel backbone proposes candidates cheaply, then a tiny serial ",e.jsx("strong",{children:"Markov head"}),' â small enough that it does not blow the latency budget â rewrites each later position conditioned on the earlier ones. The result is Medusa-class speed with much better deep-position accuracy, which directly raises the "accepted tokens per round" term.']}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The confidence head: don't verify what will fail"}),e.jsx("p",{children:"Even a good drafter emits some drafts that are obviously going to be rejected. Verifying them anyway means paying the target-model forward pass for nothing."}),e.jsxs("p",{children:["DSpark adds a lightweight ",e.jsx("strong",{children:"confidence head"})," that scores each candidate before it reaches the verifier. Drafts below a threshold are dropped and the round falls back to a shorter, safer draft. Under load, dropping doomed drafts is a bigger win than adding more drafts â it protects the verifier's time."]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The hardware-aware scheduler"}),e.jsx("p",{children:"Speculative decoding has a fixed-cost problem: every rejected token wasted a verify slot. The optimal draft length depends on how much spare verifier capacity you actually have, which in a real cluster changes second by second with concurrent requests."}),e.jsxs("p",{children:["DSpark's scheduler watches the GPU load and"," ",e.jsx("strong",{children:"adapts draft length dynamically"}),". When the verifier has slack it drafts longer and eats the bandwidth. When the cluster is saturated it drafts shorter, so rejected tokens cost less. The stated result: per-user speed stays near its peak ",e.jsx("em",{children:"and"})," aggregate throughput holds â DeepSeek reports up to ~6.6Ã throughput at a 120 tokens/second latency floor on V4-Pro and V4-Flash."]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"What the numbers actually mean"}),e.jsxs("p",{children:['The headline "60â85% faster" is ',e.jsx("em",{children:"per-user generation speed"}),", on the same GPUs, with the same model weights, producing the same text. That is the important framing:"]}),e.jsxs("ul",{className:"list-disc pl-6 my-4 space-y-2",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"No retraining."})," DSpark is attached to a frozen target model; only the draft head is trained."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"No quality trade-off."})," Rejection sampling guarantees the output distribution is preserved."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"No new hardware."})," The speedup comes from using bandwidth the GPU was already paying for."]})]}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Open source and portable"}),e.jsxs("p",{children:["DSpark and the accompanying ",e.jsx("strong",{children:"DeepSpec"})," training and evaluation codebase are MIT-licensed. The draft head is not specific to DeepSeek's model family â DeepSeek publishes draft checkpoints that work on ",e.jsx("strong",{children:"Qwen"})," and"," ",e.jsx("strong",{children:"Gemma"}),", and the training recipe is documented so teams can build drafters for other targets."]}),e.jsx("p",{children:"For serving teams, the practical takeaway is that a bandwidth bottleneck you thought was a hardware ceiling is really a scheduling problem. DSpark is one concrete way to reclaim it."}),e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"FAQ"}),e.jsx("h3",{className:"text-xl font-semibold mt-6 mb-2",children:"Is DSpark lossless?"}),e.jsx("p",{children:"Yes. It is a speculative decoding system, so the target model verifies every draft token. The final output is byte-for-byte identical to what the target would have produced."}),e.jsx("h3",{className:"text-xl font-semibold mt-6 mb-2",children:"How is it different from Medusa or EAGLE?"}),e.jsx("p",{children:"Medusa-style parallel drafters suffer from suffix decay. DSpark's semi-autoregressive drafter adds a small serial Markov head that conditions later positions on earlier ones, keeping deep-position accuracy high."}),e.jsx("h3",{className:"text-xl font-semibold mt-6 mb-2",children:"What does the confidence head do?"}),e.jsx("p",{children:"It scores how likely a draft is to be accepted. Low-confidence drafts are discarded before verification so the GPU never wastes a forward pass on a draft that would fail."}),e.jsx("h3",{className:"text-xl font-semibold mt-6 mb-2",children:"How much faster in production?"}),e.jsx("p",{children:"60â85% faster per-user generation, and up to ~6.6Ã higher throughput while holding a 120 tokens/second latency floor on DeepSeek's V4-Pro and V4-Flash serving stacks."}),e.jsx("h3",{className:"text-xl font-semibold mt-6 mb-2",children:"Is it open source?"}),e.jsx("p",{children:"Yes â MIT-licensed, with draft heads that also work on Qwen and Gemma."})]}),e.jsxs("aside",{className:"mt-10 p-6 rounded-lg border border-blue-100 bg-blue-50",children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Related reading"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-1",children:[e.jsxs("li",{children:[e.jsx("a",{href:"/blog/deepseek-dspark-speculative-decoding",className:"text-blue-600 underline hover:text-blue-700",children:"How speculative decoding makes LLMs faster without retraining"})," ","â the broader primer on the technique."]}),e.jsxs("li",{children:[e.jsx("a",{href:"/blog/deepseek-v4-unveiled-1-6-trillion-parameters",className:"text-blue-600 underline hover:text-blue-700",children:"DeepSeek V4 unveiled: 1.6 trillion parameters"})," ","â the model DSpark serves in production."]})]})]})]})]})})]})},HJ=()=>{const t=jn(),n="https://deepseek.ai/blog/deepseek-own-ai-chip-inference-silicon",s={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek Is Building Its Own AI Chip: Why Inference Silicon Could Shake Up Nvidia, Huawei and Open-Source AI",datePublished:"2026-07-12T08:00:00+00:00",dateModified:"2026-07-12T08:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},description:"DeepSeek is reportedly developing its own AI inference chip to reduce reliance on Nvidia and Huawei. Here's why the move matters for the open-source AI ecosystem and China's semiconductor strategy.",mainEntityOfPage:{"@type":"WebPage","@id":n}},r={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"Is DeepSeek building its own AI chip?",acceptedA
2208nswer:{"@type":"Answer",text:"Yes, DeepSeek is reportedly in the early stages of designing its own AI chip. The chip is intended for inference â the phase where a trained AI model generates answers for users â rather than for training new models."}},{"@type":"Question",name:"Why does DeepSeek want its own inference chip?",acceptedAnswer:{"@type":"Answer",text:"A custom chip would reduce DeepSeek's reliance on Nvidia GPUs and Huawei Ascend accelerators, lower unit economics at scale, and give the company more control over latency, memory bandwidth and power efficiency for its Mixture-of-Experts models."}},{"@type":"Question",name:"What stage is DeepSeek's chip development at?",acceptedAnswer:{"@type":"Answer",text:"The project is still in early stages. DeepSeek has held discussions with external chip design, manufacturing and memory partners, and has quietly hired additional chip designers without public job postings. The effort began roughly a year ago."}},{"@type":"Question",name:"How could a DeepSeek chip affect Huawei?",acceptedAnswer:{"@type":"Answer",text:"U.S. export controls on Nvidia chips left Huawei with roughly half of China's AI chip market. A DeepSeek inference chip would add another domestic competitor, alongside Alibaba and Baidu, and could erode Huawei's position as the default alternative."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek Building Its Own AI Chip for Inference (2026)"}),e.jsx("meta",{name:"description",content:"DeepSeek is reportedly developing its own AI inference chip to reduce reliance on Nvidia and Huawei. Here's why the move matters for open-source AI."}),e.jsx("link",{rel:"canonical",href:n}),e.jsx("meta",{property:"og:title",content:"DeepSeek Is Building Its Own AI Chip: Why Inference Silicon Could Shake Up Nvidia, Huawei and Open-Source AI"}),e.jsx("meta",{property:"og:description",content:"DeepSeek is quietly designing its own inference chip. What a custom silicon strategy means for Nvidia, Huawei and the open-source AI ecosystem."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:n}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek Is Building Its Own AI Chip for Inference"}),e.jsx("meta",{name:"twitter:description",content:"Why DeepSeek's rumored custom inference chip could reduce its dependence on Nvidia and Huawei â and what it means for open-source AI."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"transition-opacity duration-300 opacity-100",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"text-gray-500 mb-2",children:"July 12, 2026 ⢠Deep Seek Fan Hub"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-6",children:"DeepSeek Is Building Its Own AI Chip: Why Inference Silicon Could Shake Up Nvidia, Huawei and Open-Source AI"}),e.jsx("div",{className:"bg-blue-50 p-6 rounded-lg border border-blue-100 mb-8",children:e.jsxs("p",{className:"text-gray-800",children:[e.jsx("strong",{children:"DeepSeek"}),", the Hangzhou-based AI lab that stunned Silicon Valley with hyper-efficient open-source models, is now taking its most ambitious hardware step yet. The company is reportedly developing a ",e.jsx("strong",{children:"custom AI inference chip"})," that would reduce its dependence on both ",e.jsx("strong",{children:"Nvidia"})," and ",e.jsx("strong",{children:"Huawei"})," â a strategic pivot that could reshape China's semiconductor landscape."]})})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsx("section",{children:e.jsx("p",{children:"If the effort succeeds, it would mark more than a product upgrade. It would signal that DeepSeek is moving from pure model breakthroughs to full-stack vertical integration â designing the silicon that runs its own AI systems. Here is what we know, and why it matters."})}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"What Kind of Chip Is DeepSeek Building?"}),e.jsxs("p",{children:["The chip is designed for ",e.jsx("strong",{children:"inference"}),", the phase where a trained model generates answers for real users. It is not meant for training new foundation models, which remains the most compute-heavy and GPU-dependent part of the pipeline."]}),e.jsx("p",{children:"That focus matters. Inference is where DeepSeek spends the bulk of its operating budget at scale. A custom inference accelerator could deliver:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-3",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Lower cost per token"})," by stripping out training-specific features and optimizing memory bandwidth for serving MoE-based models."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Lower latency"})," for chat and API users, especially when batch sizes fluctuate."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Greater supply-chain independence"})," from Nvidia export restrictions and Huawei capacity constraints."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Better power efficiency"}),", which is critical for large data centers in China facing energy bottlenecks."]})]}),e.jsx(ie,{className:"my-6 border-blue-200 bg-blue-50/40",children:e.jsx(me,{className:"pt-6",children:e.jsxs("p",{className:"m-0",children:[e.jsx("strong",{children:"Why inference first?"})," Training chips need massive raw FLOPS and fast all-to-all communication. Inference chips need high memory bandwidth, efficient batching and low power â a different design target that is more achievable for a first-time silicon team."]})})})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"How Far Along Is the Project?"}),e.jsx("p",{children:"The effort is still in early stages. According to reports, DeepSeek has been in discussions with external partners specializing in chip design, manufacturing and memory. The company has also quietly hired more chip designers over the past few months, without posting public vacancies. The project is said to have started roughly a year ago."}),e.jsx("p",{children:"DeepSeek is not trying to build a foundry. It is assembling the design and IP ecosystem needed to produce a purpose-built inference accelerator, likely manufactured by a domestic or foundry partner with access to available process nodes."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Why This Is a Strategic U-Turn"}),e.jsx("p",{children:"DeepSeek became a global phenomenon by doing the opposite of what most tech giants do. Instead of commercializing its technology aggressively, it released open-weight models and focused on research breakthroughs â such as the Mixture-of-Experts architecture, MLA attention, and efficie
2208nt post-training that delivered top-tier performance at a fraction of the usual cost."}),e.jsx("p",{children:"A custom chip is a departure from that playbook. It says DeepSeek now wants to control the full stack: model, software, and the hardware it runs on. That is the same philosophy that has driven Apple, Google, Amazon and Meta to build their own silicon."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"What It Means for Nvidia and Huawei"}),e.jsxs("p",{children:[e.jsx("strong",{children:"Nvidia"})," has dominated AI inference globally through its H100 and H200 GPUs. In China, U.S. export controls have restricted access to the most advanced Nvidia chips, creating a vacuum that ",e.jsx("strong",{children:"Huawei"})," has filled with its Ascend series. Some estimates credit Huawei with roughly half of China's AI chip market, worth around $50 billion."]}),e.jsxs("p",{children:["But Huawei's grip is already loosening. ",e.jsx("strong",{children:"Alibaba"})," and ",e.jsx("strong",{children:"Baidu"})," are developing their own AI accelerators. If DeepSeek joins that list with a chip optimized specifically for its own models, it becomes harder for Huawei to maintain its default-alternative position."]}),e.jsx("p",{children:"For Nvidia, the threat is longer-term. A successful Chinese inference ecosystem, built around domestic chips and open-source models, would reduce the dependency on CUDA even outside China. DeepSeek's models are already popular on Western cloud providers; if those models run best on DeepSeek-designed silicon, the competitive dynamics shift."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"What It Means for Open-Source AI Users"}),e.jsx("p",{children:"For the open-source community, the implications are mixed. On one hand, custom silicon could give DeepSeek even more freedom to release open-weight models and optimize inference costs, which benefits developers and researchers. On the other hand, tighter hardware-software integration can make it harder for third parties to replicate the full experience without the same chip stack."}),e.jsx("p",{children:"The most likely near-term outcome is cheaper and faster DeepSeek inference â both for the official API and for cloud providers that host the models. The longer-term question is whether the chip stays internal or becomes a broader platform for Chinese AI infrastructure."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The Bottom Line"}),e.jsx("p",{children:"DeepSeek's reported AI chip project is still early, but it is one of the most significant strategic moves the company has made since its breakthrough models went viral. It reflects a belief that model efficiency alone is not enough â controlling the silicon that runs the model is the next competitive frontier."}),e.jsx("p",{children:"If DeepSeek succeeds, it would not only reduce its dependence on Nvidia and Huawei. It would also cement its status as China's national AI champion and one of the most vertically integrated open-source AI labs in the world."})]}),e.jsxs("section",{className:"mt-12 bg-gray-50 p-6 rounded-lg",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"FAQ: DeepSeek's AI Chip Plans"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Is DeepSeek really building its own chip?"}),e.jsx("p",{children:"Yes, according to reports, DeepSeek is in the early stages of developing a custom AI chip focused on inference, not training."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"What is the difference between an inference chip and a training chip?"}),e.jsx("p",{children:"Training chips are optimized to teach models from scratch, requiring massive parallel computation. Inference chips are optimized to run trained models and generate responses, requiring high memory bandwidth and low latency."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Why not just keep using Nvidia or Huawei chips?"}),e.jsx("p",{children:"Nvidia's most advanced chips face U.S. export restrictions in China, while Huawei supplies constrained. A custom chip would give DeepSeek more control, better unit economics and a hedge against supply disruption."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"How does this affect Huawei?"}),e.jsx("p",{children:"Huawei has captured about half of China's AI chip market due to Nvidia restrictions. DeepSeek's entry, alongside Alibaba and Baidu, increases domestic competition and could reduce Huawei's share."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"When will the chip be ready?"}),e.jsx("p",{children:"No public timeline has been announced. Chip design cycles typically take several years, and the project is still in its early phase."})]})]})]})]}),e.jsx("div",{className:"border-t border-gray-200 pt-8 mt-8",children:e.jsx("p",{className:"text-gray-600 italic",children:"What do you think about DeepSeek's move into custom silicon? Can a model-first AI lab successfully compete with Nvidia and Huawei on hardware? Let us know your thoughts in the comments below!"})})]}),e.jsx("div",{className:"mt-12",children:e.jsx(Nn,{})})]})})]})},z2=$t.peakSurcharge,KA=`Yes. DeepSeek applies a peak-hour surcharge during ${z2.windowUTC} UTC (${z2.windowUTC8} Beijing time).`,$J=()=>{const t=jn(),n="https://deepseek.ai/blog/deepseek-v4-ga-surge-pricing-migration",s={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek V4 Migration: Legacy API Aliases Retired July 24 â and Where Surge Pricing Actually Stands",datePublished:"2026-07-21T08:00:00+00:00",dateModified:"2026-07-26T08:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},description:"Legacy aliases deepseek-chat and deepseek-reasoner were retired on July 24, 2026. Migrate to deepseek-v4-flash or deepseek-v4-pro. DeepSeek's announced peak-hour surcharge (UTC+8) is not active yet.",mainEntityOfPage:{"@type":"WebPage","@id":n}},r={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"When do the legacy DeepSeek API aliases stop w
2208orking?",acceptedAnswer:{"@type":"Answer",text:"Backward compatibility for the deepseek-chat and deepseek-reasoner aliases ends on July 24, 2026. After that date, calls to those model names return HTTP errors and must be migrated to deepseek-v4-flash or deepseek-v4-pro."}},{"@type":"Question",name:"What are the new DeepSeek V4 model IDs?",acceptedAnswer:{"@type":"Answer",text:"Use deepseek-v4-flash for high-speed, cost-efficient tasks and deepseek-v4-pro for complex reasoning and heavy instruction-following. Both are served at https://api.deepseek.com in OpenAI-compatible format."}},{"@type":"Question",name:"Is DeepSeek's peak-hour surcharge active?",acceptedAnswer:{"@type":"Answer",text:KA}},{"@type":"Question",name:"Does DeepSeek charge different rates by time of day?",acceptedAnswer:{"@type":"Answer",text:"Not today. DeepSeek's official rate card lists one flat per-million-token price per model. A peak-hour surcharge tied to Beijing time (UTC+8) has been announced, but no percentage or start date has been published and the API is still billed at the flat rate."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek V4 GA: Legacy Aliases Retire July 24 + Surge Pricing"}),e.jsx("meta",{name:"description",content:"DeepSeek V4 goes GA on July 24, 2026. Migrate from deepseek-chat/deepseek-reasoner to deepseek-v4-flash/pro and prepare for peak/off-peak surge pricing (UTC+8)."}),e.jsx("link",{rel:"canonical",href:n}),e.jsx("meta",{property:"og:title",content:"DeepSeek V4 Goes GA: July 24 Migration Deadline & AI's First Surge Pricing"}),e.jsx("meta",{property:"og:description",content:"Legacy DeepSeek API aliases retire July 24. Peak/off-peak pricing (UTC+8) rolls out. Full developer migration checklist inside."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:n}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek V4 GA: July 24 Migration + Surge Pricing"}),e.jsx("meta",{name:"twitter:description",content:"What developers need to do before DeepSeek retires legacy API aliases on July 24, 2026."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-8 hover:bg-gray-100",children:[e.jsx(An,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),e.jsx(cn,{}),e.jsxs("article",{className:"transition-opacity duration-300 opacity-100",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"text-gray-500 mb-2",children:"July 21, 2026 · updated July 26, 2026 ⢠Deep Seek Fan Hub"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-6",children:"DeepSeek V4 Migration: Legacy API Aliases Retired July 24 â and Where Surge Pricing Actually Stands"}),e.jsx("div",{className:"bg-blue-50 p-6 rounded-lg border border-blue-100 mb-8",children:e.jsxs("p",{className:"text-gray-800",children:[e.jsx("strong",{children:"Update, 26 July 2026:"})," the legacy alias retirement went ahead on ",e.jsx("strong",{children:"July 24, 2026"})," â ",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"deepseek-chat"})," and ",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"deepseek-reasoner"})," no longer resolve. The ",e.jsx("strong",{children:"peak-hour surcharge"})," did ",e.jsx("strong",{children:"not"})," go live with it. It has been announced, but no percentage and no start date are published and the official rate card still lists a single flat tier per model. See our ",e.jsx("a",{href:"/pricing",className:"text-blue-600 hover:underline",children:"verified pricing page"})," for the live status."]})})]}),e.jsxs("div",{className:"prose prose-lg max-w-none mb-12",children:[e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"1. Hard Deadline: Legacy Aliases Retire July 24"}
2208),e.jsxs("p",{children:["If your codebases, SDK configs or environment variables still route requests to ",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"deepseek-chat"})," or ",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"deepseek-reasoner"}),", migrate now. DeepSeek has been silently forwarding those aliases to V4 Flash under the hood, but backward compatibility ends on ",e.jsx("strong",{children:"July 24, 2026"}),". After that, calls to legacy model names return HTTP errors."]}),e.jsx("p",{children:"Update your endpoints directly to the V4 model IDs:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-3",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"deepseek-v4-flash"})," â high-speed, cost-efficient default for most chat, extraction and classification workloads."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"deepseek-v4-pro"})," â complex reasoning, heavy instruction-following and long-context work up to 1M tokens."]})]}),e.jsxs("p",{children:["Base URL and OpenAI-compatible request shape are unchanged (",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"https://api.deepseek.com"}),"). See our ",e.jsx("a",{href:"/deepseek-api",className:"text-blue-600 hover:underline",children:"DeepSeek API guide"})," and ",e.jsx("a",{href:"/pricing",className:"text-blue-600 hover:underline",children:"pricing page"})," for full rate cards."]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"2. Time-of-Day Surge Pricing: Announced, Not Active"}),e.jsxs("p",{children:["The change that got the most attention was a ",e.jsx("strong",{children:"peak-hour surcharge"})," tied to Beijing business hours (UTC+8). It is worth being precise about its status, because a lot of coverage reported it as live:"]}),e.jsxs("ul",{className:"list-disc pl-6 space-y-3",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Announced"})," â DeepSeek has said a peak-hour surcharge is coming, with the peak window framed around Beijing daytime (",z2.windowUTC8," UTC+8)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Not in effect"})," â no surcharge percentage and no start date have been published, and billing today runs on one flat per-million-token rate per model."]})]}),e.jsx(ie,{className:"my-6 border-blue-200 bg-blue-50/40",children:e.jsx(me,{className:"pt-6",children:e.jsxs("p",{className:"m-0",children:[e.jsx("strong",{children:"Developer takeaway:"})," you do not need to reschedule batch jobs yet. What is worth doing now is instrumenting requests with a timestamp so that, if and when the surcharge lands, you can attribute spend to peak versus off-peak windows without a retrofit. We re-check the official rate card weekly and this page reads its status from the same config as ",e.jsx("a",{href:"/pricing",className:"text-blue-600 hover:underline",children:"/pricing"}),"."]})})}),e.jsxs("p",{children:["Historically DeepSeek ran off-peak ",e.jsx("em",{children:"discounts"}),"; that programme has ended. The announced surcharge inverts the mechanism â same load-balancing goal, opposite framing â but until it ships there is no time-of-day component in a DeepSeek invoice."]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"3. V4 Performance: Holding the Price-to-Performance Crown"}),e.jsxs("p",{children:["DeepSeek built its reputation by delivering frontier-adjacent quality at a fraction of Western API prices. V4 doubles down: V4-Pro competes with GPT-5.5 and Claude Opus 4.8 on reasoning benchmarks, and V4-Flash remains one of the cheapest capable models on the market. Even as open-weight rivals like Kimi K3 push parameter counts higher, DeepSeek V4 keeps its edge on the ",e.jsx("strong",{children:"speed à capability à cost"})," triangle."]}),e.jsxs("p",{children:["For a deeper look at how DeepSeek is squeezing more out of every GPU, see our write-ups on ",e.jsx("a",{href:"/blog/inside-deepseek-dspark-lossless-inference",className:"text-blue-600 hover:underline",children:"DSpark speculative decoding"})," and ",e.jsx("a",{href:"/blog/deepseek-own-ai-chip-inference-silicon",className:"text-blue-600 hover:underline",children:"DeepSeek's custom inference chip"}),"."]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"Developer Migration Checklist"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-3",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Update endpoints:"})," Audit code and swap ",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"deepseek-chat"})," / ",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"deepseek-reasoner"})," for ",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"deepseek-v4-flash"})," or ",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"deepseek-v4-pro"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Do not reschedule yet:"})," there is no time-of-day rate today, so moving cron jobs buys nothing until the announced surcharge actually ships."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Verify fallback logic:"})," handle latency spikes and transient errors gracefully â retries, timeouts, degraded modes."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Instrument cost:"})," log timestamp + model + token count per request so you can attribute spend to peak vs off-peak windows the day a surcharge lands."]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-2xl font-bold mt-10 mb-6",children:"The Bottom Line"}),e.jsxs("p",{children:["The July 24 alias retirement is the part that actually happened: every production integration now has to make an explicit Flash-versus-Pro choice. The surge pricing story is still a plan, not an invoice line. Treat it as something to be instrumented for, not something to reorganise your scheduling around â and check ",e.jsx("a",{href:"/pricing",className:"text-blue-600 hover:underline",children:"our pricing page"}
2208),", which tracks the official rate card weekly, before assuming otherwise."]})]}),e.jsxs("section",{className:"mt-12 bg-gray-50 p-6 rounded-lg",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"FAQ: DeepSeek V4 Migration & Surge Pricing"}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"When did the legacy DeepSeek API aliases stop working?"}),e.jsxs("p",{children:["Backward compatibility for ",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"deepseek-chat"})," and ",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"deepseek-reasoner"})," ended on July 24, 2026. Requests to those model names now return HTTP errors."]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"What are the new DeepSeek V4 model IDs?"}),e.jsxs("p",{children:["Use ",e.jsx("strong",{children:"deepseek-v4-flash"})," for high-speed, cost-efficient tasks and ",e.jsx("strong",{children:"deepseek-v4-pro"})," for complex reasoning. Both remain OpenAI-compatible on ",e.jsx("code",{className:"px-1 bg-gray-100 rounded",children:"https://api.deepseek.com"}),"."]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Is DeepSeek's peak-hour surcharge active?"}),e.jsx("p",{children:KA})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Does DeepSeek charge different rates by time of day?"}),e.jsx("p",{children:"Not today. The official rate card lists one flat per-million-token price per model. The announced Beijing-hours surcharge has no published percentage or start date."})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Should I default to V4-Flash or V4-Pro?"}),e.jsx("p",{children:"Start with V4-Flash for latency-sensitive and high-volume workloads and reserve V4-Pro for reasoning-heavy or long-context tasks where quality clearly justifies the cost."})]})]})]})]}),e.jsx("div",{className:"border-t border-gray-200 pt-8 mt-8",children:e.jsx("p",{className:"text-gray-600 italic",children:"Migrating a production workload before July 24? Let us know how surge pricing affects your batch scheduling in the comments below."})})]}),e.jsx("div",{className:"mt-12",children:e.jsx(Nn,{})})]})})]})},WJ=()=>{const t=$t.models["v4-flash"],n=$t.models["v4-pro"],s=jn(),r="https://deepseek.ai/blog/deepseek-chat-reasoner-retired-billing-impact",a={"@context":"https://schema.org","@type":"BlogPosting",headline:"deepseek-chat and deepseek-reasoner Retired: Both Map to V4-Flash â Migrate to V4-Pro and Your Bill Triples",datePublished:"2026-07-25T09:00:00+00:00",dateModified:"2026-07-26T09:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI (Independent Guide)",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},description:"DeepSeek retired deepseek-chat and deepseek-reasoner on July 24, 2026 at 15:59 UTC. Both aliases map to deepseek-v4-flash, so a correct migration is price-neutral â switching to deepseek-v4-pro costs about 3.1x more. Verified rates and worked examples.",mainEntityOfPage:{"@type":"WebPage","@id":r}},i={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"deepseek-chat & deepseek-reasoner Retired â Billing Impact",item:r}]},o={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"When exactly did deepseek-chat and deepseek-reasoner stop working?",acceptedAnswer:{"@type":"Answer",text:"Both legacy aliases were fully retired on July 24, 2026 at 15:59 UTC. Calls to those model IDs now return an error and must be pointed at deepseek-v4-flash, which is the model both aliases mapped to."}},{"@type":"Question",name:"Which model do deepseek-chat and deepseek-reasoner map to?",acceptedA
2208nswer:{"@type":"Answer",text:"Both map to deepseek-v4-flash. Per DeepSeek's API docs, deepseek-chat maps to V4-Flash in non-thinking mode and deepseek-reasoner maps to V4-Flash in thinking mode. Neither alias maps to deepseek-v4-pro."}},{"@type":"Question",name:"Is this a rename or a real price change?",acceptedAnswer:{"@type":"Answer",text:"If you migrate as documented â both aliases to deepseek-v4-flash â your per-token price is unchanged: $0.14 input (cache miss), $0.0028 input (cache hit), $0.28 output per 1M tokens. The price change only happens if you assume deepseek-v4-pro is the successor to deepseek-reasoner. Pro costs $0.435 / $0.003625 / $0.87, which is roughly 3.1x more for the same traffic."}},{"@type":"Question",name:"Does DeepSeek still offer off-peak discounts?",acceptedAnswer:{"@type":"Answer",text:"No. The off-peak discount belonged to V3/R1 and was retired with those aliases. Instead, DeepSeek announced a peak surcharge (rates double during Beijing 09:00â12:00 and 14:00â18:00, i.e. UTC 01:00â04:00 and 06:00â10:00) tied to the official V4 release. As of July 25, 2026 the surcharge is announced but not active in the official price list."}},{"@type":"Question",name:"Do I need to change my SDK or endpoint?",acceptedAnswer:{"@type":"Answer",text:"No. The base URL (https://api.deepseek.com) and OpenAI-compatible schema are unchanged. Only the model string changes: deepseek-chat â deepseek-v4-flash (non-thinking), deepseek-reasoner â deepseek-v4-flash (thinking mode)."}},{"@type":"Question",name:"Will my costs go up or down after migrating?",acceptedAnswer:{"@type":"Answer",text:"Migrated correctly, they stay exactly the same. A workload of 500M input tokens (30% cache hits) and 100M output tokens costs about $77/month on deepseek-v4-flash â the same as before, because both retired aliases were billed at the Flash rates. Switching that same workload to deepseek-v4-pro costs about $240/month, a 3.1x increase."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"deepseek-reasoner Retired: Migrate to V4-Flash, Not Pro"}),e.jsx("meta",{name:"description",content:"deepseek-chat and deepseek-reasoner retired July 24, 2026. Both map to deepseek-v4-flash â a correct migration costs the same. Picking deepseek-v4-pro costs 3.1x more. Verified rates."}),e.jsx("link",{rel:"canonical",href:r}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:r}),e.jsx("meta",{property:"og:title",content:"deepseek-reasoner Retired: The Migration Most Guides Get Backwards"}),e.jsx("meta",{property:"og:description",content:"Verified July 26, 2026: both retired aliases map to deepseek-v4-flash. Migrate as documented and your price is unchanged; migrate to V4-Pro and it triples."}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(i)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(o)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>s("/blog"),className:"mb-6 text-slate-600 hover:text-[#0066FF]",children:[e.jsx(An,{className:"h-4 w-4 mr-2"}),"Back to Blog"]}),e.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-xs text-slate-500 mb-4",children:[e.jsx(se,{to:"/",className:"hover:text-[#0066FF]",children:"Home"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx(se,{to:"/blog",className:"hover:text-[#0066FF]",children:"Blog"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx("span",{className:"text-slate-700",children:"deepseek-chat & deepseek-reasoner Retired"})]}),e.jsxs("div",{className:"mb-6 inline-flex items-center gap-2 text-xs font-medium bg-amber-50 text-amber-800 border border-amber-200 px-3 py-1.5 rounded-full",children:[e.jsx(zr,{className:"h-3.5 w-3.5"}),"Breaking · Verified July 25, 2026 · Independent Guide"]}),e.jsx("h1",{className:"text-3xl md:text-5xl font-bold text-slate-900 mb-4 leading-tight",children:"deepseek-chat and deepseek-reasoner Are Gone â Migrate to the Wrong Model and Your Bill Triples"}),e.jsx("p",{className:"text-lg text-slate-600 mb-2",children:"By the Deep Seek AI editorial desk · July 25, 2026 · 8 min read"}),e.jsxs("p",{className:"text-base text-slate-500 mb-8 italic",children:["Every other migration guide tells you to rename a string. Most of them rename it to the wrong thing. Both retired aliases map to"," ",e.jsx("strong",{children:"deepseek-v4-flash"})," â migrate that way and your price is identical. Assume V4-Pro is the reasoner's successor and you pay about"," ",e.jsx("strong",{children:"3.1x more"})," for the same tokens."]}),e.jsx(ie,{className:"mb-8 border-red-200 bg-red-50/60",children:e.jsx(me,{className:"p-6",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(zr,{className:"h-5 w-5 text-red-600 flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold text-red-900 mb-2 mt-0",children:"What broke, and when"}),e.jsxs("p",{className:"text-sm text-red-900 mb-2",children:["On ",e.jsx("strong",{children:"July 24, 2026 at 15:59 UTC"}),", DeepSeek permanently disabled the two legacy model aliases that most production integrations still pointed at:"]}),e.jsxs("ul",{className:"text-sm text-red-900 space-y-1 list-disc pl-5",children:[e.jsxs("li",{children:[e.jsx("code",{className:"bg-red-100 px-1.5 py-0.5 rounded",children:"deepseek-chat"})," â the default alias in most quick-start snippets and SDK examples"]}),e.jsxs("li",{children:[e.jsx("code",{className:"bg-red-100 px-1.5 py-0.5 rounded",children:"deepseek-reasoner"})," â the reasoning-tier alias for chain-of-thought workloads"]})]}),e.jsx("p",{className:"text-sm text-red-900 mt-3",children:"Calls to either ID now return an error. There is no grace peri
2208od and no soft redirect."})]})]})})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"The documented mapping (both aliases go to the same model)"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["The mechanical change is trivial. Base URL, request schema, streaming format, tool-calling contract â all unchanged. But note where both aliases land: per DeepSeek's API docs, ",e.jsx("code",{children:"deepseek-chat"})," maps to"," ",e.jsx("strong",{children:"V4-Flash in non-thinking mode"})," and"," ",e.jsx("code",{children:"deepseek-reasoner"})," maps to"," ",e.jsx("strong",{children:"V4-Flash in thinking mode"}),". Neither maps to V4-Pro."]}),e.jsxs("div",{className:"bg-slate-900 text-slate-100 rounded-lg p-5 mb-6 font-mono text-sm overflow-x-auto",children:[e.jsx("div",{className:"text-slate-400 mb-2",children:"// Before (broken as of July 24, 15:59 UTC)"}),e.jsxs("div",{children:["model: ",e.jsx("span",{className:"text-red-400",children:'"deepseek-chat"'})]}),e.jsxs("div",{children:["model: ",e.jsx("span",{className:"text-red-400",children:'"deepseek-reasoner"'})]}),e.jsx("div",{className:"text-slate-400 mt-4 mb-2",children:"// After â same model, mode is a request setting"}),e.jsxs("div",{children:["model: ",e.jsx("span",{className:"text-emerald-400",children:'"deepseek-v4-flash"'})," ",e.jsx("span",{className:"text-slate-500",children:"// non-thinking"})]}),e.jsxs("div",{children:["model: ",e.jsx("span",{className:"text-emerald-400",children:'"deepseek-v4-flash"'})," ",e.jsx("span",{className:"text-slate-500",children:"// thinking mode"})]}),e.jsx("div",{className:"text-slate-400 mt-4 mb-2",children:"// NOT the migration target"}),e.jsxs("div",{children:["model: ",e.jsx("span",{className:"text-red-400",children:'"deepseek-v4-pro"'})," ",e.jsx("span",{className:"text-slate-500",children:"// ~3.1x the cost"})]})]}),e.jsxs("p",{className:"text-slate-700 mb-8",children:["That distinction is the whole story. Migrate as documented and your bill is unchanged. Reach for ",e.jsx("code",{children:"deepseek-v4-pro"})," because it looks like the successor to ",e.jsx("code",{children:"deepseek-reasoner"})," and you have just tripled your per-token cost without changing a single prompt."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"The billing impact, both ways"}),e.jsxs("p",{className:"text-slate-700 mb-6",children:["All rates below are per 1,000,000 tokens, USD, verified against"," ",e.jsx("a",{href:"https://api-docs.deepseek.com/quick_start/pricing",target:"_blank",rel:"noopener noreferrer",className:"text-[#0066FF] underline",children:"api-docs.deepseek.com/quick_start/pricing"})," ","on July 25, 2026."]}),e.jsx("h3",{className:"text-xl font-semibold text-slate-900 mt-6 mb-3",children:"Both aliases â deepseek-v4-flash (price-neutral)"}),e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200 rounded-lg overflow-hidden",children:[e.jsx("thead",{className:"bg-slate-100",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left px-4 py-3 font-semibold text-slate-700",children:"Component"}),e.jsx("th",{className:"text-right px-4 py-3 font-semibold text-slate-700",children:"deepseek-chat / -reasoner (old)"}),e.jsx("th",{className:"text-right px-4 py-3 font-semibold text-slate-700",children:"deepseek-v4-flash (new)"}),e.jsx("th",{className:"text-right px-4 py-3 font-semibold text-slate-700",children:"Delta"})]})}),e.jsxs("tbody",{className:"divide-y divide-slate-200",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:"Input (cache miss)"}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",t.inputCacheMiss]}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",t.inputCacheMiss]}),e.jsx("td",{className:"text-right px-4 py-3 text-slate-500",children:"flat"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:"Input (cache hit)"}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",t.inputCacheHit]}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",t.inputCacheHit]}),e.jsx("td",{className:"text-right px-4 py-3 text-slate-500",children:"flat"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:"Output"}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",t.output]}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",t.output]}),e.jsx("td",{className:"text-right px-4 py-3 text-slate-500",children:"flat"})]})]})]})}),e.jsxs("p",{className:"text-sm text-slate-600 mb-8 flex items-start gap-2",children:[e.jsx(mh,{className:"h-4 w-4 text-emerald-600 flex-shrink-0 mt-0.5"}),e.jsxs("span",{children:["Verdict: ",e.jsx("strong",{children:"no price change at all."})," Both retired aliases were served by the same V4-Flash rate card, so a documented migration is exactly cost-neutral. Thinking mode (former ",e.jsx("code",{children:"deepseek-reasoner"}),") is a request-level setting on V4-Flash, not a more expensive model."]})]}),e.jsx("h3",{className:"text-xl font-semibold text-slate-900 mt-6 mb-3",children:"The expensive mistake: assuming V4-Pro is the reasoner successor"}),e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200 rounded-lg overflow-hidden",children:[e.jsx("thead",{className:"bg-slate-100",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left px-4 py-3 font-semibold text-slate-700",children:"Component"}),e.jsx("th",{className:"text-right px-4 py-3 font-semibold text-slate-700",children:"deepseek-v4-flash"}),e.jsx("th",{className:"text-right px-4 py-3 font-semibold text-slate-700",children:"deepseek-v4-pro"}),e.jsx("th",{className:"text-right px-4 py-3 font-semibold text-slate-700",children:"Delta"})]})}),e.jsxs("tbody",{className:"divide-y divide-slate-200",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:"Input (cache miss)"}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",t.inputCacheMiss]}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",n.inputCacheMiss]}),e.jsx("td",{className:"text-right px-4 py-3 text-red-700 font-semibold",children:"+211%"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:"Input (cache hit)"}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",t.inputCacheHit]}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",n.inputCacheHit]}),e.jsx("td",{className:"text-right px-4 py-3 text-red-700 font-semibold",children:"+29%"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3",children:"Output"}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",t.output]}),e.jsxs("td",{className:"text-right px-4 py-3",children:["$",n.output]}),e.jsx("td",{className:"text-right px-4 py-3 text-red-700 font-semibold",children:"+211%"})]})]})]})}),e.jsxs("p",{className:"text-sm text-slate-600 mb-8 flex items-start gap-2",children:[e.jsx(Wo,{className:"h-4 w-4 text-red-600 flex-shrink-0 mt-0.5"}),e.jsxs("span",{children:["Verdict: ",e.jsx("strong",{children:"roughly 3.1x more expensive"})," for identical traffic. V4-Pro is a bigger model (1.6T total / 49B active vs 284B / 13B) and may be worth it â but it is a capability upgrade you choose, not the migration target the docs prescribe."]})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Worked example: a mid-sized production chatbot"}),e.jsx("p",{className:"text-slate-700 mb-4",children:"Assume 500M input tokens/month with a 30% cache-hit rate (350M cache miss, 150M cache hit) and 100M output tokens/month:"}),e.jsxs("div",{className:"bg-slate-50 border border-slate-200 rounded-lg p-5 mb-6 text-sm",children:[e.jsxs("div",{className:"mb-3",children:[e.jsx("div",{className:"font-semibold text-slate-900 mb-1",children:"Correct migration (deepseek-v4-flash) â and the old alias price"}),e.jsxs("div",{className:"text-slate-700 font-mono",children:["(350M Ã $",t.inputCacheMiss," + 150M Ã $",t.inputCacheHit," + 100M Ã $",t.output,") / 1M ="," ",e.jsx("strong",{children:"$77.42/month"})]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"font-semibold text-slate-900 mb-1",children:"Wrong assumption (deepseek-v4-pro)"}),e.jsxs("div",{className:"text-slate-700 font-mono",children:["(350M Ã $",n.inputCacheMiss," + 150M Ã $",n.inputCacheHit," + 100M Ã $",n.output,") / 1M ="," ",e.jsx("strong",{children:"$239.79/month"})]})]}),e.jsxs("div",{className:"mt-4 pt-4 border-t border-slate-200 text-red-700 font-semibold flex items-center gap-2",children:[e.jsx(Wo,{className:"h-4 w-4"}),"Difference: +$162/month (3.1x) for the same tokens â from one wrong model string."]})]}),e.jsxs("p",{className:"text-slate-700 mb-8",children:["Run your own numbers with our"," ",e.jsx(se,{to:"/pricing",className:"text-[#0066FF] underline font-medium",children:"interactive DeepSeek pricing calculator"}),"."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What about off-peak discounts and the surge pricing?"}),e.jsx("p",{className:"text-slate-700 mb-4",children:"This is where most competing migration guides get it wrong, because they read the V3-era docs. Two things you need to know as of July 25, 2026:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-3 text-slate-700 mb-6",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"The old off-peak discount is gone."})," It was a V3/R1 feature and was retired together with those aliases. V4-Flash and V4-Pro do not currently offer an off-peak discount."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Peak surge pricing is announced but not yet active."})," On June 30 DeepSeek announced that rates ",e.jsx("strong",{children:"double"})," during two daily windows â Beijing 09:00â12:00 and 14:00â18:00 (UTC 01:00â04:00 and 06:00â10:00) â tied to the official V4 release, which was announced for mid-July 2026. The official price list still shows a single flat rate and no confirmed switch-over date. We check this weekly and will update this page the day it flips."]})]}),e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-5 mb-8 text-sm text-blue-900",children:[e.jsx("strong",{children:"Practical impl
2208ication:"})," if you handle async or batch workloads (embeddings, evals, background summarisation), you have a short window â probably weeks â to move them to overnight UTC+8 schedules before the surcharge activates. Doing it now is free insurance."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"30-minute migration checklist"}),e.jsx("ol",{className:"space-y-3 text-slate-700 mb-8",children:["Grep your codebase for 'deepseek-chat' and 'deepseek-reasoner' â check hardcoded strings, config files, environment variables, and any prompt-management tools (LangSmith, Helicone, Langfuse).","Replace both with 'deepseek-v4-flash'. That is the documented mapping for each alias: deepseek-chat â V4-Flash non-thinking, deepseek-reasoner â V4-Flash thinking mode.","Do NOT reach for 'deepseek-v4-pro' just because it sounds like the reasoner successor. Same traffic on Pro costs about 3.1x more ($0.435/$0.87 vs $0.14/$0.28 per 1M tokens). Pick Pro deliberately, for capability, not by default.","Set thinking mode explicitly where you relied on deepseek-reasoner: V4-Flash serves both modes, so the reasoning behaviour is a request-level choice now, not a model choice.","Re-check downstream schema assumptions: the reasoning_content field is still returned in thinking mode, so parsers written for deepseek-reasoner keep working.","Leave your cost model alone if you migrated to Flash â the rates are identical. If you moved anything to Pro, re-baseline your FinOps alerts upward by ~3x before they page you.","Move async/batch jobs to hours outside Beijing 09:00â12:00 and 14:00â18:00 now, before the announced peak surcharge activates.","Deploy behind a feature flag, roll out at 10% â 50% â 100% while watching latency and output-quality regressions."].map((l,c)=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(mh,{className:"h-5 w-5 text-[#0066FF] flex-shrink-0 mt-0.5"}),e.jsx("span",{children:l})]},c))}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What most guides get wrong"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-slate-700 mb-8",children:[e.jsxs("li",{children:["Telling you ",e.jsx("code",{children:"deepseek-reasoner"})," becomes"," ",e.jsx("code",{children:"deepseek-v4-pro"}),". The docs map it to"," ",e.jsx("strong",{children:"V4-Flash in thinking mode"}),". Following that advice triples your bill for identical traffic."]}),e.jsx("li",{children:"Framing the migration as a saving. Done correctly it is price-neutral; there is no discount to collect."}),e.jsx("li",{children:'Still quoting the "V3 off-peak 50% discount." That window closed with V3/R1.'}),e.jsx("li",{children:"Treating the announced peak surcharge as already-active. As of July 25, 2026 it is not."})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"FAQ"}),e.jsx("div",{className:"space-y-4 mb-10",children:o.mainEntity.map((l,c)=>e.jsxs("details",{className:"border border-slate-200 rounded-lg p-4 group",children:[e.jsx("summary",{className:"font-semibold text-slate-900 cursor-pointer",children:l.name}),e.jsx("p",{className:"text-sm text-slate-700 mt-3 leading-relaxed",children:l.acceptedAnswer.text})]},c))}),e.jsx(ie,{className:"mb-10 bg-[#0066FF]/5 border-[#0066FF]/20",children:e.jsx(me,{className:"p-6",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Wo,{className:"h-5 w-5 text-[#0066FF] flex-shrink-0 mt-1"}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-slate-900 mb-2 mt-0",children:"Related independent guides"}),e.jsxs("ul",{className:"text-sm text-slate-700 space-y-1 list-disc pl-5",children:[e.jsx("li",{children:e.jsx(se,{to:"/pricing",className:"text-[#0066FF] underline",children:"DeepSeek pricing â verified rates + interactive calculator"})}),e.jsx("li",{children:e.jsx(se,{to:"/blog/deepseek-v4-ga-surge-pricing-migration",className:"text-[#0066FF] underline",children:"DeepSeek V4 GA & the first surge pricing model in AI"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-api",className:"text-[#0066FF] underline",children:"DeepSeek API â endpoints, auth, and SDK overview"})}),e.jsx("li",{children:e.jsx(se,{to:"/blog/how-to-use-deepseek-v4-better-than-99-percent",className:"text-[#0066FF] underline",children:"How to use DeepSeek V4 better than 99% of people"})})]})]})]})})}),e.jsx("p",{className:"text-xs text-slate-500 italic border-t border-slate-200 pt-6 mb
2208-8",children:"This is an independent guide published by the Deep Seek AI editorial desk. We are not affiliated with DeepSeek.com. All rates verified against the official pricing page on July 25, 2026 and will be re-verified weekly."}),e.jsx(Nn,{}),e.jsx(cn,{})]})})]})},GJ=[{name:"Terminal Bench 2.1",score:"82.7",what:"Long-horizon terminal/shell agent tasks"},{name:"NL2Repo",score:"54.2",what:"Building a working repository from a natural-language spec"},{name:"Cybergym",score:"76.7",what:"Security/CTF-style agentic reasoning"},{name:"DeepSWE",score:"54.4",what:"Real-world software-engineering issue resolution"},{name:"Toolathlon (verified)",score:"70.3",what:"Multi-tool orchestration under verification"},{name:"Agent Last Exam",score:"25.2",what:"Hard, open-ended agent reasoning"},{name:"Automation Bench (Public)",score:"25.1",what:"End-to-end workflow automation"},{name:"DSBench-FullStack",score:"68.7",what:"Internal full-stack development suite"},{name:"DSBench-Hard",score:"59.6",what:"Internal hard coding-agent suite"}],KJ=()=>{const t=jn(),n="https://deepseek.ai/blog/deepseek-v4-flash-ga-agent-benchmarks",s={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek-V4-Flash Hits GA: Agent Benchmarks Beat V4-Pro-Preview, Native Responses API and Codex Support",datePublished:"2026-08-02T07:00:00+00:00",dateModified:"2026-08-02T07:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI (Independent Guide)",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},description:"On July 31, 2026 DeepSeek shipped the official DeepSeek-V4-Flash API in public beta. Same model name, same call, post-trained for agents: Terminal Bench 2.1 82.7, DeepSWE 54.4, native Responses API and Codex support. What changes for developers, and what does not.",mainEntityOfPage:{"@type":"WebPage","@id":n}},r={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeek-V4-Flash GA",item:n}]},a={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"Do I need to change my code for the official DeepSeek-V4-Flash release?",acceptedAnswer:{"@type":"Answer",text:"No. DeepSeek states the API call is unchanged: keep model set to deepseek-v4-flash and you are served the latest version. There is no new model string, no new endpoint and no schema change."}},{"@type":"Question",name:"Is DeepSeek-V4-Flash-0731 a new architecture?",acceptedAnswer:{"@type":"Answer",text:"No. DeepSeek says the model structure and size of DeepSeek-V4-Flash-0731 are identical to DeepSeek-V4-Flash-Preview â only the post-training was redone. The gains are alignment and agent-behaviour gains, not a new base model."}},{"@type":"Question",name:"How do the agent benchmarks compare to V4-Pro-Preview?",acceptedAnswer:{"@type":"Answer",text:"DeepSeek reports that the official V4-Flash substantially exceeds V4-Pro-Preview on agent benchmarks: Terminal Bench 2.1 82.7, NL2Repo 54.2, Cybergym 76.7, DeepSWE 54.4, Toolathlon verified 70.3, Agent Last Exam 25.2, Automation Bench (Public) 25.1, DSBench-FullStack 68.7 and DSBench-Hard 59.6. Code-agent scores were measured with DeepSeek Harness minimal mode at the max tier, top_p 0.95, temperature 1.0."}},{"@type":"Question",name:"Did DeepSeek-V4-Pro or the app change on July 31, 2026?",acceptedAnswer:{"@type":"Answer",text:"No. DeepSeek explicitly notes that only the DeepSeek-V4-Flash API was upgraded. The DeepSeek-V4-Pro API and the models behind the app and web chat are unchanged. An official V4-Pro release is promised as soon as possible."}},{"@type":"Question",name:"Did prices change with the V4-Flash GA release?",acceptedAnswer:{"@type":"Answer",text:"No price change was announced with the July 31, 2026 update: DeepSeek-V4-Flash stayed at $0.14 per 1M input tokens on a cache miss, $0.0028 on a cache hit and $0.28 per 1M output tokens. Those rates were superseded on September 9, 2026, when DeepSeek-V4.1-Flash went generally available with a peak/off-peak rate card and V4-Flash was retired."}},{"@type":"Question",name:"Does V4-Flash support the Responses API and Codex?",acceptedA
2208nswer:{"@type":"Answer",text:"Yes. The official V4-Flash natively supports the Responses API format and has been specifically adapted for Codex; DeepSeek publishes the configuration steps in its agent-integrations documentation."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek-V4-Flash GA: Agent Scores Beat V4-Pro-Preview"}),e.jsx("meta",{name:"description",content:"July 31, 2026: the official DeepSeek-V4-Flash API is in public beta. Same model string, agent-tuned post-training, Terminal Bench 2.1 82.7, native Responses API and Codex support."}),e.jsx("link",{rel:"canonical",href:n}),e.jsx("meta",{name:"robots",content:"index, follow"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:n}),e.jsx("meta",{property:"og:title",content:"DeepSeek-V4-Flash Goes Official: Agent Benchmarks Beat V4-Pro-Preview"}),e.jsx("meta",{property:"og:description",content:"Same model name, same call, new post-training. Terminal Bench 2.1 82.7, DeepSWE 54.4, native Responses API and Codex adaptation â and V4-Pro is untouched."}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("main",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6 text-slate-600 hover:text-[#0066FF]",children:[e.jsx(An,{className:"h-4 w-4 mr-2"}),"Back to Blog"]}),e.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-xs text-slate-500 mb-4",children:[e.jsx(se,{to:"/",className:"hover:text-[#0066FF]",children:"Home"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx(se,{to:"/blog",className:"hover:text-[#0066FF]",children:"Blog"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx("span",{className:"text-slate-700",children:"DeepSeek-V4-Flash GA"})]}),e.jsxs("div",{className:"mb-6 inline-flex items-center gap-2 text-xs font-medium bg-blue-50 text-[#0066FF] border border-blue-200 px-3 py-1.5 rounded-full",children:[e.jsx(Lt,{className:"h-3.5 w-3.5"}),"API changelog · July 31, 2026 · Independent Guide"]}),e.jsxs("article",{children:[e.jsx("h1",{className:"text-3xl md:text-5xl font-bold text-slate-900 mb-4 leading-tight",children:"DeepSeek-V4-Flash Is Now Official: Agent Benchmarks Beat V4-Pro-Preview, and Your Code Does Not Change"}),e.jsx("p",{className:"text-lg text-slate-600 mb-2",children:"By the Deep Seek AI editorial desk · August 2, 2026 · 7 min read"}),e.jsxs("p",{className:"text-base text-slate-500 mb-8 italic",children:["DeepSeek pushed the official ",e.jsx("code",{children:"deepseek-v4-flash"})," API into public beta on July 31, 2026. Same model string, same endpoint, same architecture â but a fresh post-training pass that lifts agent scores clean past V4-Pro-Preview. Here is what actually changed, what did not, and what it means for the cheap tier of the DeepSeek API."]}),e.jsx(ie,{className:"mb-8 border-blue-200 bg-blue-50/60",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h2",{className:"text-lg font-bold text-slate-900 mb-3 mt-0",children:"The 60-second version"}),e.jsxs("ul",{className:"text-sm text-slate-800 space-y-2 list-disc pl-5",children:[e.jsxs("li",{children:["The ",e.jsx("strong",{children:"official (æ£å¼ç) DeepSeek-V4-Flash API"})," is live in public beta. Keep calling ",e.jsx("code",{children:"deepseek-v4-flash"})," â you get the newest version automatically."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Agent capability is the headline."})," DeepSeek reports the official V4-Flash substantially exceeding V4-Pro-Preview across nine agent benchmarks."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Same model, new post-training."})," V4-Flash-0731 keeps the exact structure and size of V4-Flash-Preview; only post-training was redone."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Native Responses API + Codex."})," The official Flash speaks the Responses API format natively and is specifically adapted for Codex."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"V4-Pro and the app are untouched."}),' Only the Flash API was upgraded. An official V4-Pro release is promised "as soon as possible".']})]})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"The agent benchmarks DeepSeek published"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["All figures below are DeepSeek's own reported numbers from the July 31, 2026 changelog entry. For public-benchmark code-agent tasks, DeepSeek says the official V4-Flash was evaluated using ",e.jsx("strong",{children:"DeepSeek Harness minimal mode"})," (announced as forthcoming) at the ",e.jsx("strong",{children:"max tier"}),", with ",e.jsx("code",{children:"top_p = 0.95"})," and"," ",e.jsx("code",{children:"temperature = 1.0"}),". Those settings matter: agent scores are extremely sensitive to the harness, so treat them as vendor-reported until independently reproduced."]}),e.jsx("div",{className:"overflow-x-auto mb-6",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200 rounded-lg overflow-hidden",children:[e.jsx("caption",{className:"sr-only",children:"DeepSeek-V4-Flash official release agent benchmark scores, July 31 2026"}),e.jsx("thead",{className:"bg-slate-100",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left px-4 py-3 font-semibold text-slate-700",children:"Benchmark"}),e.jsx("th",{className:"text-right px-4 py-3 font-semibold text-slate-700",children:"V4-Flash (official)"}),e.jsx("th",{className:"text-left px-4 py-3 font-semibold text-slate-700",children:"What it measures"})]})}),e.jsx("tbody",{className:"divide-y divide-slate-200",children:GJ.map(i=>e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 font-medium text-slate-900",children:i.name}),e.jsx("td",{className:"text-right px-4 py-3 font-mono",children:i.score}),e.jsx("td",{className:"px-4 py-3 text-slate-600",children:i.what})]},i.name))})]})}),e.jsxs("p",{className:"text-slate-700 mb-8",children:["Two of those suites are internal: ",e.jsx("strong",{children:"DSBench-FullStack"})," is DeepSeek's in-house full-stack development set and ",e.jsx("strong",{children:"DSBench-Hard"})," its hard coding-agent set. They are not third-party comparable â useful as a signal of intent, not as a leaderboard."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:'Why "same structure, new post-training" is the most important line'}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["DeepSeek states plainly that ",e.jsx("code",{children:"DeepSeek-V4-Flash-0731"})," has the same model structure and size as ",e.jsx("code",{children:"DeepSeek-V4-Flash-Preview"}),", and that only the post-training was rerun. That has three practical consequences:"]}),e.jsxs("ul",{className:"text-slate-700 space-y-3 list-disc pl-6 mb-8",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Latency and cost profiles should be stable."})," No parameter-count change means no reason to expect a different throughput or price tier, and n
2208one was announced."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Your prompts may still shift behaviour."})," Post-training is exactly what changes tool-calling style, refusal behaviour and verbosity. If you have prompt-brittle agent scaffolding, re-run your evals this week."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Self-hosters are unaffected for now."})," This was an API-side upgrade; the changelog does not announce new open weights."]})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Native Responses API and Codex adaptation"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["The official V4-Flash natively supports the ",e.jsx("strong",{children:"Responses API format"})," and has been specifically adapted for ",e.jsx("strong",{children:"Codex"}),". Practically, that means you can point a Codex-style agent harness at DeepSeek without a translation shim between chat-completions and Responses-style items. DeepSeek documents the configuration in its"," ",e.jsx("a",{href:"https://api-docs.deepseek.com/zh-cn/quick_start/agent_integrations/codex",target:"_blank",rel:"noopener noreferrer",className:"text-[#0066FF] underline",children:"agent integrations guide"}),"."]}),e.jsx("p",{className:"text-slate-700 mb-8",children:"Combined with the agent benchmarks, the positioning is hard to miss: DeepSeek wants Flash â the cheap tier â to be the default model behind coding agents, not the fallback y
2208ou use when Pro is too expensive."}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What this costs you"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["No pricing change accompanied the July 31 update. The rates in force at the time, per 1,000,000 tokens in USD (these were replaced at the V4.1-Flash GA release on September 9, 2026 â see our"," ",e.jsx(se,{to:"/pricing",className:"text-[#0066FF] underline",children:"current pricing page"}),"):"]}),e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200 rounded-lg overflow-hidden",children:[e.jsx("thead",{className:"bg-slate-100",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left px-4 py-3 font-semibold text-slate-700",children:"Model"}),e.jsx("th",{className:"text-right px-4 py-3 font-semibold text-slate-700",children:"Input (cache miss)"}),e.jsx("th",{className:"text-right px-4 py-3 font-semibold text-slate-700",children:"Input (cache hit)"}),e.jsx("th",{className:"text-right px-4 py-3 font-semibold text-slate-700",children:"Output"})]})}),e.jsxs("tbody",{className:"divide-y divide-slate-200",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 font-medium",children:"DeepSeek-V4-Flash"}),e.jsx("td",{className:"text-right px-4 py-3",children:"$0.14"}),e.jsx("td",{className:"text-right px-4 py-3",children:"$0.0028"}),e.jsx("td",{className:"text-right px-4 py-3",children:"$0.28"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 font-medium",children:"DeepSeek-V4-Pro"}),e.jsx("td",{className:"text-right px-4 py-3",children:"$0.435"}),e.jsx("td",{className:"text-right px-4 py-3",children:"$0.003625"}),e.jsx("td",{className:"text-right px-4 py-3",children:"$0.87"})]})]})]})}),e.jsxs("p",{className:"text-slate-700 mb-8",children:["At the time no peak-hour surcharge was active; one went live with the V4.1-Flash GA release on September 9, 2026. We re-check the official rate card weekly and publish every change on our"," ",e.jsx(se,{to:"/pricing",className:"text-[#0066FF] underline",children:"DeepSeek pricing page"}),"."]}),e.jsx(ie,{className:"mb-8 border-amber-200 bg-amber-50/60",children:e.jsx(me,{className:"p-6",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(zr,{className:"h-5 w-5 text-amber-600 flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsxs("h2",{className:"text-lg font-bold text-amber-900 mb-2 mt-0",children:["What did ",e.jsx("em",{children:"not"})," change"]}),e.jsxs("p",{className:"text-sm text-amber-900",children:["DeepSeek is explicit: only the DeepSeek-V4-Flash API was upgraded. The"," ",e.jsx("strong",{children:"DeepSeek-V4-Pro API"})," and the models serving the"," ",e.jsx("strong",{children:"app and web chat"}),' are unchanged. If you benchmarked Pro last week, those numbers still stand â and the official V4-Pro release is still pending, promised "as soon as possible".']})]})]})})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Your migration checklist (it is short)"}),e.jsx("ul",{className:"text-slate-700 space-y-3 mb-8",children:['Keep model: "deepseek-v4-flash" â no string change, no endpoint change.',"Re-run your agent and tool-calling evals: post-training changed, so behaviour can shift.","If you run a Codex-style harness, try the native Responses API path and drop your shim.","Do not switch to V4-Pro for agent work on price grounds alone â Flash now leads on the published agent suites.","Re-check the official rate card before you commit budget; no price change was announced with this release."].map(i=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(mh,{className:"h-5 w-5 text-emerald-600 flex-shrink-0 mt-0.5"}),e.jsx("span",{children:i})]},i))}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Frequently asked questions"}),e.jsx("div",{className:"space-y-5 mb-10",children:a.mainEntity.map(i=>e.jsxs("div",{className:"border-b border-slate-200 pb-4",children:[e.jsx("h3",{className:"font-semibold text-slate-900 mb-2",children:i.name}),e.jsx("p",{className:"text-slate-700 text-sm",children:i.acceptedA
2208nswer.text})]},i.name))}),e.jsxs("p",{className:"text-sm text-slate-500 mb-10",children:["Source: DeepSeek's official API changelog entry dated 2026-07-31 (",e.jsx("a",{href:"https://api-docs.deepseek.com/zh-cn/updates/",target:"_blank",rel:"noopener noreferrer",className:"text-[#0066FF] underline",children:"api-docs.deepseek.com/updates"}),"). This is an independent fan-run guide and is not affiliated with DeepSeek."]}),e.jsxs("div",{className:"border-t border-slate-200 pt-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related reading"}),e.jsx(Nn,{})]})]}),e.jsx(cn,{})]})})]})},QJ=[{cmd:"/pro",what:"Arms DeepSeek-V4-Pro for the next turn only, then falls back to Flash."},{cmd:"/preset max",what:"Uses V4-Pro for the whole session â highest quality, highest cost."},{cmd:"/help",what:"Full slash-command reference inside the TUI."}],YJ=()=>{const t=jn(),n=$t.models["v4-flash"],s=$t.models["v4-pro"],r="https://deepseek.ai/blog/deepseek-reasonix-coding-agent-cli",{announced:a,applies:i}=$t.peakSurcharge,o=i?"A peak-hour surcharge is currently active on the official rate card, so session cost varies by time of day.":a?"A peak-hour surcharge has been announced but is not active yet â the official rate card still shows one flat tier.":"No peak-hour surcharge is in effect; the official rate card shows one flat tier.",l={"@context":"https://schema.org","@type":"BlogPosting",headline:"Reasonix: The DeepSeek-Native Terminal Coding Agent â Setup, Flash-First Cost Control and Slash Commands",datePublished:"2026-08-02T14:00:00+00:00",dateModified:"2026-08-02T14:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI (Independent Guide)",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},description:"DeepSeek's agent-integrations docs now list Reasonix, a DeepSeek-native coding agent that runs in the terminal via npx reasonix code. Install steps, how the Flash-first default keeps cost down, and when to arm V4-Pro.",mainEntityOfPage:{"@type":"WebPage","@id":r}},c={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"Reasonix DeepSeek coding agent",item:r}]},d={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What is Reasonix?",acceptedAnswer:{"@type":"Answer",text:"Reasonix is a DeepSeek-native coding agent that runs in your terminal. It talks to api.deepseek.com directly â without an OpenAI-compatibility translation shim â and is built around a cache-first request loop, flash-first cost control and automatic tool-call repair. DeepSeek lists it in the agent-integrations section of its official API documentation."}},{"@type":"Question",name:"How do I install Reasonix for DeepSeek?",acceptedAnswer:{"@type":"Answer",text:"Install Node.js 20.10 or newer (Windows users also need Git for Windows), get an API key from platform.deepseek.com/api_keys, then run `cd /path/to/my-project` followed by `npx reasonix code`. No global install is required. On first run a built-in wizard prompts for the key and persists it to ~/.reasonix/config.json, so you do not need to export an environment variable."}},{"@type":"Question",name:"Which DeepSeek model does Reasonix use by default?",acceptedAnswer:{"@type":"Answer",text:"DeepSeek-V4-Flash. That is the cheap, fast tier, which is what makes a terminal agent affordable to run for hours of iteration. Type /pro inside the TUI to arm DeepSeek-V4-Pro for the next turn only, or /preset max to use Pro for the entire session."}},{"@type":"Question",name:"What does a Reasonix session cost?",acceptedAnswer:{"@type":"Answer",text:`On the default Flash tier, DeepSeek-V4-Flash is $${n.inputCacheMiss} per 1M input tokens on a cache miss, $${n.inputCacheHit} on a cache hit and $${n.output} per 1M output tokens. Because Reasonix is cache-first, repeated context in a long session is billed largely at the cache-hit rate. Switching to V4-Pro raises that to $${s.inputCacheMiss} / $${s.inputCacheHit} input and $${s.output} output per 1M tokens. ${o}`}},{"@type":"Question",name:"Is Reasonix made by DeepSeek?",acceptedA
2208nswer:{"@type":"Answer",text:"No. Reasonix is a third-party open-source project that DeepSeek documents as a supported agent integration. DeepSeek supplies the models and the API; the agent itself is maintained independently. This guide is likewise an independent fan-run resource and is not affiliated with DeepSeek."}},{"@type":"Question",name:"How is Reasonix different from using DeepSeek through Codex or Cline?",acceptedAnswer:{"@type":"Answer",text:"Most coding agents were written for another vendor's API and reach DeepSeek through an OpenAI-compatible endpoint. Reasonix targets api.deepseek.com natively, so it can lean on DeepSeek-specific behaviour such as context caching and its own tool-call repair rather than treating DeepSeek as a drop-in substitute."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Reasonix: DeepSeek Coding Agent in Your Terminal (2026)"}),e.jsx("meta",{name:"description",content:"Reasonix is a DeepSeek-native terminal coding agent: npx reasonix code, V4-Flash by default, /pro to arm V4-Pro. Setup steps, cache-first cost control and real per-token rates."}),e.jsx("link",{rel:"canonical",href:r}),e.jsx("meta",{name:"robots",content:"index, follow"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:r}),e.jsx("meta",{property:"og:title",content:"Reasonix: The DeepSeek-Native Terminal Coding Agent"}),e.jsx("meta",{property:"og:description",content:"No translation shim, no global install. npx reasonix code runs a DeepSeek coding agent on V4-Flash by default, with /pro to escalate to V4-Pro when a task needs it."}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(l)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(c)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(d)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("main",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6 text-slate-600 hover:text-[#0066FF]",children:[e.jsx(An,{className:"h-4 w-4 mr-2"}),"Back to Blog"]}),e.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-xs text-slate-500 mb-4",children:[e.jsx(se,{to:"/",className:"hover:text-[#0066FF]",children:"Home"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx(se,{to:"/blog",className:"hover:text-[#0066FF]",children:"Blog"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx("span",{className:"text-slate-700",children:"Reasonix DeepSeek coding agent"})]}),e.jsxs("div",{className:"mb-6 inline-flex items-center gap-2 text-xs font-medium bg-blue-50 text-[#0066FF] border border-blue-200 px-3 py-1.5 rounded-full",children:[e.jsx(Zy,{className:"h-3.5 w-3.5"}),"Agent integrations · August 2, 2026 · Independent Guide"]}),e.jsxs("article",{children:[e.jsx("h1",{className:"text-3xl md:text-5xl font-bold text-slate-900 mb-4 leading-tight",children:"Reasonix: The DeepSeek-Native Coding Agent That Lives in Your Terminal"}),e.jsx("p",{className:"text-lg text-slate-600 mb-2",children:"By the Deep Seek AI editorial desk · August 2, 2026 · 7 min read"}),e.jsxs("p",{className:"text-base text-slate-500 mb-8 italic",children:["DeepSeek's agent-integrations documentation now lists ",e.jsx("strong",{children:"Reasonix"})," â a coding agent written for DeepSeek's own API rather than bolted onto an OpenAI-compatible shim. One command, ",e.jsx("code",{children:"npx reasonix code"}),", and you have an agent in your project directory running on ",e.jsx("strong",{children:"DeepSeek-V4-Flash"})," by default. Here is what it is, how to set it up, and what a session actually costs."]}),e.jsx(ie,{className:"mb-8 border-blue-200 bg-blue-50/60",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h2",{className:"text-lg font-bold text-slate-900 mb-3 mt-0",children:"The 60-second version"}),e.jsxs("ul",{className:"text-sm text-slate-800 space-y-2 list-disc pl-5",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Terminal-first, DeepSeek-first."})," Reasonix talks to"," ",e.jsx("code",{children:"api.deepseek.com"})," directly â no translation layer between the agent and the model."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Three-step setup."})," Node.js 20.10+, an API key from the DeepSeek Platform, then ",e.jsx("code",{children:"npx reasonix code"})," in your project folder."]}
2208),e.jsxs("li",{children:[e.jsx("strong",{children:"No global install, no env var."})," A first-run wizard stores your key in ",e.jsx("code",{children:"~/.reasonix/config.json"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Flash-first cost control."})," V4-Flash is the default;"," ",e.jsx("code",{children:"/pro"})," arms V4-Pro for one turn, ",e.jsx("code",{children:"/preset max"})," for the whole session."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Cache-first loop and automatic tool-call repair"})," are the two design choices that make a long agent session survivable â both technically and financially."]})]})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:'Why "DeepSeek-native" is not just marketing'}),e.jsx("p",{className:"text-slate-700 mb-4",children:"Almost every popular coding agent was designed for a different vendor's API and reaches DeepSeek through the OpenAI-compatible endpoint. That works, but it flattens everything DeepSeek does differently. Two things get lost in particular:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-slate-700 mb-6",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Context caching."})," DeepSeek bills cache hits at a fraction of the cache-miss rate. An agent that does not deliberately structure its prompts to hit the cache throws that discount away on every turn. Reasonix is built around a",e.jsx("em",{children:" cache-first loop"}),", which is exactly the right optimisation target for an agent that re-sends a large, mostly-identical project context dozens of times."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Tool-call behaviour."})," Model-specific quirks in function calling are usually patched with retries in generic agents. Reasonix advertises"," ",e.jsx("em",{children:"automatic tool-call repair"})," â it fixes malformed calls instead of burning a whole turn on them."]})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Setup: three steps, about two minutes"}),e.jsx("h3",{className:"text-xl font-semibold text-slate-900 mt-6 mb-2",children:"1. Install Node.js"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["You need ",e.jsx("strong",{children:"Node.js 20.10 or newer"}),". On Windows you also need"," ",e.jsx("a",{href:"https://git-scm.com/download/win",target:"_blank",rel:"noopener noreferrer",className:"text-[#0066FF] underline",children:"Git for Windows"}),", since the agent shells out to git for its file operations."]}),e.jsx("h3",{className:"text-xl font-semibold text-slate-900 mt-6 mb-2",children:"2. Get a DeepSeek API key"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["Create a key at"," ",e.jsx("a",{href:"https://platform.deepseek.com/api_keys",target:"_blank",rel:"noopener noreferrer",className:"text-[#0066FF] underline",children:"platform.deepseek.com/api_keys"}),". You do ",e.jsx("em",{children:"not"})," need to export it: the first run of Reasonix prompts for the key through a built-in wizard and writes it to ",e.jsx("code",{children:"~/.reasonix/config.json"}),". That is convenient, and it is also worth knowing â that file is a plaintext credential on your disk, so treat it like an SSH key and keep it out of any synced folder or repo."]}),e.jsx("h3",{className:"text-xl font-semibold text-slate-900 mt-6 mb-2",children:"3. Run it in your project"}),e.jsx("pre",{className:"bg-slate-900 text-slate-100 p-4 rounded-lg overflow-x-auto text-sm mb-4",children:e.jsx("code",{children:`cd /path/to/my-project 2209npx reasonix code`})}),e.jsxs("p",{className:"text-slate-700 mb-6",children:[e.jsx("code",{children:"npx"})," means no global install and no version pinned in your toolchain â you get the current release each time. The agent scopes itself to the directory you launch it in, so launch it at the repo root you actually want it editing."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Model control: Flash by default, Pro on demand"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["This is the part that matters most for your bill. Reasonix defaults to"," ",e.jsx("strong",{children:"DeepSeek-V4-Flash"})," for cost-efficient iteration and gives you explicit escalation instead of silently spending Pro money:"]}),e.jsx("div",{className:"overflow-x-auto mb-6",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200",children:[e.jsx("thead",{className:"bg-slate-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left p-3 border-b border-slate-200 font-semibold",children:"Command"}),e.jsx("th",{className:"text-left p-3 border-b border-slate-200 font-semibold",children:"Effect"})]})}),e.jsx("tbody",{children:QJ.map(h=>e.jsxs("tr",{className:"border-b border-slate-100",children:[e.jsx("td",{className:"p-3 font-mono text-[#0066FF]",children:h.cmd}),e.jsx("td",{className:"p-3 text-slate-700",children:h.what})]},h.cmd))})]})}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["The practical workflow: stay on Flash for exploration, file reading, mechanical edits and test loops. Reach for ",e.jsx("code",{children:"/pro"})," on the single turn where the reasoning is genuinely hard â an architectural refactor, a subtle concurrency bug, a migration plan. Reserve ",e.jsx("code",{children:"/preset max"})," for sessions where every turn is that hard."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What a session costs"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["Current DeepSeek API rates per 1M tokens, straight from our"," ",e.jsx(se,{to:"/pricing",className:"text-[#0066FF] underline",children:"pricing reference"}),":"]}),e.jsx("div",{className:"overflow-x-auto mb-6",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200",children:[e.jsx("thead",{className:"bg-slate-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left p-3 border-b border-slate-200 font-semibold",children:"Model"}),e.jsx("th",{className:"text-left p-3 border-b border-slate-200 font-semibold",children:"Input (cache miss)"}),e.jsx("th",{className:"text-left p-3 border-b border-slate-200 font-semibold",children:"Input (cache hit)"}),e.jsx("th",{className:"text-left p-3 border-b border-slate-200 font-semibold",children:"Output"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-b border-slate-100",children:[e.jsx("td",{className:"p-3 font-medium",children:"DeepSeek-V4-Flash (default)"}),e.jsxs("td",{className:"p-3",children:["$",n.inputCacheMiss]}),e.jsxs("td",{className:"p-3",children:["$",n.inputCacheHit]}),e.jsxs("td",{className:"p-3",children:["$",n.output]})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-3 font-medium",children:"DeepSeek-V4-Pro (/pro)"}),e.jsxs("td",{className:"p-3",children:["$",s.inputCacheMiss]}),e.jsxs("td",{className:"p-3",children:["$",s.inputCacheHit]}),e.jsxs("td",{className:"p-3",children:["$",s.output]})]})]})]})}),e.jsxs("p",{className:"text-slate-700 mb-6",children:["The cache-hit column is the whole game for a terminal agent. Your project context is re-sent on every turn, so a cache-first agent pays the miss rate roughly once and the hit rate thereafter. ",o]}),e.jsx(ie,{className:"mb-8 border-amber-200 bg-amber-50",children:e.jsxs(me,{className:"p-6 flex gap-3",children:[e.jsx(zr,{className:"h-5 w-5 text-amber-600 shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-slate-900 mb-2 mt-0",children:"Two things to check before you let it run"}),e.jsxs("ul",{className:"text-sm text-slate-800 space-y-2 list-disc pl-5",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Commit first."})," A terminal agent edits real files. Start from a clean git tree so every change it makes is reviewable with"," ",e.jsx("code",{children:"git diff"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Reasonix is third-party."})," DeepSeek documents it as a supported integration; it is not a DeepSeek product. You are handing an independent tool an API key and write access to your source, so read the project's own docs before pointing it at anything sensitive."]})]})]})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Where it fits next to the rest of the DeepSeek agent story"}),e.jsxs("p",{className:"text-slate-700 mb-6",children:["This lands right after the"," ",e.jsx(se,{to:"/blog/deepseek-v4-flash-ga-agent-benchmarks",className:"text-[#0066FF] underline",children:"official V4-Flash release on July 31, 2026"}),", which was explicitly an ",e.jsx("em",{children:"agent"})," upgrade: fresh post-training, native Responses API support and Codex adaptation, with agent benchmark scores passing V4-Pro-Preview. A Flash-first terminal agent only makes sense because the cheap tier is now genuinely good at multi-step tool use. If you want the model-side detail first, start with our"," ",e.jsx(se,{to:"/deepseek-v4",className:"text-[#0066FF] underline",children:"DeepSeek V4 overview"})," ","and the"," ",e.jsx(se,{to:"/deepseek-api",className:"text-[#0066FF] underline",children:"DeepSeek API guide"}),"."]}),e.jsxs("div",{className:"flex flex-wrap gap-3 mb-10",children:[e.jsx(Ke,{asChild:!0,className:"bg-[#0066FF] hover:bg-[#0052cc]",children:e.jsxs(se,{to:"/deepseek-api",children:[e.jsx(Lt,{className:"h-4 w-4 mr-2"}),"Explore the DeepSeek V4 API"]})}),e.jsx(Ke,{asChild:!0,variant:"outline",children:e.jsx("a",{href:"https://api-docs.deepseek.com/quick_start/agent_integrations/reasonix/",target:"_blank",rel:"noopener noreferrer",children:"Official Reasonix setup docs"})})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Frequently asked questions"}),e.jsx("div",{className:"space-y-5 mb-10",children:d.mainEntity.map(h=>e.jsxs("div",{className:"border-b border-slate-200 pb-4",children:[e.jsx("h3",{className:"font-semibold text-slate-900 mb-2",children:h.name}),e.jsx("p",{className:"text-slate-700 text-sm",children:h.acceptedA
2209nswer.text})]},h.name))}),e.jsxs("p",{className:"text-sm text-slate-500 mb-10",children:["Source: DeepSeek's official agent-integrations documentation for Reasonix (",e.jsx("a",{href:"https://api-docs.deepseek.com/quick_start/agent_integrations/reasonix/",target:"_blank",rel:"noopener noreferrer",className:"text-[#0066FF] underline",children:"api-docs.deepseek.com"}),"). This is an independent fan-run guide and is not affiliated with DeepSeek or with the Reasonix project."]}),e.jsxs("div",{className:"border-t border-slate-200 pt-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related reading"}),e.jsx(Nn,{})]})]}),e.jsx(cn,{})]})})]})},kx="https://deepseek.ai/blog/deepseek-harness-open-source-claude-code-alternative",ew="2026-08-16T09:00:00+00:00",JJ=[{mode:"Standard",what:"Full coding agent: file editing, shell, file and web search, skills, planning, goals, subagents and workflows."},{mode:"Code",what:"Exposes tools through the Code Mode SDK so the model can combine multi-step operations inside one TypeScript program."},{mode:"Minimal",what:"A two-tool agent: persistent bash plus str_replace_editor. Nothing else in the loop."},{mode:"Creator",what:"Inspect the live runtime, test Cordis plugins in memory, combine them into new modes and author presets."}],XJ=[{dimension:"Model choice",claude:"Optimised for Anthropic models; other providers need workarounds.",harness:"The model is a plugin. An OpenAI-compatible custom-provider form accepts DeepSeek, GLM, Kimi, Qwen, local Ollama or an Anthropic key."},{dimension:"Session durability",claude:"Plugin failures or dependency changes typically require a restart.",harness:"Swapping or removing a component is designed not to tear down the session â the demo resumes mid-crash with context intact."},{dimension:"Observability",claude:"Tracing usually needs an external tool such as LangSmith or Helicone.",harness:"Built-in Trajectory panel: per-turn context injection, tool calls, time-to-first-token, cache-hit rate and token counts."},{dimension:"Agent surface",claude:"Fixed surface with slash commands and MCP glue you cannot restructure.",harness:"Four modes (Standard, Code, Minimal, Creator) plus preset authoring at runtime."}],ZJ=[{name:"dsh-easy-ctx-manager",what:"Context management and trimming."},{name:"dsh-web-search-pro",what:"Multi-engine routing across DeepSeek, Exa, DDG, Bing and Jina, with SQLite caching and Playwright rendering."},{name:"dsh-memory-vault",what:"Cross-session memory vault exposing memory_remember / memory_recall / memory_forget."},{name:"dsh-cc-tui",what:"Claude Code-style fullscreen TUI with streaming expand and double-Esc rollback."},{name:"task-passport",what:"Carries durable task state across DeepSeek Harness, WorkBuddy, Claude Code and Codex with machine-readable checkpoints."}],QA=[{q:"What is DeepSeek Harness?",a:"DeepSeek Harness is an open-source, MIT-licensed coding agent runtime from DeepSeek (repo deepseek-harness, CLI dsh). It runs locally as a web app and lets you build with any model provider, in an architecture where every capability â models, tools, UI and the agent loop itself â is a hot-swappable plugin."},{q:"How is DeepSeek Harness different from Claude Code?",a:"The difference is architectural. Claude Code is a fixed, closed harness optimised for Anthropic models. DeepSeek Harness is open source and model-agnostic, built on the Cordis plugin runtime, which is designed to add, remove or replace components at runtime without restarting the session."},{q:"How do I install DeepSeek Harness?",a:"Install Node.js, then run `npx @deepseek-ai/dsh web`. The command starts the Web UI, served at http://127.0.0.1:3080 by default. You can also clone the GitHub repository and build from source with pnpm."},{q:"Can I use non-DeepSeek models in DeepSeek Harness?",a:"Yes. The Models settings pane exposes a custom-provider form that accepts any OpenAI-compatible endpoint, so DeepSeek, GLM, Kimi, Qwen, a local Ollama server or an Anthropic key all work. The model is just another plugin."},{q:"Is DeepSeek Harness free?",a:"The harness itself is free and MIT-licensed. You still pay whichever model provider you point it at. On DeepSeek's own API, V3.2 is $0.28 per 1M input tokens and $0.42 per 1M output tokens, with 90% off cached input tokens â but newer Pro-tier variants cost noticeably more per task, so re-run your own math before switching purely on price."},{q:"Is DeepSeek Harness production-ready?",a:"No. It is in developer preview and iterating rapidly, with compatibility-breaking changes expected. There are also no independent SWE-bench-style comparisons yet against Claude Code, Codex or Cursor, and the plugin model carries a supply-chain risk: a community plugin has the same rights as a first-party one."},{q:"What is Cordis?",a:"Cordis is the dependency-injection-style runtime underneath DeepSeek Harness, described
2209in the paper 'A Programming Paradigm for Spatiotemporal Composability'. Its kernel manages plugin mounting, unmounting and dependencies. A plugin implements a Service and claims a stable key such as ctx.tools, ctx.llm or ctx.sessions, so plugins find each other by key instead of importing concrete implementations."}],eX=()=>{const t=jn(),n={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek Harness Explained: The Open-Source, Plugin-First Alternative to Claude Code",datePublished:ew,dateModified:ew,author:{"@type":"Organization",name:"Deep Seek AI (Independent Guide)",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},description:"DeepSeek Harness is a free, MIT-licensed, plugin-first coding agent built on the Cordis runtime â an open-source Claude Code alternative where every model, tool and even the UI is hot-swappable. Install steps, architecture, comparison and honest limitations.",image:["https://deepseek.ai/og-image.png"],mainEntityOfPage:{"@type":"WebPage","@id":kx}},s={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeek Harness explained",item:kx}]},r={"@context":"https://schema.org","@type":"FAQPage",mainEntity:QA.map(i=>
2209({"@type":"Question",name:i.q,acceptedAnswer:{"@type":"Answer",text:i.a}}))},a={"@context":"https://schema.org","@type":"HowTo",name:"How to install DeepSeek Harness",totalTime:"PT10M",step:[{"@type":"HowToStep",name:"Install Node.js",text:"Install a current Node.js runtime on your machine."},{"@type":"HowToStep",name:"Start the Web UI",text:"Run `npx @deepseek-ai/dsh web`. The Web UI is served at http://127.0.0.1:3080 by default."},{"@type":"HowToStep",name:"Connect a model provider",text:"Open Settings â Models and add an OpenAI-compatible provider: DeepSeek, GLM, Kimi, Qwen, local Ollama or an Anthropic key."},{"@type":"HowToStep",name:"Pick an agent mode",text:"Choose Standard, Code, Minimal or Creator mode, then start prompting."}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek Harness: Open-Source Claude Code Alternative"}),e.jsx("meta",{name:"description",content:"DeepSeek Harness is a free, MIT-licensed coding agent where every model, tool and the UI is a plugin. Install with npx @deepseek-ai/dsh web, swap models, and see how it really compares to Claude Code."}),e.jsx("link",{rel:"canonical",href:kx}),e.jsx("meta",{name:"robots",content:"index, follow"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:kx}),e.jsx("meta",{property:"og:title",content:"DeepSeek Harness Explained: The Plugin-First Claude Code Alternative"}),e.jsx("meta",{property:"og:description",content:"Everything is a plugin â models, tools, sessions, even the UI. What DeepSeek Harness is, how Cordis works, how it compares to Claude Code, and where the limits still are."}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek Harness: Open-Source Claude Code Alternative"}),e.jsx("meta",{name:"twitter:description",content:"A free, MIT-licensed, plugin-first coding agent runtime built on Cordis. Setup, architecture, Claude Code comparison and honest limitations."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"article:published_time",content:ew}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("main",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6 text-slate-600 hover:text-[#0066FF]",children:[e.jsx(An,{className:"h-4 w-4 mr-2"}),"Back to Blog"]}),e.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-xs text-slate-500 mb-4",children:[e.jsx(se,{to:"/",className:"hover:text-[#0066FF]",children:"Home"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx(se,{to:"/blog",className:"hover:text-[#0066FF]",children:"Blog"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx("span",{className:"text-slate-700",children:"DeepSeek Harness explained"})]}),e.jsxs("div",{className:"mb-6 inline-flex items-center gap-2 text-xs font-medium bg-blue-50 text-[#0066FF] border border-blue-200 px-3 py-1.5 rounded-full",children:[e.jsx(lz,{className:"h-3.5 w-3.5"}),"Coding agents · August 16, 2026 · Independent Guide"]}),e.jsxs("article",{children:[e.jsx("h1",{className:"text-3xl md:text-5xl font-bold text-slate-900 mb-4 leading-tight",children:"DeepSeek Harness Explained: The Open-Source, Plugin-First Alternative to Claude Code"}),e.jsx("p",{className:"text-lg text-slate-600 mb-2",children:"By the Deep Seek AI editorial desk · August 16, 2026 · 9 min read"}),e.jsx(il,{date:"2026-08-16",className:"mb-6"}),e.jsxs("p",{className:"text-base text-slate-500 mb-8 italic",children:[e.jsx("strong",{children:"In short:"})," DeepSeek Harness is a free, MIT-licensed, plugin-first coding agent built on the ",e.jsx("strong",{children:"Cordis"})," runtime â an open-source alternative to Claude Code where every model, tool and even the UI is hot-swappable."]}),e.jsxs("p",{className:"text-slate-700 mb-4",children:['For most of 2025, "coding agents" meant a small handful of closed products â Claude Code, Codex, Cursor â where the harness around the model (tools, UI, slash commands, MCP glue) was a black box you rented rather than owned. DeepSeek Harness is the first credible attempt to blow that model apart: an open-source, plugin-first coding agent runtime in which the underlying language model is just another component you can swap. If you have been searching for an ',e.jsx("strong",{children:"open-source Claude Code alternative"}),", this is the project reshaping that conversation."]}),e.jsx(ie,{className:"mb-8 border-blue-200 bg-blue-50/60",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h2",{className:"text-lg font-bold text-slate-900 mb-3 mt-0",children:"The 60-second version"}),e.jsxs("ul",{className:"text-sm text-slate-800 space-y-2 list-disc pl-5",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"What it is:"})," a coding agent runtime from DeepSeek â repo"," ",e.jsx("code",{children:"deepseek-harness"}),", CLI ",e.jsx("code",{children:"dsh"})," â in developer preview."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Install:"})," Node.js, then ",e.jsx("code",{children:"npx @deepseek-ai/dsh web"}),"; the Web UI opens at ",e.jsx("code",{children:"http://127.0.0.1:3080"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Architecture:"})," everything is a plugin â models, tools, skills, sessions, sandboxes, storage, loops, scheduling and the UI."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Model-agnostic:"})," any OpenAI-compatible provider, including Anthropic keys."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Caveat:"})," developer preview, breaking changes guaranteed, plugin supply-chain risk, and no independent SWE-bench comparisons yet."]})]})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What DeepSeek Harness actually is"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["DeepSeek Harness is a coding agent runtime released by DeepSeek in developer preview. It uses an architecture where ",e.jsx("em",{children:"everything is a plugin"}
2209),', and it is powered by Cordis, whose design is described in the paper "A Programming Paradigm for Spatiotemporal Composability."']}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["You install it with a single command and it launches a local web app. After installing Node.js, running the command below starts the Web UI, served at"," ",e.jsx("code",{children:"http://127.0.0.1:3080"})," by default. From there you point it at an API provider, pick an agent mode and start prompting."]}),e.jsx("pre",{className:"bg-slate-900 text-slate-100 p-4 rounded-lg overflow-x-auto text-sm mb-4",children:e.jsx("code",{children:`npx @deepseek-ai/dsh web 2210# Web UI â http://127.0.0.1:3080`})}),e.jsxs("p",{className:"text-slate-700 mb-6",children:["Two things are worth flagging up front. First, DeepSeek Harness is currently in"," ",e.jsx("strong",{children:"developer preview"})," and iterating rapidly â there will be compatibility-breaking changes. Second, it is not just a terminal wrapper: the web UI, the slash commands, the model connectors and even the agent loop itself are separate plugins mounted into a shared runtime."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:'The "harness" idea â why it matters'}),e.jsx("p",{className:"text-slate-700 mb-4",children:'An AI coding assistant has exactly one "brain" (the model). Everything else â context assembly, tool calls, MCP servers, the UI, the memory â is the harness. Claude Code is a harness. Codex is a harness. The model is interchangeable in principle, but in most products the harness is hard-coded against a specific provider.'}),e.jsx("blockquote",{className:"border-l-4 border-[#0066FF] pl-4 italic text-slate-700 mb-6",children:'"The model is the soul of an agent. A harness lets an agent understand its environment, use tools, and keep working in real-world settings."'}),e.jsx("p",{className:"text-slate-700 mb-6",children:"The DeepSeek Harness bet is that the harness â not the model â is where the interesting engineering work now lives, and that it should be open and composable."}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Everything is a plugin: the Cordis architecture"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["The load-bearing claim of the whole project is that ",e.jsx("em",{children:"every"}),' capability is a plugin â not "many things are plugins." According to the official docs:']}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-slate-700 mb-6",children:[e.jsx("li",{children:"The Cordis kernel manages plugin mounting, unmounting and dependencies."}),e.jsx("li",{children:"Plugins provide every agent capability: models, tools, skills, sessions, sandboxes, storage, loops, scheduling and the UI."}),e.jsx("li",{children:"Cordis services and events let plugins work together."}),e.jsx("li",{children:"Developers can select, swap or extend any capability in configuration â without changing the DeepSeek Harness source code."})]}),e.jsxs("p",{className:"text-slate-700 mb-6",children:["Underneath, Cordis is a small dependency-injection-style runtime. A plugin is an object implementing a ",e.jsx("code",{children:"Service"}),": either a function with optional ",e.jsx("code",{children:"inject"})," ","and ",e.jsx("code",{children:"apply(ctx)"})," fields, or a ",e.jsx("code",{children:"Service"})," subclass whose lifecycle Cordis mounts into the current context. A context is a repository of services, and a service claims a stable key such as ",e.jsx("code",{children:"ctx.tools"}),", ",e.jsx("code",{children:"ctx.llm"})," or"," ",e.jsx("code",{children:"ctx.sessions"})," â other plugins find services by key instead of importing a concrete implementation. If that sounds like React's declarative model or Kubernetes reconciliation loops applied to agents, that is the right instinct."]}),e.jsx("h3",{className:"text-xl font-semibold text-slate-900 mt-8 mb-2",children:"Revertible effects and reactive coeffects"}),e.jsx("p",{className:"text-slate-700 mb-4",children:"The paper behind Cordis argues for two properties every runtime component should have:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-slate-700 mb-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Revertible effects."})," When a component mutates the shared environment (a file handle, a session, a database connection), the runtime records the operation needed to undo it. Removing the component cleans up automatically â no lingering event handlers or stale state."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Reactive coeffects."}),' Components declaratively state what they need. A plugin that declares a database dependency is activated
2210when that service appears and gracefully deactivated when it goes away â no hardcoded "plan B" in every consumer.']})]}),e.jsx("p",{className:"text-slate-700 mb-6",children:"Combined, these yield the three practical properties Cordis emphasises: automatic cleanup, continuous dependency reaction, and live reconfiguration with hot module replacement."}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"DeepSeek Harness vs Claude Code"}),e.jsx("div",{className:"overflow-x-auto mb-6",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200",children:[e.jsx("caption",{className:"sr-only",children:"Comparison of DeepSeek Harness and Claude Code across four dimensions"}),e.jsx("thead",{className:"bg-slate-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left p-3 border-b border-slate-200 font-semibold",children:"Dimension"}),e.jsx("th",{className:"text-left p-3 border-b border-slate-200 font-semibold",children:"Claude Code"}),e.jsx("th",{className:"text-left p-3 border-b border-slate-200 font-semibold",children:"DeepSeek Harness"})]})}),e.jsx("tbody",{children:XJ.map(i=>e.jsxs("tr",{className:"border-b border-slate-100 align-top",children:[e.jsx("td",{className:"p-3 font-semibold text-slate-900",children:i.dimension}),e.jsx("td",{className:"p-3 text-slate-700",children:i.claude}),e.jsx("td",{className:"p-3 text-slate-700",children:i.harness})]},i.dimension))})]})}),e.jsx("p",{className:"text-slate-700 mb-6",children:'The session-durability demo is worth treating carefully: a presenter clicking "continue" after a mid-session crash and resuming with full context is a live demonstration of the revertible-effects idea â not a proof that it holds under every failure mode.'}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"The four agent modes"}),e.jsx("div",{className:"overflow-x-auto mb-6",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200",children:[e.jsx("thead",{className:"bg-slate-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left p-3 border-b border-slate-200 font-semibold",children:"Mode"}),e.jsx("th",{className:"text-left p-3 border-b border-slate-200 font-semibold",children:"What it gives you"})]})}),e.jsx("tbody",{children:JJ.map(i=>e.jsxs("tr",{className:"border-b border-slate-100 align-top",children:[e.jsx("td",{className:"p-3 font-mono text-[#0066FF] whitespace-nowrap",children:i.mode}),e.jsx("td",{className:"p-3 text-slate-700",children:i.what})]},i.mode))})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"The ecosystem: real, but young"}),e.jsx("p",{className:"text-slate-700 mb-4",children:'An "everything is a plugin" architecture only matters if there are plugins. A community registry has already formed. Real examples:'}),e.jsx("ul",{className:"list-disc pl-6 space-y-2 text-slate-700 mb-4",children:ZJ.map(i=>e.jsxs("li",{children:[e.jsx("code",{children:i.name})," â ",i.what]},i.name))}),e.jsx("p",{className:"text-slate-700 mb-6",children:"That last one is telling: the community is already treating DeepSeek Harness as one node in a multi-agent workflow rather than a replacement for everything else."}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"The cost story has shifted"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["A common reason people looked at DeepSeek early in 2025 was price. That story is more nuanced now. DeepSeek V3.2 scores 66 on the Artificial Analysis Intelligence Index â a substantial uplift over V3.2-Exp â and DeepSeek switched its main API endpoint to V3.2 with no pricing change from V3.2-Exp, putting it at ",e.jsx("strong",{children:"$0.28 / $0.42"})," per 1M input/output tokens, with ",e.jsx("strong",{children:"90% off cached input tokens"}),". It is also efficient on token usage: $54 to run the Artificial Analysis test suite, versus $380 for DeepSeek-R1 0528, $380 for Kimi K2 Thinking, $859 for GPT-5.1 High and $1,201 for Gemini 3 Pro."]}),e.jsx(ie,{className:"mb-6 border-amber-200 bg-amber-50",children:e.jsxs(me,{className:"p-5 flex gap-3",children:[e.jsx(zr,{className:"h-5 w-5 text-amber-600 shrink-0 mt-0.5"}),e.jsxs("p",{className:"text-sm text-amber-900 m-0",children:['Newer DeepSeek Pro-tier variants carry noticeably higher per-task costs than the earlier "practically free" versions. If you are switching purely for price, re-run
2210your own math against the'," ",e.jsx(se,{to:"/pricing",className:"underline font-semibold",children:"current DeepSeek rate card"}),"."]})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Honest limitations"}),e.jsx("p",{className:"text-slate-700 mb-4",children:"One reviewer, who has spent six months building a sophisticated AI-body-signals mobile app as a personal benchmark, tried to reproduce a minimal version of it in DeepSeek Harness using DeepSeek's Pro model. His verdict: better than Kimi, GLM and Qwen on the same prompt, but visibly weaker than Claude Opus â nervous-system rendering was off and animation quality lagged the Anthropic version."}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["That is the key point for buyers: ",e.jsx("strong",{children:"harness architecture is separate from model quality"}),". DeepSeek Harness lets you attach ",e.jsx("em",{children:"any"})," model â including Claude Opus, if you have an API key â so architectural flexibility and generation quality are decoupled decisions."]}),e.jsx(ie,{className:"mb-6 border-slate-200 bg-slate-50",children:e.jsxs(me,{className:"p-5",children:[e.jsxs("h3",{className:"text-base font-bold text-slate-900 mb-3 mt-0 flex items-center gap-2",children:[e.jsx(Dz,{className:"h-4 w-4 text-slate-600"}),"Three caveats before you standardise on it"]}),e.jsxs("ul",{className:"text-sm text-slate-800 space-y-2 list-disc pl-5",children:[e.jsx("li",{children:"Developer-preview status means breaking changes are guaranteed."}),e.jsx("li",{children:'"Everything is a plugin" has a supply-chain implication: a malicious community plugin has the same rights as a first-party one.'}),e.jsx("li",{children:"There are no independent SWE-bench-style comparisons yet against Claude Code, Codex or Cursor."})]})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Who should try it"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-slate-700 mb-6",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Teams that want to own their agent stack."})," If the black-box harness is the thing blocking you, this is the first serious escape hatch."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Multi-model shops."})," Routing cheap turns to DeepSeek V3.2 and hard turns to a frontier model is a configuration change, not a rewrite."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Agent researchers."})," Creator mode plus the Trajectory panel make the loop itself inspectable."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Not yet:"})," teams that need a stable, supported tool with published benchmark parity today."]})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Frequently asked questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"mb-10",children:QA.map((i,o)=>e.jsxs(ss,{value:`faq-${o}`,children:[e.jsx(rs,{className:"text-left text-slate-900 font-semibold",children:i.q}),e.jsx(as,{className:"text-slate-700",children:i.a})]},i.q))}),e.jsx(ie,{className:"mb-10 border-blue-200 bg-blue-50/60",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h2",{className:"text-lg font-bold text-slate-900 mb-2 mt-0 flex items-center gap-2",children:[e.jsx(Zy,{className:"h-4 w-4 text-[#0066FF]"}),"Keep reading"]}),e.jsxs("ul",{className:"text-sm space-y-2 list-disc pl-5 text-slate-800",children:[e.jsx("li",{children:e.jsx(se,{to:"/blog/deepseek-reasonix-coding-agent-cli",className:"text-[#0066FF] underline",children:"Reasonix: the DeepSeek-native terminal coding agent"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-api",className:"text-[#0066FF] underline",children:"The DeepSeek API explained"})}),e.jsx("li",{children:e.jsx(se,{to:"/pricing",className:"text-[#0066FF] underline",children:"Current DeepSeek pricing and cost calculator"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-vs-claude",className:"text-[#0066FF] underline",children:"DeepSeek vs Claude: model-level comparison"})})]})]})}),e.jsx("p",{className:"text-xs text-slate-500 mb-8",children:"This is an independent, fan-run guide. It is not affiliated with, endorsed by or operated by DeepSeek. Figures reflect publicly documented sources at the time of writing; always verify against the official documentation before committing spend."}),e.jsx(Nn,{}),e.jsx(cn,{})]})]})})]})},Nx="https://deepseek.ai/blog/deepseek-v5-release-date-rumors",tw="2026-08-20T09:00:00+00:00",tX=[{claim:"DeepSeek V5 targets a September 2026 release",status:"Rumor",detail:"Circulated via a social-media leak post. No DeepSeek changelog entry, no GitHub repo, no API model string. Treat as unverified."},{claim:"V5 is rebuilt 'from scratch on a new foundation'",status:"Rumor",detail:"Repeated in leak threads without a technical report or paper attached. DeepSeek has historically published architecture papers alongside launches â none exists for V5."},{claim:"V5 reaches frontier ('Mythos-class') performance",status:"Unverifiable",detail:"No benchmark table, no eval harness, no third-party reproduction. Any score you see quoted for V5 today has no primary source."},{claim:"V4 shipped in April 2026 and V4-Flash went to public beta on July 31, 2026",status:"Confirmed",detail
2210:"Documented in DeepSeek's official API changelog. This is the real, current state of the model line."},{claim:"Legacy aliases deepseek-chat and deepseek-reasoner were retired on July 24, 2026",status:"Confirmed",detail:"Announced in the official docs; integrations pinned to those strings had to migrate."}],nX=[{when:"January 2025",what:"DeepSeek-R1 lands and reframes the open reasoning-model conversation."},{when:"August 2025",what:"V3.1 arrives quietly, with hybrid reasoning behaviour."},{when:"April 2026",what:"DeepSeek V4 is unveiled â the current generation."},{when:"July 24, 2026",what:"Legacy API aliases retire; V4 becomes the default surface."},{when:"July 31, 2026",what:"deepseek-v4-flash enters public beta with new agent benchmarks."},{when:"September 2026 (rumored)",what:"Claimed DeepSeek V5 window. No official confirmation."}],YA=[{q:"Is DeepSeek V5 officially announced?",a:"No. As of August 20, 2026 there is no official DeepSeek V5 announcement. Nothing appears in DeepSeek's API changelog, no model string exists on api.deepseek.com, and no technical report or GitHub repository has been published. Every V5 claim currently in circulation originates from unverified social-media leaks."},{q:"When is the DeepSeek V5 release date?",a:"There is no confirmed release date. Leak posts point at September 2026, but that figure has no primary source. Historically DeepSeek has shipped major generations roughly 12-18 months apart, and V4 only launched in April 2026, so a V4.x refinement release is statistically more likely in the near term than a full V5."},{q:"What would DeepSeek V5 change compared to V4?",a:"Unknown, because no architecture documentation exists. Rumors mention a rebuild 'from scratch on a new foundation' and frontier-level performance, but without a paper or benchmark harness those are claims, not specifications. The reasonable expectation, based on DeepSeek's published direction with V4, is continued work on attention compression, cache efficiency and agentic tool use."},{q:"Which DeepSeek model should I use today?",a:"Use the current V4 line. deepseek-v4-flash is the cheap, fast default and went into public beta on July 31, 2026 with strong agent benchmark scores; the Pro tier is for harder reasoning-heavy turns. Check our pricing page for the live rate card before you budget."},{q:"Should I delay a project waiting for DeepSeek V5?",a:"No. Build against V4 today. DeepSeek keeps model strings stable within a generation and publishes retirement notices in advance, so a future V5 would be an opt-in migration rather than a forced break. Waiting on an unconfirmed model costs you months of shipping."}
2210,{q:"How will we know when DeepSeek V5 is real?",a:"Three signals, in this order: an entry in the official API changelog at api-docs.deepseek.com/updates, a new model string served by api.deepseek.com, and a technical report or repository under the deepseek-ai GitHub organisation. Until at least one of those exists, treat V5 as a rumor."},{q:"Is 'Mythos-class' an official DeepSeek term?",a:"No. It is leak-thread shorthand for 'competitive with the top closed frontier models'. DeepSeek does not use it in any published material."}],sX=()=>{const t=jn(),n={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek V5: Release Date Rumors vs. Confirmed Facts (August 2026)",datePublished:tw,dateModified:tw,author:{"@type":"Organization",name:"Deep Seek AI (Independent Guide)",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},description:"There is no official DeepSeek V5 announcement. We separate the September 2026 leak claims from what DeepSeek has actually documented, and explain which model to use today.",image:["https://deepseek.ai/og-image.png"],mainEntityOfPage:{"@type":"WebPage","@id":Nx}},s={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeek V5 rumors",item:Nx}]},r={"@context":"https://schema.org","@type":"FAQPage",mainEntity:YA.map(a=>
2210({"@type":"Question",name:a.q,acceptedAnswer:{"@type":"Answer",text:a.a}}))};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek V5: Release Date Rumors vs. Facts (2026)"}),e.jsx("meta",{name:"description",content:"Is DeepSeek V5 real? No official announcement exists as of August 2026. We check the September 2026 leak claims against DeepSeek's own changelog and explain which model to build on now."}),e.jsx("link",{rel:"canonical",href:Nx}),e.jsx("meta",{name:"robots",content:"index, follow"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:Nx}),e.jsx("meta",{property:"og:title",content:"DeepSeek V5: Release Date Rumors vs. Confirmed Facts"}),e.jsx("meta",{property:"og:description",content:"No changelog entry, no model string, no paper. What the DeepSeek V5 leaks actually claim, what DeepSeek has confirmed, and what to do in the meantime."}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek V5: Release Date Rumors vs. Facts (2026)"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek V5 is unconfirmed. Leak claims, the real V4 timeline, and the three signals that would prove V5 exists."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"article:published_time",content:tw}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("main",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6 text-slate-600 hover:text-[#0066FF]",children:[e.jsx(An,{className:"h-4 w-4 mr-2"}),"Back to Blog"]}),e.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-xs text-slate-500 mb-4",children:[e.jsx(se,{to:"/",className:"hover:text-[#0066FF]",children:"Home"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx(se,{to:"/blog",className:"hover:text-[#0066FF]",children:"Blog"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx("span",{className:"text-slate-700",children:"DeepSeek V5 rumors"})]}),e.jsxs("div",{className:"mb-6 inline-flex items-center gap-2 text-xs font-medium bg-blue-50 text-[#0066FF] border border-blue-200 px-3 py-1.5 rounded-full",children:[e.jsx(Zc,{className:"h-3.5 w-3.5"}),"Model roadmap · August 20, 2026 · Independent Guide"]}),e.jsxs("article",{children:[e.jsx("h1",{className:"text-3xl md:text-5xl font-bold text-slate-900 mb-4 leading-tight",children:"DeepSeek V5: Release Date Rumors vs. Confirmed Facts"}),e.jsx("p",{className:"text-lg text-slate-600 mb-2",children:"By the Deep Seek AI editorial desk · August 20, 2026 · 7 min read"}),e.jsx(il,{date:"2026-08-20",className:"mb-6"}),e.jsxs("p",{className:"text-base text-slate-500 mb-8 italic",children:[e.jsx("strong",{children:"In short:"})," DeepSeek V5 is ",e.jsx("strong",{children:"not announced"}),". There is no changelog entry, no API model string and no technical report. The September 2026 date circulating online comes from an unverified leak, not from DeepSeek."]}),e.jsx(ie,{className:"mb-8 border-amber-200 bg-amber-50/70",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h2",{className:"text-lg font-bold text-slate-900 mb-2 mt-0 flex items-center gap-2",children:[e.jsx(zr,{className:"h-4 w-4 text-amber-600"}),"Status as of August 20, 2026"]}),e.jsxs("p",{className:"text-sm text-slate-800",children:["No official DeepSeek V5 announcement exists. The newest documented release is the"," ",e.jsx("strong",{children:"deepseek-v4-flash"})," public beta of July 31, 2026. If you are planning a build, plan against V4."]})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What the DeepSeek V5 rumor actually claims"}),e.jsx("p",{className:"text-slate-700 mb-4",children:'The DeepSeek V5 story began, as most model rumors do, on social media rather than
2210in a changelog. A leak post claimed a September 2026 target, a model "built from scratch on a new foundation," and performance in the same class as the leading closed frontier models. From there it was reposted, aggregated and eventually reported as if the date were fixed.'}),e.jsx("p",{className:"text-slate-700 mb-6",children:"None of it is sourced. That does not automatically make it false â DeepSeek is famously quiet before launches, and both V3.1 and V4-Flash appeared with very little warning â but it does mean nothing here should drive an engineering decision."}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Claim-by-claim: rumor, unverifiable, or confirmed"}),e.jsx("div",{className:"overflow-x-auto mb-8",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200 rounded-lg",children:[e.jsx("thead",{className:"bg-slate-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left p-3 font-semibold text-slate-900",children:"Claim"}),e.jsx("th",{className:"text-left p-3 font-semibold text-slate-900",children:"Status"}),e.jsx("th",{className:"text-left p-3 font-semibold text-slate-900",children:"Why"})]})}),e.jsx("tbody",{children:tX.map(a=>e.jsxs("tr",{className:"border-t border-slate-200 align-top",children:[e.jsx("td",{className:"p-3 text-slate-800 font-medium",children:a.claim}),e.jsx("td",{className:"p-3 text-slate-700 whitespace-nowrap",children:a.status}),e.jsx("td",{className:"p-3 text-slate-700",children:a.detail})]},a.claim))})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"The real DeepSeek release timeline"}),e.jsx("p",{className:"text-slate-700 mb-4",children:"Context matters more than the rumor. Here is what DeepSeek has actually shipped, which is also the best available basis for guessing what comes next."}),e.jsx("ul",{className:"mb-6 space-y-2",children:nX.map(a=>e.jsxs("li",{className:"text-slate-700",children:[e.jsxs("strong",{className:"text-slate-900",children:[a.when,":"]})," ",a.what]},a.when))}),e.jsx("p",{className:"text-slate-700 mb-6",children:"V4 is four months old. In DeepSeek's own release rhythm, the next move is far more likely to be a V4.x tuning pass or an additional V4 variant than a brand-new generation â which is exactly why a hard September V5 date deserves scepticism."}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Three signals that would confirm DeepSeek V5"}),e.jsxs("ol",{className:"list-decimal pl-6 space-y-2 text-slate-700 mb-6",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"A changelog entry."})," DeepSeek documents every model and billing change in its official API updates page. That page is the first place a real V5 appears."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"A live model string."})," If ",e.jsx("code",{children:"api.deepseek.com"})," serves a",e.jsx("code",{children:" deepseek-v5*"})," identifier, it exists. Until then, it does not."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"A paper or repository."})," DeepSeek has consistently published architecture work alongside major releases under the ",e.jsx("code",{children:"deepseek-ai"})," GitHub organisation."]})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What to do while V5 stays a rumor"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-slate-700 mb-8",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Build on V4-Flash."})," It is the current cheap default and posted the strongest agent scores of the line in its July 31 beta."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Keep the model string in configuration."})," Every DeepSeek migration so far has been a string change plus a price delta â trivial if it is not hardcoded."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Re-check the rate card before you budget."})," Pricing has moved more often than the model line has."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Do not quote unsourced benchmarks."})," Any V5 score published today is fabricated by construction: there is nothing to measure."]})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Frequently asked questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"mb-10",children:YA.map((a,i)=>e.jsxs(ss,{value:`faq-${i}`,children:[e.jsx(rs,{className:"text-left text-slate-900 font-semibold",children:a.q}),e.jsx(as,{className:"text-slate-700",children:a.a})]},a.q))}),e.jsx(ie,{className:"mb-10 border-blue-200 bg-blue-50/60",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h2",{className:"text-lg font-bold text-slate-900 mb-2 mt-0 flex items-center gap-2",children:[e.jsx(Pf,{className:"h-4 w-4 text-[#0066FF]"}),"Keep reading"]}),e.jsxs("ul",{className:"text-sm space-y-2 list-disc pl-5 text-slate-800",children:[e.jsx("li",{children:e.jsx(se,{to:"/deepseek-v4",className:"text-[#0066FF] underline",children:"DeepSeek V4: what is actually released"})}),e.jsx("li",{children:e.jsx(se,{to:"/blog/deepseek-v4-flash-ga-agent-benchmarks",className:"text-[#0066FF] underline",children:"V4-Flash public beta and its agent benchmarks"})}),e.jsx("li",{children:e.jsx(se,{to:"/pricing",className:"text-[#0066FF] underline",children:"Current DeepSeek pricing and cost calculator"})}),e.jsx("li",{children:e.jsx(se,{to:"/deepseek-api",className:"text-[#0066FF] underline",children:"The DeepSeek API explained"})})]})]})}),e.jsx("p",{className:"text-xs text-slate-500 mb-8",children:"This is an independent, fan-run guide. It is not affiliated with, endorsed by or operated by DeepSeek. Rumors are labelled as rumors; verify every claim against the official DeepSeek documentation before acting on it."}),e.jsx(Nn,{}),e.jsx(cn,{})]})]})})]})},c0="https://deepseek.ai/blog/deepseek-v41-flash-vs-gpt6-astra-four-builds",d0="DeepSeek V4.1 Flash vs GPT-6 Astra: 4 Real Builds, Full Costs",U2="An independent creator ran DeepSeek V4.1 Flash and GPT-6 Astra through four identical builds. DeepSeek came in ~6x cheaper on API spend; Astra was ~3x faster. Full cost, token and time breakdown.",Sn="padding:0.75rem;border:1px solid #e5e7eb;",va="padding:0.75rem;border:1px solid #e5e7eb;background:#f3f4f6;text-align:left;",rX=` 2211<p><em>Disclaimer: deepseek.ai is an independent community site and is not affiliated with DeepSeek AI or OpenAI. The numbers on this page come from a single third-party creator test run through OpenRouter's paid API, not from a standardised benchmark suite and not from our own lab. Treat them as one data point, not as a measurement you can expect to reproduce exactly.</em></p> 2212 2213<p>Most model comparisons stop at benchmark tables. This one didn't: an independent creator gave <strong>the exact same prompts</strong> to <a href="/blog/deepseek-v41-flash-beta-native-multimodal">DeepSeek V4.1 Flash</a> and to GPT-6 Astra across four very different builds, then logged the API cost, token consumption and wall-clock build time for every iteration.</p> 2214 2215<p>The headline: <strong>DeepSeek finished the whole project for roughly $20 in API spend against roughly $118 for Astra â about six times cheaper â while taking almost three times as long (14h52m vs 5h30m).</strong></p> 2216 2217<h2>The Test Setup</h2> 2218<ul> 2219 <li><strong>Builds:</strong> an <em>Age of Empires</em>-style RTS replica, a 3D scroll-scrub animated website, a barber-shop booking app with a database backend, and a Blender truck animation.</li> 2220 <li><strong>Access:</strong> paid API via OpenRouter for both models, so cost, tokens and build time could be measured per run.</li> 2221 <li><strong>Judging criteria:</strong> output quality, functionality, API cost, build time, and how well each model absorbed follow-up feedback.</li> 2222 <li><strong>Iterations:</strong> every build went through two to four rounds of re-prompting, so the totals include fixing, not just first drafts.</li> 2223</ul> 2224 2225<h2>Headline Numbers: Whole Project</h2> 2226<table style="width:100%;border-collapse:collapse;margin:1.5rem 0;"> 2227 <thead> 2228 <tr> 2229 <th style="${va}">Metric</th> 2230 <th style="${va}">DeepSeek V4.1 Flash</th> 2231 <th style="${va}">GPT-6 Astra</th> 2232 </tr> 2233 </thead> 2234 <tbody> 2235 <tr><td style="${Sn}">API spend (all builds)</td><td style="${Sn}"><strong>~$20</strong></td><td style="${Sn}">~$118</td></tr> 2236 <tr><td style="${Sn}">Tokens consumed</td><td style="${Sn}">~300M</td><td style="${Sn}">58.6M</td></tr> 2237 <tr><td style="${Sn}">API requests</td><td style="${Sn}">1,120</td><td style="${Sn}">511</td></tr> 2238 <tr><td style="${Sn}">Total build time</td><td style="${Sn}">14h 52m</td><td style="${Sn}"><strong>5h 30m</strong></td></tr> 2239 </tbody> 2240</table> 2241 2242<p>Read those four rows together and the pattern is clear. DeepSeek burned <em>five times more tokens</em> and made <em>twice as many requests</em>, yet still spent six times less money â because the per-token price is so much lower. The cost of that approach is time: many more internal
2242checks, retries and self-corrections before it settles on a working version.</p> 2243 2244<h2>Build 1 â Age of Empires Replica</h2> 2245<table style="width:100%;border-collapse:collapse;margin:1.5rem 0;"> 2246 <thead> 2247 <tr><th style="${va}"> </th><th style="${va}">DeepSeek V4.1 Flash</th><th style="${va}">GPT-6 Astra</th></tr> 2248 </thead> 2249 <tbody> 2250 <tr><td style="${Sn}">API cost</td><td style="${Sn}"><strong>$3.30</strong> (3 versions)</td><td style="${Sn}">$12.25 (2 versions)</td></tr> 2251 <tr><td style="${Sn}">Build time</td><td style="${Sn}">4h 14m</td><td style="${Sn}"><strong>47m</strong></td></tr> 2252 </tbody> 2253</table> 2254<p>Both models produced a playable RTS: building houses and farms, training units, combat, and a real end-of-game condition when the town centre fell. Astra's first version looked noticeably better â cleaner graphics, a proper start menu, movement indicator lines, and a farm that villagers could actually tend. DeepSeek's first pass had a broken farm interaction, no tech evolution and no watchtower; all three were fixed on re-prompting, and V2 also added unit formations (line, box, flank, staggered) and correct defeat logic.</p> 2255<p>Both eventually implemented fog of war on request. <strong>Verdict in the test: Astra</strong> â mostly on visual quality and the four-hour wait on the DeepSeek side, not on functionality.</p> 2256 2257<h2>Build 2 â 3D Scroll-Scrub Website</h2> 2258<table style="width:100%;border-collapse:collapse;margin:1.5rem 0;"> 2259 <thead> 2260 <tr><th style="${va}"> </th><th style="${va}">DeepSeek V4.1 Flash</th><th style="${va}">GPT-6 Astra</th></tr> 2261 </thead> 2262 <tbody> 2263 <tr><td style="${Sn}">API cost</td><td style="${Sn}"><strong>$7.74</strong></td><td style="${Sn}">$48.63</td></tr> 2264 <tr><td style="${Sn}">Build time</td><td style="${Sn}">~7h 30m</td><td style="${Sn}"><strong>2h 10m</strong></td></tr> 2265 </tbody> 2266</table> 2267<p>This was a watch-brand landing page where a generated video is sliced into frames and scrubbed on scroll. Both struggled with frame pacing at first â DeepSeek block-deleted frames to reduce file size instead of dropping every second or third frame, which made the animation jump. By its fourth iteration the transition was smooth, hover images were correct and mobile spacing had improved, though alignment was still imperfect.</p> 2268<p>Astra reached a comparable result in fewer rounds and its hover-image consistency was better from the start. A large share of the elapsed time on both sides was simply waiting for image and video generation, not model reasoning. <strong>Verdict in the test: a tie</strong> â roughly six times cheaper with DeepSeek, roughly three times faster with Astra.</p> 2269 2270<h2>Build 3 â Barber Shop Booking App</h2> 2271<table style="width:100%;border-collapse:collapse;margin:1.5rem 0;"> 2272 <thead> 2273 <tr><th style="${va}"> </th><th style="${va}">DeepSeek V4.1 Flash</th><th style="${va}">GPT-6 Astra</th></tr> 2274 </thead> 2275 <tbody> 2276 <tr><td style="${Sn}">API cost</td><td style="${Sn}"><strong>$2.33</strong></td><td style="${Sn}">$17.88</td></tr> 2277 <tr><td style="${Sn}">Build time</td><td style="${Sn}">~1h</td><td style="${Sn}"><strong>41m</strong></td></tr> 2278 </tbody> 2279</table> 2280<p>The most "ordinary business software" test, and the most decisive. Both builds shipped a SQLite-backed booking flow, a private customer link for managing an appointment, a staff login, unavailability blocks, cancellation syncing to the backend, and correct double-booking prevention (the taken slot disappeared).</p> 2281<p>Astra's UI was more polished; the functionality was equivalent, and for the first time build times were comparable. At seven to eight times cheaper, <strong>the verdict in the test was DeepSeek</strong>. For a small local business tool, this is the shape of workload where the price gap matters most and the polish gap matters least.</p> 2282 2283<h2>Build 4 â Blender Truck Animation</h2> 2284<table style="width:100%;border-collapse:collapse;margin:1.5rem 0;"> 2285 <thead> 2286 <tr><th style="${va}"> </th><th style="${va}">DeepSeek V4.1 Flash</th><th style="${va}">GPT-6 Astra</th></tr> 2287 </thead> 2288 <tbody> 2289 <tr><td style="${Sn}">API cost</td><td style="${Sn}"><strong>$4.66</strong></td><td style="${Sn}">$39.64</td></tr> 2290 <tr><td style="${Sn}">Build time</td><td style="${Sn}">2h 12m</td><td style="${Sn}"><strong>1h 48m</strong></td></tr> 2291 <tr><td style="${Sn}">First-run scene</td><td style="${Sn}">27m / ~$1</td><td style="${Sn}">27m / ~$7.60</td></tr> 2292 </tbody> 2293</table> 2294<p>The prompt asked for a truck crossing rough terrain with a camera pan around the body and under the chassis, showing suspension and drivetrain in as much detail as possible. Astra's mechanical detail was clearly stronger on the first attempt â tyre tread, wheel spokes, drivetrain â and on a follow-up it modelled a full engine bay with reservoirs, battery, bonnet struts and latch.</p> 2295<p>DeepSeek's model was less detailed but structurally correct, with visible suspension travel over the bumps. When both animations were pushed through a video model to create a photoreal render, the tester preferred DeepSeek's outback scene as usable B-roll. <strong>Verdict in the test: DeepSeek for B-roll, Astra for engineering-grade detail</strong> â at roughly nine to ten times the cost.</p> 2296 2297<h2>What the Results Actually Tell You</h2> 2298<ol> 2299 <li><strong>The gap is economic, not capability-shaped.</strong> Across all four builds both models eventually produced working software. What differed was polish on the first attempt and the price of getting there.</li> 2300 <li><strong>Astra converges faster; DeepSeek iterates cheaper.</strong> Astra's first version needed less debugging. DeepSeek reached the same place through more loops â which costs time you feel, and money you barely notice.</li> 2301 <li><strong>Time has a price too.</strong> If you bill clients per project, three hours saved can be worth more than $100 of API credit. If you're building for yourself in the evening, it usually isn't.</li> 2302 <li><strong>Media generation dominates elapsed time.</strong> On the website and Blender builds, most waiting was image and video rendering, not the language model.</li> 2303 <li><strong>Cheaper tokens change how you work.</strong> At DeepSeek prices, throwing a fifth iteration at a problem is a rounding error. That alone changes prompting behaviour.</li> 2304</ol> 2305 2306<h2>How This Maps to Current DeepSeek Pricing</h2> 2307<p>The test used a V4.1 Flash beta through a reseller, so the absolute figures won't match first-party rates. If you want to model your own spend against DeepSeek's own published rate card â including cache-hit pricing, which is where agentic loops get dramatically cheaper â use our <a href="/pricing">DeepSeek pricing page</a> and the cross-provider cost comparator on the <a href="/">homepage</a>. For the model line-up itself, see <a href="/deepseek-v4">DeepSeek V4</a> and <a href="/deepseek-v4-flash-review">V4-Flash</a>.</p> 2308<p>Note also that <strong>V4.1 Flash was an expiring beta</strong> (the model string carried its own end date). Anything you build for production should target the generally available models documented in <a href="/deepseek-api">
2308the DeepSeek API guide</a>.</p> 2309 2310<h2>Which Should You Use?</h2> 2311<ul> 2312 <li><strong>Solo builder, side project, tight budget:</strong> DeepSeek. The extra wait is the price of a six-fold discount.</li> 2313 <li><strong>Agency shipping client work on deadline:</strong> Astra, with the API cost built into your quote. Speed is the product.</li> 2314 <li><strong>Business tooling â bookings, CRUD, dashboards:</strong> DeepSeek. Same functionality, a fraction of the spend.</li> 2315 <li><strong>Precision 3D or engineering-grade modelling:</strong> Astra's first-pass detail was materially better.</li> 2316 <li><strong>Marketing B-roll and visual concepts:</strong> DeepSeek, then a strong video model on top.</li> 2317</ul> 2318 2319<h2>Frequently Asked Questions</h2> 2320<h3>Is DeepSeek V4.1 Flash cheaper than GPT-6 Astra?</h3> 2321<p>In this test, yes â about six times cheaper in total API spend ($20 vs $118) across four identical builds, despite consuming roughly five times more tokens.</p> 2322 2323<h3>Why did DeepSeek use five times more tokens but still cost less?</h3> 2324<p>Because its per-token price is far lower. DeepSeek also ran more internal checks and self-corrections, which raised token counts and build time while keeping the bill small.</p> 2325 2326<h3>Which model was faster?</h3> 2327<p>Astra, by a wide margin: 5h 30m against 14h 52m for the whole project. The largest single gap was the RTS build (47 minutes vs 4h 14m).</p> 2328 2329<h3>Did either model fail a build?</h3> 2330<p>No. All four builds worked in both models after iteration. The differences were visual polish, first-attempt quality and how many rounds were needed.</p> 2331 2332<h3>Are these numbers official benchmarks?</h3> 2333<p>No. They come from one independent creator's paid API runs, not a standardised suite, and V4.1 Flash was an expiring beta model. Use them as directional evidence, not as guaranteed results.</p> 2334 2335<h3>Can I reproduce this on DeepSeek's own API?</h3> 2336<p>You can run the same four prompts against the currently available DeepSeek models, but the costs will differ from a reseller's. Model your spend against the published rate card on our <a href="/pricing">pricing page</a> first.</p> 2337`,aX={"@context":"https://schema.org","@type":"BlogPosting",headline:d0,datePublished:"2026-09-16T00:00:00+00:00",dateModified:"2026-09-16T00:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:U2,mainEntityOfPage:{"@type":"WebPage","@id":c0}},iX={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"Is DeepSeek V4.1 Flash cheaper than GPT-6 Astra?",acceptedAnswer:{"@type":"Answer",text:"In this independent test, yes â roughly six times cheaper in total API spend ($20 vs $118) across four identical builds, despite using around five times more tokens."}},{"@type":"Question",name:"Which model was faster?",acceptedAnswer:{"@type":"Answer",text:"GPT-6 Astra: 5 hours 30 minutes of total build time against 14 hours 52 minutes for DeepSeek across the same four builds."}},{"@type":"Question",name:"Did either model fail a build?",acceptedAnswer:{"@type":"Answer",text:"No. All four builds â an RTS replica, a 3D scroll website, a booking app and a Blender animation â worked in both models after iteration."}},{"@type":"Question",name:"Are these numbers official benchmarks?",acceptedAnswer:{"@type":"Answer",text:"No. They come from one independent creator's paid API runs via OpenRouter, and DeepSeek V4.1 Flash was an expiring beta model. Treat them as directional, not reproducible measurements."}}]},oX={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:d0,item:c0}]},lX=()=>{const t=jn();return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsxs(ut,{children:[e.jsx("title",{children:d0}),e.jsx("meta",{name:"description",content:U2}),e.jsx("link",{rel:"canonical",href:c0}),e.jsx("meta",{property:"og:title",content:d0}),e.jsx("meta",{property:"og:description",content:U2}),e.jsx("meta",{property:"og:url",content:c0}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(aX)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(iX)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(oX)})]}),e.jsxs("main",{className:"container mx-auto px-4 py-12 max-w-4xl",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6",children:[e.jsx(An,{className:"mr-2 h-4 w-4"})," Back to Blog"]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-6",children:"DeepSeek V4.1 Flash vs GPT-6 Astra: Four Real Builds, Full Cost and Time Breakdown"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Published 16 September 2026 · Independent third-party test, not an official benchmark"}),e.jsx(il,{date:"September 16, 2026"}),e.jsx("article",{className:"prose prose-lg max-w-none mt-8",dangerouslySetInnerHTML:{__html:rX}}),e.jsx(cn,{}),e.jsx(Nn,{})]})]})},Sx="https://deepseek.ai/blog/deepseek-vision-api-guide",nw="2026-08-23T09:00:00+00:00",cX=[{limit:"Supported image formats",value:"JPEG, PNG, GIF, WebP (detected from file content, not the file name or MIME type)"},{limit:"External URL length",value:"8,192 characters"},{limit:"Request body size",value:"48 MiB"},{limit:"Max single image (base64 or external URL)",value:"32 MiB"},{limit:"Max single image (Files API file_id)",value:"64 MiB"},{limit:"Max images per request",value:"600"},{limit:"Max total image size per request",value:"64 MiB without file_id images; up to 200 MiB including file_id images"},{limit:"Max image dimension",value:"8,192 px per side â drops to 4,096 px per side when a request contains 15 or more images"},{limit:"External image download timeout",value:"60 seconds"}],dX=[{value:"low",behavior:"The image is downscaled to 512Ã512 before inference. Faster and cheaper when fine visual detail does not matter."},{value:"high",behavior:"Keeps the original image. Provided for OpenAI compatibility; equivalent to original."},{value:"original",behavior:"Keeps the original image."},{value:"auto",behavior:"Automatic selection. Currently equivalent to original."}],JA=[{q:"Which DeepSeek model supports image input?",a:"Only deepseek-v4-flash-vision-exp accepts images. Every other DeepSeek model returns a 400 error with the message 'This model does not support image'. The 'exp' suffix means the vision model is still experimental, so pin it in configuration rather than hardcoding it across your codebase."},{q:"How do I send an image to the DeepSeek API?",a:"There are three ways, all through the OpenAI-compatible Chat Completions endpoint at https://api.deepseek.com: a base64 data: URL inline in an image_url block, a publicly reach
2337able http(s) link in an image_url block, or a file block that references a file_id returned by the Files API. In each case the message content becomes an array of blocks instead of a plain string."},{q:"How many tokens does an image cost on DeepSeek?",a:"Images are billed as tokens based on their dimensions after an automatic resize. Anything under roughly 384Ã384 pixels is scaled up preserving aspect ratio; anything larger is scaled down to roughly the pixel count of an 800Ã800 image. The result is a hard ceiling of 384 tokens per image, so a 2000Ã2000 image and a 5000Ã5000 image cost exactly the same. Each image in a multi-image request is counted independently under the same rule."},{q:"When should I use the Files API instead of base64?",a:"Use the Files API when a single request would exceed the 48 MiB body limit, when one image is larger than 32 MiB (only possible via Files API, which allows up to 64 MiB), or when you reference the same image across multiple requests and want to avoid re-uploading it each time."},{q:"Can I put an image in a system or assistant message?",a:"No. Images are supported in user messages only. An image inside a system or assistant message returns a 400 error. User text containing the reserved image placeholder token is also rejected with a 400."},{q:"Does DeepSeek vision work through the Anthropic-compatible endpoint?",a:"Yes. Point base_url at https://api.deepseek.com/anthropic and use the Anthropic /messages shape: instead of image_url, send an image block with a source object whose type is base64, url or file. The three source variants mirror the three OpenAI methods."},{q:"What can DeepSeek vision actually be used for?",a:"Practical, verified use cases from the documentation: describing photographs, reading text out of screenshots, and analyzing charts and diagrams. Because it accepts up to 600 images per request, batch document and screenshot pipelines are the strongest fit â paired with the low detail level when you only need coarse recognition."},{q:"How much does DeepSeek image input cost?",a:"Image tokens are billed together with your text tokens at the model's normal rate, so cost follows the V4-Flash rate card. With the 384-token ceiling per image, a thousand images adds at most ~384K input tokens â cheap compared to most vision APIs. Check our pricing page for the live per-million rate before you budget."}],hX=()=>{const t=jn(),n={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek Vision API: Image Input with deepseek-v4-flash-vision-exp",datePublished:nw,dateModified:nw,author:{"@type":"Organization",name:"Deep Seek AI (Independent Guide)",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},description:"How to send images to DeepSeek: the three input methods, detail levels, the 384-token-per-image ceiling, every documented limit and the Anthropic-compatible variant.",image:["https://deepseek.ai/og-image.png"],mainEntityOfPage:{"@type":"WebPage","@id":Sx}},s={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeek vision API",item:Sx}]},r={"@context":"https://schema.org","@type":"FAQPage",mainEntity:JA.map(i=>
2337({"@type":"Question",name:i.q,acceptedAnswer:{"@type":"Answer",text:i.a}}))},a={"@context":"https://schema.org","@type":"HowTo",name:"Send an image to the DeepSeek API",description:"Send an image to deepseek-v4-flash-vision-exp using the OpenAI-compatible Chat Completions endpoint.",step:[{"@type":"HowToStep",name:"Point the client at DeepSeek",text:"Create an OpenAI client with base_url https://api.deepseek.com and your DeepSeek API key."},{"@type":"HowToStep",name:"Choose the vision model",text:"Set model to deepseek-v4-flash-vision-exp. No other DeepSeek model accepts images."},{"@type":"HowToStep",name:"Build a content array",text:"Replace the plain string content with an array containing a text block and an image_url block."},{"@type":"HowToStep",name:"Supply the image",text:"Use a base64 data URL, a public http(s) link, or a file block referencing a Files API file_id."},{"@type":"HowToStep",name:"Tune the detail level",text:"Set detail to low to downscale to 512Ã512 for cheaper, faster inference when fine detail is unnecessary."}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek Vision API Guide 2026 â Image Input"}),e.jsx("meta",{name:"description",content:"DeepSeek now accepts images via deepseek-v4-flash-vision-exp. The three ways to send an image, detail levels, the 384-token-per-image cap, all documented limits and Python examples."}),e.jsx("link",{rel:"canonical",href:Sx}),e.jsx("meta",{name:"robots",content:"index, follow"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:Sx}),e.jsx("meta",{property:"og:title",content:"DeepSeek Vision API: Image Input Explained"}),e.jsx("meta",{property:"og:description",content:"Base64, external URL or Files API â how to send images to DeepSeek's vision model, what each image costs in tokens, and every limit that will break your pipeline."}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek Vision API Guide 2026 â Image Input"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek vision is here: deepseek-v4-flash-vision-exp, three image input methods, 384 tokens per image max, 600 images per request."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"article:published_time",content:nw}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("main",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6 text-slate-600 hover:text-[#0066FF]",children:[e.jsx(An,{className:"h-4 w-4 mr-2"}),"Back to Blog"]}),e.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-xs text-slate-500 mb-4",children:[e.jsx(se,{to:"/",className:"hover:text-[#0066FF]",children:"Home"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx(se,{to:"/blog",className:"hover:text-[#0066FF]",children:"Blog"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx("span",{className:"text-slate-700",children:"DeepSeek vision API"})]}),e.jsxs("div",{className:"mb-6 inline-flex items-center gap-2 text-xs font-medium bg-blue-50 text-[#0066FF] border border-blue-200 px-3 py-1.5 rounded-full",children:[e.jsx(X_,{className:"h-3.5 w-3.5"}),"API guide · August 23, 2026 · Independent Guide"]}),e.jsxs("article",{children:[e.jsx("h1",{className:"text-3xl md:text-5xl font-bold text-slate-900 mb-4 leading-tight",children:"DeepSeek Vision API: Sending Images to deepseek-v4-flash-vision-exp"}),e.jsx("p",{className:"text-lg text-slate-600 mb-2",children:"By the Deep Seek AI editorial desk · August 23, 2026 · 8 min read"}),e.jsx(il,{date:"2026-08-23",className:"mb-6"}),e.jsxs("p",{className:"text-base text-slate-500 mb-8 italic",children:[e.jsx("strong",{children:"In short:"})," DeepSeek's vision model"," ",e.jsx("code",{children:"deepseek-v4-flash-vision-exp"})," accepts images alongside text through the same OpenAI-compatible Chat Completions endpoint you already use. Three input methods, a hard ceiling of ",e.jsx("strong",{children:"384 tokens per image"}),", and up to"," ",e.jsx("strong",{children:"600 images per request"}),"."]}),e.jsx(ie,{className:"mb-8 border-amber-200 bg-amber-50/70",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h2",{className:"text-lg font-bold text-slate-900 mb-2 mt-0 flex items-center gap-2",children:[e.jsx(zr,{className:"h-4 w-4 text-amber-600"}),"One model only â and it is experimental"]}),e.jsxs("p",{className:"text-sm text-slate-800",children:["Images work exclusively with ",e.jsx("code",{children:"deepseek-v4-flash-vision-exp"}),". Any other DeepSeek model returns a ",e.jsx("code",{children:"400"}),' with "This model does not support image". The ',e.jsx("code",{children:"-exp"})," suffix signals experimental status, so keep the model string in configuration, not scattered through your code."]})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What DeepSeek vision can do"}),e.jsx("p",{className:"text-slate-700 mb-4",children:"The vision model takes images in the same message as your text prompt, which makes the obvious workloads immediately available: describing photographs, reading text out of screenshots, and analysing charts and diagrams. Image format is detected from the actual file content â JPEG, PNG, GIF and WebP â not from the extension or the declared MIME type, so a mislabelled upload still works as long as the bytes are valid."}),e.jsxs("p",{className:"text-slate-700 mb-6",children:["The interesting part for anyone building a pipeline is the batch ceiling: a single request may carry up to ",e.jsx("strong",{children:"600 images"}),". Combined with the flat token cap per image, document triage and screenshot classification become genuinely cheap rather than merely possible."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"The three ways to send an image"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["All three use the standard OpenAI-compatible Chat Completions format, where"," ",e.jsx("code",{children:"content"})," is an array of blocks instead of a plain string. The same three methods exist in the Responses API, where images travel in"," ",e.jsx("code",{children:"input_image"})," content parts. Base URL for everything below:"," ",e.jsx("code",{children:"https://api.deepseek.com"}),"."]}),e.jsx("h3",{className:"text-xl font-bold text-slate-900 mt-8 mb-3",children:"1. Base64 inline (local files)"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["Encode the file and embed it as a ",e.jsx("code",{children:"data:"})," URL. Simplest option for local images; the encoded bytes count toward the 48 MiB request body limit."]}),e.jsx("pre",{className:"bg-slate-900 text-slate-100 p-4 rounded-lg overflow-x-auto text-sm mb-6",children:e.jsx("code",{children:`import base64 2338from openai import OpenAI 2339 2340client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com") 2341 2342with open("image.jpg", "rb") as f: 2343 b64 = base64.b64encode(f.read()).decode("utf-8") 2344
2345response = client.chat.completions.create( 2346 model="deepseek-v4-flash-vision-exp", 2347 messages=[ 2348 { 2349 "role": "user", 2350 "content": [ 2351 {"type": "text", "text": "What is in this image?"}, 2352 { 2353 "type": "image_url", 2354 "image_url": {"url": f"data:image/jpeg;base64,{b64}"}, 2355 }, 2356 ], 2357 } 2358 ], 2359) 2360print(response.choices[0].message.content)`})}),e.jsx("h3",{className:"text-xl font-bold text-slate-900 mt-8 mb-3",children:"2. External image URL"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["Pass a publicly reachable ",e.jsx("code",{children:"http(s)"})," link and DeepSeek downloads the image for you. The URL must be at most 8,192 characters, the file at most 32 MiB, and the download must finish inside 60 seconds â otherwise fall back to base64 or the Files API."]}),e.jsx("pre",{className:"bg-slate-900 text-slate-100 p-4 rounded-lg overflow-x-auto text-sm mb-6",children:e.jsx("code",{children:`response = client.chat.completions.create( 2361 model="deepseek-v4-flash-vision-exp", 2362 messages=[ 2363 { 2364 "role": "user", 2365 "content": [ 2366 {"type": "text", "text": "Describe this image."}, 2367 { 2368 "type": "image_url", 2369 "image_url": {"url": "https://example.com/image.jpg"}, 2370 }, 2371 ], 2372 } 2373 ], 2374)`})}),e.jsx("h3",{className:"text-xl font-bold text-slate-900 mt-8 mb-3",children:"3. Files API reference"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["Upload once, reference the returned ",e.jsx("code",{children:"file_id"})," (shaped"," ",e.jsx("code",{children:"file-api-â¦"}),") as often as you like. This is the right choice for reused images, and the only route for images above 32 MiB â Files API images may reach 64 MiB and skip the per-image inline check."]}),e.jsx("pre",{className:"bg-slate-900 text-slate-100 p-4 rounded-lg overflow-x-auto text-sm mb-4",children:e.jsx("code",{children:`response = client.chat.completions.create( 2375 model="deepseek-v4-flash-vision-exp", 2376 messages=[ 2377 { 2378 "role": "user", 2379 "content": [ 2380 {"type": "text", "text": "What is in this image?"}, 2381 {"type": "file", "file_id": "file-api-xxxxxxxxxxxxxxxx"}, 2382 ], 2383 } 2384 ], 2385)`})}),e.jsxs("p",{className:"text-slate-700 mb-6",children:["A ",e.jsx("code",{children:"file"})," block can alternatively carry the image inline as base64 through"," ",e.jsx("code",{children:"file_data"})," plus ",e.jsx("code",{children:"filename"}),". ",e.jsx("code",{children:"file_data"})," and"," ",e.jsx("code",{children:"file_id"})," are mutually exclusive."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Detail levels: the cheapest knob you have"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["For ",e.jsx("code",{children:"image_url"})," inputs you can set an optional ",e.jsx("code",{children:"detail"})," field that controls how the image is processed before inference."]}),e.jsx("div",{className:"overflow-x-auto mb-6",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200 rounded-lg",children:[e.jsx("thead",{className:"bg-slate-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left p-3 font-semibold text-slate-900",children:"Value"}),e.jsx("th",{className:"text-left p-3 font-semibold text-slate-900",children:"Behaviour"})]})}),e.jsx("tbody",{children:dX.map(i=>e.jsxs("tr",{className:"border-t border-slate-200 align-top",children:[e.jsx("td",{className:"p-3 font-medium text-slate-800 whitespace-nowrap",children:e.jsx("code",{children:i.value})}),e.jsx("td",{className:"p-3 text-slate-700",children:i.behavior})]},i.value))})]})}),e.jsxs("p",{className:"text-slate-700 mb-6",children:['If your task is coarse recognition â "is this a receipt or an invoice?" â set'," ",e.jsx("code",{children:'detail: "low"'})," and let DeepSeek downscale to 512Ã512. Keep"," ",e.jsx("code",{children:"original"})," for small print, dense tables and OCR-style work."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Token usage: 384 tokens per image, maximum"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["Images become tokens based on their dimensions, billed together with your text tokens. Before inference every image is resized automatically: below roughly 384Ã384 total pixels it is scaled ",e.jsx("em",{children:"up"})," preserving aspect ratio; larger images are scaled"," ",e.jsx("em",{children:"down"})," preserving aspect ratio to roughly the pixel count of an 800Ã800 image."]}),e.jsxs("p",{className:"text-slate-700 mb-6",children:["The practical consequence is an upper bound of ",e.jsx("strong",{children:"384 tokens per image"}),". A 2000Ã2000 photo and a 5000Ã5000 scan cost the same, so there is no billing reason to downscale before upload â only a bandwidth one. In multi-image requests each image is counted independently under exactly the same rule; there is no separate multi-image formula."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Every documented limit"}),e.jsx("div",{className:"overflow-x-auto mb-8",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200 rounded-lg",children:[e.jsx("thead",{className:"bg-slate-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left p-3 font-semibold text-slate-900",children:"Limit"}),e.jsx("th",{className:"text-left p-3 font-semibold text-slate-900",children:"Value"})]})}),e.jsx("tbody",{children:cX.map(i=>e.jsxs("tr",{className:"border-t border-slate-200 align-top",children:[e.jsx("td",{className:"p-3 font-medium text-slate-800",children:i.limit}),e.jsx("td",{className:"p-3 text-slate-700",children:i.value})]},i.limit))})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Restrictions that will bite you"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-slate-700 mb-8",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"User messages only."})," An image inside a ",e.jsx("code",{children:"system"})," or"," ",e.jsx("code",{children:"assistant"})," message returns a ",e.jsx("code",{children:"400"}),". If you replay conversation history containing assistant-side images, strip them."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Vision model only."})," Non-vision models reject images with a"," ",e.jsx("code",{children:"400"}),' and "This model does not support image".']}),e.jsxs("li",{children:[e.jsx("strong",{children:"Reserved placeholder token."})," User text containing the reserved image placeholder token is rejected with a ",e.jsx("code",{children:"400"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Dimension cliff at 15 images."})," The 8,192 px per-side maximum drops to 4,096 px per side as soon as a request contains 15 or more images â a surprisingly easy way to break a working batch job by adding one more page."]})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Using images through the Anthropic-compatible endpoint"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["If your stack already speaks Anthropic, point ",e.jsx("code",{children:"base_url"})," at"," ",e.jsx("code",{children:"https://api.deepseek.com/anthropic"})," and use the ",e.jsx("code",{children:"/messages"})," ","shape. The only difference is the image block: instead of ",e.jsx("code",{children:"image_url"}),", Anthropic uses an ",e.jsx("code",{children:"image"})," block with a ",e.jsx("code",{children:"source"})," object whose"," ",e.jsx("code",{children:"type"})," is ",e.jsx("code",{children:"base64"}),", ",e.jsx("code",{children:"url"})," or ",e.jsx("code",{children:"file"})," â the three variants mirroring the OpenAI methods above."]}),e.jsx("pre",{className:"bg-slate-900 text-slate-100 p-4 rounded-lg overflow-x-auto text-sm mb-8",children:e.jsx("code",{children:`import anthropic 2386 2387# ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic 2388client = anthropic.Anthropic() 2389 2390message = client.messages.create( 2391 model="deepseek-v4-flash-vision-exp", 2392 max_tokens=1024, 2393 messages=[ 2394 { 2395 "role": "user", 2396 "content": [ 2397 {"type": "text", "text": "What is in this image?"}, 2398 { 2399 "type": "image", 2400 "source": { 2401 "type": "base64", 2402 "media_type": "image/jpeg", 2403 "data": "<BASE64_DATA>", 2404 }, 2405 }, 2406 ], 2407 } 2408 ], 2409) 2410print(message.content)`})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"A sane default configuration"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-slate-700 mb-8",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Batch, but stay under 15 images"})," per request unless you are certain every page is within 4,096 px per side."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Prefer the Files API for anything reused"})," â the same invoice template re-uploaded 500 times is pure wasted bandwidth."]}),e.jsxs("li",{children:[e.jsxs("strong",{children:["Default to ",e.jsx("code",{children:'detail: "low"'})]})," for classification and routing; escalate to ",e.jsx("code",{children:"original"})," only on the pages that need reading."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Budget 384 input tokens per image"})," as a worst case â it is the actual ceiling, so your estimate can never be short."]})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Frequently asked questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"mb-10",children:JA.map((i,o)=>e.jsxs(ss,{value:`faq-${o}`,children:[e.jsx(rs,{className:"text-left text-slate-900 font-semibold",children:i.q}),e.jsx(as,{className:"text-slate-700",children:i.a})]},i.q))}),e.jsx(ie,{className:"mb-10 border-blue-200 bg-blue-50/60",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h2",{className:"text-lg font-bold text-slate-900 mb-2 mt-0 flex items-center gap-2",children:[e.jsx(Pf,{className:"h-4 w-4 text-[#0066FF]"}),"Keep reading"]}),e.jsxs("ul",{className:"text-sm space-y-2 list-disc pl-5 text-slate-800",children:[e.jsx("li",{children:e.jsx(se,{to:"/deepseek-api",className:"text-[#0066FF] underline",children:"The DeepSeek API explained"})}),e.jsx("li",{children:e.jsx(se,{to:"/blog/deepseek-v4-flash-ga-agent-benchmarks",className:"text-[#0066FF] underline",children:"DeepSeek V4-Flash: public beta and agent benchmarks"})}),e.jsx("li",{children:e.jsx(se,{to:"/blog/deepseek-ocr-context-compression",className:"text-[#0066FF] underline",children:"DeepSeek OCR and context compression"})}),e.jsx("li",{children:e.jsx(se,{to:"/pricing",className:"text-[#0066FF] underline",children:"Current DeepSeek pricing and cost calculator"})})]})]})}),e.jsx("p",{className:"text-xs text-slate-500 mb-8",children:"This is an independent, fan-run guide. It is not affiliated with, endorsed by or operated by DeepSeek. Values above are taken from DeepSeek's official vision documentation on the date shown â verify against the official docs before shipping."}),e.jsx(Nn,{}),e.jsx(cn,{})]})]})})]})},q2="https://deepseek.ai/blog/leak-catl-deepseek-investor",H2="CATL Invests 5bn Yuan in DeepSeek: Round Closed 15 July 2026",$2="Battery giant CATL took a 5 billion yuan (~$740M) stake in DeepSeek's 50 billion yuan round, closed 15 July 2026. What the passive stake does and does not mean.",uX=` 2411<p><em>Disclaimer: deepseek.ai is an independent community and fan site, not officially affiliated with DeepSeek AI. Figures below follow reporting by Bloomberg, CnEVPost, TechNode and Pandaily.</em></p> 2412 2413<p>What began as a May 2026 report has been confirmed: <a href="https://www.catl.com/en/" target="_blank" rel="noopener noreferrer">CATL</a> â the world's largest battery manufacturer â is an investor in DeepSeek. The financing <strong>closed on 15 July 2026</strong>, and CATL's contribution is <strong>5 billion yuan (roughly $740 million)</strong>.</p> 2414 2415<h2>One Round, Two Numbers</h2> 2416<p>The "50 billion yuan round" and the "$7.4 billion round" are the <strong>same financing</strong>, quoted in different currencies â not two separate raises. Total: ~50 billion yuan â $7.4 billion, valuing DeepSeek near $50 billion. Our two deep-dives cover the same event from different angles: the <a href="/blog/deepseek-50-billion-funding-round">structure of the 50 billion yuan round</a> and the <a href="/blog/deepseek-raises-7-4-billion-bizarre-deal">
2416founder-centric deal geometry</a>.</p> 2417 2418<h2>CATL's Position in the Cap Table</h2> 2419<ul> 2420 <li><strong>Amount:</strong> 5 billion yuan (~$740 million).</li> 2421 <li><strong>Share of the round:</strong> roughly <strong>10%</strong> of the ~50 billion yuan raised â the second-largest external cheque after Tencent.</li> 2422 <li><strong>Rights:</strong> reporting describes external investors in this round as holding economic interest without voting rights, under a multi-year lock-up. Founder Liang Wenfeng retains control with a reported ~39% stake.</li> 2423</ul> 2424 2425<h2>What This Is â and What It Isn't</h2> 2426<p>It is a <strong>passive financial stake</strong>. Neither CATL nor DeepSeek has announced an operational partnership: no joint datacenter energy-storage programme, no supply agreement, no shared infrastructure roadmap. Earlier speculation on this site framed the investment as an energy-buffering alliance; that inference was not supported by any primary source and has been removed.</p> 2427<p>The reasonable read is simpler. Chinese industrial champions with large balance sheets are allocating capital to the country's leading open-weight AI lab. Strategic collaboration may follow â but as of 25 July 2026 nothing of the sort has been disclosed.</p> 2428 2429<h2>Bottom Line</h2> 2430<p>CATL is now on DeepSeek's cap table for 5 billion yuan, as part of a closed ~50 billion yuan round. Treat it as capital, not as a technology alliance, until either company says otherwise.</p> 2431`,pX={"@context":"https://schema.org","@type":"BlogPosting",headline:H2,datePublished:"2026-05-22T10:45:23+00:00",dateModified:"2026-07-25T00:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:$2,mainEntityOfPage:{"@type":"WebPage","@id":q2}},mX=()=>{const t=jn();return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsxs(ut,{children:[e.jsx("title",{children:H2}),e.jsx("meta",{name:"description",content:$2}),e.jsx("link",{rel:"canonical",href:q2}),e.jsx("meta",{property:"og:title",content:H2}),e.jsx("meta",{property:"og:description",content:$2}),e.jsx("meta",{property:"og:url",content:q2}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(pX)})]}),e.jsxs("main",{className:"container mx-auto px-4 py-12 max-w-4xl",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6",children:[e.jsx(An,{className:"mr-2 h-4 w-4"})," Back to Blog"]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-6",children:"CATL Invests 5bn Yuan in DeepSeek: Round Closed 15 July 2026"}),e.jsx("p",{className:"text-muted-foreground mb-8",children:"Published 22 May 2026 · Updated 25 July 2026 with the closed round figures"}),e.jsx("article",{className:"prose prose-lg max-w-none",dangerouslySetInnerHTML:{__html:uX}}),e.jsx(cn,{}),e.jsx(Nn,{})]})]})},W2="https://deepseek.ai/blog/deepseek-agi-10-billion-funding-round",G2="DeepSeek's AGI Funding Round: From $10B Rumor to ~$7.4B Close",K2="DeepSeek's frontier-AGI funding round: initial reports pointed to $10B, the round ultimately closed near $7.4B. Investors, thesis, and what it means for open-weight AI.",fX=` 2432<p><em>Disclaimer: deepseek.ai is an independent community and fan site, not officially affiliated with DeepSeek AI. Figures below are drawn from Bloomberg, TechNode, Pandaily and CnEVPost reporting and remain subject to confirmation.</em></p> 2433 2434<h2>Round Timeline: $10B Rumor â ~$7.4B Close</h2> 2435<p>The story evolved substantially between May and July 2026:</p> 2436<ul> 2437 <li><strong>22 May 2026 â Bloomberg:</strong> reports the round is "advancing" toward roughly $10B, with founder Liang Wenfeng framing the raise around Artificial General Intelligence rather than enterprise revenue.</li> 2438 <li><strong>4 June 2026 â TechNode:</strong> negotiations reported at around $7B, with Tencent and <a href="/blog/leak-catl-deepseek-investor">CATL</a> named as backers.</li> 2439 <li><strong>Mid-June 2026:</strong> the round <strong>closed</strong> at approximately <strong>50 billion yuan (~$7.4B)</strong>, valuing DeepSeek near $50B. The "50 billion yuan round" and the "$7.4B round" are the same financing in two currencies. See our deep-dives on the <a href="/blog/deepseek-50-billion-funding-round">50 billion yuan structure</a> and the <a href="/blog/deepseek-raises-7-4-billion-bizarre-deal">
2439founder-centric deal geometry</a>.</li> 2440 <li><strong>25 July 2026 â Bloomberg:</strong> a <em>second</em> round, reportedly targeting a <strong>$74B valuation</strong>, was <strong>paused</strong>.</li> 2441</ul> 2442<p>The original $10B number reflected the fundraising target, not the final print. A lab that opens with a $10B ask and closes at ~$7.4B is still doing an extraordinary round by any historical measure, but the pitch of "AGI at any price" was moderated by real due diligence.</p> 2443 2444<h2>Who Put In What</h2> 2445<p>The most unusual feature of the round is the founder's own participation. Reported allocations:</p> 2446<ul> 2447 <li><strong>Liang Wenfeng (founder):</strong> 20 billion yuan â roughly <strong>40% of the entire round</strong>.</li> 2448 <li><strong>Tencent:</strong> 10 billion yuan.</li> 2449 <li><strong>CATL:</strong> 5 billion yuan (~$740M).</li> 2450 <li><strong>NetEase:</strong> 3 billion yuan.</li> 2451 <li><strong>JD.com:</strong> 3 billion yuan.</li> 2452 <li><strong>Remaining balance:</strong> spread across additional domestic strategic and financial investors.</li> 2453</ul> 2454<p>External investors are reported to hold <strong>no voting rights</strong> and to be bound by a <strong>five-year lock-up</strong>. Liang retains control with a reported ~39% stake. In other words: the capital arrived, the governance did not change.</p> 2455 2456<h2>AGI as a Fundraising Thesis</h2> 2457<p>Most frontier labs avoid the AGI word in investor decks. Western counterparts prefer <em>"enterprise AI"</em> or <em>"productivity tooling"</em> â language that is easier to underwrite. DeepSeek did the opposite, and that framing matters:</p> 2458<ol> 2459 <li><strong>Long-horizon capital.</strong> An AGI pitch filters out investors chasing 24-month ARR curves and attracts patient capital for multi-year research bets.</li> 2460 <li><strong>Open-weight credibility.</strong> Continuing open releases â the same strategy behind <a href="/blog/deepseek-r2-ai-model-launch-2025">R2</a> and the <a href="/blog/deepseek-v4-compressed-attention">V4 compressed-attention</a> work â only makes sense if monetisation is explicitly deprioritised.</li> 2461 <li><strong>Governance without dilution of control.</strong> No voting rights plus a five-year lock-up means the research agenda stays where it was.</li> 2462</ol> 2463 2464<h2>Why Investors Believed</h2> 2465<p>Through most of 2023 and 2024, foreign capital treated DeepSeek as a curiosity. Low-cost open models forced the industry to reconsider training economics. The question stopped being <em>"can a Chinese lab catch up?"</em> and became <em>"do you actually need OpenAI-scale spending to reach the frontier?"</em></p> 2466<ul> 2467 <li><a href="/blog/deepseek-v4-unveiled-1-6-trillion-parameters">V4's 1.6T-parameter MoE architecture</a> demonstrating efficient sparse compute.</li> 2468 <li>Aggressive cost-per-token undercutting on the <a href="/pricing">DeepSeek API</a>.</li> 2469 <li>Sustained open-weight releases turning the community into a free distribution and validation network.</li> 2470</ul> 2471 2472 2473<h2>How DeepSeek Differs from Western Labs</h2> 2474<table style="width:100%;border-collapse:collapse;margin:1.5rem 0;"> 2475 <thead> 2476 <tr style="background:#f3f4f6;text-align:left;"> 2477 <th style="padding:0.75rem;border:1px solid #e5e7eb;">Theme</th> 2478 <th style="padding:0.75rem;border:1px solid #e5e7eb;">DeepSeek Positioning</th> 2479 </tr> 2480 </thead> 2481 <tbody> 2482 <tr><td style="padding:0.75rem;border:1px solid #e5e7eb;">Monetisation</td><td style="padding:0.75rem;border:1px solid #e5e7eb;">Explicitly secondary to research</td></tr> 2483 <tr><td style="padding:0.75rem;border:1px solid #e5e7eb;">Model access</td><td style="padding:0.75rem;border:1px solid #e5e7eb;">Open-source / open-weight emphasis</td></tr> 2484 <tr><td style="padding:0.75rem;border:1px solid #e5e7eb;">Capital strategy</td><td style="padding:0.75rem;border:1px solid #e5e7eb;">Self-funded historically, now scaling externally</td></tr> 2485 <tr><td style="padding:0.75rem;border:1px solid #e5e7eb;">Stated ambition</td><td style="padding:0.75rem;border:1px solid #e5e7eb;">AGI</td></tr> 2486 <tr><td style="padding:0.75rem;border:1px solid #e5e7eb;">Competitive angle</td><td style="padding:0.75rem;border:1px solid #e5e7eb;">Efficient training, lower cost per FLOP of capability</td></tr> 2487 </tbody> 2488</table> 2489 2490<h2>What to Watch Next</h2> 2491<ul> 2492 <li><strong>The paused second round.</strong> Bloomberg reported on 25 July 2026 that a follow-on raise at a ~$74B valuation was put on hold. Whether it restarts, and at what price, is the clearest signal on how investors currently value the lab.</li> 2493 <li><strong>Next model release:</strong> a raise of this size is typically followed within ~6 months by a flagship model â see our <a href="/deepseek-v4">V4 tracker</a>.</li> 2494 <li><strong>Pricing behaviour:</strong> the <a href="/blog/deepseek-v4-pro-api-price-cut-permanent">permanent V4-Pro price cut</a> and the <a href="/blog/deepseek-chat-reasoner-retired-billing-impact">retirement of the legacy model IDs</a> show how the lab is now managing serving cost against capital.</li> 2495</ul> 2496 2497 2498<h2>Bottom Line</h2> 2499<p>DeepSeek didn't raise ~$7.4B to ship a better chatbot. Even at the lower-than-rumoured close, the pitch â pursue AGI, stay open-weight, prioritise research over revenue â reframes what the next phase of the frontier-AI race looks like. Whether the AGI framing holds, the round confirms that the frontier is no longer a one-continent story.</p> 2500`,gX={"@context":"https://schema.org","@type":"BlogPosting",headline:G2,datePublished:"2026-05-24T03:28:43+00:00",dateModified:"2026-07-25T00:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:K2,mainEntityOfPage:{"@type":"WebPage","@id":W2}},xX=()=>{const t=jn();return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsxs(ut,{children:[e.jsx("title",{children:G2}),e.jsx("meta",{name:"description",content:K2}),e.jsx("link",{rel:"canonical",href:W2}),e.jsx("meta",{property:"og:title",content:G2}),e.jsx("meta",{property:"og:description",content:K2}),e.jsx("meta",{property:"og:url",content:W2}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(gX)})]}),e.jsxs("main",{className:"container mx-auto px-4 py-12 max-w-4xl",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6",children:[e.jsx(An,{className:"mr-2 h-4 w-4"})," Back to Blog"]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-6",children:"DeepSeek's AGI Funding Round: From $10B Rumor to ~$7.4B Close"}),e.jsx("p",{className:"text-muted-foreground mb-8",children:"Published 24 May 2026 · Updated 25 July 2026 with the closed round figures"}),e.jsx("article",{className:"prose prose-lg max-w-none",dangerouslySetInnerHTML:{__html:fX}}),e.jsx(cn,{}),e.jsx(Nn,{})]})]})},Q2="https://deepseek.ai/blog/deepseek-v4-pro-api-price-cut-permanent",Y2="DeepSeek V4 Pro API: 75% Price Cut Made Permanent (2026)",J2="DeepSeek made its 75% V4 Pro API discount permanent â $0.435/1M input, $0.87/1M output. Now 3â19à cheaper than GPT-5.5, Gemini 3.1 Pro and Claude Opus 4.7.",yX=` 2501<p><em>Disclaimer: deepseek.ai is an independent community and fan site, not officially affiliated with DeepSeek AI. Rates reflect DeepSeek's first-party API pricing as reported by <a href="https://artificialanalysis.ai" target="_blank" rel="noopener noreferrer">Artificial Analysis</a> and may change. See our <a href="/pricing">pricing page</a> for the current live rates and the newer surge-pricing model.</em></p> 2502 2503<p><strong>Announced 23 May 2026:</strong> <strong>DeepSeek has made its temporary 75% price cut on the first-party V4 Pro API permanent.</strong> The move puts <a href="/deepseek-v4">V4 Pro</a> firmly on the Pareto frontier of intelligence-vs-cost, alongside <a href="/deepseek-v4-flash-review">V4 Flash</a>.</p> 2504 2505<h2>The New V4 Pro Pricing</h2> 2506<table style="width:100%;border-collapse:collapse;margin:1.5rem 0;"> 2507 <thead> 2508 <tr style="background:#f3f4f6;text-align:left;"> 2509 <th style="padding:0.75rem;border:1px solid #e5e7eb;">Token Type</th> 2510 <th style="padding:0.75rem;border:1px solid #e5e7eb;">Previous / 1M</th> 2511 <th style="padding:0.75rem;border:1px solid #e5e7eb;">New / 1M</th> 2512 <th style="padding:0.75rem;border:1px solid #e5e7eb;">Change</th> 2513 </tr> 2514 </thead> 2515 <tbody> 2516 <tr><td style="padding:0.75rem;border:1px solid #e5e7eb;">Input</td><td style="padding:0.75rem;border:1px solid #e5e7eb;">$1.74</td><td style="padding:0.75rem;border:1px solid #e5e7eb;"><strong>$0.435</strong></td><td style="padding:0.75rem;border:1px solid #e5e7eb;">â75%</td></tr> 2517 <tr><td style="padding:0.75rem;border:1px solid #e5e7eb;">Output</td><td style="padding:0.75rem;border:1px solid #e5e7eb;">$3.48</td><td style="padding:0.75rem;border:1px solid #e5e7eb;"><strong>$0.87</strong></td><td style="padding:0.75rem;border:1px solid #e5e7eb;">â75%</td></tr> 2518 <tr><td style="padding:0.75rem;border:1px solid #e5e7eb;">Cached input</td><td style="padding:0.75rem;border:1px solid #e5e7eb;">â</td><td style="padding:0.75rem;border:1px solid #e5e7eb;"><strong>$0.0036</strong></td><td style="padding:0.75rem;border:1px solid #e5e7eb;">~99.8% off input</td></tr> 2519 </tbody> 2520</table> 2521<p>Using Artificial Analysis's standard <strong>
25217:2:1 blended pricing</strong>, V4 Pro lands at roughly <strong>$0.18 per 1M blended tokens</strong>.</p> 2522 2523<h2>Running the Intelligence Index: What It Costs</h2> 2524<ul> 2525 <li><strong>DeepSeek V4 Pro:</strong> ~$268</li> 2526 <li><strong>Gemini 3.1 Pro Preview:</strong> ~$892 â V4 Pro is <strong>~3à cheaper</strong></li> 2527 <li><strong>GPT-5.5 (xhigh):</strong> ~$3,357 â V4 Pro is <strong>~12à cheaper</strong></li> 2528 <li><strong>Claude Opus 4.7 (max):</strong> ~$5,117 â V4 Pro is <strong>~19à cheaper</strong></li> 2529</ul> 2530<p>V4 Pro sits in the upper-right "most attractive quadrant" of the intelligence-vs-cost chart while costing a fraction to run.</p> 2531 2532<h2>Why DeepSeek Can Do This</h2> 2533<ol> 2534 <li><strong>MoE efficiency.</strong> V4's sparse <a href="/blog/deepseek-v4-unveiled-1-6-trillion-parameters">1.6T-parameter MoE architecture</a> activates only a small slice of the network per token; inference cost scales with active parameters, not total parameters.</li> 2535 <li><strong>Compressed attention.</strong> The <a href="/blog/deepseek-v4-compressed-attention">compressed-attention mechanism</a> cuts KV-cache pressure â the dominant cost of long-context inference.</li> 2536 <li><strong>Aggressive prefix caching.</strong> The $0.0036/1M cached-input rate (a ~99.8% discount vs. fresh input) makes agentic workflows and long system prompts almost free on the input side. This is the lever pulling blended pricing down to ~$0.18.</li> 2537</ol> 2538<p>Combined with DeepSeek's <a href="/blog/deepseek-agi-10-billion-funding-round">recently-closed ~$7.4B funding round</a>, the lab has both the capital runway and architectural edge to sustain frontier-tier pricing pressure.</p> 2539 2540<h2>What This Means for Builders</h2> 2541<ul> 2542 <li><strong>Agentic systems:</strong> Multi-step agents that cost $5â20 per task on Claude Opus or GPT-5.5 can run on V4 Pro for cents.</li> 2543 <li><strong>Long-context RAG:</strong> Prefix caching at $0.0036/1M makes 100K+ token system prompts economically viable.</li> 2544 <li><strong>Reasoning at scale:</strong> Workloads that used to fall back to <a href="/blog/deepseek-r2-ai-model-launch-2025">R-series</a> for cost reasons no longer have to compromise.</li> 2545 <li><strong>Open-weight fallback:</strong> Because V4 is open-weight, you can self-host the same architecture if first-party pricing ever changes.</li> 2546</ul> 2547 2548<h2>Note on Surge Pricing</h2> 2549<p>DeepSeek has since layered a <a href="/blog/deepseek-v4-ga-surge-pricing-migration">peak-hour surge premium</a> on top of these permanent base rates and retired the legacy <a href="/blog/deepseek-chat-reasoner-retired-billing-impact">deepseek-chat / deepseek-reasoner endpoints</a>. Off-peak base rates below still apply; peak-hour multipliers now apply on top.</p> 2550 2551<h2>Bottom Line</h2> 2552<p>Making the 75% cut permanent reframes the entire frontier-AI cost curve. At ~$0.18 blended per 1M tokens, V4 Pro is meaningfully redefining what frontier-tier reasoning costs to operate. Western labs face a choice: match the pricing, differentiate on capability, or watch high-volume workloads migrate.</p> 2553`,bX={"@context":"https://schema.org","@type":"BlogPosting",headline:Y2,datePublished:"2026-05-23T07:26:25+00:00",dateModified:"2026-07-25T00:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:J2,mainEntityOfPage:{"@type":"WebPage","@id":Q2}},vX=()=>{const t=jn();return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsxs(ut,{children:[e.jsx("title",{children:Y2}),e.jsx("meta",{name:"description",content:J2}),e.jsx("link",{rel:"canonical",href:Q2}),e.jsx("meta",{property:"og:title",content:Y2}),e.jsx("meta",{property:"og:description",content:J2}),e.jsx("meta",{property:"og:url",content:Q2}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(bX)})]}),e.jsxs("main",{className:"container mx-auto px-4 py-12 max-w-4xl",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6",children:[e.jsx(An,{className:"mr-2 h-4 w-4"})," Back to Blog"]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-6",children:"DeepSeek V4 Pro API: 75% Price Cut Made Permanent"}),e.jsx("p",{className:"text-muted-foreground mb-8",children:"Announced 23 May 2026 · Reviewed 25 July 2026"}),e.jsx("article",{className:"prose prose-lg max-w-none",dangerouslySetInnerHTML:{__html:yX}}),e.jsx(cn,{}),e.jsx(Nn,{})]})]})},wX=()=>{const t=jn(),n="https://deepseek.ai/blog/deepseek-v41-flash-beta-native-multimodal",s={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek V4.1 Flash Enters a Two-Day API Beta: New Architecture, Native Multimodal, 20 Concurrent Requests",datePublished:"2026-09-08T16:00:00+00:00",dateModified:"2026-09-08T16:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI (Independent Guide)",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},description:"On September 8, 2026 DeepSeek opened limited testing of deepseek-v4.1-flash-expires-on-0910: a new architecture with native multimodal input, V4-Flash pricing and a 20-concurrent-request cap per account. What is confirmed, what is not, and how to test it before the model ID expires.",mainEntityOfPage:{"@type":"WebPage","@id":n}},r={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeek V4.1 Flash beta",item:n}]},a={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What is the DeepSeek V4.1 Flash model name?",acceptedA
2553nswer:{"@type":"Answer",text:"The test model ID is deepseek-v4.1-flash-expires-on-0910. The base URL stays https://api.deepseek.com â only the model string changes. The trailing 0910 is the expiry: the ID stops serving after September 10, 2026."}},{"@type":"Question",name:"Is DeepSeek V4.1 Flash an official release?",acceptedAnswer:{"@type":"Answer",text:"No. DeepSeek described it in its official community groups as an intermediate version (ä¸é´çæ¬) opened for limited testing inside the live API. There is no model card, no technical report and no changelog entry, and the public Models & Pricing page still lists only DeepSeek V4 Flash, DeepSeek V4 Pro and DeepSeek-V4-Flash-Vision-Exp."}},{"@type":"Question",name:"How much does DeepSeek V4.1 Flash cost?",acceptedAnswer:{"@type":"Answer",text:"During the beta, billing matched deepseek-v4-flash at the flat September 2026 rates: $0.14 per 1M input tokens on a cache miss, $0.0028 on a cache hit and $0.28 per 1M output tokens. Those rates were superseded when DeepSeek-V4.1-Flash went generally available on September 9, 2026 and a peak/off-peak rate card took effect."}},{"@type":"Question",name:"What are the rate limits on the V4.1 Flash beta?",acceptedAnswer:{"@type":"Answer",text:"Each account is capped at 20 concurrent requests during the test. That cap is the practical constraint on benchmarking: throughput measurements taken above it reflect queueing, not model speed."}},{"@type":"Question",name:"Does V4.1 Flash replace DeepSeek-V4-Flash-Vision-Exp?",acceptedAnswer:{"@type":"Answer",text:"Not yet, but that is the direction. Vision-Exp is a separate experimental vision model layered onto the Flash line; V4.1 Flash is described as handling image and text input natively inside one architecture, which removes the separate encoder step."}},{"@type":"Question",name:"Should I put the V4.1 Flash beta in production?",acceptedAnswer:{"@type":"Answer",text:"No. The expiry date is written into the model ID, so any production call pinned to deepseek-v4.1-flash-expires-on-0910 breaks after September 10, 2026. Keep production on deepseek-v4-flash and use the beta ID only in a test path."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek V4.1 Flash Beta: Native Multimodal, 2-Day Window"}),e.jsx("meta",{name:"description",content:"September 8, 2026: DeepSeek opened deepseek-v4.1-flash-expires-on-0910 for limited testing â new architecture, native multimodal input, V4-Flash pricing, 20 concurrent requests, expiring September 10."}),e.jsx("link",{rel:"canonical",href:n}),e.jsx("meta",{name:"robots",content:"index, follow"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:n}),e.jsx("meta",{property:"og:title",content:"DeepSeek V4.1 Flash Enters a Two-Day API Beta with Native Multimodal"}),e.jsx("meta",{property:"og:description",content:"New architecture, images and text in one model, same V4-Flash billing, 20 concurrent requests per account â and a model ID that expires on September 10, 2026."}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("main",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6 text-slate-600 hover:text-[#0066FF]",children:[e.jsx(An,{className:"h-4 w-4 mr-2"}),"Back to Blog"]}),e.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-xs text-slate-500 mb-4",children:[e.jsx(se,{to:"/",className:"hover:text-[#0066FF]",children:"Home"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx(se,{to:"/blog",className:"hover:text-[#0066FF]",children:"Blog"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx("span",{className:"text-slate-700",children:"DeepSeek V4.1 Flash beta"})]}),e.jsxs("div",{className:"mb-6 inline-flex items-center gap-2 text-xs font-medium bg-blue-50 text-[#0066FF] border border-blue-200 px-3 py-1.5 rounded-full",children:[e.jsx(Lt,{className:"h-3.5 w-3.5"}),"API changelog · September 8, 2026 · Independent Guide"]}),e.jsxs("article",{children:[e.jsx("h1",{className:"text-3xl md:text-5xl font-bold text-slate-900 mb-4 leading-tight",children:"DeepSeek V4.1 Flash Enters a Two-Day API Beta: New Architecture, Native Multimodal, and an Expiry Date in the Model Name"}),e.jsx("p",{className:"text-lg text-slate-600 mb-2",children:"By the Deep Seek AI editorial desk · September 8, 2026 · 6 min read"}),e.jsxs("p",{className:"text-base text-slate-500 mb-8 italic",children:['DeepSeek did what it usually does before an announcement: it dropped the model into the live API. Around 15:00 Beijing time on September 8, 2026, the team told its official community groups that an "intermediate version" â ',e.jsx("code",{children:"deepseek-v4.1-flash-expires-on-0910"})," ","â was open for limited testing. The trailing ",e.jsx("code",{children:"0910"})," is the whole story: this build is scheduled to go offline around September 10."]}),e.jsx(ie,{className:"mb-8 border-primary/40 bg-primary/5",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h2",{className:"text-lg font-bold text-slate-900 mb-2 mt-0",children:"Update, September 18, 2026: this beta is over â V4.1-Flash is now official"}),e.jsxs("p",{className:"text-sm text-slate-700 mb-0",children:["DeepSeek released ",e.jsx("strong",{children:"DeepSeek-V4.1-Flash"})," as a general-availability model on ",e.jsx("strong",{children:"September 9, 2026"})," under the API name"," ",e.jsx("code",{children:"deepseek-flash"}),". The expiring test ID described below no longer serves traffic, V4-Flash and V4-Flash-Vision-Exp are retired, and new peak/off-peak rates apply. The article below is kept as a record of the two-day beta."," ",e.jsx(se,{to:"/blog/deepseek-v41-flash-generally-available",className:"text-primary hover:underline",children:"Read the GA release coverage"}),"."]})]})}),e.jsx(ie,{className:"mb-8 border-blue-200 bg-blue-50/60",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h2",{className:"text-lg font-bold text-slate-900 mb-3 mt-0",children:"The 60-second version"}),e.jsxs("ul",{className:"text-sm text-slate-800 space-y-2 list-disc pl-5",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Model ID:"})," ",e.jsx("code",{children:"deepseek-v4.1-flash-expires-on-0910"}),". The base URL does not change â swap the model string only."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"New architecture with native multimodal support"}),", per DeepSeek's own description: images and text handled inside one model instead of via a separate vision extension."]}),e.jsxs("li",{children:[e.jsxs("strong",{children:["Billing matched ",e.jsx("code",{children:"deepseek-v4-flash"})]})," during the test â the flat rates in force in September 2026: $0.14 / 1M input (cache miss), $0.0028 on a cache hit, $0.28 / 1M output. Those rates were replaced at the GA release; see"," ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline",children:"current pricing"}),"."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"20 concurrent requests per account."})," That is the hard ceiling for any benchmark you run."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Reported throughput up to 500 tokens/second"})," (September 9 follow-up coverage), described as the largest architecture change on the Flash line so far. Unverified â no first-party number has been published."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Not a launch."})," No model card, no technical report, no changelog entry. As of September 9, 2026 the official change log still ends at the August 21 V4-Flash-Vision-Exp release, and the public Models & Pricing page lists only V4 Flash, V4 Pro and V4-Flash-Vision-Exp."]})]})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What DeepSeek actually claimed"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["The official wording is short. V4.1 Flash is an intermediate checkpoint that uses a"," ",e.jsx("strong",{children:"new model architecture with native multimodal support"}),", and DeepSeek claims it is ",e.jsx("strong",{children:"stronger, faster and cheaper"})," than V4 Flash. That is a vendor claim in a community-group post accompanied by a feedback form, not a benchmark table â there are no published scores to check it against yet."]}),e.jsxs("p",{className:"text-slate-700 mb-8",children:["Note what is ",e.jsx("em",{children:"not"})," claimed: nothing about V4 Pro, nothing about the consumer app, and no new price. If you were waiting for the official V4-Pro release promised"," ",e.jsx(se,{to:"/blog/deepseek-v4-flash-ga-agent-benchmarks",className:"text-[#0066FF] underline",children:"when V4-Flash went GA on July 31"}),", this is not it."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:'Why "native multimodal" is the real change'}),e.jsxs("p",{className:"text-slate-700 mb-4",children:["Until now, mixing images and text on the Flash line meant reaching for a separate vision model â"," ",e.jsx(se,{to:"/blog/deepseek-vision-api-guide",className:"text-[#0066FF] underline",children:e.jsx("code",{children:"deepseek-v4-flash-vision-exp"})}),". That approach runs the image through its own encoder and splice
2553s the result into the text sequence. It works, but the conversion step costs latency and loses information at the seam."]}),e.jsx("p",{className:"text-slate-700 mb-8",children:'Native multimodality means images and text are trained and served inside the same architecture. On a product line whose entire reason to exist is low latency, that is a directional decision rather than a feature bullet: it suggests the cheap tier, not the premium tier, is where DeepSeek wants vision to live. If it holds, "add an image to your existing Flash call" becomes the default rather than an experimental detour.'}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"How to test it before it disappears"}),e.jsx("div",{className:"bg-slate-900 rounded-lg p-5 mb-6 overflow-x-auto",children:e.jsx("pre",{className:"text-sm text-slate-100",children:e.jsx("code",{children:`from openai import OpenAI 2554 2555client = OpenAI( 2556 api_key="YOUR_DEEPSEEK_API_KEY", 2557 base_url="https://api.deepseek.com", 2558) 2559 2560resp = client.chat.completions.create( 2561 model="deepseek-v4.1-flash-expires-on-0910", # expires 2026-09-10 2562 messages=[{"role": "user", "content": "Summarise this in one line."}], 2563) 2564print(resp.choices[0].message.content)`})})}),e.jsx("p",{className:"text-slate-700 mb-4",children:"Three things worth measuring while the window is open, because nobody has published them yet:"}),e.jsxs("ul",{className:"text-slate-700 space-y-2 list-disc pl-6 mb-8",children:[e.jsxs("li",{children:[e.jsxs("strong",{children:["Time to first token vs ",e.jsx("code",{children:"deepseek-v4-flash"})]})," on identical prompts, single-threaded, so the 20-request cap cannot distort the result."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Image-token accounting."})," Vision-Exp bills images at a capped token budget; check what the new architecture reports in ",e.jsx("code",{children:"usage"})," for the same image."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Cache-hit behaviour"})," on repeated prefixes â cache pricing is where the Flash tier gets genuinely cheap, and a new architecture can change hit rates."]})]}),e.jsx(ie,{className:"mb-8 border-amber-200 bg-amber-50/60",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h2",{className:"text-lg font-bold text-slate-900 mb-3 mt-0 flex items-center gap-2",children:[e.jsx(zr,{className:"h-5 w-5 text-amber-600"}),"Do not pin this in production"]}),e.jsxs("p",{className:"text-sm text-slate-800",children:["The expiry is inside the model ID. Any deployment calling"," ",e.jsx("code",{children:"deepseek-v4.1-flash-expires-on-0910"})," after September 10, 2026 fails on an invalid model name â not gracefully, and not with a fallback. Keep production on"," ",e.jsx("code",{children:"deepseek-v4-flash"}),", which DeepSeek keeps pointed at the newest stable build, and gate the beta ID behind an environment flag in a test path only."]})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What it signals about pricing"}),e.jsxs("p",{className:"text-slate-700 mb-4",children:['Billing during the beta matched V4 Flash exactly, so nothing changed on invoices at the time. But "lower cost" was one of the three claims, and DeepSeek has form here: the'," ",e.jsx(se,{to:"/blog/deepseek-v4-pro-api-price-cut-permanent",className:"text-[#0066FF] underline",children:"V4-Pro rate cut"})," ","became permanent, and the long-announced peak-hour surcharge went live with the GA release on September 9, 2026 â off-peak rates are now half of peak. Our"," ",e.jsx(se,{to:"/pricing",className:"text-[#0066FF] underline",children:"DeepSeek pricing page"})," ","tracks the official rate card and is checked weekly."]}),e.jsx("p",{className:"text-slate-700 mb-8",children:"The read at the time: an architecture preview, priced as its predecessor to remove any reason not to test it. The rate card that followed two days later confirmed the new tiering."}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Frequently asked questions"}),e.jsx("div",{className:"space-y-5 mb-10",children:a.mainEntity.map(i=>e.jsxs("div",{children:[e.jsxs("h3",{className:"font-semibold text-slate-900 mb-1 flex items-start gap-2",children:[e.jsx(mh,{className:"h-4 w-4 text-[#0066FF] mt-1 shrink-0"}),i.name]}),e.jsx("p",{className:"text-slate-700 text-sm pl-6",children:i.acceptedA
2564nswer.text})]},i.name))}),e.jsxs("div",{className:"border-t border-slate-200 pt-8",children:[e.jsx("h2",{className:"text-xl font-bold text-slate-900 mb-4",children:"Keep reading"}),e.jsx(Nn,{})]})]})]})})]})},jX=[{label:"Reported chip count",value:"⥠160,000",detail:"Huawei Ascend 950DT accelerators"},{label:"Site",value:"Ulanqab",detail:"Inner Mongolia, China"},{label:"Design power",value:"~1 GW",detail:"Gigawatt-scale target for the full facility"},{label:"Workload",value:"Inference only",detail:"Serving user queries, not training runs"},{label:"Target timing",value:"End 2027 â early 2028",detail:"For at least part of the capacity"},{label:"Status",value:"Reported plan",detail:"Not a confirmed or completed deployment"}],kX=()=>{const t=jn(),n="https://deepseek.ai/blog/deepseek-huawei-ascend-160000-chip-cluster",s={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek's Reported 160,000-Chip Huawei Ascend Cluster in Inner Mongolia: What It Means for Inference",datePublished:"2026-09-08T16:00:00+00:00",dateModified:"2026-09-08T16:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI (Independent Guide)",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},description:"DeepSeek is reported to be planning at least 160,000 Huawei Ascend 950DT accelerators at a roughly 1 GW site in Ulanqab, Inner Mongolia â for inference, not training. What is confirmed, what is inference-only strategy, and what it would mean for API capacity and pricing.",mainEntityOfPage:{"@type":"WebPage","@id":n}},r={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeek Huawei Ascend cluster",item:n}]},a={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"How many Huawei chips is DeepSeek reported to be buying?",acceptedAnswer:{"@type":"Answer",text:"At least 160,000 Huawei Ascend 950DT accelerators, according to reporting first published by Bloomberg on September 4, 2026 and citing people familiar with the plan. That would be among the largest known single-site deployments of Huawei AI silicon."}},{"@type":"Question",name:"Where is the DeepSeek data center being built?",acceptedAnswer:{"@type":"Answer",text:"In Ulanqab, Inner Mongolia. The facility is designed for roughly gigawatt-scale power consumption, and the reported 160,000 accelerators represent only part of its eventual capacity."}},{"@type":"Question",name:"Will DeepSeek train its models on Huawei Ascend chips?",acceptedAnswer:{"@type":"Answer",text:"No â not with this deployment. The chips are earmarked for inference, meaning running existing models to answer user queries. There is currently no plan to use them for training, even though Huawei designed and markets the 950DT as a training accelerator."}},{"@type":"Question",name:"Is DeepSeek dropping Nvidia?",acceptedAnswer:{"@type":"Answer",text:"Not in one step. Splitting the stack â Nvidia for training, domestic silicon for serving â is the pragmatic path, because inference is the workload where software maturity matters least and volume matters most. Training remains the harder porting problem."}},{"@type":"Question",name:"When would the cluster be running?",acceptedAnswer:{"@type":"Answer",text:"DeepSeek reportedly wants at least part of the capacity operating by the end of 2027 or early 2028, subject to Huawei's production capacity. Advanced packaging and high-bandwidth memory supply are the widely cited bottlenecks."}},{"@type":"Question",name:"Would this make the DeepSeek API cheaper?",acceptedAnswer:{"@type":"Answer",text:"Not directly and not soon. Owned domestic inference capacity mainly removes a supply ceiling â the constraint behind capacity throttling and the announced peak-hour surcharge. Current published rates are unaffected;
2564 check the official rate card for the prices that apply today."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek's 160,000 Huawei Ascend Chips: Inference at 1 GW"}),e.jsx("meta",{name:"description",content:"DeepSeek is reported to plan 160,000+ Huawei Ascend 950DT accelerators at a ~1 GW site in Ulanqab, Inner Mongolia â for inference, not training. What is confirmed and what it means for API capacity."}),e.jsx("link",{rel:"canonical",href:n}),e.jsx("meta",{name:"robots",content:"index, follow"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:n}),e.jsx("meta",{property:"og:title",content:"DeepSeek's Reported 160,000-Chip Huawei Ascend Cluster in Inner Mongolia"}),e.jsx("meta",{property:"og:description",content:"A gigawatt-scale site in Ulanqab, 160,000 Ascend 950DT accelerators, inference only â the clearest signal yet that a top Chinese lab will serve users on Huawei rather than Nvidia."}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("main",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6 text-slate-600 hover:text-[#0066FF]",children:[e.jsx(An,{className:"h-4 w-4 mr-2"}),"Back to Blog"]}),e.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-xs text-slate-500 mb-4",children:[e.jsx(se,{to:"/",className:"hover:text-[#0066FF]",children:"Home"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx(se,{to:"/blog",className:"hover:text-[#0066FF]",children:"Blog"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx("span",{className:"text-slate-700",children:"DeepSeek Huawei Ascend cluster"})]}),e.jsxs("div",{className:"mb-6 inline-flex items-center gap-2 text-xs font-medium bg-blue-50 text-[#0066FF] border border-blue-200 px-3 py-1.5 rounded-full",children:[e.jsx(yo,{className:"h-3.5 w-3.5"}),"AI News · September 8, 2026 · Independent Guide"]}),e.jsxs("article",{children:[e.jsx("h1",{className:"text-3xl md:text-5xl font-bold text-slate-900 mb-4 leading-tight",children:"DeepSeek's Reported 160,000-Chip Huawei Cluster: A Gigawatt Bet on Serving, Not Training"}),e.jsx("p",{className:"text-lg text-slate-600 mb-2",children:"By the Deep Seek AI editorial desk · September 8, 2026 · 7 min read"}),e.jsx("p",{className:"text-base text-slate-500 mb-8 italic",children:"DeepSeek is preparing to deploy at least 160,000 Huawei Ascend 950DT accelerators at a data center it is building in Ulanqab, Inner Mongolia â a site designed for roughly gigawatt-scale power. The detail that matters most is not the number. It is that the chips are earmarked for inference."}),e.jsx(ie,{className:"mb-8 border-amber-200 bg-amber-50/60",children:e.jsxs(me,{className:"p-6",children:[e.jsxs("h2",{className:"text-lg font-bold text-slate-900 mb-2 mt-0 flex items-center gap-2",children:[e.jsx(zr,{className:"h-5 w-5 text-amber-600"}),"Sourcing note"]}),e.jsxs("p",{className:"text-sm text-slate-800",children:["This is a ",e.jsx("strong",{children:"reported plan"}),", first published by Bloomberg on September 4, 2026 and citing people familiar with the matter, and widely picked up since. DeepSeek has not announced it, Huawei has not confirmed the order, and no deployment schedule is public. Everything below is framed accordingly."]})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"The reported numbers"}),e.jsx("div",{className:"overflow-x-auto mb-8",children:e.jsxs("table",{className:"w-full text-sm border border-slate-200 rounded-lg overflow-hidden",children:[e.jsx("caption",{className:"sr-only",children:"Reported details of DeepSeek's planned Huawei Ascend cluster in Ulanqab, Inner Mongolia"}),e.jsx("thead",{className:"bg-slate-100",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left px-4 py-3 font-semibold text-slate-700",children:"Item"}),e.jsx("th",{className:"text-left px-4 py-3 font-semibold text-slate-700",children:"Reported"}),e.jsx("th",{className:"text-left px-4 py-3 font-semibold text-slate-700",children:"Detail"})]})}),e.jsx("tbody",{className:"divide-y divide-slate-200",children:jX.map(i=>e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 font-medium text-slate-900",children:i.label}),e.jsx("td",{className:"px-4 py-3 font-mono",children:i.value}),e.jsx("td",{className:"px-4 py-3 text-slate-600",children:i.detail})]},i.label))})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:'Why "inference only" is the headline'}),e.jsx("p",{className:"text-slate-700 mb-4",children:"Huawei designed and markets the Ascend 950DT for training. DeepSeek reportedly wants it for serving. That inversion is deliberate, and it tells you exactly where domestic silicon is competitive today."}),e.jsx("p",{className:"text-slate-700 mb-4",children:"Training is the workload that punishes an immature software stack: months-long runs, tight collective-communication patterns, exotic parallelism, and a failure anywhere ruins the whole job. Inference is far more forgiving. It is embarrassingly parallel per request, tolerant of node failure, and dominated by memory bandwidth and cost per served token rather than peak interconnect efficiency. If you are going to bet a gigawatt on non-Nvidia hardware, serving is the sane place to start."}),e.jsxs("p",{className:"text-slate-700 mb-8",children:["It also matches how DeepSeek has been spending its engineering effort. The lab's public work on"," ",e.jsx(se,{to:"/blog/inside-deepseek-dspark-lossless-inference",className:"text-[#0066FF] underline",children:"DSpark speculative decoding"})," ","and hardware-aware scheduling is inference optimisation, not training research â and those techniques travel to a new accelerator far more easily than a training stack does."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"The bottleneck is packaging, not ambition"}),e.jsx("p",{className:"text-slate-700 mb-8",children:`The reported target of "at least part of the capacity operating by end of 2027 or early 2028" carries an explicit caveat: Huawei's production. Analysts consistently point at advanced packaging and high-bandwidth memory supply as the constraint on Ascend volume. A 160,000-accelerator order would absorb a meaningful share of that capacity, which makes this as much a test of Huawei's manufacturing as of DeepSeek's porting work. The honest read is that the plan is a statement of direction with a hardware dependency attached.`}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What it would change for developers"}),e.jsxs("ul",{className:"text-slate-700 space-y-3 list-disc pl-6 mb-8",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Capacity, before price."})," The visible pain in the DeepSeek API has been throttling under load and an announced peak-hour surcharge. Owned inference capacity attacks that ceiling directly. Today's published rates are unchanged â see"," ",e.jsx(se,{to:"/pricing",className:"text-[#0066FF] underline",children:"DeepSeek pricing"})," ","for what actually applies."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Model efficiency stays central."})," Serving frontier-class models on domestic silicon rewards exactly the architectural choices DeepSeek already favours â sparse mixture-of-experts, aggressive caching, compressed attention."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Supply-chain risk shifts, it does not vanish."})," Export controls stop being the single point of failure; Huawei's yield becomes one instead."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"It is a 2027â2028 story."})," Nothing about your integration changes this quarter. Plan around"," ",e.jsx(se,{to:"/deepseek-api",className:"text-[#0066FF] underline",children:"the current API"}),"."]})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Frequently asked questions"}),e.jsx("div",{className:"space-y-5 mb-10",children:a.mainEntity.map(i=>e.jsxs("div",{children:[e.jsxs("h3",{className:"font-semibold text-slate-900 mb-1 flex items-start gap-2",children:[e.jsx(mh,{className:"h-4 w-4 text-[#0066FF] mt-1 shrink-0"}),i.name]}),e.jsx("p",{className:"text-slate-700 text-sm pl-6",children:i.acceptedA
2564nswer.text})]},i.name))}),e.jsxs("div",{className:"border-t border-slate-200 pt-8",children:[e.jsx("h2",{className:"text-xl font-bold text-slate-900 mb-4",children:"Keep reading"}),e.jsx(Nn,{})]})]})]})})]})},NX=[{role:"Server-side development engineers",scope:"LLM research platform, agent framework components, R&D efficiency infrastructure, the DeepSeek API, online services and data engineering."},{role:"Agent elastic computing engineers",scope:"Split between platform development and the underlying systems that let agent workloads scale up and down on demand."}],SX=()=>{const t=jn(),n="https://deepseek.ai/blog/deepseek-hiring-150-engineers-systems-shift",s={"@context":"https://schema.org","@type":"BlogPosting",headline:"DeepSeek Opens ~150 Engineering Roles and Zero Research Roles: The AI Race Moves From Training to Systems",datePublished:"2026-09-08T16:00:00+00:00",dateModified:"2026-09-08T16:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI (Independent Guide)",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/og-image.png"}},description:"On September 8, 2026 DeepSeek opened around 150 positions for senior engineers with 2â10 years of experience â every one on the engineering side, none in AI research. Why the moat is moving from the lab to serving infrastructure, and what it means for API reliability.",mainEntityOfPage:{"@type":"WebPage","@id":n}},r={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"Blog",item:"https://deepseek.ai/blog"},{"@type":"ListItem",position:3,name:"DeepSeek hiring 150 engineers",item:n}]},a={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"How many roles did DeepSeek open?",acceptedAnswer:{"@type":"Answer",text:"About 150 new positions, announced on Tuesday September 8, 2026, targeting senior engineers with two to ten years of experience."}},{"@type":"Question",name:"Why are there no AI research roles?",acceptedAnswer:{"@type":"Answer",text:"Every one of the new roles sits on the engineering side. Analysts reading the posting see competition among large-language-model developers shifting from training models to building systems: as capability gaps between foundation models narrow, the advantage moves out of the laboratory and into how reliably and cheaply models are actually deployed."}},{"@type":"Question",name:"What kinds of engineers is DeepSeek hiring?",acceptedAnswer:{"@type":"Answer",text:"Two tracks. Server-side development engineers work across the LLM research platform, agent framework components, R&D efficiency infrastructure, the DeepSeek API, online services and data engineering. Agent elastic computing engineers are split between platform development and underlying systems."}},{"@type":"Question",name:"How is this different from DeepSeek's June recruitment drive?",acceptedAnswer:{"@type":"Answer",text:"The June drive was broad and included research positions. This round contains not a single AI research role â it is entirely systems and infrastructure, which is what makes it a signal rather than routine growth."}},{"@type":"Question",name:"Does this affect the DeepSeek API?",acceptedAnswer:{"@type":"Answer",text:"Indirectly, and in the direction users want. Several tracks point straight at the API, online services and agent scaling â the areas behind capacity throttling and the announced peak-hour surcharge. It is a staffing signal, not a published roadmap commitment."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek Hires 150 Engineers â and Zero Researchers"}),e.jsx("meta",{name:"description",content:"September 8, 2026: DeepSeek opened ~150 senior engineering roles and not one AI research role. Inside the shift from training models to building systems, and what it means for the API."}),e.jsx("link",{rel:"canonical",href:n}),e.jsx("meta",{name:"robots",content:"index, follow"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:n}),e.jsx("meta",{property:"og:title",content:"DeepSeek Opens ~150 Engineering Roles and Zero Research Roles"}),e.jsx("meta",{property:"og:description",content:"Server-side development and agent elastic computing â the moat is moving from the lab to the serving stack. What DeepSeek's hiring round says about the next year of the API."}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)})]}),e.jsx("div",{className:"min-h-screen bg-white",children:e.jsxs("main",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[e.jsxs(Ke,{variant:"ghost",onClick:()=>t("/blog"),className:"mb-6 text-slate-600 hover:text-[#0066FF]",children:[e.jsx(An,{className:"h-4 w-4 mr-2"}),"Back to Blog"]}),e.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-xs text-slate-500 mb-4",children:[e.jsx(se,{to:"/",className:"hover:text-[#0066FF]",children:"Home"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx(se,{to:"/blog",className:"hover:text-[#0066FF]",children:"Blog"}),e.jsx("span",{className:"mx-2",children:"/"}),e.jsx("span",{className:"text-slate-700",children:"DeepSeek hiring 150 engineers"})]}),e.jsxs("div",{className:"mb-6 inline-flex items-center gap-2 text-xs font-medium bg-blue-50 text-[#0066FF] border border-blue-200 px-3 py-1.5 rounded-full",children:[e.jsx(sT,{className:"h-3.5 w-3.5"}),"AI News · September 8, 2026 · Independent Guide"]}),e.jsxs("article",{children:[e.jsx("h1",{className:"text-3xl md:text-5xl font-bold text-slate-900 mb-4 leading-tight",children:"DeepSeek Opens ~150 Engineering Roles â and Not One AI Research Role"}),e.jsx("p",{className:"text-lg text-slate-600 mb-2",children:"By the Deep Seek AI editorial desk · September 8, 2026 · 5 min read"}),e.jsx("p",{className:"text-base text-slate-500 mb-8 italic",children:"On Tuesday September 8, 2026, DeepSeek posted around 150 new positions aimed at senior engineers with two to ten years of experience. Unlike its broad June recruitment drive, every single role sits on the engineering side. For a lab whose reputation was built in the research paper, that absence is the story."}),e.jsx(ie,{className:"mb-8 border-blue-200 bg-blue-50/60",children:e.jsxs(me,{className:"p-6",children:[e.jsx("h2",{className:"text-lg font-bold text-slate-900 mb-3 mt-0",children:"The two tracks"}),e.jsx("div",{className:"space-y-4",children:NX.map(i=>e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-slate-900 text-sm mb-1",children:i.role}),e.jsx("p",{className:"text-sm text-slate-700",children:i.scope})]},i.role))}),e.jsx("p",{className:"text-xs text-slate-600 mt-4",children:"Scope per a post by Cui Tianyi, head of DeepSeek's Harness team, as reported on September 8, 2026."})]})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Why the moat moved out of the lab"}),e.jsx("p",{className:"text-slate-700 mb-4",children:"The reading offered by anal
2564ysts quoted on the announcement is blunt: competition among large-language-model developers is shifting from training models to building systems. As capability gaps between frontier foundation models narrow, being half a benchmark point ahead stops deciding anything. What decides things is whether the model answers in 400 milliseconds under load, whether the agent loop survives a twenty-step task, and what a million served tokens actually cost you."}),e.jsxs("p",{className:"text-slate-700 mb-8",children:["You can see the same shift in DeepSeek's shipping record over the last months. The visible output has been serving and tooling, not new base models:"," ",e.jsx(se,{to:"/blog/deepseek-harness-open-source-claude-code-alternative",className:"text-[#0066FF] underline",children:"DeepSeek Harness"})," ","as a plugin-first agent runtime,"," ",e.jsx(se,{to:"/blog/inside-deepseek-dspark-lossless-inference",className:"text-[#0066FF] underline",children:"DSpark"})," ","for faster inference at identical output, and a string of API-level changes â"," ",e.jsx(se,{to:"/blog/deepseek-chat-reasoner-retired-billing-impact",className:"text-[#0066FF] underline",children:"retiring the legacy model aliases"})," ","and repricing the tiers. Hiring 150 systems engineers is that strategy written as a headcount plan."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:'"Agent elastic computing" is the interesting phrase'}),e.jsxs("p",{className:"text-slate-700 mb-8",children:["Ordinary chat traffic is fairly predictable. Agent traffic is not: one user request can fan out into dozens of tool calls, long-running sessions and retry storms, and the load it produces is spiky in a way that classic autoscaling handles badly. A dedicated track for elastic compute under agent workloads says DeepSeek expects agents â not chat â to be the load it must engineer for. That aligns with a"," ",e.jsx(se,{to:"/blog/deepseek-huawei-ascend-160000-chip-cluster",className:"text-[#0066FF] underline",children:"gigawatt-scale inference build-out"})," ","and with agent scores being the metric it now advertises."]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"What it means if you build on the API"}),e.jsxs("ul",{className:"text-slate-700 space-y-3 list-disc pl-6 mb-8",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Reliability work is being staffed."})," The API, online services and agent scaling are named explicitly â the exact surfaces behind throttling complaints."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Expect more platform changes, fewer surprise base models."})," A systems hiring round points to endpoints, tooling and pricing structure moving faster than model names."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Pin your model strings and read changelogs."})," DeepSeek ships platform-level changes with short notice; the"," ",e.jsx(se,{to:"/blog/deepseek-v41-flash-beta-native-multimodal",className:"text-[#0066FF] underline",children:"V4.1 Flash test build with an expiry date in its own name"})," ","is the current example."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Budget from the official rate card."})," Our"," ",e.jsx(se,{to:"/pricing",className:"text-[#0066FF] underline",children:"pricing page"})," ","tracks it weekly, including the status of the announced peak-hour surcharge."]})]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-900 mt-10 mb-4",children:"Frequently asked questions"}),e.jsx("div",{className:"space-y-5 mb-10",children:a.mainEntity.map(i=>e.jsxs("div",{children:[e.jsxs("h3",{className:"font-semibold text-slate-900 mb-1 flex items-start gap-2",children:[e.jsx(mh,{className:"h-4 w-4 text-[#0066FF] mt-1 shrink-0"}),i.name]}),e.jsx("p",{className:"text-slate-700 text-sm pl-6",children:i.acceptedAnswer.text})]},i.name))}),e.jsxs("div",{className:"border-t border-slate-200 pt-8",children:[e.jsx("h2",{className:"text-xl font-bold text-slate-900 mb-4",children:"Keep reading"}),e.jsx(Nn,{})]})]})]})})]})},AX=()=>{const t=[{question:"What is DeepSeek AI?",answer:"DeepSeek AI is a Chinese artificial intelligence company that develops open-source large language models. Founded in 2023, DeepSeek has become known for creating powerful AI models like DeepSeek-V3 and DeepSeek R1 that rival competitors at a fraction of the training cost."},{question:"Is DeepSeek AI free to use?",answer:"Yes, DeepSeek AI offers generous free access. You can use DeepSeek through their web chat, API with free tier, or download the open-source models to run locally at no cost."},{question:"How does DeepSeek compare to ChatGPT?",answer:"DeepSeek matches or exceeds ChatGPT on many benchmarks, especially in coding and mathematical reasoning. The key differences are that DeepSeek is open-source, significantly cheaper, and can run locally for privacy."},{question:"Is DeepSeek AI safe and secure?",answer:"DeepSeek includes content filtering and safety measures. As an open-source model, its code is publicly auditable. For maximum security, you can run DeepSeek locally on your own infrastru
2564cture."},{question:"What can DeepSeek AI do?",answer:"DeepSeek AI excels at natural language understanding, code generation, mathematical reasoning, writing, analysis, and general conversation. It's particularly strong in coding tasks and logical reasoning."},{question:"How much does DeepSeek cost?",answer:"DeepSeek offers a generous free tier. API pricing is very competitive at around $0.15 per million input tokens and $0.60 per million output tokens, making it one of the most cost-effective AI models available."}],n={"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(r=>({"@type":"Question",name:r.question,acceptedAnswer:{"@type":"Answer",text:r.answer}}))},s={"@context":"https://schema.org","@type":"Organization",name:"DeepSeek AI",description:"DeepSeek AI is a Chinese artificial intelligence company developing open-source large language models.",url:"https://deepseek.ai",foundingDate:"2023",knowsAbout:["Artificial Intelligence","Machine Learning","Large Language Models","Natural Language Processing"]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek AI â Open-Source Models & Free Chat"}),e.jsx("meta",{name:"description",content:"Explore DeepSeek AI's open-source models, free chat access, reasoning, coding and math strengths, plus comparisons with ChatGPT, Claude and Gemini."}),e.jsx("meta",{name:"keywords",content:"DeepSeek AI, open-source AI, language models, AI revolution, DeepSeek-V3, DeepSeek R1, free AI, AI coding"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-ai"}),e.jsx("meta",{property:"og:title",content:"DeepSeek AI - Open-Source Language Models"}),e.jsx("meta",{property:"og:description",content:"Explore DeepSeek AI's open-source language models. Free, cost-effective AI with advanced capabilities."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-ai"}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek AI - Open-Source Language Models"}),e.jsx("meta",{name:"twitter:description",content:"Explore DeepSeek AI's open-source language models. Free, cost-effective AI with advanced capabilities."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsx("div",{className:"min-h-screen pt-24 pb-12 px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"max-w-7xl mx-auto",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsxs("h1",{className:"text-4xl font-bold sm:text-5xl md:text-6xl",children:[e.jsx("span",{className:"block",children:"DeepSeek AI"}),e.jsx("span",{className:"block text-primary mt-2",children:"Democratizing Advanced AI Technology"})]}),e.jsx("p",{className:"mt-4 text-xl text-muted-foreground max-w-3xl mx-auto",children:"Pushing the boundaries of artificial intelligence with cost-effective, open-source language models and innovative solutions."}),e.jsxs("div",{className:"mt-8 flex flex-col sm:flex-row justify-center gap-4",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-primary-foreground bg-primary hover:bg-primary/90 transition-all shadow-lg",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5"}),"Add to Chrome - It's Free"]}),e.jsx(se,{to:"/what-is-deepseek-ai",className:"inline-flex items-center justify-center px-6 py-3 border-2 border-primary text-base font-medium rounded-full text-primary bg-background hover:bg-accent transition-all",children:"Learn More"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8 mb-16",children:[e.jsxs(ie,{className:"hover:shadow-lg transition-shadow",children:[e.jsxs(Ot,{children:[e.jsx(_s,{className:"h-8 w-8 text-primary mb-4"}),e.jsx(Ft,{children:"Advanced Language Models"}),e.jsx(bs,{children:"State-of-the-art natural language processing capabilities"})]}),e.jsx(me,{children:e.jsx("p",{className:"text-muted-foreground",children:"Our models understand context, generate human-like text, and handle complex language tasks with unprecedented accuracy at a fraction of the cost."})})]}),e.jsxs(ie,{className:"hover:shadow-lg transition-shadow",children:[e.jsxs(Ot,{children:[e.jsx(yo,{className:"h-8 w-8 text-primary mb-4"}),e.jsx(Ft,{children:"Cost-Efficient Computing"}),e.jsx(bs,{children:"Optimized architectures for maximum performance"})]}),e.jsx(me,{children:e.jsx("p",{className:"text-muted-foreground",children:"Built with innovative MoE architecture and Multi-Head Latent Attention to deliver state-of-the-art results at dramatically lower computing costs."})})]}),e.jsxs(ie,{className:"hover:shadow-lg transition-shadow",children:[e.jsxs(Ot,{children:[e.jsx(Lt,{className:"h-8 w-8 text-primary mb-4"}),e.jsx(Ft,{children:"Open-Source Advantage"}),e.jsx(bs,{children:"Transparent, accessible, and collaborative"})]}),e.jsx(me,{children:e.jsx("p",{className:"text-muted-foreground",children:"Our MIT-licensed models allow developers worldwide to adapt, improve, and build upon our technology, accelerating AI innovation."})})]})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"DeepSeek vs Leading AI Models"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{className:"w-[200px]",children:"Feature"}),e.jsx(qe,{className:"text-center",children:"DeepSeek"}),e.jsx(qe,{className:"text-center",children:"ChatGPT"}),e.jsx(qe,{className:"text-center",children:"Claude"}),e.jsx(qe,{className:"text-center",children:"Gemini"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Open Source"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Free Tier"}),e.jsx(U,{className:"text-center",children:"Generous"}),e.jsx(U,{className:"text-center",children:"Limited"}),e.jsx(U,{className:"text-center",children:"Limited"}),e.jsx(U,{className:"text-center",children:"Generous"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Local Deployment"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"API Cost"}),e.jsx(U,{className:"text-center",children:"Very Low"}),e.jsx(U,{className:"text-center",children:"High"}),e.jsx(U,{className:"text-center",children:"Medium"}),e.jsx(U,{className:"text-center",children:"Medium"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Coding"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Very Good"})]})]})]})}),e.jsxs("p",{className:"text-center text-sm text-muted-foreground mt-4",children:["Detailed comparisons: ",e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"text-primary hover:underline",children:"vs ChatGPT"})," | ",e.jsx(se,{to:"/deepseek-vs-claude",className:"text-primary hover:underline",children:"vs Claude"})," | ",e.jsx(se,{to:"/deepseek-vs-gemini",className:"text-primary hover:underline",children:"vs Gemini"})," | ",e.jsx(se,{to:"/deepseek-vs-perplexity",className:"text-primary hover:underline",children:"vs Perplexity"})]})]}),e.jsxs("div",{className:"prose prose-lg mx-auto mb-16 max-w-4xl",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Our Revolutionary Technology"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"DeepSeek AI leverages advanced neural architectures and innovative training methodologies to create powerful language models at a fraction of the cost of competitors. Our flagship DeepSeek-V3 model costs approximately US$6 million to train, compared to the US$100+ million spent by competitors like OpenAI on models like GPT-4."}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"We focus on developing AI solutions that are not only powerful but also practical, accessible, and open. Our technology can be integrated into various applications, from content generation to code completion, making advanced AI capabilities available to developers and businesses worldwide without breaking the bank."})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"DeepSeek Products"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:[e.jsxs(se,{to:"/deepseek-r1",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx(_s,{className:"h-8 w-8 text-primary mb-3"}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek R1"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Advanced reasoning model with chain-of-thought capabilities."})]}),e.jsxs(se,{to:"/deepseek-coder",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx(L1,{className:"h-8 w-8 text-primary mb-3"}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek Coder"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Specialized model for code generation and software development."})]}),e.jsxs(se,{to:"/deepseek-api",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx(_p,{className:"h-8 w-8 text-primary mb-3"}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek API"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Integrate DeepSeek into your applications with our powerful API."})]}),e.jsxs(se,{to:"/deepseek-chat",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx(Os,{className:"h-8 w-8 text-primary mb-3"}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek Chat"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Conversational AI for natural dialogue and assistance."})]})]})]}),e.jsxs("section",{className:"mb-16 max-w-3xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:t.map((r,a)=>e.jsxs(ss,{value:`item-${a}`,children:[e.jsx(rs,{className:"text-left",children:r.question}),e.jsx(as,{children:r.answer})]},a))})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Learn More"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[e.jsxs(se,{to:"/what-is-deepseek-ai",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"What is DeepSeek AI?"}),e.jsx("p",{className:"text-muted-foreground",children:"Complete guide to DeepSeek's technology and capabilities."})]}),e.jsxs(se,{to:"/is-deepseek-safe",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"Is DeepSeek Safe?"}),e.jsx("p",{className:"text-muted-foreground",children:"Security, privacy, and safety guide for DeepSeek AI."})]}),e.jsxs(se,{to:"/deepseek-github",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek GitHub"}),e.jsx("p",{className:"text-muted-foreground",children:"Access open-source models and contribute to development."})]})]})]}),e.jsxs("section",{className:"text-center bg-primary/5 rounded-2xl p-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"Start Using DeepSeek AI Today"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-8 max-w-2xl mx-auto",children:"Experience the power of open-source AI. Try DeepSeek for free via our Chrome extension or integrate via API."}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-primary-foreground bg-primary hover:bg-primary/90 transition-all shadow-lg",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5"}),"Add to Chrome - It's Free"]}),e.jsx(se,{to:"/deepseek-api",className:"inline-flex items-center justify-center px-6 py-3 border-2 border-primary text-base font-medium rounded-full text-primary bg-background hover:bg-accent transition-all",children:"Explore API"})]})]})]})})]})};var NN="Tabs",[DX,Ple]=nl(NN,[tb]),RL=tb(),[IX,SN]=DX(NN),OL=S.forwardRef((t,
2564n)=>{const{__scopeTabs:s,value:r,onValueChange:a,defaultValue:i,orientation:o="horizontal",dir:l,activationMode:c="automatic",...d}=t,h=lg(l),[p,m]=sl({prop:r,onChange:a,defaultProp:i});return e.jsx(IX,{scope:s,baseId:Cl(),value:p,onValueChange:m,orientation:o,dir:h,activationMode:c,children:e.jsx(ln.div,{dir:h,"data-orientation":o,...d,ref:n})})});OL.displayName=NN;var FL="TabsList",VL=S.forwardRef((t,n)=>{const{__scopeTabs:s,loop:r=!0,...a}=t,i=SN(FL,s),o=RL(s);return e.jsx(YT,{asChild:!0,...o,orientation:i.orientation,dir:i.dir,loop:r,children:e.jsx(ln.div,{role:"tablist","aria-orientation":i.orientation,...a,ref:n})})});VL.displayName=FL;var BL="TabsTrigger",zL=S.forwardRef((t,n)=>{const{__scopeTabs:s,value:r,disabled:a=!1,...i}=t,o=SN(BL,s),l=RL(s),c=HL(o.baseId,r),d=$L(o.baseId,r),h=r===o.value;return e.jsx(JT,{asChild:!0,...l,focusable:!a,active:h,children:e.jsx(ln.button,{type:"button",role:"tab","aria-selected":h,"aria-controls":d,"data-state":h?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:c,...i,ref:n,onMouseDown:vt(t.onMouseDown,p=>{!a&&p.button===0&&p.ctrlKey===!1?o.onValueChange(r):p.preventDefault()}),onKeyDown:vt(t.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&o.onValueChange(r)}),onFocus:vt(t.onFocus,()=>{const p=o.activationMode!=="manual";!h&&!a&&p&&o.onValueChange(r)})})})});zL.displayName=BL;var UL="TabsContent",qL=S.forwardRef((t,n)=>{const{__scopeTabs:s,value:r,forceMount:a,children:i,...o}=t,l=SN(UL,s),c=HL(l.baseId,r),d=$L(l.baseId,r),h=r===l.value,p=S.useRef(h);return S.useEffect(()=>{const m=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(m)},[]),e.jsx(Yi,{present:a||h,children:({present:m})=>e.jsx(ln.div,{"data-state":h?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":c,hidden:!m,id:d,tabIndex:0,...o,ref:n,style:{...t.style,animationDuration:p.current?"0s":void 0},children:m&&i})})});qL.displayName=UL;function HL(t,n){return`${t}-trigger-${n}`}function $L(t,n){return`${t}-content-${n}`}var CX=OL,WL=VL,GL=zL,KL=qL;const QL=CX,AN=S.forwardRef(({className:t,...n},s)=>e.jsx(WL,{ref:s,className:Ht("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",t),...n}));AN.displayName=WL.displayName;const Oc=S.forwardRef(({className:t,...n},s)=>e.jsx(GL,{ref:s,className:Ht("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",t),...n}));Oc.displayName=GL.displayName;const Fc=S.forwardRef(({className:t,...n},s)=>e.jsx(KL,{ref:s,className:Ht("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",t),...n}));Fc.displayName=KL.displayName;const _X=()=>{const t=[{label:"AI Tools",path:"/ai-chat"}],n=$t.models["v4-flash"],s=$t.models["v4-pro"],r=la.models["gpt-5.6-terra"],a=la.models["claude-sonnet-5"],[i,o]=S.useState([1]),[l,c]=S.useState([1]),d=i[0]*n.inputCacheMiss+l[0]*n.output,h=i[0]*r.input+l[0]*r.output,p=i[0]*a.input+l[0]*a.output,m=((h-d)/h*100).toFixed(0),u=[{question:"Is the DeepSeek API free to use?",answer:`The DeepSeek API is not free, but it is one of the cheapest frontier-class APIs available: deepseek-v4-flash costs ${gn(n.inputCacheMiss)} per 1M input tokens (cache miss) and ${gn(n.output)} per 1M output tokens, which is ${O2(r.input,n.inputCacheMiss)} cheaper on input than ${r.label}. Cache hits drop input to ${gn(n.inputCacheHit)} per 1M. New accounts typically receive trial credits before you pay anything.`},{question:"How do I get a DeepSeek API key?",answer:"Go to platform.deepseek.com, create an account or log in, navigate to 'API Keys' in your dashboard, click 'Create new API key', name it (for example 'production') and copy the generated key immediately â it will only be shown once."},{question:"Is the DeepSeek API compatible with OpenAI?",answer:"Yes. The DeepSeek API is a drop-in replacement for OpenAI's chat completions endpoint. You only need to change the base URL to https://api.deepseek.com and swap the API key â the entire request and response schema is identical, so existing Python, Node.js or LangChain code works without modification."},{question:"Which DeepSeek model names are valid in 2026?",answer:"Use deepseek-v4-flash for cheap, fast general work and deepseek-v4-pro for harder reasoning-heavy turns. The legacy aliases deepseek-chat and deepseek-reasoner were retired on 24 July 2026 â requests using them fail, so any integration still pinned to those strings must be migrated."},{question:"How do I migrate from OpenAI to DeepSeek?",answer:"In most projects the migration is a 2-line change: set base_url='https://api.deepseek.com' on your OpenAI client and use your DeepSeek API key. Change the model name to 'deepseek-v4-flash' (general) or 'deepseek-v4-pro' (reasoning). No other code
2564changes are required for chat, streaming or function calling."},{question:"What are the rate limits on the DeepSeek API?",answer:"DeepSeek does not enforce a hard rate limit by default â capacity is shared and throttling only kicks in during peak load. Enterprise accounts can request dedicated quotas. DeepSeek has announced a peak-hour surcharge, but the percentage and start date are not confirmed yet, so budget on the standard rates for now."},{question:"What is the difference between deepseek-v4-flash and deepseek-v4-pro?",answer:`deepseek-v4-flash (${gn(n.inputCacheMiss)} in / ${gn(n.output)} out per 1M) is optimised for general conversation, content generation, agents and tool use at low latency. deepseek-v4-pro (${gn(s.inputCacheMiss)} in / ${gn(s.output)} out per 1M) is the stronger reasoning tier for math, complex code and multi-step logic. Start on Flash and escalate only the turns that need Pro.`},{question:"Can I use the DeepSeek API for commercial projects?",answer:"Yes. The DeepSeek API is licensed for commercial use, including SaaS products, internal enterprise tools and customer-facing applications. Check DeepSeek's terms of service for prohibited use cases and your local regulations."},{question:"Does DeepSeek API support streaming and function calling?",answer:"Yes. The API supports server-sent event streaming (stream=true), JSON mode, function/tool calling and structured outputs â all using the exact same schema as the OpenAI Chat Completions API."}],y={"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://deepseek.ai/deepseek-api",url:"https://deepseek.ai/deepseek-api",name:"DeepSeek API 2026 â Pricing, Docs & OpenAI-Compatible Examples",description:"Complete DeepSeek API guide: pricing calculator, Python, Node.js, cURL and LangChain code examples, and a drop-in migration path from OpenAI.",inLanguage:"en",isPartOf:{"@type":"WebSite","@id":"https://deepseek.ai/#website",url:"https://deepseek.ai",name:"DeepSeek AI"},breadcrumb:{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai"},{"@type":"ListItem",position:2,name:"DeepSeek API",item:"https://deepseek.ai/deepseek-api"}]}},{"@type":"FAQPage",mainEntity:u.map(g=>({"@type":"Question",name:g.question,acceptedAnswer:{"@type":"Answer",text:g.answer}}))},{"@type":"HowTo",name:"How to make your first DeepSeek API call",step:[{"@type":"HowToStep",name:"Create account",text:"Sign up at platform.deepseek.com and verify your email."},{"@type":"HowToStep",name:"Generate API key",text:"Go to the API Keys section in your dashboard and create a new key."},{"@type":"HowToStep",name:"Make first request",text:"Use the Python, Node.js or cURL example below â change base_url to api.deepseek.com."}]},{"@type":"SoftwareApplication",name:"DeepSeek API",applicationCategory:"DeveloperApplication",operatingSystem:"Cross-platform",offers:{"@type":"Offer",price:"0.14",priceCurrency:"USD",description:"From $0.15 per 1M tokens"}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek API 2026 â Pricing, Python & Node.js Examples"}),e.jsx("meta",{name:"description",content:"DeepSeek API guide: from $0.15/1M tokens, OpenAI-compatible, 5-min setup. Python, Node.js, cURL & LangChain examples plus a free pricing calculator."}),e.jsx("meta",{name:"keywords",content:"deepseek api, deepseek api pricing, deepseek api key, deepseek api python, deepseek api nodejs, deepseek vs openai api, openai compatible api"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-api"}),e.jsx("meta",{property:"og:title",content:"DeepSeek API 2026 â Pricing, Docs & Code Examples"}),e.jsx("meta",{property:"og:description",content:"OpenAI-compatible AI API from $0.15/1M tokens. Drop-in migration, full code examples and a live pricing calculator."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-api"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2564),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(y)})]}),e.jsxs("main",{className:"min-h-screen bg-background",children:[e.jsx("section",{className:"relative py-20 lg:py-28 bg-gradient-to-br from-primary/5 via-background to-primary/10",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx(ur,{items:t,currentPage:"DeepSeek API"}),e.jsxs("div",{className:"text-center mt-8",children:[e.jsxs("div",{className:"inline-flex items-center px-4 py-2 rounded-full bg-primary/10 text-primary text-sm font-medium mb-6",children:[e.jsx(qr,{className:"w-4 h-4 mr-2"}),"Developer Documentation"]}),e.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-foreground mb-6",children:"DeepSeek API"}),e.jsxs("p",{className:"text-xl md:text-2xl text-muted-foreground max-w-3xl mx-auto mb-8",children:["The OpenAI-compatible AI API from ",e.jsx("strong",{className:"text-foreground",children:"$0.15 per 1M tokens"})," â far cheaper than GPT-5.6 or Claude Sonnet 5, with the same SDK."]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsxs("a",{href:"https://platform.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-6 py-3 rounded-lg bg-primary text-primary-foreground font-semibold hover:bg-primary/90 transition-colors",children:[e.jsx(B4,{className:"w-5 h-5 mr-2"})," Get an API Key ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]}),e.jsxs("a",{href:"https://api-docs.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-6 py-3 rounded-lg border border-border bg-background text-foreground font-semibold hover:bg-muted transition-colors",children:[e.jsx($r,{className:"w-5 h-5 mr-2"})," Official Docs ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]})]})]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-12",children:"Why developers pick the DeepSeek API"}),e.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:[{Icon:Lt,title:"Low latency",text:"High-throughput inference for real-time applications and streaming chat."},{Icon:rl,title:"Enterprise-grade",text:"TLS encryption, key rotation and SOC 2-aligned infrastructure."},{Icon:F1,title:"Scales to millions",text:"From prototype on a laptop to millions of requests per day, same endpoint."},{Icon:qr,title:"OpenAI-compatible",text:"Drop-in replacement â no SDK swap, no schema rewrite, no retraining."}].map(({Icon:g,title:w,text:b})=>e.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[e.jsx("div",{className:"w-12 h-12 rounded-lg bg-primary/10 flex items-center justify-center mb-4",children:e.jsx(g,{className:"w-6 h-6 text-primary"})}),e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:w}),e.jsx("p",{className:"text-muted-foreground",children:b})]},w))})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-10",children:[e.jsxs("div",{className:"inline-flex items-center px-3 py-1 rounded-full bg-primary/10 text-primary text-sm font-medium mb-4",children:[e.jsx($0,{className:"w-4 h-4 mr-2"})," Live Calculator"]}),e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-3",children:"DeepSeek API Pricing Calculator"}),e.jsx("p",{className:"text-muted-foreground",children:"Drag the sliders to see your monthly cost compared to OpenAI and Anthropic."})]}),e.jsxs("div",{className:"bg-card border border-border rounded-2xl p-6 md:p-10 space-y-8",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between mb-3",children:[e.jsx("label",{className:"text-sm font-medium text-foreground",children:"Input tokens per month"}),e.jsxs("span",{className:"text-sm font-semibold text-primary",children:[i[0],"M tokens"]})]}
2564),e.jsx(Rc,{value:i,onValueChange:o,min:.1,max:500,step:.1})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between mb-3",children:[e.jsx("label",{className:"text-sm font-medium text-foreground",children:"Output tokens per month"}),e.jsxs("span",{className:"text-sm font-semibold text-primary",children:[l[0],"M tokens"]})]}),e.jsx(Rc,{value:l,onValueChange:c,min:.1,max:500,step:.1})]}),e.jsxs("div",{className:"grid md:grid-cols-3 gap-4 pt-4 border-t border-border",children:[e.jsxs("div",{className:"p-4 rounded-lg bg-primary/10 border-2 border-primary",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"DeepSeek-V4-Flash"}),e.jsxs("div",{className:"text-2xl font-bold text-primary",children:["$",d.toFixed(2)]}),e.jsxs("div",{className:"text-xs text-primary mt-1",children:["Save ",m,"% vs OpenAI"]})]}),e.jsxs("div",{className:"p-4 rounded-lg bg-card border border-border",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:r.label}),e.jsxs("div",{className:"text-2xl font-bold text-foreground",children:["$",h.toFixed(2)]})]}),e.jsxs("div",{className:"p-4 rounded-lg bg-card border border-border",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:a.label}),e.jsxs("div",{className:"text-2xl font-bold text-foreground",children:["$",p.toFixed(2)]})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground text-center",children:["Estimates use published per-token rates (DeepSeek verified ",$t.lastVerified,", competitors ",la.lastVerified,"). Cache hits cut DeepSeek input cost by ~98%."]})]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-4",children:"DeepSeek API Pricing per Model"}),e.jsxs("p",{className:"text-muted-foreground text-center mb-12 max-w-2xl mx-auto",children:["All models share the same OpenAI-compatible endpoint. Pick one by setting the ",e.jsx("code",{className:"text-primary",children:"model"})," field."]}),e.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:[{name:"deepseek-v4-flash",tag:"General chat, agents & tools",input:gn(n.inputCacheMiss),output:gn(n.output),ctx:"128K",popular:!0,bullets:["Cheapest current tier",`Cache hit input ${gn(n.inputCacheHit)} / 1M`,"Best default for production chat"]},{name:"deepseek-v4-pro",tag:"Reasoning & complex code",input:gn(s.inputCacheMiss),output:gn(s.output),ctx:"128K",popular:!1,bullets:["Strongest reasoning tier",`Cache hit input ${gn(s.inputCacheHit)} / 1M`,"Use per-turn, not per-app"]},{name:"deepseek-chat / deepseek-reasoner",tag:"Retired 24 July 2026",input:"â",output:"â",ctx:"â",popular:!1,bullets:["Legacy aliases, no longer served","Migrate to the V4 strings above"]}].map(g=>e.jsxs("div",{className:`p-6 rounded-xl bg-card relative ${g.popular?"border-2 border-primary":"border border-border"}`,children:[g.popular&&e.jsx("div",{className:"absolute -top-3 left-1/2 -translate-x-1/2 px-3 py-1 bg-primary text-primary-foreground text-xs font-semibold rounded-full",children:"Most Popular"}),e.jsx("h3",{className:"text-xl font-bold text-foreground mb-2",children:g.name}),e.jsx("p",{className:"text-muted-foreground text-sm mb-4",children:g.tag}),e.jsxs("div",{className:"space-y-2 mb-6",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Input"}),e.jsxs("span",{className:"font-semibold text-foreground",children:[g.input," / 1M"]})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Output"}),e.jsxs("span",{className:"font-semibold text-foreground",children:[g.output," / 1M"]})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Context"}),e.jsxs("span",{className:"font-semibold text-foreground",children:[g.ctx," tokens"]})]})]}),e.jsx("ul",{className:"space-y-2",children:g.bullets.map(w=>e.jsxs("li",{className:"flex items-center text-sm text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2"})," ",w]},w))})]},g.name))}),e.jsxs("p",{className:"text-center text-sm text-muted-foreground mt-8",children:["* Cache hits get a 90% discount. Prices exclude VAT. See ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline",children:"full pricing page"}),"."]})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-4",children:"Qu
2564ick Start â your first API call"}),e.jsx("p",{className:"text-muted-foreground text-center mb-12 max-w-2xl mx-auto",children:"Three steps to a working request. Examples in Python, Node.js, cURL and LangChain below."}),e.jsx("div",{className:"grid md:grid-cols-3 gap-8 mb-12",children:[{n:1,title:"Create account",text:e.jsxs(e.Fragment,{children:["Register at ",e.jsx("a",{href:"https://platform.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"platform.deepseek.com"})]})},{n:2,title:"Generate API key",text:"Open the API Keys section and create a new key."},{n:3,title:"First request",text:"Copy a snippet below and replace YOUR_DEEPSEEK_API_KEY."}].map(g=>e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-primary text-primary-foreground flex items-center justify-center text-xl font-bold mx-auto mb-4",children:g.n}),e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:g.title}),e.jsx("p",{className:"text-muted-foreground",children:g.text})]},g.n))}),e.jsxs(QL,{defaultValue:"python",className:"w-full",children:[e.jsxs(AN,{className:"grid w-full grid-cols-4",children:[e.jsx(Oc,{value:"python",children:"Python"}),e.jsx(Oc,{value:"node",children:"Node.js"}),e.jsx(Oc,{value:"curl",children:"cURL"}),e.jsx(Oc,{value:"langchain",children:"LangChain"})]}),e.jsx(Fc,{value:"python",children:e.jsx("div",{className:"bg-gray-900 rounded-lg p-6 overflow-x-auto mt-4",children:e.jsx("pre",{className:"text-sm text-gray-100",children:e.jsx("code",{children:`from openai import OpenAI 2565 2566client = OpenAI( 2567 api_key="YOUR_DEEPSEEK_API_KEY", 2568 base_url="https://api.deepseek.com", 2569) 2570 2571response = client.chat.completions.create( 2572 model="deepseek-v4-flash", 2573 messages=[ 2574 {"role": "system", "content": "You are a helpful assistant."}, 2575 {"role": "user", "content": "Explain what an API is in one sentence."}, 2576 ], 2577) 2578 2579print(response.choices[0].message.content)`})})})}),e.jsx(Fc,{value:"node",children:e.jsx("div",{className:"bg-gray-900 rounded-lg p-6 overflow-x-auto mt-4",children:e.jsx("pre",{className:"text-sm text-gray-100",children:e.jsx("code",{children:`import OpenAI from "openai"; 2580 2581const client = new OpenAI({ 2582 apiKey: "YOUR_DEEPSEEK_API_KEY", 2583 baseURL: "https://api.deepseek.com", 2584}); 2585 2586const res = await client.chat.completions.create({ 2587 model: "deepseek-v4-flash", 2588 messages: [ 2589 { role: "system", content: "You are a helpful assistant." }, 2590 { role: "user", content: "Explain what an API is in one sentence." }, 2591 ], 2592}); 2593 2594console.log(res.choices[0].message.content);`})})})}),e.jsx(Fc,{value:"curl",children:e.jsx("div",{className:"bg-gray-900 rounded-lg p-6 overflow-x-auto mt-4",children:e.jsx("pre",{className:"text-sm text-gray-100",children:e.jsx("code",{children:`curl https://api.deepseek.com/chat/completions \\ 2595 -H "Content-Type: application/json" \\ 2596 -H "Authorization: Bearer YOUR_DEEPSEEK_API_KEY" \\ 2597 -d '{ 2598 "model": "deepseek-v4-flash", 2599 "messages": [ 2600 {"role": "system", "content": "You are a helpful assistant."}, 2601 {"role": "user", "content": "Explain what an API is in one sentence."} 2602 ] 2603 }'`})})})}),e.jsx(Fc,{value:"langchain",children:e.jsx("div",{className:"bg-gray-900 rounded-lg p-6 overflow-x-auto mt-4",children:e.jsx("pre",{className:"text-sm text-gray-100",children:e.jsx("code",{children:`from langchain_openai import ChatOpenAI 2604 2605llm = ChatOpenAI( 2606 model="deepseek-v4-flash", 2607 openai_api_key="YOUR_DEEPSEEK_API_KEY", 2608 openai_api_base="https://api.deepseek.com", 2609) 2610 2611print(llm.invoke("Explain what an API is in one sentence.").content)`})})})})]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-4",children:"DeepSeek API vs OpenAI vs Claude"}),e.jsxs("p",{className:"text-muted-foreground text-center mb-12 max-w-2xl mx-auto",children:["Per-token list pricing on each provider's mainstream chat model, verified ",$t.lastVerified,"."]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-border",children:[e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Feature"}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"DeepSeek"}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:r.label}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:a.label})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-b border-border",children:[e.jsx("td",{className:"py-4 px-6 text-muted-foreground",children:"Input price (per 1M)"}),e.jsx("td",{className:"py-4 px-6 text-primary font-semibold",children:gn(n.inputCacheMiss)}),e.jsx("td",{className:"py-4 px-6",children:gn(r.input)}),e.jsx("td",{className:"py-4 px-6",children:gn(a.input)})]}),e.jsxs("tr",{className:"border-b border-border",children:[e.jsx("td",{className:"py-4 px-6 text-muted-foreground",children:"Output price (per 1M)"}),e.jsx("td",{className:"py-4 px-6 text-primary font-semibold",children:gn(n.output)}),e.jsx("td",{className:"py-4 px-6",children:gn(r.output)}),e.jsx("td",{className:"py-4 px-6",children:gn(a.output)})]}),e.jsxs("tr",{className:"border-b border-border",children:[e.jsx("td",{className:"py-4 px-6 text-muted-foreground",children:"Context window"}),e.jsx("td",{className:"py-4 px-6",children:"128K"}),e.jsx("td",{className:"py-4 px-6",children:"128K"}),e.jsx("td",{className:"py-4 px-6",children:"200K"})]}),e.jsxs("tr",{className:"border-b border-border",children:[e.jsx("td",{className:"py-4 px-6 text-muted-foreground",children:"Reasoning tier"}),e.jsx("td",{className:"py-4 px-6",children:"deepseek-v4-pro"}),e.jsx("td",{className:"py-4 px-6",children:"GPT-5.6 Sol"}),e.jsx("td",{className:"py-4 px-6",children:"Claude Opus 5"})]}),e.jsxs("tr",{className:"border-b border-border",children:[e.jsx("td",{className:"py-4 px-6 text-muted-foreground",children:"OpenAI-compatible SDK"}),e.jsx("td",{className:"py-4 px-6",children:e.jsx(Jt,{className:"w-5 h-5 text-primary"})}),e.jsx("td",{className:"py-4 px-6",children:"native"}),e.jsx("td",{className:"py-4 px-6",children:"â"})]}),e.jsxs("tr",{className:"border-b border-border",children:[e.jsx("td",{className:"py-4 px-6 text-muted-foreground",children:"Cache discount"}),e.jsx("td",{className:"py-4 px-6 text-primary font-semibold",children:"90%"}),e.jsx("td",{className:"py-4 px-6",children:"50%"}),e.jsx("td",{className:"py-4 px-6",children:"90%"})]})]})]})}),e.jsx("p",{className:"text-center mt-8",children:e.jsxs(se,{to:"/deepseek-vs-chatgpt",className:"text-primary hover:underline inline-flex items-center",children:["See the full DeepSeek vs ChatGPT comparison ",e.jsx(wn,{className:"w-4 h-4 ml-1"})]})})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-12",children:"DeepSeek API â Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"space-y-4",children:u.map((g,w)=>e.jsxs(ss,{value:`item-${w}`,className:"bg-card border border-border rounded-lg px-6",children:[e.jsx(rs,{className:"text-foreground font-semibold text-left hover:no-underline",children:g.question}),e.jsx(as,{className:"text-muted-foreground",children:g.answer})]},w))})]})}),e.jsx("section",{className:"py-20 bg-primary",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-primary-foreground mb-6",children:"Ready to start with the DeepSeek API?"}
2611),e.jsx("p",{className:"text-xl text-primary-foreground/90 mb-8",children:"Create an account today and receive free trial credits to test every model."}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsxs("a",{href:"https://platform.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 rounded-lg bg-white text-primary font-semibold hover:bg-gray-100 transition-colors",children:[e.jsx(B4,{className:"w-5 h-5 mr-2"})," Get Free API Key ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]}),e.jsxs(se,{to:"/chat",className:"inline-flex items-center justify-center px-8 py-4 rounded-lg border-2 border-primary-foreground text-primary-foreground font-semibold hover:bg-primary-foreground/10 transition-colors",children:["Try DeepSeek Chat ",e.jsx(wn,{className:"w-5 h-5 ml-2"})]})]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsx(Nn,{})})})]})]})},Ax="DeepSeek vs ChatGPT 2026: Prices, Models & Real Specs",Dx="DeepSeek V4 vs ChatGPT compared on July 2026 prices and specs â V4-Flash from $0.15/M against GPT-5.6 Sol at $5/M. Every figure sourced, none estimated.",sw="https://deepseek.ai/deepseek-vs-chatgpt",TX=()=>{const t=$t.models["v4-flash"],n=$t.models["v4-pro"],s=la.models,r=[{label:t.label.replace("DeepSeek-","DeepSeek "),input:t.inputCacheMiss,cached:t.inputCacheHit,output:t.output,highlight:!0},{label:n.label.replace("DeepSeek-","DeepSeek "),input:n.inputCacheMiss,cached:n.inputCacheHit,output:n.output,highlight:!0},{label:s["gpt-5.6-sol"].label,input:s["gpt-5.6-sol"].input,cached:s["gpt-5.6-sol"].cachedInput,output:s["gpt-5.6-sol"].output,highlight:!1},{label:s["gpt-5.6-terra"].label,input:s["gpt-5.6-terra"].input,cached:s["gpt-5.6-terra"].cachedInput,output:s["gpt-5.6-terra"].output,highlight:!1},{label:s["gpt-5.6-luna"].label,input:s["gpt-5.6-luna"].input,cached:s["gpt-5.6-luna"].cachedInput,output:s["gpt-5.6-luna"].output,highlight:!1},{label:s["gpt-5.5"].label,input:s["gpt-5.5"].input,cached:s["gpt-5.5"].cachedInput,output:s["gpt-5.5"].output,highlight:!1},{label:s["gpt-5.4"].label,input:s["gpt-5.4"].input,cached:s["gpt-5.4"].cachedInput,output:s["gpt-5.4"].output,highlight:!1},{label:s["gpt-5.4-mini"].label,input:s["gpt-5.4-mini"].input,cached:s["gpt-5.4-mini"].cachedInput,output:s["gpt-5.4-mini"].output,highlight:!1},{label:s["gpt-5.4-nano"].label,input:s["gpt-5.4-nano"].input,cached:s["gpt-5.4-nano"].cachedInput,output:s["gpt-5.4-nano"].output,highlight:!1}],a=[{comparison:"GPT-5.4 vs V4-Flash",input:Ar(s["gpt-5.4"].input,t.inputCacheMiss),output:Ar(s["gpt-5.4"].output,t.output)},{comparison:"GPT-5.4 vs V4-Pro",input:Ar(s["gpt-5.4"].input,n.inputCacheMiss),output:Ar(s["gpt-5.4"].output,n.output)},{comparison:"GPT-5.6 Sol vs V4-Pro",input:Ar(s["gpt-5.6-sol"].input,n.inputCacheMiss),output:Ar(s["gpt-5.6-sol"].output,n.output)}],i=Ar(s["gpt-5.4"].input,n.inputCacheMiss),o=Ar(s["gpt-5.4"].output,t.output),l=[{question:"Is DeepSeek cheaper than ChatGPT?",answer:`On the API, substantially â between ${i} and ${o} depending on which models you compare and whether you are measuring input or output. On consumer subscriptions the comparison does not really apply: DeepSeek's chat is free, ChatGPT's paid tiers buy you capabilities DeepSeek does not offer at all.`},{question:"Can DeepSeek generate images?",answer:"No. Both V4 models are text-only. Claims that V4 is natively multimodal circulated before launch, but the models that shipped handle text input and text output. For images you need gpt-image-2 or another provider."},{question:"Is DeepSeek's context window really 1M tokens?",answer:"Yes, on both models, with 384K max output. OpenAI's GPT-5.6 family is 1.05M with 128K max output â but priced at roughly double above its long-context threshold, where DeepSeek charges one flat rate."},{question:"What happened to deepseek-chat and deepseek-reasoner?",answer:"Retired on 24 July 2026 at 15:59 UTC. Both mapped to deepseek-v4-flash â the first to its non-thinking mode, the second to its thinking mode. Migrating to V4-Pro instead, which looks like the natural successor, triples your bill."},{question:"Is DeepSeek open source?",answer:"The weights are published under the MIT licence, so you can self-host. OpenAI's models are API-only."}],c={"@context":"https://schema.org","@type":"FAQPage",mainEntity:l.map(h=>
2611({"@type":"Question",name:h.question,acceptedAnswer:{"@type":"Answer",text:h.answer}}))},d={"@context":"https://schema.org","@type":"WebPage",name:Ax,description:Dx,url:sw,inLanguage:"en",dateModified:la.lastVerified,isPartOf:{"@type":"WebSite",name:"deepseek.ai â independent DeepSeek AI guide",url:"https://deepseek.ai"},about:[{"@type":"Thing",name:"DeepSeek V4"},{"@type":"Thing",name:"ChatGPT"}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:Ax}),e.jsx("meta",{name:"description",content:Dx}),e.jsx("meta",{name:"robots",content:"index, follow, max-image-preview:large"}),e.jsx("link",{rel:"canonical",href:sw}),e.jsx("meta",{property:"og:title",content:Ax}),e.jsx("meta",{property:"og:description",content:Dx}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:sw}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:Ax}),e.jsx("meta",{name:"twitter:description",content:Dx}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(d)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(c)})]}),e.jsx("div",{className:"min-h-screen bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-16",children:[e.jsx(ur,{currentPage:"DeepSeek vs ChatGPT"}),e.jsx("main",{children:e.jsxs("article",{className:"mt-6",children:[e.jsxs("header",{className:"mb-10",children:[e.jsx("h1",{className:"text-4xl sm:text-5xl font-bold text-foreground mb-4 leading-tight",children:"DeepSeek vs ChatGPT: What Each One Actually Costs in 2026"}),e.jsx(il,{date:la.lastVerified})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"The short answer"}),e.jsxs("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:[e.jsx("p",{children:"DeepSeek is between 11Ã and 54Ã cheaper per token. ChatGPT has the broader product â image generation, voice, video, a consumer app people already use. Whether that gap matters depends entirely on whether you are buying an API or a subscription."}),e.jsxs("p",{children:["If you are building on an API and your workload is text, DeepSeek V4-Flash costs"," ",gn(t.inputCacheMiss)," per million input tokens against GPT-5.4's"," ",gn(s["gpt-5.4"].input),". That is not a discount, it is a different order of magnitude, and it is the entire reason this comparison exists."]}),e.jsx("p",{children:"If you want an assistant that generates images, holds a voice conversation, browses the web and runs code in a sandbox, DeepSeek does not compete. It ships two text models."}),e.jsx("p",{className:"text-sm border-l-2 border-primary/40 pl-4",children:"Last verified 25 July 2026 against DeepSeek's API documentation, OpenAI's developer pricing page and chatgpt.com/pricing. We re-check this page weekly and date every change."})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"What each company actually ships right now"}),e.jsx("h3",{className:"text-xl font-semibold text-foreground mt-6 mb-3",children:"DeepSeek"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Two models, both text-only, both released 24 April 2026:"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Model"}),e.jsx(qe,{children:"Total params"}),e.jsx(qe,{children:"Active per token"}),e.jsx(qe,{children:"Context"}),e.jsx(qe,{children:"Max output"}),e.jsx(qe,{children:"Concurrency"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"deepseek-v4-flash"}),e.jsx(U,{children:"284B"}),e.jsx(U,{children:"~13B"}),e.jsx(U,{children:"1M"}),e.jsx(U,{children:"384K"}),e.jsx(U,{children:"2,500"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"deepseek-v4-pro"}),e.jsx(U,{children:"1.6T"}),e.jsx(U,{children:"~49B"}),e.jsx(U,{children:"1M"}),e.jsx(U,{children:"384K"}),e.jsx(U,{children:"500"})]})]})]})}),e.jsxs("p",{className:"text-muted-foreground mt-4",children:["Mixture-of-experts, MIT licence, open weights. The legacy aliases deepseek-chat and deepseek-reasoner were retired on 24 July 2026 at 15:59 UTC â if your integration still calls them it is broken right now."," ",e.jsx(se,{to:"/blog/deepseek-chat-reasoner-retired-billing-impact",className:"text-primary hover:underline font-medium",children:"See the migration guide â"})]}),e.jsx("h3",{className:"text-xl font-semibold text-foreground mt-8 mb-3",children:"OpenAI"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Model"}),e.jsx(qe,{children:"Context"}),e.jsx(qe,{children:"Max output"})]})}),e.jsx(us,{children:["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna"].map(h=>e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:h}),e.jsx(U,{children:"1.05M"}),e.jsx(U,{children:"128K"})]},h))})]})}),e.jsx("p",{className:"text-muted-foreground mt-4",children:"All three support vision, function calling, web search, file search and computer use. Alongside them OpenAI ships gpt-image-2 for images, the gpt-realtime-2.1 family for audio, sora-2 for video and gpt-5.3-codex for c
2611oding."}),e.jsx("p",{className:"text-muted-foreground mt-4",children:"That breadth is the real difference. DeepSeek gives you text at a low price. OpenAI gives you a platform."})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"API pricing, side by side"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Per 1M tokens, standard tier, short context:"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Model"}),e.jsx(qe,{children:"Input"}),e.jsx(qe,{children:"Cached input"}),e.jsx(qe,{children:"Output"})]})}),e.jsx(us,{children:r.map(h=>e.jsxs(Le,{className:h.highlight?"bg-primary/5":void 0,children:[e.jsx(U,{className:"font-medium",children:h.label}),e.jsx(U,{children:gn(h.input)}),e.jsx(U,{children:h.cached===null?"â":gn(h.cached)}),e.jsx(U,{children:gn(h.output)})]},h.label))})]})}),e.jsx("p",{className:"text-muted-foreground mt-6",children:"Two things worth knowing that most comparisons miss."}),e.jsxs("p",{className:"text-muted-foreground mt-4",children:[e.jsx("strong",{className:"text-foreground",children:"OpenAI charges roughly double above a context threshold."})," ",'The pricing page splits every flagship model into "short context" and "long context" columns â GPT-5.6 Sol goes from ',gn(s["gpt-5.6-sol"].input),"/",gn(s["gpt-5.6-sol"].output)," to ",gn(s["gpt-5.6-sol"].longContext.input),"/",gn(s["gpt-5.6-sol"].longContext.output),". If you are working with long documents, the headline price is not the price you pay. DeepSeek charges one rate across the full 1M window."]}),e.jsxs("p",{className:"text-muted-foreground mt-4",children:[e.jsx("strong",{className:"text-foreground",children:"Cache-hit pricing is where the gap is widest."})," ","DeepSeek's cache-hit input is ",gn(t.inputCacheHit)," for Flash â"," ",Math.round(t.inputCacheHit/t.inputCacheMiss*100),"% of the cache-miss rate. OpenAI's cached input is"," ",Math.round(s["gpt-5.6-sol"].cachedInput/s["gpt-5.6-sol"].input*100),"% of standard. On a workload with heavy prompt reuse, the effective difference is far larger than the headline suggests."]}),e.jsx("h3",{className:"text-xl font-semibold text-foreground mt-8 mb-3",children:"The multiples, spelled out"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Comparison"}),e.jsx(qe,{children:"Input"}),e.jsx(qe,{children:"Output"})]})}),e.jsx(us,{children:a.map(h=>e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:h.comparison}),e.jsxs(U,{children:[h.input," more"]}),e.jsxs(U,{children:[h.output," more"]})]},h.comparison))})]})}),e.jsxs("p",{className:"text-muted-foreground mt-4",children:["Full per-token breakdown and a cost calculator on our"," ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline font-medium",children:"DeepSeek pricing page"}),", and the architecture detail on"," ",e.jsx(se,{to:"/deepseek-v4",className:"text-primary hover:underline font-medium",children:"DeepSeek V4 explained"}),"."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"Consumer plans"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"ChatGPT plan"}),e.jsx(qe,{children:"Price (US)"}),e.jsx(qe,{children:"Notes"})]})}),e.jsx(us,{children:AA.plans.map(h=>e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:h.name}),e.jsx(U,{children:h.price}),e.jsx(U,{className:"text-muted-foreground",children:h.notes})]},h.name))})]})}),e.jsx("p",{className:"text-muted-foreground mt-4",children:"DeepSeek's consumer side is chat.deepseek.com â free, but it requires an account."}),e.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:AA.footnote})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"Where each one genuinely wins"}),e.jsxs("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:[e.jsxs("p",{children:[e.jsx("strong",{className:"text-foreground",children:"Choose DeepSeek"})," when you are running text at volume, cost per token is the binding constraint, you want open weights you can self-host, or you need a 1M context window without a long-context surcharge."]}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-foreground",children:"Choose ChatGPT"})," when you need images, audio, video or browsing; when you want one vendor for the whole stack; when your team needs a polished consumer app; or when enterprise controls, SSO and data-residency guarantees are procurement requirements."]}),e.jsx("p",{children:"The honest framing: these are not competing for the same buyer. DeepSeek competes on price per token for text. OpenAI competes on being the default. Most teams that pick DeepSeek do so for a specific high-volume workload, not to replace ChatGPT."})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"Why this page has no benchmark table"}),e.jsxs("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:[e.jsx("p",{children:"Almost every DeepSeek-versus-ChatGPT comparison online carries a table of SWE-bench, MMLU and HumanEval scores. We checked those figures and most of them cannot be traced to the vendor that supposedly published them, or to any named leaderboard."}),e.jsx("p",{children:"We would rather tell you where to check than print a number we cannot stand behind:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[e.jsx("li",{children:"Artificial Analysis publishes dated, methodology-documented leaderboards. On GPQA Diamond it currently has GPT-5.6 Sol at 94.1% and GPT-5.5 (xhigh) at 93.5%."}),e.jsx("li",{children:"DeepSeek publishes its own comparison table on the V4-Pro model card. Note that it benchmarks against Opus-4.6 Max, GPT-5.4 xHigh and Gemini-3.1-Pro High â the models current at V4's April release, not today's."}),e.jsx("li",{children:"OpenAI publishes model-specific evaluations in its release posts."})]}),e.jsx("p",{children:"If a comparison page shows you a benchmark score with no link and no date, treat it as decoration."})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"FAQ"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:l.map((h,p)=>e.jsxs(ss,{value:`faq-${p}`,children:[e.jsx(rs,{className:"text-left font-medium",children:h.question}),e.jsxs(as,{className:"text-muted-foreground leading-relaxed",children:[h.answer,h.question.startsWith("What happened")&&e.jsxs(e.Fragment,{children:[" ",e.jsx(se,{to:"/blog/deepseek-chat-reasoner-retired-billing-impact",className:"text-primary hover:underline font-medium",children:"Full migration guide â"})]})]})]},p))})]}),e.jsx(Nn,{})]})})]})})]})},Ix="DeepSeek vs Claude 2026: Verified Prices, Models & Context",Cx="DeepSeek V4 vs Claude compared on July 2026 rates â V4-Flash at $0.14/M against Claude Sonnet 5 at $2/M. Both now at 1M context. Every figure sourced.",rw="https://deepseek.ai/deepseek-vs-claude",PX=()=>{const t=$t.models["v4-flash"],n=$t.models["v4-pro"],s=la.models,r=s["claude-sonnet-5"],a=s["claude-opus-5"],i=s["claude-fable-5"],o=s["claude-haiku-4.5"],l=[{label:"DeepSeek V4-Flash",input:t.inputCacheMiss,cached:t.inputCacheHit,output:t.output,highlight:!0},{label:"DeepSeek V4-Pro",input:n.inputCacheMiss,cached:n.inputCacheHit,output:n.output,highlight:!0},{label:o.label,input:o.input,cached:o.cachedInput,output:o.output,highlight:!1},{label:r.label,input:r.input,cached:r.cachedInput,output:r.output,highlight:!1},{label:a.label,input:a.input,cached:a.cachedInput,output:a.output,highlight:!1},{label:i.label,input:i.input,cached:i.cachedInput,output:i.output,highlight:!1}],c=[{comparison:"Sonnet 5 vs V4-Flash",input:Ar(r.input,t.inputCacheMiss),output:Ar(r.output,t.output)},{comparison:"Opus 5 vs V4-Pro",input:Ar(a.input,n.inputCacheMiss),output:Ar(a.output,n.output)},{comparison:"Fable 5 vs V4-Pro",input:Ar(i.input,n.inputCacheMiss),output:Ar(i.output,n.output)}],d=O2(r.input,t.inputCacheMiss),h=O2(r.output,t.output),p=r.priceChange,m=[{question:"Which has the bigger context window?",answer:"Neither â both are at 1M tokens. DeepSeek allows 384K max output against Claude's 128K, which matters for long generation. Claude Haiku 4.5 is the exception at 200K context."},{question:"Is DeepSeek 80â90% cheaper than Claude?",answer:`It is more than that. Against Claude Sonnet 5 at current rates, V4-Flash is about ${d} cheaper on input and ${h} cheaper on output. Note that Sonnet 5's introductory pricing ends 31 August 2026, after which the gap widens further.`},{question:"Can DeepSeek handle images?",answer:"No. Both V4 models are text-only. Every current Claude model accepts image input."},{question:"Does DeepSeek have a free API tier?",answer:"Not a documented one. DeepSeek's API documentation describes concurrency limits â 2,500 for V4-Flash and 500 for V4-Pro â but no free credits or free tier. The consumer chat at chat.deepseek.com is free with an account."},{question:"Is R1 still DeepSeek's reasoning model?",answer:"No. R1 is legacy. The current models are V4-Pro and V4-Flash, each with a thinking mode. The deepseek-reasoner alias was retired on 24 July 2026."}],u={"@context":"https://schema.org","@type":"FAQPage",mainEntity:m.map(g=>
2611({"@type":"Question",name:g.question,acceptedAnswer:{"@type":"Answer",text:g.answer}}))},y={"@context":"https://schema.org","@type":"WebPage",name:Ix,description:Cx,url:rw,inLanguage:"en",dateModified:la.lastVerified,isPartOf:{"@type":"WebSite",name:"deepseek.ai â independent DeepSeek AI guide",url:"https://deepseek.ai"},about:[{"@type":"Thing",name:"DeepSeek V4"},{"@type":"Thing",name:"Claude"}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:Ix}),e.jsx("meta",{name:"description",content:Cx}),e.jsx("meta",{name:"robots",content:"index, follow, max-image-preview:large"}),e.jsx("link",{rel:"canonical",href:rw}),e.jsx("meta",{property:"og:title",content:Ix}),e.jsx("meta",{property:"og:description",content:Cx}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:rw}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:Ix}),e.jsx("meta",{name:"twitter:description",content:Cx}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(y)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(u)})]}),e.jsx("div",{className:"min-h-screen bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-16",children:[e.jsx(ur,{currentPage:"DeepSeek vs Claude"}),e.jsx("main",{children:e.jsxs("article",{className:"mt-6",children:[e.jsxs("header",{className:"mb-10",children:[e.jsx("h1",{className:"text-4xl sm:text-5xl font-bold text-foreground mb-4 leading-tight",children:"DeepSeek vs Claude: The 2026 Price and Capability Gap"}),e.jsx(il,{date:la.lastVerified})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"The short answer"}),e.jsxs("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:[e.jsxs("p",{children:["DeepSeek V4-Flash costs ",gn(t.inputCacheMiss)," per million input tokens. Claude Sonnet 5 costs ",gn(r.input),". On output the gap widens to"," ",gn(t.output)," against ",gn(r.output)," â roughly ",h," ","cheaper."]}),e.jsx("p",{children:"But the context-window argument that every older comparison makes is dead. Both are at 1M tokens now. If you read somewhere that DeepSeek is limited to 128K and Claude to 200K, that page is describing 2025."}),e.jsx("p",{className:"text-sm border-l-2 border-primary/40 pl-4",children:"Last verified 25 July 2026 against DeepSeek's API documentation and Anthropic's model and pricing documentation. We re-check this page weekly."})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"Current models"}),e.jsx("h3",{className:"text-xl font-semibold text-foreground mt-6 mb-3",children:"DeepSeek"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Model"}),e.jsx(qe,{children:"Total params"}),e.jsx(qe,{children:"Active"}),e.jsx(qe,{children:"Context"}),e.jsx(qe,{children:"Max output"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"deepseek-v4-flash"}),e.jsx(U,{children:"284B"}),e.jsx(U,{children:"~13B"}),e.jsx(U,{children:"1M"}),e.jsx(U,{children:"384K"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"deepseek-v4-pro"}),e.jsx(U,{children:"1.6T"}),e.jsx(U,{children:"~49B"}),e.jsx(U,{children:"1M"}),e.jsx(U,{children:"384K"})]})]})]})}),e.jsxs("p",{className:"text-muted-foreground mt-4",children:["Text-only, MoE, MIT licence, open weights. Both offer thinking and non-thinking modes. The legacy deepseek-chat and deepseek-reasoner aliases were retired on 24 July 2026 â"," ",e.jsx(se,{to:"/blog/deepseek-chat-reasoner-retired-billing-impact",className:"text-primary hover:underline font-medium",children:"see the migration guide"}),". More on the architecture in"," ",e.jsx(se,{to:"/deepseek-v4",className:"text-primary hover:underline font-medium",children:"DeepSeek V4 explained"}),"."]}),e.jsx("h3",{className:"text-xl font-semibold text-foreground mt-8 mb-3",children:"Anthropic"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Model"}),e.jsx(qe,{children:"Context"}),e.jsx(qe,{children:"Max output"}),e.jsx(qe,{children:"Thinking"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:i.label}),e.jsx(U,{children:"1M"}),e.jsx(U,{children:"128K"}),e.jsx(U,{children:"Adaptive, always on"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:a.label}),e.jsx(U,{children:"1M"}),e.jsx(U,{children:"128K"}),e.jsx(U,{children:"Adaptive"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:r.label}),e.jsx(U,{children:"1M"}),e.jsx(U,{children:"128K"}),e.jsx(U,{children:"Adaptive"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:o.label}),e.jsx(U,{children:"200K"}),e.jsx(U,{children:"64K"}),e.jsx(U,{children:"Extended"})]})]})]})}),e.jsx("p",{className:"text-muted-foreground mt-4",children:"All current Claude models take text and image input and produce text output. That is the first real capability difference: Claude sees images, DeepSeek does not."})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"API pricing"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Per 1M tokens:"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Model"}),e.jsx(qe,{children:"Input"}),e.jsx(qe,{children:"Cache read"}),e.jsx(qe,{children:"Output"})]})}),e.jsx(us,{children:l.map(g=>e.jsxs(Le,{className:g.highlight?"bg-primary/5":void 0,children:[e.jsx(U,{className:"font-medium",children:g.label}),e.jsx(U,{children:gn(g.input)}),e.jsx(U,{children:g.cached===null?"â":gn(g.cached)}),e.jsx(U,{children:gn(g.output)})]},g.label))})]})}),e.jsxs("p",{className:"text-muted-foreground mt-6",children:["One thing to diarise: Claude Sonnet 5's price r
2611ises on 1 September 2026. The"," ",gn(r.input),"/",gn(r.output)," rate is introductory pricing running through 31 August; from 1 September the standard rate of ",gn(p.input)," input / ",gn(p.output)," output applies. Anthropic states this on its own pricing page. If you are modelling costs for Q4, use the September numbers."]}),e.jsx("h3",{className:"text-xl font-semibold text-foreground mt-8 mb-3",children:"The multiples"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Comparison"}),e.jsx(qe,{children:"Input"}),e.jsx(qe,{children:"Output"})]})}),e.jsx(us,{children:c.map(g=>e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:g.comparison}),e.jsxs(U,{children:[g.input," more"]}),e.jsxs(U,{children:[g.output," more"]})]},g.comparison))})]})}),e.jsxs("p",{className:"text-muted-foreground mt-4",children:["Put as a percentage, since that is how most comparisons phrase it: against Sonnet 5, DeepSeek V4-Flash is about ",d," cheaper on input and ",h," ",'cheaper on output. Comparisons claiming "80â90% cheaper" are understating it. Our'," ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline font-medium",children:"DeepSeek pricing page"})," ","has the full rate card and a cost calculator."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"Consumer plans"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Claude"}),e.jsx(qe,{children:"Price"})]})}),e.jsx(us,{children:zQ.plans.map(g=>e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:g.name}),e.jsx(U,{className:"text-muted-foreground",children:g.price})]},g.name))})]})}),e.jsx("p",{className:"text-muted-foreground mt-4",children:"Pro and above include Claude Code and Claude Cowork. DeepSeek's consumer chat is free with an account and has no paid tier."})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"Where each one wins"}),e.jsxs("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:[e.jsxs("p",{children:[e.jsx("strong",{className:"text-foreground",children:"DeepSeek"})," when cost per token dominates, when your workload is text at volume, when you want open weights you can run yourself, or when you need 1M context at a flat rate."]}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-foreground",children:"Claude"})," when you need image input, when you want adaptive thinking that decides its own reasoning depth, when you are doing agentic or coding work with Claude Code, or when your organisation needs the enterprise controls Anthropic ships."]}),e.jsx("p",{children:"The models are closer than the price gap suggests on plain text generation, and further apart than it suggests on anything agentic or visual."})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"What we do not claim"}),e.jsxs("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:[e.jsx("p",{children:"We do not publish a star rating, a benchmark table, or a language count for either model."}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-foreground",children:"On benchmarks:"})," the scores circulating for these models mostly cannot be traced to the vendor or to a named leaderboard. Artificial Analysis publishes dated, documented comparisons â use those. Anthropic publishes evaluations in its own release posts."]}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-foreground",children:"On languages:"}),` you will see "Claude supports 70+ languages" and "DeepSeek supports 50+" on comparison pages across the web. Neither company publishes a total. Anthropic's multilingual documentation benchmarks 15 languages and says Claude is capable in many more; DeepSeek publishes no count at all. Both numbers are invented.`]}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-foreground",children:"On speed:"})," we have not published response-time figures because we have no methodology we would defend."]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:"FAQ"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:m.map((g,w)=>e.jsxs(ss,{value:`faq-${w}`,children:[e.jsx(rs,{className:"text-left font-medium",children:g.question}),e.jsxs(as,{className:"text-muted-foreground leading-relaxed",children:[g.answer,g.question.startsWith("Is R1")&&e.jsxs(e.Fragment,{children:[" ",e.jsx(se,{to:"/blog/deepseek-chat-reasoner-retired-billing-impact",className:"text-primary hover:underline font-medium",children:"Full migration guide â"})]})]})]},w))})]}),e.jsx(Nn,{})]})})]})})]})},Zo=S.forwardRef(({source:t,eventName:n="outbound_internal_click",to:s,onClick:r,children:a,...i},o)=>{const l=c=>{try{const d=window.gtag;if(typeof d=="function"){const h=typeof s=="string"?s:"",p=typeof a=="str
2611ing"?a:(c.currentTarget.textContent||"").trim();d("event",n,{event_category:"engagement",source_page:t,destination:h,link_text:p.slice(0,100)})}}catch{}r==null||r(c)};return e.jsx(se,{ref:o,to:s,onClick:l,...i,children:a})});Zo.displayName="TrackedLink";const EX=H0("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function qs({className:t,variant:n,...s}){return e.jsx("div",{className:Ht(EX({variant:n}),t),...s})}const LX=()=>{const t="December 20, 2025",n=[{feature:"Free Tier",deepseek:"â Yes (Generous)",gemini:"â Yes (Good)",deepseekWins:!0},{feature:"Pricing (Paid)",deepseek:"~$2.76/M tokens",gemini:"$20/month Advanced",deepseekWins:!0},{feature:"Response Speed",deepseek:"ââââ",gemini:"âââââ",deepseekWins:!1},{feature:"Code Generation",deepseek:"âââââ",gemini:"ââââ",deepseekWins:!0},{feature:"Multimodal",deepseek:"Text + Code",gemini:"Text + Image + Video",deepseekWins:!1},{feature:"Context Window",deepseek:"128K tokens",gemini:"1M tokens (Pro)",deepseekWins:!1},{feature:"Reasoning (R1)",deepseek:"âââââ",gemini:"ââââ",deepseekWins:!0},{feature:"Google Integration",deepseek:"â No",gemini:"â Deep",deepseekWins:!1},{feature:"API Access",deepseek:"â Available",gemini:"â Available",deepseekWins:null},{feature:"Real-time Web",deepseek:"â Limited",gemini:"â Yes",deepseekWins:!1},{feature:"Image Generation",deepseek:"â No",gemini:"â Imagen",deepseekWins:!1},{feature:"Open Source",deepseek:"â Yes (weights)",gemini:"â No",deepseekWins:!0}],s=[{question:"Is DeepSeek better than Gemini?",answer:"It depends on your needs. DeepSeek excels at coding, math, and reasoning (R1). Gemini is better for multimodal tasks (images, video), Google integration, and real-time web access. DeepSeek is more affordable; Gemini is more versatile."},{question:"Which is better for coding: DeepSeek or Gemini?",answer:"DeepSeek generally outperforms Gemini for coding tasks. DeepSeek Coder was trained on 2T code tokens and R1 excels at debugging complex logic. Gemini is good but not specialized for code."},{question:"Can Gemini process images and videos?",answer:"Yes! Gemini 2.0 has excellent multimodal capabilities - it can analyze images, understand video content, and generate images with Imagen. DeepSeek is primarily text/code focused."},{question:"Which has a larger context window?",answer:"Gemini Pro has an industry-leading 1 million token context window, compared to DeepSeek's 128K. This makes Gemini significantly better for analyzing very large documents or codebases."},{question:"Does Gemini have real-time web access?",answer:"Yes, Gemini can access and search the web in real-time, providing up-to-date information. DeepSeek has limited real-time capabilities."},{question:"Which is more cost-effective?",answer:"DeepSeek is significantly cheaper. API pricing is about 80% lower than Gemini. For high-volume usage or cost-sensitive projects, DeepSeek offers much better value."},{question:"Is DeepSeek open source?",answer:"Yes, DeepSeek releases model weights for many models including DeepSeek-V3 and R1. Gemini is completely closed source, owned by Google."},{question:"Which integrates better with other tools?",answer:"Gemini has deep integration with Google Workspace (Docs, Sheets, Gmail), Android, and other Google services. DeepSeek has fewer integrations but offers more flexibility through open source."},{question:"Which has better reasoning capabilities?",answer:"DeepSeek R1 is specifically designed for advanced reasoning and often outperforms Gemini on complex logical problems. Gemini 2.0 has improved but R1 remains superior for pure reasoning."},{question:"Should I use both DeepSeek and Gemini?",answer:"Yes! Many users do. DeepSeek for coding and cost-sensitive tasks, Gemini for multimodal work, web research, and Google integrations. Both have free tiers to try."}],r=["Superior coding and debugging capabilities","Advanced reasoning with R1 model","Open source model weights available","Highly cost-effective API pricing","Generous free tier","Strong mathematical reasoning","Active developer community"],a=["No multimodal capabilities (images/video)","Smaller context window (128K vs 1M)","Limited real-time web access","No Google ecosystem integration","Fewer enterprise partnerships"],i=["Excellent multimodal (image, video, audio)","Massive 1M token context window","Real-time web search and access","Deep Google Worksp
2611ace integration","Image generation with Imagen","Fast response times (2.0 Flash)","Native Android/Chrome integration"],o=["Higher costs for heavy usage","Closed source - no model weights","Not as strong at pure coding tasks","Can be less accurate for complex math","Google account required"];return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek vs Gemini (2026) â Honest Comparison & Review"}),e.jsx("meta",{name:"description",content:"DeepSeek vs Google Gemini in 2026: features, multimodal, pricing and real-world tests. Independent fan-hub comparison to help you choose."}),e.jsx("meta",{name:"keywords",content:"DeepSeek vs Gemini, Gemini vs DeepSeek, AI comparison, best AI chatbot, DeepSeek review, Gemini alternative, Google Gemini DeepSeek 2025"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-vs-gemini"}),e.jsx("meta",{property:"og:title",content:"DeepSeek vs Gemini: Honest Comparison & Review (2025)"}),e.jsx("meta",{property:"og:description",content:"Independent comparison of DeepSeek vs Google Gemini based on 50+ real-world tests. Features, pricing, performance â find the best AI for your needs."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-vs-gemini"}),e.jsx("meta",{property:"og:site_name",content:"DeepSeek AI Guide"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"article:published_time",content:"2025-12-20T00:00:00Z"}),e.jsx("meta",{property:"article:modified_time",content:"2025-12-20T00:00:00Z"}),e.jsx("meta",{property:"article:section",content:"AI Comparison"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek vs Gemini: Honest Comparison & Review (2025)"}),e.jsx("meta",{name:"twitter:description",content:"Independent comparison of DeepSeek vs Google Gemini based on 50+ real-world tests. Find the best AI for your needs."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"robots",content:"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"}),e.jsx("meta",{name:"author",content:"DeepSeek Guide Community"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"Article",headline:"DeepSeek vs Gemini: Honest Comparison & Review (2025)",description:"Independent comparison of DeepSeek vs Google Gemini: features, performance, pricing, real-world tests. Unbiased guide to help you choose the best AI for your needs.",author:{"@type":"Organization",name:"DeepSeek Guide Community"},publisher:{"@type":"Organization",name:"DeepSeek AI Guide",logo:{"@type":"ImageObject",url:"https://deepseek.ai/favicon-ds.png"}},datePublished:"2025-12-20T00:00:00Z",dateModified:"2025-12-20T00:00:00Z",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/deepseek-vs-gemini"}})}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:s.map(l=>({"@type":"Question",name:l.question,acceptedAnswer:{"@type":"Answer",text:l.answer}}))})}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai/"},{"@type":"ListItem",position:2,name:"DeepSeek vs Gemini",item:"https://deepseek.ai/deepseek-vs-gemini"}]})})]}),e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx("div",{className:"bg-muted/60 border-b border-border",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3",children:e.jsxs("div",{className:"flex items-center justify-center gap-2 text-sm text-muted-foreground",children:[e.jsx(cz,{className:"h-4 w-4 flex-shrink-0"}),e.jsxs("span",{className:"text-center",children:[e.jsx("strong",{children:"Independent Comparison"})," ⢠We're a community site, not affiliated with DeepSeek or Google ⢠Fair comparison based on real testing"]})]})})}),e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pt-6",children:e.jsxs("nav",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(se,{to:"/",className:"hover:text-foreground transition-colors",children:"Home"}),e.jsx(Vr,{className:"h-4 w-4"}),e.jsx(se,{to:"/blog",className:"hover:text-foreground transition-colors",children:"Comparisons"}),e.jsx(Vr,{className:"h-4 w-4"}),e.jsx("span",{className:"text-foreground",children:"DeepSeek vs Gemini"})]})}),e.jsx("section",{className:"pt-12 pb-8 px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 mb-4",children:[e.jsxs(qs,{variant:"secondary",className:"bg-green-500/10 text-green-700 dark:text-green-400 border-green-500/20",children:[e.jsx(mh,{className:"h-3 w-3 mr-1"}),"Updated: ",t]}),e.jsx(qs,{variant:"secondary",children:"12 min read"})]}),e.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-foreground mb-6 tracking-tight",children:"DeepSeek vs Gemini: Which AI is Better in 2025?"}),e.jsx("p",{className:"text-xl text-muted-foreground mb-4",children:"Independent, honest comparison based on extensive testing"}),e.jsxs("p",{className:"text-lg text-muted-foreground max-w-3xl mx-auto mb-8",children:["We tested DeepSeek and Google's Gemini 2.0 across 50+ real-world tasks to help you choose the best AI assistant. New to DeepSeek? Start with our ",e.jsx(se,{to:"/what-is-deepseek-ai",className:"text-primary hover:underline",children:"complete DeepSeek guide"}),"."]}),e.jsx(ie,{className:"max-w-md mx-auto text-left",children:e.jsxs(me,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3 text-sm font-semibold",children:[e.jsx(bz,{className:"h-4 w-4"}),"Quick Navigation"]}),e.jsxs("nav",{className:"space-y-1.5 text-sm",children:[e.jsx("a",{href:"#comparison-table",className:"block text-muted-foreground hover:text-primary transition-colors",children:"1. Quick Comparison Table"}),e.jsx("a",{href:"#features",className:"block text-muted-foreground hover:text-primary transition-colors",children:"2. Feature Comparison"}),e.jsx("a",{href:"#pricing",className:"block text-muted-foreground hover:text-primary transition-colors",children:"3. Pricing Analysis"}),e.jsx("a",{href:"#pros-cons",className:"block text-muted-foreground hover:text-primary transition-colors",children:"4. Pros and Cons"}),e.jsx("a",{href:"#verdict",className:"block text-muted-foreground hover:text-primary transition-colors",children:"5. Which Should You Choose?"}),e.jsx("a",{href:"#faq",className:"block text-muted-foreground hover:text-primary transition-colors",children:"6. FAQ"})]})]})})]})}),e.jsx("section",{className:"py-8 px-4 sm:px-6 lg:px-8",children:e.jsx("div",{className:"max-w-5xl mx-auto",children:e.jsxs(ie,{className:"overflow-hidden border-2",children:[e.jsx(Ot,{className:"bg-muted/30 border-b",children:e.jsx(Ft,{className:"text-2xl text-center",children:"Qu
2611ick Verdict"})}),e.jsx(me,{className:"p-6 md:p-8",children:e.jsxs("div",{className:"grid md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"text-center p-6 rounded-xl bg-[#0066FF]/5 border border-[#0066FF]/20",children:[e.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-[#0066FF]/10 flex items-center justify-center",children:e.jsx("span",{className:"text-2xl font-bold text-[#0066FF]",children:"DS"})}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek"}),e.jsxs("div",{className:"flex justify-center gap-1 mb-4",children:[[1,2,3,4].map(l=>e.jsx(Cu,{className:"h-5 w-5 fill-yellow-400 text-yellow-400"},l)),e.jsx(Cu,{className:"h-5 w-5 text-muted-foreground"})]}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Overall: 4/5"}),e.jsxs("div",{className:"text-left space-y-2",children:[e.jsx("p",{className:"font-medium text-sm",children:"Best for:"}),e.jsxs("ul",{className:"space-y-1",children:[e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx(qr,{className:"h-4 w-4 text-[#0066FF]"}),"Coding & debugging"]}),e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx(_s,{className:"h-4 w-4 text-[#0066FF]"}),"Advanced reasoning (R1)"]}),e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx(Ai,{className:"h-4 w-4 text-[#0066FF]"}),"Cost-conscious users"]}),e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx($r,{className:"h-4 w-4 text-[#0066FF]"}),"Open source advocates"]})]})]}),e.jsx(Ke,{className:"mt-6 w-full bg-[#0066FF] hover:bg-[#0066FF]/90 min-h-[48px]",asChild:!0,children:e.jsxs("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener",children:["Try DeepSeek Free",e.jsx(Pn,{className:"ml-2 h-4 w-4"})]})})]}),e.jsxs("div",{className:"text-center p-6 rounded-xl bg-[#4285F4]/5 border border-[#4285F4]/20",children:[e.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-[#4285F4]/10 flex items-center justify-center",children:e.jsx("span",{className:"text-2xl font-bold text-[#4285F4]",children:"G"})}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"Gemini"}),e.jsxs("div",{className:"flex justify-center gap-1 mb-4",children:[[1,2,3,4].map(l=>e.jsx(Cu,{className:"h-5 w-5 fill-yellow-400 text-yellow-400"},l)),e.jsx(Cu,{className:"h-5 w-5 fill-yellow-400 text-yellow-400 opacity-50"})]}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Overall: 4.5/5"}),e.jsxs("div",{className:"text-left space-y-2",children:[e.jsx("p",{className:"font-medium text-sm",children:"Best for:"}),e.jsxs("ul",{className:"space-y-1",children:[e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx(gz,{className:"h-4 w-4 text-[#4285F4]"}),"Multimodal (images/video)"]}),e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx(M1,{className:"h-4 w-4 text-[#4285F4]"}),"Real-time web access"]}),e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx(_z,{className:"h-4 w-4 text-[#4285F4]"}),"Video understanding"]}),e.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[e.jsx(sT,{className:"h-4 w-4 text-[#4285F4]"}),"Google ecosystem"]})]})]}),e.jsx(Ke,{className:"mt-6 w-full bg-[#4285F4] hover:bg-[#4285F4]/90 min-h-[48px]",asChild:!0,children:e.jsxs("a",{href:"https://gemini.google.com",target:"_blank",rel:"noopener",children:["Try Gemini Free",e.jsx(Pn,{className:"ml-2 h-4 w-4"})]})})]})]})})]})})}),e.jsx("section",{id:"comparison-table",className:"py-12 px-4 sm:px-6 lg:px-8 bg-muted/30 scroll-mt-20",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Quick Comparison Overview"}),e.jsxs(ie,{children:[e.jsx("div",{className:"overflow-x-auto -mx-4 sm:mx-0",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{className:"bg-muted/50",children:[e.jsx(qe,{className:"font-semibold",children:"Feature"}),e.jsx(qe,{className:"font-semibold text-center",children:e.jsx("span",{className:"text-[#0066FF]",children:"DeepSeek"})}),e.jsx(qe,{className:"font-semibold text-center",children:e.jsx("span",{className:"text-[#4285F4]",children:"Gemini"})})]})}),e.jsx(us,{children:n.map((l,c)=>e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:l.feature}),e.jsx(U,{className:`text-center ${l.deepseekWins===!0?"bg-[#0066FF]/5 font-semibold":""}`,children:l.deepseek}),e.jsx(U,{className:`text-center ${l.deepseekWins===!1?"bg-[#4285F4]/5 font-semibold":""}`,children:l.gemini})]},c))})]})}),e.jsx("div",{className:"p-4 border-t bg-muted/30",children:e.jsx("p",{className:"text-sm text-muted-foreground text-center",children:"â ï¸ Ratings based on our testing in December 2025. Your experience may vary."})})]})]})}),e.jsx("section",{id:"pricing",className:"py-12 px-4 sm:px-6 lg:px-8 scroll-mt-20",children:e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Pricing Comparison"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6",children:[e.jsxs(ie,{className:"border-[#0066FF]/20",children:[e.jsx(Ot,{className:"bg-[#0066FF]/5",children:e.jsx(Ft,{className:"text-[#0066FF]",children:"DeepSeek Pricing"})}),e.jsxs(me,{className:"p-6 space-y-4",children:[e.jsxs("div",{className:"flex justify-between items-center py-2 border-b",children:[e.jsx("span",{children:"Free Tier"}),e.jsx("span",{className:"font-semibold text-green-600",children:"Generous limits"})]}),e.jsxs("div",{className:"flex justify-between items-center py-2 border-b",children:[e.jsx("span",{children:"API (Input)"}),e.jsx("span",{className:"font-semibold",children:"$0.14/M tokens"})]}),e.jsxs("div",{className:"flex justify-between items-center py-2 border-b",children:[e.jsx("span",{children:"API (Output)"}),e.jsx("span",{className:"font-semibold",children:"$2.76/M tokens"})]}),e.jsxs("div",{className:"flex justify-between items-center py-2",children:[e.jsx("span",{children:"Self-hosting"}),e.jsx("span",{className:"font-semibold text-green-600",children:"â Available"})]})]})]}),e.jsxs(ie,{className:"border-[#4285F4]/20",children:[e.jsx(Ot,{className:"bg-[#4285F4]/5",children:e.jsx(Ft,{className:"text-[#4285F4]",children:"Gemini Pricing"})}),e.jsxs(me,{className:"p-6 space-y-4",children:[e.jsxs("div",{className:"flex justify-between items-center py-2 border-b",children:[e.jsx("span",{children:"Free Tier"}),e.jsx("span",{className:"font-semibold",children:"Good limits"})]}),e.jsxs("div",{className:"flex justify-between items-center py-2 border-b",children:[e.jsx("span",{children:"Advanced Plan"}),e.jsx("span",{className:"font-semibold",children:"$20/month"})]}),e.jsxs("div",{className:"flex justify-between items-center py-2 border-b",children:[e.jsx("span",{children:"API (Pro)"}),e.jsx("span",{className:"font-semibold",children:"$1.25-5/M tokens"})]}),e.jsxs("div",{className:"flex justify-between items-center py-2",children:[e.jsx("span",{children:"Self-hosting"}),e.jsx("span",{className:"font-semibold text-red-600",children:"â Not available"})]})]})]})]}),e.jsx("div",{className:"mt-8 p-4 bg-muted/50 rounded-lg",children:e.jsxs("p",{className:"text-center text-muted-foreground",children:[e.jsx("strong",{children:"Bottom line:"}
2611)," DeepSeek is approximately ",e.jsx("span",{className:"text-[#0066FF] font-semibold",children:"50-80% cheaper"})," than Gemini for API usage, plus offers self-hosting options."]})})]})}),e.jsx("section",{id:"pros-cons",className:"py-12 px-4 sm:px-6 lg:px-8 bg-muted/30 scroll-mt-20",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Pros and Cons"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-8",children:[e.jsxs(ie,{children:[e.jsx(Ot,{className:"bg-[#0066FF]/5",children:e.jsx(Ft,{className:"text-[#0066FF]",children:"DeepSeek"})}),e.jsxs(me,{className:"p-6",children:[e.jsxs("div",{className:"mb-6",children:[e.jsxs("h4",{className:"font-semibold text-green-600 mb-3 flex items-center gap-2",children:[e.jsx(m2,{className:"h-4 w-4"})," Pros"]}),e.jsx("ul",{className:"space-y-2",children:r.map((l,c)=>e.jsxs("li",{className:"flex items-start gap-2 text-sm",children:[e.jsx(Jt,{className:"h-4 w-4 text-green-500 mt-0.5 flex-shrink-0"}),l]},c))})]}),e.jsxs("div",{children:[e.jsxs("h4",{className:"font-semibold text-red-600 mb-3 flex items-center gap-2",children:[e.jsx(p2,{className:"h-4 w-4"})," Cons"]}),e.jsx("ul",{className:"space-y-2",children:a.map((l,c)=>e.jsxs("li",{className:"flex items-start gap-2 text-sm",children:[e.jsx(gh,{className:"h-4 w-4 text-red-500 mt-0.5 flex-shrink-0"}),l]},c))})]})]})]}),e.jsxs(ie,{children:[e.jsx(Ot,{className:"bg-[#4285F4]/5",children:e.jsx(Ft,{className:"text-[#4285F4]",children:"Gemini"})}),e.jsxs(me,{className:"p-6",children:[e.jsxs("div",{className:"mb-6",children:[e.jsxs("h4",{className:"font-semibold text-green-600 mb-3 flex items-center gap-2",children:[e.jsx(m2,{className:"h-4 w-4"})," Pros"]}),e.jsx("ul",{className:"space-y-2",children:i.map((l,c)=>e.jsxs("li",{className:"flex items-start gap-2 text-sm",children:[e.jsx(Jt,{className:"h-4 w-4 text-green-500 mt-0.5 flex-shrink-0"}),l]},c))})]}),e.jsxs("div",{children:[e.jsxs("h4",{className:"font-semibold text-red-600 mb-3 flex items-center gap-2",children:[e.jsx(p2,{className:"h-4 w-4"})," Cons"]}),e.jsx("ul",{className:"space-y-2",children:o.map((l,c)=>e.jsxs("li",{className:"flex items-start gap-2 text-sm",children:[e.jsx(gh,{className:"h-4 w-4 text-red-500 mt-0.5 flex-shrink-0"}),l]},c))})]})]})]})]})]})}),e.jsx("section",{id:"verdict",className:"py-12 px-4 sm:px-6 lg:px-8 scroll-mt-20",children:e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Which Should You Choose?"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6",children:[e.jsxs(ie,{className:"p-6 border-[#0066FF]/20",children:[e.jsx("h3",{className:"text-xl font-semibold text-[#0066FF] mb-4",children:"Choose DeepSeek if you:"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(wn,{className:"h-4 w-4 text-[#0066FF] mt-1 flex-shrink-0"}),"Need strong coding and debugging assistance"]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(wn,{className:"h-4 w-4 text-[#0066FF] mt-1 flex-shrink-0"}),"Want advanced reasoning for math/logic (R1)"]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(wn,{className:"h-4 w-4 text-[#0066FF] mt-1 flex-shrink-0"}),"Are cost-conscious or need high-volume API usage"]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(wn,{className:"h-4 w-4 text-[#0066FF] mt-1 flex-shrink-0"}),"Want open source models to self-host or fine-tune"]})]})]}),e.jsxs(ie,{className:"p-6 border-[#4285F4]/20",children:[e.jsx("h3",{className:"text-xl font-semibold text-[#4285F4] mb-4",children:"Choose Gemini if you:"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(wn,{className:"h-4 w-4 text-[#4285F4] mt-1 flex-shrink-0"}),"Need to analyze images, video, or audio"]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(wn,{className:"h-4 w-4 text-[#4285F4] mt-1 flex-shrink-0"}),"Want real-time web search and information"]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(wn,{className:"h-4 w-4 text-[#4285F4] mt-1 flex-shrink-0"}
2611),"Use Google Workspace (Docs, Sheets, Gmail)"]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(wn,{className:"h-4 w-4 text-[#4285F4] mt-1 flex-shrink-0"}),"Need the largest context window (1M tokens)"]})]})]})]})]})}),e.jsx("section",{id:"faq",className:"py-12 px-4 sm:px-6 lg:px-8 bg-muted/30 scroll-mt-20",children:e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:s.map((l,c)=>e.jsxs(ss,{value:`item-${c}`,children:[e.jsx(rs,{className:"text-left",children:l.question}),e.jsx(as,{className:"text-muted-foreground",children:l.answer})]},c))})]})}),e.jsx("section",{className:"py-12 px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-2xl font-bold text-center mb-8",children:"Related Comparisons"}),e.jsxs("div",{className:"grid sm:grid-cols-2 gap-4",children:[e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"group",children:e.jsx(ie,{className:"p-4 hover:border-primary transition-colors",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-[#10A37F]/10 flex items-center justify-center",children:e.jsx("span",{className:"font-bold text-[#10A37F]",children:"G"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold group-hover:text-primary transition-colors",children:"DeepSeek vs ChatGPT"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Compare with OpenAI's flagship"})]}),e.jsx(Vr,{className:"h-5 w-5 ml-auto text-muted-foreground group-hover:text-primary transition-colors"})]})})}),e.jsx(se,{to:"/deepseek-vs-claude",className:"group",children:e.jsx(ie,{className:"p-4 hover:border-primary transition-colors",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-[#D97706]/10 flex items-center justify-center",children:e.jsx("span",{className:"font-bold text-[#D97706]",children:"C"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold group-hover:text-primary transition-colors",children:"DeepSeek vs Claude"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Compare with Anthropic's AI"})]}),e.jsx(Vr,{className:"h-5 w-5 ml-auto text-muted-foreground group-hover:text-primary transition-colors"})]})})}),e.jsx(se,{to:"/deepseek-vs-stepfun",className:"group",children:e.jsx(ie,{className:"p-4 hover:border-primary transition-colors",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-[#A855F7]/10 flex items-center justify-center",children:e.jsx("span",{className:"font-bold text-[#A855F7]",children:"S"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold group-hover:text-primary transition-colors",children:"DeepSeek vs Stepfun"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Reasoning vs multimodal"})]}),e.jsx(Vr,{className:"h-5 w-5 ml-auto text-muted-foreground group-hover:text-primary transition-colors"})]})})}),e.jsx(se,{to:"/deepseek-r1",className:"group",children:e.jsx(ie,{className:"p-4 hover:border-primary transition-colors",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-[#0066FF]/10 flex items-center justify-center",children:e.jsx("span",{className:"font-bold text-[#0066FF]",children:"R1"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold group-hover:text-primary transition-colors",children:"DeepSeek R1"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Learn about the reasoning model"})]}),e.jsx(Vr,{className:"h-5 w-5 ml-auto text-muted-foreground group-hover:text-primary transition-colors"})]})})}),e.jsx(se,{to:"/what-is-deepseek-ai",className:"group",children:e.jsx(ie,{className:"p-4 hover:border-primary transition-colors",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-primary/10 flex items-center justify-center",children:e.jsx($r,{className:"h-5 w-5 text-primary"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold group-hover:text-primary transition-colors",children:"What is DeepSeek AI?"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Complete beginner'
2611s guide"})]}),e.jsx(Vr,{className:"h-5 w-5 ml-auto text-muted-foreground group-hover:text-primary transition-colors"})]})})})]})]})}),e.jsxs("section",{className:"mt-12 mb-12 p-6 rounded-xl bg-muted/40 border text-center",children:[e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Want to go deeper?"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"See what DeepSeek actually costs and how to integrate it."}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[e.jsx(Zo,{to:"/pricing",source:"deepseek-vs-gemini",className:"inline-flex items-center px-5 py-2.5 text-sm font-medium rounded-full bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:"See DeepSeek pricing â"}),e.jsx(Zo,{to:"/docs",source:"deepseek-vs-gemini",className:"inline-flex items-center px-5 py-2.5 text-sm font-medium rounded-full border-2 border-primary text-primary bg-background hover:bg-accent transition-colors",children:"Read the API docs â"})]})]}),e.jsx(cn,{})]})]})},MX=()=>{const t=[{question:"What is the main difference between DeepSeek and Perplexity?",answer:"DeepSeek is an open-source AI model focused on reasoning, coding, and general-purpose AI tasks. Perplexity is an AI-powered search engine that combines LLMs with real-time web search to provide cited, up-to-date answers. DeepSeek excels at deep reasoning, while Perplexity excels at research and finding current information."},{question:"Which is better for research: DeepSeek or Perplexity?",answer:"Perplexity is better for research requiring current information and sources. It searches the web in real-time and provides citations. DeepSeek is better for analytical reasoning and deep thinking about concepts, but doesn't have built-in web search capabilities."},{question:"Is DeepSeek or Perplexity better for coding?",answer:"DeepSeek is significantly better for coding tasks. DeepSeek Coder and DeepSeek R1 are specifically optimized for code generation, debugging, and software development. Perplexity can help find coding solutions online but isn't designed as a coding assistant."},{question:"Can I use DeepSeek and Perplexity together?",answer:"Yes, they complement each other well. Use Perplexity for research and finding current information with sources, then use DeepSeek for deep analysis, reasoning, and implementation tasks like coding."},{question:"Which is more cost-effective: DeepSeek or Perplexity?",answer:"DeepSeek is more cost-effective, especially since it's open-source and can run locally for free. DeepSeek's API is also very affordable. Perplexity offers a free tier but Pro features require a $20/month subscription."},{question:"Does Perplexity use DeepSeek models?",answer:"Yes, Perplexity offers DeepSeek R1 as one of its available models. Perplexity Pro users can access DeepSeek R1 for reasoning tasks, combining DeepSeek's reasoning with Perplexity's search capabilities."}],n={"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(r=>({"@type":"Question",name:r.question,acceptedAnswer:{"@type":"Answer",text:r.answer}}))},s={"@context":"https://schema.org","@type":"Article",headline:"DeepSeek vs Perplexity: Complete AI Comparison 2025",description:"Comprehensive comparison of DeepSeek and Perplexity AI. Compare features, pricing, use cases, and capabilities.",author:{"@type":"Organization",name:"DeepSeek.ai"},publisher:{"@type":"Organization",name:"DeepSeek.ai"},datePublished:"2025-01-01",dateModified:"2025-12-20"};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek vs Perplexity (2026) â Reasoning vs AI Search"}),e.jsx("meta",{name:"description",content:"DeepSeek vs Perplexity in 2026: reasoning & coding power vs AI search with citations. Honest comparison of features, pricing and best use cases."}),e.jsx("meta",{name:"keywords",content:"DeepSeek vs Perplexity, Perplexity vs DeepSeek, AI search comparison, DeepSeek Perplexity, AI comparison 2026"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-vs-perplexity"}),e.jsx("meta",{property:"og:title",content:"DeepSeek vs Perplexity (2026) â Reasoning vs AI Search"}),e.jsx("meta",{property:"og:description",content:"DeepSeek vs Perplexity in 2026: full comparison of step-by-step reasoning vs cited AI search, accuracy, pricing, free tiers and the best tool for research, coding and chat."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-vs-perplexity"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2611),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek vs Perplexity (2026) â Reasoning vs AI Search"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek vs Perplexity in 2026: reasoning vs cited search, accuracy, pricing and the best tool for research, coding and chat."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsxs("main",{className:"min-h-screen pt-24 pb-12 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto",children:[e.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mb-4",children:"DeepSeek vs Perplexity"}),e.jsx("p",{className:"text-xl text-muted-foreground",children:"AI reasoning model vs AI search engine. Two different approaches to AI assistance â understand when to use each."})]}),e.jsx("section",{className:"mb-16",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"p-8 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(_s,{className:"h-10 w-10 text-primary mr-3"}),e.jsx("h2",{className:"text-2xl font-bold",children:"DeepSeek"})]}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Open-source AI model specializing in deep reasoning, mathematics, and code generation. Runs locally or via API."}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Advanced reasoning & chain-of-thought"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Excellent code generation"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Open-source & local deployment"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Very cost-effective API"]})]})]}),e.jsxs("div",{className:"p-8 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(Pf,{className:"h-10 w-10 text-blue-500 mr-3"}),e.jsx("h2",{className:"text-2xl font-bold",children:"Perplexity"})]}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"AI-powered search engine that provides answers with real-time web search and s
2611ource citations."}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Real-time web search"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Source citations included"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Great for research"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Multiple model options"]})]})]})]})}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Feature Comparison"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{className:"w-[200px]",children:"Feature"}),e.jsx(qe,{className:"text-center",children:"DeepSeek"}),e.jsx(qe,{className:"text-center",children:"Perplexity"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Primary Purpose"}),e.jsx(U,{className:"text-center",children:"Reasoning & Coding"}),e.jsx(U,{className:"text-center",children:"AI Search & Research"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Web Search"}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Source Citations"}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Open Source"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Local Deployment"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Math & Reasoning"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Good (uses LLMs)"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Code Generation"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Basic"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Real-time Info"}),e.jsx(U,{className:"text-center",children:"Training cutoff"}),e.jsx(U,{className:"text-center",children:"Live web access"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Free Tier"}),e.jsx(U,{className:"text-center",children:"Generous"}),e.jsx(U,{className:"text-center",children:"Limited"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Pro Pricing"}),e.jsx(U,{className:"text-center",children:"Pay-per-use API"}),e.jsx(U,{className:"text-center",children:"$20/month"})]})]})]})})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"When to Use Each"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("h3",{className:"text-xl font-semibold mb-4 flex items-center",children:[e.jsx(_s,{className:"h-6 w-6 text-primary mr-2"}),"Choose DeepSeek When..."]}),e.jsxs("ul",{className:"space-y-3 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Writing or debugging code"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}
2611),"Solving complex math problems"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Deep analysis and reasoning tasks"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Privacy-sensitive applications"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Cost-sensitive high-volume usage"]})]})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("h3",{className:"text-xl font-semibold mb-4 flex items-center",children:[e.jsx(Pf,{className:"h-6 w-6 text-blue-500 mr-2"}),"Choose Perplexity When..."]}),e.jsxs("ul",{className:"space-y-3 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-blue-500 mr-2 mt-0.5 flex-shrink-0"}),"Researching current events or news"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-blue-500 mr-2 mt-0.5 flex-shrink-0"}),"Need sources and citations"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-blue-500 mr-2 mt-0.5 flex-shrink-0"}),"Fact-checking information"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-blue-500 mr-2 mt-0.5 flex-shrink-0"}),"Exploring topics you don't know about"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-blue-500 mr-2 mt-0.5 flex-shrink-0"}),"Academic research with sources"]})]})]})]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Pricing Comparison"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(Ai,{className:"h-6 w-6 text-green-500 mr-2"}),e.jsx("h3",{className:"text-xl font-semibold",children:"DeepSeek Pricing"})]}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsx("li",{children:"⢠Free tier with generous limits"}),e.jsx("li",{children:"⢠API: ~$0.14/million input tokens"}),e.jsx("li",{children:"⢠~$0.28/million output tokens"}),e.jsx("li",{children:"⢠Free local deployment option"})]})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(Ai,{className:"h-6 w-6 text-blue-500 mr-2"}),e.jsx("h3",{className:"text-xl font-semibold",children:"Perplexity Pricing"})]}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsx("li",{children:"⢠Free tier with daily limits"}),e.jsx("li",{children:"⢠Pro: $20/month"}),e.jsx("li",{children:"⢠Pro includes unlimited searches"}),e.jsx("li",{children:"⢠Access to multiple AI models"})]})]})]})]}),e.jsxs("section",{className:"mb-16 max-w-3xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:t.map((r,a)=>e.jsxs(ss,{value:`item-${a}`,children:[e.jsx(rs,{className:"text-left",children:r.question}),e.jsx(as,{children:r.answer})]},a))})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"More AI Comparisons"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:[e.jsxs(se,{to:"/deepseek-vs-chatgpt",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs ChatGPT"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with OpenAI's flagship model."})]}),e.jsxs(se,{to:"/deepseek-vs-claude",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs Claude"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with Anthropic's Claude."})]}),e.jsxs(se,{to:"/deepseek-vs-gemini",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs Gemini"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with Google's Gemini."})]}),e.jsxs(se,{to:"/deepseek-vs-stepfun",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs Stepfun"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with Stepfun's Step-3.5 Flash multimodal lab."})]})]})]}),e.jsxs("section",{className:"text-center bg-primary/5 rounded-2xl p-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"Try DeepSeek Today"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-8 max-w-2xl mx-auto",children:"Experience DeepSeek's powerful reasoning capabilities. Free to use via Chrome extension or API."}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-primary-foreground bg-primary hover:bg-primary/90 transition-all shadow-lg",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5","aria-hidden":"true"}),"Add to Chrome - It's Free"]}),e.jsx(se,{to:"/deepseek-r1",className:"inline-flex items-center justify-center px-6 py-3 border-2 border-primary text-base font-medium rounded-full text-primary bg-background hover:bg-accent transition-all",children:"Learn About DeepSeek R1"})]})]}),e.jsxs("section",{className:"mt-12 mb-12 p-6 rounded-xl bg-muted/40 border text-center",children:[e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Want to go deeper?"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"See what DeepSeek actually costs and how to integrate it."}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[e.jsx(Zo,{to:"/pricing",source:"deepseek-vs-perplexity",className:"inline-flex items-center px-5 py-2.5 text-sm font-medium rounded-full bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:"See DeepSeek pricing â"}),e.jsx(Zo,{to:"/docs",source:"deepseek-vs-perplexity",className:"inline-flex items-center px-5 py-2.5 text-sm font-medium rounded-full border-2 border-primary text-primary bg-background hover:bg-accent transition-colors",children:"Read the API docs â"})]})]})]})]})},RX=()=>{const t=[{question:"What is the main difference between DeepSeek and Llama?",answer:"DeepSeek R1 is optimized for advanced reasoning and chain-of-thought capabilities, while Llama 4 (Meta's latest model) focuses on multimodal capabilities and efficie
2611nt performance across diverse tasks. Both are open-source, but DeepSeek excels in reasoning while Llama is more versatile for general applications."},{question:"Which is better for coding: DeepSeek or Llama 4?",answer:"DeepSeek is generally better for coding tasks, especially complex problem-solving and debugging. DeepSeek Coder and R1 are specifically optimized for code generation. Llama 4 is capable at coding but doesn't specialize in it."},{question:"Is DeepSeek or Llama 4 more cost-effective?",answer:"Both are highly cost-effective since they're open-source and can run locally. DeepSeek's API pricing is slightly lower, but both offer excellent value compared to proprietary models like GPT-4 or Claude."},{question:"Can I run DeepSeek and Llama locally?",answer:"Yes, both models are open-source and can run locally using tools like Ollama, vLLM, or llama.cpp. Smaller versions of both models can run on consumer hardware with 16GB+ VRAM."},{question:"Which model is better for reasoning tasks?",answer:"DeepSeek R1 is superior for reasoning tasks. It's specifically designed for chain-of-thought reasoning and achieves state-of-the-art results on math and logic benchmarks. Llama 4 is good at reasoning but not as specialized."},{question:"Does Llama 4 support multimodal inputs?",answer:"Yes, Llama 4 supports multimodal inputs including images and video. DeepSeek also has multimodal capabilities with DeepSeek-VL, but Llama 4's native multimodal support is more integrated."}],n={"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(r=>({"@type":"Question",name:r.question,acceptedAnswer:{"@type":"Answer",text:r.answer}}))},s={"@context":"https://schema.org","@type":"Article",headline:"DeepSeek vs Llama 4: Complete Open-Source AI Comparison 2025",description:"Comprehensive comparison of DeepSeek R1 and Meta's Llama 4. Compare features, performance, pricing, and use cases.",author:{"@type":"Organization",name:"DeepSeek.ai"},publisher:{"@type":"Organization",name:"DeepSeek.ai"},datePublished:"2025-01-01",dateModified:"2025-12-21"};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek vs Llama 4 (2026) â Open-Source AI Comparison"}),e.jsx("meta",{name:"description",content:"DeepSeek vs Llama 4 in 2026: reasoning, coding, multimodal, pricing and self-hosting. Honest side-by-side comparison to pick the best open-source AI."}),e.jsx("meta",{name:"keywords",content:"DeepSeek vs Llama, Llama 4 vs DeepSeek, open-source AI comparison, DeepSeek Llama, AI comparison 2026, Meta Llama"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-vs-llama"}),e.jsx("meta",{property:"og:title",content:"DeepSeek vs Llama 4 (2026) â Open-Source AI Showdown"}),e.jsx("meta",{property:"og:description",content:"DeepSeek vs Llama 4 in 2026: full open-source AI comparison covering reasoning vs multimodal, benchmark scores, pricing, self-hosting cost and the best model for each use case."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-vs-llama"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek vs Llama 4 (2026) â Open-Source AI Showdown"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek vs Llama 4 in 2026: reasoning vs multimodal, benchmarks, pricing, self-hosting and the best fit per use case."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsxs("main",{className:"min-h-screen pt-24 pb-12 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto",children:[e.jsx(ur,{items:[{label:"Compare",path:"/deepseek-vs-chatgpt"}],currentPage:"DeepSeek vs Llama"}),e.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mb-4",children:"DeepSeek vs Llama 4"}),e.jsx("p",{className:"text-xl text-muted-foreground",children:"Two open-source AI giants compared. DeepSeek's reasoning prowess vs Meta's multimodal versatility."})]}),e.jsx("section",{className:"mb-16",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"p-8 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(_s,{className:"h-10 w-10 text-primary mr-3"}),e.jsx("h2",{className:"text-2xl font-bold",children:"DeepSeek R1"})]}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Chinese open-source model optimized for deep reasoning, mathematics, and code generation with chain-of-thought capabilities."}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Superior reasoning & chain-of-thought"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Best-in-class code generation"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"MIT license - fully open"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Extremely cost-effective API"]})]})]}),e.jsxs("div",{className:"p-8 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(yo,{className:"h-10 w-10 text-blue-500 mr-3"}),e.jsx("h2",{className:"text-2xl font-bold",children:"Llama 4"})]}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Meta's latest open-source model with native multimodal support, efficient architecture, and broad capabilities."}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Native multimodal (image/video)"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Versatile for many tasks"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Strong community & ecosystem"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Wide hardware compatibility"]})]})]})]})}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Feature Comparison"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{className:"w-[200px]",children:"Feature"}),e.jsx(qe,{className:"text-center",children:"DeepSeek R1"}),e.jsx(qe,{className:"text-center",children:"Llama 4"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Developer"}),e.jsx(U,{className:"text-center",children:"DeepSeek (China)"}),e.jsx(U,{className:"text-center",children:"Meta (USA)"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Primary Strength"}),e.jsx(U,{className:"text-center",children:"Reasoning & Coding"}),e.jsx(U,{className:"text-center",children:"Multimodal & Versatility"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Open Source"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"License"}),e.jsx(U,{className:"text-center",children:"MIT"}),e.jsx(U,{className:"text-center",children:"Llama License"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Multimodal Support"}),e.jsx(U,{className:"text-center",children:"Via DeepSeek-VL"}),e.jsx(U,{className:"text-center",children:"Native"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Math & Reasoning"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Good"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Code Generation"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Good"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Local Deployment"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"API Pricing"}),e.jsx(U,{className:"text-center",children:"Very Low"}),e.jsx(U,{className:"text-center",children:"Low (varies by provider)"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Context Window"}),e.jsx(U,{className:"text-center",children:"128K tokens"}),e.jsx(U,{className:"text-center",children:"128K tokens"})]})]})]})})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"When to Use Each"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("h3",{className:"text-xl font-semibold mb-4 flex items-center",children:[e.jsx(_s,{className:"h-6 w-6 text-primary mr-2"}),"Choose DeepSeek When..."]}),e.jsxs("ul",{className:"space-y-3 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Complex coding and debugging tasks"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Advanced mathematical reasoning"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}
2611),"Step-by-step problem solving"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Need visible reasoning process"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Maximum cost efficiency"]})]})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("h3",{className:"text-xl font-semibold mb-4 flex items-center",children:[e.jsx(yo,{className:"h-6 w-6 text-blue-500 mr-2"}),"Choose Llama 4 When..."]}),e.jsxs("ul",{className:"space-y-3 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-blue-500 mr-2 mt-0.5 flex-shrink-0"}),"Processing images or videos"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-blue-500 mr-2 mt-0.5 flex-shrink-0"}),"General-purpose applications"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-blue-500 mr-2 mt-0.5 flex-shrink-0"}),"Need broad ecosystem support"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-blue-500 mr-2 mt-0.5 flex-shrink-0"}),"Content creation & creative tasks"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-blue-500 mr-2 mt-0.5 flex-shrink-0"}),"Prefer Meta's licensing terms"]})]})]})]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Pricing Comparison"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(Ai,{className:"h-6 w-6 text-green-500 mr-2"}),e.jsx("h3",{className:"text-xl font-semibold",children:"DeepSeek Pricing"})]}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsx("li",{children:"⢠Free tier available"}),e.jsx("li",{children:"⢠API: ~$0.14/million input tokens"}),e.jsx("li",{children:"⢠~$0.28/million output tokens"}),e.jsx("li",{children:"⢠Free local deployment"})]})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(Ai,{className:"h-6 w-6 text-blue-500 mr-2"}),e.jsx("h3",{className:"text-xl font-semibold",children:"Llama 4 Pricing"})]}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsx("li",{children:"⢠Free to download & use"}),e.jsx("li",{children:"⢠API via providers (varies)"}),e.jsx("li",{children:"⢠~$0.20-0.50/million tokens"}),e.jsx("li",{children:"⢠Free local deployment"})]})]})]})]}),e.jsxs("section",{className:"mb-16 max-w-3xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:t.map((r,a)=>e.jsxs(ss,{value:`item-${a}`,children:[e.jsx(rs,{className:"text-left",children:r.question}),e.jsx(as,{children:r.answer})]},a))})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"More AI Comparisons"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:[e.jsxs(se,{to:"/deepseek-vs-chatgpt",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs ChatGPT"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with OpenAI's flagship model."})]}),e.jsxs(se,{to:"/deepseek-vs-claude",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs Claude"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with Anthropic's Claude."})]}),e.jsxs(se,{to:"/deepseek-vs-mistral",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs Mistral"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with Mistral AI's models."})]}),e.jsxs(se,{to:"/deepseek-vs-stepfun",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs Stepfun"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with Stepfun's Step-3.5 Flash multimodal lab."})]})]})]}),e.jsxs("section",{className:"text-center",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Try DeepSeek AI Today"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Experience the power of advanced AI reasoning for free."}),e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center px-8 py-4 text-lg font-medium rounded-full text-white bg-primary hover:bg-primary/90 transition-all shadow-lg",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5"}),"Add to Chrome - It's Free"]})]}),e.jsxs("section",{className:"mt-12 mb-12 p-6 rounded-xl bg-muted/40 border text-center",children:[e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Want to go deeper?"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"See what DeepSeek actually costs and how to integrate it."}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[e.jsx(Zo,{to:"/pricing",source:"deepseek-vs-llama",className:"inline-flex items-center px-5 py-2.5 text-sm font-medium rounded-full bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:"See DeepSeek pricing â"}),e.jsx(Zo,{to:"/docs",source:"deepseek-vs-llama",className:"inline-flex items-center px-5 py-2.5 text-sm font-medium rounded-full border-2 border-primary text-primary bg-background hover:bg-accent transition-colors",children:"Read the API docs â"})]})]})]})]})},OX=()=>{const t=[{question:"What is the main difference between DeepSeek and Mistral?",answer:"DeepSeek R1 is optimized for advanced reasoning and chain-of-thought capabilities, excelling in math and coding. Mistral focuses on efficie
2611ncy and speed, offering models that balance performance with lower computational requirements. Both are open-source but target different use cases."},{question:"Which is better for coding: DeepSeek or Mistral?",answer:"DeepSeek is generally superior for coding tasks, especially DeepSeek Coder and R1. Mistral Codestral is competitive but DeepSeek's reasoning capabilities give it an edge for complex debugging and problem-solving."},{question:"Is DeepSeek or Mistral more cost-effective?",answer:"Both are highly cost-effective. DeepSeek's API is slightly cheaper, but Mistral's efficient models require less compute for local deployment. For API usage, DeepSeek wins on price; for local deployment, Mistral's smaller models may be more practical."},{question:"Can I run DeepSeek and Mistral locally?",answer:"Yes, both are open-source. Mistral's smaller models (7B, 8x7B) are easier to run on consumer hardware. DeepSeek's distilled models also work well locally, but full R1 requires significant resources."},{question:"Which model is faster: DeepSeek or Mistral?",answer:"Mistral models are generally faster due to their efficient architecture. DeepSeek R1's reasoning process takes longer but produces more thorough results. For quick responses, Mistral wins; for complex problems, DeepSeek is worth the wait."},{question:"Where are DeepSeek and Mistral based?",answer:"DeepSeek is a Chinese company based in Hangzhou. Mistral AI is a French company based in Paris. Both offer alternatives to US-based AI companies and are committed to open-source development."}],n={"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(r=>({"@type":"Question",name:r.question,acceptedAnswer:{"@type":"Answer",text:r.answer}}))},s={"@context":"https://schema.org","@type":"Article",headline:"DeepSeek vs Mistral: European vs Chinese Open-Source AI Comparison 2025",description:"Comprehensive comparison of DeepSeek and Mistral AI. Compare features, performance, pricing, and use cases.",author:{"@type":"Organization",name:"DeepSeek.ai"},publisher:{"@type":"Organization",name:"DeepSeek.ai"},datePublished:"2025-01-01",dateModified:"2025-12-21"};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek vs Mistral (2025): Open-Source AI Comparison"}),e.jsx("meta",{name:"description",content:"DeepSeek vs Mistral comparison. DeepSeek excels at reasoning and coding. Mistral leads in efficiency and speed. Compare these open-source AI alternatives."}),e.jsx("meta",{name:"keywords",content:"DeepSeek vs Mistral, Mistral vs DeepSeek, open-source AI comparison, European AI, Chinese AI, AI comparison 2025"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-vs-mistral"}),e.jsx("meta",{property:"og:title",content:"DeepSeek vs Mistral (2026) â Open-Source AI Comparison"}),e.jsx("meta",{property:"og:description",content:"DeepSeek vs Mistral in 2026: full open-source AI comparison across reasoning, efficiency, multilingual support, pricing, self-hosting cost and the best model for each use case."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-vs-mistral"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek vs Mistral (2026) â Open-Source AI Comparison"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek vs Mistral in 2026: reasoning vs efficiency, multilingual, pricing, self-hosting and the best fit per use case."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsxs("main",{className:"min-h-screen pt-24 pb-12 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto",children:[e.jsx(ur,{items:[{label:"Compare",path:"/deepseek-vs-chatgpt"}],currentPage:"DeepSeek vs Mistral"}),e.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mb-4",children:"DeepSeek vs Mistral"}),e.jsx("p",{className:"text-xl text-muted-foreground",children:"Chinese reasoning powerhouse vs French efficie
2611ncy champion. Two open-source alternatives to Big Tech AI."})]}),e.jsx("section",{className:"mb-16",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"p-8 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(_s,{className:"h-10 w-10 text-primary mr-3"}),e.jsx("h2",{className:"text-2xl font-bold",children:"DeepSeek"})]}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Chinese open-source model specializing in deep reasoning, mathematics, and code generation with visible chain-of-thought."}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Superior reasoning & chain-of-thought"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Best-in-class code generation"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"MIT license - fully open"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Lowest API pricing"]})]})]}),e.jsxs("div",{className:"p-8 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(Zc,{className:"h-10 w-10 text-orange-500 mr-3"}),e.jsx("h2",{className:"text-2xl font-bold",children:"Mistral"})]}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"French open-source models known for efficiency, speed, and excellent performance-to-size ratio."}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Fast inference speed"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Efficient architecture (MoE)"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Runs on consumer hardware"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Strong multilingual support"]})]})]})]})}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Feature Comparison"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{className:"w-[200px]",children:"Feature"}),e.jsx(qe,{className:"text-center",children:"DeepSeek"}),e.jsx(qe,{className:"text-center",children:"Mistral"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Headquarters"}),e.jsx(U,{className:"text-center",children:"Hangzhou, China"}),e.jsx(U,{className:"text-center",children:"Paris, France"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Primary Strength"}),e.jsx(U,{className:"text-center",children:"Reasoning & Coding"}),e.jsx(U,{className:"text-center",children:"Efficiency & Speed"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Open Source"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"License"}),e.jsx(U,{className:"text-center",children:"MIT"}),e.jsx(U,{className:"text-center",children:"Apache 2.0"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Chain-of-Thought"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Math & Reasoning"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Good"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Code Generation"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Good (Codestral)"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Inference Speed"}),e.jsx(U,{className:"text-center",children:"Moderate"}),e.jsx(U,{className:"text-center",children:"Fast"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"API Pricing"}),e.jsx(U,{className:"text-center",children:"$0.14-0.28/M tokens"}),e.jsx(U,{className:"text-center",children:"$0.20-1.00/M tokens"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Flagship Model"}),e.jsx(U,{className:"text-center",children:"DeepSeek R1"}),e.jsx(U,{className:"text-center",children:"Mistral Large"})]})]})]})})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"When to Use Each"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("h3",{className:"text-xl font-semibold mb-4 flex items-center",children:[e.jsx(_s,{className:"h-6 w-6 text-primary mr-2"}),"Choose DeepSeek When..."]}),e.jsxs("ul",{className:"space-y-3 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Complex coding and debugging tasks"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Mathematical problem solving"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Need visible reasoning steps"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Cost is the primary concern"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary mr-2 mt-0.5 flex-shrink-0"}),"Quality over speed"]})]})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("h3",{className:"text-xl font-semibold mb-4 flex items-center",children:[e.jsx(Zc,{className:"h-6 w-6 text-orange-500 mr-2"}),"Choose Mistral When..."]}),e.jsxs("ul",{className:"space-y-3 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-orange-500 mr-2 mt-0.5 flex-shrink-0"}
2611),"Speed is critical"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-orange-500 mr-2 mt-0.5 flex-shrink-0"}),"Running on limited hardware"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-orange-500 mr-2 mt-0.5 flex-shrink-0"}),"Multilingual applications"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-orange-500 mr-2 mt-0.5 flex-shrink-0"}),"EU data residency required"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(Lt,{className:"h-5 w-5 text-orange-500 mr-2 mt-0.5 flex-shrink-0"}),"General-purpose chat applications"]})]})]})]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Pricing Comparison"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(Ai,{className:"h-6 w-6 text-green-500 mr-2"}),e.jsx("h3",{className:"text-xl font-semibold",children:"DeepSeek Pricing"})]}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsx("li",{children:"⢠Free tier available"}),e.jsx("li",{children:"⢠R1: ~$0.14/million input tokens"}),e.jsx("li",{children:"⢠~$0.28/million output tokens"}),e.jsx("li",{children:"⢠Free local deployment"})]})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(Ai,{className:"h-6 w-6 text-orange-500 mr-2"}),e.jsx("h3",{className:"text-xl font-semibold",children:"Mistral Pricing"})]}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsx("li",{children:"⢠Free tier available"}),e.jsx("li",{children:"⢠Large: ~$2/million input tokens"}),e.jsx("li",{children:"⢠Small: ~$0.20/million tokens"}),e.jsx("li",{children:"⢠Free local deployment"})]})]})]})]}),e.jsxs("section",{className:"mb-16 max-w-3xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:t.map((r,a)=>e.jsxs(ss,{value:`item-${a}`,children:[e.jsx(rs,{className:"text-left",children:r.question}),e.jsx(as,{children:r.answer})]},a))})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"More AI Comparisons"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:[e.jsxs(se,{to:"/deepseek-vs-chatgpt",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs ChatGPT"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with OpenAI's flagship model."})]}),e.jsxs(se,{to:"/deepseek-vs-claude",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs Claude"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with Anthropic's Claude."})]}),e.jsxs(se,{to:"/deepseek-vs-llama",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs Llama"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with Meta's open-source model."})]}),e.jsxs(se,{to:"/deepseek-vs-stepfun",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs Stepfun"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with Stepfun's Step-3.5 Flash multimodal lab."})]})]})]}),e.jsxs("section",{className:"text-center",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Try DeepSeek AI Today"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Experience the power of advanced AI reasoning for free."}),e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center px-8 py-4 text-lg font-medium rounded-full text-white bg-primary hover:bg-primary/90 transition-all shadow-lg",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5"}),"Add to Chrome - It's Free"]})]}),e.jsxs("section",{className:"mt-12 mb-12 p-6 rounded-xl bg-muted/40 border text-center",children:[e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Want to go deeper?"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"See what DeepSeek actually costs and how to integrate it."}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[e.jsx(Zo,{to:"/pricing",source:"deepseek-vs-mistral",className:"inline-flex items-center px-5 py-2.5 text-sm font-medium rounded-full bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:"See DeepSeek pricing â"}),e.jsx(Zo,{to:"/docs",source:"deepseek-vs-mistral",className:"inline-flex items-center px-5 py-2.5 text-sm font-medium rounded-full border-2 border-primary text-primary bg-background hover:bg-accent transition-colors",children:"Read the API docs â"})]})]})]})]})},FX=()=>{const t=[{question:"What is Stepfun AI?",answer:"Stepfun (é¶è·æè¾°, Jieyue Xingchen) is a Shanghai-based Chinese AI lab founded in 2023. It builds the Step family of foundation models, including the current flagship Step-3.5 Flash (a compact MoE that NVIDIA hosts on build.nvidia.com), the earlier Step-2 trillion-parameter MoE, plus Step-Video-T2V and Step-Audio. Stepfun positions itself as a full-stack multimodal lab, with strong focus on video, speech and image generation alongside text."},{question:"How does DeepSeek compare to Stepfun for reasoning and coding?",answer:"DeepSeek leads clearly on text reasoning, math and coding. DeepSeek R1, V3.1 and V4 are purpose-built for chain-of-thought and rank at the top of open benchmarks like MATH, AIME and SWE-Bench. Stepfun's Step-3.5 Flash is a capable compact LLM that punches above its weight, but its public results still trail DeepSeek on reasoning-heavy tasks. If you primarily need a thinker or a coder, DeepSeek is the safer pick."},{question:"Is Stepfun better than DeepSeek for video and multimodal?",answer:"Yes, in its core strength. Stepfun's Step-Video and
2611Step-Audio models are among the strongest open Chinese multimodal stacks, with high-quality text-to-video generation and real-time speech. DeepSeek is text-first and only recently expanded into multimodal (DeepSeek-VL, OCR). For text-to-video or voice-native apps, Stepfun is currently ahead; for everything else, DeepSeek wins."},{question:"Is Stepfun open-source like DeepSeek?",answer:"Only partially. DeepSeek releases its flagship models (R1, V3, V4) under MIT or permissive licenses with full weights on Hugging Face. Stepfun has open-sourced some smaller models (Step-Video-T2V, Step-Audio) but keeps its flagship Step-2 closed and API-only. If full open-weights matter to you, DeepSeek is the more open of the two."},{question:"Which is cheaper: DeepSeek API or Stepfun API?",answer:"DeepSeek is meaningfully cheaper. DeepSeek V4 sits around $0.15 per million input tokens and $0.60 per million output, among the lowest in the industry. Stepfun's Step-3.5 Flash and Step-2 APIs are priced higher (closer to mid-tier GPT-4 class models in China) and the cheapest tier still costs more than DeepSeek's flagship. For high-volume text workloads, DeepSeek has a clear cost advantage."},{question:"Should I switch from DeepSeek to Stepfun?",answer:"For text, reasoning, coding and API cost â no, DeepSeek is still the better choice in 2026. Consider Stepfun if your product is video-first (short-form generation, avatars, dubbing) or voice-first (real-time speech agents), where Stepfun's Step-Video-T2V and Step-Audio models genuinely outperform DeepSeek today. Many teams end up using both: DeepSeek as the brain, Stepfun as the eyes and voice."},{question:"Where are DeepSeek and Stepfun based?",answer:"Both are Chinese labs. DeepSeek is headquartered in Hangzhou and was spun out of quant fund High-Flyer in 2023. Stepfun is based in Shanghai, founded the same year by former Microsoft Research Asia vice president Jiang Daxin. Both are subject to Chinese data and content regulations."}],n={"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(r=>({"@type":"Question",name:r.question,acceptedAnswer:{"@type":"Answer",text:r.answer}}))},s={"@context":"https://schema.org","@type":"Article",headline:"DeepSeek vs Stepfun (2026): Chinese AI Reasoning vs Multimodal",description:"DeepSeek vs Stepfun comparison. DeepSeek wins on reasoning, coding and price. Stepfun leads in video and audio generation.",author:{"@type":"Organization",name:"DeepSeek.ai"},publisher:{"@type":"Organization",name:"DeepSeek.ai"},datePublished:"2026-05-21",dateModified:"2026-05-21"};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek vs Stepfun 2026: Reasoning vs Multimodal Compared"}),e.jsx("meta",{name:"description",content:"DeepSeek vs Stepfun in 2026. DeepSeek leads on reasoning, coding, open weights and price. Stepfun wins for video and audio. Full feature, pricing and use-case comparison."}),e.jsx("meta",{name:"keywords",content:"DeepSeek vs Stepfun, Stepfun vs DeepSeek, Stepfun AI, Step-3.5 Flash, Step-Video-T2V, Step-Audio, Stepfun, Chinese AI comparison, DeepSeek competitor 2026"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-vs-stepfun"}),e.jsx("meta",{property:"og:title",content:"DeepSeek vs Stepfun (2026) â Chinese AI Showdown"}),e.jsx("meta",{property:"og:description",content:"DeepSeek leads reasoning, coding and price. Stepfun leads video and audio. Full 2026 comparison of two top Chinese AI labs."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-vs-stepfun"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek vs Stepfun (2026) â Chinese AI Showdown"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek leads reasoning, coding and price. Stepfun leads video and audio. Full 2026 comparison."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsxs("main",{className:"min-h-screen pt-24 pb-12 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto",children:[e.jsx(ur,{items:[{label:"Compare",path:"/deepseek-vs-chatgpt"}],currentPage:"DeepSeek vs Stepfun"}),e.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mb-4",children:"DeepSeek vs Stepfun"}),e.jsx("p",{className:"text-xl text-muted-foreground",children:"Two Chinese AI labs, two different bets. DeepSeek doubles down on reasoning and price. Stepfun goe
2611s all-in on video, audio and multimodal generation. Here's which one fits your use case in 2026."})]}),e.jsx("section",{className:"mb-16",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"p-8 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(_s,{className:"h-10 w-10 text-primary mr-3"}),e.jsx("h2",{className:"text-2xl font-bold",children:"DeepSeek"})]}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Hangzhou-based lab famous for open-weight reasoning models, transparent chain-of-thought and the lowest API pricing among frontier-class LLMs."}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Best-in-class reasoning (R1, V4)"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Top-tier code generation"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"MIT-licensed open weights"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Cheapest frontier-class API"]})]})]}),e.jsxs("div",{className:"p-8 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(Zc,{className:"h-10 w-10 text-purple-500 mr-3"}),e.jsx("h2",{className:"text-2xl font-bold",children:"Stepfun"})]}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Shanghai-based multimodal lab building the Step model family. Current flagship is Step-3.5 Flash, with leading open text-to-video (Step-Video-T2V) and real-time speech (Step-Audio)."}),e.jsxs("ul",{className:"space-y-2",children:[e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Compact MoE flagship (Step-3.5 Flash)"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Leading open text-to-video (Step-Video-T2V)"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Real-time speech (Step-Audio)"]}),e.jsxs("li",{className:"flex items-center text-sm",children:[e.jsx(He,{className:"h-4 w-4 text-green-500 mr-2"}),"Strong full-stack multimodal"]})]})]})]})}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Feature Comparison"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{className:"w-[220px]",children:"Feature"}),e.jsx(qe,{className:"text-center",children:"DeepSeek"}),e.jsx(qe,{className:"text-center",children:"Stepfun"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Headquarters"}),e.jsx(U,{className:"text-center",children:"Hangzhou, China"}),e.jsx(U,{className:"text-center",children:"Shanghai, China"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Founded"}),e.jsx(U,{className:"text-center",children:"2023"}),e.jsx(U,{className:"text-center",children:"2023"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Flagship Model"}),e.jsx(U,{className:"text-center",children:"DeepSeek V4 / R1"}),e.jsx(U,{className:"text-center",children:"Step-3.5 Flash (compact MoE)"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Primary Strength"}),e.jsx(U,{className:"text-center",children:"Reasoning & Coding"}),e.jsx(U,{className:"text-center",children:"Multimodal Generation"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Open Weights (flagship)"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"License"}),e.jsx(U,{className:"text-center",children:"MIT"}),e.jsx(U,{className:"text-center",children:"Mixed / API-only"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Chain-of-Thought"}),e.jsx(U,{className:"text-center",children:e.jsx(He,{className:"h-5 w-5 text-green-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:"Limited"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Text-to-Video"}),e.jsx(U,{className:"text-center",children:e.jsx(Rs,{className:"h-5 w-5 text-red-500 mx-auto"})}),e.jsx(U,{className:"text-center",children:"Excellent (Step-Video)"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Real-time Speech"}),e.jsx(U,{className:"text-center",children:"Basic"}),e.jsx(U,{className:"text-center",children:"Excellent (Step-Audio)"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Math & Reasoning"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Good"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Code Generation"}),e.jsx(U,{className:"text-center",children:"Excellent"}),e.jsx(U,{className:"text-center",children:"Average"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"API Pricing (input)"}),e.jsx(U,{className:"text-center",children:"~$0.15 / 1M tokens"}),e.jsx(U,{className:"text-center",children:"~$0.50â2.00 / 1M tokens"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Best For"}),e.jsx(U,{className:"text-center",children:"Agents, coding, research"}),e.jsx(U,{className:"text-center",children:"Video, voice, avatars"})]})]})]})})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-4",children:"Which One Should You Pick? Real Scenarios"}),e.jsx("p",{className:"text-center text-muted-foreground max-w-2xl mx-auto mb-10",children:"Forget the spec sheet for a second. Here are the situations developers and team
2611s actually face in 2026, and which model wins each one."}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[{scenario:"You're shipping a SaaS chatbot and need the cheapest reliable API",pick:"DeepSeek",color:"primary",why:"DeepSeek V4 is ~5â10à cheaper than Stepfun Step-2 per million tokens, with comparable quality for general chat. At 1M requests/month the difference is the cost of a small office.",cta:{label:"See DeepSeek pricing",to:"/pricing",event:"pricing_from_stepfun_compare"}},{scenario:"You need to analyse 500-page contracts or long research papers",pick:"Stepfun",color:"purple-500",why:"Step-3.5 Flash and Step-2 ship with one of the largest context windows in Chinese AI (up to 256K tokens in beta), and Step-1V handles document images natively. DeepSeek V4 caps at 128K and isn't multimodal on documents yet.",cta:{label:"Compare context windows",to:"/docs",event:"docs_from_stepfun_compare"}},{scenario:"You're building a coding agent or dev tool",pick:"DeepSeek",color:"primary",why:"DeepSeek leads open benchmarks on SWE-Bench, HumanEval and LiveCodeBench. Stepfun has no dedicated coder model. For Copilot-style tooling, this is not a close call.",cta:{label:"Read the API docs",to:"/docs",event:"docs_from_stepfun_compare"}},{scenario:"You're making a TikTok-style app that needs text-to-video",pick:"Stepfun",color:"purple-500",why:"Step-Video-T2V is open-source, 30B parameters, and produces 540p clips that rival closed models. DeepSeek has no video generation product at all.",cta:null},{scenario:"You need open weights to self-host on your own GPUs",pick:"DeepSeek",color:"primary",why:"DeepSeek releases full flagship weights under MIT. Stepfun keeps Step-2 closed and API-only â you cannot run it on-prem at any price.",cta:{label:"Self-hosting options",to:"/docs",event:"docs_from_stepfun_compare"}},{scenario:"You're building a real-time voice assistant",pick:"Stepfun",color:"purple-500",why:"Step-Audio-Chat handles end-to-end speech (no separate STT + TTS pipeline) with sub-second latency. DeepSeek requires you to bolt on Whisper + a TTS provider, which adds cost and lag.",cta:null}].map((r,a)=>e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border flex flex-col",children:[e.jsxs("div",{className:"flex items-start justify-between mb-3 gap-3",children:[e.jsx("h3",{className:"text-lg font-semibold leading-snug",children:r.scenario}),e.jsxs("span",{className:`shrink-0 text-xs font-bold px-2.5 py-1 rounded-full ${r.color==="primary"?"bg-primary/10 text-primary":"bg-purple-500/10 text-purple-600"}`,children:["Pick ",r.pick]})]}),e.jsx("p",{className:"text-sm text-muted-foreground flex-1",children:r.why}),r.cta&&e.jsxs(Zo,{to:r.cta.to,source:"deepseek-vs-stepfun",className:"mt-4 text-sm font-medium text-primary hover:underline inline-flex items-center",children:[r.cta.label," â"]})]},a))})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Pricing Comparison"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(Ai,{className:"h-6 w-6 text-green-500 mr-2"}),e.jsx("h3",{className:"text-xl font-semibold",children:"DeepSeek Pricing"})]}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsx("li",{children:"⢠Free chat tier on chat.deepseek.com"}),e.jsx("li",{children:"⢠V4: ~$0.15 / 1M input tokens"}),e.jsx("li",{children:"⢠~$0.60 / 1M output tokens"}),e.jsx("li",{children:"⢠Free for local deployment (open weights)"})]})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsxs("div",{className:"flex items-center mb-4",children:[e.jsx(Ai,{className:"h-6 w-6 text-purple-500 mr-2"}),e.jsx("h3",{className:"text-xl font-semibold",children:"Stepfun Pricing"})]}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsx("li",{children:"⢠Limited free quota on Yuewen consumer app"}),e.jsx("li",{children:"⢠Step-3.5 Flash / Step-2: ~$0.50â2.00 / 1M input tokens"}),e.jsx("li",{children:"⢠Step-Video-T2V and Step-Audio priced per call"}),e.jsx("li",{children:"⢠No open-weight flagship; API-only"})]})]})]}),e.jsx("p",{className:"text-sm text-muted-foreground text-center mt-6",children:"Pricing as of May 2026, based on publicly listed rates. Both vendors update tiers frequently."})]}),e.jsxs("section",{className:"mb-16 max-w-3xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:t.map((r,a)=>e.jsxs(ss,{value:`item-${a}`,children:[e.jsx(rs,{className:"text-left",children:r.question}),e.jsx(as,{children:r.answer})]},a))})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"More AI Comparisons"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[e.jsxs(se,{to:"/deepseek-vs-chatgpt",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs ChatGPT"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with OpenAI's flagship model."})]}),e.jsxs(se,{to:"/deepseek-vs-claude",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs Claude"}),e.jsx("p",{className:"text-muted-foreground",children:"Compare with Anthropic's Claude."})]}),e.jsxs(se,{to:"/deepseek-vs-mistral",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek vs Mistral"}),e.jsx("p",{className:"text-muted-foreground",children:"European efficie
2611ncy vs Chinese reasoning."})]})]})]}),e.jsxs("section",{className:"text-center",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Try DeepSeek AI Today"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Experience the power of advanced AI reasoning for free."}),e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center px-8 py-4 text-lg font-medium rounded-full text-white bg-primary hover:bg-primary/90 transition-all shadow-lg",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5"}),"Add to Chrome - It's Free"]})]})]})]})},XA=({id:t,className:n="",variant:s="inline"})=>{const r={inline:"min-h-[90px] w-full min-w-[300px]",sidebar:"w-[300px] min-h-[600px]",rectangle:"w-[300px] h-[250px]"};return e.jsx("div",{id:t,className:` 2612 ad-slot 2613 bg-muted/30 2614 border border-dashed border-muted-foreground/20 2615 rounded-lg 2616 flex items-center justify-center 2617 ${r[s]} 2618 ${n} 2619 `,"aria-label":"Advertisement","data-ad-slot":t,children:e.jsx("span",{className:"text-xs text-muted-foreground/50 select-none",children:"Advertisement"})})},VX=({children:t,showSidebar:n=!0})=>e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:e.jsxs("div",{className:"flex gap-8",children:[e.jsx("article",{className:"flex-1 min-w-0",children:t}),n&&e.jsx("aside",{className:"hidden lg:block w-[300px] flex-shrink-0",children:e.jsxs("div",{id:"ad-sidebar-sticky",className:"sticky top-24 space-y-6",children:[e.jsx(XA,{id:"ad-sidebar-top",variant:"rectangle"}),e.jsxs("div",{className:"p-4 bg-muted/30 rounded-lg border border-border",children:[e.jsx("h4",{className:"font-semibold text-sm mb-3",children:"Quick Links"}),e.jsxs("ul",{className:"space-y-2 text-sm",children:[e.jsx("li",{children:e.jsx("a",{href:"/deepseek-api",className:"text-primary hover:underline",children:"API Documentation"})}),e.jsx("li",{children:e.jsx("a",{href:"/deepseek-r1",className:"text-primary hover:underline",children:"DeepSeek R1 Guide"})}),e.jsx("li",{children:e.jsx("a",{href:"/deepseek-vs-chatgpt",className:"text-primary hover:underline",children:"DeepSeek vs ChatGPT"})}),e.jsx("li",{children:e.jsx("a",{href:"/blog",className:"text-primary hover:underline",children:"All Tutorials"})})]})]}),e.jsx(XA,{id:"ad-sidebar-bottom",variant:"sidebar"})]})})]})}),BX="/assets/deepseek-v4-hero-CA4QpOoX.jpg",zX=()=>{var c,d,h;const[t,n]=S.useState(!1),s=$t.models["v4-flash"],r=$t.models["v4-pro"],a=la.models["gpt-5.4"],i=la.models["claude-opus-4.8"],o={"@context":"https://schema.org","@type":"Article",headline:"DeepSeek V4: Everything You Need to Know About V4-Pro (1.6T MoE) and V4-Flash (284B MoE)",datePublished:"2026-04-04T08:00:00+00:00",dateModified:"2026-06-28T08:00:00+00:00",author:{"@type":"Organization",name:"Deep Seek AI",url:"https://deepseek.ai"},publisher:{"@type":"Organization",name:"Deep Seek AI",logo:{"@type":"ImageObject",url:"https://deepseek.ai/logo.png"}},description:"DeepSeek V4 complete 2026 guide: V4-Pro (1.6T total / 49B active MoE) and V4-Flash (284B total / 13B active MoE), benchmarks vs GPT-5.4 and Claude Opus 4.8, API pricing from $0.14/M tokens, 1M-token context and release timeline.",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/deepseek-v4"},image:"https://deepseek.ai/deepseek-v4-hero.jpg"},l={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"Is DeepSeek V4 better than ChatGPT (GPT-5.4)?",acceptedAnswer:{"@type":"Answer",text:"Based on leaked benchmarks, DeepSeek V4 rivals or slightly beats GPT-5.4 and Claude 4.5 in complex software engineering tasks (SWE-bench) and repository-level coding, especially given its 1M token context. However, independent testing is required to declare an absolute winner once the model officially launches."}},{"@type":"Question",name:"Can I run DeepSeek V4 locally?",acceptedAnswer:{"@type":"Answer",text:"Yes, assuming the planned open-weight release happens. Because the Mixture-of-Experts design only activates ~32B parameters at a time, a quantized version (INT4) can theoretically run locally on a single 32GB RTX 5090, or dual RTX 4090s."}},{"@type":"Question",name:"Why is DeepSeek V4 so cheap?",acceptedA
2619nswer:{"@type":"Answer",text:"The low costs are driven by the highly efficient MoE architecture (activating only a fraction of the model), low training costs (estimated at ~$10M compared to >$100M for Western models), and the implementation of DeepSeek Sparse Attention, which halves the compute needed for long contexts."}},{"@type":"Question",name:"Is DeepSeek V4 multimodal?",acceptedAnswer:{"@type":"Answer",text:"No. Both shipped variants, V4-Pro and V4-Flash, are text-only mixture-of-experts language models. The model cards describe no vision, audio or video modality. Pre-launch reports of native multimodal training did not ship."}}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek V4 Explained: V4-Pro 1.6T vs V4-Flash 284B (2026)"}),e.jsx("meta",{name:"description",content:"What DeepSeek V4 actually is: 1.6T and 284B MoE models, 1M context, 384K output, real benchmarks and prices. Independent, sourced, updated 25 July."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-v4"}),e.jsx("meta",{property:"og:title",content:"DeepSeek V4: Everything You Need to Know About V4-Pro and V4-Flash"}),e.jsx("meta",{property:"og:description",content:"DeepSeek V4-Pro (1.6T MoE) and V4-Flash (284B MoE), 1M-token context, benchmarks and disruptive API pricing. The complete guide."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-v4"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/deepseek-v4-hero.jpg"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek V4: V4-Pro (1.6T) and V4-Flash (284B) MoE â Complete Guide"}),e.jsx("meta",{name:"twitter:description",content:"Everything about DeepSeek V4-Pro and V4-Flash MoE: architecture, benchmarks, pricing, and release date."}),e.jsx("meta",{name:"keywords",content:"DeepSeek V4, DeepSeek V4 Pro, DeepSeek V4 Flash, DeepSeek V4 release date, DeepSeek V4 benchmarks, DeepSeek V4 API pricing, 1.6T MoE, Engram memory, DeepSeek vs GPT-5, DeepSeek vs Claude 4.5"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(o)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(l)})]}),e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx("div",{className:"relative bg-gradient-to-br from-primary/10 via-background to-accent/10 pt-24 pb-16",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx(cn,{}),e.jsxs("div",{className:"flex items-center gap-2 mb-4 mt-4 flex-wrap",children:[e.jsx(qs,{variant:"outline",className:"text-primary border-primary/30",children:"Focus Keyword: DeepSeek V4"}),e.jsx(qs,{variant:"secondary",children:"Updated June 28, 2026"}),e.jsx(qs,{variant:"secondary",children:"16 min read"})]}),e.jsx("h1",{className:"text-4xl sm:text-5xl font-bold text-foreground mb-6 leading-tight",children:"DeepSeek V4: Everything You Need to Know About V4-Pro (1.6T MoE) and V4-Flash (284B MoE)"}),e.jsxs("p",{className:"text-lg text-muted-foreground mb-8 max-w-3xl",children:["The complete 2026 guide to DeepSeek V4 â the mixture-of-experts family that launched in April 2026 and reshaped the AI pricing landscape. V4-Pro totals ",e.jsx("strong",{children:"1.6 trillion parameters"})," with ~49 billion active per token; V4-Flash totals ",e.jsx("strong",{children:"284 billion parameters"})," with ~13 billion active. Both models share a 1M-token context window. This page covers the architecture, real benchmarks against GPT-5.4 and Claude Opus 4.8, and current API pricing."]}),e.jsx("img",{src:BX,alt:"DeepSeek V4 neural network visualization â 1.6T-parameter MoE architecture",width:1200,height:630,className:"w-full rounded-xl shadow-lg border border-border"})]})}),e.jsxs(VX,{children:[e.jsx(ie,{className:"mb-10 border-primary/20",children:e.jsxs(me,{className:"pt-6",children:[e.jsxs("h2",{className:"text-lg font-semibold mb-4 flex items-center gap-2",children:[e.jsx($r,{className:"h-5 w-5 text-primary"})," Table of Contents"]}),e.jsx("nav",{children:e.jsxs("ol",{className:"list-decimal list-inside space-y-2 text-sm text-muted-foreground",children:[e.jsx("li",{children:e.jsx("a",{href:"#v4-family-2026",className:"text-primary hover:underline",children:"The DeepSeek V4 Family in 2026 (Pro, Flash & Base)"})}),e.jsx("li",{children:e.jsx("a",{href:"#what-is-deepseek-v4",className:"text-primary hover:underline",children:"What is DeepSeek V4? (Core Specs)"})}),e.jsx("li",{children:e.jsx("a",{href:"#architectural-innovations",className:"text-primary hover:underline",children:"3 Groundbreaking Architectural Innovations"})}),e.jsx("li",{children:e.jsx("a",{href:"#benchmarks",className:"text-primary hover:underline",children:"Benchmarks: DeepSeek V4 vs. GPT-5.4 and Claude 4.5"})}),e.jsx("li",{children:e.jsx("a",{href:"#api-pricing",className:"text-primary hover:underline",children:"API Pricing: The Most Cost-Effective Frontier AI"})}),e.jsx("li",{children:e.jsx("a",{href:"#hardware",className:"text-primary hover:underline",children:"Geopolitics and Hardware: The Shift to Huawei"})}),e.jsx("li",{children:e.jsx("a",{href:"#release-date",className:"text-primary hover:underline",children:"Release Date: When is DeepSeek V4 Coming Out?"})}),e.jsx("li",{children:e.jsx("a",{href:"#faq",className:"text-primary hover:underline",children:"FAQ"})})]})})]})}),e.jsxs("section",{className:"prose prose-lg max-w-none mb-12",children:[e.jsxs("p",{className:"text-foreground leading-relaxed",children:["The world of artificial intelligence is on the verge of a massive shift. ",e.jsx("strong",{children:"DeepSeek V4"})," is the flagship model family from DeepSeek that pushes the boundaries of parameter scale while promising unprecedented efficie
2619ncy. V4-Pro totals ",e.jsx("strong",{children:"1.6 trillion parameters"})," (~49B active per token via MoE), while V4-Flash totals ",e.jsx("strong",{children:"284 billion parameters"})," (~13B active). Both are ",e.jsx("strong",{children:"text-only"})," and offer a ",e.jsx("strong",{children:"1 million token"})," context window, positioning them as direct competitors to Western giants like OpenAI's GPT-5.4 and Anthropic's Claude Opus 4.8."]}),e.jsx("p",{className:"text-foreground leading-relaxed",children:"In this comprehensive article, we dive into the key specifications, architectural innovations, expected pricing, and the strategic hardware shifts behind DeepSeek V4."})]}),e.jsx(ie,{className:"mb-12 bg-primary/5 border-primary/20",children:e.jsxs(me,{className:"pt-6",children:[e.jsxs("h3",{className:"text-lg font-bold mb-4 flex items-center gap-2 text-primary",children:[e.jsx(Lt,{className:"h-5 w-5"})," Key Takeaways"]}),e.jsxs("ul",{className:"space-y-3 text-sm",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-primary font-bold",children:"â¢"}),e.jsxs("span",{children:[e.jsx("strong",{children:"V4-Pro 1.6T / V4-Flash 284B parameters"})," with ~49B / ~13B active per token via MoE"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-primary font-bold",children:"â¢"}),e.jsxs("span",{children:[e.jsx("strong",{children:"1 Million token context window"})," â equivalent to 15â20 full novels"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-primary font-bold",children:"â¢"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Text-only:"})," no vision, audio or video modality in either shipped variant"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-primary font-bold",children:"â¢"}),e.jsxs("span",{children:[e.jsx("strong",{children:"10â50x cheaper"})," API pricing than GPT-5.4 and Claude Opus 4.8"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-primary font-bold",children:"â¢"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Open-source"})," weights released under the MIT license"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-primary font-bold",children:"â¢"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Runnable locally"})," on dual RTX 4090s or single RTX 5090"]})]})]})]})}),e.jsxs("section",{id:"v4-family-2026",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold text-foreground mb-4 flex items-center gap-3",children:[e.jsx(Os,{className:"h-7 w-7 text-primary"})," The DeepSeek V4 Family in 2026"]}),e.jsxs("p",{className:"text-muted-foreground mb-6 leading-relaxed",children:['DeepSeek V4 launched on 24 April 2026 as a two-model family. There is no separate "base" model alongside them â the official release and API docs list exactly two variants: ',e.jsx("strong",{children:"V4 Pro"})," (1.6T total / 49B active) and ",e.jsx("strong",{children:"V4 Flash"})," (284B total / 13B active). Both share the same architecture, 1M-token context, and MIT-licensed open weights."]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-6",children:[e.jsx(ie,{className:"border-primary/30",children:e.jsxs(me,{className:"pt-6",children:[e.jsx(qs,{className:"mb-2 bg-primary text-primary-foreground",children:"Flagship · Best value"}),e.jsx("h3",{className:"font-semibold text-foreground mb-2",children:"DeepSeek V4 Pro"}),e.jsxs("p",{className:"text-sm text-muted-foreground mb-3",children:["1.6T total / 49B active MoE. Production-tuned tier. As of 31 May 2026, the previous 75% price cut became ",e.jsx("strong",{children:"permanent"}),": $0.435/M input (cache miss), $0.87/M output."]}),e.jsx("a",{href:"/blog/deepseek-v4-pro-api-price-cut-permanent",className:"text-sm text-primary hover:underline",children:"Read the price-cut analysis â"})]})}),e.jsx(ie,{className:"border-primary/30",children:e.jsxs(me,{className:"pt-6",children:[e.jsx(qs,{className:"mb-2 bg-primary text-primary-foreground",children:"Fastest · Cheapest"}),e.jsx("h3",{className:"font-semibold text-foreground mb-2",children:"DeepSeek V4 Flash"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:"284B total / 13B active MoE. Latency-optimised variant with the same 1M context. $0.14/M input (cache miss), $0.28/M output."}),e.jsx("a",{href:"/deepseek-v4-flash-review",className:"text-sm text-primary hover:underline",children:"V4 Flash deep dive â"})]})})]}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"Both variants share the same V4 architecture covered below â MoE with 13B (Flash) or 49B (Pro) active params per token, text-only input
2619s, and DeepSeek Sparse Attention. The differences are model size, latency, and pricing."})]}),e.jsxs("section",{id:"what-is-deepseek-v4",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold text-foreground mb-6 flex items-center gap-3",children:[e.jsx(_s,{className:"h-7 w-7 text-primary"})," What is DeepSeek V4? (Core Specs)"]}),e.jsxs("p",{className:"text-muted-foreground mb-6 leading-relaxed",children:["DeepSeek V4 builds upon the success of its predecessors (like ",e.jsx("a",{href:"/blog/deepseek-v31",className:"text-primary hover:underline",children:"V3"})," and ",e.jsx("a",{href:"/deepseek-r1",className:"text-primary hover:underline",children:"R1"}),") by combining massive scalability with extreme operational cost efficiency. Here are the primary technical specifications:"]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[{icon:e.jsx(yo,{className:"h-5 w-5 text-primary"}),title:"Parameters",desc:"V4-Pro 1.6T total / 49B active · V4-Flash 284B / 13B (MoE)"},{icon:e.jsx(Lt,{className:"h-5 w-5 text-primary"}),title:"Active Parameters",desc:"13B (Flash) or 49B (Pro) activated per token via efficient Mixture-of-Experts (MoE) routing"},{icon:e.jsx($r,{className:"h-5 w-5 text-primary"}),title:"Context Window",desc:"1 Million tokens â roughly an entire medium-sized codebase or 15â20 full-length novels"},{icon:e.jsx(M1,{className:"h-5 w-5 text-primary"}),title:"Text-only",desc:"Both V4 variants accept text input only â no vision, audio or video modality"}].map(p=>e.jsx(ie,{className:"border-border",children:e.jsxs(me,{className:"pt-6",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[p.icon,e.jsx("h3",{className:"font-semibold text-foreground",children:p.title})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:p.desc})]})},p.title))})]}),e.jsxs("section",{id:"architectural-innovations",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold text-foreground mb-6 flex items-center gap-3",children:[e.jsx(rl,{className:"h-7 w-7 text-primary"})," Architecture: what V4 actually changes"]}),e.jsx("p",{className:"text-muted-foreground mb-8 leading-relaxed",children:"V4's efficiency comes from two things DeepSeek documents in the model cards â a stability framework for training a 1.6T-parameter MoE model, and a sparse attention stack for long context. A third line of work, Engram, is frequently attached to V4 online; it is a separate research paper, not a shipped V4 component."}),e.jsx(ie,{className:"mb-6 border-l-4 border-l-primary",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h3",{className:"text-xl font-bold text-foreground mb-3",children:"1. Manifold-Constrained Hyper-Connections (mHC)"}),e.jsxs("p",{className:"text-muted-foreground mb-4 leading-relaxed",children:["As AI models scale up, they often suffer from training instability (such as gradient explosion). ",e.jsx("strong",{children:e.jsx("a",{href:"/blog/deepseek-mhc-manifold-constrained-hyper-connections",className:"text-primary hover:underline",children:"mHC"})})," is a mathematical framework that constrains signal amplification, keeping it under 2x (compared to an unconstrained 3000x)."]}),e.jsx("div",{className:"bg-accent/50 p-4 rounded-lg",children:e.jsxs("p",{className:"text-sm font-medium text-foreground",children:["â¡ This allows DeepSeek to stably train a 1.6T-parameter MoE model with only a ",e.jsx("strong",{children:"6.7% computational overhead"}),"."]})})]})}),e.jsx(ie,{className:"mb-6 border-l-4 border-l-primary",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h3",{className:"text-xl font-bold text-foreground mb-3",children:"2. DeepSeek Sparse Attention (DSA)"}),e.jsxs("p",{className:"text-muted-foreground mb-4 leading-relaxed",children:["To process 1 million tokens affordably, V4 replaces dense attention with ",e.jsx("strong",{children:"DeepSeek Sparse Attention"}),". The V4 model cards describe it in terms of ",e.jsx("strong",{children:"compressed sparse attention (CSA)"})," and ",e.jsx("strong",{children:"hierarchical/coarse-grained attention (HCA)"}),': the context is compressed into coarse summaries, the relevant regions are selected, and full attention is applied only there. The "Lightning Indexer" often quoted alongside DSA belongs to ',e.jsx("strong",{children:"V3.2-Exp"}),", not V4."]}),e.jsx("div",{className:"bg-accent/50 p-4 rounded-lg",children:e.jsx("p",{className:"text-sm font-medium text-foreground",children:"ð The result is roughly linear rather than quadratic cost growth in long-context work, which is what makes 1M-token pricing viable."})})]})}),e.jsx(ie,{className:"mb-6 border-l-4 border-l-muted",children:e.jsxs(me,{className:"pt-6",children:[e.jsx("h3",{className:"text-xl font-bold text-foreground mb-3",children:"Related research: Engram conditional memory (not a V4 feature)"}),e.jsxs("p",{className:"text-muted-foreground mb-4 leading-relaxed",children:[e.jsx("strong",{children:e.jsx("a",{href:"/blog/deepseek-engram-v4
2619-architecture",className:"text-primary hover:underline",children:"Engram"})})," is a DeepSeek research paper on decoupling static factual recall from dynamic reasoning (",e.jsx("a",{href:"https://arxiv.org/abs/2601.07372",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"arXiv:2601.07372"}),"). It is ",e.jsx("strong",{children:"not"})," part of the shipped V4-Pro or V4-Flash architecture, and DeepSeek has not stated that it will be. Treat reported Engram retrieval gains as results from that paper, not as V4 specifications."]})]})})]}),e.jsxs("section",{id:"benchmarks",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold text-foreground mb-6 flex items-center gap-3",children:[e.jsx(J_,{className:"h-7 w-7 text-primary"})," Benchmarks: DeepSeek V4 vs. GPT-5.4 and Claude 4.5"]}),e.jsx("p",{className:"text-muted-foreground mb-6 leading-relaxed",children:"DeepSeek V4 is heavily focused on software engineering and deep reasoning. According to leaked internal benchmarks, the model performs at an extraordinary level:"}),e.jsx("div",{className:"overflow-x-auto mb-6",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Benchmark"}),e.jsx(qe,{className:"text-center",children:"DeepSeek V4"}),e.jsx(qe,{className:"text-center",children:"GPT-5.4"}),e.jsx(qe,{className:"text-center",children:"Claude Opus 4.8"}),e.jsx(qe,{className:"text-center",children:"DeepSeek V3"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"SWE-bench Verified"}),e.jsx(U,{className:"text-center font-bold text-primary",children:">80%"}),e.jsx(U,{className:"text-center",children:"~80%"}),e.jsx(U,{className:"text-center",children:"88.6%"}),e.jsx(U,{className:"text-center text-muted-foreground",children:"~49%"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Context Window"}),e.jsx(U,{className:"text-center font-bold text-primary",children:"1M tokens"}),e.jsx(U,{className:"text-center",children:"~1M"}),e.jsx(U,{className:"text-center",children:"1M"}),e.jsx(U,{className:"text-center text-muted-foreground",children:"128K"})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Parameters (Total / Active)"}),e.jsx(U,{className:"text-center font-bold text-primary",children:"1.6T / 49B (Pro)"}),e.jsx(U,{className:"text-center",children:"Undisclosed"}),e.jsx(U,{className:"text-center",children:"Undisclosed"}),e.jsx(U,{className:"text-center text-muted-foreground",children:"671B / 37B"})]})]})]})}),e.jsx(ie,{className:"bg-accent/30 border-accent",children:e.jsx(me,{className:"pt-4 pb-4",children:e.jsxs("p",{className:"text-sm text-muted-foreground",children:[e.jsx("strong",{children:"â ï¸ Note:"})," These impressive numbers are currently based on leaked internal data and are awaiting independent third-party verification upon release."]})})})]}),e.jsxs("section",{id:"api-pricing",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold text-foreground mb-6 flex items-center gap-3",children:[e.jsx(Ai,{className:"h-7 w-7 text-primary"})," API Pricing: The Most Cost-Effective Frontier AI"]}),e.jsxs("p",{className:"text-muted-foreground mb-6 leading-relaxed",children:["Western frontier models are powerful but expensive. GPT-5.4 costs $",a.input.toFixed(2),"/M input ($",(c=a.cachedInput)==null?void 0:c.toFixed(2),"/M cached) and $",a.output.toFixed(2),"/M output under 270K context; Claude Opus 4.8 costs $",i.input.toFixed(2),"/M input and $",i.output.toFixed(2),"/M output. DeepSeek V4's published rates sit an order of magnitude below both:"]}),e.jsx("div",{className:"overflow-x-auto mb-6",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Pricing Tier (per 1M tokens)"}),e.jsx(qe,{className:"text-center",children:"DeepSeek V4-Flash"}),e.jsx(qe,{className:"text-center",children:"DeepSeek V4-Pro"}),e.jsx(qe,{className:"text-center",children:"GPT-5.4"}),e.jsx(qe,{className:"text-center",children:"Claude Opus 4.8"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Input (cache miss)"}),e.jsxs(U,{className:"text-center font-bold text-primary",children:["$",s.inputCacheMiss.toFixed(2)]}),e.jsxs(U,{className:"text-center font-bold text-primary",children:["$",r.inputCacheMiss.toFixed(3)]}),e.jsxs(U,{className:"text-center",children:["$",a.input.toFixed(2)]}),e.jsxs(U,{className:"text-center",children:["$",i.input.toFixed(2)]})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Input (cache hit)"}),e.jsxs(U,{className:"text-center font-bold text-primary",children:["$",s.inputCacheHit.toFixed(4)]}),e.jsxs(U,{className:"text-center font-bold text-primary",children:["$",r.inputCacheHit.toFixed(6)]}),e.jsxs(U,{className:"text-center",children:["$",(d=a.cachedInput)==null?void 0:d.toFixed(2)]}),e.jsxs(U,{className:"text-center",children:["$",(h=i.cachedInput)==null?void 0:h.toFixed(2)]})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Output"}),e.jsxs(U,{className:"text-center font-bold text-primary",children:["$",s.output.toFixed(2)]}),e.jsxs(U,{className:"text-center font-bold text-primary",children:["$",r.output.toFixed(2)]}),e.jsxs(U,{className:"text-center",children:["$",a.output.toFixed(2)]}),e.jsxs(U,{className:"text-center",children:["$",i.output.toFixed(2)]})]})]})]})}),e.jsxs("p",{className:"text-xs text-muted-foreground mb-6",children:["DeepSeek rates verified ",$t.lastVerified,"; competitor rates verified ",la.lastVerified,". GPT-5.4 rates apply under 270K context. See the full"," ",e.jsx("a",{href:"/pricing",className:"text-primary hover:underline",children:"DeepSeek pricing breakdown"}),"."]}),e.jsx(ie,{className:"bg-primary/5 border-primary/20",children:e.jsxs(me,{className:"pt-4 pb-4",children:[e.jsxs("p",{className:"text-sm font-medium text-foreground mb-2",children:["ð¡ Measured against V4-Pro at $",r.inputCacheMiss,"/$",r.output," per 1M tokens, the actual multiples are:"]}),e.jsxs("ul",{className:"text-sm text-muted-foreground space-y-1",children:[e.jsxs("li",{children:["⢠",e.jsx("strong",{children:"vs GPT-5.4:"})," ",Ar(a.input,r.inputCacheMiss)," on input, ",Ar(a.output,r.output)," on output"]}),e.jsxs("li",{children:["⢠",e.jsx("strong",{children:"vs Claude Opus 4.8:"})," ",Ar(i.input,r.inputCacheMiss)," on input, ",Ar(i.output,r.output)," on output"]})]})]})})]}),e.jsxs("section",{id:"hardware",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold text-foreground mb-6 flex items-center gap-3",children:[e.jsx(c2,{className:"h-7 w-7 text-primary"})," Geopolitics and Hardware: The Shift to Huawei"]}),e.jsx("p",{className:"text-muted-foreground mb-4 leading-relaxed",children:"One of the most consequential aspects of DeepSeek V4 is its hardware foundation. Due to strict US export restrictions on advanced Nvidia GPUs (like the B300 and H200), DeepSeek has optimized V4 to run heavily on domestic Chinese silicon for inference."}),e.jsxs("p",{className:"text-muted-foreground mb-4 leading-relaxed",children:["While initial training likely still utilized Nvidia hardware (such as H800s), the model is highly optimized for the ",e.jsx("strong",{children:"Huawei Ascend 950PR"})," and ",e.jsx("strong",{children:"Cambricon MLU"})," chips."]}),e.jsx(ie,{className:"bg-accent/30 border-accent",children:e.jsx(me,{className:"pt-4 pb-4",children:e.jsxs("p",{className:"text-sm font-medium text-foreground",children:["ð§ Huawei's Ascend 950PR reportedly delivers ",e.jsx("strong",{children:"2.87x the compute performance"})," of the Nvidia H20 (the chip legally allowed for export to China). This marks a major milestone in China's push for AI semiconductor independence."]})})})]}),e.jsxs("section",{id:"release-date",className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold text-foreground mb-6 flex items-center gap-3",children:[e.jsx(ag,{className:"h-7 w-7 text-primary"})," DeepSeek V4 Release Timeline: From Launch to V4 Pro"]}),e.jsx("p",{className:"text-muted-foreground mb-4 leading-relaxed",children:"DeepSeek V4 launched on 24 April 2026 as a two-model family (Pro and Flash). Below is the timeline from launch through the V4 Pro pricing decision and the retirement of the legacy model IDs."}),e.jsxs("div",{className:"space-y-4 mb-6",children:[e.jsx(ie,{className:"border-l-4 border-l-primary",children:e.jsx(me,{className:"pt-4 pb-4",children:e.jsxs("p",{className:"text-sm",children:[e.jsx("strong",{className:"text-primary",children:"ð April 24, 2026 â V4 Pro & V4 Flash launch:"})," DeepSeek shipped exactly two V4 variants: V4 Pro (1.6T total / 49B active) and V4 Flash (284B / 13B), both text-only, both with a 1M-token context window and MIT-licensed open weights."]})})}),e.jsx(ie,{className:"border-l-4 border-l-primary",children:e.jsx(me,{className:"pt-4 pb-4",children:e.jsxs("p",{className:"text-sm",children:[e.jsx("strong",{className:"text-primary",children:"ð¸ May 31, 2026 â V4 Pro price cut made permanent:"})," The 75% discount on V4 Pro became permanent at $0.435/M input (cache miss) and $0.87/M output. ",e.jsx("a",{href:"/blog/deepseek-v4-pro-api-price-cut-permanent",className:"text-primary hover:underline",children:"Read the full analysis"}),"."]})})}),e.jsx(ie,{className:"border-l-4 border-l-primary",children:e.jsx(me,{className:"pt-4 pb-4",children:e.jsxs("p",{className:"text-sm",children:[e.jsx("strong",{className:"text-primary",children:"ð
July 24, 2026 â Legacy model IDs retired:"})," ",e.jsx("code",{children:"deepseek-chat"})," and ",e.jsx("code",{children:"deepseek-reasoner"}
2619)," were retired at 15:59 UTC. They are no longer routed anywhere â see ",e.jsx("a",{href:"/blog/deepseek-chat-reasoner-retired-billing-impact",className:"text-primary hover:underline font-medium",children:"what the retirement did to your bill"}),"."]})})})]}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed",children:["MoE routing cuts ",e.jsx("em",{children:"compute"})," per token, not memory: every expert still has to be resident. V4 Flash's 284B total parameters are roughly ",e.jsx("strong",{children:"140 GB+"})," of weights in the shipped mixed precision, and still 70â80 GB heavily quantised â so local inference means multi-GPU server hardware, not a consumer desktop. V4 Pro at 1.6T total params is firmly a data-centre workload. For most teams the hosted API is cheaper than self-hosting once you account for GPU capital, electricity and ops time."]})]}),e.jsxs("section",{id:"faq",className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-6",children:"Frequently Asked Questions About DeepSeek V4"}),e.jsxs(Vs,{type:"single",collapsible:!0,className:"w-full",children:[e.jsxs(ss,{value:"faq-1",children:[e.jsx(rs,{children:"Is DeepSeek V4 better than ChatGPT (GPT-5.4)?"}),e.jsx(as,{children:"Based on leaked benchmarks, DeepSeek V4 rivals or slightly beats GPT-5.4 and Claude 4.5 in complex software engineering tasks (SWE-bench) and repository-level coding, especially given its 1M token context. However, independent testing is required to declare an absolute winner once the model officially launches."})]}),e.jsxs(ss,{value:"faq-2",children:[e.jsx(rs,{children:"Can I run DeepSeek V4 locally?"}),e.jsxs(as,{children:["Not on consumer GPUs. Mixture-of-Experts routing reduces ",e.jsx("em",{children:"compute"})," per token, but every expert must still be resident in memory. V4-Flash at 284B total parameters needs roughly ",e.jsx("strong",{children:"140 GB+"})," of weights in the shipped mixed precision, before any KV cache â far beyond dual RTX 4090s (48 GB) or a single RTX 5090 (32 GB). Aggressive 4-bit quantisation still lands near 70â80 GB, so realistic local inference means multi-GPU server hardware (for example 2Ã 80 GB accelerators). V4-Pro at 1.6T total parameters is a data-centre workload."]})]}),e.jsxs(ss,{value:"faq-3",children:[e.jsx(rs,{children:"Why is DeepSeek V4 so cheap?"}),e.jsx(as,{children:"The low costs are driven by the highly efficient MoE architecture (activating only a fraction of the model), low training costs (estimated at ~$10M compared to >$100M for Western models), and the implementation of DeepSeek Sparse Attention, which halves the compute needed for long contexts."})]}),e.jsxs(ss,{value:"faq-4",children:[e.jsx(rs,{children:"Is DeepSeek V4 multimodal?"}),e.jsx(as,{children:`No. Both shipped variants â V4-Pro and V4-Flash â are text-only mixture-of-experts language models. The model cards describe no vision, audio or video modality, and DeepSeek's release note mentions none. Pre-launch reports of "native multimodal" training did not ship.`})]})]})]}),e.jsxs("section",{className:"mb-12 prose prose-lg max-w-none",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-4",children:"Conclusion"}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed",children:["Three months after launch, DeepSeek V4 has done exactly what the leaks predicted: architectural efficiency (mHC plus DeepSeek Sparse Attention with CSA/HCA) beating brute-force scaling on cost-per-quality. With a 1-million-token context window, the V4 Pro permanent price cut, and MIT-licensed open weights, V4 has forced every major API provider to revisit pricing. Both shipped variants are ",e.jsx("strong",{children:"text-only"}),". For most teams in mid-2026 the practical choice is V4 Pro for the hardest reasoning and V4 Flash for low-latency, high-throughput agentic use â the two variants DeepSeek actually shipped."]})]}),e.jsxs("div",{className:"border-t border-b border-border py-8 mb-12",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Articles"}),e.jsx(Nn,{})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4 mt-12 mb-8",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-primary-foreground bg-primary hover:bg-primary/90 transition-all shadow-lg hover:translate-y-[-1px]",children:["Try Deep Seek AI Now",e.jsx(wn,{className:"ml-2 h-5 w-5"})]}),e.jsxs("button",{onClick:()=>n(!0),className:"inline-flex items-center justify-center px-6 py-3 border-2 border-primary text-base font-medium rounded-full text-primary bg-background hover:bg-accent transition-all shadow-lg hover:translate-y-[-1px]",children:["Create AI Agents",e.jsx(Os,{className:"ml-2 h-5 w-5"})]})]})]})]}),e.jsx(ar,{isOpen:t,onClose:()=>n(!1)})]})},ZA=()=>{const t=$t.models["v4-pro"],n=$t.models["v4-flash"],s={"@context":"https://schema.org","@type":"Review",itemReviewed:{"@type":"SoftwareApplication",name:"DeepSeek V4 Preview (Pro & Flash)",applicationCategory:"AI Language Model",operatingSystem:"Web, API"},reviewRating:{"@type":"Rating",ratingValue:"6",bestRating:"10"},author:{"@type":"Organization",name:"Independent DeepSeek Resource Hub"},reviewBody:"Hands-on review of DeepSeek V4 Preview (Pro and Flash). 1M context, MIT license, ultra-cheap pricing â but real-world performance trails GLM 5.1, Qwen 3.6 Plus, and Minimax M2.7."};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek V4 Flash Review (2026) â Specs, Tests & Speed"}),e.jsx("meta",{name:"description",content:"In-depth DeepSeek V4 review covering Pro (1.6T MoE) & Flash (284B MoE) specs, verified per-token pricing, 1M context, benchmarks vs Claude Opus and GPT-5.4, and real-world coding tests."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-v4-flash-review"}),e.jsx("meta",{property:"og:title",content:"DeepSeek V4 Flash Review: The Ultimate Breakdown"}),e.jsx("meta",{property:"og:description",content:"Specs, pricing and benchmark reality-check for DeepSeek V4 Pro and V4 Flash. Is it really benchmark maxed?"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-v4-flash-review"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2619),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek V4 Flash Review: The Ultimate Breakdown"}),e.jsx("meta",{name:"twitter:description",content:"Specs, pricing and benchmark reality-check for DeepSeek V4 Pro and V4 Flash. Is it really benchmark maxed?"}),e.jsx("meta",{name:"keywords",content:"DeepSeek V4, DeepSeek V4 Flash, DeepSeek V4 Pro, DeepSeek V4 review, DeepSeek Flash benchmark, DeepSeek pricing, open source AI"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsx("div",{className:"min-h-screen bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-16",children:[e.jsx(ur,{currentPage:"DeepSeek V4 Flash Review"}),e.jsxs("article",{className:"mt-6",children:[e.jsxs("header",{className:"mb-10",children:[e.jsxs("div",{className:"flex flex-wrap gap-2 mb-4",children:[e.jsx(qs,{variant:"secondary",children:"Review"}),e.jsx(qs,{variant:"outline",children:"DeepSeek V4 Preview"}),e.jsx(qs,{variant:"outline",children:"MIT License"}),e.jsx(qs,{variant:"outline",children:"1M Context"})]}),e.jsx("h1",{className:"text-4xl sm:text-5xl font-bold text-foreground mb-4 leading-tight",children:"DeepSeek V4 Preview Review: The Ultimate Breakdown of Specs, Tests, and Real-World Performance"}),e.jsxs("p",{className:"text-lg text-muted-foreground",children:["The DeepSeek team is back with their highly anticipated V4 Preview, built around a massive 1 million context length. Released under the MIT license â a huge win for the open-source community â the release includes two distinct models: the flagship ",e.jsx("strong",{children:"Pro"})," and the cost-effective ",e.jsx("strong",{children:"Flash"}),"."]})]}),e.jsx("section",{className:"mb-12",children:e.jsx("p",{className:"text-base leading-relaxed text-foreground/90 mb-4",children:"DeepSeek claims these models are the top open-source performers, rivaling closed-source giants and excelling in reasoning, STEM, coding, and agentic workflows. But does the real-world performance live up to the impressive benchmarks? Let's dive deep into the specs, pricing, and extensive testing."})}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-6 flex items-center gap-2",children:[e.jsx(yo,{className:"h-7 w-7 text-primary"}),"Under the Hood: Specs and Pricing"]}),e.jsx("p",{className:"text-foreground/90 mb-6",children:"DeepSeek offers two distinct flavors in this preview release, both highly efficient and incredibly cheap."}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6 mb-6",children:[e.jsxs(ie,{className:"border-2 border-primary/30",children:[e.jsxs(Ot,{children:[e.jsxs(Ft,{className:"flex items-center gap-2",children:[e.jsx(oy,{className:"h-5 w-5 text-primary"}),"DeepSeek V4 Pro"]}),e.jsxs(bs,{children:["The Flagship · model id: ",e.jsx("code",{children:"deepseek-v4-pro"})]})]}),e.jsxs(me,{className:"space-y-2 text-sm",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Size:"})," 1.6T total params · 49B active"]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Context:"})," 1M tokens · Max output 384K"]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Input (cache miss):"})," $",t.inputCacheMiss," / 1M tokens"]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Input (cache hit):"})," $",t.inputCacheHit," / 1M tokens"]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Output:"})," $",t.output," / 1M tokens"]})]})]}),e.jsxs(ie,{className:"border-2 border-accent/30",children:[e.jsxs(Ot,{children:[e.jsxs(Ft,{className:"flex items-center gap-2",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary"}),"DeepSeek V4 Flash"]}),e.jsxs(bs,{children:["The Lightweight Alternative · model id: ",e.jsx("code",{children:"deepseek-v4-flash"})]})]}),e.jsxs(me,{className:"space-y-2 text-sm",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Size:"})," 284B total params · 13B active"]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Context:"})," 1M tokens · Max output 384K"]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Input (cache miss):"})," $",n.inputCacheMiss," / 1M tokens"]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Input (cache hit):"})," $",n.inputCacheHit," / 1M tokens"]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Output:"})," $",n.output," / 1M tokens"]})]})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground mb-4",children:["Rates are per 1M tokens in USD, read from our single pricing source of truth (last verified ",$t.lastVerified,"). See"," ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline",children:"DeepSeek pricing"})," ","for the full rate card and price history."]}),e.jsx(ie,{className:"bg-muted/40 mb-4",children:e.jsxs(me,{className:"pt-6 flex items-start gap-3",children:[e.jsx(Ai,{className:"h-5 w-5 text-primary mt-0.5 flex-shrink-0"}
2619),e.jsxs("p",{className:"text-sm text-foreground/90",children:[e.jsx("strong",{children:"Availability:"})," Open weights are available on HuggingFace and Ollama Cloud, or free via the official DeepSeek chatbot. The API is OpenAI- and Anthropic-compatible (",e.jsx("code",{children:"https://api.deepseek.com"})," · ",e.jsx("code",{children:"/anthropic"}),") and supports JSON mode, tool calls, FIM completion, and chat-prefix completion."]})]})}),e.jsx(ie,{className:"bg-primary/5 border-primary/20",children:e.jsxs(me,{className:"pt-6 flex items-start gap-3",children:[e.jsx(zr,{className:"h-5 w-5 text-primary mt-0.5 flex-shrink-0"}),e.jsxs("p",{className:"text-sm text-foreground/90",children:[e.jsx("strong",{children:"Heads up â deprecation:"})," the legacy ",e.jsx("code",{children:"deepseek-chat"})," and"," ",e.jsx("code",{children:"deepseek-reasoner"})," model ids will be deprecated on ",e.jsx("strong",{children:"2026-07-24"}),". They map to V4 Flash's non-thinking and thinking modes respectively, so plan a migration to ",e.jsx("code",{children:"deepseek-v4-flash"})," or ",e.jsx("code",{children:"deepseek-v4-pro"})," well before that date."]})]})})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6",children:'Benchmarks vs. Reality: Is it "Benchmark Maxed"?'}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["DeepSeek positioned V4 against Gemini 3.1 Pro and GPT-5.4 on several reasoning and coding benchmarks. It made ",e.jsx("em",{children:"no"}),' claim against Claude Opus 4.8 â Opus 4.8 shipped after V4, so any "V4 beats Opus 4.8" line you see online is a third-party comparison, not a DeepSeek claim. Hands-on, the models read as partly ',e.jsx("em",{children:'"benchmark maxed"'}),": strong on standard tests, less consistent in practical use."]}),e.jsxs("p",{className:"text-foreground/90",children:["Community leaderboards back that up. On ",e.jsx("strong",{children:"Code Arena"}),", ",e.jsx("code",{children:"deepseek-v4-pro"}),"sits at ",e.jsx("strong",{children:"#35"})," and its thinking variant at ",e.jsx("strong",{children:"#31"})," â well behind other Chinese models such as ",e.jsx("strong",{children:"GLM 5.1"})," and ",e.jsx("strong",{children:"Kimi K2.6"}),", and behind the Western frontier. Leaderboard positions move constantly; check the live board before quoting them."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-6 flex items-center gap-2",children:[e.jsx(zr,{className:"h-7 w-7 text-primary"}),"The Backlash and the Verdict"]}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:['Calling the DeepSeek V4 models "mid" has sparked significant backlash on Twitter, particularly from the Chinese AI community. The honest reading is narrower: on public coding leaderboards the V4 family currently ranks below ',e.jsx("strong",{children:"GLM 5.1"})," and ",e.jsx("strong",{children:"Kimi K2.6"}),", and below the Western frontier including Claude Opus 4.8 â which launched after V4 and which DeepSeek never benchmarked against. What V4 does win on is price per token, by a wide margin."]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4 mt-6",children:[e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-3",children:e.jsxs(Ft,{className:"text-lg flex items-center gap-2 text-primary",children:[e.jsx(Jt,{className:"h-5 w-5"})," Pros"]})}),e.jsxs(me,{className:"text-sm space-y-2",children:[e.jsx("p",{children:"⢠Massive 1M context length"}),e.jsx("p",{children:"⢠MIT license â fully open"}),e.jsx("p",{children:"⢠Incredibly cheap pricing"}),e.jsx("p",{children:"⢠Flash model punches above its weight"}),e.jsx("p",{children:"⢠Strong on 360° / 3D rotational tasks"})]})]}),e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-3",children:e.jsxs(Ft,{className:"text-lg flex items-center gap-2 text-destructive",children:[e.jsx(gh,{className:"h-5 w-5"})," Cons"]})}),e.jsxs(me,{className:"text-sm space-y-2",children:[e.jsx("p",{children:'⢠Feels "benchmark maxed"'}),e.jsx("p",{children:"⢠Sloppy real-world execution"}),e.jsx("p",{children:"⢠Lags behind GLM 5.1 & Qwen 3.6 Plus"}),e.jsx("p",{children:"⢠Front-end output looks dated"}),e.jsx("p",{children:"⢠Pro model fails complex agentic flows"})]})]})]}
2619),e.jsx("p",{className:"text-foreground/90 mt-6 text-lg italic border-l-4 border-primary pl-4",children:"While the pricing, context length, and efficiency make DeepSeek V4 an incredible base for future development, this preview version needs serious refinement. At the end of the day, cheaper doesn't make it better â it just means it's cheaper."})]}),e.jsxs("section",{className:"mb-12 text-center bg-muted/40 rounded-lg p-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-3",children:"Try DeepSeek in your browser"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Access DeepSeek V4 and other models directly from any webpage with the AI Sidebar Chrome Extension."}),e.jsx(Ke,{asChild:!0,size:"lg",className:"bg-primary hover:bg-primary/90",children:e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",children:["Install AI Sidebar ",e.jsx(wn,{className:"ml-2 h-4 w-4"})]})})]}),e.jsxs("section",{className:"border-t pt-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Reading"}),e.jsx(Nn,{}),e.jsxs("div",{className:"mt-6 flex flex-wrap gap-3",children:[e.jsx(se,{to:"/blog/deepseek-v4-compressed-attention",className:"text-primary hover:underline",children:"How V4 Compressed Attention works (KV-cache 2%) â"}),e.jsx(se,{to:"/deepseek-v4",className:"text-primary hover:underline",children:"DeepSeek V4 overview â"}),e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"text-primary hover:underline",children:"DeepSeek vs ChatGPT â"}),e.jsx(se,{to:"/deepseek-vs-claude",className:"text-primary hover:underline",children:"DeepSeek vs Claude â"})]})]})]})]})})]})},UX=()=>{const t=[{q:"What is DeepSeek V4 Compressed Attention?",a:"Compressed Attention is the umbrella name for the attention architecture inside DeepSeek-V4. It combines Compressed Sparse Attention (CSA), Heavily Compressed Attention (HCA) and low-rank query/output projections to shrink the KV-cache to roughly 2% of a standard transformer while keeping a 1M-token context window."},{q:"How does DeepSeek V4 reduce KV-cache memory by ~98%?",a:"Instead of storing one Key-Value entry per token, DeepSeek V4 groups tokens (4 at a time for CSA, 128 at a time for HCA) and stores a single compressed entry per group. Combined with low-rank queries (~15.8% of original parameters) and grouped output projections (~14.3%), the cache footprint drops to about 2% of a vanilla transformer at the same sequence length."},{q:"What is Compressed Sparse Attention (CSA)?",a:"CSA is a token-level compressor that merges small groups of tokens (typically 4) into one Key-Value entry using data-dependent per-dimension weighting. Overlapping windows are used between groups so information transitions smoothly instead of fragmenting at hard boundaries."},{q:"What is Heavily Compressed Attention (HCA)?",a:"HCA compresses up to 128 tokens into a single KV entry, acting as a global summary of the sequence. It enables reasoning over very long contexts without exploding compute, at the cost of fine-grained local detail â which CSA layers handle instead."},{q:"Why does DeepSeek V4 stack HCA, CSA and full attention in different layers?",a:"Early layers use HCA for cheap global context, middle layers alternate HCA and CSA to balance global and local information, and the final layer uses full uncompressed attention for maximum precision on the output. This hybrid stack is what allows V4 to keep state-of-the-art quality at a fraction of the memory."},{q:"How does Compressed Attention compare to MLA in DeepSeek V3?",a:"DeepSeek V3 used Multi-head Latent Attention (MLA), which compresses across the head dimension. V4's Compressed Attention shifts the compression to the sequence dimension itself, which scales much better for million-token contexts where sequence length â not head count â is the dominant memory cost."},{q:"Does Compressed Attention hurt model quality?",a:"On standard benchmarks DeepSeek V4 matches or beats prior open-source models. In real-world long-context tasks the quality is competitive, with the hybrid layer design ensuring the final precision layer is uncompressed. Trade-offs appear mainly in highly local fine-grained tasks dominated by HCA layers."},{q:"Is DeepSeek V4 Compressed Attention open source?",a:"DeepSeek V4 Preview is released under the MIT license with open weights on HuggingFace and Ollama Cloud. The architectural techniques described here are documented in DeepSeek's published papers and code releases."}],n={"@context":"https://schema.org","@type":"TechArticle",headline:"DeepSeek V4 Compressed Attention: How the KV-Cache Shrinks to Just 2%",datePublished:"2026-04-29T08:00:00+00:00",dateModified:"2026-04-29T08:00:00+00:00",author:{"@type":"Organization",name:"Independent DeepSeek Resource Hub"},publisher:{"@type":"Organization",name:"Independent DeepSeek Resource Hub",logo:{"@type":"ImageObject",url:"https://deepseek.ai/favicon.svg"}},description:"In-depth explainer of DeepSeek V4 Compressed Attention: CSA, HCA, low-rank queries and the hybrid layer stack that cut KV-cache memory to ~2% while supporting a 1M-token context.",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-v4-compressed-attention"}},s={"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(r=>
2619({"@type":"Question",name:r.q,acceptedAnswer:{"@type":"Answer",text:r.a}}))};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek V4 Compressed Attention â KV-Cache Explained"}),e.jsx("meta",{name:"description",content:"DeepSeek V4 Compressed Attention explained: CSA, HCA, low-rank queries and how KV-cache drops to ~2% with a 1M-token context."}),e.jsx("meta",{name:"keywords",content:"DeepSeek V4, DeepSeek Compressed Attention, DeepSeek V4 KV cache, Compressed Sparse Attention, Heavily Compressed Attention, DeepSeek CSA, DeepSeek HCA, DeepSeek long context, DeepSeek 1M context, DeepSeek architecture"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-v4-compressed-attention"}),e.jsx("meta",{property:"og:title",content:"DeepSeek V4 Compressed Attention: KV-Cache 2% Explained"}),e.jsx("meta",{property:"og:description",content:"DeepSeek V4 cuts KV-cache memory to ~2%. A deep dive into CSA, HCA, low-rank queries and the hybrid layer stack powering 1M-token context."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-v4-compressed-attention"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek V4 Compressed Attention: KV-Cache 2% Explained"}),e.jsx("meta",{name:"twitter:description",content:"CSA, HCA, low-rank queries and the hybrid layer stack inside DeepSeek V4. The architecture behind 1M-token context at ~2% memory."}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsx("div",{className:"min-h-screen bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-16",children:[e.jsx(ur,{currentPage:"DeepSeek V4 Compressed Attention"}),e.jsxs("article",{className:"mt-6",children:[e.jsxs("header",{className:"mb-10",children:[e.jsxs("div",{className:"flex flex-wrap gap-2 mb-4",children:[e.jsx(qs,{variant:"secondary",children:"AI Architecture"}),e.jsx(qs,{variant:"outline",children:"DeepSeek V4"}),e.jsx(qs,{variant:"outline",children:"KV-Cache 2%"}),e.jsx(qs,{variant:"outline",children:"1M Context"})]}),e.jsx("h1",{className:"text-4xl sm:text-5xl font-bold text-foreground mb-4 leading-tight",children:"DeepSeek V4 Compressed Attention: How the KV-Cache Shrinks to Just 2%"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"April 29, 2026 · Independent DeepSeek Resource Hub"}),e.jsxs("p",{className:"text-lg text-muted-foreground",children:["DeepSeek V4 keeps a 1 million-token context window while using roughly"," ",e.jsx("strong",{children:"2% of the KV-cache memory"})," a standard transformer would need. The trick is a new architecture called ",e.jsx("strong",{children:"Compressed Attention"})," â a stack of CSA, HCA and low-rank projections that compresses along the sequence dimension instead of the head dimension."]})]}),e.jsxs(ie,{className:"mb-10 bg-primary/5 border-primary/20",children:[e.jsx(Ot,{children:e.jsxs(Ft,{className:"flex items-center gap-2",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary"}),"TL;DR â DeepSeek V4 Compressed Attention in 60 seconds"]})}),e.jsxs(me,{className:"space-y-2 text-sm text-foreground/90",children:[e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"Problem:"})," KV-cache memory grows linearly with sequence length and explodes at 1M tokens."]}),e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"Fix:"})," Compress along the sequence dimension instead of the head dimension."]}),e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"CSA:"})," Groups of ~4 tokens merged into one KV entry with data-dependent weighting and overlapping windows."]}),e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"HCA:"})," Up to 128 tokens compressed into one entry â a cheap global summary."]}),e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"Low-rank:"})," Queries shrunk to ~15.8% and output projections to ~14.3% of original size."]}),e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"Hybrid stack:"})," HCA early, mixed middle, full attention at the final layer for precision."]}),e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"Result:"})," ~2% of the original KV-cache footprint, state-of-the-art quality."]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(_p,{className:"h-7 w-7 text-primary"}),"The Problem: KV-Cache Memory Explodes at Long Context"]}
2619),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["In a standard Transformer, every generated token has to attend to every previous token. To avoid recomputing, the model caches the Key and Value vectors for every past token â the"," ",e.jsx("strong",{children:"KV-cache"}),". That cache grows ",e.jsx("em",{children:"linearly"})," with sequence length and"," ",e.jsx("em",{children:"linearly"})," with the number of attention heads."]}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["At 1 million tokens â DeepSeek V4's native context window â a vanilla KV-cache becomes the single biggest memory bottleneck on inference hardware. Earlier DeepSeek work (V2, V3) tackled this with ",e.jsx("strong",{children:"Multi-head Latent Attention (MLA)"}),", compressing across the"," ",e.jsx("em",{children:"head"})," dimension. V4 takes a fundamentally different route: compress along the"," ",e.jsx("strong",{children:"sequence dimension"})," itself, where the real growth happens."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(R1,{className:"h-7 w-7 text-primary"}),"Compressed Sparse Attention (CSA)"]}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["CSA is the ",e.jsx("strong",{children:"fine-grained compressor"})," in DeepSeek V4. Instead of storing one KV entry per token, it groups small windows of tokens â typically four â into a single compressed Key-Value pair."]}),e.jsxs("div",{className:"grid md:grid-cols-3 gap-4 mb-6",children:[e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-2",children:e.jsx(Ft,{className:"text-base",children:"Token-level compressor"})}),e.jsx(me,{className:"text-sm text-foreground/80",children:"Groups of ~4 tokens are merged into a single KV entry, instantly cutting cache size 4Ã before any other optimisation kicks in."})]}),e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-2",children:e.jsx(Ft,{className:"text-base",children:"Data-dependent weighting"})}),e.jsxs(me,{className:"text-sm text-foreground/80",children:["Rather than averaging, the model learns ",e.jsx("em",{children:"per dimension"})," which information matters most to keep â so important features survive compression."]})]}),e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-2",children:e.jsx(Ft,{className:"text-base",children:"Overlapping windows"})}),e.jsx(me,{className:"text-sm text-foreground/80",children:"Groups overlap instead of butting up against each other, preventing hard boundaries and keeping information flow smooth across compressed entries."})]})]}),e.jsxs("p",{className:"text-foreground/90",children:["The net effect: CSA preserves the ",e.jsx("em",{children:"local"})," resolution the model needs for precise next-token prediction, while still cutting the cache to a fraction of the original."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(Z_,{className:"h-7 w-7 text-primary"}),"Heavily Compressed Attention (HCA)"]}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["For the truly long stretches of context, DeepSeek V4 falls back to ",e.jsx("strong",{children:"HCA"})," â a much more aggressive compressor that bundles up to ",e.jsx("strong",{children:"128 tokens into a single KV entry"}),"."]}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["HCA acts as a ",e.jsx("em",{children:"global summary"}),'. Individual fine-grained details are sacrificed, but the model can suddenly reason over enormous spans of text without compute or memory blowing up. In practice, HCA layers behave like a "long-range index" that the precise CSA and full attention layers can refer back to.']})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"Low-Rank Queries & Grouped Output Projection"}),e.jsxs("p",{className:"text-foreground/90 mb-6",children:["Compressing the KV-cache solves memory. To also cut ",e.jsx("em",{children:"compute"}),", DeepSeek V4 shrinks the projection matrices themselves:"]}),e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Component"}),e.jsx(qe,{children:"What gets shrunk"}),e.jsx(qe,{children:"Approx. size vs. baseline"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Low-rank queries"}),e.jsx(U,{children:"Query projection matrices factorised into two smaller matrices."}),e.jsx(U,{children:e.jsx(qs,{variant:"secondary",children:"~15.8%"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"Grouped output projection"}),e.jsx(U,{children:"Output projection shared across grouped heads."}),e.jsx(U,{children:e.jsx(qs,{variant:"secondary",children:"~14.3%"})})]}),e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium",children:"KV-cache (CSA + HCA)"}),e.jsx(U,{children:"Per-group compressed entries instead of per-token."}),e.jsx(U,{children:e.jsx(qs,{children:"~2%"})})]})]})]})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Figures based on the architecture summary in Jia-Bin Huang's DeepSeek V4 explainer."})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(yo,{className:"h-7 w-7 text-primary"}),"The Hybrid Layer Stack"]}
2619),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["The real cleverness of Compressed Attention is ",e.jsx("em",{children:"where"})," each variant gets used. DeepSeek V4 doesn't apply one technique uniformly â it stacks them by depth:"]}),e.jsxs("div",{className:"space-y-3 mb-6",children:[e.jsx(ie,{className:"border-l-4 border-l-primary",children:e.jsxs(Ot,{className:"pb-2",children:[e.jsx(Ft,{className:"text-base",children:"Early layers â HCA"}),e.jsx(bs,{children:"Cheap global summary of the entire context window."})]})}),e.jsx(ie,{className:"border-l-4 border-l-primary/60",children:e.jsxs(Ot,{className:"pb-2",children:[e.jsx(Ft,{className:"text-base",children:"Middle layers â alternating HCA and CSA"}),e.jsx(bs,{children:"Balance between long-range overview and local detail."})]})}),e.jsx(ie,{className:"border-l-4 border-l-primary/30",children:e.jsxs(Ot,{className:"pb-2",children:[e.jsx(Ft,{className:"text-base",children:"Final layer â full uncompressed attention"}),e.jsx(bs,{children:"Maximum precision for the output token, no information loss."})]})})]}),e.jsx("p",{className:"text-foreground/90",children:"Because the final layer is uncompressed, the model still gets a clean, high-resolution view when it actually generates the next token. The expensive compute is concentrated where it matters most."})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"Why Compressed Attention Matters"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-foreground/90",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Million-token context becomes practical."})," Memory is no longer the wall â hardware that previously couldn't host long-context inference now can."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Inference cost collapses."})," Smaller KV-cache + smaller projections means cheaper serving, which directly enables DeepSeek V4 Flash's $0.14 / 1M input pricing."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Open-source impact."})," With MIT-licensed weights, the entire community can inspect and reuse the Compressed Attention design."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Architecture trend."})," Sequence-dimension compression is likely to become standard in the next wave of long-context models."]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6",children:"Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:t.map((r,a)=>e.jsxs(ss,{value:`faq-${a}`,children:[e.jsx(rs,{className:"text-left",children:r.q}),e.jsx(as,{className:"text-foreground/85",children:r.a})]},a))})]}),e.jsxs("section",{className:"mb-12 text-center bg-muted/40 rounded-lg p-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-3",children:"Try DeepSeek V4 in your browser"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Access DeepSeek V4 Pro and Flash directly from any webpage with the AI Sidebar Chrome Extension."}),e.jsx(Ke,{asChild:!0,size:"lg",className:"bg-primary hover:bg-primary/90",children:e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",children:["Install AI Sidebar ",e.jsx(wn,{className:"ml-2 h-4 w-4"})]})})]}),e.jsxs("section",{className:"border-t pt-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Related Reading"}),e.jsxs("div",{className:"flex flex-wrap gap-3 mb-6",children:[e.jsx(se,{to:"/blog/deepseek-v4-flash-review",className:"text-primary hover:underline",children:"DeepSeek V4 Flash Review â"}),e.jsx(se,{to:"/blog/deepseek-v4-next-move",className:"text-primary hover:underline",children:"DeepSeek's V4 Next Move â"}),e.jsx(se,{to:"/blog/deepseek-engram-v4-architecture",className:"text-primary hover:underline",children:"DeepSeek Engram Architecture â"}),e.jsx(se,{to:"/deepseek-v4",className:"text-primary hover:underline",children:"DeepSeek V4 Overview â"})]}),e.jsx(Nn,{})]})]})]})})]})},qX=()=>{const t=[{q:"How many parameters does DeepSeek V4 have?",a:"DeepSeek-V4-Pro has 1.6 trillion total parameters with 49 billion activated per token. The lighter DeepSeek-V4-Flash has 284 billion total parameters with only 13 billion activated per token, thanks to the DeepSeekMoE Mixture-of-Experts architecture."}
2619,{q:"How efficient is DeepSeek V4 compared to V3.2 or GPT-4?",a:"In a 1-million-token context, DeepSeek V4-Pro requires only ~27% of the inference FLOPs and ~10% of the KV cache compared to DeepSeek V3.2. That is roughly a 73% reduction in compute per token and a 90% reduction in KV-cache memory at long context."},{q:"What is the difference between DeepSeek V4-Pro and V4-Flash?",a:"V4-Pro (1.6T total / 49B active) targets maximum reasoning quality and rivals proprietary frontier models. V4-Flash (284B total / 13B active) is optimised for speed and cost, ideal for high-throughput agents, coding assistants, and real-time applications."},{q:"What is Hybrid Attention in DeepSeek V4?",a:"DeepSeek V4 uses a novel attention design combining token-wise compression with DeepSeek Sparse Attention (DSA). In practice it stacks Compressed Sparse Attention (CSA), Heavily Compressed Attention (HCA) and Sliding Window Attention (SWA) to make 1M-token context tractable."},{q:"What are the Muon optimizer and mHC?",a:"Muon is a new optimizer that replaces AdamW for most modules in V4, delivering faster convergence and better stability at trillion-parameter scale. mHC (Manifold-Constrained Hyper-Connections) is an upgrade to residual connections that stabilises signal propagation across very deep networks."},{q:"How do I try DeepSeek V4?",a:"DeepSeek V4 is live on chat.deepseek.com via Expert Mode (V4-Pro) and Instant Mode (V4-Flash). Developers can call it through the official API by setting the model to deepseek-v4-pro or deepseek-v4-flash â the base_url stays the same. Both OpenAI ChatCompletions and Anthropic-compatible APIs are supported."},{q:"Will deepseek-chat and deepseek-reasoner still work?",a:"DeepSeek announced that the legacy deepseek-chat and deepseek-reasoner models will be fully retired and inaccessible after July 24, 2026, 15:59 UTC. Until then, those endpoints route to deepseek-v4-flash (non-thinking and thinking respectively)."},{q:"Does DeepSeek V4 support Thinking mode?",a:"Yes. Both V4-Pro and V4-Flash expose dual modes â Thinking and Non-Thinking â across a 1M-token context window, configurable per request via the standard DeepSeek API thinking-mode parameter."},{q:"Where can I download DeepSeek V4?",a:"DeepSeek-V4 model checkpoints are released through the official DeepSeek-AI collection on Hugging Face under an open license, alongside open-sourced kernels such as MegaMoE and the TileLang libraries. The full technical report is published as DeepSeek_V4.pdf on the V4-Pro repository."},{q:"Is DeepSeek V4 really state-of-the-art?",a:"On open benchmarks DeepSeek V4-Pro-Max posts 57.9% on SimpleQA Verified (SOTA for open models), a perfect 120/120 on Putnam-2025, 57.9% on LiveCodeBench, and 90.2% on MRCR 1M retrieval â beating Gemini 3.1 Pro on long-context retrieval. DeepSeek also reports open-source SOTA on agentic coding benchmarks."}],n={"@context":"https://schema.org","@type":"TechArticle",headline:"DeepSeek V4 Unveiled: Breaking the AI Efficiency Barrier with 1.6 Trillion Parameters",datePublished:"2026-05-01T08:00:00+00:00",dateModified:"2026-05-01T08:00:00+00:00",author:{"@type":"Organization",name:"Independent DeepSeek Resource Hub"},publisher:{"@type":"Organization",name:"Independent DeepSeek Resource Hub",logo:{"@type":"ImageObject",url:"https://deepseek.ai/favicon.svg"}},description:"DeepSeek V4 launches with 1.6T parameters (49B active), 1M-token context, Hybrid Attention, the Muon optimizer, mHC and benchmark scores rivalling GPT-5.4 and Gemini 3.1 Pro.",mainEntityOfPage:{"@type":"WebPage","@id":"https://deepseek.ai/blog/deepseek-v4-unveiled-1-6-trillion-parameters"}},s={"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(r=>({"@type":"Question",name:r.q,acceptedAnswer:{"@type":"Answer",text:r.a}}))};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek V4 Unveiled â 1.6T Params & 1M Context"}),e.jsx("meta",{name:"description",content:"DeepSeek V4 launches with 1.6T parameters, 1M-token context, Hybrid Attention, Muon optimizer and strong open-source benchmark scores."}),e.jsx("meta",{name:"keywords",content:"DeepSeek V4, DeepSeek V4 Pro, DeepSeek V4 Flash, deepseek-v4-pro, deepseek-v4-flash, DeepSeek 1.6 trillion parameters, DeepSeek MoE, DeepSeek Sparse Attention, DSA, DeepSeek Hybrid Attention, DeepSeek Muon optimizer, DeepSeek mHC, DeepSeek 1M context, DeepSeek API, DeepSeek thinking mode, DeepSeek agentic coding, DeepSeek benchmarks 2026"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/blog/deepseek-v4-unveiled-1-6-trillion-parameters"}),e.jsx("meta",{property:"og:title",content:"DeepSeek V4 Unveiled: 1.6T Parameters & 1M Context"}),e.jsx("meta",{property:"og:description",content:"Inside DeepSeek V4: 1.6T MoE, Hybrid Attention, Muon optimizer, mHC, and benchmarks rivalling GPT-5.4 and Gemini 3.1 Pro."}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/blog/deepseek-v4-unveiled-1-6-trillion-parameters"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2619),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek V4 Unveiled: 1.6T Parameters & 1M Context"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek V4 brings 1.6T MoE, Hybrid Attention, the Muon optimizer and SOTA open-source benchmarks."}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsx("div",{className:"min-h-screen bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-16",children:[e.jsx(ur,{currentPage:"DeepSeek V4 Unveiled"}),e.jsxs("article",{className:"mt-6",children:[e.jsxs("header",{className:"mb-10",children:[e.jsxs("div",{className:"flex flex-wrap gap-2 mb-4",children:[e.jsx(qs,{variant:"secondary",children:"AI Architecture"}),e.jsx(qs,{variant:"outline",children:"DeepSeek V4"}),e.jsx(qs,{variant:"outline",children:"1.6T Parameters"}),e.jsx(qs,{variant:"outline",children:"1M Context"}),e.jsx(qs,{variant:"outline",children:"Open Source"})]}),e.jsx("h1",{className:"text-4xl sm:text-5xl font-bold text-foreground mb-4 leading-tight",children:"DeepSeek V4 Unveiled: Breaking the AI Efficiency Barrier with 1.6 Trillion Parameters"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"May 1, 2026 · Independent DeepSeek Resource Hub"}),e.jsxs("p",{className:"text-lg text-muted-foreground",children:["The AI landscape is witnessing a massive paradigm shift. While the industry grapples with the immense computational power required for ultra-long contexts, DeepSeek-AI has introduced the"," ",e.jsx("strong",{children:"V4 series"})," â a Mixture-of-Experts model with"," ",e.jsx("strong",{children:"1.6 trillion parameters"})," and native support for"," ",e.jsx("strong",{children:"1 million tokens"}),", setting a new benchmark for open-source intelligence."]})]}),e.jsxs(ie,{className:"mb-10 bg-primary/5 border-primary/20",children:[e.jsx(Ot,{children:e.jsxs(Ft,{className:"flex items-center gap-2",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary"}),"TL;DR â DeepSeek V4 in 60 seconds"]})}),e.jsxs(me,{className:"space-y-2 text-sm text-foreground/90",children:[e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"Two variants:"})," V4-Pro (1.6T total / 49B active) and V4-Flash (284B / 13B active)."]}),e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"Native 1M-token context"})," via Hybrid Attention (CSA + HCA + SWA)."]}),e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"Efficiency:"})," ~27% of V3.2's FLOPs and ~10% of its KV cache at 1M tokens."]}),e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"Stability:"})," Muon optimizer replaces AdamW; mHC stabilises deep residual stacks."]}),e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"Benchmarks:"})," SOTA SimpleQA, perfect Putnam-2025, beats Gemini 3.1 Pro on MRCR 1M."]}),e.jsxs("p",{children:["⢠",e.jsx("strong",{children:"Open:"})," Released on Hugging Face with open kernels (MegaMoE, TileLang)."]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(yo,{className:"h-7 w-7 text-primary"}),"1. Architecture of a Giant: 1.6T Parameters, Intelligently Distributed"]}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["DeepSeek-V4-Pro is a technical masterpiece. Although the model boasts a staggering"," ",e.jsx("strong",{children:"1.6 trillion (1.6T) parameters"}),", it only activates"," ",e.jsx("strong",{children:"49 billion (49B)"})," per token â making it not only more powerful but also unprecedentedly efficient."]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4 mb-4",children:[e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-2",children:e.jsx(Ft,{className:"text-base",children:"DeepSeek-V4-Pro"})}
2619),e.jsx(me,{className:"text-sm text-foreground/80",children:e.jsxs("p",{children:[e.jsx("strong",{children:"1.6T total"})," · 49B activated per token. Frontier-class reasoning rivalling proprietary models."]})})]}),e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-2",children:e.jsx(Ft,{className:"text-base",children:"DeepSeek-V4-Flash"})}),e.jsx(me,{className:"text-sm text-foreground/80",children:e.jsxs("p",{children:[e.jsx("strong",{children:"284B total"})," · 13B activated. Ultra-fast and cheap â built for agents, coding assistants and real-time apps."]})})]})]}),e.jsxs("p",{className:"text-foreground/90",children:["The series retains the proven ",e.jsx("strong",{children:"DeepSeekMoE framework"})," and the"," ",e.jsx("strong",{children:"Multi-Token Prediction (MTP)"})," strategy from V3, while introducing entirely new attention and optimisation machinery on top."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(R1,{className:"h-7 w-7 text-primary"}),"2. The Secret to 1 Million Tokens: Hybrid Attention"]}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["The most significant innovation in V4 is its handling of ultra-long sequences. Traditional attention scales ",e.jsx("em",{children:"quadratically"})," with sequence length â a hard wall at 1M tokens. DeepSeek breaks through with a ",e.jsx("strong",{children:"Hybrid Attention"})," architecture combining three complementary branches:"]}),e.jsxs("div",{className:"grid md:grid-cols-3 gap-4 mb-4",children:[e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-2",children:e.jsx(Ft,{className:"text-base",children:"CSA"})}),e.jsxs(me,{className:"text-sm text-foreground/80",children:[e.jsx("strong",{children:"Compressed Sparse Attention"})," â compresses the KV cache for every ",e.jsx("em",{children:"m"})," tokens into one entry, then applies sparse attention on top."]})]}),e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-2",children:e.jsx(Ft,{className:"text-base",children:"HCA"})}),e.jsxs(me,{className:"text-sm text-foreground/80",children:[e.jsx("strong",{children:"Heavily Compressed Attention"})," â even more aggressive compression for global context, with dense attention preserved."]})]}),e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-2",children:e.jsx(Ft,{className:"text-base",children:"SWA"})}),e.jsxs(me,{className:"text-sm text-foreground/80",children:[e.jsx("strong",{children:"Sliding Window Attention"})," â supplementary branch that maintains razor-sharp local dependencies."]})]})]}),e.jsx(ie,{className:"bg-primary/5 border-primary/20",children:e.jsxs(me,{className:"pt-6 text-foreground/90",children:[e.jsx("strong",{children:"The result?"})," In a 1-million-token scenario, V4-Pro requires only"," ",e.jsx("strong",{children:"27% of the inference FLOPs"})," and a mere ",e.jsx("strong",{children:"10% of the KV cache"})," ","compared to DeepSeek V3.2."]})}),e.jsxs("p",{className:"text-sm text-muted-foreground mt-4",children:["Want a deeper dive into the compressed-attention internals? Read"," ",e.jsx(se,{to:"/blog/deepseek-v4-compressed-attention",className:"text-primary underline",children:"DeepSeek V4 Compressed Attention: How the KV-Cache Shrinks to Just 2%"}),"."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(Z_,{className:"h-7 w-7 text-primary"}),"3. Training Stability: Muon and mHC"]}),e.jsx("p",{className:"text-foreground/90 mb-4",children:"Training a model of this scale often leads to numerical instability. DeepSeek V4 introduces two critical stabilisers:"}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-foreground/90 mb-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Muon Optimizer"})," â replaces AdamW for the majority of modules, delivering faster convergence and improved training stability at trillion-parameter scale."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Manifold-Constrained Hyper-Connections (mHC)"})," â an upgrade to conventional residual connections that stabilises signal propagation across the model's many layers. Read more in our deep dive on"," ",e.jsx(se,{to:"/blog/deepseek-mhc-manifold-constrained-hyper-connections",className:"text-primary underline",children:"mHC explained"}),"."]})]}),e.jsx(ie,{className:"bg-muted/50",children:e.jsxs(me,{className:"pt-6 text-sm text-foreground
2619/90",children:[e.jsx("strong",{children:"Did you know?"}),' To prevent "loss spikes" (sudden training errors), DeepSeek uses ',e.jsx("strong",{children:"Anticipatory Routing"}),", where MoE routing indices are computed using",e.jsx("em",{children:" historical"})," network parameters rather than current ones."]})})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(Zc,{className:"h-7 w-7 text-primary"}),"4. Benchmarks: Open-Source Redefines the State-of-the-Art"]}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["The performance of ",e.jsx("strong",{children:"DeepSeek-V4-Pro-Max"})," (the maximum reasoning-effort mode) rivals top-tier proprietary models like GPT-5.4 and Gemini 3.1 Pro."]}),e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Category"}),e.jsx(qe,{children:"Benchmark"}),e.jsx(qe,{children:"V4-Pro-Max Score"})]})}),e.jsxs(us,{children:[e.jsxs(Le,{children:[e.jsx(U,{children:e.jsx("strong",{children:"Knowledge"})}),e.jsx(U,{children:"SimpleQA Verified"}),e.jsxs(U,{children:[e.jsx("strong",{children:"57.9%"})," (SOTA, open models)"]})]}),e.jsxs(Le,{children:[e.jsx(U,{children:e.jsx("strong",{children:"Mathematics"})}),e.jsx(U,{children:"Putnam-2025"}),e.jsxs(U,{children:[e.jsx("strong",{children:"120 / 120"})," (proof-perfect)"]})]}),e.jsxs(Le,{children:[e.jsx(U,{children:e.jsx("strong",{children:"Code"})}),e.jsx(U,{children:"LiveCodeBench"}),e.jsx(U,{children:e.jsx("strong",{children:"57.9%"})})]}),e.jsxs(Le,{children:[e.jsx(U,{children:e.jsx("strong",{children:"Long Context"})}),e.jsx(U,{children:"MRCR 1M (Retrieval)"}),e.jsxs(U,{children:[e.jsx("strong",{children:"90.2%"})," (beats Gemini 3.1 Pro)"]})]})]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(Os,{className:"h-7 w-7 text-primary"}),"5. Dedicated Agent Optimisations"]}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["DeepSeek V4 is not just a bigger model â it was explicitly tuned for"," ",e.jsx("strong",{children:"agentic workflows"}),". According to the official release notes, V4 ships as open-source SOTA on agentic coding benchmarks and is already powering DeepSeek's in-house agent stack."]}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-foreground/90 mb-4",children:[e.jsxs("li",{children:["Seamless integration with leading agent frameworks including ",e.jsx("strong",{children:"Claude Code"}),", ",e.jsx("strong",{children:"OpenClaw"})," and ",e.jsx("strong",{children:"OpenCode"}),"."]}),e.jsxs("li",{children:["V4-Flash matches V4-Pro on ",e.jsx("em",{children:"simple"})," agent tasks at a fraction of the cost."]}),e.jsxs("li",{children:["Both models support ",e.jsx("strong",{children:"dual-mode inference"})," (Thinking / Non-Thinking) on a 1M-token context â perfect for long-running tool-use loops."]})]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(L1,{className:"h-7 w-7 text-primary"}),"6. API Availability & Migration"]}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["The ",e.jsx("strong",{children:"DeepSeek V4 API is live today"}),". Per the official announcement, existing customers can keep their ",e.jsx("code",{className:"px-1 py-0.5 rounded bg-muted text-sm",children:"base_url"})," ","and only need to update the model name to"," ",e.jsx("code",{className:"px-1 py-0.5 rounded bg-muted text-sm",children:"deepseek-v4-pro"})," or"," ",e.jsx("code",{className:"px-1 py-0.5 rounded bg-muted text-sm",children:"deepseek-v4-flash"}),"."]}),e.jsxs("ul",{className:"list-disc pl-6 space-y-2 text-foreground/90 mb-4",children:[e.jsxs("li",{children:["Compatible with both ",e.jsx("strong",{children:"OpenAI ChatCompletions"})," and ",e.jsx("strong",{children:"Anthropic-style"})," APIs."]}),e.jsxs("li",{children:["Both models expose ",e.jsx("strong",{children:"1M context"})," and dual ",e.jsx("strong",{children:"Thinking / Non-Thinking"})," modes."]}),e.jsxs("li",{children:["Try interactively at ",e.jsx("strong",{children:"chat.deepseek.com"})," via ",e.jsx("strong",{children:"Expert Mode"})," (V4-Pro) or ",e.jsx("strong",{children:"Instant Mode"})," (V4-Flash)."]})]}),e.jsx(ie,{className:"bg-amber-50 border-amber-200 dark:bg-amber-950/20 dark:border-amber-900",children:e.jsxs(me,{className:"pt-6 text-sm text-foreground
2619/90",children:["â ï¸ ",e.jsx("strong",{children:"Deprecation notice:"})," The legacy"," ",e.jsx("code",{className:"px-1 py-0.5 rounded bg-muted text-xs",children:"deepseek-chat"})," and"," ",e.jsx("code",{className:"px-1 py-0.5 rounded bg-muted text-xs",children:"deepseek-reasoner"})," models will be fully retired and inaccessible after ",e.jsx("strong",{children:"July 24, 2026, 15:59 UTC"}),". Until then they transparently route to ",e.jsx("code",{className:"px-1 py-0.5 rounded bg-muted text-xs",children:"deepseek-v4-flash"})," ","(non-thinking and thinking respectively). Migrate now to avoid breakage. See our"," ",e.jsx(se,{to:"/deepseek-api",className:"text-primary underline",children:"DeepSeek API guide"})," for request examples."]})}),e.jsxs("p",{className:"text-sm text-muted-foreground mt-4",children:["Source: ",e.jsx("a",{href:"https://api-docs.deepseek.com/news/news260424",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"official DeepSeek V4 Preview release notes"})," ","· Tech report: ",e.jsx("a",{href:"https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro/blob/main/DeepSeek_V4.pdf",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"DeepSeek_V4.pdf on Hugging Face"}),"."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-2",children:[e.jsx(nT,{className:"h-7 w-7 text-primary"}),"7. Why This Changes the AI Market"]}),e.jsxs("p",{className:"text-foreground/90 mb-4",children:["DeepSeek V4 proves that we are far from the limits of ",e.jsx("strong",{children:"test-time scaling"}),". The massive efficiency gains in context processing mean complex agentic workflows and large cross-document analyses can now be performed routinely at ",e.jsx("strong",{children:"1 million tokens"}),"."]}),e.jsxs("p",{className:"text-foreground/90",children:["Furthermore, DeepSeek is committed to ",e.jsx("strong",{children:"reproducibility"}),": high-performance kernels such as ",e.jsx("strong",{children:"MegaMoE"})," and the ",e.jsx("strong",{children:"TileLang"})," libraries are open-sourced, helping the entire AI community build more efficiently. For a hands-on look at the lighter variant, see our"," ",e.jsx(se,{to:"/blog/deepseek-v4-flash-review",className:"text-primary underline",children:"DeepSeek V4 Flash review"}),"."]})]}),e.jsxs("section",{className:"mb-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6",children:"Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:t.map((r,a)=>e.jsxs(ss,{value:`faq-${a}`,children:[e.jsx(rs,{className:"text-left",children:r.q}),e.jsx(as,{className:"text-foreground/90",children:r.a})]},a))})]}),e.jsx("p",{className:"text-xs text-muted-foreground italic mb-8",children:"This blog post is based on the official DeepSeek-V4 technical preview (May 2026). Independent Resource Hub â not affiliated with DeepSeek.com."}),e.jsxs("div",{className:"border-t pt-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Related Reading"}),e.jsx(Nn,{})]})]})]})})]})},HX=()=>{const t=[{question:"Is DeepSeek AI safe to use?",answer:"Yes, DeepSeek AI is generally safe to use. It includes content filtering, safety guidelines, and moderation systems. As an open-source model, its code is publicly auditable by security researchers worldwide."},{question:"Does DeepSeek collect my data?",answer:"When using the DeepSeek API or chat interface, standard data processing applies similar to other AI services. For maximum privacy, you can run DeepSeek models locally on your own hardware, keeping all data on-premise."},{question:"Is DeepSeek open source?",answer:"Yes, DeepSeek models are open-source under the MIT license. This means anyone can inspect the code, verify its behavior, and run it independently without sending data to external servers."},{question:"Where is DeepSeek based?",answer:"DeepSeek is a Chinese AI company based in Hangzhou, China. The company was founded in 2023 and has quickly become a major player in open-source AI development."},{question:"Can I run DeepSeek locally for privacy?",answer:"Yes, one of DeepSeek's biggest advantages is local deployment. You can download the model weights and run them on your own servers or computer, ensuring complete data privacy with
2619no external API calls."},{question:"Is DeepSeek better than ChatGPT for privacy?",answer:"DeepSeek offers more privacy options than ChatGPT because it's open-source and can run locally. With ChatGPT, all conversations go through OpenAI's servers. With DeepSeek, you can choose between API access or fully local deployment."},{question:"Does DeepSeek have content filters?",answer:"Yes, DeepSeek includes content moderation and safety filters to prevent harmful outputs. However, as an open-source model, users running it locally can modify these settings at their own discretion."},{question:"Is DeepSeek secure for business use?",answer:"DeepSeek can be very secure for enterprise use, especially when deployed on-premise. Many businesses choose local deployment to maintain complete control over their data and comply with privacy regulations."}],n={"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(r=>({"@type":"Question",name:r.question,acceptedAnswer:{"@type":"Answer",text:r.answer}}))},s={"@context":"https://schema.org","@type":"Article",headline:"Is DeepSeek Safe? Security & Privacy Guide",description:"Comprehensive guide to DeepSeek AI safety, security, and privacy. Learn about data handling, local deployment, and enterprise security options.",author:{"@type":"Organization",name:"DeepSeek.ai"},publisher:{"@type":"Organization",name:"DeepSeek.ai"},datePublished:"2025-01-01",dateModified:"2025-12-20"};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Is DeepSeek Safe? 2026 Privacy, Security & Data Guide"}),e.jsx("meta",{name:"description",content:"Is DeepSeek AI safe in 2026? Honest guide to privacy, data handling, content filters and how to run DeepSeek locally for full control."}),e.jsx("meta",{name:"keywords",content:"is deepseek safe, deepseek security, deepseek privacy, deepseek data, is deepseek secure, deepseek safety, deepseek trusted"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/is-deepseek-safe"}),e.jsx("meta",{property:"og:title",content:"Is DeepSeek Safe? Security & Privacy Guide"}),e.jsx("meta",{property:"og:description",content:"Complete guide to DeepSeek AI safety, security, and privacy. Learn about data handling and local deployment options."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/is-deepseek-safe"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"Is DeepSeek Safe? Security & Privacy Guide"}),e.jsx("meta",{name:"twitter:description",content:"Complete guide to DeepSeek AI safety, security, and privacy. Learn about data handling and local deployment options."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsxs("main",{className:"min-h-screen pt-24 pb-12 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto",children:[e.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-16 h-16 bg-green-100 rounded-full mb-6",children:e.jsx(rl,{className:"h-8 w-8 text-green-600"})}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mb-4",children:"Is DeepSeek Safe?"}),e.jsx("p",{className:"text-xl text-muted-foreground",children:"A comprehensive guide to DeepSeek AI security, privacy, and safety features. Understand how your data is handled and your options for maximum privacy."})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"DeepSeek Safety Overview"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsx(vz,{className:"h-10 w-10 text-green-500 mb-4"}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Open Source Trans
2619parency"}),e.jsx("p",{className:"text-muted-foreground",children:"DeepSeek's code is publicly available for inspection. Security researchers can audit the codebase and verify its behavior."})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsx(F1,{className:"h-10 w-10 text-blue-500 mb-4"}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Local Deployment"}),e.jsx("p",{className:"text-muted-foreground",children:"Run DeepSeek entirely on your own hardware. No data leaves your infrastructure, ensuring complete privacy control."})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsx(X_,{className:"h-10 w-10 text-purple-500 mb-4"}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Content Filtering"}),e.jsx("p",{className:"text-muted-foreground",children:"Built-in safety measures and content moderation to prevent harmful or inappropriate outputs."})]})]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Security Pros & Cons"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"p-6 rounded-xl bg-green-50 border border-green-200",children:[e.jsxs("h3",{className:"text-xl font-semibold mb-4 flex items-center text-green-700",children:[e.jsx(He,{className:"h-6 w-6 mr-2"}),"Security Advantages"]}),e.jsxs("ul",{className:"space-y-3 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 mt-0.5 flex-shrink-0"}),"Open-source code allows public security auditing"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 mt-0.5 flex-shrink-0"}),"Local deployment keeps all data on-premise"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 mt-0.5 flex-shrink-0"}),"MIT license allows security modifications"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 mt-0.5 flex-shrink-0"}),"No vendor lock-in or dependency on external APIs"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(He,{className:"h-5 w-5 text-green-500 mr-2 mt-0.5 flex-shrink-0"}),"Compliant with data sovereignty requirements"]})]})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-amber-50 border border-amber-200",children:[e.jsxs("h3",{className:"text-xl font-semibold mb-4 flex items-center text-amber-700",children:[e.jsx(zr,{className:"h-6 w-6 mr-2"}),"Considerations"]}),e.jsxs("ul",{className:"space-y-3 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start",children:[e.jsx(zr,{className:"h-5 w-5 text-amber-500 mr-2 mt-0.5 flex-shrink-0"}),"API usage involves standard cloud data processing"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(zr,{className:"h-5 w-5 text-amber-500 mr-2 mt-0.5 flex-shrink-0"}),"Company based in China (relevant for some regulations)"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(zr,{className:"h-5 w-5 text-amber-500 mr-2 mt-0.5 flex-shrink-0"}),"Local deployment requires technical expertise"]}),e.jsxs("li",{className:"flex items-start",children:[e.jsx(zr,{className:"h-5 w-5 text-amber-500 mr-2 mt-0.5 flex-shrink-0"}),"Open-source means filters can be removed locally"]})]})]})]})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Your Privacy Options"}),e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Option 1: Use the API"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Use DeepSeek's cloud API for convenience. Data is processed on DeepSeek servers with standard security measures."}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Best for: Quick prototyping, non-sensitive applications, developers who prefer convenience."})]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card shadow-lg border border-green-200",children:[e.jsx("h3",{className:"text-xl font-semibold mb-3",children:"Option 2: Local Deployment"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"Download and run DeepSeek on your own servers. All data stays within your infrastru
2619cture."}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Best for: Enterprise, sensitive data, privacy-conscious users, regulatory compliance."})]})]})})]}),e.jsxs("section",{className:"mb-16 max-w-3xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Frequently Asked Questions"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"w-full",children:t.map((r,a)=>e.jsxs(ss,{value:`item-${a}`,children:[e.jsx(rs,{className:"text-left",children:r.question}),e.jsx(as,{children:r.answer})]},a))})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Related Resources"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[e.jsxs(se,{to:"/what-is-deepseek-ai",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"What is DeepSeek AI?"}),e.jsx("p",{className:"text-muted-foreground",children:"Learn about DeepSeek's technology, mission, and capabilities."})]}),e.jsxs(se,{to:"/deepseek-r1",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek R1"}),e.jsx("p",{className:"text-muted-foreground",children:"Explore DeepSeek's advanced reasoning model."})]}),e.jsxs(se,{to:"/deepseek-api",className:"p-6 rounded-xl bg-card shadow-lg border hover:shadow-xl transition-shadow",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"DeepSeek API"}),e.jsx("p",{className:"text-muted-foreground",children:"Integrate DeepSeek into your applications."})]})]})]}),e.jsxs("section",{className:"text-center bg-primary/5 rounded-2xl p-12",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"The Bottom Line"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-6 max-w-2xl mx-auto",children:"DeepSeek is safe for most use cases, especially when deployed locally. Its open-source nature provides transparency that proprietary models can't match. For sensitive applications, local deployment gives you complete control over your data."}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4",children:[e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 text-base font-medium rounded-full text-primary-foreground bg-primary hover:bg-primary/90 transition-all shadow-lg",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5"}),"Add to Chrome - It's Free"]}),e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"inline-flex items-center justify-center px-6 py-3 border-2 border-primary text-base font-medium rounded-full text-primary bg-background hover:bg-accent transition-all",children:"Compare with ChatGPT"})]})]})]})]})},$X=()=>(S.useEffect(()=>{const t=document.querySelectorAll(".adsbygoogle");return t.forEach(n=>{n.style.display="none"}),window.adsbygoogle=window.adsbygoogle||[],window.adsbygoogle.pauseAdRequests=1,()=>{window.adsbygoogle=window.adsbygoogle||[],window.adsbygoogle.pauseAdRequests=0,t.forEach(n=>{n.style.display=""})}},[]),e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Privacy Policy - DeepSeek AI Sidebar Extension"}),e.jsx("meta",{name:"description",content:"Privacy Policy for DeepSeek AI Sidebar Extension. Learn how we handle your information when using our browser extension."}),e.jsx("meta",{name:"robots",content:"index, follow"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/privacy-policy"})]}),e.jsx("main",{className:"min-h-screen pt-24 pb-16 px-4 sm:px-6 lg:px-8 bg-gradient-to-b from-white to-gray-50",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsxs("div",{className:"bg-white rounded-xl shadow-lg p-8",children:[e.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-4",children:"Privacy Policy for DeepSeek AI Sidebar Extension"}),e.jsxs("p",{className:"text-gray-600 mb-2",children:[e.jsx("strong",{children:"Last Updated:"})," January 12, 2026"]}),e.jsxs("p",{className:"text-gray-600 mb-2",children:[e.jsx("strong",{children:"Developer:"}
2619)," Extchange"]}),e.jsxs("p",{className:"text-gray-600 mb-8",children:[e.jsx("strong",{children:"Contact:"})," [email protected]"]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Introduction"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:'This Privacy Policy describes how the "DeepSeek AI Sidebar" browser extension ("Extension", "we", "our", or "us") handles your information. We are committed to protecting your privacy and being transparent about our data practices.'}),e.jsx("p",{className:"text-gray-700 leading-relaxed",children:"By installing and using this Extension, you agree to the terms of this Privacy Policy."})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Single Purpose"}),e.jsx("p",{className:"text-gray-700 leading-relaxed",children:"This Extension provides quick access to the DeepSeek AI chat service directly from your browser toolbar. Users can open the DeepSeek chat window with a single click and use the AITOPIA AI sidebar on any webpage."})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Information We Collect"}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3",children:"User Preferences (Stored Locally Only)"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"We store the following preferences locally on your device using Chrome's storage API:"}),e.jsxs("ul",{className:"list-disc pl-6 text-gray-700 mb-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Popup Display Settings:"})," Whether to show the popup window when clicking the extension icon."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Privacy Consent Status:"})," A flag indicating whether you have explicitly consented to the sidebar accessing page content."]})]}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:[e.jsx("strong",{children:"Purpose:"})," To remember your settings across browser sessions, provide a personalized experience, and ensure we do not access page content without your permission."]}),e.jsxs("p",{className:"text-gray-700 leading-relaxed",children:[e.jsx("strong",{children:"Storage Location:"})," Locally on your device via ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"chrome.storage.local"})," or ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"chrome.storage.sync"}),". This data may sync across your Chrome browsers if you are signed into Chrome sync, but is never sent to our servers."]})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Information We Do NOT Collect"}),e.jsxs("p",{className:"text-gray-700 mb-4 leading-relaxed",children:["We want to be absolutely clear about what we ",e.jsx("strong",{children:"do not"})," collect:"]}),e.jsxs("ul",{className:"text-gray-700 space-y-2",children:[e.jsx("li",{children:"â Personally identifiable information (name, email, address, phone number)"}),e.jsx("li",{children:"â Health information"}),e.jsx("li",{children:"â Financial or payment information"}),e.jsx("li",{children:"â Authentication credentials (passwords, PINs, security questions)"}),e.jsx("li",{children:"â Personal communications (emails, texts, chat messages)"}),e.jsx("li",{children:"â Location data (GPS, IP address, region)"}),e.jsx("li",{children:"â User activity data (clicks, mouse movements, keystrokes) associated with your identity"}),e.jsx("li",{children:"â AI conversation content or chat history (these remain between you and the AI provider)"})]})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3",children:"No External Data Transmission"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"We do not transmit any data to external servers."}),e.jsxs("ul",{className:"list-disc pl-6 text-gray-700 mb-4",children:[e.jsx("li",{children:"No anal
2619ytics are collected"}),e.jsx("li",{children:"No usage data is sent anywhere"}),e.jsx("li",{children:"No tracking pixels or beacons are used"}),e.jsx("li",{children:"No third-party analytics services are integrated"})]}),e.jsx("p",{className:"text-gray-700 leading-relaxed",children:"All Extension functionality operates entirely within your browser."})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"How We Use Your Information"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"We use the collected information solely for:"}),e.jsxs("ol",{className:"list-decimal pl-6 text-gray-700",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Saving Your Preferences:"})," Remembering your display settings and consent choice."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Providing Functionality:"})," Injecting the AITOPIA sidebar on webpages you visit (only after you grant permission)."]})]})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Data Sharing"}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3",children:"We Do Not Share Any Data"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"We do not sell, trade, rent, or otherwise transfer any information to third parties. Period."}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3",children:"Third-Party AI Services"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"When you use this Extension to access DeepSeek or AITOPIA:"}),e.jsxs("ul",{className:"list-disc pl-6 text-gray-700 mb-4",children:[e.jsxs("li",{children:["Your interactions with DeepSeek are governed by ",e.jsx("a",{href:"https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html?locale=en_US",className:"text-blue-600 hover:text-blue-800",target:"_blank",rel:"noopener noreferrer",children:"DeepSeek's Privacy Policy"})]}),e.jsxs("li",{children:["Your interactions with AITOPIA are governed by ",e.jsx("a",{href:"https://www.aitopia.ai/privacy-policy/",className:"text-blue-600 hover:text-blue-800",target:"_blank",rel:"noopener noreferrer",children:"AITOPIA's Privacy Policy"})]})]}),e.jsx("p",{className:"text-gray-700 leading-relaxed",children:"This Extension acts as a convenience tool to access these services. We do not intercept, store, or transmit your conversations with these AI services."})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Permissions Explained"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"This Extension requires certain browser permissions to function:"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full border-collapse border border-gray-300 mb-4",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-gray-100",children:[e.jsx("th",{className:"border border-gray-300 px-4 py-2 text-left",children:"Permission"}),e.jsx("th",{className:"border border-gray-300 px-4 py-2 text-left",children:"Why It's Needed"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 px-4 py-2 font-mono text-sm",children:"storage"}),e.jsx("td",{className:"border border-gray-300 px-4 py-2",children:"To save your preferences (popup settings and consent status) locally on your device."})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 px-4 py-2 font-mono text-sm",children:"system.display"}),e.jsx("td",{className:"border border-gray-300 px-4 py-2",children:"To center popup windows on your screen for a better user experience."})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 px-4 py-2 font-mono text-sm",children:"host_permissions (<all_urls>)"}),e.jsx("td",{className:"border border-gray-300 px-4 py-2",children:"To enable the AITOPIA AI sidebar on the webpages you visit."})]})]})]})}),e.jsxs("p",{className:"text-gray-700 leading-relaxed",children:[e.jsx("strong",{children:"Important Note:"})," The ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"<all_urls>"})," permission is required to act as a sidebar on every page. We access page content ",e.jsx("strong",{children:"solely to inject and render the sidebar interface"})," on the pages you visit. This activity occurs ",e.jsx("strong",{children:"only after you have explicitly granted consent"})," via our in-page banner. We do not transmit this page content to our servers."]})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Your Rights and Control"}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3",children:"Clear Your Data"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"You can clear all E
2619xtension data at any time:"}),e.jsxs("ol",{className:"list-decimal pl-6 text-gray-700 mb-4",children:[e.jsxs("li",{children:["Go to ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"chrome://extensions/"})]}),e.jsx("li",{children:'Find "DeepSeek AI Sidebar"'}),e.jsx("li",{children:'Click "Details"'}),e.jsx("li",{children:'Click "Clear data" under "Site access" (or "Extension options")'})]}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3",children:"Uninstall"}),e.jsx("p",{className:"text-gray-700 leading-relaxed",children:"Uninstalling the Extension removes all locally stored preferences. No data remains on our servers because we never collected any."})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Children's Privacy"}),e.jsx("p",{className:"text-gray-700 leading-relaxed",children:"This Extension is not directed at children under the age of 13. We do not knowingly collect any information from anyone, including children."})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Changes to This Privacy Policy"}),e.jsx("p",{className:"text-gray-700 leading-relaxed",children:'We may update this Privacy Policy from time to time. Changes will be indicated by updating the "Last Updated" date at the top of this policy.'})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Compliance"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"This Extension complies with:"}),e.jsxs("ul",{className:"list-disc pl-6 text-gray-700",children:[e.jsx("li",{children:"Google Chrome Web Store Developer Program Policies"}),e.jsx("li",{children:"General Data Protection Regulation (GDPR) principles"}),e.jsx("li",{children:"California Consumer Privacy Act (CCPA) principles"})]})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Contact Us"}),e.jsx("p",{className:"text-gray-700 leading-relaxed",children:"If you have any questions about this Privacy Policy, please contact us at:"}),e.jsxs("p",{className:"text-gray-700 mt-2",children:[e.jsx("strong",{children:"Email:"})," ",e.jsx("a",{href:"mailto:[email protected]",className:"text-blue-600 hover:text-blue-800",children:"[email protected]"})]})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Certifications"}),e.jsx("p",{className:"text-gray-700 mb-4 leading-relaxed",children:"We certify that:"}),e.jsxs("ul",{className:"text-gray-700 space-y-2",children:[e.jsx("li",{children:"â
We do not sell or transfer user data to third parties"}),e.jsx("li",{children:"â
We do not use or transfer user data for purposes unrelated to the Extension's single purpose"}),e.jsx("li",{children:"â
We do not use or transfer user data to determine creditworthiness or for lending purposes"})]})]}),e.jsxs("section",{className:"mb-8",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-4",children:"Summary"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full border-collapse border border-gray-300",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-gray-100",children:[e.jsx("th",{className:"border border-gray-300 px-4 py-2 text-left",children:"Aspect"}),e.jsx("th",{className:"border border-gray-300 px-4 py-2 text-left",children:"Details"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 px-4 py-2 font-semibold",children:"Data Collected"}),e.jsx("td",{className:"border border-gray-300 px-4 py-2",children:"User preferences & Consent status"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 px-4 py-2 font-semibold",children:"Data Storage"}),e.jsx("td",{className:"border border-gray-300 px-4 py-2",children:"Locally on your device only"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 px-4 py-2 font-semibold",children:"Exter
2619nal Transmission"}),e.jsx("td",{className:"border border-gray-300 px-4 py-2",children:"None - absolutely no data sent to external servers"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 px-4 py-2 font-semibold",children:"Third-Party Sharing"}),e.jsx("td",{className:"border border-gray-300 px-4 py-2",children:"None"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"border border-gray-300 px-4 py-2 font-semibold",children:"Your Control"}),e.jsx("td",{className:"border border-gray-300 px-4 py-2",children:"Full control - clear data or uninstall anytime"})]})]})]})})]}),e.jsx("hr",{className:"my-8 border-gray-300"}),e.jsx("p",{className:"text-gray-600 italic text-center",children:'This privacy policy is effective as of the "Last Updated" date above.'})]})})})]}));var DN="Switch",[WX,Ele]=nl(DN),[GX,KX]=WX(DN),YL=S.forwardRef((t,n)=>{const{__scopeSwitch:s,name:r,checked:a,defaultChecked:i,required:o,disabled:l,value:c="on",onCheckedChange:d,form:h,...p}=t,[m,u]=S.useState(null),y=Zn(n,N=>u(N)),g=S.useRef(!1),w=m?h||!!m.closest("form"):!0,[b=!1,j]=sl({prop:a,defaultProp:i,onChange:d});return e.jsxs(GX,{scope:s,checked:b,disabled:l,children:[e.jsx(ln.button,{type:"button",role:"switch","aria-checked":b,"aria-required":o,"data-state":ZL(b),"data-disabled":l?"":void 0,disabled:l,value:c,...p,ref:y,onClick:vt(t.onClick,N=>{j(A=>!A),w&&(g.current=N.isPropagationStopped(),g.current||N.stopPropagation())})}),w&&e.jsx(QX,{control:m,bubbles:!g.current,name:r,value:c,checked:b,required:o,disabled:l,form:h,style:{transform:"translateX(-100%)"}})]})});YL.displayName=DN;var JL="SwitchThumb",XL=S.forwardRef((t,n)=>{const{__scopeSwitch:s,...r}=t,a=KX(JL,s);return e.jsx(ln.span,{"data-state":ZL(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:n})});XL.displayName=JL;var QX=t=>{const{control:n,checked:s,bubbles:r=!0,...a}=t,i=S.useRef(null),o=HE(s),l=W1(n);return S.useEffect(()=>{const c=i.current,d=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(d,"checked").set;if(o!==s&&p){const m=new Event("click",{bubbles:r});p.call(c,s),c.dispatchEvent(m)}},[o,s,r]),e.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:s,...a,tabIndex:-1,ref:i,style:{...t.style,...l,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function ZL(t){return t?"checked":"unchecked"}var eM=YL,YX=XL;const tM=S.forwardRef(({className:t,...n},s)=>e.jsx(eM,{className:Ht("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",t),...n,ref:s,children:e.jsx(YX,{className:Ht("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));tM.displayName=eM.displayName;const JX=[{value:"v4-flash",label:"V4-Flash"},{value:"v4-pro",label:"V4-Pro"}],aw=t=>t<.01?`$${t.toFixed(4)}`:`$${t.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`;function XX(){const[t,n]=S.useState("v4-flash"),[s,r]=S.useState(1e6),[a,i]=S.useState(5e5),[o,l]=S.useState(50),[c,d]=S.useState(!1),[h,p]=S.useState(1e3),m=S.useMemo(()=>{const u=Al(t),y=o/100,g=y*u.inputCacheHit+(1-y)*u.inputCacheMiss;let w=s/$t.perTokens*g+a/$t.perTokens*u.output;c&&$t.peakSurcharge.applies&&$t.peakSurcharge.surchargePct&&(w*=1+$t.peakSurcharge.surchargePct/100);const b=w*h,j=Al("v4-flash"),N=y*j.inputCacheHit+(1-y)*j.inputCacheMiss,A=s/$t.perTokens*N+a/$t.perTokens*j.output;return{perCall:w,monthly:b,flashPerCall:A}},[t,s,a,o,c,h]);return e.jsxs(ie,{className:"border-2 border-primary/20",children:[e.jsxs(Ot,{children:[e.jsxs(Ft,{className:"flex items-center gap-2 text-2xl",children:[e.jsx($0,{className:"h-6 w-6 text-primary"}),"DeepSeek API Cost Calculator"]}),e.jsxs(bs,{children:["Estimate your monthly bill on V4-Flash or V4-Pro. Rates verified ",$t.lastVerified,"."]})]}),e.jsxs(me,{className:"space-y-6",children:[e.jsxs("div",{className:"grid gap-4 sm:grid-cols-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(po,{htmlFor:"calc-model",children:"Model"}),e.jsx("select",{id:"calc-model",value:t,onChange:u=>n(u.target.value),className:"w-full h-10 rounded-md border border-input bg-background px-3 text-sm",children:JX.map(u=>e.jsx("option",{value:u.value,children:u.label},u.value))})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(po,{htmlFor:"calc-input-tokens",children:"Input tokens / call"}),e.jsx(qu,{id:"calc-input-tokens",type:"number",min:0,value:s,onChange:u=>r(Math.max(0,Number(u.target.value)||0))})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(po,{htmlFor:"calc-output-tokens",children:"Output tokens / call"}),e.jsx(qu,{id:"calc-output-tokens",type:"number",min:0,value:a,onChange:u=>i(Math.max(0,Number(u.target.value)||0))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx(po,{htmlFor:"calc-cache-ratio",children:"Cache-hit ratio on input"}),e.jsxs("span",{className:"text-sm font-mono text-primary",children:[o,"%"]})]}),e.jsx(Rc,{id:"calc-cache-ratio",value:[o],onValueChange:u=>l(u[0]),min:0,max:100,step:5}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"% of input tokens that repeat a recent prefix. Stable system prompts push this above 80%."})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(po,{htmlFor:"calc-requests",children:"Requests / month"}),e.jsx(qu,{id:"calc-requests",type:"number",min:0,value:h,onChange:u=>p(Math.max(0,Number(u.target.value)||0))})]}),e.jsxs("div",{className:"flex items-end gap-3 pb-2",children:[e.jsx(tM,{id:"peakhour",checked:c,onCheckedChange:d,disabled:!$t.peakSurcharge.applies}),e.jsxs(po,{htmlFor:"peakhour",className:"text-sm",children:["Peak hours (",$t.peakSurcharge.windowUTC," UTC)",e.jsx("span",{className:"block text-xs text-muted-foreground",children:"Peak rates are double the off-peak rates shown by default"})]})]})]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-3 pt-4 border-t",children:[e.jsxs("div",{className:"rounded-lg bg-primary/10 border border-primary/20 p-4",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Cost per call"}),e.jsx("div",{className:"text-2xl font-bold text-primary",children:aw(m.perCall)})]}),e.jsxs("div",{className:"rounded-lg bg-muted/50 p-4",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Estimated monthly"}),e.jsx("div",{className:"text-2xl font-bold",children:aw(m.monthly)})]}),e.jsxs("div",{className:"rounded-lg bg-muted/50 p-4",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Same workload on V4-Flash"}),e.jsx("div",{className:"text-2xl font-bold",children:aw(m.flashPerCall)}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"per call"})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Estimate only â confirm live rates on"," ",e.jsx("a",{href:$t.source,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"DeepSeek's official pricing page"}),"."]})]})]})}const eD=[{q:"How much does the DeepSeek API cost?",a:"Off-peak, DeepSeek-V4.1-Flash is $0.15 per 1M input tokens (cache miss), $0.003 cache hit, and $0.60 per 1M output tokens. DeepSeek-V4-Pro is $0.66 / $0.022 / $1.98 per 1M tokens. During peak hours (01:00-04:00 and 06:00-10:00 UTC, Monday to Frid
2619ay) every rate doubles: Flash $0.30 / $0.006 / $1.20 and Pro $1.32 / $0.044 / $3.96. All rates are per 1 million tokens in USD, independently verified 18 September 2026."},{q:"What is cache hit vs cache miss pricing?",a:"DeepSeek automatically caches the prefix of your prompts on disk. Repeated input tokens (a system prompt, a long document, few-shot examples) are billed at the much lower cache-hit rate instead of the cache-miss rate. No SDK changes or headers required â DeepSeek shipped disk-based context caching on 2 August 2024 and it has applied automatically ever since."},{q:"How much can context caching save me?",a:"For workloads with a stable prefix, cache hits drop your effective input price by ~80â95%. If 90% of input tokens on V4.1-Flash are cache hits, your effective off-peak input rate is roughly $0.018 per 1M instead of $0.15 â an ~88% saving with no code changes."},{q:"Did DeepSeek prices go up or down in 2026?",a:"Both directions. On 31 May 2026 the V4-Pro standard rates were cut from $1.74 / $0.0145 / $3.48 to $0.435 / $0.003625 / $0.87 per 1M tokens (input miss / hit / output). Alongside the DeepSeek-V4.1-Flash general-availability release on 9 September 2026 the rate card changed again: it now has two time tiers, and both the off-peak and the peak numbers sit above the old flat rates. V4-Pro is $0.66 / $0.022 / $1.98 off-peak and double that during peak hours."},{q:"Does the DeepSeek API have peak and off-peak pricing?",a:"Yes. The official rate card now lists two tiers. Peak hours are 01:00-04:00 and 06:00-10:00 UTC, Monday to Friday (Beijing 09:00-12:00 and 14:00-18:00); every other hour, including weekends, is off-peak. Off-peak rates are exactly half of peak rates, so peak is a 100% surcharge. The separate historical V3/R1 off-peak discount â 50% off DeepSeek-V3 and 75% off DeepSeek-R1 during 16:30-00:30 UTC â ended when the deepseek-chat and deepseek-reasoner aliases were retired on 24 July 2026 at 15:59 UTC."},{q:"Is DeepSeek free to use?",a:"The DeepSeek web and mobile apps are free to chat with. The API is paid, per the token rates listed. There is no permanent free API tier, though promotional credits appear from time to time."},{q:"Why is DeepSeek so much cheaper than ChatGPT or Claude?",a:"Efficient mixture-of-experts architecture with a small active-parameter count, aggressive automatic prefix caching, and Chinese-market-optimised training costs let DeepSeek price frequently 10â30Ã cheaper than comparable US frontier APIs for similar tasks."},{q:"What happened to deepseek-chat and deepseek-reasoner?",a:"The legacy model names deepseek-chat and deepseek-reasoner were retired on 24 July 2026 at 15:59 UTC. Before that date they mapped to V4-Flash in non-thinking and thinking modes respectively; since then they are fully retired and inaccessible. Move all code to deepseek-flash (which serves DeepSeek-V4.1-Flash) or deepseek-v4-pro. The names deepseek-v4-flash and deepseek-v4-flash-vision-exp are still accepted, but those models have been retired and their requests are served by V4.1-Flash at the Flash price."},{q:"V4.1-Flash or V4-Pro â which should I use?",a:"V4.1-Flash is the default workhorse: cheap, fast, 1M-token context, ideal for chat, extraction, classification and high-volume tasks. V4-Pro is the frontier tier for the hardest reasoning, agentic and coding work. Start on Flash, route only the hardest calls to Pro."},{q:"How does DeepSeek billing work?",a:"DeepSeek bills on tokens, not requests or seats. You pay for input tokens (your prompt) plus output tokens (the completion, including reasoning tokens in thinking mode). No monthly minimum, no per-seat fee â deducted post-paid from your prepaid balance."},{q:"What are the DeepSeek API rate limits?",a:"DeepSeek documents concurrency limits only â no requests-per-minute and no tokens-per-minute figures are published. The documented ceilings are 500 concurrent requests for deepseek-v4-pro and 2,500 for deepseek-v4-flash. There are no automatic account tiers: raising those ceilings requires an explicit capacity expansion request to DeepSeek. On 429 errors, cap your in-flight requests and retry with exponential back-off."}],ZX=()=>{const t={"@context":"https://schema.org","@type":"FAQPage",mainEntity:eD.map(o=>
2619({"@type":"Question",name:o.q,acceptedAnswer:{"@type":"Answer",text:o.a}}))},n=$t.models["v4-flash"],s=$t.models["v4-pro"],r={"@context":"https://schema.org","@type":"Product",name:"DeepSeek API",description:"Per-token access to DeepSeek-V4-Flash and DeepSeek-V4-Pro.",brand:{"@type":"Brand",name:"DeepSeek"},offers:{"@type":"AggregateOffer",priceCurrency:"USD",lowPrice:n.inputCacheHit,highPrice:s.output,offerCount:6,offers:[{"@type":"Offer",name:"V4-Flash input (cache miss) per 1M tokens",price:n.inputCacheMiss,priceCurrency:"USD"},{"@type":"Offer",name:"V4-Flash input (cache hit) per 1M tokens",price:n.inputCacheHit,priceCurrency:"USD"},{"@type":"Offer",name:"V4-Flash output per 1M tokens",price:n.output,priceCurrency:"USD"},{"@type":"Offer",name:"V4-Pro input (cache miss) per 1M tokens",price:s.inputCacheMiss,priceCurrency:"USD"},{"@type":"Offer",name:"V4-Pro input (cache hit) per 1M tokens",price:s.inputCacheHit,priceCurrency:"USD"},{"@type":"Offer",name:"V4-Pro output per 1M tokens",price:s.output,priceCurrency:"USD"}]}},a={"@context":"https://schema.org","@type":"WebPage",name:"DeepSeek Pricing 2026: V4-Flash & V4-Pro API Costs",description:"Full DeepSeek V4 API pricing for 2026: V4-Flash vs V4-Pro per-token costs, automatic cache-hit savings, price history and a free cost calculator. Independently verified.",url:"https://deepseek.ai/pricing",dateModified:$t.lastVerified},i={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai"},{"@type":"ListItem",position:2,name:"Pricing",item:"https://deepseek.ai/pricing"}]};return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek API Pricing 2026: V4-Flash & V4-Pro Per-Token Costs"}),e.jsx("meta",{name:"description",content:"V4.1-Flash $0.15/M off-peak, V4-Pro $0.66/M, cache hits from $0.003, peak hours double. Free calculator, price history and full rate table. Verified 18 September."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/pricing"}),e.jsx("meta",{property:"og:title",content:"DeepSeek API Pricing 2026: V4-Flash & V4-Pro Per-Token Costs"}),e.jsx("meta",{property:"og:description",content:"Independently verified DeepSeek V4 pricing: per-token costs, cache-hit savings, price history and a free calculator."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/pricing"}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek API Pricing 2026: V4-Flash & V4-Pro Per-Token Costs"}),e.jsx("meta",{name:"twitter:description",content:"Per-token DeepSeek V4 pricing with cache-hit savings, price history and a free calculator. Independently verified."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(t)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(a)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(i)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),e.jsxs("main",{className:"container mx-auto px-4 py-8",children:[e.jsx(ur,{currentPage:"Pricing"}),e.jsxs("section",{className:"text-center mb-10 max-w-4xl mx-auto",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-6",children:e.jsx("span",{className:"bg-gradient-to-r from-primary to-primary/70 bg-clip-text text-transparent",children:"DeepSeek Pricing 2026: V4-Flash & V4-Pro API Costs"})}),e.jsxs("p",{className:"text-xl text-muted-foreground mb-4",children:["DeepSeek is one of the cheapest frontier-model APIs available in 2026 â often ",e.jsx("strong",{children:"10â30à cheaper"})," than comparable models from OpenAI or Anthropic. This page breaks down exactly what you pay: the two current models (",e.jsx("strong",{children:"V4.1-Flash"})," and ",e.jsx("strong",{children:"V4-Pro"}),"), how ",e.jsx("strong",{children:"cache hit vs cache miss"})," input pricing works, the live ",e.jsx("strong",{children:"peak vs off-peak"})," tiers, and a ",e.jsx("strong",{children:"calculator"})," to estimate your own bill."]}),e.jsxs("p",{className:"text-sm text-muted-foreground mb-6",children:["All prices are per ",e.jsx("strong",{children:"1 million tokens"}),", in ",e.jsx("strong",{children:"USD"}),", and independently verified against DeepSeek's official pricing page."]}),e.jsx("div",{className:"flex justify-center",children:e.jsx(il,{date:$t.lastVerified})})]}),e.jsx("section",{className:"mb-12 max-w-4xl mx-auto",children:e.jsx("div",{className:"rounded-lg border border-amber-500/40 bg-amber-500/5 p-5",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(zr,{className:"h-5 w-5 text-amber-600 mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"text-sm",children:[e.jsx("p",{className:"font-semibold mb-2 text-foreground",children:"Independent guide â always confirm live pricing on the official page before budgeting."}),e.jsxs("p",{className:"text-muted-foreground",children:["deepseek.ai is an independent editorial resource and is not affiliated with DeepSeek. The rate mechanisms below are correct, but DeepSeek adjusts figures frequently. Cross-check the "," ",e.jsx("a",{href:$t.source,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"official DeepSeek API pricing page"})," ","before committing to a budget."]})]})]})})}),e.jsxs("section",{className:"mb-16 max-w-5xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"DeepSeek API pricing at a glance"}),e.jsxs("p",{className:"text-muted-foreground mb-6",children:["The API exposes two models. ",e.jsx("strong",{children:"DeepSeek-V4.1-Flash"})," went generally available on ",e.jsx("strong",{children:"9 September 2026"})," and is served by the model name ",e.jsx("code",{className:"text-sm bg-muted px-1.5 py-0.5 rounded",children:"deepseek-flash"}),"; the older ",e.jsx("code",{className:"text-sm bg-muted px-1.5 py-0.5 rounded",children:"deepseek-v4-flash"})," and ",e.jsx("code",{className:"text-sm bg-muted px-1.5 py-0.5 rounded",children:"deepseek-v4-flash-vision-exp"})," names are still accepted but those models are retired and their requests are served by V4.1-Flash at the Flash price. ",e.jsx("strong",{children:"DeepSeek-V4-Pro"})," (",e.jsx("code",{className:"text-sm bg-muted px-1.5 py-0.5 rounded",children:"deepseek-v4-pro"}),") continues past 14 September 2026 with unchanged billing. The legacy names ",e.jsx("code",{className:"text-sm bg-muted px-1.5 py-0.5 rounded",children:"deepseek-chat"})," and ",e.jsx("code",{className:"text-sm bg-muted px-1.5 py-0.5 rounded",children:"deepseek-reasoner"})," were ",e.jsx("strong",{children:"retired on 24 July 2026 at 15:59 UTC"})," and are fully inaccessible â see"," ",e.jsx(se,{to:"/blog/deepseek-chat-reasoner-retired-billing-impact",className:"text-primary hover:underline font-medium",children:"deepseek-reasoner retired: migrate to V4.1-Flash, not Pro"}),"."]}),e.jsx("div",{className:"overflow-x-auto rounded-lg border",children:e.jsxs("table",{className:"w-full border-collapse text-sm",children:[e.jsx("caption",{className:"sr-only",children:"Table 1 â Current DeepSeek API rates per 1M tokens, USD, off-peak and peak"}),e.jsx("thead",{className:"bg-muted/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left py-3 px-4 font-semibold",children:"Model"}),e.jsx("th",{className:"text-left py-3 px-4 font-semibold",children:"Tier"}),e.jsx("th",{className:"text-right py-3 px-4 font-semibold",children:"Input · cache miss"}),e.jsx("th",{className:"text-right py-3 px-4 font-semibold",children:"Input · cache hit"}),e.jsx("th",{className:"text-right py-3 px-4 font-semibold",children:"Output"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-t",children:[e.jsx("td",{className:"py-3 px-4 font-medium",children:"DeepSeek-V4.1-Flash"}),e.jsx("td",{className:"py-3 px-4",children:"Off-peak"}),e.jsxs("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:["$",n.inputCacheMiss.toFixed(2)]}),e.jsxs("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:["$",n.inputCacheHit.toFixed(3)]}),e.jsxs("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:["$",n.output.toFixed(2)]})]}),e.jsxs("tr",{className:"border-t",children:[e.jsx("td",{className:"py-3 px-4 font-medium",children:"DeepSeek-V4.1-Flash"}),e.jsx("td",{className:"py-3 px-4",children:"Peak"}),e.jsxs("td",{className:"text-right py-3 px-4",children:["$",n.peak.inputCacheMiss.toFixed(2)]}),e.jsxs("td",{className:"text-right py-3 px-4",children:["$",n.peak.inputCacheHit.toFixed(3)]}),e.jsxs("td",{className:"text-right py-3 px-4",children:["$",n.peak.output.toFixed(2)]})]}),e.jsxs("tr",{className:"border-t",children:[e.jsx("td",{className:"py-3 px-4 font-medium",children:"DeepSeek-V4-Pro"}),e.jsx("td",{className:"py-3 px-4",children:"Off-peak"}),e.jsxs("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:["$",s.inputCacheMiss.toFixed(2)]}),e.jsxs("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:["$",s.inputCacheHit.toFixed(3)]}),e.jsxs("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:["$",s.output.toFixed(2)]})]}),e.jsxs("tr",{className:"border-t",children:[e.jsx("td",{className:"py-3 px-4 font-medium",children:"DeepSeek-V4-Pro"}),e.jsx("td",{className:"py-3 px-4",children:"Peak"}),e.jsxs("td",{className:"text-right py-3 px-4",children:["$",s.peak.inputCacheMiss.toFixed(2)]}),e.jsxs("td",{className:"text-right py-3 px-4",children:["$",s.peak.inputCacheHit.toFixed(3)]}),e.jsxs("td",{className:"text-right py-3 px-4",children:["$",s.peak.output.toFixed(2)]})]})]})]})}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-2",children:["Table 1 â Current DeepSeek API rates, per 1M tokens, USD. Peak hours are 01:00â04:00 and 06:00â10:00 UTC, Monday to Frid
2619ay; all other hours are off-peak. Verified ",$t.lastVerified,"."]}),e.jsxs("div",{className:"mt-6 rounded-lg border bg-muted/30 p-5",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(xo,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("h3",{className:"text-sm font-semibold",children:"Price history"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:"Older DeepSeek pricing tables and long-lived blog posts sometimes still quote the pre-cut rates. For reference:"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full border-collapse text-xs",children:[e.jsx("thead",{className:"text-muted-foreground",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left py-2 px-3 font-medium",children:"Model"}),e.jsx("th",{className:"text-left py-2 px-3 font-medium",children:"Effective until"}),e.jsx("th",{className:"text-right py-2 px-3 font-medium",children:"Input miss"}),e.jsx("th",{className:"text-right py-2 px-3 font-medium",children:"Input hit"}),e.jsx("th",{className:"text-right py-2 px-3 font-medium",children:"Output"})]})}),e.jsx("tbody",{children:$t.history.map(o=>e.jsxs("tr",{className:"border-t",children:[e.jsx("td",{className:"py-2 px-3",children:$t.models[o.model].label}),e.jsx("td",{className:"py-2 px-3",children:o.effectiveUntil}),e.jsxs("td",{className:"text-right py-2 px-3",children:["$",o.rates.inputCacheMiss.toFixed(3)]}),e.jsxs("td",{className:"text-right py-2 px-3",children:["$",o.rates.inputCacheHit.toFixed(4)]}),e.jsxs("td",{className:"text-right py-2 px-3",children:["$",o.rates.output.toFixed(2)]})]},o.effectiveUntil))})]})}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-3",children:["The V4-Pro cut was introduced as a 75% promotional discount, then made permanent â see the"," ",e.jsx(se,{to:"/blog/deepseek-v4-pro-api-price-cut-permanent",className:"text-primary hover:underline",children:"permanent V4-Pro price-cut post"})," ","for the full context."]})]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4 mt-8",children:[e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-2",children:e.jsxs(Ft,{className:"text-lg flex items-center gap-2",children:[e.jsx(Lt,{className:"h-5 w-5 text-primary"})," V4.1-Flash"]})}),e.jsx(me,{className:"text-sm text-muted-foreground",children:"The default workhorse: cheap, fast, 1M-token context. Great for chat, extraction, classification and high-volume production tasks. Start every new integration here."})]}),e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-2",children:e.jsxs(Ft,{className:"text-lg flex items-center gap-2",children:[e.jsx(qr,{className:"h-5 w-5 text-primary"})," V4-Pro"]})}),e.jsx(me,{className:"text-sm text-muted-foreground",children:"Frontier tier for the hardest reasoning, agentic and coding work. At $0.66 / $1.98 per 1M tokens off-peak (double during peak hours), Pro costs roughly 3.3Ã Flash â route only your hardest calls here to keep bills lean."})]})]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsx(XX,{}),e.jsxs("p",{className:"text-sm text-muted-foreground text-center mt-4",children:["Need to wire this up in code? See the ",e.jsx(se,{to:"/deepseek-api",className:"text-primary hover:underline",children:"DeepSeek API setup guide"}),"."]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-3",children:[e.jsx(_p,{className:"h-7 w-7 text-primary"}),"How context caching cuts your bill"]}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["DeepSeek automatically caches the ",e.jsx("strong",{children:"prefix"})," of your prompts on disk. When a new request repeats a prefix it has recently seen â a system prompt, a long document, a few-shot example set â those repeated input tokens are billed at the much lower ",e.jsx("strong",{children:"cache-hit"})," rate instead of the ",e.jsx("strong",{children:"cache-miss"})," rate. This is automatic: ",e.jsx("strong",{children:"no SDK changes, no cache-control headers, no opt-in flag"}
2619),". DeepSeek shipped disk-based context caching on ",e.jsx("strong",{children:"2 August 2024"}),", and it has applied to every model generation since â including V4."]}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed",children:["The practical impact is large for any workload with a stable prefix. If 90% of your input tokens are cache hits on V4.1-Flash, your effective off-peak input price drops from $0.15 to roughly ",e.jsx("strong",{children:"$0.018 per 1M"})," â an ~88% saving on input, with no code changes. To maximise it: keep the reusable part of your prompt (system instructions, context documents) ",e.jsx("strong",{children:"at the front"}),", and the variable part at the end."]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-3",children:[e.jsx(xo,{className:"h-7 w-7 text-primary"}),"Peak-hour pricing: now live on the official rate card"]}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["DeepSeek's old off-peak ",e.jsx("em",{children:"discount"})," â 16:30â00:30 UTC daily, ",e.jsx("strong",{children:"50% off DeepSeek-V3"})," and ",e.jsx("strong",{children:"75% off DeepSeek-R1"})," â applied to the V3/R1 generation, ",e.jsx("strong",{children:"not to V4"}),". It ended with those models: the ",e.jsx("code",{className:"text-xs bg-muted px-1 rounded",children:"deepseek-chat"})," and ",e.jsx("code",{className:"text-xs bg-muted px-1 rounded",children:"deepseek-reasoner"})," aliases were retired on ",e.jsx("strong",{children:"24 July 2026 at 15:59 UTC"}),"."]}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["What replaced it is the opposite. Since the ",e.jsx("strong",{children:"DeepSeek-V4.1-Flash"})," general-availability release, the official rate card carries ",e.jsx("strong",{children:"two tiers"}),": off-peak rates are exactly ",e.jsx("strong",{children:"half"})," of peak rates, so peak hours are a ",e.jsx("strong",{children:"100% surcharge"}),". Peak applies ",e.jsx("strong",{children:"Monday to Friday only"}),", in these two windows:"]}),e.jsx("div",{className:"overflow-x-auto rounded-lg border",children:e.jsxs("table",{className:"w-full border-collapse text-sm",children:[e.jsx("caption",{className:"sr-only",children:"Table 2 â Peak-hour windows on the official DeepSeek rate card"}),e.jsx("thead",{className:"bg-muted/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left py-3 px-4",children:"Window"}),e.jsx("th",{className:"text-left py-3 px-4",children:"UTC"}),e.jsx("th",{className:"text-left py-3 px-4",children:"UTC+8 (Beijing)"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-t",children:[e.jsx("td",{className:"py-3 px-4 font-medium",children:"Morning"}),e.jsx("td",{className:"py-3 px-4",children:"01:00â04:00"}),e.jsx("td",{className:"py-3 px-4",children:"09:00â12:00"})]}),e.jsxs("tr",{className:"border-t",children:[e.jsx("td",{className:"py-3 px-4 font-medium",children:"Afternoon"}),e.jsx("td",{className:"py-3 px-4",children:"06:00â10:00"}),e.jsx("td",{className:"py-3 px-4",children:"14:00â18:00"})]})]})]})}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed mt-4",children:["Every other hour â including all day Saturday and Sunday â is off-peak, and the off-peak rows in Table 1 apply. That is 35 peak hours out of a 168-hour week, so a workload spread evenly across the whole week pays roughly ",e.jsx("strong",{children:"21% more"})," than the off-peak rate; one that avoids both windows pays ",e.jsx("strong",{children:"nothing extra"}),"."]}),e.jsxs("div",{className:"mt-4 rounded-lg border border-primary/40 bg-primary/5 p-4 flex items-start gap-3",children:[e.jsx(h2,{className:"h-4 w-4 text-primary mt-1 flex-shrink-0"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[e.jsx("strong",{className:"text-foreground",children:"Status as of 18 September 2026: active."})," DeepSeek's"," ",e.jsx("a",{href:$t.source,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"official pricing page"})," ","now lists off-peak and peak columns for both models, with the windows above stated in UTC by DeepSeek itself. Earlier versions of this page reported the surcharge as announced-but-not-active, which was correct at the time; it went live alongside the V4.1-Flash GA release. An automated watcher checks the official rate c
2619ard weekly and flags any change; the rates in Table 1 were last confirmed by a human editor on ",$t.lastVerified,"."]})]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold mb-6",children:"Worked examples"}),e.jsxs("div",{className:"space-y-5 text-muted-foreground leading-relaxed",children:[e.jsxs("p",{children:[e.jsx("strong",{className:"text-foreground",children:"Example A â a chatbot on V4.1-Flash."})," Off-peak, 1M input tokens (all cache miss) + 1M output tokens = ",e.jsx("strong",{children:"$0.15 + $0.60 = $0.75"}),". Add a stable system prompt so 90% of input is a cache hit and the same volume costs about ",e.jsx("strong",{children:"$0.62"}),". Run the identical call inside a peak window and it costs double: ",e.jsx("strong",{children:"$1.50"}),"."]}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-foreground",children:"Example B â heavy reasoning on V4-Pro."})," Off-peak, 1M input (cache miss) + 1M output = ",e.jsx("strong",{children:"$0.66 + $1.98 = $2.64"}),"; in a peak window, ",e.jsx("strong",{children:"$5.28"}),". For context: at the preâ31 May 2026 rates the same call cost ",e.jsx("strong",{children:"$1.74 + $3.48 = $5.22"}),", and under the flat rates that ran until September 2026 it cost ",e.jsx("strong",{children:"$1.305"})," â so off-peak Pro is now roughly twice the mid-2026 flat rate."]}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-foreground",children:"Example C â the ChatGPT comparison."})," A task that costs ~$2.64 on V4-Pro or ~$0.75 on V4.1-Flash off-peak would cost several dollars to well over ten dollars on a comparable GPT-class or Claude-class model. Run the numbers for your own volume in the calculator above."]}),e.jsxs("p",{children:[e.jsx("strong",{className:"text-foreground",children:"Example D â a chatbot at scale."})," Serving 10M input + 5M output tokens per day on V4.1-Flash at off-peak rates, with a stable system prompt giving an 80% input cache-hit rate: input â 10 à (0.2 à $0.15 + 0.8 à $0.003) = ",e.jsx("strong",{children:"$0.32/day"}),"; output = 5 à $0.60 = ",e.jsx("strong",{children:"$3.00/day"}),". Total â ",e.jsx("strong",{children:"$3.32/day"})," â about ",e.jsx("strong",{children:"$100/month"})," for 15M tokens daily. The same volume on a comparable US frontier model would run into the hundreds per month."]})]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"How DeepSeek billing works"}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed",children:["DeepSeek bills on ",e.jsx("strong",{children:"tokens"}),", not on requests or seats. Every API call is charged for its ",e.jsx("strong",{children:"input tokens"})," (your prompt, system message and any supplied context) plus its ",e.jsx("strong",{children:"output tokens"})," (the model's completion); in thinking mode, reasoning tokens are billed as output. A token is roughly ¾ of an English word â 1M tokens is about 750,000 words. There is no monthly minimum and no per-seat fee: you pay for exactly what you send and receive, deducted post-paid from your prepaid balance."]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"Rate limits: concurrency only"}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["DeepSeek does ",e.jsx("strong",{children:"not"})," publish requests-per-minute (RPM) or tokens-per-minute (TPM) limits â neither figure appears anywhere in its documentation. The only documented ceiling is ",e.jsx("strong",{children:"concurrency"}),": how many requests you may have in flight at once."]}),e.jsx("div",{className:"overflow-x-auto rounded-lg border mb-4",children:e.jsxs("table",{className:"w-full border-collapse text-sm",children:[e.jsx("caption",{className:"sr-only",children:"Table 3 â Documented DeepSeek API concurrency limits"}),e.jsx("thead",{className:"bg-muted/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left py-3 px-4 font-semibold",children:"Model"}),e.jsx("th",{className:"text-right py-3 px-4 font-semibold",children:"Concurrent requests"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-t",children:[e.jsx("td",{className:"py-3 px-4 font-medium",children:e.jsx("code",{className:"text-xs bg-muted px-1 rounded",children:"deepseek-v4-pro"})}),e.jsx("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:"500"})]}),e.jsxs("tr",{className:"border-t",children:[e.jsx("td",{className:"py-3 px-4 font-medium",children:e.jsx("code",{className:"text-xs bg-muted px-1 rounded",children:"deepseek-v4-flash"})}),e.jsx("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:"2,500"})]})]})]})}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed",children:["There are ",e.jsx("strong",{children:"no account tiers"}),". Limits do not rise automatically with paid usage or account age â a higher concurrency ceiling requires an ",e.jsx("strong",{children:"explicit capacity expansion request"})," to DeepSeek. If you hit a ",e.jsx("code",{className:"text-sm bg-muted px-1.5 py-0.5 rounded",children:"429 Too Many Requests"}),", reduce the number of in-flight requests, retry with exponential back-off, and queue rather than fan out. If you need a permanently higher ceiling, contact DeepSeek to request expanded capacity."]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"V4.1-Flash vs V4-Pro: which should you use?"}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["Default to ",e.jsx("strong",{children:"V4.1-Flash"}),". It handles the vast majority of production workloads â chat, RAG, extraction, classification, translation, tool-calling â at a fraction of Pro's cost and with the same 1M-token context window. On typical mixed workloads, Flash is roughly 3à cheaper end-to-e
2619nd than Pro."]}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["Escalate to ",e.jsx("strong",{children:"V4-Pro"})," only for calls that measurably fail on Flash: multi-step reasoning, competitive-math or code-golf problems, long-horizon agent planning, and heavy self-debugging coding sessions. A common cost-effective pattern is ",e.jsx("strong",{children:"hybrid routing"})," â send every call to Flash first, and re-run on Pro only when a confidence check, evaluation model, or user thumb-down flags the answer as insufficient."]}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed",children:["For a deeper capability breakdown, see the ",e.jsx(se,{to:"/deepseek-v4",className:"text-primary hover:underline",children:"DeepSeek V4 model guide"}),"."]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"DeepSeek pricing at scale"}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["The gap widens dramatically at production volumes. A team running ",e.jsx("strong",{children:"100M tokens/day"})," on V4.1-Flash (roughly 70M input at an 80% cache-hit ratio plus 30M output) pays roughly ",e.jsx("strong",{children:"$610/month"})," at off-peak rates. The same token volume on a US frontier API runs into the tens of thousands of dollars per month â run your own numbers against the rate table below rather than trusting a headline multiple."]}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"The three levers that matter most for cost control at scale: (1) route to V4.1-Flash by default, (2) engineer prompts so the reusable prefix comes first for maximum cache-hit rate, and (3) schedule non-latency-critical batch work outside the two peak windows â that alone halves the rate on every token it moves. Together those three moves typically cut a naive DeepSeek bill by 60â80%."})]}),e.jsxs("section",{className:"mb-16 max-w-5xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"DeepSeek pricing vs ChatGPT and Claude (2026)"}),e.jsxs("p",{className:"text-muted-foreground mb-6",children:["Input / output rates per 1M tokens, verified ",la.lastVerified,". Competitor rates change frequently â verify each provider's current pricing before committing."]}),e.jsx("div",{className:"overflow-x-auto rounded-lg border",children:e.jsxs("table",{className:"w-full border-collapse text-sm",children:[e.jsx("thead",{className:"bg-muted/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left py-3 px-4",children:"Model"}),e.jsx("th",{className:"text-right py-3 px-4",children:"Input"}),e.jsx("th",{className:"text-right py-3 px-4",children:"Output"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-t bg-primary/5",children:[e.jsxs("td",{className:"py-3 px-4 font-medium",children:["DeepSeek-V4.1-Flash ",e.jsx("span",{className:"text-xs text-primary ml-1",children:"â
best value"})]}),e.jsx("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:"$0.14"}),e.jsx("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:"$0.28"})]}),e.jsxs("tr",{className:"border-t bg-primary/5",children:[e.jsx("td",{className:"py-3 px-4 font-medium",children:"DeepSeek-V4-Pro"}),e.jsx("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:"$0.435"}),e.jsx("td",{className:"text-right py-3 px-4 text-primary font-semibold",children:"$0.87"})]}),aL.map(o=>{const l=la.models[o];return e.jsxs("tr",{className:"border-t",children:[e.jsxs("td",{className:"py-3 px-4",children:[l.label,l.note&&e.jsx("span",{className:"block text-xs text-muted-foreground",children:l.note})]}),e.jsxs("td",{className:"text-right py-3 px-4",children:["$",l.input.toFixed(2)]}),e.jsxs("td",{className:"text-right py-3 px-4",children:["$",l.output.toFixed(2)]})]},o)})]})]})}),e.jsxs("p",{className:"text-sm text-muted-foreground mt-4",children:["For full feature breakdowns see our"," ",e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"text-primary hover:underline",children:"DeepSeek vs ChatGPT"})," and"," ",e.jsx(se,{to:"/deepseek-vs-claude",className:"text-primary hover:underline",children:"DeepSeek vs Claude"})," comparisons."]})]}),e.jsxs("section",{className:"mb-16 max-w-4xl mx-auto",children:[e.jsxs("h2",{className:"text-3xl font-bold mb-4 flex items-center gap-3",children:[e.jsx(h2,{className:"h-7 w-7 text-primary"}),"How we keep this page accurate"]}),e.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:'Pricing pages are only useful when the numbers are current. All rates on this page come from a single rate-config file in our
2619codebase â the table, the calculator and the "last verified" stamp cannot drift out of sync, because they all read the same source. The date shown above is the last time a human editor confirmed the numbers, not the date this page was rebuilt.'}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed mb-4",children:["Two layers: an automated job compares DeepSeek's ",e.jsx("a",{href:$t.source,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"official API pricing page"}),' against our rate-config every week and flags differences. When it flags something â or on our own review â an editor cross-checks the standing per-token rates, the cache-hit vs cache-miss columns, and the status of the announced peak-hour surcharge, updates the rate-config and the "Last verified" date, and notes the change in the ',e.jsx(se,{to:"/blog",className:"text-primary hover:underline",children:"blog changelog"}),"."]}),e.jsxs("p",{className:"text-muted-foreground leading-relaxed",children:["deepseek.ai is not affiliated with DeepSeek. If you spot a stale number, email us via the ",e.jsx(se,{to:"/contact",className:"text-primary hover:underline",children:"contact page"})," â corrections typically ship the same day."]})]}),e.jsxs("section",{className:"mb-16 max-w-5xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"How to start using DeepSeek"}),e.jsxs("div",{className:"grid md:grid-cols-3 gap-8",children:[e.jsxs(ie,{className:"border-2 border-primary/20",children:[e.jsxs(Ot,{className:"text-center pb-2",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center mx-auto mb-4",children:e.jsx(Lt,{className:"w-6 h-6 text-primary"})}),e.jsx(Ft,{className:"text-2xl",children:"Free Chat"}),e.jsx(bs,{children:"For personal use"}),e.jsxs("div",{className:"mt-4",children:[e.jsx("span",{className:"text-4xl font-bold",children:"$0"}),e.jsx("span",{className:"text-muted-foreground",children:"/month"})]})]}),e.jsxs(me,{children:[e.jsxs("ul",{className:"space-y-3 mb-6",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsx("span",{children:"Unlimited chat access"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsx("span",{children:"V4.1-Flash & V4-Pro models"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsx("span",{children:"Web search capability"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsx("span",{children:"Chat history saved"})]})]}),e.jsx(Ke,{className:"w-full",asChild:!0,children:e.jsxs("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",onClick:()=>{ia("pricing_cta_click",{tier:"free"}),ia("outbound_deepseek",{source_page:"pricing",tier:"free"})},children:["Start Free ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]})})]})]}),e.jsxs(ie,{className:"border-2 border-primary relative",children:[e.jsx("div",{className:"absolute -top-3 left-1/2 -translate-x-1/2 bg-primary text-primary-foreground px-3 py-1 rounded-full text-sm font-medium",children:"Most Popular"}),e.jsxs(Ot,{className:"text-center pb-2",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center mx-auto mb-4",children:e.jsx(qr,{className:"w-6 h-6 text-primary"})}),e.jsx(Ft,{className:"text-2xl",children:"API Access"}),e.jsx(bs,{children:"Pay-as-you-go"}),e.jsxs("div",{className:"mt-4",children:[e.jsx("span",{className:"text-4xl font-bold",children:"$0.15"}),e.jsx("span",{className:"text-muted-foreground",children:"/1M tokens (Flash input, off-peak)"})]})]}),e.jsxs(me,{children:[e.jsxs("ul",{className:"space-y-3 mb-6",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:"V4.1-Flash:"})," $0.15 / $0.60 per 1M off-peak"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{children:"V4-Pro:"})," $0.66 / $1.98 per 1M off-peak"]})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsx("span",{children:"Automatic prefix caching"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsx("span",{children:"OpenAI-compatible endpoint"})]})]}),e.jsx(Ke,{className:"w-full",asChild:!0,children:e.jsxs("a",{href:"https://platform.deepseek.com",target:"_blank",rel:"noopener noreferrer",onClick:()=>{ia("pricing_cta_click",{tier:"api"}),ia("outbound_deepseek",{source_page:"pricing",tier:"api"})},children:["Get API Key ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]})})]})]}),e.jsxs(ie,{className:"border-2 border-muted",children:[e.jsxs(Ot,{className:"text-center pb-2",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center mx-auto mb-4",children:e.jsx(o2,{className:"w-6 h-6 text-primary"})}),e.jsx(Ft,{className:"text-2xl",children:"Enterprise"}),e.jsx(bs,{children:"For organizations"}),e.jsx("div",{className:"mt-4",children:e.jsx("span",{className:"text-4xl font-bold",children:"Custom"})})]}),e.jsxs(me,{children:[e.jsxs("ul",{className:"space-y-3 mb-6",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsx("span",{children:"Volume discounts"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsx("span",{children:"Dedicated support"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsx("span",{children:"Custom SLAs"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(Jt,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),e.jsx("span",{children:"Priority access"})]})]}),e.jsx(Ke,{variant:"outline",className:"w-full",asChild:!0,children:e.jsxs("a",{href:"https://deepseek.com",target:"_blank",rel:"noopener noreferrer",onClick:()=>{ia("pricing_cta_click",{tier:"enterprise"}),ia("outbound_deepseek",{source_page:"pricing",tier:"enterprise"})},children:["Contact Sales ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]})})]})]})]})]}),e.jsxs("section",{className:"mb-16 max-w-3xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Frequently asked questions"}),e.jsx("div",{className:"space-y-4",children:eD.map(o=>e.jsxs(ie,{children:[e.jsx(Ot,{className:"pb-2",children:e.jsx(Ft,{className:"text-lg",children:o.q})}),e.jsx(me,{children:e.jsx("p",{className:"text-muted-foreground",children:o.a})})]},o.q))})]}),e.jsxs("section",{className:"text-center bg-muted/50 rounded-2xl p-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Start Using DeepSeek Today"}),e.jsx("p",{className:"text-muted-foreground mb-6 max-w-2xl mx-auto",children:"Use DeepSeek in any tab with our free Chrome Extension, try the free chat, or grab an API key for your apps."}),e.jsxs("div",{className:"flex flex-wrap gap-4 justify-center",children:[e.jsx(Ke,{size:"lg",asChild:!0,className:"bg-[#0066FF] hover:bg-[#0066FF]/90",children:e.jsxs("a",{href:fb,target:"_blank",rel:"noopener noreferrer",onClick:()=>ia("extension_click",{source_page:"pricing",location:"footer_cta"}),children:[e.jsx(Fs,{className:"w-5 h-5 mr-2"}),"Add to Chrome â Free"]})}),e.jsx(Ke,{size:"lg",variant:"outline",asChild:!0,children:e.jsx("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",onClick:()=>{ia("pricing_cta_click",{tier:"free",location:"footer_cta"}),ia("outbound_deepseek",{source_page:"pricing",tier:"free"})},children:"Try Free Chat"})}),e.jsx(Ke,{size:"lg",variant:"ghost",asChild:!0,children:e.jsx(se,{to:"/deepseek-api",onClick:()=>ia("pricing_cta_click",{destination:"/deepseek-api",location:"footer_cta"}),children:"API Setup Guide"})})]})]})]})]})},eZ=()=>{const t={"@context":"https://schema.org","@type":"WebPage",name:"DeepSeek Documentation - API Guides & Resources",description:"Complete documentation for DeepSeek AI. API reference, integration guides, code examples, and best practices for developers.",url:"https://deepseek.ai/docs"},n={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai"},{"@type":"ListItem",position:2,name:"Documentation",item:"https://deepseek.ai/docs"}]},s={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"How do I get a DeepSeek API key?",acceptedA
2619nswer:{"@type":"Answer",text:"Sign up at platform.deepseek.com, navigate to API Keys section, and create a new key. The API is compatible with OpenAI's format."}},{"@type":"Question",name:"Is the DeepSeek API compatible with OpenAI?",acceptedAnswer:{"@type":"Answer",text:"Yes, DeepSeek provides an OpenAI-compatible API. You can use existing OpenAI client libraries by changing the base URL to api.deepseek.com."}}]};return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek API Docs 2026 â Quickstart & Examples"}),e.jsx("meta",{name:"description",content:"DeepSeek API documentation: 5-minute quickstart, Python & Node.js code examples, authentication, rate limits and a drop-in OpenAI-compatible migration guide."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/docs"}),e.jsx("meta",{property:"og:title",content:"DeepSeek Documentation - API Reference & Guides"}),e.jsx("meta",{property:"og:description",content:"Complete DeepSeek documentation: API reference, integration guides, and code examples."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/docs"}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek Documentation - API Reference & Guides"}),e.jsx("meta",{name:"twitter:description",content:"Complete DeepSeek documentation: API reference, integration guides, and code examples."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(t)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsxs("main",{className:"container mx-auto px-4 py-8",children:[e.jsx(ur,{currentPage:"Documentation"}),e.jsxs("section",{className:"text-center mb-16",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-6",children:e.jsx("span",{className:"bg-gradient-to-r from-primary to-primary/70 bg-clip-text text-transparent",children:"DeepSeek Documentation"})}),e.jsx("p",{className:"text-xl text-muted-foreground max-w-3xl mx-auto mb-4",children:"Everything you need to integrate DeepSeek AI into your applications. OpenAI-compatible API makes migration simple."}),e.jsxs("div",{className:"flex flex-wrap gap-4 justify-center mt-8",children:[e.jsx(Ke,{size:"lg",asChild:!0,children:e.jsxs("a",{href:"https://api-docs.deepseek.com",target:"_blank",rel:"noopener noreferrer",children:["Official API Docs ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]})}),e.jsx(Ke,{size:"lg",variant:"outline",asChild:!0,children:e.jsxs("a",{href:"https://github.com/deepseek-ai",target:"_blank",rel:"noopener noreferrer",children:["GitHub ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]})})]})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Documentation Resources"}),e.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:[e.jsxs(ie,{className:"hover:border-primary/50 transition-colors",children:[e.jsxs(Ot,{children:[e.jsx(nT,{className:"w-10 h-10 text-primary mb-2"}),e.jsx(Ft,{children:"Getting Started"}),e.jsx(bs,{children:"Quick start guide for DeepSeek API"})]}),e.jsxs(me,{children:[e.jsx("p",{className:"text-muted-foreground mb-4",children:"Learn how to set up your account, get an API key, and make your first API call in minutes."}),e.jsx(Ke,{variant:"link",className:"p-0",asChild:!0,children:e.jsxs("a",{href:"https://api-docs.deepseek.com/quick_start",target:"_blank",rel:"noopener noreferrer",children:["Read Guide ",e.jsx(Pn,{className:"w-4 h-4 ml-1"})]})})]})]}),e.jsxs(ie,{className:"hover:border-primary/50 transition-colors",children:[e.jsxs(Ot,{children:[e.jsx(qr,{className:"w-10 h-10 text-primary mb-2"}),e.jsx(Ft,{children:"API Reference"}),e.jsx(bs,{children:"Complete API documentation"})]}),e.jsxs(me,{children:[e.jsx("p",{className:"text-muted-foreground mb-4",children:"Full API reference including endpoints, parameters, response formats, and error codes."}),e.jsx(Ke,{variant:"link",className:"p-0",asChild:!0,children:e.jsxs("a",{href:"https://api-docs.deepseek.com/api/deepseek-api",target:"_blank",rel:"noopener noreferrer",children:["View Reference ",e.jsx(Pn,{className:"w-4 h-4 ml-1"})]})})]})]}),e.jsxs(ie,{className:"hover:border-primary/50 transition-colors",children:[e.jsxs(Ot,{children:[e.jsx(yo,{className:"w-10 h-10 text-primary mb-2"}),e.jsx(Ft,{children:"Model Overview"}),e.jsx(bs,{children:"Available models and capabilities"})]}),e.jsxs(me,{children:[e.jsx("p",{className:"text-muted-foreground mb-4",children:"Compare DeepSeek-V3, R1, and other models. Learn about context windows, capabilities, and use cases."}),e.jsx(Ke,{variant:"link",className:"p-0",asChild:!0,children:e.jsx(se,{to:"/deepseek-r1",children:"Explore Models"})})]})]}),e.jsxs(ie,{className:"hover:border-primary/50 transition-colors",children:[e.jsxs(Ot,{children:[e.jsx(Zy,{className:"w-10 h-10 text-primary mb-2"}),e.jsx(Ft,{children:"Code Examples"}),e.jsx(bs,{children:"Sample code and integrations"})]}),e.jsxs(me,{children:[e.jsx("p",{className:"text-muted-foreground mb-4",children:"Python, JavaScript, and other language examples for common use cases."}),e.jsx(Ke,{variant:"link",className:"p-0",asChild:!0,children:e.jsxs("a",{href:"https://github.com/deepseek-ai/DeepSeek-V3",target:"_blank",rel:"noopener noreferrer",children:["View Examples ",e.jsx(Pn,{className:"w-4 h-4 ml-1"})]})})]})]}),e.jsxs(ie,{className:"hover:border-primary/50 transition-colors",children:[e.jsxs(Ot,{children:[e.jsx(oz,{className:"w-10 h-10 text-primary mb-2"}),e.jsx(Ft,{children:"Tutorials"}),e.jsx(bs,{children:"Step-by-step guides"})]}),e.jsxs(me,{children:[e.jsx("p",{className:"text-muted-foreground mb-4",children:"Build chatbots, RAG systems, and AI applications with DeepSeek."}),e.jsx(Ke,{variant:"link",className:"p-0",asChild:!0,children:e.jsx(se,{to:"/blog",children:"Read Tutorials"})})]})]}),e.jsxs(ie,{className:"hover:border-primary/50 transition-colors",children:[e.jsxs(Ot,{children:[e.jsx(W0,{className:"w-10 h-10 text-primary mb-2"}),e.jsx(Ft,{children:"Research Papers"}),e.jsx(bs,{children:"Technical papers and benchmarks"})]}),e.jsxs(me,{children:[e.jsx("p",{className:"text-muted-foreground mb-4",children:"Read the technical papers behind DeepSeek models and their performance benchmarks."}),e.jsx(Ke,{variant:"link",className:"p-0",asChild:!0,children:e.jsxs("a",{href:"https://arxiv.org/search/?searchtype=author&query=DeepSeek",target:"_blank",rel:"noopener noreferrer",children:["View Papers ",e.jsx(Pn,{className:"w-4 h-4 ml-1"})]})})]})]})]})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Qu
2619ick Start Example"}),e.jsx("div",{className:"max-w-3xl mx-auto",children:e.jsxs(ie,{children:[e.jsxs(Ot,{children:[e.jsxs(Ft,{className:"flex items-center gap-2",children:[e.jsx(Zy,{className:"w-5 h-5"}),"Python Example"]}),e.jsx(bs,{children:"Make your first API call with Python"})]}),e.jsxs(me,{children:[e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-sm",children:e.jsx("code",{children:`from openai import OpenAI 2620 2621# DeepSeek uses OpenAI-compatible API 2622client = OpenAI( 2623 api_key="your-api-key", 2624 base_url="https://api.deepseek.com" 2625) 2626 2627response = client.chat.completions.create( 2628 model="deepseek-chat", # or "deepseek-reasoner" 2629 messages=[ 2630 {"role": "system", "content": "You are a helpful assistant."}, 2631 {"role": "user", "content": "Hello!"} 2632 ] 2633) 2634 2635print(response.choices[0].message.content)`})}),e.jsxs("p",{className:"text-sm text-muted-foreground mt-4",children:[e.jsx("strong",{children:"Note:"})," DeepSeek's API is fully compatible with OpenAI's client libraries. Just change the base URL and use your DeepSeek API key."]})]})]})})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Frequently Asked Questions"}),e.jsxs("div",{className:"max-w-3xl mx-auto space-y-6",children:[e.jsxs(ie,{children:[e.jsx(Ot,{children:e.jsx(Ft,{className:"text-lg",children:"How do I get a DeepSeek API key?"})}),e.jsx(me,{children:e.jsxs("p",{className:"text-muted-foreground",children:["Sign up at"," ",e.jsx("a",{href:"https://platform.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"platform.deepseek.com"}),", navigate to the API Keys section, and create a new key. The process takes less than a minute."]})})]}),e.jsxs(ie,{children:[e.jsx(Ot,{children:e.jsx(Ft,{className:"text-lg",children:"Is the DeepSeek API compatible with OpenAI?"})}),e.jsx(me,{children:e.jsxs("p",{className:"text-muted-foreground",children:["Yes, DeepSeek provides an OpenAI-compatible API. You can use existing OpenAI client libraries (Python, JavaScript, etc.) by simply changing the base URL to ",e.jsx("code",{className:"bg-muted px-1 rounded",children:"api.deepseek.com"}),"."]})})]}),e.jsxs(ie,{children:[e.jsx(Ot,{children:e.jsx(Ft,{className:"text-lg",children:"What models are available via the API?"})}),e.jsx(me,{children:e.jsxs("p",{className:"text-muted-foreground",children:["The API provides access to DeepSeek-V3 (general-purpose chat) and DeepSeek-R1 (reasoning model). Use ",e.jsx("code",{className:"bg-muted px-1 rounded",children:"deepseek-chat"})," for V3 and"," ",e.jsx("code",{className:"bg-muted px-1 rounded",children:"deepseek-reasoner"})," for R1."]})})]})]})]}),e.jsxs("section",{className:"text-center bg-muted/50 rounded-2xl p-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Ready to Build with DeepSeek?"}),e.jsx("p",{className:"text-muted-foreground mb-6 max-w-2xl mx-auto",children:"Get your API key and start building AI-powered applications today."}),e.jsxs("div",{className:"flex flex-wrap gap-4 justify-center",children:[e.jsx(Ke,{size:"lg",asChild:!0,children:e.jsxs("a",{href:"https://platform.deepseek.com",target:"_blank",rel:"noopener noreferrer",children:["Get API Key ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]})}),e.jsx(Ke,{size:"lg",variant:"outline",asChild:!0,children:e.jsx(se,{to:"/pricing",children:"View Pricing"})})]})]})]})]})};function tZ(t,n){const s={};return(t[t.length-1]===""?[...t,""]:t).join((s.padRight?" ":"")+","+(s.padLeft===!1?"":" ")).trim()}const nZ=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,sZ=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,rZ={};function tD(t,n){return(rZ.jsx?sZ:nZ).test(t)}const aZ=/[ \t\n\f\r]/g;function iZ(t){return typeof t=="object"?t.type==="text"?nD(t.value):!1:nD(t)}function nD(t){return t.replace(aZ,"")===""}class pg{constructor(n,s,r){this.normal=s,this.property=n,r&&(this.space=r)}}pg.prototype.normal={};pg.prototype.property={};pg.prototype.space=void 0;function nM(t,n){const s={},r={};for(const a of t)Object.assign(s,a.property),Object.assign(r,a.normal);return new pg(s,r,n)}function X2(t){return t.toLowerCase()}class Qa{constructor(n,s){this.attribute=s,this.property=n}}Qa.prototype.attribute="";Qa.prototype.booleanish=!1;Qa.prototype.boolean=!1;Qa.prototype.commaOrSpaceSeparated=!1;Qa.prototype.commaSeparated=!1;Qa.prototype.defined=!1;Qa.prototype.mustUseProperty=!1;Qa.prototype.number=!1;Qa.prototype.overloadedBoolean=!1;Qa.prototype.property="";Qa.prototype.spaceSeparated=!1;Qa.prototype.space=void 0;let oZ=0;const on=Th(),lr=Th(),Z2=Th(),Ye=Th(),cs=Th(),rh=Th(),di=Th();function Th(){return 2**++oZ}const ek=Object.freeze(Object.defineProperty({__proto__:null,boolean:on,booleanish:lr,commaOrSpaceSeparated:di,commaSeparated:rh,number:Ye,overloadedBoolean:Z2,spaceSeparated:cs},Symbol.toStringTag,{value:"Module"})),iw=Object.keys(ek);class IN extends Qa{constructor(n,s,r,a){let i=-1;
vendor: 4,329 bytes, line 2635
2635if(super(n,s),sD(this,"space",a),typeof r=="number")for(;++i<iw.length;){const o=iw[i];sD(this,iw[i],(r&ek[o])===ek[o])}}}IN.prototype.defined=!0;function sD(t,n,s){s&&(t[n]=s)}function Op(t){const n={},s={};for(const[r,a]of Object.entries(t.properties)){const i=new IN(r,t.transform(t.attributes||{},r),a,t.space);t.mustUseProperty&&t.mustUseProperty.includes(r)&&(i.mustUseProperty=!0),n[r]=i,s[X2(r)]=r,s[X2(i.attribute)]=r}return new pg(n,s,t.space)}const sM=Op({properties:{ariaActiveDescendant:null,ariaAtomic:lr,ariaAutoComplete:null,ariaBusy:lr,ariaChecked:lr,ariaColCount:Ye,ariaColIndex:Ye,ariaColSpan:Ye,ariaControls:cs,ariaCurrent:null,ariaDescribedBy:cs,ariaDetails:null,ariaDisabled:lr,ariaDropEffect:cs,ariaErrorMessage:null,ariaExpanded:lr,ariaFlowTo:cs,ariaGrabbed:lr,ariaHasPopup:null,ariaHidden:lr,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:cs,ariaLevel:Ye,ariaLive:null,ariaModal:lr,ariaMultiLine:lr,ariaMultiSelectable:lr,ariaOrientation:null,ariaOwns:cs,ariaPlaceholder:null,ariaPosInSet:Ye,ariaPressed:lr,ariaReadOnly:lr,ariaRelevant:null,ariaRequired:lr,ariaRoleDescription:cs,ariaRowCount:Ye,ariaRowIndex:Ye,ariaRowSpan:Ye,ariaSelected:lr,ariaSetSize:Ye,ariaSort:null,ariaValueMax:Ye,ariaValueMin:Ye,ariaValueNow:Ye,ariaValueText:null,role:null},transform(t,n){return n==="role"?n:"aria-"+n.slice(4).toLowerCase()}});function rM(t,n){return n in t?t[n]:n}function aM(t,n){return rM(t,n.toLowerCase())}const lZ=Op({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:rh,acceptCharset:cs,accessKey:cs,action:null,allow:null,allowFullScreen:on,allowPaymentRequest:on,allowUserMedia:on,alpha:on,alt:null,as:null,async:on,autoCapitalize:null,autoComplete:cs,autoFocus:on,autoPlay:on,blocking:cs,capture:null,charSet:null,checked:on,cite:null,className:cs,closedBy:null,colorSpace:null,cols:Ye,colSpan:Ye,command:null,commandFor:null,content:null,contentEditable:lr,controls:on,controlsList:cs,coords:Ye|rh,crossOrigin:null,data:null,dateTime:null,decoding:null,default:on,defer:on,dir:null,dirName:null,disabled:on,download:Z2,draggable:lr,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:on,formTarget:null,headers:cs,height:Ye,hidden:Z2,high:Ye,href:null,hrefLang:null,htmlFor:cs,httpEquiv:cs,id:null,imageSizes:null,imageSrcSet:null,inert:on,inputMode:null,integrity:null,is:null,isMap:on,itemId:null,itemProp:cs,itemRef:cs,itemScope:on,itemType:cs,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:on,low:Ye,manifest:null,max:null,maxLength:Ye,media:null,method:null,min:null,minLength:Ye,multiple:on,muted:on,name:null,nonce:null,noModule:on,noValidate:on,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:on,optimum:Ye,pattern:null,ping:cs,placeholder:null,playsInl
2635ine:on,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:on,referrerPolicy:null,rel:cs,required:on,reversed:on,rows:Ye,rowSpan:Ye,sandbox:cs,scope:null,scoped:on,seamless:on,selected:on,shadowRootClonable:on,shadowRootCustomElementRegistry:on,shadowRootDelegatesFocus:on,shadowRootMode:null,shadowRootSerializable:on,shape:null,size:Ye,sizes:null,slot:null,span:Ye,spellCheck:lr,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Ye,step:null,style:null,tabIndex:Ye,target:null,title:null,translate:null,type:null,typeMustMatch:on,useMap:null,value:lr,width:Ye,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:cs,axis:null,background:null,bgColor:null,border:Ye,borderColor:null,bottomMargin:Ye,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:on,declare:on,event:null,face:null,frame:null,frameBorder:null,hSpace:Ye,leftMargin:Ye,link:null,longDesc:null,lowSrc:null,marginHeight:Ye,marginWidth:Ye,noResize:on,noHref:on,noShade:on,noWrap:on,object:null,profile:null,prompt:null,rev:null,rightMargin:Ye,rules:null,scheme:null,scrolling:lr,standby:null,summary:null,text:null,topMargin:Ye,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Ye,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:on,disablePictureInPicture:on,disableRemotePlayback:on,exportParts:rh,part:cs,prefix:null,property:null,results:Ye,security:null,unselectable:null},space:"html",transform:aM}),cZ=Op({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",maskType:"mask-type",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav
2635-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:di,accentHeight:Ye,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Ye,amplitude:Ye,arabicForm:null,ascent:Ye,attributeName:null,attributeType:null,azimuth:Ye,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Ye,by:null,calcMode:null,capHeight:Ye,className:cs,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Ye,diffuseConstant:Ye,direction:null,display:null,dur:null,divisor:Ye,dominantBaseline:null,download:on,dx:null,dy:null,edgeMode:null,editable:null,elevation:Ye,enableBackground:null,end:null,event:null,exponent:Ye,externalResourcesRequired:null,fill:null,fillOpacity:Ye,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:rh,g2:rh,glyphName:rh,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Ye,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Ye,horizOriginX:Ye,horizOriginY:Ye,id:null,ideographic:Ye,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Ye,k:Ye,k1:Ye,k2:Ye,k3:Ye,k4:Ye,kernelMatrix:di,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Ye,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Ye,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,on
vendor: 5,534 bytes, lines 2635-2636
2635Zoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Ye,overlineThickness:Ye,paintOrder:null,panose1:null,path:null,pathLength:Ye,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:cs,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Ye,pointsAtY:Ye,pointsAtZ:Ye,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:di,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:di,rev:di,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:di,requiredFeatures:di,requiredFonts:di,requiredFormats:di,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Ye,specularExponent:Ye,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Ye,strikethroughThickness:Ye,string:null,stroke:null,strokeDashArray:di,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Ye,strokeOpacity:Ye,strokeWidth:null,style:null,surfaceScale:Ye,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:di,tabIndex:Ye,tableValues:null,target:null,targetX:Ye,targetY:Ye,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:di,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Ye,underlineThickness:Ye,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Ye,values:null,vAlphabetic:Ye,vMathematical:Ye,vectorEffect:null,vHanging:Ye,vIdeographic:Ye,version:null,vertAdvY:Ye,vertOriginX:Ye,vertOriginY:Ye,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Ye,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:rM}),iM=Op({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(t,n){return"xlink:"+n.slice(5).toLowerCase()}}),oM=Op({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:aM}),lM=Op({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(t,n){return"xml:"+n.slice(3).toLowerCase()}}),dZ={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},hZ=/[A-Z]/g,rD=/-[a-z]/g,uZ=/^data[-\w.:]+$/i;function pZ(t,n){const s=X2(n);let r=n,a=Qa;if(s in t.normal)return t.property[t.normal[s]];if(s.length>4&&s.slice(0,4)==="data"&&uZ.test(n)){if(n.charAt(4)==="-"){const i=n.slice(5).replace(rD,fZ);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=n.slice(4);if(!rD.test(i)){let o=i.replace(hZ,mZ);o.charAt(0)!=="-"&&(o="-"+o),n="data"+o}}a=IN}return new a(r,n)}function mZ(t){return"-"+t.toLowerCase()}function fZ(t){return t.charAt(1).toUpperCase()}const gZ=nM([sM,lZ,iM,oM,lM],"html"),CN=nM([sM,cZ,iM,oM,lM],"svg");function xZ(t){return t.join(" ").trim()}var _N={},aD=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,yZ=/\n/g,bZ=/^\s*/,vZ=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,wZ=/^:\s*/,jZ=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,kZ=/^[;\s]*/,NZ=/^\s+|\s+$/g,SZ=` 2636`,iD="/",oD="*",Vd="",AZ="comment",DZ="declaration";function IZ(t,n){if(typeof t!="string")throw new TypeError("First argument must be a string");if(!t)return[];n=n||{};var s=1,r=1;function a(y){var g=y.match(yZ);g&&(s+=g.length);var w=y.lastIndexOf(SZ);r=~w?y.length-w:r+y.length}function i(){var y={line:s,column:r};return function(g){return g.position=new o(y),d(),g}}function o(y){this.start=y,this.end={line:s,column:r},this.source=n.source}o.prototype.content=t;function l(y){var g=new Error(n.source+":"+s+":"+r+": "+y);if(g.reason=y,g.filename=n.source,g.line=s,g.column=r,g.source=t,!n.silent)throw g}function c(y){var g=y.exec(t);if(g){var w=g[0];return a(w),t=t.slice(w.length),g}}function d(){c(bZ)}function h(y){var g;for(y=y||[];g=p();)g!==!1&&y.push(g);return y}function p(){var y=i();if(!(iD!=t.charAt(0)||oD!=t.charAt(1))){for(var g=2;Vd!=t.charAt(g)&&(oD!=t.charAt(g)||iD!=t.charAt(g+1));)++g;if(g+=2,Vd===t.charAt(g-1))return l("End of comment missing");var w=t.slice(2,g-2);return r+=2,a(w),t=t.slice(g),r+=2,y({type:AZ,comment:w})}}function m(){var y=i(),g=c(vZ);if(g){if(p(),!c(wZ))return l("property missing ':'");var w=c(jZ),b=y({type:DZ,property:lD(g[0].replace(aD,Vd)),value:w?lD(w[0].replace(aD,Vd)):Vd});return c(kZ),b}}function u(){var y=[];h(y);for(var g;g=m();)g!==!1&&(y.push(g),h(y));return y}return d(),u()}function lD(t){return t?t.replace(NZ,Vd):Vd}var CZ=IZ,_Z=ca&&ca.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_N,"__esModule",{value:!0});_N.default=PZ;const TZ=_Z(CZ);function PZ(t,n){let s=null;if(!t||typeof t!="string")return s;const r=(0,TZ.default)(t),a=typeof n=="function";return r.forEach(i=>
2636{if(i.type!=="declaration")return;const{property:o,value:l}=i;a?n(o,l,i):l&&(s=s||{},s[o]=l)}),s}var gb={};Object.defineProperty(gb,"__esModule",{value:!0});gb.camelCase=void 0;var EZ=/^--[a-zA-Z0-9_-]+$/,LZ=/-([a-z])/g,MZ=/^[^-]+$/,RZ=/^-(webkit|moz|ms|o|khtml)-/,OZ=/^-(ms)-/,FZ=function(t){return!t||MZ.test(t)||EZ.test(t)},VZ=function(t,n){return n.toUpperCase()},cD=function(t,n){return"".concat(n,"-")},BZ=function(t,n){return n===void 0&&(n={}),FZ(t)?t:(t=t.toLowerCase(),n.reactCompat?t=t.replace(OZ,cD):t=t.replace(RZ,cD),t.replace(LZ,VZ))};gb.camelCase=BZ;var zZ=ca&&ca.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},UZ=zZ(_N),qZ=gb;function tk(t,n){var s={};return!t||typeof t!="string"||(0,UZ.default)(t,function(r,a){r&&a&&(s[(0,qZ.camelCase)(r,n)]=a)}),s}tk.default=tk;var HZ=tk;const $Z=ad(HZ),cM=dM("end"),TN=dM("start");function dM(t){return n;function n(s){const r=s&&s.position&&s.position[t]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function WZ(t){const n=TN(t),s=cM(t);if(n&&s)return{start:n,end:s}}function nf(t){return!t||typeof t!="object"?"":"position"in t||"type"in t?dD(t.position):"start"in t||"end"in t?dD(t):"line"in t||"column"in t?nk(t):""}function nk(t){return hD(t&&t.line)+":"+hD(t&&t.column)}function dD(t){return nk(t&&t.start)+"-"+nk(t&&t.end)}function hD(t){return t&&typeof t=="number"?t:1}class ha extends Error{constructor(n,s,r){super(),typeof s=="string"&&(r=s,s=void 0);let a="",i={},o=!1;if(s&&("line"in s&&"column"in s?i={place:s}:"start"in s&&"end"in s?i={place:s}:"type"in s?i={ancestors:[s],place:s.position}:i={...s}),typeof n=="string"?a=n:!i.cause&&n&&(o=!0,a=n.message,i.cause=n),!i.ruleId&&!i.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?i.ruleId=r:(i.source=r.slice(0,c),i.ruleId=r.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=a,this.line=l?l.line:void 0,this.name=nf(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=o&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}ha.prototype.file="";ha.prototype.name="";ha.prototype.reason="";ha.prototype.message="";ha.prototype.stack="";ha.prototype.column=void 0;ha.prototype.line=void 0;ha.prototype.ancestors=void 0;ha.prototype.cause=void 0;ha.prototype.fatal=void 0;ha.prototype.place=void 0;ha.prototype.ruleId=void 0;ha.prototype.source=void 0;const PN={}.hasOwnProperty,GZ=new Map,KZ=/[A-Z]/g,QZ=new Set(["table","tbody","thead","tfoot","tr"]),YZ=new Set(["td","th"]),hM="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function JZ(t,n){if(!n||n.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const s=n.filePath||void 0;let r;if(n.development){if(typeof n.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=aee(s,n.jsxDEV)}else{if(typeof n.jsx!="function")throw new TypeError("Expected `jsx` in production options");
vendor: 17,257 bytes, line 2636
2636if(typeof n.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=ree(s,n.jsx,n.jsxs)}const a={Fragment:n.Fragment,ancestors:[],components:n.components||{},create:r,elementAttributeNameCase:n.elementAttributeNameCase||"react",evaluater:n.createEvaluater?n.createEvaluater():void 0,filePath:s,ignoreInvalidStyle:n.ignoreInvalidStyle||!1,passKeys:n.passKeys!==!1,passNode:n.passNode||!1,schema:n.space==="svg"?CN:gZ,stylePropertyNameCase:n.stylePropertyNameCase||"dom",tableCellAlignToStyle:n.tableCellAlignToStyle!==!1},i=uM(a,t,void 0);return i&&typeof i!="string"?i:a.create(t,a.Fragment,{children:i||void 0},void 0)}function uM(t,n,s){if(n.type==="element")return XZ(t,n,s);if(n.type==="mdxFlowExpression"||n.type==="mdxTextExpression")return ZZ(t,n);if(n.type==="mdxJsxFlowElement"||n.type==="mdxJsxTextElement")return tee(t,n,s);if(n.type==="mdxjsEsm")return eee(t,n);if(n.type==="root")return nee(t,n,s);if(n.type==="text")return see(t,n)}function XZ(t,n,s){const r=t.schema;let a=r;n.tagName.toLowerCase()==="svg"&&r.space==="html"&&(a=CN,t.schema=a),t.ancestors.push(n);const i=mM(t,n.tagName,!1),o=iee(t,n);let l=LN(t,n);return QZ.has(n.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!iZ(c):!0})),pM(t,o,i,n),EN(o,l),t.ancestors.pop(),t.schema=r,t.create(n,i,o,s)}function ZZ(t,n){if(n.data&&n.data.estree&&t.evaluater){const r=n.data.estree.body[0];return r.type,t.evaluater.evaluateExpression(r.expression)}Ff(t,n.position)}function eee(t,n){if(n.data&&n.data.estree&&t.evaluater)return t.evaluater.evaluateProgram(n.data.estree);Ff(t,n.position)}function tee(t,n,s){const r=t.schema;let a=r;n.name==="svg"&&r.space==="html"&&(a=CN,t.schema=a),t.ancestors.push(n);const i=n.name===null?t.Fragment:mM(t,n.name,!0),o=oee(t,n),l=LN(t,n);return pM(t,o,i,n),EN(o,l),t.ancestors.pop(),t.schema=r,t.create(n,i,o,s)}function nee(t,n,s){const r={};return EN(r,LN(t,n)),t.create(n,t.Fragment,r,s)}function see(t,n){return n.value}function pM(t,n,s,r){typeof s!="string"&&s!==t.Fragment&&t.passNode&&(n.node=r)}function EN(t,n){if(n.length>0){const s=n.length>1?n:n[0];s&&(t.children=s)}}function ree(t,n,s){return r;function r(a,i,o,l){const d=Array.isArray(o.children)?s:n;return l?d(i,o,l):d(i,o)}}function aee(t,n){return s;function s(r,a,i,o){const l=Array.isArray(i.children),c=TN(r);return n(a,i,o,l,{columnNumber:c?c.column-1:void 0,fileName:t,lineNumber:c?c.line:void 0},void 0)}}function iee(t,n){const s={};let r,a;for(a in n.properties)if(a!=="children"&&PN.call(n.properties,a)){const i=lee(t,a,n.properties[a]);if(i){const[o,l]=i;t.tableCellAlignToStyle&&o==="align"&&typeof l=="string"&&YZ.has(n.tagName)?r=l:s[o]=l}}if(r){const i=s.style||(s.style={});i[t.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return s}function oee(t,n){const s={};for(const r of n.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&t.evaluater){const i=r.data.estree.body[0];i.type;const o=i.expression;o.type;const l=o.properties[0];l.type,Object.assign(s,t.evaluater.evaluateExpression(l.argument))}else Ff(t,n.position);else{const a=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&t.evaluater){const l=r.value.data.estree.body[0];l.type,i=t.evaluater.evaluateExpression(l.expression)}else Ff(t,n.position);else i=r.value===null?!0:r.value;s[a]=i}return s}function LN(t,n){const s=[];let r=-1;const a=t.passKeys?new Map:GZ;for(;++r<n.children.length;){const i=n.children[r];let o;if(t.passKeys){const c=i.type==="element"?i.tagName:i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement"?i.name:void 0;if(c){const d=a.get(c)||0;o=c+"-"+d,a.set(c,d+1)}}const l=uM(t,i,o);l!==void 0&&s.push(l)}return s}function lee(t,n,s){const r=pZ(t.schema,n);if(!(s==null||typeof s=="number"&&Number.isNaN(s))){if(Array.isArray(s)&&(s=r.commaSeparated?tZ(s):xZ(s)),r.property==="style"){let a=typeof s=="object"?s:cee(t,String(s));return t.stylePropertyNameCase==="css"&&(a=dee(a)),["style",a]}return[t.elementAttributeNameCase==="react"&&r.space?dZ[r.property]||r.property:r.attribute,s]}}function cee(t,n){try{return $Z(n,{reactCompat:!0})}catch(s){if(t.ignoreInvalidStyle)return{};const r=s,a=new ha("Cannot parse `style` attribute",{ancestors:t.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw a.file=t.filePath||void 0,a.url=hM+"#cannot-parse-style-attribute",a}}function mM(t,n,s){let r;if(!s)r={type:"Literal",value:n};else if(n.includes(".")){const a=n.split(".");let i=-1,o;for(;++i<a.length;){const l=tD(a[i])?{type:"Identifier",name:a[i]}:{type:"Literal",value:a[i]};o=o?{type:"MemberExpression",object:o,property:l,computed:!!(i&&l.type==="Literal"),optional:!1}:l}r=o}else r=tD(n)&&!/^[a-z]/.test(n)?{type:"Identifier",name:n}:{type:"Literal",value:n};if(r.type==="Literal"){const a=r.value;return PN.call(t.components,a)?t.components[a]:a}if(t.evaluater)return t.evaluater.evaluateExpression(r);Ff(t)}function Ff(t,n){const s=new ha("Cannot handle MDX estrees without `createEvaluater`",{ancestors:t.ancestors,place:n,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw s.file=t.filePath||void 0,s.url=hM+"#cannot-handle-mdx-estrees-without-createevaluater",s}function dee(t){const n={};let s;for(s in t)PN.call(t,s)&&(n[hee(s)]=t[s]);return n}function hee(t){let n=t.replace(KZ,uee);return n.slice(0,3)==="ms-"&&(n="-"+n),n}function uee(t){return"-"+t.toLowerCase()}const ow={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},pee={};function mee(t,n){const s=pee,r=typeof s.includeImageAlt=="boolean"?s.includeImageAlt:!0,a=typeof s.includeHtml=="boolean"?s.includeHtml:!0;return fM(t,r,a)}function fM(t,n,s){if(fee(t)){if("value"in t)return t.type==="html"&&!s?"":t.value;if(n&&"alt"in t&&t.alt)return t.alt;if("children"in t)return uD(t.children,n,s)}return Array.isArray(t)?uD(t,n,s):""}function uD(t,n,s){const r=[];let a=-1;for(;++a<t.length;)r[a]=fM(t[a],n,s);return r.join("")}function fee(t){return!!(t&&typeof t=="object")}const pD=document.createElement("i");function MN(t){const n="&"+t+";";pD.innerHTML=n;const s=pD.textContent;return s.charCodeAt(s.length-1)===59&&t!=="semi"||s===n?!1:s}function el(t,n,s,r){const a=t.length;let i=0,o;if(n<0?n=-n>a?0:a+n:n=n>a?a:n,s=s>0?s:0,r.length<1e4)o=Array.from(r),o.unshift(n,s),t.splice(...o);else for(s&&t.splice(n,s);i<r.length;)o=r.slice(i,i+1e4),o.unshift(n,0),t.splice(...o),i+=1e4,n+=1e4}function zi(t,n){return t.length>0?(el(t,t.length,0,n),t):n}const mD={}.hasOwnProperty;function gee(t){const n={};let s=-1;for(;++s<t.length;)xee(n,t[s]);return n}function xee(t,n){let s;for(s in n){const a=(mD.call(t,s)?t[s]:void 0)||(t[s]={}),i=n[s];let o;if(i)for(o in i){mD.call(a,o)||(a[o]=[]);const l=i[o];yee(a[o],Array.isArray(l)?l:l?[l]:[])}}}function yee(t,n){let s=-1;const r=[];for(;++s<n.length;)(n[s].add==="after"?t:r).push(n[s]);el(t,0,0,r)}function gM(t,n){const s=Number.parseInt(t,n);return s<9||s===11||s>13&&s<32||s>126&&s<160||s>55295&&s<57344||s>64975&&s<65008||(s&65535)===65535||(s&65535)===65534||s>1114111?"�":String.fromCodePoint(s)}function $u(t){return t.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ho=hd(/[A-Za-z]/),vi=hd(/[\dA-Za-z]/),bee=hd(/[#-'*+\--9=?A-Z^-~]/);function sk(t){return t!==null&&(t<32||t===127)}const rk=hd(/\d/),vee=hd(/[\dA-Fa-f]/),wee=hd(/[!-/:-@[-`{-~]/);function tn(t){return t!==null&&t<-2}function Ka(t){return t!==null&&(t<0||t===32)}function Wn(t){return t===-2||t===-1||t===32}const jee=hd(new RegExp("\\p{P}|\\p{S}","u")),kee=hd(/\s/);function hd(t){return n;function n(s){return s!==null&&s>-1&&t.test(String.fromCharCode(s))}}function Fp(t){const n=[];let s=-1,r=0,a=0;for(;++s<t.length;){const i=t.charCodeAt(s);let o="";if(i===37&&vi(t.charCodeAt(s+1))&&vi(t.charCodeAt(s+2)))a=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(o=String.fromCharCode(i));else if(i>55295&&i<57344){const l=t.charCodeAt(s+1);i<56320&&l>56319&&l<57344?(o=String.fromCharCode(i,l),a=1):o="�"}else o=String.fromCharCode(i);o&&(n.push(t.slice(r,s),encodeURIComponent(o)),r=s+a+1,o=""),a&&(s+=a,a=0)}return n.join("")+t.slice(r)}function ws(t,n,s,r){const a=r?r-1:Number.POSITIVE_INFINITY;let i=0;return o;function o(c){return Wn(c)?(t.enter(s),l(c)):n(c)}function l(c){return Wn(c)&&i++<a?(t.consume(c),l):(t.exit(s),n(c))}}const Nee={tokenize:See};function See(t){const n=t.attempt(this.parser.constructs.contentInitial,r,a);let s;return n;function r(l){if(l===null){t.consume(l);return}return t.enter("lineEnding"),t.consume(l),t.exit("lineEnding"),ws(t,n,"linePrefix")}function a(l){return t.enter("paragraph"),i(l)}function i(l){const c=t.enter("chunkText",{contentType:"text",previous:s});return s&&(s.next=c),s=c,o(l)}function o(l){if(l===null){t.exit("chunkText"),t.exit("paragraph"),t.consume(l);return}return tn(l)?(t.consume(l),t.exit("chunkText"),i):(t.consume(l),o)}}const Aee={tokenize:Dee},fD={tokenize:Iee};function Dee(t){const n=this,s=[];let r=0,a,i,o;return l;function l(N){if(r<s.length){const A=s[r];return n.containerState=A[1],t.attempt(A[0].continuation,c,d)(N)}return d(N)}function c(N){if(r++,n.containerState._closeFlow){n.containerState._closeFlow=void 0,a&&j();const A=n.events.length;let E=A,C;for(;E--;)if(n.events[E][0]==="exit"&&n.events[E][1].type==="chunkFlow"){C=n.events[E][1].end;break}b(r);let F=A;for(;F<n.events.length;)n.events[F][1].end={...C},F++;return el(n.events,E+1,0,n.events.slice(A)),n.events.length=F,d(N)}return l(N)}function d(N){if(r===s.length){if(!a)return m(N);if(a.currentConstruct&&a.currentConstruct.concrete)return y(N);n.interrupt=!!(a.currentConstruct&&!a._gfmTableDynamicInterruptHack)}return n.containerState={},t.check(fD,h,p)(N)}function h(N){return a&&j(),b(r),m(N)}function p(N){return n.parser.lazy[n.now().line]=r!==s.length,o=n.now().offset,y(N)}function m(N){return n.containerState={},t.attempt(fD,u,y)(N)}function u(N){return r++,s.push([n.currentConstruct,n.containerState]),m(N)}function y(N){if(N===null){a&&j(),b(0),t.consume(N);return}return a=a||n.parser.flow(n.now()),t.enter("chunkFlow",{_tokenizer:a,contentType:"flow",previous:i}),g(N)}function g(N){if(N===null){w(t.exit("chunkFlow"),!0),b(0),t.consume(N);return}return tn(N)?(t.consume(N),w(t.exit("chunkFlow")),r=0,n.interrupt=void 0,l):(t.consume(N),g)}function w(N,A){const E=n.sliceStream(N);if(A&&E.push(null),N.previous=i,i&&(i.next=N),i=N,a.defineSkip(N.start),a.write(E),n.parser.lazy[N.start.line]){let C=a.events.length;for(;C--;)if(a.events[C][1].start.offset<o&&(!a.events[C][1].end||a.events[C][1].end.offset>o))return;const F=n.events.length;let O=F,L,W;for(;O--;)if(n.events[O][0]==="exit"&&n.events[O][1].type==="chunkFlow"){if(L){W=n.events[O][1].end;break}L=!0}for(b(r),C=F;C<n.events.length;)n.events[C][1].end={...W},C++;el(n.events,O+1,0,n.events.slice(F)),n.events.length=C}}function b(N){let A=s.length;for(;A-- >N;){const E=s[A];n.containerState=E[1],E[0].exit.call(n,t)}s.length=N}function j(){a.write([null]),i=void 0,a=void 0,n.containerState._closeFlow=void 0}}function Iee(t,n,s){return ws(t,t.attempt(this.parser.constructs.document,n,s),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function gD(t){if(t===null||Ka(t)||kee(t))return 1;if(jee(t))return 2}function RN(t,n,s){const r=[];let a=-1;for(;++a<t.length;){const i=t[a].resolveAll;i&&!r.includes(i)&&(n=i(n,s),r.push(i))}return n}const ak={name:"attention",resolveAll:Cee,tokenize:_ee};function Cee(t,n){let s=-1,r,a,i,o,l,c,d,h;for(;++s<t.length;)if(t[s][0]==="enter"&&t[s][1].type==="attentionSequence"&&t[s][1]._close){for(r=s;r--;)if(t[r][0]==="exit"&&t[r][1].type==="attentionSequence"&&t[r][1]._open&&n.sliceSerialize(t[r][1]).charCodeAt(0)===n.sliceSerialize(t[s][1]).charCodeAt(0)){if((t[r][1]._close||t[s][1]._open)&&(t[s][1].end.offset-t[s][1].start.offset)%3&&!((t[r][1].end.offset-t[r][1].start.offset+t[s][1].end.offset-t[s][1].start.offset)%3))continue;c=t[r][1].end.offset-t[r][1].start.offset>1&&t[s][1].end.offset-t[s][1].start.offset>1?2:1;const p={...t[r][1].end},m={...t[s][1].start};xD(p,-c),xD(m,c),o={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...t[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...t[s][1].start},end:m},i={type:c>1?"strongText":"emphasisText",start:{...t[r][1].end},end:{...t[s][1].start}},a={type:c>1?"strong":"emphasis",start:{...o.start},end:{...l.end}},t[r][1].end={...o.start},t[s][1].start={...l.end},d=[],t[r][1].end.offset-t[r][1].start.offset&&(d=zi(d,[["enter",t[r][1],n],["exit",t[r][1],n]])),d=zi(d,[["enter",a,n],["enter",o,n],["exit",o,n],["enter",i,n]]),d=zi(d,RN(n.parser.constructs.insideSpan.null,t.slice(r+1,s),n)),d=zi(d,[["exit",i,n],["enter",l,n],["exit",l,n],["exit",a,n]]),t[s][1].end.offset-t[s][1].start.offset?(h=2,d=zi(d,[["enter",t[s][1],n],["exit",t[s][1],n]])):h=0,el(t,r-1,s-r+3,d),s=r+d.length-h-2;break}}for(s=-1;++s<t.length;)t[s][1].type==="attentionSequence"&&(t[s][1].type="data");return t}function _ee(t,n){const s=this.parser.constructs.attentionMarkers.null,r=this.previous,a=gD(r);let i;return o;function o(c){return i=c,t.enter("attentionSequence"),l(c)}function l(c){if(c===i)return t.consume(c),l;const d=t.exit("attentionSequence"),h=gD(c),p=!h||h===2&&a||s.includes(c),m=!a||a===2&&h||s.includes(r);return d._open=!!(i===42?p:p&&(a||!m)),d._close=!!(i===42?m:m&&(h||!p)),n(c)}}function xD(t,n){t.column+=n,t.offset+=n,t._bufferIndex+=n}const Tee={name:"autolink",tokenize:Pee};function Pee(t,n,s){let r=0;return a;function a(u){return t.enter("autolink"),t.enter("autolinkMarker"),t.consume(u),t.exit("autolinkMarker"),t.enter("autolinkProtocol"),i}function i(u){return Ho(u)?(t.consume(u),o):u===64?s(u):d(u)}function o(u){return u===43||u===45||u===46||vi(u)?(r=1,l(u)):d(u)}function l(u){return u===58?(t.consume(u),r=0,c):(u===43||u===45||u===46||vi(u))&&r++<32?(t.consume(u),l):(r=0,d(u))}function c(u){return u===62?(t.exit("autolinkProtocol"),t.enter("autolinkMarker"),t.consume(u),t.exit("autolinkMarker"),t.exit("autolink"),n):u===null||u===32||u===60||sk(u)?s(u):(t.consume(u),c)}function d(u){return u===64?(t.consume(u),h):bee(u)?(t.consume(u),d):s(u)}function h(u){return vi(u)?p(u):s(u)}function p(u){return u===46?(t.consume(u),r=0,h):u===62?(t.exit("autolinkProtocol").type="autolinkEmail",t.enter("autolinkMarker"),t.consume(u),t.exit("autolinkMarker"),t.exit("autolink"),n):m(u)}function m(u){if((u===45||vi(u))&&r++<63){const y=u===45?m:p;return t.consume(u),y}return s(u)}}const xb={partial:!0,tokenize:Eee};function Eee(t,n,s){return r;function r(i){return Wn(i)?ws(t,a,"linePrefix")(i):a(i)}function a(i){return i===null||tn(i)?n(i):s(i)}}const xM={continuation:{tokenize:Mee},exit:Ree,name:"blockQuote",tokenize:Lee};function Lee(t,n,s){const r=this;return a;function a(o){if(o===62){const l=r.containerState;return l.open||(t.enter("blockQuote",{_container:!0}),l.open=!0),t.enter("blockQuotePrefix"),t.enter("blockQuoteMarker"),t.consume(o),t.exit("blockQuoteMarker"),i}return s(o)}function i(o){return Wn(o)?(t.enter("blockQuotePrefixWhitespace"),t.consume(o),t.exit("blockQuotePrefixWhitespace"),t.exit("blockQuotePrefix"),n):(t.exit("blockQuotePrefix"),n(o))}}function Mee(t,n,s){const r=this;return a;function a(o){return Wn(o)?ws(t,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):i(o)}function i(o){return t.attempt(xM,n,s)(o)}}function Ree(t){t.exit("blockQuote")}const yM={name:"characterEscape",tokenize:Oee};function Oee(t,n,s){return r;function r(i){return t.enter("characterEscape"),t.enter("escapeMarker"),t.consume(i),t.exit("escapeMarker"),a}function a(i){return wee(i)?(t.enter("characterEscapeValue"),t.consume(i),t.exit("characterEscapeValue"),t.exit("characterEscape"),n):s(i)}}const bM={name:"characterReference",tokenize:Fee};function Fee(t,n,s){const r=this;let a=0,i,o;return l;function l(p){return t.enter("characterReference"),t.enter("characterReferenceMarker"),t.consume(p),t.exit("characterReferenceMarker"),c}function c(p){return p===35?(t.enter("characterReferenceMarkerNumeric"),t.consume(p),t.exit("characterReferenceMarkerNumeric"),d):(t.enter("characterReferenceValue"),i=31,o=vi,h(p))}function d(p){return p===88||p===120?(t.enter("characterReferenceMarkerHexadecimal"),t.consume(p),t.exit("characterReferenceMarkerHexadecimal"),t.enter("characterReferenceValue"),i=6,o=vee,h):(t.enter("characterReferenceValue"),i=7,o=rk,h(p))}function h(p){if(p===59&&a){const m=t.exit("characterReferenceValue");return o===vi&&!MN(r.sliceSerialize(m))?s(p):(t.enter("characterReferenceMarker"),t.consume(p),t.exit("characterReferenceMarker"),t.exit("characterReference"),n)}return o(p)&&a++<i?(t.consume(p),h):s(p)}}const yD={partial:!0,tokenize:Bee},bD={concrete:!0,name:"codeFenced",tokenize:Vee};function Vee(t,n,s){const r=this,a={partial:!0,tokenize:E};let i=0,o=0,l;return c;function c(C){return d(C)}function d(C){const F=r.events[r.events.length-1];return i=F&&F[1].type==="linePrefix"?F[2].sliceSerialize(F[1],!0).length:0,l=C,t.enter("co
2636deFenced"),t.enter("codeFencedFence"),t.enter("codeFencedFenceSequence"),h(C)}function h(C){return C===l?(o++,t.consume(C),h):o<3?s(C):(t.exit("codeFencedFenceSequence"),Wn(C)?ws(t,p,"whitespace")(C):p(C))}function p(C){return C===null||tn(C)?(t.exit("codeFencedFence"),r.interrupt?n(C):t.check(yD,g,A)(C)):(t.enter("codeFencedFenceInfo"),t.enter("chunkString",{contentType:"string"}),m(C))}function m(C){return C===null||tn(C)?(t.exit("chunkString"),t.exit("codeFencedFenceInfo"),p(C)):Wn(C)?(t.exit("chunkString"),t.exit("codeFencedFenceInfo"),ws(t,u,"whitespace")(C)):C===96&&C===l?s(C):(t.consume(C),m)}function u(C){return C===null||tn(C)?p(C):(t.enter("codeFencedFenceMeta"),t.enter("chunkString",{contentType:"string"}),y(C))}function y(C){return C===null||tn(C)?(t.exit("chunkString"),t.exit("codeFencedFenceMeta"),p(C)):C===96&&C===l?s(C):(t.consume(C),y)}function g(C){return t.attempt(a,A,w)(C)}function w(C){return t.enter("lineEnding"),t.consume(C),t.exit("lineEnding"),b}function b(C){return i>0&&Wn(C)?ws(t,j,"linePrefix",i+1)(C):j(C)}function j(C){return C===null||tn(C)?t.check(yD,g,A)(C):(t.enter("codeFlowValue"),N(C))}function N(C){return C===null||tn(C)?(t.exit("codeFlowValue"),j(C)):(t.consume(C),N)}function A(C){return t.exit("codeFenced"),n(C)}function E(C,F,O){let L=0;return W;function W(ae){return C.enter("lineEnding"),C.consume(ae),C.exit("lineEnding"),_}function _(ae){return C.enter("codeFencedFence"),Wn(ae)?ws(C,P,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(ae):P(ae)}function P(ae){return ae===l?(C.enter("codeFencedFenceSequence"),K(ae)):O(ae)}function K(ae){return ae===l?(L++,C.consume(ae),K):L>=o?(C.exit("codeFencedFenceSequence"),Wn(ae)?ws(C,q,"whitespace")(ae):q(ae)):O(ae)}function q(ae){return ae===null||tn(ae)?(C.exit("codeFencedFence"),F(ae)):O(ae)}}}function Bee(t,n,s){const r=this;return a;function a(o){return o===null?s(o):(t.enter("lineEnding"),t.consume(o),t.exit("lineEnding"),i)}function i(o){return r.parser.lazy[r.now().line]?s(o):n(o)}}const lw={name:"codeIndented",tokenize:Uee},zee={partial:!0,tokenize:qee};function Uee(t,n,s){const r=this;return a;function a(d){return t.enter("codeIndented"),ws(t,i,"linePrefix",5)(d)}function i(d){const h=r.events[r.events.length-1];return h&&h[1].type==="linePrefix"&&h[2].sliceSerialize(h[1],!0).length>=4?o(d):s(d)}function o(d){return d===null?c(d):tn(d)?t.attempt(zee,o,c)(d):(t.enter("codeFlowValue"),l(d))}function l(d){return d===null||tn(d)?(t.exit("codeFlowValue"),o(d)):(t.consume(d),l)}function c(d){return t.exit("codeIndented"),n(d)}}function qee(t,n,s){const r=this;return a;function a(o){return r.parser.lazy[r.now().line]?s(o):tn(o)?(t.enter("lineEnding"),t.consume(o),t.exit("lineEnding"),a):ws(t,i,"linePrefix",5)(o)}function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?n(o):tn(o)?a(o):s(o)}}const Hee={name:"codeText",previous:Wee,resolve:$ee,tokenize:Gee};function $ee(t){let n=t.length-4,s=3,r,a;if((t[s][1].type==="lineEnding"||t[s][1].type==="space")&&(t[n][1].type==="lineEnding"||t[n][1].type==="space")){for(r=s;++r<n;)if(t[r][1].type==="codeTextData"){t[s][1].type="codeTextPadding",t[n][1].type="codeTextPadding",s+=2,n-=2;break}}for(r=s-1,n++;++r<=n;)a===void 0?r!==n&&t[r][1].type!=="lineEnding"&&(a=r):(r===n||t[r][1].type==="lineEnding")&&(t[a][1].type="codeTextData",r!==a+2&&(t[a][1].end=t[r-1][1].end,t.splice(a+2,r-a-2),n-=r-a-2,r=a+2),a=void 0);return t}function Wee(t){return t!==96||this.events[this.events.length-1][1].type==="characterEscape"}function Gee(t,n,s){let r=0,a,i;return o;function o(p){return t.enter("codeText"),t.enter("codeTextSequence"),l(p)}function l(p){return p===96?(t.consume(p),r++,l):(t.exit("codeTextSequence"),c(p))}function c(p){return p===null?s(p):p===32?(t.enter("space"),t.consume(p),t.exit("space"),c):p===96?(i=t.enter("codeTextSequence"),a=0,h(p)):tn(p)?(t.enter("lineEnding"),t.consume(p),t.exit("lineEnding"),c):(t.enter("codeTextData"),d(p))}function d(p){return p===null||p===32||p===96||tn(p)?(t.exit("codeTextData"),c(p)):(t.consume(p),d)}function h(p){return p===96?(t.consume(p),a++,h):a===r?(t.exit("codeTextSequence"),t.exit("codeText"),n(p)):(i.type="codeTextData",d(p))}}class Kee{constructor(n){this.left=n?[...n]:[],this.right=[]}get(n){if(n<0||n>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+n+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return n<this.left.length?this.left[n]:this.right[this.right.length-n+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(n,s){const r=s??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(n,r):n>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-n+this.left.length).reverse():this.left.slice(n).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(n,s,r){const a=s||0;this.setCursor(Math.trunc(n));const i=this.right.splice(this.right.length-a,Number.POSITIVE_INFINITY);return r&&Sm(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(n){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(n)}pushMany(n){this.setCursor(Number.POSITIVE_INFINITY),Sm(this.left,n)}unshift(n){this.setCursor(0),this.right.push(n)}unshiftMany(n){this.setCursor(0),Sm(this.right,n.reverse())}setCursor(n){if(!(n===this.left.length||n>this.left.length&&this.right.length===0||n<0&&this.left.length===0))if(n<this.left.length){const s=this.left.splice(n,Number.POSITIVE_INFINITY);Sm(this.right,s.reverse())}else{const s=this.right.splice(this.left.length+this.right.length-n,Number.POSITIVE_INFINITY);Sm(this.left,s.reverse())}}}function Sm(t,n){let s=0;if(n.length<1e4)t.push(...n);else for(;s<n.length;)t.push(...n.slice(s,s+1e4)),s+=1e4}function vM(t){const n={};let s=-1,r,a,i,o,l,c,d;const h=new Kee(t);for(;++s<h.length;){for(;s in n;)s=n[s];if(r=h.get(s),s&&r[1].type==="chunkFlow"&&h.get(s-1)[1].type==="listItemPrefix"&&(c=r[1]._tokenizer.events,i=0,i<c.length&&c[i][1].type==="lineEndingBlank"&&(i+=2),i<c.length&&c[i][1].type==="content"))for(;++i<c.length&&c[i][1].type!=="content";)c[i][1].type==="chunkText"&&(c[i][1]._isInFirstContentOfListItem=!0,i++);if(r[0]==="enter")r[1].contentType&&(Object.assign(n,Qee(h,s)),s=n[s],d=!0);else if(r[1]._container){for(i=s,a=void 0;i--;)if(o=h.get(i),o[1].type==="lineEnding"||o[1].type==="lineEndingBlank")o[0]==="enter"&&(a&&(h.get(a)[1].type="lineEndingBlank"),o[1].type="lineEnding",a=i);else if(!(o[1].type==="linePrefix"||o[1].type==="listItemIndent"))break;a&&(r[1].end={...h.get(a)[1].start},l=h.slice(a,s),l.unshift(r),h.splice(a,s-a+1,l))}}return el(t,0,Number.POSITIVE_INFINITY,h.slice(0)),!d}function Qee(t,n){const s=t.get(n)[1],r=t.get(n)[2];let a=n-1;const i=[];let o=s._tokenizer;o||(o=r.parser[s.contentType](s.start),s._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));const l=o.events,c=[],d={};let h,p,m=-1,u=s,y=0,g=0;const w=[g];for(;u;){for(;t.get(++a)[1]!==u;);i.push(a),u._tokenizer||(h=r.sliceStream(u),u.next||h.push(null),p&&o.defineSki
vendor: 65,943 bytes, lines 2636-2648
2636p(u.start),u._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(h),u._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),p=u,u=u.next}for(u=s;++m<l.length;)l[m][0]==="exit"&&l[m-1][0]==="enter"&&l[m][1].type===l[m-1][1].type&&l[m][1].start.line!==l[m][1].end.line&&(g=m+1,w.push(g),u._tokenizer=void 0,u.previous=void 0,u=u.next);for(o.events=[],u?(u._tokenizer=void 0,u.previous=void 0):w.pop(),m=w.length;m--;){const b=l.slice(w[m],w[m+1]),j=i.pop();c.push([j,j+b.length-1]),t.splice(j,2,b)}for(c.reverse(),m=-1;++m<c.length;)d[y+c[m][0]]=y+c[m][1],y+=c[m][1]-c[m][0]-1;return d}const Yee={resolve:Xee,tokenize:Zee},Jee={partial:!0,tokenize:ete};function Xee(t){return vM(t),t}function Zee(t,n){let s;return r;function r(l){return t.enter("content"),s=t.enter("chunkContent",{contentType:"content"}),a(l)}function a(l){return l===null?i(l):tn(l)?t.check(Jee,o,i)(l):(t.consume(l),a)}function i(l){return t.exit("chunkContent"),t.exit("content"),n(l)}function o(l){return t.consume(l),t.exit("chunkContent"),s.next=t.enter("chunkContent",{contentType:"content",previous:s}),s=s.next,a}}function ete(t,n,s){const r=this;return a;function a(o){return t.exit("chunkContent"),t.enter("lineEnding"),t.consume(o),t.exit("lineEnding"),ws(t,i,"linePrefix")}function i(o){if(o===null||tn(o))return s(o);const l=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?n(o):t.interrupt(r.parser.constructs.flow,s,n)(o)}}function wM(t,n,s,r,a,i,o,l,c){const d=c||Number.POSITIVE_INFINITY;let h=0;return p;function p(b){return b===60?(t.enter(r),t.enter(a),t.enter(i),t.consume(b),t.exit(i),m):b===null||b===32||b===41||sk(b)?s(b):(t.enter(r),t.enter(o),t.enter(l),t.enter("chunkString",{contentType:"string"}),g(b))}function m(b){return b===62?(t.enter(i),t.consume(b),t.exit(i),t.exit(a),t.exit(r),n):(t.enter(l),t.enter("chunkString",{contentType:"string"}),u(b))}function u(b){return b===62?(t.exit("chunkString"),t.exit(l),m(b)):b===null||b===60||tn(b)?s(b):(t.consume(b),b===92?y:u)}function y(b){return b===60||b===62||b===92?(t.consume(b),u):u(b)}function g(b){return!h&&(b===null||b===41||Ka(b))?(t.exit("chunkString"),t.exit(l),t.exit(o),t.exit(r),n(b)):h<d&&b===40?(t.consume(b),h++,g):b===41?(t.consume(b),h--,g):b===null||b===32||b===40||sk(b)?s(b):(t.consume(b),b===92?w:g)}function w(b){return b===40||b===41||b===92?(t.consume(b),g):g(b)}}function jM(t,n,s,r,a,i){const o=this;let l=0,c;return d;function d(u){return t.enter(r),t.enter(a),t.consume(u),t.exit(a),t.enter(i),h}function h(u){return l>999||u===null||u===91||u===93&&!c||u===94&&!l&&"_hiddenFootnoteSupport"in o.parser.constructs?s(u):u===93?(t.exit(i),t.enter(a),t.consume(u),t.exit(a),t.exit(r),n):tn(u)?(t.enter("lineEnding"),t.consume(u),t.exit("lineEnding"),h):(t.enter("chunkString",{contentType:"string"}),p(u))}function p(u){return u===null||u===91||u===93||tn(u)||l++>999?(t.exit("chunkString"),h(u)):(t.consume(u),c||(c=!Wn(u)),u===92?m:p)}function m(u){return u===91||u===92||u===93?(t.consume(u),l++,p):p(u)}}function kM(t,n,s,r,a,i){let o;return l;function l(m){return m===34||m===39||m===40?(t.enter(r),t.enter(a),t.consume(m),t.exit(a),o=m===40?41:m,c):s(m)}function c(m){return m===o?(t.enter(a),t.consume(m),t.exit(a),t.exit(r),n):(t.enter(i),d(m))}function d(m){return m===o?(t.exit(i),c(o)):m===null?s(m):tn(m)?(t.enter("lineEnding"),t.consume(m),t.exit("lineEnding"),ws(t,d,"linePrefix")):(t.enter("chunkString",{contentType:"string"}),h(m))}function h(m){return m===o||m===null||tn(m)?(t.exit("chunkString"),d(m)):(t.consume(m),m===92?p:h)}function p(m){return m===o||m===92?(t.consume(m),h):h(m)}}function sf(t,n){let s;return r;function r(a){return tn(a)?(t.enter("lineEnding"),t.consume(a),t.exit("lineEnding"),s=!0,r):Wn(a)?ws(t,r,s?"linePrefix":"lineSuffix")(a):n(a)}}const tte={name:"definition",tokenize:ste},nte={partial:!0,tokenize:rte};function ste(t,n,s){const r=this;let a;return i;function i(u){return t.enter("definition"),o(u)}function o(u){return jM.call(r,t,l,s,"definitionLabel","definitionLabelMarker","definitionLabelString")(u)}function l(u){return a=$u(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),u===58?(t.enter("definitionMarker"),t.consume(u),t.exit("definitionMarker"),c):s(u)}function c(u){return Ka(u)?sf(t,d)(u):d(u)}function d(u){return wM(t,h,s,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(u)}function h(u){return t.attempt(nte,p,p)(u)}function p(u){return Wn(u)?ws(t,m,"whitespace")(u):m(u)}function m(u){return u===null||tn(u)?(t.exit("definition"),r.parser.defined.push(a),n(u)):s(u)}}function rte(t,n,s){return r;function r(l){return Ka(l)?sf(t,a)(l):s(l)}function a(l){return kM(t,i,s,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return Wn(l)?ws(t,o,"whitespace")(l):o(l)}function o(l){return l===null||tn(l)?n(l):s(l)}}const ate={name:"hardBreakEscape",tokenize:ite};function ite(t,n,s){return r;function r(i){return t.enter("hardBreakEscape"),t.consume(i),a}function a(i){return tn(i)?(t.exit("hardBreakEscape"),n(i)):s(i)}}const ote={name:"headingAtx",resolve:lte,tokenize:cte};function lte(t,n){let s=t.length-2,r=3,a,i;return t[r][1].type==="whitespace"&&(r+=2),s-2>r&&t[s][1].type==="whitespace"&&(s-=2),t[s][1].type==="atxHeadingSequence"&&(r===s-1||s-4>r&&t[s-2][1].type==="whitespace")&&(s-=r+1===s?2:4),s>r&&(a={type:"atxHeadingText",start:t[r][1].start,end:t[s][1].end},i={type:"chunkText",start:t[r][1].start,end:t[s][1].end,contentType:"text"},el(t,r,s-r+1,[["enter",a,n],["enter",i,n],["exit",i,n],["exit",a,n]])),t}function cte(t,n,s){let r=0;return a;function a(h){return t.enter("atxHeading"),i(h)}function i(h){return t.enter("atxHeadingSequence"),o(h)}function o(h){return h===35&&r++<6?(t.consume(h),o):h===null||Ka(h)?(t.exit("atxHeadingSequence"),l(h)):s(h)}function l(h){return h===35?(t.enter("atxHeadingSequence"),c(h)):h===null||tn(h)?(t.exit("atxHeading"),n(h)):Wn(h)?ws(t,l,"whitespace")(h):(t.enter("atxHeadingText"),d(h))}function c(h){return h===35?(t.consume(h),c):(t.exit("atxHeadingSequence"),l(h))}function d(h){return h===null||h===35||Ka(h)?(t.exit("atxHeadingText"),l(h)):(t.consume(h),d)}}const dte=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],vD=["pre","script","style","textarea"],hte={concrete:!0,name:"htmlFlow",resolveTo:mte,tokenize:fte},ute={partial:!0,tokenize:xte},pte={partial:!0,tokenize:gte};function mte(t){let n=t.length;for(;n--&&!(t[n][0]==="enter"&&t[n][1].type==="htmlFlow"););return n>1&&t[n-2][1].type==="linePrefix"&&(t[n][1].start=t[n-2][1].start,t[n+1][1].start=t[n-2][1].start,t.splice(n-2,2)),t}function fte(t,n,s){const r=this;let a,i,o,l,c;return d;function d(I){return h(I)}function h(I){return t.enter("htmlFlow"),t.enter("htmlFlowData"),t.consume(I),p}function p(I){return I===33?(t.consume(I),m):I===47?(t.consume(I),i=!0,g):I===63?(t.consume(I),a=3,r.interrupt?n:V):Ho(I)?(t.consume(I),o=String.fromCharCode(I),w):s(I)}function m(I){return I===45?(t.consume(I),a=2,u):I===91?(t.consume(I),a=5,l=0,y):Ho(I)?(t.consume(I),a=4,r.interrupt?n:V):s(I)}function u(I){return I===45?(t.consume(I),r.interrupt?n:V):s(I)}function y(I){const G="CDATA[";return I===G.charCodeAt(l++)?(t.consume(I),l===G.length?r.interrupt?n:P:y):s(I)}function g(I){return Ho(I)?(t.consume(I),o=String.fromCharCode(I),w):s(I)}function w(I){if(I===null||I===47||I===62||Ka(I)){const G=I===47,re=o.toLowerCase();return!G&&!i&&vD.includes(re)?(a=1,r.interrupt?n(I):P(I)):dte.includes(o.toLowerCase())?(a=6,G?(t.consume(I),b):r.interrupt?n(I):P(I)):(a=7,r.interrupt&&!r.parser.lazy[r.now().line]?s(I):i?j(I):N(I))}return I===45||vi(I)?(t.consume(I),o+=String.fromCharCode(I),w):s(I)}function b(I){return I===62?(t.consume(I),r.interrupt?n:P):s(I)}function j(I){return Wn(I)?(t.consume(I),j):W(I)}function N(I){return I===47?(t.consume(I),W):I===58||I===95||Ho(I)?(t.consume(I),A):Wn(I)?(t.consume(I),N):W(I)}function A(I){return I===45||I===46||I===58||I===95||vi(I)?(t.consume(I),A):E(I)}function E(I){return I===61?(t.consume(I),C):Wn(I)?(t.consume(I),E):N(I)}function C(I){return I===null||I===60||I===61||I===62||I===96?s(I):I===34||I===39?(t.consume(I),c=I,F):Wn(I)?(t.consume(I),C):O(I)}function F(I){return I===c?(t.consume(I),c=null,L):I===null||tn(I)?s(I):(t.consume(I),F)}function O(I){return I===null||I===34||I===39||I===47||I===60||I===61||I===62||I===96||Ka(I)?E(I):(t.consume(I),O)}function L(I){return I===47||I===62||Wn(I)?N(I):s(I)}function W(I){return I===62?(t.consume(I),_):s(I)}function _(I){return I===null||tn(I)?P(I):Wn(I)?(t.consume(I),_):s(I)}function P(I){return I===45&&a===2?(t.consume(I),ce):I===60&&a===1?(t.consume(I),de):I===62&&a===4?(t.consume(I),he):I===63&&a===3?(t.consume(I),V):I===93&&a===5?(t.consume(I),X):tn(I)&&(a===6||a===7)?(t.exit("htmlFlowData"),t.check(ute,T,K)(I)):I===null||tn(I)?(t.exit("htmlFlowData"),K(I)):(t.consume(I),P)}function K(I){return t.check(pte,q,T)(I)}function q(I){return t.enter("lineEnding"),t.consume(I),t.exit("lineEnding"),ae}function ae(I){return I===null||tn(I)?K(I):(t.enter("htmlFlowData"),P(I))}function ce(I){return I===45?(t.consume(I),V):P(I)}function de(I){return I===47?(t.consume(I),o="",H):P(I)}function H(I){if(I===62){const G=o.toLowerCase();return vD.includes(G)?(t.consume(I),he):P(I)}return Ho(I)&&o.length<8?(t.consume(I),o+=String.fromCharCode(I),H):P(I)}function X(I){return I===93?(t.consume(I),V):P(I)}function V(I){return I===62?(t.consume(I),he):I===45&&a===2?(t.consume(I),V):P(I)}function he(I){return I===null||tn(I)?(t.exit("htmlFlowData"),T(I)):(t.consume(I),he)}function T(I){return t.exit("htmlFlow"),n(I)}}function gte(t,n,s){const r=this;return a;function a(o){return tn(o)?(t.enter("lineEnding"),t.consume(o),t.exit("lineEnding"),i):s(o)}function i(o){return r.parser.lazy[r.now().line]?s(o):n(o)}}function xte(t,n,s){return r;function r(a){return t.enter("lineEnding"),t.consume(a),t.exit("lineEnding"),t.attempt(xb,n,s)}}const yte={name:"htmlText",tokenize:bte};function bte(t,n,s){const r=this;let a,i,o;return l;function l(V){return t.enter("htmlText"),t.enter("htmlTextData"),t.consume(V),c}function c(V){return V===33?(t.consume(V),d):V===47?(t.consume(V),E):V===63?(t.consume(V),N):Ho(V)?(t.consume(V),O):s(V)}function d(V){return V===45?(t.consume(V),h):V===91?(t.consume(V),i=0,y):Ho(V)?(t.consume(V),j):s(V)}function h(V){return V===45?(t.consume(V),u):s(V)}function p(V){return V===null?s(V):V===45?(t.consume(V),m):tn(V)?(o=p,de(V)):(t.consume(V),p)}function m(V){return V===45?(t.consume(V),u):p(V)}function u(V){return V===62?ce(V):V===45?m(V):p(V)}function y(V){const he="CDATA[";return V===he.charCodeAt(i++)?(t.consume(V),i===he.length?g:y):s(V)}function g(V){return V===null?s(V):V===93?(t.consume(V),w):tn(V)?(o=g,de(V)):(t.consume(V),g)}function w(V){return V===93?(t.consume(V),b):g(V)}function b(V){return V===62?ce(V):V===93?(t.consume(V),b):g(V)}function j(V){return V===null||V===62?ce(V):tn(V)?(o=j,de(V)):(t.consume(V),j)}function N(V){return V===null?s(V):V===63?(t.consume(V),A):tn(V)?(o=N,de(V)):(t.consume(V),N)}function A(V){return V===62?ce(V):N(V)}function E(V){return Ho(V)?(t.consume(V),C):s(V)}function C(V){return V===45||vi(V)?(t.consume(V),C):F(V)}function F(V){return tn(V)?(o=F,de(V)):Wn(V)?(t.consume(V),F):ce(V)}function O(V){return V===45||vi(V)?(t.consume(V),O):V===47||V===62||Ka(V)?L(V):s(V)}function L(V){return V===47?(t.consume(V),ce):V===58||V===95||Ho(V)?(t.consume(V),W):tn(V)?(o=L,de(V)):Wn(V)?(t.consume(V),L):ce(V)}function W(V){return V===45||V===46||V===58||V===95||vi(V)?(t.consume(V),W):_(V)}function _(V){return V===61?(t.consume(V),P):tn(V)?(o=_,de(V)):Wn(V)?(t.consume(V),_):L(V)}function P(V){return V===null||V===60||V===61||V===62||V===96?s(V):V===34||V===39?(t.consume(V),a=V,K):tn(V)?(o=P,de(V)):Wn(V)?(t.consume(V),P):(t.consume(V),q)}function K(V){return V===a?(t.consume(V),a=void 0,ae):V===null?s(V):tn(V)?(o=K,de(V)):(t.consume(V),K)}function q(V){return V===null||V===34||V===39||V===60||V===61||V===96?s(V):V===47||V===62||Ka(V)?L(V):(t.consume(V),q)}function ae(V){return V===47||V===62||Ka(V)?L(V):s(V)}function ce(V){return V===62?(t.consume(V),t.exit("htmlTextData"),t.exit("htmlText"),n):s(V)}function de(V){return t.exit("htmlTextData"),t.enter("lineEnding"),t.consume(V),t.exit("lineEnding"),H}function H(V){return Wn(V)?ws(t,X,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(V):X(V)}function X(V){return t.enter("htmlTextData"),o(V)}}const ON={name:"labelEnd",resolveAll:kte,resolveTo:Nte,tokenize:Ste},vte={tokenize:Ate},wte={tokenize:Dte},jte={tokenize:Ite};function kte(t){let n=-1;const s=[];for(;++n<t.length;){const r=t[n][1];if(s.push(t[n]),r.type==="labelImage"||r.type==="labelLink"||r.type==="labelEnd"){const a=r.type==="labelImage"?4:2;r.type="data",n+=a}}return t.length!==s.length&&el(t,0,t.length,s),t}function Nte(t,n){let s=t.length,r=0,a,i,o,l;for(;s--;)if(a=t[s][1],i){if(a.type==="link"||a.type==="labelLink"&&a._inactive)break;t[s][0]==="enter"&&a.type==="labelLink"&&(a._inactive=!0)}else if(o){if(t[s][0]==="enter"&&(a.type==="labelImage"||a.type==="labelLink")&&!a._balanced&&(i=s,a.type!=="labelLink")){r=2;break}}else a.type==="labelEnd"&&(o=s);const c={type:t[i][1].type==="labelLink"?"link":"image",start:{...t[i][1].start},end:{...t[t.length-1][1].end}},d={type:"label",start:{...t[i][1].start},end:{...t[o][1].end}},h={type:"labelText",start:{...t[i+r+2][1].end},end:{...t[o-2][1].start}};return l=[["enter",c,n],["enter",d,n]],l=zi(l,t.slice(i+1,i+r+3)),l=zi(l,[["enter",h,n]]),l=zi(l,RN(n.parser.constructs.insideSpan.null,t.slice(i+r+4,o-3),n)),l=zi(l,[["exit",h,n],t[o-2],t[o-1],["exit",d,n]]),l=zi(l,t.slice(o+1)),l=zi(l,[["exit",c,n]]),el(t,i,t.length,l),t}function Ste(t,n,s){const r=this;let a=r.events.length,i,o;for(;a--;)if((r.events[a][1].type==="labelImage"||r.events[a][1].type==="labelLink")&&!r.events[a][1]._balanced){i=r.events[a][1];break}return l;function l(m){return i?i._inactive?p(m):(o=r.parser.defined.includes($u(r.sliceSerialize({start:i.end,end:r.now()}))),t.enter("labelEnd"),t.enter("labelMarker"),t.consume(m),t.exit("labelMarker"),t.exit("labelEnd"),c):s(m)}function c(m){return m===40?t.attempt(vte,h,o?h:p)(m):m===91?t.attempt(wte,h,o?d:p)(m):o?h(m):p(m)}function d(m){return t.attempt(jte,h,p)(m)}function h(m){return n(m)}function p(m){return i._balanced=!0,s(m)}}function Ate(t,n,s){return r;function r(p){return t.enter("resource"),t.enter("resourceMarker"),t.consume(p),t.exit("resourceMarker"),a}function a(p){return Ka(p)?sf(t,i)(p):i(p)}function i(p){return p===41?h(p):wM(t,o,l,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(p)}function o(p){return Ka(p)?sf(t,c)(p):h(p)}function l(p){return s(p)}function c(p){return p===34||p===39||p===40?kM(t,d,s,"resourceTitle","resourceTitleMarker","resourceTitleString")(p):h(p)}function d(p){return Ka(p)?sf(t,h)(p):h(p)}function h(p){return p===41?(t.enter("resourceMarker"),t.consume(p),t.exit("resourceMarker"),t.exit("resource"),n):s(p)}}function Dte(t,n,s){const r=this;return a;function a(l){return jM.call(r,t,i,o,"reference","referenceMarker","referenceString")(l)}function i(l){return r.parser.defined.includes($u(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?n(l):s(l)}function o(l){return s(l)}}function Ite(t,n,s){return r;function r(i){return t.enter("reference"),t.enter("referenceMarker"),t.consume(i),t.exit("referenceMarker"),a}function a(i){return i===93?(t.enter("referenceMarker"),t.consume(i),t.exit("referenceMarker"),t.exit("reference"),n):s(i)}}const Cte={name:"labelStartImage",resolveAll:ON.resolveAll,tokenize:_te};function _te(t,n,s){const r=this;return a;function a(l){return t.enter("labelImage"),t.enter("labelImageMarker"),t.consume(l),t.exit("labelImageMarker"),i}function i(l){return l===91?(t.enter("labelMarker"),t.consume(l),t.exit("labelMarker"),t.exit("labelImage"),o):s(l)}function o(l){return l===94&&"_hiddenFootnoteSupport"in r.parser.constructs?s(l):n(l)}}const Tte={name:"labelStartLink",resolveAll:ON.resolveAll,tokenize:Pte};function Pte(t,n,s){const r=this;return a;function a(o){return t.enter("labelLink"),t.enter("labelMarker"),t.consume(o),t.exit("labelMarker"),t.exit("labelLink"),i}function i(o){return o===94&&"_hiddenFootnoteSupport"in r.parser.constructs?s(o):n(o)}}const cw={name:"lineEnding",tokenize:Ete};function Ete(t,n){return s;function s(r){return t.enter("lineEnding"),t.consume(r),t.exit("lineEnding"),ws(t,n,"linePrefix")}}const py={name:"thematicBreak",tokenize:Lte};function Lte(t,n,s){let r=0,a;return i;function i(d){return t.enter("thematicBreak"),o(d)}function o(d){return a=d,l(d)}function l(d){return d===a?(t.enter("thematicBreakSequence"),c(d)):r>=3&&(d===null||tn(d))?(t.exit("thematicBreak"),n(d)):s(d)}function c(d){return d===a?(t.consume(d),r++,c):(t.exit("thematicBreakSequence"),Wn(d)?ws(t,l,"whitespace")(d):l(d))}}const Ra={continuation:{tokenize:Fte},exit:Bte,name:"list",tokenize:Ote},Mte={partial:!0,tokenize:zte},Rte={partial:!0,tokenize:Vte};function Ote(t,n,s){const r=this,a=r.events[r.events.length-1];let i=a&&a[1].type==="linePrefix"?a[2].sliceSerialize(a[1],!0).length:0,o=0;return l;function l(u){const y=r.containerState.type||(u===42||u===43||u===45?"listUnordered":"listOrdered");if(y==="listUnordered"?!r.containerState.marker||u===r.containerState.marker:rk(u)){if(r.containerState.type||(r.containerState.type=y,t.enter(y,{_container:!0})),y==="listUnordered")return t.enter("listItemPrefix"),u===42||u===45?t.check(py,s,d)(u):d(u);if(!r.interrupt||u===49)return t.enter("listItemPrefix"),t.enter("listItemValue"),c(u)}return s(u)}function c(u){return rk(u)&&++o<10?(t.consume(u),c):(!r.interrupt||o<2)&&(r.containerState.marker?u===r.containerState.marker:u===41||u===46)?(t.exit("listItemValue"),d(u)):s(u)}function d(u){return t.enter("listItemMarker"),t.consume(u),t.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||u,t.check(xb,r.interrupt?s:h,t.attempt(Mte,m,p))}function h(u){return r.containerState.initialBlankLine=!0,i++,m(u)}function p(u){return Wn(u)?(t.enter("listItemPrefixWhitespace"),t.consume(u),t.exit("listItemPrefixWhitespace"),m):s(u)}function m(u){return r.containerState.size=i+r.sliceSerialize(t.exit("listItemPrefix"),!0).length,n(u)}}function Fte(t,n,s){const r=this;return r.containerState._closeFlow=void 0,t.check(xb,a,i);function a(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,ws(t,n,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!Wn(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,t.attempt(Rte,n,o)(l))}function o(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,ws(t,t.attempt(Ra,n,s),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function Vte(t,n,s){const r=this;return ws(t,a,"listItemIndent",r.containerState.size+1);function a(i){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?n(i):s(i)}}function Bte(t){t.exit(this.containerState.type)}function zte(t,n,s){const r=this;return ws(t,a,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function a(i){const o=r.events[r.events.length-1];return!Wn(i)&&o&&o[1].type==="listItemPrefixWhitespace"?n(i):s(i)}}const wD={name:"setextUnderline",resolveTo:Ute,tokenize:qte};function Ute(t,n){let s=t.length,r,a,i;for(;s--;)if(t[s][0]==="enter"){if(t[s][1].type==="content"){r=s;break}t[s][1].type==="paragraph"&&(a=s)}else t[s][1].type==="content"&&t.splice(s,1),!i&&t[s][1].type==="definition"&&(i=s);const o={type:"setextHeading",start:{...t[r][1].start},end:{...t[t.length-1][1].end}};return t[a][1].type="setextHeadingText",i?(t.splice(a,0,["enter",o,n]),t.splice(i+1,0,["exit",t[r][1],n]),t[r][1].end={...t[i][1].end}):t[r][1]=o,t.push(["exit",o,n]),t}function qte(t,n,s){const r=this;let a;return i;function i(d){let h=r.events.length,p;for(;h--;)if(r.events[h][1].type!=="lineEnding"&&r.events[h][1].type!=="linePrefix"&&r.events[h][1].type!=="content"){p=r.events[h][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(t.enter("setextHeadingLine"),a=d,o(d)):s(d)}function o(d){return t.enter("setextHeadingLineSequence"),l(d)}function l(d){return d===a?(t.consume(d),l):(t.exit("setextHeadingLineSequence"),Wn(d)?ws(t,c,"lineSuffix")(d):c(d))}function c(d){return d===null||tn(d)?(t.exit("setextHeadingLine"),n(d)):s(d)}}const Hte={tokenize:$te};function $te(t){const n=this,s=t.attempt(xb,r,t.attempt(this.parser.constructs.flowInitial,a,ws(t,t.attempt(this.parser.constructs.flow,a,t.attempt(Yee,a)),"linePrefix")));return s;function r(i){if(i===null){t.consume(i);return}return t.enter("lineEndingBlank"),t.consume(i),t.exit("lineEndingBlank"),n.currentConstruct=void 0,s}function a(i){if(i===null){t.consume(i);return}return t.enter("lineEnding"),t.consume(i),t.exit("lineEnding"),n.currentConstruct=void 0,s}}const Wte={resolveAll:SM()},Gte=NM("string"),Kte=NM("text");function NM(t){return{resolveAll:SM(t==="text"?Qte:void 0),tokenize:n};function n(s){const r=this,a=this.parser.constructs[t],i=s.attempt(a,o,l);return o;function o(h){return d(h)?i(h):l(h)}function l(h){if(h===null){s.consume(h);return}return s.enter("data"),s.consume(h),c}function c(h){return d(h)?(s.exit("data"),i(h)):(s.consume(h),c)}function d(h){if(h===null)return!0;const p=a[h];let m=-1;if(p)for(;++m<p.length;){const u=p[m];if(!u.previous||u.previous.call(r,r.previous))return!0}return!1}}}function SM(t){return n;function n(s,r){let a=-1,i;for(;++a<=s.length;)i===void 0?s[a]&&s[a][1].type==="data"&&(i=a,a++):(!s[a]||s[a][1].type!=="data")&&(a!==i+2&&(s[i][1].end=s[a-1][1].end,s.splice(i+2,a-i-2),a=i+2),i=void 0);return t?t(s,r):s}}function Qte(t,n){let s=0;for(;++s<=t.length;)if((s===t.length||t[s][1].type==="lineEnding")&&t[s-1][1].type==="data"){const r=t[s-1][1],a=n.sliceStream(r);let i=a.length,o=-1,l=0,c;for(;i--;){const d=a[i];if(typeof d=="string"){for(o=d.length;d.charCodeAt(o-1)===32;)l++,o--;if(o)break;o=-1}else if(d===-2)c=!0,l++;else if(d!==-1){i++;break}}if(n._contentTypeTextTrailing&&s===t.length&&(l=0),l){const d={type:s===t.length||c||l<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:i?o:r.start._bufferIndex+o,_index:r.start._index+i,line:r.end.line,column:r.end.column-l,offset:r.end.offset-l},end:{...r.end}};r.end={...d.start},r.start.offset===r.end.offset?Object.assign(r,d):(t.splice(s,0,["enter",d,n],["exit",d,n]),s+=2)}s++}return t}const Yte={42:Ra,43:Ra,45:Ra,48:Ra,49:Ra,50:Ra,51:Ra,52:Ra,53:Ra,54:Ra,55:Ra,56:Ra,57:Ra,62:xM},Jte={91:tte},Xte={[-2]:lw,[-1]:lw,32:lw},Zte={35:ote,42:py,45:[wD,py],60:hte,61:wD,95:py,96:bD,126:bD},ene={38:bM,92:yM},tne={[-5]:cw,[-4]:cw,[-3]:cw,33:Cte,38:bM,42:ak,60:[Tee,yte],91:Tte,92:[ate,yM],93:ON,95:ak,96:Hee},nne={null:[ak,Wte]},sne={null:[42,95]},rne={null:[]},ane=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:sne,contentInitial:Jte,disable:rne,document:Yte,flow:Zte,flowInitial:Xte,insideSpan:nne,string:ene,text:tne},Symbol.toStringTag,{value:"Module"}));function ine(t,n,s){let r={_bufferIndex:-1,_index:0,line:s&&s.line||1,column:s&&s.column||1,offset:s&&s.offset||0};const a={},i=[];let o=[],l=[];const c={attempt:F(E),check:F(C),consume:j,enter:N,exit:A,interrupt:F(C,{interrupt:!0})},d={code:null,containerState:{},defineSkip:g,events:[],now:y,parser:t,previous:null,sliceSerialize:m,sliceStream:u,write:p};let h=n.tokenize.call(d,c);return n.resolveAll&&i.push(n),d;function p(_){return o=zi(o,_),w(),o[o.length-1]!==null?[]:(O(n,0),d.events=RN(i,d.events,d),d.events)}function m(_,P){return lne(u(_),P)}function u(_){return one(o,_)}function y(){const{_bufferIndex:_,_index:P,line:K,column:q,offset:ae}=r;return{_bufferIndex:_,_index:P,line:K,column:q,offset:ae}}function g(_){a[_.line]=_.column,W()}function w(){let _;for(;r._index<o.length;){const P=o[r._index];if(typeof P=="string")for(_=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===_&&r._bufferIndex<P.length;)b(P.charCodeAt(r._bufferIndex));else b(P)}}function b(_){h=h(_)}function j(_){tn(_)?(r.line++,r.column=1,r.offset+=_===-3?2:1,W()):_!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),d.previous=_}function N(_,P){const K=P||{};return K.type=_,K.start=y(),d.events.push(["enter",K,d]),l.push(K),K}function A(_){const P=l.pop();return P.end=y(),d.events.push(["exit",P,d]),P}function E(_,P){O(_,P.from)}function C(_,P){P.restore()}function F(_,P){return K;function K(q,ae,ce){let de,H,X,V;return Array.isArray(q)?T(q):"tokenize"in q?T([q]):he(q);function he(ne){return pe;function pe(je){const ke=je!==null&&ne[je],De=je!==null&&ne.null,Pe=[...Array.isArray(ke)?ke:ke?[ke]:[],...Array.isArray(De)?De:De?[De]:[]];return T(Pe)(je)}}function T(ne){return de=ne,H=0,ne.length===0?ce:I(ne[H])}function I(ne){return pe;function pe(je){return V=L(),X=ne,ne.partial||(d.currentConstruct=ne),ne.name&&d.parser.constructs.disable.null.includes(ne.name)?re():ne.tokenize.call(P?Object.assign(Object.create(d),P):d,c,G,re)(je)}}function G(ne){return _(X,V),ae}function re(ne){return V.restore(),++H<de.length?I(de[H]):ce}}}function O(_,P){_.resolveAll&&!i.includes(_)&&i.push(_),_.resolve&&el(d.events,P,d.events.length-P,_.resolve(d.events.slice(P),d)),_.resolveTo&&(d.events=_.resolveTo(d.events,d))}function L(){const _=y(),P=d.previous,K=d.currentConstruct,q=d.events.length,ae=Array.from(l);return{from:q,restore:ce};function ce(){r=_,d.previous=P,d.currentConstruct=K,d.events.length=q,l=ae,W()}}function W(){r.line in a&&r.column<2&&(r.column=a[r.line],r.offset+=a[r.line]-1)}}function one(t,n){const s=n.start._index,r=n.start._bufferIndex,a=n.end._index,i=n.end._bufferIndex;let o;if(s===a)o=[t[s].slice(r,i)];else{if(o=t.slice(s,a),r>-1){const l=o[0];typeof l=="string"?o[0]=l.slice(r):o.shift()}i>0&&o.push(t[a].slice(0,i))}return o}function lne(t,n){let s=-1;const r=[];let a;for(;++s<t.length;){const i=t[s];let o;if(typeof i=="string")o=i;else switch(i){case-5:{o="\r";break}case-4:{o=` 2637`;break}case-3:{o=`\r 2638`;break}case-2:{o=n?" ":" ";break}case-1:{if(!n&&a)continue;o=" ";break}default:o=String.fromCharCode(i)}a=i===-2,r.push(o)}return r.join("")}function cne(t){const r={constructs:gee([ane,...(t||{}).extensions||[]]),content:a(Nee),defined:[],document:a(Aee),flow:a(Hte),lazy:{},string:a(Gte),text:a(Kte)};return r;function a(i){return o;function o(l){return ine(r,i,l)}}}function dne(t){for(;!vM(t););return t}const jD=/[\0\t\n\r]/g;function hne(){let t=1,n="",s=!0,r;return a;function a(i,o,l){const c=[];let d,h,p,m,u;for(i=n+(typeof i=="string"?i.toString():new TextDecoder(o||void 0).decode(i)),p=0,n="",s&&(i.charCodeAt(0)===65279&&p++,s=void 0);p<i.length;){if(jD.lastIndex=p,d=jD.exec(i),m=d&&d.index!==void 0?d.index:i.length,u=i.charCodeAt(m),!d){n=i.slice(p);break}if(u===10&&p===m&&r)c.push(-3),r=void 0;else switch(r&&(c.push(-5),r=void 0),p<m&&(c.push(i.slice(p,m)),t+=m-p),u){case 0:{c.push(65533),t++;break}case 9:{for(h=Math.ceil(t/4)*4,c.push(-2);t++<h;)c.push(-1);break}case 10:{c.push(-4),t=1;break}default:r=!0,t=1}p=m+1}return l&&(r&&c.push(-5),n&&c.push(n),c.push(null)),c}}const une=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function pne(t){return t.replace(une,mne)}function mne(t,n,s){if(n)return n;if(s.charCodeAt(0)===35){const a=s.charCodeAt(1),i=a===120||a===88;return gM(s.slice(i?2:1),i?16:10)}return MN(s)||t}const AM={}.hasOwnProperty;function fne(t,n,s){return n&&typeof n=="object"&&(s=n,n=void 0),gne(s)(dne(cne(s).document().write(hne()(t,n,!0))))}function gne(t){const n={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(Ce),autolinkProtocol:L,autolinkEmail:L,atxHeading:i(Y),blockQuote:i(De),characterEscape:L,characterReference:L,codeFenced:i(Pe),codeFencedFenceInfo:o,codeFencedFenceMeta:o,codeIndented:i(Pe,o),codeText:i(Ze,o),codeTextData:L,data:L,codeFlowValue:L,definition:i(tt),definitionDestinationString:o,definitionLabelString:o,definitionTitleString:o,emphasis:i(Je),hardBreakEscape:i(Oe),hardBreakTrailing:i(Oe),htmlFlow:i(Wt,o),htmlFlowData:L,htmlText:i(Wt,o),htmlTextData:L,image:i(yt),label:o,link:i(Ce),listItem:i(ot),listItemValue:m,listOrdered:i(wt,p),listUnordered:i(wt),paragraph:i(_t),reference:I,referenceString:o,resourceDestinationString:o,resourceTitleString:o,setextHeading:i(Y),strong:i(gt),thematicBreak:i(Xt)},exit:{atxHeading:c(),atxHeadingSequence:E,autolink:c(),autolinkEmail:ke,autolinkProtocol:je,blockQuote:c(),characterEscapeValue:W,characterReferenceMarkerHexadecimal:re,characterReferenceMarkerNumeric:re,characterReferenceValue:ne,characterReference:pe,codeFenced:c(w),codeFencedFence:g,codeFencedFenceInfo:u,codeFencedFenceMeta:y,codeFlowValue:W,codeIndented:c(b),codeText:c(ae),codeTextData:W,data:W,definition:c(),definitionDestinationString:A,definitionLabelString:j,definitionTitleString:N,emphasis:c(),hardBreakEscape:c(P),hardBreakTrailing:c(P),htmlFlow:c(K),htmlFlowData:W,htmlText:c(q),htmlTextData:W,image:c(de),label:X,labelText:H,lineEnding:_,link:c(ce),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:G,resourceDestinationString:V,resourceTitleString:he,resource:T,setextHeading:c(O),setextHeadingLineSequence:F,setextHeadingText:C,strong:c(),thematicBreak:c()}};DM(n,(t||{}).mdastExtensions||[]);const s={};return r;function r(be){let Ie={type:"root",children:[]};const $e={stack:[Ie],tokenStack:[],config:n,enter:l,exit:d,buffer:o,resume:h,data:s},Fe=[];let at=-1;for(;++at<be.length;)if(be[at][1].type==="listOrdered"||be[at][1].type==="listUnordered")if(be[at][0]==="enter")Fe.push(at);else{const dt=Fe.pop();at=a(be,dt,at)}for(at=-1;++at<be.length;){const dt=n[be[at][0]];AM.call(dt,be[at][1].type)&&dt[be[at][1].type].call(Object.assign({sliceSerialize:be[at][2].sliceSerialize},$e),be[at][1])}if($e.tokenStack.length>0){const dt=$e.tokenStack[$e.tokenStack.length-1];(dt[1]||kD).call($e,void 0,dt[0])}for(Ie.position={start:dc(be.length>0?be[0][1].start:{line:1,column:1,offset:0}),end:dc(be.length>0?be[be.length-2][1].end:{line:1,column:1,offset:0})},at=-1;++at<n.transforms.length;)Ie=n.transforms[at](Ie)||Ie;return Ie}function a(be,Ie,$e){let Fe=Ie-1,at=-1,dt=!1,rn,Ut,qt,Vt;for(;++Fe<=$e;){const Gt=be[Fe];switch(Gt[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{Gt[0]==="enter"?at++:at--,Vt=void 0;break}case"lineEndingBlank":{Gt[0]==="enter"&&(rn&&!Vt&&!at&&!qt&&(qt=Fe),Vt=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:Vt=void 0}if(!at&&Gt[0]==="enter"&&Gt[1].type==="listItemPrefix"||at===-1&&Gt[0]==="exit"&&(Gt[1].type==="listUnordered"||Gt[1].type==="listOrdered")){if(rn){let bt=Fe;for(Ut=void 0;bt--;){const nt=be[bt];if(nt[1].type==="lineEnding"||nt[1].type==="lineEndingBlank"){if(nt[0]==="exit")continue;Ut&&(be[Ut][1].type="lineEndingBlank",dt=!0),nt[1].type="lineEnding",Ut=bt}else if(!(nt[1].type==="linePrefix"||nt[1].type==="blockQuotePrefix"||nt[1].type==="blockQuotePrefixWhitespace"||nt[1].type==="blockQuoteMarker"||nt[1].type==="listItemIndent"))break}qt&&(!Ut||qt<Ut)&&(rn._spread=!0),rn.end=Object.assign({},Ut?be[Ut][1].start:Gt[1].end),be.splice(Ut||Fe,0,["exit",rn,Gt[2]]),Fe++,$e++}if(Gt[1].type==="listItemPrefix"){const bt={type:"listItem",_spread:!1,start:Object.assign({},Gt[1].start),end:void 0};rn=bt,be.splice(Fe,0,["enter",bt,Gt[2]]),Fe++,$e++,qt=void 0,Vt=!0}}}return be[Ie][1]._spread=dt,$e}function i(be,Ie){return $e;function $e(Fe){l.call(this,be(Fe),Fe),Ie&&Ie.call(this,Fe)}}function o(){this.stack.push({type:"fragment",children:[]})}function l(be,Ie,$e){this.stack[this.stack.length-1].children.push(be),this.stack.push(be),this.tokenStack.push([Ie,$e||void 0]),be.position={start:dc(Ie.start),end:void 0}}function c(be){return Ie;function Ie($e){be&&be.call(this,$e),d.call(this,$e)}}function d(be,Ie){const $e=this.stack.pop(),Fe=this.tokenStack.pop();if(Fe)Fe[0].type!==be.type&&(Ie?Ie.call(this,be,Fe[0]):(Fe[1]||kD).call(this,be,Fe[0]));else throw new Error("Cannot close `"+be.type+"` ("+nf({start:be.start,end:be.end})+"): itâs not open");$e.position.end=dc(be.end)}function h(){return mee(this.stack.pop())}function p(){this.data.expectingFirstListItemValue=!0}function m(be){if(this.data.expectingFirstListItemValue){const Ie=this.stack[this.stack.length-2];Ie.start=Number.parseInt(this.sliceSerialize(be),10),this.data.expectingFirstListItemValue=void 0}}function u(){const be=this.resume(),Ie=this.stack[this.stack.length-1];Ie.lang=be}function y(){const be=this.resume(),Ie=this.stack[this.stack.length-1];Ie.meta=be}function g(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function w(){const be=this.resume(),Ie=this.stack[this.stack.length-1];Ie.value=be.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function b(){const be=this.resume(),Ie=this.stack[this.stack.length-1];Ie.value=be.replace(/(\r?\n|\r)$/g,"")}function j(be){const Ie=this.resume(),$e=this.stack[this.stack.length-1];$e.label=Ie,$e.identifier=$u(this.sliceSerialize(be)).toLowerCase()}function N(){const be=this.resume(),Ie=this.stack[this.stack.length-1];Ie.title=be}function A(){const be=this.resume(),Ie=this.stack[this.stack.length-1];Ie.url=be}function E(be){const Ie=this.stack[this.stack.length-1];if(!Ie.depth){const $e=this.sliceSerialize(be).length;Ie.depth=$e}}function C(){this.data.setextHeadingSlurpLineEnding=!0}function F(be){const Ie=this.stack[this.stack.length-1];Ie.depth=this.sliceSerialize(be).codePointAt(0)===61?1:2}function O(){this.data.setextHeadingSlurpLineEnding=void 0}function L(be){const $e=this.stack[this.stack.length-1].children;let Fe=$e[$e.length-1];(!Fe||Fe.type!=="text")&&(Fe=un(),Fe.position={start:dc(be.start),end:void 0},$e.push(Fe)),this.stack.push(Fe)}function W(be){const Ie=this.stack.pop();Ie.value+=this.sliceSerialize(be),Ie.position.end=dc(be.end)}function _(be){const Ie=this.stack[this.stack.length-1];if(this.data.atHardBreak){const $e=Ie.children[Ie.children.length-1];$e.position.end=dc(be.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&n.canContainEols.includes(Ie.type)&&(L.call(this,be),W.call(this,be))}function P(){this.data.atHardBreak=!0}function K(){const be=this.resume(),Ie=this.stack[this.stack.length-1];Ie.value=be}function q(){const be=this.resume(),Ie=this.stack[this.stack.length-1];Ie.value=be}function ae(){const be=this.resume(),Ie=this.stack[this.stack.length-1];Ie.value=be}function ce(){const be=this.stack[this.stack.length-1];if(this.data.inReference){const Ie=this.data.referenceType||"shortcut";be.type+="Reference",be.referenceType=Ie,delete be.url,delete be.title}else delete be.identifier,delete be.label;this.data.referenceType=void 0}function de(){const be=this.stack[this.stack.length-1];if(this.data.inReference){const Ie=this.data.referenceType||"shortcut";be.type+="Reference",be.referenceType=Ie,delete be.url,delete be.title}else delete be.identifier,delete be.label;this.data.referenceType=void 0}function H(be){const Ie=this.sliceSerialize(be),$e=this.stack[this.stack.length-2];$e.label=pne(Ie),$e.identifier=$u(Ie).toLowerCase()}function X(){const be=this.stack[this.stack.length-1],Ie=this.resume(),$e=this.stack[this.stack.length-1];if(this.data.inReference=!0,$e.type==="link"){const Fe=be.children;$e.children=Fe}else $e.alt=Ie}function V(){const be=this.resume(),Ie=this.stack[this.stack.length-1];Ie.url=be}function he(){const be=this.resume(),Ie=this.stack[this.stack.length-1];Ie.title=be}function T(){this.data.inReference=void 0}function I(){this.data.referenceType="collapsed"}function G(be){const Ie=this.resume(),$e=this.stack[this.stack.length-1];$e.label=Ie,$e.identifier=$u(this.sliceSerialize(be)).toLowerCase(),this.data.referenceType="full"}function re(be){this.data.characterReferenceType=be.type}function ne(be){const Ie=this.sliceSerialize(be),$e=this.data.characterReferenceType;let Fe;$e?(Fe=gM(Ie,$e==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):Fe=MN(Ie);const at=this.stack[this.stack.length-1];at.value+=Fe}function pe(be){const Ie=this.stack.pop();Ie.position.end=dc(be.end)}function je(be){W.call(this,be);const Ie=this.stack[this.stack.length-1];Ie.url=this.sliceSerialize(be)}function ke(be){W.call(this,be);const Ie=this.stack[this.stack.length-1];Ie.url="mailto:"+this.sliceSerialize(be)}function De(){return{type:"blockquote",children:[]}}function Pe(){return{type:"code",lang:null,meta:null,value:""}}function Ze(){return{type:"inlineCode",value:""}}function tt(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function Je(){return{type:"emphasis",children:[]}}function Y(){return{type:"heading",depth:0,children:[]}}function Oe(){return{type:"break"}}function Wt(){return{type:"html",value:""}}function yt(){return{type:"image",title:null,url:"",alt:null}}function Ce(){return{type:"link",title:null,url:"",children:[]}}function wt(be){return{type:"list",ordered:be.type==="listOrdered",start:null,spread:be._spread,children:[]}}function ot(be){return{type:"listItem",spread:be._spread,checked:null,children:[]}}function _t(){return{type:"paragraph",children:[]}}function gt(){return{type:"strong",children:[]}}function un(){return{type:"text",value:""}}function Xt(){return{type:"thematicBreak"}}}function dc(t){return{line:t.line,column:t.column,offset:t.offset}}function DM(t,n){let s=-1;for(;++s<n.length;){const r=n[s];Array.isArray(r)?DM(t,r):xne(t,r)}}function xne(t,n){let s;for(s in n)if(AM.call(n,s))switch(s){case"canContainEols":{const r=n[s];r&&t[s].push(...r);break}case"transforms":{const r=n[s];r&&t[s].push(...r);break}case"enter":case"exit":{const r=n[s];r&&Object.assign(t[s],r);break}}}function kD(t,n){throw t?new Error("Cannot close `"+t.type+"` ("+nf({start:t.start,end:t.end})+"): a different token (`"+n.type+"`, "+nf({start:n.start,end:n.end})+") is open"):new Error("Cannot close document, a token (`"+n.type+"`, "+nf({start:n.start,end:n.end})+") is still open")}function yne(t){const n=this;n.parser=s;function s(r){return fne(r,{...n.data("settings"),...t,extensions:n.data("micromarkExtensions")||[],mdastExtensions:n.data("fromMarkdownExtensions")||[]})}}function bne(t,n){const s={type:"element",tagName:"blockquote",properties:{},children:t.wrap(t.all(n),!0)};return t.patch(n,s),t.applyData(n,s)}function vne(t,n){const s={type:"element",tagName:"br",properties:{},children:[]};return t.patch(n,s),[t.applyData(n,s),{type:"text",value:` 2639`}]}function wne(t,n){const s=n.value?n.value+` 2640`:"",r={},a=n.lang?n.lang.split(/\s+/):[];a.length>0&&(r.className=["language-"+a[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:s}]};return n.meta&&(i.data={meta:n.meta}),t.patch(n,i),i=t.applyData(n,i),i={type:"element",tagName:"pre",properties:{},children:[i]},t.patch(n,i),i}function jne(t,n){const s={type:"element",tagName:"del",properties:{},children:t.all(n)};return t.patch(n,s),t.applyData(n,s)}function kne(t,n){const s={type:"element",tagName:"em",properties:{},children:t.all(n)};return t.patch(n,s),t.applyData(n,s)}function Nne(t,n){const s=typeof t.options.clobberPrefix=="string"?t.options.clobberPrefix:"user-content-",r=String(n.identifier).toUpperCase(),a=Fp(r.toLowerCase()),i=t.footnoteOrder.indexOf(r);let o,l=t.footnoteCounts.get(r);l===void 0?(l=0,t.footnoteOrder.push(r),o=t.footnoteOrder.length):o=i+1,l+=1,t.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+s+"fn-"+a,id:s+"fnref-"+a+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};t.patch(n,c);const d={type:"element",tagName:"sup",properties:{},children:[c]};return t.patch(n,d),t.applyData(n,d)}function Sne(t,n){const s={type:"element",tagName:"h"+n.depth,properties:{},children:t.all(n)};return t.patch(n,s),t.applyData(n,s)}function Ane(t,n){if(t.options.allowDangerousHtml){const s={type:"raw",value:n.value};return t.patch(n,s),t.applyData(n,s)}}function IM(t,n){const s=n.referenceType;let r="]";if(s==="collapsed"?r+="[]":s==="full"&&(r+="["+(n.label||n.identifier)+"]"),n.type==="imageReference")return[{type:"text",value:"!["+n.alt+r}];const a=t.all(n),i=a[0];i&&i.type==="text"?i.value="["+i.value:a.unshift({type:"text",value:"["});const o=a[a.length-1];return o&&o.type==="text"?o.value+=r:a.push({type:"text",value:r}),a}function Dne(t,n){const s=String(n.identifier).toUpperCase(),r=t.definitionById.get(s);if(!r)return IM(t,n);const a={src:Fp(r.url||""),alt:n.alt};r.title!==null&&r.title!==void 0&&(a.title=r.title);const i={type:"element",tagName:"img",properties:a,children:[]};return t.patch(n,i),t.applyData(n,i)}function Ine(t,n){const s={src:Fp(n.url)};n.alt!==null&&n.alt!==void 0&&(s.alt=n.alt),n.title!==null&&n.title!==void 0&&(s.title=n.title);const r={type:"element",tagName:"img",properties:s,children:[]};return t.patch(n,r),t.applyData(n,r)}function Cne(t,n){const s={type:"text",value:n.value.replace(/\r?\n|\r/g," ")};t.patch(n,s);const r={type:"element",tagName:"code",properties:{},children:[s]};return t.patch(n,r),t.applyData(n,r)}function _ne(t,n){const s=String(n.identifier).toUpperCase(),r=t.definitionById.get(s);if(!r)return IM(t,n);const a={href:Fp(r.url||"")};r.title!==null&&r.title!==void 0&&(a.title=r.title);const i={type:"element",tagName:"a",properties:a,children:t.all(n)};return t.patch(n,i),t.applyData(n,i)}function Tne(t,n){const s={href:Fp(n.url)};n.title!==null&&n.title!==void 0&&(s.title=n.title);const r={type:"element",tagName:"a",properties:s,children:t.all(n)};return t.patch(n,r),t.applyData(n,r)}function Pne(t,n,s){const r=t.all(n),a=s?Ene(s):CM(n),i={},o=[];if(typeof n.checked=="boolean"){const h=r[0];let p;h&&h.type==="element"&&h.tagName==="p"?p=h:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:n.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l<r.length;){const h=r[l];(a||l!==0||h.type!=="element"||h.tagName!=="p")&&o.push({type:"text",value:` 2641`}),h.type==="element"&&h.tagName==="p"&&!a?o.push(...h.children):o.push(h)}const c=r[r.length-1];c&&(a||c.type!=="element"||c.tagName!=="p")&&o.push({type:"text",value:` 2642`});const d={type:"element",tagName:"li",properties:i,children:o};return t.patch(n,d),t.applyData(n,d)}function Ene(t){let n=!1;if(t.type==="list"){n=t.spread||!1;const s=t.children;let r=-1;for(;!n&&++r<s.length;)n=CM(s[r])}return n}function CM(t){const n=t.spread;return n??t.children.length>1}function Lne(t,n){const s={},r=t.all(n);let a=-1;for(typeof n.start=="number"&&n.start!==1&&(s.start=n.start);++a<r.length;){const o=r[a];if(o.type==="element"&&o.tagName==="li"&&o.properties&&Array.isArray(o.properties.className)&&o.properties.className.includes("task-list-item")){s.className=["contains-task-list"];break}}const i={type:"element",tagName:n.ordered?"ol":"ul",properties:s,children:t.wrap(r,!0)};return t.patch(n,i),t.applyData(n,i)}function Mne(t,n){const s={type:"element",tagName:"p",properties:{},children:t.all(n)};return t.patch(n,s),t.applyData(n,s)}function Rne(t,n){const s={type:"root",children:t.wrap(t.all(n))};return t.patch(n,s),t.applyData(n,s)}function One(t,n){const s={type:"element",tagName:"strong",properties:{},children:t.all(n)};return t.patch(n,s),t.applyData(n,s)}function Fne(t,n){const s=t.all(n),r=s.shift(),a=[];if(r){const o={type:"element",tagName:"thead",properties:{},children:t.wrap([r],!0)};t.patch(n.children[0],o),a.push(o)}if(s.length>0){const o={type:"element",tagName:"tbody",properties:{},children:t.wrap(s,!0)},l=TN(n.children[1]),c=cM(n.children[n.children.length-1]);l&&c&&(o.position={start:l,end:c}),a.push(o)}const i={type:"element",tagName:"table",properties:{},children:t.wrap(a,!0)};return t.patch(n,i),t.applyData(n,i)}function Vne(t,n,s){const r=s?s.children:void 0,i=(r?r.indexOf(n):1)===0?"th":"td",o=s&&s.type==="table"?s.align:void 0,l=o?o.length:n.children.length;let c=-1;const d=[];for(;++c<l;){const p=n.children[c],m={},u=o?o[c]:void 0;u&&(m.align=u);let y={type:"element",tagName:i,properties:m,children:[]};p&&(y.children=t.all(p),t.patch(p,y),y=t.applyData(p,y)),d.push(y)}const h={type:"element",tagName:"tr",properties:{},children:t.wrap(d,!0)};return t.patch(n,h),t.applyData(n,h)}function Bne(t,n){const s={type:"element",tagName:"td",properties:{},children:t.all(n)};return t.patch(n,s),t.applyData(n,s)}const ND=9,SD=32;function zne(t){const n=String(t),s=/\r?\n|\r/g;let r=s.exec(n),a=0;const i=[];for(;r;)i.push(AD(n.slice(a,r.index),a>0,!0),r[0]),a=r.index+r[0].length,r=s.exec(n);return i.push(AD(n.slice(a),a>0,!1)),i.join("")}function AD(t,n,s){let r=0,a=t.length;if(n){let i=t.codePointAt(r);for(;i===ND||i===SD;)r++,i=t.codePointAt(r)}if(s){let i=t.codePointAt(a-1);for(;i===ND||i===SD;)a--,i=t.codePointAt(a-1)}return a>r?t.slice(r,a):""}function Une(t,n){const s={type:"text",value:zne(String(n.value))};return t.patch(n,s),t.applyData(n,s)}function qne(t,n){const s={type:"element",tagName:"hr",properties:{},children:[]};return t.patch(n,s),t.applyData(n,s)}const Hne={blockquote:bne,break:vne,code:wne,delete:jne,emphasis:kne,footnoteReference:Nne,heading:Sne,html:Ane,imageReference:Dne,image:Ine,inlineCode:Cne,linkReference:_ne,link:Tne,listItem:Pne,list:Lne,paragraph:Mne,root:Rne,strong:One,table:Fne,tableCell:Bne,tableRow:Vne,text:Une,thematicBreak:qne,toml:_x,yaml:_x,definition:_x,footnoteDefinition:_x};function _x(){}const _M=-1,yb=0,rf=1,h0=2,FN=3,VN=4,BN=5,zN=6,TM=7,PM=8,{defineProperty:$ne}=Object,EM=typeof self=="object"?self:globalThis,DD=(t,n)=>{switch(t){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+t)}return new EM[t](n)},Wne=(t,n)=>{const s=(a,i)=>(t.set(i,a),a),r=a=>{if(t.has(a))return t.get(a);const[i,o]=n[a];switch(i){case yb:case _M:return s(o,a);case rf:{const l=s([],a);for(const c of o)l.push(r(c));return l}case h0:{const l=s({},a);for(const[c,d]of o){const h=r(c),p=r(d);h==="__proto__"?$ne(l,h,{value:p,configurable:!0,enumerable:!0,writable:!0}):l[h]=p}return l}case FN:return s(new Date(o),a);case VN:{const{source:l,flags:c}=o;return s(new RegExp(l,c),a)}case BN:{const l=s(new Map,a);for(const[c,d]of o)l.set(r(c),r(d));return l}case zN:{const l=s(new Set,a);for(const c of o)l.add(r(c));return l}case TM:{const{name:l,message:c}=o;return s(typeof EM[l]=="function"?DD(l,c):new Error(c),a)}case PM:return s(BigInt(o),a);case"BigInt":return s(Object(BigInt(o)),a);case"ArrayBuffer":return s(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:l}=new Uint8Array(o);return s(new DataView(l),o)}case"-0":return-0}return s(DD(i,o),a)};return r},ID=t=>Wne(new Map,t)(0),Md="",{toString:Gne}={},{keys:Kne,is:Qne}=Object,Am=t=>{const n=typeof t;if(n!=="object"||!t)return[yb,n];const s=Gne.call(t).slice(8,-1);switch(s){case"Array":return[rf,Md];case"Object":return[h0,Md];case"Date":return[FN,Md];case"RegExp":return[VN,Md];case"Map":return[BN,Md];case"Set":return[zN,Md];case"DataView":return[rf,s]}return s.includes("Array")?[rf,s]:t instanceof Error?[TM,t.name||"Error"]:[h0,s]},Tx=([t,n])=>t===yb&&(n==="function"||n==="symbol"),Yne=(t,n,s,r)=>{const a=(o,l)=>{const c=r.push(o)-1;return s.set(l,c),c},i=o=>{if(s.has(o))return s.get(o);let[l,c]=Am(o);switch(l){case yb:{let h=o;switch(c){case"bigint":l=PM,h=o.toString();break;case"number":if(!o&&Qne(o,-0))return r.push(["-0"])-1;break;case"function":case"symbol":if(t)throw new TypeError("unable to serialize "+c);h=null;break;case"undefined":return a([_M],o)}return a([l,h],o)}case rf:{if(c){let m=o;return c==="DataView"?m=new Uint8Array(o.buffer):c==="ArrayBuffer"&&(m=new Uint8Array(o)),a([c,[...m]],o)}const h=[],p=a([l,h],o);for(const m of o)h.push(i(m));return p}case h0:{if(c)switch(c){case"BigInt":return a([c,o.toString()],o);case"Boolean":case"Number":case"String":return a([c,o.valueOf()],o)}if(n&&"toJSON"in o)return i(o.toJSON());const h=[],p=a([l,h],o);for(const m of Kne(o))(t||!Tx(Am(o[m])))&&h.push([i(m),i(o[m])]);return p}case FN:return a([l,isNaN(o.getTime())?Md:o.toISOString()],o);case VN:{const{source:h,flags:p}=o;return a([l,{source:h,flags:p}],o)}case BN:{const h=[],p=a([l,h],o);for(const[m,u]of o)(t||!(Tx(Am(m))||Tx(Am(u))))&&h.push([i(m),i(u)]);return p}case zN:{const h=[],p=a([l,h],o);for(const m of o)(t||!Tx(Am(m)))&&h.push(i(m));return p}}const{message:d}=o;return a([l,{name:c,message:d}],o)};return i},CD=(t,{json:n,lossy:s}={})=>{const r=[];return Yne(!(n||s),!!n,new Map,r)(t),r},u0=typeof structuredClone=="function"?(t,n)=>n&&("json"in n||"lossy"in n)?ID(CD(t,n)):structuredClone(t):(t,n)=>ID(CD(t,n));function Jne(t,n){const s=[{type:"text",value:"â©"}];return n>1&&s.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(n)}]}),s}function Xne(t,n){return"Back to reference "+(t+1)+(n>1?"-"+n:"")}function Zne(t){const n=typeof t.options.clobberPrefix=="string"?t.options.clobberPrefix:"user-content-",s=t.options.footnoteBackContent||Jne,r=t.options.footnoteBackLabel||Xne,a=t.options.footnoteLabel||"Footnotes",i=t.options.footnoteLabelTagName||"h2",o=t.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c<t.footnoteOrder.length;){const d=t.footnoteById.get(t.footnoteOrder[c]);if(!d)continue;const h=t.all(d),p=String(d.identifier).toUpperCase(),m=Fp(p.toLowerCase());let u=0;const y=[],g=t.footnoteCounts.get(p);for(;g!==void 0&&++u<=g;){y.length>0&&y.push({type:"text",value:" "});let j=typeof s=="string"?s:s(c,u);typeof j=="string"&&(j={type:"text",value:j}),y.push({type:"element",tagName:"a",properties:{href:"#"+n+"fnref-"+m+(u>1?"-"+u:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,u),className:["data-footnote-backref"]},children:Array.isArray(j)?j:[j]})}const w=h[h.length-1];if(w&&w.type==="element"&&w.tagName==="p"){const j=w.children[w.children.length-1];j&&j.type==="text"?j.value+=" ":w.children.push({type:"text",value:" "}),w.children.push(...y)}else h.push(...y);const b={type:"element",tagName:"li",properties:{id:n+"fn-"+m},children:t.wrap(h,!0)};t.patch(d,b),l.push(b)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...u0(o),id:"footnote-label"},children:[{type:"text",value:a}]},{type:"text",value:` 2643`},{type:"element",tagName:"ol",properties:{},children:t.wrap(l,!0)},{type:"text",value:` 2644`}]}}const LM=function(t){if(t==null)return sse;if(typeof t=="function")return bb(t);if(typeof t=="object")return Array.isArray(t)?ese(t):tse(t);if(typeof t=="string")return nse(t);throw new Error("Expected function, string, or object as test")};function ese(t){const n=[];let s=-1;for(;++s<t.length;)n[s]=LM(t[s]);return bb(r);function r(...a){let i=-1;for(;++i<n.length;)if(n[i].apply(this,a))return!0;return!1}}function tse(t){const n=t;return bb(s);function s(r){const a=r;let i;for(i in t)if(a[i]!==n[i])return!1;return!0}}function nse(t){return bb(n);function n(s){return s&&s.type===t}}function bb(t){return n;function n(s,r,a){return!!(rse(s)&&t.call(this,s,typeof r=="number"?r:void 0,a||void 0))}}function sse(){return!0}function rse(t){return t!==null&&typeof t=="object"&&"type"in t}const MM=[],ase=!0,_D=!1,ise="skip";function ose(t,n,s,r){let a;typeof n=="function"&&typeof s!="function"?(r=s,s=n):a=n;const i=LM(a),o=r?-1:1;l(t,void 0,[])();function l(c,d,h){const p=c&&typeof c=="object"?c:{};if(typeof p.type=="string"){const u=typeof p.tagName=="string"?p.tagName:typeof p.name=="string"?p.name:void 0;Object.defineProperty(m,"name",{value:"node ("+(c.type+(u?"<"+u+">":""))+")"})}return m;function m(){let u=MM,y,g,w;if((!n||i(c,d,h[h.length-1]||void 0))&&(u=lse(s(c,h)),u[0]===_D))return u;if("children"in c&&c.children){const b=c;if(b.children&&u[0]!==ise)for(g=(r?b.children.length:-1)+o,w=h.concat(b);g>-1&&g<b.children.length;){const j=b.children[g];if(y=l(j,g,w)(),y[0]===_D)return y;g=typeof y[1]=="number"?y[1]:g+o}}return u}}}function lse(t){return Array.isArray(t)?t:typeof t=="number"?[ase,t]:t==null?MM:[t]}function RM(t,n,s,r){let a,i,o;typeof n=="function"&&typeof s!="function"?(i=void 0,o=n,a=s):(i=n,o=s,a=r),ose(t,i,l,a);function l(c,d){const h=d[d.length-1],p=h?h.children.indexOf(c):void 0;return o(c,p,h)}}const ik={}.hasOwnProperty,cse={};function dse(t,n){const s=n||cse,r=new Map,a=new Map,i=new Map,o={...Hne,...s.handlers},l={all:d,applyData:use,definitionById:r,footnoteById:a,footnoteCounts:i,footnoteOrder:[],handlers:o,one:c,options:s,patch:hse,wrap:mse};return RM(t,function(h){if(h.type==="definition"||h.type==="footnoteDefinition"){const p=h.type==="definition"?r:a,m=String(h.identifier).toUpperCase();p.has(m)||p.set(m,h)}}),l;function c(h,p){const m=h.type,u=l.handlers[m];if(ik.call(l.handlers,m)&&u)return u(l,h,p);if(l.options.passThrough&&l.options.passThrough.includes(m)){if("children"in h){const{children:g,...w}=h,b=u0(w);return b.children=l.all(h),b}return u0(h)}return(l.options.unknownHandler||pse)(l,h,p)}function d(h){const p=[];if("children"in h){const m=h.children;let u=-1;for(;++u<m.length;){const y=l.one(m[u],h);if(y){if(u&&m[u-1].type==="break"&&(!Array.isArray(y)&&y.type==="text"&&(y.value=TD(y.value)),!Array.isArray(y)&&y.type==="element")){const g=y.children[0];g&&g.type==="text"&&(g.value=TD(g.value))}Array.isArray(y)?p.push(...y):p.push(y)}}}return p}}function hse(t,n){t.position&&(n.position=WZ(t))}function use(t,n){let s=n;if(t&&t.data){const r=t.data.hName,a=t.data.hChildren,i=t.data.hProperties;if(typeof r=="string")if(s.type==="element")s.tagName=r;else{const o="children"in s?s.children:[s];s={type:"element",tagName:r,properties:{},children:o}}s.type==="element"&&i&&Object.assign(s.properties,u0(i)),"children"in s&&s.children&&a!==null&&a!==void 0&&(s.children=a)}return s}function pse(t,n){const s=n.data||{},r="value"in n&&!(ik.call(s,"hProperties")||ik.call(s,"hChildren"))?{type:"text",value:n.value}:{type:"element",tagName:"div",properties:{},children:t.all(n)};return t.patch(n,r),t.applyData(n,r)}function mse(t,n){const s=[];let r=-1;for(n&&s.push({type:"text",value:` 2645`});++r<t.length;)r&&s.push({type:"text",value:` 2646`}),s.push(t[r]);return n&&t.length>0&&s.push({type:"text",value:` 2647`}),s}function TD(t){let n=0,s=t.charCodeAt(n);for(;s===9||s===32;)n++,s=t.charCodeAt(n);return t.slice(n)}function PD(t,n){const s=dse(t,n),r=s.one(t,void 0),a=Zne(s),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return a&&i.children.push({type:"text",value:` 2648`},a),i}function fse(t,n){return t&&"run"in t?async function(s,r){const a=PD(s,{file:r,...n});await t.run(a,r)}:function(s,r){return PD(s,{file:r,...t||n})}}function ED(t){if(t)throw t}var my=Object.prototype.hasOwnProperty,OM=Object.prototype.toString,LD=Object.defineProperty,MD=Object.getOwnPropertyDescriptor,RD=function(n){return typeof Array.isArray=="function"?Array.isArray(n):OM.call(n)==="[object Array]"},OD=function(n){if(!n||OM.call(n)!=="[object Object]")return!1;var s=my.call(n,"constructor"),r=n.constructor&&n.constructor.prototype&&my.call(n.constructor.prototype,"isPrototypeOf");if(n.constructor&&!s&&!r)return!1;var a;for(a in n);return typeof a>"u"||my.call(n,a)},FD=function(n,s){LD&&s.name==="__proto__"?LD(n,s.name,{enumerable:!0,configurable:!0,value:s.newValue,writable:!0}):n[s.name]=s.newValue},VD=function(n,s){if(s==="__proto__")if(my.call(n,s)){if(MD)return MD(n,s).value}else return;return n[s]},gse=function t(){var n,s,r,a,i,o,l=arguments[0],c=1,d=arguments.length,h=!1;for(typeof l=="boolean"&&(h=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});c<d;++c)if(n=arguments[c],n!=null)for(s in n)r=VD(l,s),a=VD(n,s),l!==a&&(h&&a&&(OD(a)||(i=RD(a)))?(i?(i=!1,o=r&&RD(r)?r:[]):o=r&&OD(r)?r:{},FD(l,{name:s,newValue:t(h,o,a)})):typeof a<"u"&&FD(l,{name:s,newValue:a}));return l};const dw=ad(gse);function ok(t){if(typeof t!="object"||t===null)return!1;const n=Object.getPrototypeOf(t);return(n===null||n===Object.prototype||Object.getPrototypeOf(n)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)}function xse(){const t=[],n={run:s,use:r};return n;function s(...a){let i=-1;const o=a.pop();if(typeof o!="function")throw new TypeError("Expected function as last argument, not "+o);l(null,...a);function l(c,...d){const h=t[++i];let p=-1;if(c){o(c);return}for(;++p<a.length;)(d[p]===null||d[p]===void 0)&&(d[p]=a[p]);a=d,h?yse(h,l)(...d):o(null,...d)}}function r(a){if(typeof a!="function")throw new TypeError("Expected `middelware` to be a function, not "+a);return t.push(a),n}}function yse(t,n){let s;return r;function r(...o){const l=t.length>o.length;let c;l&&o.push(a);try{c=t.apply(this,o)}catch(d){const h=d;if(l&&s)throw h;return a(h)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,a):c instanceof Error?a(c):i(c))}function a(o,...l){s||(s=!0,n(o,...l))}function i(o){a(null,o)}}const Ro={basename:bse,dirname:vse,extname:wse,join:jse,sep:"/"};function bse(t,n){if(n!==void 0&&typeof n!="string")throw new TypeError('"ext" argument must be a string');mg(t);let s=0,r=-1,a=t.length,i;if(n===void 0||n.length===0||n.length>t.length){for(;a--;)if(t.codePointAt(a)===47){if(i){s=a+1;break}}else r<0&&(i=!0,r=a+1);return r<0?"":t.slice(s,r)}if(n===t)return"";let o=-1,l=n.length-1;for(;a--;)if(t.codePointAt(a)===47){if(i){s=a+1;break}}else o<0&&(i=!0,o=a+1),l>-1&&(t.codePointAt(a)===n.codePointAt(l--)?l<0&&(r=a):(l=-1,r=o));return s===r?r=o:r<0&&(r=t.length),t.slice(s,r)}function vse(t){if(mg(t),t.length===0)return".";let n=-1,s=t.length,r;for(;--s;)if(t.codePointAt(s)===47){if(r){n=s;break}}else r||(r=!0);return n<0?t.codePointAt(0)===47?"/":".":n===1&&t.codePointAt(0)===47?"//":t.slice(0,n)}function wse(t){mg(t);let n=t.length,s=-1,r=0,a=-1,i=0,o;for(;n--;){const l=t.codePointAt(n);if(l===47){if(o){r=n+1;break}continue}s<0&&(o=!0,s=n+1),l===46?a<0?a=n:i!==1&&(i=1):a>-1&&(i=-1)}return a<0||s<0||i===0||i===1&&a===s-1&&a===r+1?"":t.slice(a,s)}function jse(...t){let n=-1,s;for(;++n<t.length;)mg(t[n]),t[n]&&(s=s===void 0?t[n]:s+"/"+t[n]);return s===void 0?".":kse(s)}function kse(t){mg(t);const n=t.codePointAt(0)===47;let s=Nse(t,!n);return s.length===0&&!n&&(s="."),s.length>0&&t.codePointAt(t.length-1)===47&&(s+="/"),n?"/"+s:s}function Nse(t,n){let s="",r=0,a=-1,i=0,o=-1,l,c;for(;++o<=t.length;){if(o<t.length)l=t.codePointAt(o);else{if(l===47)break;l=47}if(l===47){if(!(a===o-1||i===1))if(a!==o-1&&i===2){if(s.length<2||r!==2||s.codePointAt(s.length-1)!==46||s.codePointAt(s.length-2)!==46){if(s.length>2){if(c=s.lastIndexOf("/"),c!==s.length-1){c<0?(s="",r=0):(s=s.slice(0,c),r=s.length-1-s.lastIndexOf("/")),a=o,i=0;continue}}else if(s.length>0){s="",r=0,a=o,i=0;continue}}n&&(s=s.length>0?s+"/..":"..",r=2)}else s.length>0?s+="/"+t.slice(a+1,o):s=t.slice(a+1,o),r=o-a-1;a=o,i=0}else l===46&&i>-1?i++:i=-1}return s}function mg(t){if(typeof t!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}const Sse={cwd:Ase};function Ase(){return"/"}function lk(t){return!!(t!==null&&typeof t=="object"&&"href"in t&&t.href&&"protocol"in t&&t.protocol&&t.auth===void 0)}function Dse(t){if(typeof t=="string")t=new URL(t);else if(!lk(t)){const n=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+t+"`");throw n.code="ERR_INVALID_ARG_TYPE",n}if(t.protocol!=="file:"){const n=new TypeError("The URL must be of scheme file");throw n.code="ERR_INVALID_URL_SCHEME",n}return Ise(t)}function Ise(t){if(t.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const n=t.pathname;let s=-1;for(;++s<n.length;)if(n.codePointAt(s)===37&&n.codePointAt(s+1)===50){const r=n.codePointAt(s+2);if(r===70||r===102){const a=new TypeError("File URL path must not include encoded / characters");throw a.code="ERR_INVALID_FILE_URL_PATH",a}}return decodeURIComponent(n)}const hw=["history","path","basename","stem","extname","dirname"];class FM{constructor(n){let s;n?lk(n)?s={path:n}:typeof n=="string"||Cse(n)?s={value:n}:s=n:s={},this.cwd="cwd"in s?"":Sse.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++r<hw.length;){const i=hw[r];i in s&&s[i]!==void 0&&s[i]!==null&&(this[i]=i==="history"?[...s[i]]:s[i])}let a;for(a in s)hw.includes(a)||(this[a]=s[a])}get basename(){return typeof this.path=="string"?Ro.basename(this.path):void 0}set basename(n){pw(n,"basename"),uw(n,"basename"),this.path=Ro.join(this.dirname||"",n)}get dirname(){return typeof this.path=="string"?Ro.dirname(this.path):void 0}set dirname(n){BD(this.basename,"dirname"),this.path=Ro.join(n||"",this.basename)}get extname(){return typeof this.path=="string"?Ro.extname(this.path):void 0}set extname(n){if(uw(n,"extname"),BD(this.dirname,"extname"),n){if(n.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(n.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=Ro.join(this.dirname,this.stem+(n||""))}get path(){return this.history[this.history.length-1]}set path(n){lk(n)&&(n=Dse(n)),pw(n,"path"),this.path!==n&&this.history.push(n)}get stem(){return typeof this.path=="string"?Ro.basename(this.path,this.extname):void 0}set stem(n){pw(n,"stem"),uw(n,"stem"),this.path=Ro.join(this.dirname||"",n+(this.extname||""))}fail(n,s,r){const a=this.message(n,s,r);throw a.fatal=!0,a}info(n,s,r){const a=this.message(n,s,r);return a.fatal=void 0,a}message(n,s,r){const a=new ha(n,s,r);return this.path&&(a.name=this.path+":"+a.name,a.file=this.path),a.fatal=!1,this.messages.push(a),a}toString(n){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(n||void 0).decode(this.value)}}function uw(t,n){if(t&&t.includes(Ro.sep))throw new Error("`"+n+"` cannot be a path: did not expect `"+Ro.sep+"`")}function pw(t,n){if(!t)throw new Error("`"+n+"` cannot be empty")}function BD(t,n){if(!t)throw new Error("Setting `"+n+"` requires `path` to be set too")}function Cse(t){return!!(t&&typeof t=="object"&&"byteLength"in t&&"byteOffset"in t)}const _se=function(t){const r=this.constructor.prototype,a=r[t],i=function(){return a.apply(i,arguments)};return Object.setPrototypeOf(i,r),i},Tse={}.hasOwnProperty;class UN extends _se{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=xse()}copy(){const n=new UN;let s=-1;for(;++s<this.attachers.length;){const r=this.attachers[s];n.use(...r)}return n.data(dw(!0,{},this.namespace)),n}data(n,s){return typeof n=="string"?arguments.length===2?(gw("data",this.frozen),this.namespace[n]=s,this):Tse.call(this.namespace,n)&&this.namespace[n]||void 0:n?(gw("data",this.frozen),this.namespace=n,this):this.namespace}freeze(){if(this.frozen)return this;const n=this;for(;++this.freezeIndex<this.attachers.length;){const[s,...r]=this.attachers[this.freezeIndex];if(r[0]===!1)continue;r[0]===!0&&(r[0]=void 0);const a=s.call(n,...r);typeof a=="function"&&this.transformers.use(a)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(n){this.freeze();const s=Px(n),r=this.parser||this.Parser;return mw("parse",r),r(String(s),s)}process(n,s){const r=this;return this.freeze(),mw("process",this.parser||this.Parser),fw("process",this.compiler||this.Compiler),s?a(void 0,s):new Promise(a);function a(i,o){const l=Px(n),c=r.parse(l);r.run(c,l,function(h,p,m){if(h||!p||!m)return d(h);const u=p,y=r.stringify(u,m);Lse(y)?m.value=y:m.result=y,d(h,m)});function d(h,p){h||!p?o(h):i?i(p):s(void 0,p)}}}processSync(n){let s=!1,r;return this.freeze(),mw("processSync",this.parser||this.Parser),fw("processSync",this.compiler||this.Compiler),this.process(n,a),UD("processSync","process",s),r;function a(i,o){s=!0,ED(i),r=o}}run(n,s,r){zD(n),this.freeze();const a=this.transformers;return!r&&typeof s=="function"&&(r=s,s=void 0),r?i(void 0,r):new Promise(i);function i(o,l){const c=Px(s);a.run(n,c,d);function d(h,p,m){const u=p||n;h?l(h):o?o(u):r(void 0,u,m)}}}runSync(n,s){let r=!1,a;return this.run(n,s,i),UD("runSync","run",r),a;function i(o,l){ED(o),a=l,r=!0}}stringify(n,s){this.freeze();const r=Px(s),a=this.compiler||this.Compiler;return fw("stringify",a),zD(n),a(n,r)}use(n,...s){const r=this.attachers,a=this.namespace;if(gw("use",this.frozen),n!=null)if(typeof n=="function")c(n,s);else if(typeof n=="object")Array.isArray(n)?l(n):o(n);else throw new TypeError("Expected usable value, not `"+n+"`");return this;function i(d){if(typeof d=="function")c(d,[]);else if(typeof d=="object")if(Array.isArray(d)){const[h,...p]=d;c(h,p)}else o(d);else throw new TypeError("Expected usable value, not `"+d+"`")}
2648function o(d){if(!("plugins"in d)&&!("settings"in d))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");l(d.plugins),d.settings&&(a.settings=dw(!0,a.settings,d.settings))}function l(d){let h=-1;if(d!=null)if(Array.isArray(d))for(;++h<d.length;){const p=d[h];i(p)}else throw new TypeError("Expected a list of plugins, not `"+d+"`")}function c(d,h){let p=-1,m=-1;for(;++p<r.length;)if(r[p][0]===d){m=p;break}if(m===-1)r.push([d,...h]);else if(h.length>0){let[u,...y]=h;const g=r[m][1];ok(g)&&ok(u)&&(u=dw(!0,g,u)),r[m]=[d,u,...y]}}}}const Pse=new UN().freeze();function mw(t,n){if(typeof n!="function")throw new TypeError("Cannot `"+t+"` without `parser`")}function fw(t,n){if(typeof n!="function")throw new TypeError("Cannot `"+t+"` without `compiler`")}function gw(t,n){if(n)throw new Error("Cannot call `"+t+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function zD(t){if(!ok(t)||typeof t.type!="string")throw new TypeError("Expected node, got `"+t+"`")}function UD(t,n,s){if(!s)throw new Error("`"+t+"` finished async. Use `"+n+"` instead")}function Px(t){return Ese(t)?t:new FM(t)}function Ese(t){return!!(t&&typeof t=="object"&&"message"in t&&"messages"in t)}function Lse(t){return typeof t=="string"||Mse(t)}function Mse(t){return!!(t&&typeof t=="object"&&"byteLength"in t&&"byteOffset"in t)}const Rse="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",qD=[],HD={allowDangerousHtml:!0},Ose=/^(https?|ircs?|mailto|xmpp)$/i,Fse=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Vse(t){const n=Bse(t),s=zse(t);return Use(n.runSync(n.parse(s),s),t)}function Bse(t){const n=t.rehypePlugins||qD,s=t.remarkPlugins||qD,r=t.remarkRehypeOptions?{...t.remarkRehypeOptions,...HD}:HD;return Pse().use(yne).use(s).use(fse,r).use(n)}function zse(t){const n=t.children||"",s=new FM;return typeof n=="string"&&(s.value=n),s}function Use(t,n){const s=n.allowedElements,r=n.allowElement,a=n.components,i=n.disallowedElements,o=n.skipHtml,l=n.unwrapDisallowed,c=n.urlTransform||qse;for(const h of Fse)Object.hasOwn(n,h.from)&&(""+h.from+(h.to?"use `"+h.to+"` instead":"remove it")+Rse+h.id,void 0);return RM(t,d),JZ(t,{Fragment:e.Fragment,components:a,ignoreInvalidStyle:!0,jsx:e.jsx,jsxs:e.jsxs,passKeys:!0,passNode:!0});function d(h,p,m){if(h.type==="raw"&&m&&typeof p=="number")return o?m.children.splice(p,1):m.children[p]={type:"text",value:h.value},p;if(h.type==="element"){let u;for(u in ow)if(Object.hasOwn(ow,u)&&Object.hasOwn(h.properties,u)){const y=h.properties[u],g=ow[u];(g===null||g.includes(h.tagName))&&(h.properties[u]=c(String(y||""),u,h))}}if(h.type==="element"){let u=s?!s.includes(h.tagName):i?i.includes(h.tagName):!1;if(!u&&r&&typeof p=="number"&&(u=!r(h,p,m)),u&&m&&typeof p=="number")return l&&h.children?m.children.splice(p,1,...h.children):m.children.splice(p,1),p}}}function qse(t){const n=t.indexOf(":"),s=t.indexOf("?"),r=t.indexOf("#"),a=t.indexOf("/");return n===-1||a!==-1&&n>a||s!==-1&&n>s||r!==-1&&n>r||Ose.test(t.slice(0,n))?t:""}function Jn(t){"@babel/helpers - typeof";return Jn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Jn(t)}var wo=Uint8Array,wi=Uint16Array,qN=Int32Array,HN=new wo([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,0,0,0]),$N=new wo([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,0,0]),$D=new wo([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),VM=function(t,n){for(var s=new wi(31),r=0;r<31;++r)s[r]=n+=1<<t[r-1];for(var a=new qN(s[30]),r=1;r<30;++r)for(var i=s[r];i<s[r+1];++i)a[i]=i-s[r]<<5|r;return{b:s,r:a}},BM=VM(HN,2),Hse=BM.b,ck=BM.r;Hse[28]=258,ck[258]=28;var $se=VM($N,0),WD=$se.r,dk=new wi(32768);for(var Is=0;Is<32768;++Is){var hc=(Is&43690)>>1|(Is&21845)<<1;hc=(hc&52428)>>2|(hc&13107)<<2,hc=(hc&61680)>>4|(hc&3855)<<4,dk[Is]=((hc&65280)>>8|(hc&255)<<8)>>1}var af=function(t,n,s){for(var r=t.length,a=0,i=new wi(n);a<r;++a)t[a]&&++i[t[a]-1];var o=new wi(n);for(a=1;a<n;++a)o[a]=o[a-1]+i[a-1]<<1;var l;
vendor: 5,402 bytes, line 2648
2648if(s){l=new wi(1<<n);var c=15-n;for(a=0;a<r;++a)if(t[a])for(var d=a<<4|t[a],h=n-t[a],p=o[t[a]-1]++<<h,m=p|(1<<h)-1;p<=m;++p)l[dk[p]>>c]=d}else for(l=new wi(r),a=0;a<r;++a)t[a]&&(l[a]=dk[o[t[a]-1]++]>>15-t[a]);return l},bh=new wo(288);for(var Is=0;Is<144;++Is)bh[Is]=8;for(var Is=144;Is<256;++Is)bh[Is]=9;for(var Is=256;Is<280;++Is)bh[Is]=7;for(var Is=280;Is<288;++Is)bh[Is]=8;var p0=new wo(32);for(var Is=0;Is<32;++Is)p0[Is]=5;var Wse=af(bh,9,0),Gse=af(p0,5,0),zM=function(t){return(t+7)/8|0},Kse=function(t,n,s){return(s==null||s>t.length)&&(s=t.length),new wo(t.subarray(n,s))},xl=function(t,n,s){s<<=n&7;var r=n/8|0;t[r]|=s,t[r+1]|=s>>8},Dm=function(t,n,s){s<<=n&7;var r=n/8|0;t[r]|=s,t[r+1]|=s>>8,t[r+2]|=s>>16},xw=function(t,n){for(var s=[],r=0;r<t.length;++r)t[r]&&s.push({s:r,f:t[r]});var a=s.length,i=s.slice();if(!a)return{t:qM,l:0};if(a==1){var o=new wo(s[0].s+1);return o[s[0].s]=1,{t:o,l:1}}s.sort(function(E,C){return E.f-C.f}),s.push({s:-1,f:25001});var l=s[0],c=s[1],d=0,h=1,p=2;for(s[0]={s:-1,f:l.f+c.f,l,r:c};h!=a-1;)l=s[s[d].f<s[p].f?d++:p++],c=s[d!=h&&s[d].f<s[p].f?d++:p++],s[h++]={s:-1,f:l.f+c.f,l,r:c};for(var m=i[0].s,r=1;r<a;++r)i[r].s>m&&(m=i[r].s);var u=new wi(m+1),y=hk(s[h-1],u,0);if(y>n){var r=0,g=0,w=y-n,b=1<<w;for(i.sort(function(C,F){return u[F.s]-u[C.s]||C.f-F.f});r<a;++r){var j=i[r].s;if(u[j]>n)g+=b-(1<<y-u[j]),u[j]=n;else break}for(g>>=w;g>0;){var N=i[r].s;u[N]<n?g-=1<<n-u[N]++-1:++r}for(;r>=0&&g;--r){var A=i[r].s;u[A]==n&&(--u[A],++g)}y=n}return{t:new wo(u),l:y}},hk=function(t,n,s){return t.s==-1?Math.max(hk(t.l,n,s+1),hk(t.r,n,s+1)):n[t.s]=s},GD=function(t){for(var n=t.length;n&&!t[--n];);for(var s=new wi(++n),r=0,a=t[0],i=1,o=function(c){s[r++]=c},l=1;l<=n;++l)if(t[l]==a&&l!=n)++i;else{if(!a&&i>2){for(;i>138;i-=138)o(32754);i>2&&(o(i>10?i-11<<5|28690:i-3<<5|12305),i=0)}else if(i>3){for(o(a),--i;i>6;i-=6)o(8304);i>2&&(o(i-3<<5|8208),i=0)}for(;i--;)o(a);i=1,a=t[l]}return{c:s.subarray(0,r),n}},Im=function(t,n){for(var s=0,r=0;r<n.length;++r)s+=t[r]*n[r];return s},UM=function(t,n,s){var r=s.length,a=zM(n+2);t[a]=r&255,t[a+1]=r>>8,t[a+2]=t[a]^255,t[a+3]=t[a+1]^255;for(var i=0;i<r;++i)t[a+i+4]=s[i];return(a+4+r)*8},KD=function(t,n,s,r,a,i,o,l,c,d,h){xl(n,h++,s),++a[256];for(var p=xw(a,15),m=p.t,u=p.l,y=xw(i,15),g=y.t,w=y.l,b=GD(m),j=b.c,N=b.n,A=GD(g),E=A.c,C=A.n,F=new wi(19),O=0;O<j.length;++O)++F[j[O]&31];for(var O=0;O<E.length;++O)++F[E[O]&31];for(var L=xw(F,7),W=L.t,_=L.l,P=19;P>4&&!W[$D[P-1]];--P);var K=d+5<<3,q=Im(a,bh)+Im(i,p0)+o,ae=Im(a,m)+Im(i,g)+o+14+3*P+Im(F,W)+2*F[16]+3*F[17]+7*F[18];if(c>=0&&K<=q&&K<=ae)return UM(n,h,t.subarray(c,c+d));var ce,de,H,X;if(xl(n,h,1+(ae<q)),h+=2,ae<q){ce=af(m,u,0),de=m,H=af(g,w,0),X=g;var V=af(W,_,0);xl(n,h,N-257),xl(n,h+5,C-1),xl(n,h+10,P-4),h+=14;for(var O=0;O<P;++O)xl(n,h+3*O,W[$D[O]]);h+=3*P;for(var he=[j,E],T=0;T<2;++T)for(var I=he[T],O=0;O<I.length;++O){var G=I[O]&31;xl(n,h,V[G]),h+=W[G],G>15&&(xl(n,h,I[O]>>5&127),h+=I[O]>>12)}}else ce=Wse,de=bh,H=Gse,X=p0;for(var O=0;O<l;++O){var re=r[O];if(re>255){var G=re>>18&31;Dm(n,h,ce[G+257]),h+=de[G+257],G>7&&(xl(n,h,re>>23&31),h+=HN[G]);var ne=re&31;Dm(n,h,H[ne]),h+=X[ne],ne>3&&(Dm(n,h,re>>5&8191),h+=$N[ne])}else Dm(n,h,ce[re]),h+=de[re]}return Dm(n,h,ce[256]),h+de[256]},Qse=new qN([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),qM=new wo(0),Yse=function(t,n,s,r,a,i){var o=i.z||t.length,l=new wo(r+o+5*(1+Math.ceil(o/7e3))+a),c=l.subarray(r,l.length-a),d=i.l,h=(i.r||0)&7;if(n){h&&(c[0]=i.r>>3);for(var p=Qse[n-1],m=p>>13,u=p&8191,y=(1<<s)-1,g=i.p||new wi(32768),w=i.h||new wi(y+1),b=Math.ceil(s/3),j=2*b,N=function(Je){return(t[Je]^t[Je+1]<<b^t[Je+2]<<j)&y},A=new qN(25e3),E=new wi(288),C=new wi(32),F=0,O=0,L=i.i||0,W=0,_=i.w||0,P=0;L+2<o;++L){var K=N(L),q=L&32767,ae=w[K];if(g[q]=ae,w[K]=q,_<=L){var ce=o-L;if((F>7e3||W>24576)&&(ce>423||!d)){h=KD(t,c,0,A,E,C,O,W,P,L-P,h),W=F=O=0,P=L;for(var de=0;de<286;++de)E[de]=0;for(var de=0;de<30;++de)C[de]=0}var H=2,X=0,V=u,he=q-ae&32767;if(ce>2&&K==N(L-he))for(var T=Math.min(m,ce)-1,I=Math.min(32767,L),G=Math.min(258,ce);he<=I&&--V&&q!=ae;){if(t[L+H]==t[L+H-he]){for(var re=0;re<G&&t[L+re]==t[L+re-he];++re);if(re>H){if(H=re,X=he,re>T)break;for(var ne=Math.min(he,re-2),pe=0,de=0;de<ne;++de){var je=L-he+de&32767,ke=g[je],De=je-ke&32767;De>pe&&(pe=De,ae=je)}}}q=ae,ae=g[q],he+=q-ae&32767}if(X){A[W++]=268435456|ck[H]<<18|WD[X];var Pe=ck[H]&31,Ze=WD[X]&31;O+=HN[Pe]+$N[Ze],++E[257+Pe],++C[Ze],_=L+H,++F}else A[W++]=t[L],++E[t[L]]}}for(L=Math.max(L,_);L<o;++L)A[W++]=t[L],++E[t[L]];h=KD(t,c,d,A,E,C,O,W,P,L-P,h),d||(i.r=h&7|c[h/8|0]<<3,h-=7,i.h=w,i.p=g,i.i=L,i.w=_)}else{for(var L=i.w||0;L<o+d;L+=65535){var tt=L+65535;tt>=o&&(c[h/8|0]=d,tt=o),h=UM(c,h+1,t.subarray(L,tt))}i.i=o}return Kse(l,0,r+zM(h)+a)},HM=function(){var t=1,n=0;return{p:function(s){for(var r=t,a=n,i=s.length|0,o=0;o!=i;){for(var l=Math.min(o+2655,i);o<l;++o)a+=r+=s[o];r=(r&65535)+15*(r>>16),a=(a&65535)+15*(a>>16)}t=r,n=a},d:function(){return t%=65521,n%=65521,(t&255)<<24|(t&65280)<<8|(n&255)<<8|n>>8}}},Jse=function(t,n,s,r,a){if(!a&&(a={l:1},n.dictionary)){var i=n.dictionary.subarray(-32768),o=new wo(i.length+t.length);o.set(i),o.set(t,i.length),t=o,a.w=i.length}return Yse(t,n.level==null?6:n.level,n.mem==null?a.l?Math.ceil(Math.max(8,Math.min(13,Math.log(t.length)))*1.5):20:12+n.mem,s,r,a)},$M=function(t,n,s){for(;s;++n)t[n]=s,s>>>=8},Xse=function(t,n){var s=n.level,r=s==0?0:s<6?1:s==9?3:2;
2648if(t[0]=120,t[1]=r<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var a=HM();a.p(n.dictionary),$M(t,2,a.d())}};function uk(t,n){n||(n={});var s=HM();s.p(t);var r=Jse(t,n,n.dictionary?6:2,4);return Xse(r,n),$M(r,r.length-4,s.d()),r}var Zse=typeof TextDecoder<"u"&&new TextDecoder,ere=0;try{Zse.decode(qM,{stream:!0}),ere=1}catch{}function tre(t){if(Array.isArray(t))return t}function nre(t,n){var s=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(s!=null){var r,a,i,o,l=[],c=!0,d=!1;try{if(i=(s=s.call(t)).next,n!==0)for(;!(c=(r=i.call(s)).done)&&(l.push(r.value),l.length!==n);c=!0);}catch(h){d=!0,a=h}finally{try{if(!c&&s.return!=null&&(o=s.return(),Object(o)!==o))return}finally{if(d)throw a}}return l}}function QD(t,n){(n==null||n>t.length)&&(n=t.length);for(var s=0,r=Array(n);s<n;s++)r[s]=t[s];return r}function sre(t,n){if(t){if(typeof t=="string")return QD(t,n);var s={}.toString.call(t).slice(8,-1);return s==="Object"&&t.constructor&&(s=t.constructor.name),s==="Map"||s==="Set"?Array.from(t):s==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?QD(t,n):void 0}}function rre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 2649In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function YD(t,n){return tre(t)||nre(t,n)||sre(t,n)||rre()}function JD(t,n="utf8"){return new TextDecoder(n).decode(t)}const are=new TextEncoder;function ire(t){return are.encode(t)}const ore=1024*8,lre=(()=>{const t=new Uint8Array(4),n=new Uint32Array(t.buffer);return!((n[0]=1)&t[0])})(),yw={int8:globalThis.Int8Array,uint8:globalThis.Uint8Array,int16:globalThis.Int16Array,uint16:globalThis.Uint16Array,int32:globalThis.Int32Array,uint32:globalThis.Uint32Array,uint64:globalThis.BigUint64Array,int64:globalThis.BigInt64Array,float32:globalThis.Float32Array,float64:globalThis.Float64Array};class WN{constructor(n=ore,s={}){Yn(this,"buffer");Yn(this,"byteLength");Yn(this,"byteOffset");Yn(this,"length");Yn(this,"offset");Yn(this,"lastWrittenByte");Yn(this,"littleEndian");Yn(this,"_data");Yn(this,"_mark");Yn(this,"_marks");let r=!1;typeof n=="number"?n=new ArrayBuffer(n):(r=!0,this.lastWrittenByte=n.byteLength);const a=s.offset?s.offset>>>0:0,i=n.byteLength-a;let o=a;(ArrayBuffer.isView(n)||n instanceof WN)&&(n.byteLength!==n.buffer.byteLength&&(o=n.byteOffset+a),n=n.buffer),r?this.lastWrittenByte=i:this.lastWrittenByte=0,this.buffer=n,this.length=i,this.byteLength=i,this.byteOffset=o,this.offset=0,this.littleEndian=!0,this._data=new DataView(this.buffer,o,i),this._mark=0,this._marks=[]}available(n=1){return this.offset+n<=this.length}isLittleEndian(){return this.littleEndian}setLittleEndian(){return this.littleEndian=!0,this}isBigEndian(){return!this.littleEndian}setBigEndian(){return this.littleEndian=!1,this}skip(n=1){return this.offset+=n,this}back(n=1){return this.offset-=n,this}seek(n){return this.offset=n,this}mark(){return this._mark=this.offset,this}reset(){return this.offset=this._mark,this}pushMark(){return this._marks.push(this.offset),this}popMark(){const n=this._marks.pop();if(n===void 0)throw new Error("Mark stack empty");return this.seek(n),this}rewind(){return this.offset=0,this}ensureAvailable(n=1){if(!this.available(n)){const r=(this.offset+n)*2,a=new Uint8Array(r);a.set(new Uint8Array(this.buffer)),this.buffer=a.buffer,this.length=r,this.byteLength=r,this._data=new DataView(this.buffer)}return this}readBoolean(){return this.readUint8()!==0}readInt8(){return this._data.getInt8(this.offset++)}readUint8(){return this._data.getUint8(this.offset++)}readByte(){return this.readUint8()}readBytes(n=1){return this.readArray(n,"uint8")}readArray(n,s){const r=yw[s].BYTES_PER_ELEMENT*n,a=this.byteOffset+this.offset,i=this.buffer.slice(a,a+r);if(this.littleEndian===lre&&s!=="uint8"&&s!=="int8"){const l=new Uint8Array(this.buffer.slice(a,a+r));l.reverse();const c=new yw[s](l.buffer);return this.offset+=r,c.reverse(),c}const o=new yw[s](i);return this.offset+=r,o}readInt16(){const n=this._data.getInt16(this.offset,this.littleEndian);return this.offset+=2,n}readUint16(){const n=this._data.getUint16(this.offset,this.littleEndian);return this.offset+=2,n}readInt32(){const n=this._data.getInt32(this.offset,this.littleEndian);return this.offset+=4,n}readUint32(){const n=this._data.getUint32(this.offset,this.littleEndian);return this.offset+=4,n}readFloat32(){const n=this._data.getFloat32(this.offset,this.littleEndian);return this.offset+=4,n}readFloat64(){const n=this._data.getFloat64(this.offset,this.littleEndian);return this.offset+=8,n}readBigInt64(){const n=this._data.getBigInt64(this.offset,this.littleEndian);return this.offset+=8,n}readBigUint64(){const n=this._data.getBigUint64(this.offset,this.littleEndian);return this.offset+=8,n}readChar(){return String.fromCharCode(this.readInt8())}readChars(n=1){let s="";for(let r=0;r<n;r++)s+=this.readChar();return s}readUtf8(n=1){return JD(this.readBytes(n))}decodeText(n=1,s="utf8"){return JD(this.readBytes(n),s)}writeBoolean(n){return this.writeUint8(n?255:0),this}writeInt8(n){return this.ensureAvailable(1),this._data.setInt8(this.offset++,n),this._updateLastWrittenByte(),this}writeUint8(n){return this.ensureAvailable(1),this._data.setUint8(this.offset++,n),this._updateLastWrittenByte(),this}writeByte(n){return this.writeUint8(n)}writeBytes(n){this.ensureAvailable(n.length);for(let s=0;s<n.length;s++)this._data.setUint8(this.offset++,n[s]);return this._updateLastWrittenByte(),this}writeInt16(n){return this.ensureAvailable(2),this._data.setInt16(this.offset,n,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeUint16(n){return this.ensureAvailable(2),this._data.setUint16(this.offset,n,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeInt32(n){return this.ensureAvailable(4),this._data.setInt32(this.offset,n,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeUint32(n){return this.ensureAvailable(4),this._data.setUint32(this.offset,n,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat32(n){return this.ensureAvailable(4),this._data.setFloat32(this.offset,n,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat64(n){return this.ensureAvailable(8),this._data.setFloat64(this.offset,n,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigInt64(n){return this.ensureAvailable(8),this._data.setBigInt64(this.offset,n,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigUint64(n){return this.ensureAvailable(8),this._data.setBigUint64(this.offset,n,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeChar(n){return this.writeUint8(n.charCodeAt(0))}writeChars(n){for(let s=0;s<n.length;s++)this.writeUint8(n.charCodeAt(s));return this}writeUtf8(n){return this.writeBytes(ire(n))}toArray(){return new Uint8Array(this.buffer,this.byteOffset,this.lastWrittenByte)}getWrittenByteLength(){return this.lastWrittenByte-this.byteOffset}_updateLastWrittenByte(){this.offset>this.lastWrittenByte&&(this.lastWrittenByte=this.offset)}}/*! pako 2.2.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const cre=4,XD=0,ZD=1,dre=2;function Vp(t){let n=t.length;for(;--n>=0;)t[n]=0}const hre=0,WM=1,ure=2,pre=3,mre=258,GN=29,fg=256,Vf=fg+1+GN,Wu=30,KN=19,GM=2*Vf+1,$d=15,bw=16,fre=7,QN=256,KM=16,QM=17,YM=18,pk=new Uint8Array([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]),fy=new Uint8Array([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]),gre=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),JM=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),xre=512,kl=new Array((Vf+2)*2);Vp(kl);const of=new Array(Wu*2);Vp(of);const Bf=new Array(xre);Vp(Bf);const zf=new Array(mre-pre+1);Vp(zf);const YN=new Array(GN);Vp(YN);const m0=new Array(Wu);Vp(m0);function vw(t,n,s,r,a){this.static_tree=t,this.extra_bits=n,this.extra_base=s,this.elems=r,this.max_length=a,this.has_stree=t&&t.length}let XM,ZM,e8;function ww(t,n){this.dyn_tree=t,this.max_code=0,this.stat_desc=n}const t8=t=>t<256?Bf[t]:Bf[256+(t>>
vendor: 4,761 bytes, line 2649
2649>7)],Uf=(t,n)=>{t.pending_buf[t.pending++]=n&255,t.pending_buf[t.pending++]=n>>>8&255},Ha=(t,n,s)=>{t.bi_valid>bw-s?(t.bi_buf|=n<<t.bi_valid&65535,Uf(t,t.bi_buf),t.bi_buf=n>>bw-t.bi_valid,t.bi_valid+=s-bw):(t.bi_buf|=n<<t.bi_valid&65535,t.bi_valid+=s)},$o=(t,n,s)=>{Ha(t,s[n*2],s[n*2+1])},n8=(t,n)=>{let s=0;do s|=t&1,t>>>=1,s<<=1;while(--n>0);return s>>>1},yre=t=>{t.bi_valid===16?(Uf(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)},bre=(t,n)=>{const s=n.dyn_tree,r=n.max_code,a=n.stat_desc.static_tree,i=n.stat_desc.has_stree,o=n.stat_desc.extra_bits,l=n.stat_desc.extra_base,c=n.stat_desc.max_length;let d,h,p,m,u,y,g=0;for(m=0;m<=$d;m++)t.bl_count[m]=0;for(s[t.heap[t.heap_max]*2+1]=0,d=t.heap_max+1;d<GM;d++)h=t.heap[d],m=s[s[h*2+1]*2+1]+1,m>c&&(m=c,g++),s[h*2+1]=m,!(h>r)&&(t.bl_count[m]++,u=0,h>=l&&(u=o[h-l]),y=s[h*2],t.opt_len+=y*(m+u),i&&(t.static_len+=y*(a[h*2+1]+u)));if(g!==0){do{for(m=c-1;t.bl_count[m]===0;)m--;t.bl_count[m]--,t.bl_count[m+1]+=2,t.bl_count[c]--,g-=2}while(g>0);for(m=c;m!==0;m--)for(h=t.bl_count[m];h!==0;)p=t.heap[--d],!(p>r)&&(s[p*2+1]!==m&&(t.opt_len+=(m-s[p*2+1])*s[p*2],s[p*2+1]=m),h--)}},s8=(t,n,s)=>{const r=new Array($d+1);let a=0,i,o;for(i=1;i<=$d;i++)a=a+s[i-1]<<1,r[i]=a;for(o=0;o<=n;o++){let l=t[o*2+1];l!==0&&(t[o*2]=n8(r[l]++,l))}},vre=()=>{let t,n,s,r,a;const i=new Array($d+1);for(s=0,r=0;r<GN-1;r++)for(YN[r]=s,t=0;t<1<<pk[r];t++)zf[s++]=r;for(zf[s-1]=r,a=0,r=0;r<16;r++)for(m0[r]=a,t=0;t<1<<fy[r];t++)Bf[a++]=r;for(a>>=7;r<Wu;r++)for(m0[r]=a<<7,t=0;t<1<<fy[r]-7;t++)Bf[256+a++]=r;for(n=0;n<=$d;n++)i[n]=0;for(t=0;t<=143;)kl[t*2+1]=8,t++,i[8]++;for(;t<=255;)kl[t*2+1]=9,t++,i[9]++;for(;t<=279;)kl[t*2+1]=7,t++,i[7]++;for(;t<=287;)kl[t*2+1]=8,t++,i[8]++;for(s8(kl,Vf+1,i),t=0;t<Wu;t++)of[t*2+1]=5,of[t*2]=n8(t,5);XM=new vw(kl,pk,fg+1,Vf,$d),ZM=new vw(of,fy,0,Wu,$d),e8=new vw(new Array(0),gre,0,KN,fre)},r8=t=>{let n;for(n=0;n<Vf;n++)t.dyn_ltree[n*2]=0;for(n=0;n<Wu;n++)t.dyn_dtree[n*2]=0;for(n=0;n<KN;n++)t.bl_tree[n*2]=0;t.dyn_ltree[QN*2]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},a8=t=>{t.bi_valid>8?Uf(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},e3=(t,n,s,r)=>{const a=n*2,i=s*2;return t[a]<t[i]||t[a]===t[i]&&r[n]<=r[s]},jw=(t,n,s)=>{const r=t.heap[s];let a=s<<1;for(;a<=t.heap_len&&(a<t.heap_len&&e3(n,t.heap[a+1],t.heap[a],t.depth)&&a++,!e3(n,r,t.heap[a],t.depth));)t.heap[s]=t.heap[a],s=a,a<<=1;t.heap[s]=r},t3=(t,n,s)=>{let r,a,i=0,o,l;if(t.sym_next!==0)do r=t.pending_buf[t.sym_buf+i++]&255,r+=(t.pending_buf[t.sym_buf+i++]&255)<<8,a=t.pending_buf[t.sym_buf+i++],r===0?$o(t,a,n):(o=zf[a],$o(t,o+fg+1,n),l=pk[o],l!==0&&(a-=YN[o],Ha(t,a,l)),r--,o=t8(r),$o(t,o,s),l=fy[o],l!==0&&(r-=m0[o],Ha(t,r,l)));while(i<t.sym_next);$o(t,QN,n)},mk=(t,n)=>{const s=n.dyn_tree,r=n.stat_desc.static_tree,a=n.stat_desc.has_stree,i=n.stat_desc.elems;let o,l,c=-1,d;for(t.heap_len=0,t.heap_max=GM,o=0;o<i;o++)s[o*2]!==0?(t.heap[++t.heap_len]=c=o,t.depth[o]=0):s[o*2+1]=0;for(;t.heap_len<2;)d=t.heap[++t.heap_len]=c<2?++c:0,s[d*2]=1,t.depth[d]=0,t.opt_len--,a&&(t.static_len-=r[d*2+1]);for(n.max_code=c,o=t.heap_len>>1;o>=1;o--)jw(t,s,o);d=i;do o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],jw(t,s,1),l=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=l,s[d*2]=s[o*2]+s[l*2],t.depth[d]=(t.depth[o]>=t.depth[l]?t.depth[o]:t.depth[l])+1,s[o*2+1]=s[l*2+1]=d,t.heap[1]=d++,jw(t,s,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],bre(t,n),s8(s,c,t.bl_count)},n3=(t,n,s)=>{let r,a=-1,i,o=n[0*2+1],l=0,c=7,d=4;for(o===0&&(c=138,d=3),n[(s+1)*2+1]=65535,r=0;r<=s;r++)i=o,o=n[(r+1)*2+1],!(++l<c&&i===o)&&(l<d?t.bl_tree[i*2]+=l:i!==0?(i!==a&&t.bl_tree[i*2]++,t.bl_tree[KM*2]++):l<=10?t.bl_tree[QM*2]++:t.bl_tree[YM*2]++,l=0,a=i,o===0?(c=138,d=3):i===o?(c=6,d=3):(c=7,d=4))},s3=(t,n,s)=>{let r,a=-1,i,o=n[0*2+1],l=0,c=7,d=4;for(o===0&&(c=138,d=3),r=0;r<=s;r++)if(i=o,o=n[(r+1)*2+1],!(++l<c&&i===o)){if(l<d)do $o(t,i,t.bl_tree);while(--l!==0);else i!==0?(i!==a&&($o(t,i,t.bl_tree),l--),$o(t,KM,t.bl_tree),Ha(t,l-3,2)):l<=10?($o(t,QM,t.bl_tree),Ha(t,l-3,3)):($o(t,YM,t.bl_tree),Ha(t,l-11,7));l=0,a=i,o===0?(c=138,d=3):i===o?(c=6,d=3):(c=7,d=4)}},wre=t=>{let n;for(n3(t,t.dyn_ltree,t.l_desc.max_code),n3(t,t.dyn_dtree,t.d_desc.max_code),mk(t,t.bl_desc),n=KN-1;n>=3&&t.bl_tree[JM[n]*2+1]===0;n--);return t.opt_len+=3*(n+1)+5+5+4,n},jre=(t,n,s,r)=>{let a;for(Ha(t,n-257,5),Ha(t,s-1,5),Ha(t,r-4,4),a=0;a<r;a++)Ha(t,t.bl_tree[JM[a]*2+1],3);s3(t,t.dyn_ltree,n-1),s3(t,t.dyn_dtree,s-1)},kre=t=>{let n=4093624447,s;for(s=0;s<=31;s++,n>>>=1)if(n&1&&t.dyn_ltree[s*2]!==0)return XD;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return ZD;for(s=32;s<fg;s++)if(t.dyn_ltree[s*2]!==0)return ZD;
2649return XD};let r3=!1;const Nre=t=>{r3||(vre(),r3=!0),t.l_desc=new ww(t.dyn_ltree,XM),t.d_desc=new ww(t.dyn_dtree,ZM),t.bl_desc=new ww(t.bl_tree,e8),t.bi_buf=0,t.bi_valid=0,r8(t)},i8=(t,n,s,r)=>{Ha(t,(hre<<1)+(r?1:0),3),a8(t),Uf(t,s),Uf(t,~s),s&&t.pending_buf.set(t.window.subarray(n,n+s),t.pending),t.pending+=s},Sre=t=>{Ha(t,WM<<1,3),$o(t,QN,kl),yre(t)},Are=(t,n,s,r)=>{let a,i,o=0;t.level>0?(t.strm.data_type===dre&&(t.strm.data_type=kre(t)),mk(t,t.l_desc),mk(t,t.d_desc),o=wre(t),a=t.opt_len+3+7>>>3,i=t.static_len+3+7>>>3,i<=a&&(a=i)):a=i=s+5,s+4<=a&&n!==-1?i8(t,n,s,r):t.strategy===cre||i===a?(Ha(t,(WM<<1)+(r?1:0),3),t3(t,kl,of)):(Ha(t,(ure<<1)+(r?1:0),3),jre(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),t3(t,t.dyn_ltree,t.dyn_dtree)),r8(t),r&&a8(t)},Dre=(t,n,s)=>(t.pending_buf[t.sym_buf+t.sym_next++]=n,t.pending_buf[t.sym_buf+t.sym_next++]=n>>8,t.pending_buf[t.sym_buf+t.sym_next++]=s,n===0?t.dyn_ltree[s*2]++:(t.matches++,n--,t.dyn_ltree[(zf[s]+fg+1)*2]++,t.dyn_dtree[t8(n)*2]++),t.sym_next===t.sym_end);var Ire=Nre,Cre=i8,_re=Are,Tre=Dre,Pre=Sre,Ere={_tr_init:Ire,_tr_stored_block:Cre,_tr_flush_block:_re,_tr_tally:Tre,_tr_align:Pre};const Lre=(t,n,s,r)=>{let a=t&65535|0,i=t>>>16&65535|0,o=0;for(;s!==0;){o=s>2e3?2e3:s,s-=o;do a=a+n[r++]|0,i=i+a|0;while(--o);a%=65521,i%=65521}return a|i<<16|0};var qf=Lre;const Mre=()=>{let t,n=[];for(var s=0;s<256;s++){t=s;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;n[s]=t}return n},Rre=new Uint32Array(Mre()),Ore=(t,n,s,r)=>{const a=Rre,i=r+s;t^=-1;for(let o=r;o<i;o++)t=t>>>8^a[(t^n[o])&255];return t^-1};var Nr=Ore,jp={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"},gg={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Fre,_tr_stored_block:fk,_tr_flush_block:Vre,_tr_tally:Qc,_tr_align:Bre}=Ere,{Z_NO_FLUSH:Yc,Z_PARTIAL_FLUSH:zre,Z_FULL_FLUSH:Ure,Z_FINISH:Ui,Z_BLOCK:a3,Z_OK:Fr,Z_STREAM_END:i3,Z_STREAM_ERROR:Yo,Z_DATA_ERROR:qre,Z_BUF_ERROR:kw,Z_DEFAULT_COMPRESSION:Hre,Z_FILTERED:$re,Z_HUFFMAN_ONLY:Ex,Z_RLE:Wre,Z_FIXED:Gre,Z_DEFAULT_STRATEGY:Kre,Z_UNKNOWN:Qre,Z_DEFLATED:vb}=gg,Yre=9,Jre=15,Xre=8,Zre=29,eae=256,gk=eae+1+Zre,tae=30,nae=19,sae=2*gk+1,rae=15,Hn=3,Vc=258,Jo=Vc+Hn+1,aae=32,kp=42,JN=57,xk=69,yk=73,bk=91,vk=103,Wd=113,Bm=666,Na=1,Bp=2,vh=3,zp=4,iae=3,Gd=(t,n)=>(t.msg=jp[n],n),o3=t=>t*2-(t>4?9:0),Sc=t=>{let n=t.length;for(;--n>=0;)t[n]=0},oae=t=>{let n,s,r,a=t.w_size;n=t.hash_size,r=n;do s=t.head[--r],t.head[r]=s>=a?s-a:0;while(--n);n=a,r=n;do s=t.prev[--r],t.prev[r]=s>=a?s-a:0;while(--n)};let XN=(t,n,s)=>(n<<t.hash_shift^s)&t.hash_mask;const wh=(t,n)=>{let s;if(t.legacy_hash)s=t.ins_h=XN(t,t.ins_h,t.window[n+Hn-1]);else{const a=t.window,i=a[n]|a[n+1]<<8|a[n+2]<<16|a[n+3]<<24;s=t.ins_h=Math.imul(i,66521)+66521>>>16&t.hash_mask}const r=t.prev[n&t.w_mask]=t.head[s];return t.head[s]=n,r},pi=t=>{const n=t.state;let s=n.pending;s>t.avail_out&&(s=t.avail_out),s!==0&&(t.output.set(n.pending_buf.subarray(n.pending_out,n.pending_out+s),t.next_out),t.next_out+=s,n.pending_out+=s,t.total_out+=s,t.avail_out-=s,n.pending-=s,n.pending===0&&(n.pending_out=0))},ji=(t,n)=>{Vre(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,n),t.block_start=t.strstart,pi(t.strm)},$n=(t,n)=>{t.pending_buf[t.pending++]=n},Cm=(t,n)=>{t.pending_buf[t.pending++]=n>>>8&255,t.pending_buf[t.pending++]=n&255},wk=(t,n,s,r)=>{let a=t.avail_in;return a>r&&(a=r),a===0?0:(t.avail_in-=a,n.set(t.input.subarray(t.next_in,t.next_in+a),s),t.state.wrap===1?t.adler=qf(t.adler,n,a,s):t.state.wrap===2&&(t.adler=Nr(t.adler,n,a,s)),t.next_in+=a,t.total_in+=a,a)},o8=(t,n)=>{let s=t.max_chain_length,r=t.strstart,a,i,o=t.prev_length,l=t.nice_match;const c=t.strstart>t.w_size-Jo?t.strstart-(t.w_size-Jo):0,d=t.window,h=t.w_mask,p=t.prev,m=t.strstart+Vc;let u=d[r+o-1],y=d[r+o];t.prev_length>=t.good_match&&(s>>=2),l>t.lookahead&&(l=t.lookahead);do if(a=n,!(d[a+o]!==y||d[a+o-1]!==u||d[a]!==d[r]||d[++a]!==d[r+1])){r+=2,a++;do;while(d[++r]===d[++a]&&d[++r]===d[++a]&&d[++r]===d[++a]&&d[++r]===d[++a]&&d[++r]===d[++a]&&d[++r]===d[++a]&&d[++r]===d[++a]&&d[++r]===d[++a]&&r<m);if(i=Vc-(m-r),r=m-Vc,i>o){if(t.match_start=n,o=i,i>=l)break;u=d[r+o-1],y=d[r+o]}}while((n=p[n&h])>c&&--s!==0);return o<=t.lookahead?o:t.lookahead},Np=t=>{const n=t.w_size;let s,r,a;do{if(r=t.window_size-t.lookahead-t.strstart,t.strstart>=n+(n-Jo)&&(t.window.set(t.window.subarray(n,n+n-r),0),t.match_start-=n,t.strstart-=n,t.block_start-=n,t.insert>t.strstart&&(t.insert=t.strstart),oae(t),r+=n),t.strm.avail_in===0)break;if(s=wk(t.strm,t.window,t.strstart+t.lookahead,r),t.lookahead+=s,t.legacy_hash){if(t.lookahead+t.insert>=Hn)for(a=t.strstart-t.insert,t.ins_h=t.window[a],t.ins_h=XN(t,t.ins_h,t.window[a+1]);t.insert&&(wh(t,a),a++,t.insert--,!(t.lookahead+t.insert<Hn)););}else if(t.lookahead+t.insert>Hn)for(a=t.strstart-t.insert;t.insert&&(wh(t,a),a++,t.insert--,!(t.lookahead+t.insert<=Hn)););}while(t.lookahead<Jo&&t.strm.avail_in!==0)}
vendor: 4,438 bytes, line 2649
2649,l8=(t,n)=>{let s=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r,a,i,o=0,l=t.strm.avail_in;do{if(r=65535,i=t.bi_valid+42>>3,t.strm.avail_out<i||(i=t.strm.avail_out-i,a=t.strstart-t.block_start,r>a+t.strm.avail_in&&(r=a+t.strm.avail_in),r>i&&(r=i),r<s&&(r===0&&n!==Ui||n===Yc||r!==a+t.strm.avail_in)))break;o=n===Ui&&r===a+t.strm.avail_in?1:0,fk(t,0,0,o),t.pending_buf[t.pending-4]=r,t.pending_buf[t.pending-3]=r>>8,t.pending_buf[t.pending-2]=~r,t.pending_buf[t.pending-1]=~r>>8,pi(t.strm),a&&(a>r&&(a=r),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+a),t.strm.next_out),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a,t.block_start+=a,r-=a),r&&(wk(t.strm,t.strm.output,t.strm.next_out,r),t.strm.next_out+=r,t.strm.avail_out-=r,t.strm.total_out+=r)}while(o===0);return l-=t.strm.avail_in,l&&(l>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=l&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-l,t.strm.next_in),t.strstart),t.strstart+=l,t.insert+=l>t.w_size-t.insert?t.w_size-t.insert:l),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),o?zp:n!==Yc&&n!==Ui&&t.strm.avail_in===0&&t.strstart===t.block_start?Bp:(i=t.window_size-t.strstart,t.strm.avail_in>i&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,i+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),i>t.strm.avail_in&&(i=t.strm.avail_in),i&&(wk(t.strm,t.window,t.strstart,i),t.strstart+=i,t.insert+=i>t.w_size-t.insert?t.w_size-t.insert:i),t.high_water<t.strstart&&(t.high_water=t.strstart),i=t.bi_valid+42>>3,i=t.pending_buf_size-i>65535?65535:t.pending_buf_size-i,s=i>t.w_size?t.w_size:i,a=t.strstart-t.block_start,(a>=s||(a||n===Ui)&&n!==Yc&&t.strm.avail_in===0&&a<=i)&&(r=a>i?i:a,o=n===Ui&&t.strm.avail_in===0&&r===a?1:0,fk(t,t.block_start,r,o),t.block_start+=r,pi(t.strm)),o?vh:Na)},Nw=(t,n)=>{let s,r;for(;;){if(t.lookahead<Jo){if(Np(t),t.lookahead<Jo&&n===Yc)return Na;if(t.lookahead===0)break}if(s=0,t.lookahead>=Hn&&(s=wh(t,t.strstart)),s!==0&&t.strstart-s<=t.w_size-Jo&&(t.match_length=o8(t,s)),t.match_length>=Hn)if(r=Qc(t,t.strstart-t.match_start,t.match_length-Hn),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=Hn){t.match_length--;do t.strstart++,s=wh(t,t.strstart);while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.legacy_hash&&(t.ins_h=t.window[t.strstart],t.ins_h=XN(t,t.ins_h,t.window[t.strstart+1]));else r=Qc(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(ji(t,!1),t.strm.avail_out===0))return Na}return t.insert=t.strstart<Hn-1?t.strstart:Hn-1,n===Ui?(ji(t,!0),t.strm.avail_out===0?vh:zp):t.sym_next&&(ji(t,!1),t.strm.avail_out===0)?Na:Bp},ou=(t,n)=>{let s,r,a;for(;;){if(t.lookahead<Jo){if(Np(t),t.lookahead<Jo&&n===Yc)return Na;if(t.lookahead===0)break}if(s=0,t.lookahead>=Hn&&(s=wh(t,t.strstart)),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=Hn-1,s!==0&&t.prev_length<t.max_lazy_match&&t.strstart-s<=t.w_size-Jo&&(t.match_length=o8(t,s),t.match_length<=5&&(t.strategy===$re||t.match_length===Hn&&t.strstart-t.match_start>4096)&&(t.match_length=Hn-1)),t.prev_length>=Hn&&t.match_length<=t.prev_length){a=t.strstart+t.lookahead-Hn,r=Qc(t,t.strstart-1-t.prev_match,t.prev_length-Hn),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=a&&(s=wh(t,t.strstart));while(--t.prev_length!==0);if(t.match_available=0,t.match_length=Hn-1,t.strstart++,r&&(ji(t,!1),t.strm.avail_out===0))return Na}else if(t.match_available){if(r=Qc(t,0,t.window[t.strstart-1]),r&&ji(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return Na}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=Qc(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<Hn-1?t.strstart:Hn-1,n===Ui?(ji(t,!0),t.strm.avail_out===0?vh:zp):t.sym_next&&(ji(t,!1),t.strm.avail_out===0)?Na:Bp},lae=(t,n)=>{let s,r,a,i;const o=t.window;for(;;){if(t.lookahead<=Vc){if(Np(t),t.lookahead<=Vc&&n===Yc)return Na;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=Hn&&t.strstart>
26490&&(a=t.strstart-1,r=o[a],r===o[++a]&&r===o[++a]&&r===o[++a])){i=t.strstart+Vc;do;while(r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&r===o[++a]&&a<i);t.match_length=Vc-(i-a),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=Hn?(s=Qc(t,1,t.match_length-Hn),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(s=Qc(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),s&&(ji(t,!1),t.strm.avail_out===0))return Na}return t.insert=0,n===Ui?(ji(t,!0),t.strm.avail_out===0?vh:zp):t.sym_next&&(ji(t,!1),t.strm.avail_out===0)?Na:Bp},cae=(t,n)=>{let s;for(;;){if(t.lookahead===0&&(Np(t),t.lookahead===0)){if(n===Yc)return Na;break}if(t.match_length=0,s=Qc(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,s&&(ji(t,!1),t.strm.avail_out===0))return Na}return t.insert=0,n===Ui?(ji(t,!0),t.strm.avail_out===0?vh:zp):t.sym_next&&(ji(t,!1),t.strm.avail_out===0)?Na:Bp};function Po(t,n,s,r,a){this.good_length=t,this.max_lazy=n,this.nice_length=s,this.max_chain=r,this.func=a}const zm=[new Po(0,0,0,0,l8),new Po(4,4,8,4,Nw),new Po(4,5,16,8,Nw),new Po(4,6,32,32,Nw),new Po(4,4,16,16,ou),new Po(8,16,32,32,ou),new Po(8,16,128,128,ou),new Po(8,32,128,256,ou),new Po(32,128,258,1024,ou),new Po(32,258,258,4096,ou)],dae=t=>{t.window_size=2*t.w_size,Sc(t.head),t.max_lazy_match=zm[t.level].max_lazy,t.good_match=zm[t.level].good_length,t.nice_match=zm[t.level].nice_length,t.max_chain_length=zm[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=Hn-1,t.match_available=0,t.ins_h=0};function hae(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=vb,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.legacy_hash=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 Uint16Array(sae*2),this.dyn_dtree=new Uint16Array((2*tae+1)*2),this.bl_tree=new Uint16Array((2*nae+1)*2),Sc(this.dyn_ltree),Sc(this.dyn_dtree),Sc(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(rae+1),this.heap=new Uint16Array(2*gk+1),Sc(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*gk+1),Sc(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const xg=t=>{if(!t)return 1;const n=t.state;return!n||n.strm!==t||n.status!==kp&&n.status!==JN&&n.status!==xk&&n.status!==yk&&n.status!==bk&&n.status!==vk&&n.status!==Wd&&n.status!==Bm?1:0},c8=t=>{if(xg(t))return Gd(t,Yo);t.total_in=t.total_out=0,t.data_type=Qre;const n=t.state;return n.pending=0,n.pending_out=0,n.wrap<0&&(n.wrap=-n.wrap),n.status=n.wrap===2?JN:n.wrap?kp:Wd,t.adler=n.wrap===2?0:1,n.last_flush=-2,Fre(n),Fr},d8=t=>{const n=c8(t);return n===Fr&&dae(t.state),n},uae=(t,n)=>xg(t)||t.state.wrap!==2?Yo:(t.state.gzhead=n,Fr),h8=(t,n,s,r,a,i,o)=>{if(!t)return Yo;let l=1;if(n===Hre&&(n=6),r<0?(l=0,r=-r):r>15&&(l=2,r-=16),a<1||a>Yre||s!==vb||r<8||r>15||n<0||n>9||i<0||i>Gre||r===8&&l!==1)return Gd(t,Yo);r===8&&(r=9);const c=new hae;return t.state=c,c.strm=t,c.status=kp,c.wrap=l,c.gzhead=null,c.w_bits=r,c.w_size=1<<c.w_bits,c.w_mask=c.w_size-1,c.legacy_hash=o?1:0,c.hash_bits=a+7,!c.legacy_hash&&c.hash_bits<15&&(c.hash_bits=15),c.hash_size=1<<c.hash_bits,c.hash_mask=c.hash_size-1,c.hash_shift=~~((c.hash_bits+Hn-1)/Hn),c.window=new Uint8Array(c.w_size*2),c.head=new Uint16Array(c.hash_size),c.prev=new Uint16Array(c.w_size),c.lit_bufsize=1<<a+6,c.pending_buf_size=c.lit_bufsize*4,c.pending_buf=new Uint8Array(c.pending_buf_size),c.sym_buf=c.lit_bufsize,c.sym_end=(c.lit_bufsize-1)*3,c.level=n,c.strategy=i,c.method=s,d8(t)},pae=(t,n)=>h8(t,n,vb,Jre,Xre,Kre),mae=(t,n)=>{if(xg(t)||n>a3||n<0)return t?Gd(t,Yo):Yo;const s=t.state;if(!t.output||t.avail_in!==0&&!t.input||s.status===Bm&&n!==Ui)return Gd(t,t.avail_out===0?kw:Yo);const r=s.last_flush;if(s.last_flush=n,s.pending!==0){if(pi(t),t.avail_out===0)return s.last_flush=-1,Fr}else if(t.avail_in===0&&o3(n)<=o3(r)&&n!==Ui)return Gd(t,kw);if(s.status===Bm&&t.avail_in!==0)return Gd(t,kw);if(s.status===kp&&s.wrap===0&&(s.status=Wd),s.status===kp){let a=vb+(s.w_bits-8<<4)<<8,i=-1;if(s.strategy>=Ex||s.level<2?i=0:s.level<6?i=1:s.level===6?i=2:i=3,a|=i<<6,s.strstart!==0&&(a|=aae),a+=31-a%31,Cm(s,a),s.strstart!==0&&(Cm(s,t.adler>>>16),Cm(s,t.adler&65535)),t.adler=1,s.status=Wd,pi(t),s.pending!==0)return s.last_flush=-1,Fr}if(s.status===JN){if(t.adler=0,$n(s,31),$n(s,139),$n(s,8),s.gzhead)$n(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),$n(s,s.gzhead.time&255),$n(s,s.gzhead.time>>8&255),$n(s,s.gzhead.time>>16&255),$n(s,s.gzhead.time>>24&255),$n(s,s.level===9?2:s.strategy>=Ex||s.level<2?4:0),$n(s,s.gzhead.os&255),s.gzhead.extra&&s.gzhead.extra.length&&($n(s,s.gzhead.extra.length&255),$n(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(t.adler=Nr(t.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=xk;else if($n(s,0),$n(s,0),$n(s,0),$n(s,0),$n(s,0),$n(s,s.level===9?2:s.strategy>=Ex||s.level<2?4:0),$n(s,iae),s.status=Wd,pi(t),s.pending!==0)return s.last_flush=-1,Fr}if(s.status===xk){if(s.gzhead.extra){let a=s.pending,i=(s.gzhead.extra.length&65535)-s.gzindex;for(;s.pending+i>s.pending_buf_size;){let l=s.pending_buf_size-s.pending;if(s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex,s.gzindex+l),s.pending),s.pending=s.pending_buf_size,s.gzhead.hcrc&&s.pending>a&&(t.adler=Nr(t.adler,s.pending_buf,s.pending-a,a)),s.gzindex+=l,pi(t),s.pending!==0)return s.last_flush=-1,Fr;a=0,i-=l}let o=new Uint8Array(s.gzhead.extra);s.pending_buf.set(o.subarray(s.gzindex,s.gzindex+i),s.pending),s.pending+=i,s.gzhead.hcrc&&s.pending>a&&(t.adler=Nr(t.adler,s.pending_buf,s.pending-a,a)),s.gzindex=0}s.status=yk}if(s.status===yk){if(s.gzhead.name){let a=s.pending,i;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>a&&(t.adler=Nr(t.adler,s.pending_buf,s.pending-a,a)),pi(t),s.pending!==0)return s.last_flush=-1,Fr;a=0}
2649s.gzindex<s.gzhead.name.length?i=s.gzhead.name.charCodeAt(s.gzindex++)&255:i=0,$n(s,i)}while(i!==0);s.gzhead.hcrc&&s.pending>a&&(t.adler=Nr(t.adler,s.pending_buf,s.pending-a,a)),s.gzindex=0}s.status=bk}if(s.status===bk){if(s.gzhead.comment){let a=s.pending,i;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>a&&(t.adler=Nr(t.adler,s.pending_buf,s.pending-a,a)),pi(t),s.pending!==0)return s.last_flush=-1,Fr;a=0}s.gzindex<s.gzhead.comment.length?i=s.gzhead.comment.charCodeAt(s.gzindex++)&255:i=0,$n(s,i)}while(i!==0);s.gzhead.hcrc&&s.pending>a&&(t.adler=Nr(t.adler,s.pending_buf,s.pending-a,a))}s.status=vk}if(s.status===vk){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size&&(pi(t),s.pending!==0))return s.last_flush=-1,Fr;$n(s,t.adler&255),$n(s,t.adler>>8&255),t.adler=0}if(s.status=Wd,pi(t),s.pending!==0)return s.last_flush=-1,Fr}if(t.avail_in!==0||s.lookahead!==0||n!==Yc&&s.status!==Bm){let a=s.level===0?l8(s,n):s.strategy===Ex?cae(s,n):s.strategy===Wre?lae(s,n):zm[s.level].func(s,n);if((a===vh||a===zp)&&(s.status=Bm),a===Na||a===vh)return t.avail_out===0&&(s.last_flush=-1),Fr;if(a===Bp&&(n===zre?Bre(s):n!==a3&&(fk(s,0,0,!1),n===Ure&&(Sc(s.head),s.lookahead===0&&(s.strstart=0,s.block_start=0,s.insert=0))),pi(t),t.avail_out===0))return s.last_flush=-1,Fr}return n!==Ui?Fr:s.wrap<=0?i3:(s.wrap===2?($n(s,t.adler&255),$n(s,t.adler>>8&255),$n(s,t.adler>>16&255),$n(s,t.adler>>24&255),$n(s,t.total_in&255),$n(s,t.total_in>>8&255),$n(s,t.total_in>>16&255),$n(s,t.total_in>>24&255)):(Cm(s,t.adler>>>16),Cm(s,t.adler&65535)),pi(t),s.wrap>0&&(s.wrap=-s.wrap),s.pending!==0?Fr:i3)},fae=t=>{if(xg(t))return Yo;const n=t.state.status;return t.state=null,n===Wd?Gd(t,qre):Fr},gae=(t,n)=>{let s=n.length;if(xg(t))return Yo;const r=t.state,a=r.wrap;if(a===2||a===1&&r.status!==kp||r.lookahead)return Yo;if(a===1&&(t.adler=qf(t.adler,n,s,0)),r.wrap=0,s>=r.w_size){a===0&&(Sc(r.head),r.strstart=0,r.block_start=0,r.insert=0);let c=new Uint8Array(r.w_size);c.set(n.subarray(s-r.w_size,s),0),n=c,s=r.w_size}const i=t.avail_in,o=t.next_in,l=t.input;for(t.avail_in=s,t.next_in=0,t.input=n,Np(r);r.lookahead>=Hn;){let c=r.strstart,d=r.lookahead-(Hn-1);do wh(r,c),c++;while(--d);r.strstart=c,r.lookahead=Hn-1,Np(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=Hn-1,r.match_available=0,t.next_in=o,t.input=l,t.avail_in=i,r.wrap=a,Fr};var xae=pae,yae=h8,bae=d8,vae=c8,wae=uae,jae=mae,kae=fae,Nae=gae,Sae="pako deflate (from Nodeca project)",lf={deflateInit:xae,deflateInit2:yae,deflateReset:bae,deflateResetKeep:vae,deflateSetHeader:wae,deflate:jae,deflateEnd:kae,deflateSetDictionary:Nae,deflateInfo:Sae};const Aae=(t,n)=>Object.prototype.hasOwnProperty.call(t,n);var Dae=function(t){const n=Array.prototype.slice.call(arguments,1);for(;n.length;){const s=n.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(const r in s)Aae(s,r)&&(t[r]=s[r])}}return t},Iae=t=>{let n=0;for(let r=0,a=t.length;r<a;r++)n+=t[r].length;const s=new Uint8Array(n);for(let r=0,a=0,i=t.length;r<i;r++){let o=t[r];s.set(o,a),a+=o.length}return s},wb={assign:Dae,flattenChunks:Iae};let u8=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{u8=!1}const Hf=new Uint8Array(256);for(let t=0;t<256;t++)Hf[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Hf[254]=Hf[255]=1;var Cae=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let n,s,r,a,i,o=t.length,l=0;for(a=0;a<o;a++)s=t.charCodeAt(a),(s&64512)===55296&&a+1<o&&(r=t.charCodeAt(a+1),(r&64512)===56320&&(s=65536+(s-55296<<10)+(r-56320),a++)),l+=s<128?1:s<2048?2:s<65536?3:4;for(n=new Uint8Array(l),i=0,a=0;i<l;a++)s=t.charCodeAt(a),(s&64512)===55296&&a+1<o&&(r=t.charCodeAt(a+1),(r&64512)===56320&&(s=65536+(s-55296<<10)+(r-56320),a++)),s<128?n[i++]=s:s<2048?(n[i++]=192|s>>>6,n[i++]=128|s&63):s<65536?(n[i++]=224|s>>>12,n[i++]=128|s>>>6&63,n[i++]=128|s&63):(n[i++]=240|s>>>18,n[i++]=128|s>>>12&63,n[i++]=128|s>>>6&63,n[i++]=128|s&63);return n};const _ae=(t,n)=>{if(n<65534&&t.subarray&&u8)return String.fromCharCode.apply(null,t.length===n?t:t.subarray(0,n));let s="";for(let r=0;r<n;r++)s+=String.fromCharCode(t[r]);return s};var Tae=(t,n)=>{const s=n||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,n));let r,a;const i=new Array(s*2);for(a=0,r=0;r<s;){let o=t[r++];if(o<128){i[a++]=o;continue}let l=Hf[o];if(l>4){i[a++]=65533,r+=l-1;continue}for(o&=l===2?31:l===3?15:7;l>1&&r<s;)o=o<<6|t[r++]&63,l--;if(l>1){i[a++]=65533;continue}o<65536?i[a++]=o:(o-=65536,i[a++]=55296|o>>10&1023,i[a++]=56320|o&1023)}return _ae(i,a)},Pae=(t,n)=>{n=n||t.length,n>t.length&&(n=t.length);let s=n-1;for(;s>=0&&(t[s]&192)===128;)s--;return s<0||s===0?n:s+Hf[t[s]]>n?s:n},$f={string2buf:Cae,buf2string:Tae,utf8border:Pae};function Eae(){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 p8=Eae;const m8=Object.prototype.toString,{Z_NO_FLUSH:Lae,Z_SYNC_FLUSH:Mae,Z_FULL_FLUSH:Rae,Z_FINISH:Oae,Z_OK:f0,Z_STREAM_END:Fae,Z_DEFAULT_COMPRESSION:Vae,Z_DEFAULT_STRATEGY:Bae,Z_DEFLATED:zae}=gg,Uae={level:Vae,method:zae,chunkSize:16384,windowBits:15,memLevel:8,strategy:Bae,legacyHash:!0};function ZN(t){this.options=wb.assign({},Uae,t||{});let n=this.options;n.raw&&n.windowBits>0?n.windowBits=-n.windowBits:n.gzip&&n.windowBits>0&&n.windowBits<16&&(n.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new p8,this.strm.avail_out=0;let s=lf.deflateInit2(this.strm,n.level,n.method,n.windowBits,n.memLevel,n.strategy,n.legacyHash);if(s!==f0)throw new Error(jp[s]);if(n.header&&lf.deflateSetHeader(this.strm,n.header),n.dictionary){let r;if(typeof n.dictionary=="string"?r=$f.string2buf(n.dictionary):m8.call(n.dictionary)==="[object ArrayBuffer]"?r=new
2649Uint8Array(n.dictionary):r=n.dictionary,s=lf.deflateSetDictionary(this.strm,r),s!==f0)throw new Error(jp[s]);this._dict_set=!0}}ZN.prototype.push=function(t,n){const s=this.strm,r=this.options.chunkSize;let a,i;if(this.ended)return!1;for(n===~~n?i=n:i=n===!0?Oae:Lae,typeof t=="string"?s.input=$f.string2buf(t):m8.call(t)==="[object ArrayBuffer]"?s.input=new Uint8Array(t):s.input=t,s.next_in=0,s.avail_in=s.input.length;;){if(s.avail_out===0&&(s.output=new Uint8Array(r),s.next_out=0,s.avail_out=r),(i===Mae||i===Rae)&&s.avail_out<=6){this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;continue}if(a=lf.deflate(s,i),a===Fae)return s.next_out>0&&this.onData(s.output.subarray(0,s.next_out)),a=lf.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===f0;if(s.avail_out===0){this.onData(s.output);continue}if(i>0&&s.next_out>0){this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;continue}if(s.avail_in===0)break}return!0};ZN.prototype.onData=function(t){this.chunks.push(t)};ZN.prototype.onEnd=function(t){t===f0&&(this.result=wb.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const Lx=16209,qae=16191;var Hae=function(n,s){let r,a,i,o,l,c,d,h,p,m,u,y,g,w,b,j,N,A,E,C,F,O,L,W;const _=n.state;r=n.next_in,L=n.input,a=r+(n.avail_in-5),i=n.next_out,W=n.output,o=i-(s-n.avail_out),l=i+(n.avail_out-257),c=_.dmax,d=_.wsize,h=_.whave,p=_.wnext,m=_.window,u=_.hold,y=_.bits,g=_.lencode,w=_.distcode,b=(1<<_.lenbits)-1,j=(1<<_.distbits)-1;e:do{y<15&&(u+=L[r++]<<y,y+=8,u+=L[r++]<<y,y+=8),N=g[u&b];t:for(;;){if(A=N>>>24,u>>>=A,y-=A,A=N>>>16&255,A===0)W[i++]=N&65535;else if(A&16){E=N&65535,A&=15,A&&(y<A&&(u+=L[r++]<<y,y+=8),E+=u&(1<<A)-1,u>>>=A,y-=A),y<15&&(u+=L[r++]<<y,y+=8,u+=L[r++]<<y,y+=8),N=w[u&j];n:for(;;){if(A=N>>>24,u>>>=A,y-=A,A=N>>>16&255,A&16){if(C=N&65535,A&=15,y<A&&(u+=L[r++]<<y,y+=8,y<A&&(u+=L[r++]<<y,y+=8)),C+=u&(1<<A)-1,C>c){n.msg="invalid distance too far back",_.mode=Lx;break e}if(u>>>=A,y-=A,A=i-o,C>A){if(A=C-A,A>h&&_.sane){n.msg="invalid distance too far back",_.mode=Lx;break e}if(F=0,O=m,p===0){if(F+=d-A,A<E){E-=A;do W[i++]=m[F++];while(--A);F=i-C,O=W}}else if(p<A){if(F+=d+p-A,A-=p,A<E){E-=A;do W[i++]=m[F++];while(--A);if(F=0,p<E){A=p,E-=A;do W[i++]=m[F++];while(--A);F=i-C,O=W}}}else if(F+=p-A,A<E){E-=A;do W[i++]=m[F++];while(--A);F=i-C,O=W}for(;E>2;)W[i++]=O[F++],W[i++]=O[F++],W[i++]=O[F++],E-=3;E&&(W[i++]=O[F++],E>1&&(W[i++]=O[F++]))}else{F=i-C;do W[i++]=W[F++],W[i++]=W[F++],W[i++]=W[F++],E-=3;while(E>2);E&&(W[i++]=W[F++],E>1&&(W[i++]=W[F++]))}}else if(A&64){n.msg="invalid distance code",_.mode=Lx;break e}else{N=w[(N&65535)+(u&(1<<A)-1)];continue n}break}}else if(A&64)if(A&32){_.mode=qae;break e}else{n.msg="invalid literal/length code",_.mode=Lx;break e}else{N=g[(N&65535)+(u&(1<<A)-1)];continue t}break}}while(r<a&&i<l);E=y>>3,r-=E,y-=E<<3,u&=(1<<y)-1,n.next_in=r,n.next_out=i,n.avail_in=r<a?5+(a-r):5-(r-a),n.avail_out=i<l?257+(l-i):257-(i-l),_.hold=u,_.bits=y};const lu=15,l3=852,c3=592,d3=0,Sw=1,h3=2,$ae=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Wae=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,199,75]),Gae=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Kae=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Qae=(t,n,s,r,a,i,o,l)=>{const c=l.bits;let d=0,h=0,p=0,m=0,u=0,y=0,g=0,w=0,b=0,j=0,N,A,E,C,F,O=null,L;const W=new Uint16Array(lu+1),_=new Uint16Array(lu+1);let P=null,K,q,ae;for(d=0;d<=lu;d++)W[d]=0;for(h=0;h<r;h++)W[n[s+h]]++;for(u=c,m=lu;m>=1&&W[m]===0;m--);if(u>m&&(u=m),m===0)return a[i++]=1<<24|64<<16|0,a[i++]=1<<24|64<<16|0,l.bits=1,0;for(p=1;p<m&&W[p]===0;p++);for(u<p&&(u=p),w=1,d=1;d<=lu;d++)if(w<<=1,w-=W[d],w<0)return-1;if(w>0&&(t===d3||m!==1))return-1;for(_[1]=0,d=1;d<lu;d++)_[d+1]=_[d]+W[d];for(h=0;h<r;h++)n[s+h]!==0&&(o[_[n[s+h]]++]=h);if(t===d3?(O=P=o,L=20):t===Sw?(O=$ae,P=Wae,L=257):(O=Gae,P=Kae,L=0),j=0,h=0,d=p,F=i,y=u,g=0,E=-1,b=1<<u,C=b-1,t===Sw&&b>l3||t===h3&&b>c3)return 1;for(;;){K=d-g,o[h]+1<L?(q=0,ae=o[h]):o[h]>=L?(q=P[o[h]-L],ae=O[o[h]-L]):(q=96,ae=0),N=1<<d-g,A=1<<y,p=A;do A-=N,a[F+(j>>g)+A]=K<<24|q<<16|ae|0;while(A!==0);for(N=1<<d-1;j&N;)N>>=1;if(N!==0?(j&=N-1,j+=N):j=0,h++,--W[d]===0){if(d===m)break;d=n[s+o[h]]}if(d>u&&(j&C)!==E){for(g===0&&(g=u),F+=p,y=d-g,w=1<<y;y+g<m&&(w-=W[y+g],!(w<=0));)y++,w<<=1;if(b+=1<<y,t===Sw&&b>l3||t===h3&&b>c3)return 1;E=j&C,a[E]=u<<24|y<<16|F-i|0}}return j!==0&&(a[F+j]=d-g<<24|64<<16|0),l.bits=u,0};var cf=Qae;const Yae=0,f8=1,g8=2,{Z_FINISH:u3,Z_BLOCK:Jae,Z_TREES:Mx,Z_OK:jh,Z_STREAM_END:Xae,Z_NEED_DICT:Zae,Z_STREAM_ERROR:Qi,Z_DATA_ERROR:x8,Z_MEM_ERROR:y8,Z_BUF_ER
vendor: 7,279 bytes, line 2649
2649ROR:eie,Z_DEFLATED:p3}=gg,jb=16180,m3=16181,f3=16182,g3=16183,x3=16184,y3=16185,b3=16186,v3=16187,w3=16188,j3=16189,g0=16190,yl=16191,Aw=16192,k3=16193,Dw=16194,N3=16195,S3=16196,A3=16197,D3=16198,Rx=16199,Ox=16200,I3=16201,C3=16202,_3=16203,T3=16204,P3=16205,Iw=16206,E3=16207,L3=16208,Es=16209,b8=16210,v8=16211,tie=852,nie=592,sie=15,rie=sie,M3=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function aie(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Ph=t=>{if(!t)return 1;const n=t.state;return!n||n.strm!==t||n.mode<jb||n.mode>v8?1:0},w8=t=>{if(Ph(t))return Qi;const n=t.state;return t.total_in=t.total_out=n.total=0,t.msg="",n.wrap&&(t.adler=n.wrap&1),n.mode=jb,n.last=0,n.havedict=0,n.flags=-1,n.dmax=32768,n.head=null,n.hold=0,n.bits=0,n.lencode=n.lendyn=new Int32Array(tie),n.distcode=n.distdyn=new Int32Array(nie),n.sane=1,n.back=-1,jh},j8=t=>{if(Ph(t))return Qi;const n=t.state;return n.wsize=0,n.whave=0,n.wnext=0,w8(t)},k8=(t,n)=>{let s;if(Ph(t))return Qi;const r=t.state;return n<0?(s=0,n=-n):(s=(n>>4)+5,n<48&&(n&=15)),n&&(n<8||n>15)?Qi:(r.window!==null&&r.wbits!==n&&(r.window=null),r.wrap=s,r.wbits=n,j8(t))},N8=(t,n)=>{if(!t)return Qi;const s=new aie;t.state=s,s.strm=t,s.window=null,s.mode=jb;const r=k8(t,n);return r!==jh&&(t.state=null),r},iie=t=>N8(t,rie);let R3=!0,Cw,_w;const oie=t=>{if(R3){Cw=new Int32Array(512),_w=new Int32Array(32);let n=0;for(;n<144;)t.lens[n++]=8;for(;n<256;)t.lens[n++]=9;for(;n<280;)t.lens[n++]=7;for(;n<288;)t.lens[n++]=8;for(cf(f8,t.lens,0,288,Cw,0,t.work,{bits:9}),n=0;n<32;)t.lens[n++]=5;cf(g8,t.lens,0,32,_w,0,t.work,{bits:5}),R3=!1}t.lencode=Cw,t.lenbits=9,t.distcode=_w,t.distbits=5},S8=(t,n,s,r)=>{let a;const i=t.state;return i.window===null&&(i.window=new Uint8Array(1<<i.wbits)),i.wsize===0&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0),r>=i.wsize?(i.window.set(n.subarray(s-i.wsize,s),0),i.wnext=0,i.whave=i.wsize):(a=i.wsize-i.wnext,a>r&&(a=r),i.window.set(n.subarray(s-r,s-r+a),i.wnext),r-=a,r?(i.window.set(n.subarray(s-r,s),0),i.wnext=r,i.whave=i.wsize):(i.wnext+=a,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=a))),0},lie=(t,n)=>{let s,r,a,i,o,l,c,d,h,p,m,u,y,g,w=0,b,j,N,A,E,C,F,O;const L=new Uint8Array(4);let W,_;const P=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ph(t)||!t.output||!t.input&&t.avail_in!==0)return Qi;s=t.state,s.mode===yl&&(s.mode=Aw),o=t.next_out,a=t.output,c=t.avail_out,i=t.next_in,r=t.input,l=t.avail_in,d=s.hold,h=s.bits,p=l,m=c,O=jh;e:for(;;)switch(s.mode){case jb:if(s.wrap===0){s.mode=Aw;break}for(;h<16;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}if(s.wrap&2&&d===35615){s.wbits===0&&(s.wbits=15),s.check=0,L[0]=d&255,L[1]=d>>>8&255,s.check=Nr(s.check,L,2,0),d=0,h=0,s.mode=m3;break}if(s.head&&(s.head.done=!1),!(s.wrap&1)||(((d&255)<<8)+(d>>8))%31){t.msg="incorrect header check",s.mode=Es;break}if((d&15)!==p3){t.msg="unknown compression method",s.mode=Es;break}if(d>>>=4,h-=4,F=(d&15)+8,s.wbits===0&&(s.wbits=F),F>15||F>s.wbits){t.msg="invalid window size",s.mode=Es;break}s.dmax=1<<s.wbits,s.flags=0,t.adler=s.check=1,s.mode=d&512?j3:yl,d=0,h=0;break;case m3:for(;h<16;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}if(s.flags=d,(s.flags&255)!==p3){t.msg="unknown compression method",s.mode=Es;break}if(s.flags&57344){t.msg="unknown header flags set",s.mode=Es;break}s.head&&(s.head.text=d>>8&1),s.flags&512&&s.wrap&4&&(L[0]=d&255,L[1]=d>>>8&255,s.check=Nr(s.check,L,2,0)),d=0,h=0,s.mode=f3;case f3:for(;h<32;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}s.head&&(s.head.time=d),s.flags&512&&s.wrap&4&&(L[0]=d&255,L[1]=d>>>8&255,L[2]=d>>>16&255,L[3]=d>>>24&255,s.check=Nr(s.check,L,4,0)),d=0,h=0,s.mode=g3;case g3:for(;h<16;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}s.head&&(s.head.xflags=d&255,s.head.os=d>>8),s.flags&512&&s.wrap&4&&(L[0]=d&255,L[1]=d>>>8&255,s.check=Nr(s.check,L,2,0)),d=0,h=0,s.mode=x3;case x3:if(s.flags&1024){for(;h<16;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}s.length=d,s.head&&(s.head.extra_len=d),s.flags&512&&s.wrap&4&&(L[0]=d&255,L[1]=d>>>8&255,s.check=Nr(s.check,L,2,0)),d=0,h=0}else s.head&&(s.head.extra=null);s.mode=y3;case y3:if(s.flags&1024&&(u=s.length,u>l&&(u=l),u&&(s.head&&(F=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Uint8Array(s.head.extra_len)),s.head.extra.set(r.subarray(i,i+u),F)),s.flags&512&&s.wrap&4&&(s.check=Nr(s.check,r,u,i)),l-=u,i+=u,s.length-=u),s.length))break e;s.length=0,s.mode=b3;case b3:if(s.flags&2048){if(l===0)break e;u=0;do F=r[i+u++],s.head&&F&&s.length<65536&&(s.head.name+=String.fromCharCode(F));while(F&&u<l);if(s.flags&512&&s.wrap&4&&(s.check=Nr(s.check,r,u,i)),l-=u,i+=u,F)break e}else s.head&&(s.head.name=null);s.length=0,s.mode=v3;case v3:if(s.flags&4096){if(l===0)break e;u=0;do F=r[i+u++],s.head&&F&&s.length<65536&&(s.head.comment+=String.fromCharCode(F));while(F&&u<l);if(s.flags&512&&s.wrap&4&&(s.check=Nr(s.check,r,u,i)),l-=u,i+=u,F)break e}else s.head&&(s.head.comment=null);s.mode=w3;case w3:if(s.flags&512){for(;h<16;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}if(s.wrap&4&&d!==(s.check&65535)){t.msg="header crc mismatch",s.mode=Es;break}d=0,h=0}s.head&&(s.head.hcrc=s.flags>>9&1,s.head.done=!0),t.adler=s.check=0,s.mode=yl;break;case j3:for(;h<32;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}t.adler=s.check=M3(d),d=0,h=0,s.mode=g0;case g0:if(s.havedict===0)return t.next_out=o,t.avail_out=c,t.next_in=i,t.avail_in=l,s.hold=d,s.bits=h,Zae;t.adler=s.check=1,s.mode=yl;case yl:if(n===Jae||n===Mx)break e;case Aw:if(s.last){d>>>=h&7,h-=h&7,s.mode=Iw;break}for(;h<3;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}switch(s.last=d&1,d>>>=1,h-=1,d&3){case 0:s.mode=k3;break;case 1:if(oie(s),s.mode=Rx,n===Mx){d>>>=2,h-=2;break e}break;case 2:s.mode=S3;break;case 3:t.msg="invalid block type",s.mode=Es}d>>>=2,h-=2;break;case k3:for(d>>>=h&7,h-=h&7;h<32;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}if((d&65535)!==(d>>>16^65535)){t.msg="invalid stored block lengths",s.mode=Es;break}if(s.length=d&65535,d=0,h=0,s.mode=Dw,n===Mx)break e;case Dw:s.mode=N3;case N3:if(u=s.length,u){if(u>l&&(u=l),u>c&&(u=c),u===0)break e;a.set(r.subarray(i,i+u),o),l-=u,i+=u,c-=u,o+=u,s.length-=u;break}s.mode=yl;break;case S3:for(;h<14;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}if(s.nlen=(d&31)+257,d>>>=5,h-=5,s.ndist=(d&31)+1,d>>>=5,h-=5,s.ncode=(d&15)+4,d>>>=4,h-=4,s.nlen>286||s.ndist>30){t.msg="too many length or distance symbols",s.mode=Es;break}s.have=0,s.mode=A3;case A3:for(;s.have<s.ncode;){for(;h<3;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}s.lens[P[s.have++]]=d&7,d>>>=3,h-=3}for(;s.have<19;)s.lens[P[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,W={bits:s.lenbits},O=cf(Yae,s.lens,0,19,s.lencode,0,s.work,W),s.lenbits=W.bits,O){t.msg="invalid code lengths set",s.mode=Es;break}s.have=0,s.mode=D3;case D3:for(;s.have<s.nlen+s.ndist;){for(;w=s.lencode[d&(1<<s.lenbits)-1],b=w>>>24,j=w>>>
vendor: 5,025 bytes, line 2649
264916&255,N=w&65535,!(b<=h);){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}if(N<16)d>>>=b,h-=b,s.lens[s.have++]=N;else{if(N===16){for(_=b+2;h<_;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}if(d>>>=b,h-=b,s.have===0){t.msg="invalid bit length repeat",s.mode=Es;break}F=s.lens[s.have-1],u=3+(d&3),d>>>=2,h-=2}else if(N===17){for(_=b+3;h<_;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}d>>>=b,h-=b,F=0,u=3+(d&7),d>>>=3,h-=3}else{for(_=b+7;h<_;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}d>>>=b,h-=b,F=0,u=11+(d&127),d>>>=7,h-=7}if(s.have+u>s.nlen+s.ndist){t.msg="invalid bit length repeat",s.mode=Es;break}for(;u--;)s.lens[s.have++]=F}}if(s.mode===Es)break;if(s.lens[256]===0){t.msg="invalid code -- missing end-of-block",s.mode=Es;break}if(s.lenbits=9,W={bits:s.lenbits},O=cf(f8,s.lens,0,s.nlen,s.lencode,0,s.work,W),s.lenbits=W.bits,O){t.msg="invalid literal/lengths set",s.mode=Es;break}if(s.distbits=6,s.distcode=s.distdyn,W={bits:s.distbits},O=cf(g8,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,W),s.distbits=W.bits,O){t.msg="invalid distances set",s.mode=Es;break}if(s.mode=Rx,n===Mx)break e;case Rx:s.mode=Ox;case Ox:if(l>=6&&c>=258){t.next_out=o,t.avail_out=c,t.next_in=i,t.avail_in=l,s.hold=d,s.bits=h,Hae(t,m),o=t.next_out,a=t.output,c=t.avail_out,i=t.next_in,r=t.input,l=t.avail_in,d=s.hold,h=s.bits,s.mode===yl&&(s.back=-1);break}for(s.back=0;w=s.lencode[d&(1<<s.lenbits)-1],b=w>>>24,j=w>>>16&255,N=w&65535,!(b<=h);){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}if(j&&!(j&240)){for(A=b,E=j,C=N;w=s.lencode[C+((d&(1<<A+E)-1)>>A)],b=w>>>24,j=w>>>16&255,N=w&65535,!(A+b<=h);){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}d>>>=A,h-=A,s.back+=A}if(d>>>=b,h-=b,s.back+=b,s.length=N,j===0){s.mode=P3;break}if(j&32){s.back=-1,s.mode=yl;break}if(j&64){t.msg="invalid literal/length code",s.mode=Es;break}s.extra=j&15,s.mode=I3;case I3:if(s.extra){for(_=s.extra;h<_;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}s.length+=d&(1<<s.extra)-1,d>>>=s.extra,h-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=C3;case C3:for(;w=s.distcode[d&(1<<s.distbits)-1],b=w>>>24,j=w>>>16&255,N=w&65535,!(b<=h);){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}if(!(j&240)){for(A=b,E=j,C=N;w=s.distcode[C+((d&(1<<A+E)-1)>>A)],b=w>>>24,j=w>>>16&255,N=w&65535,!(A+b<=h);){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}d>>>=A,h-=A,s.back+=A}if(d>>>=b,h-=b,s.back+=b,j&64){t.msg="invalid distance code",s.mode=Es;break}s.offset=N,s.extra=j&15,s.mode=_3;case _3:if(s.extra){for(_=s.extra;h<_;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}s.offset+=d&(1<<s.extra)-1,d>>>=s.extra,h-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){t.msg="invalid distance too far back",s.mode=Es;break}s.mode=T3;case T3:if(c===0)break e;if(u=m-c,s.offset>u){if(u=s.offset-u,u>s.whave&&s.sane){t.msg="invalid distance too far back",s.mode=Es;break}u>s.wnext?(u-=s.wnext,y=s.wsize-u):y=s.wnext-u,u>s.length&&(u=s.length),g=s.window}else g=a,y=o-s.offset,u=s.length;u>c&&(u=c),c-=u,s.length-=u;do a[o++]=g[y++];while(--u);s.length===0&&(s.mode=Ox);break;case P3:if(c===0)break e;a[o++]=s.length,c--,s.mode=Ox;break;case Iw:if(s.wrap){for(;h<32;){if(l===0)break e;l--,d|=r[i++]<<h,h+=8}if(m-=c,t.total_out+=m,s.total+=m,s.wrap&4&&m&&(t.adler=s.check=s.flags?Nr(s.check,a,m,o-m):qf(s.check,a,m,o-m)),m=c,s.wrap&4&&(s.flags?d:M3(d))!==s.check){t.msg="incorrect data check",s.mode=Es;break}d=0,h=0}s.mode=E3;case E3:if(s.wrap&&s.flags){for(;h<32;){if(l===0)break e;l--,d+=r[i++]<<h,h+=8}if(s.wrap&4&&d!==(s.total&4294967295)){t.msg="incorrect length check",s.mode=Es;break}d=0,h=0}s.mode=L3;case L3:O=Xae;break e;case Es:O=x8;break e;case b8:return y8;case v8:default:return Qi}return t.next_out=o,t.avail_out=c,t.next_in=i,t.avail_in=l,s.hold=d,s.bits=h,(s.wsize||m!==t.avail_out&&s.mode<Es&&(s.mode<Iw||n!==u3))&&S8(t,t.output,t.next_out,m-t.avail_out),p-=t.avail_in,m-=t.avail_out,t.total_in+=p,t.total_out+=m,s.total+=m,s.wrap&4&&m&&(t.adler=s.check=s.flags?Nr(s.check,a,m,t.next_out-m):qf(s.check,a,m,t.next_out-m)),t.data_type=s.bits+(s.last?64:0)+(s.mode===yl?128:0)+(s.mode===Rx||s.mode===Dw?256:0),(p===0&&m===0||n===u3)&&O===jh&&(O=eie),O},cie=t=>{if(Ph(t))return Qi;let n=t.state;return n.window&&(n.window=null),t.state=null,jh},die=(t,n)=>{if(Ph(t))return Qi;const s=t.state;return s.wrap&2?(s.head=n,n.done=!1,jh):Qi},hie=(t,n)=>{const s=n.length;let r,a,i;return Ph(t)||(r=t.state,r.wrap!==0&&r.mode!==g0)?Qi:r.mode===g0&&(a=1,a=qf(a,n,s,0),a!==r.check)?x8:(i=S8(t,n,s,s),i?(r.mode=b8,y8):(r.havedict=1,jh))};var uie=j8,pie=k8,mie=w8,fie=iie,gie=N8,xie=lie,yie=cie,bie=die,vie=hie,wie="pako inflate (from Nodeca project)",Oo={inflateReset:uie,inflateReset2:pie,inflateResetKeep:mie,inflateInit:fie,inflateInit2:gie,inflate:xie,inflateEnd:yie,inflateGetHeader:bie,inflateSetDictionary:vie,inflateInfo:wie};function jie(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var kie=jie;const A8=Object.prototype.toString,{Z_NO_FLUSH:Nie,Z_FINISH:O3,Z_OK:Gu,Z_STREAM_END:Tw,Z_NEED_DICT:Pw,Z_STREAM_ERROR:Sie,Z_DATA_ERROR:F3,Z_MEM_ERROR:Aie,Z_BUF_ER
2649ROR:V3}=gg,Die={chunkSize:1024*64,windowBits:15,to:""};function yg(t){this.options=wb.assign({},Die,t||{});const n=this.options;n.raw&&n.windowBits>=0&&n.windowBits<16&&(n.windowBits=-n.windowBits,n.windowBits===0&&(n.windowBits=-15)),n.windowBits>=0&&n.windowBits<16&&!(t&&t.windowBits)&&(n.windowBits+=32),n.windowBits>15&&n.windowBits<48&&(n.windowBits&15||(n.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new p8,this.strm.avail_out=0;let s=Oo.inflateInit2(this.strm,n.windowBits);if(s!==Gu)throw new Error(jp[s]);if(this.header=new kie,Oo.inflateGetHeader(this.strm,this.header),n.dictionary&&(typeof n.dictionary=="string"?n.dictionary=$f.string2buf(n.dictionary):A8.call(n.dictionary)==="[object ArrayBuffer]"&&(n.dictionary=new Uint8Array(n.dictionary)),n.raw&&(s=Oo.inflateSetDictionary(this.strm,n.dictionary),s!==Gu)))throw new Error(jp[s])}yg.prototype.push=function(t,n){const s=this.strm,r=this.options.chunkSize,a=this.options.dictionary;let i,o,l;if(this.ended)return!1;for(n===~~n?o=n:o=n===!0?O3:Nie,A8.call(t)==="[object ArrayBuffer]"?s.input=new Uint8Array(t):s.input=t,s.next_in=0,s.avail_in=s.input.length;;){for(s.avail_out===0&&(s.output=new Uint8Array(r),s.next_out=0,s.avail_out=r),i=Oo.inflate(s,o),i===Pw&&a&&(i=Oo.inflateSetDictionary(s,a),i===Gu?i=Oo.inflate(s,o):i===F3&&(i=Pw));s.avail_in>0&&i===Tw&&s.state.wrap&2&&s.state.flags!==0&&s.input[s.next_in]!==0;)Oo.inflateReset(s),i=Oo.inflate(s,o);switch(i){case Sie:case F3:case Pw:case Aie:return this.onEnd(i),this.ended=!0,!1}if(l=s.avail_out,s.next_out&&(s.avail_out===0||i===Tw||o>0))if(this.options.to==="string"){let c=$f.utf8border(s.output,s.next_out),d=s.next_out-c,h=$f.buf2string(s.output,c);s.next_out=d,s.avail_out=r-d,d&&s.output.set(s.output.subarray(c,c+d),0),this.onData(h)}else this.onData(s.output.length===s.next_out?s.output:s.output.subarray(0,s.next_out)),s.avail_out=0,s.next_out=0;if(!((i===Gu||i===V3)&&l===0)){if(i===Tw)return i=Oo.inflateEnd(this.strm),this.onEnd(i),this.ended=!0,!0;if(s.avail_in===0){if(o===O3)return i=Oo.inflateEnd(this.strm),this.onEnd(i===Gu?V3:i),this.ended=!0,!1;break}}}return!0};yg.prototype.onData=function(t){this.chunks.push(t)};yg.prototype.onEnd=function(t){t===Gu&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=wb.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function eS(t,n){const s=new yg(n);if(s.push(t,!0),s.err)throw s.msg||jp[s.err];return s.result}function Iie(t,n){return n=n||{},n.raw=!0,eS(t,n)}var Cie=yg,_ie=eS,Tie=Iie,Pie=eS,Eie=gg,Lie={Inflate:Cie,inflate:_ie,inflateRaw:Tie,ungzip:Pie,constants:Eie};const{Inflate:Mie,inflate:Rie,inflateRaw:Lle,ungzip:Mle}=Lie;var B3=Mie,Oie=Rie;const D8=[];for(let t=0;t<256;t++){let n=t;for(let s=0;s<8;s++)n&1?n=3988292384^n>>>1:n=n>>>1;D8[t]=n}const z3=4294967295;function Fie(t,n,s){let r=t;for(let a=0;a<s;a++)r=D8[(r^n[a])&255]^r>>>8;return r}function Vie(t,n){return(Fie(z3,t,n)^z3)>>>0}function U3(t,n,s){const r=t.readUint32(),a=Vie(new Uint8Array(t.buffer,t.byteOffset+t.offset-n-4,n),n);if(a!==r)throw new Error(`CRC mismatch for chunk ${s}. Expected ${r}, found ${a}`)}function I8(t,n,s){for(let r=0;r<s;r++)n[r]=t[r]}function C8(t,n,s,r){let a=0;for(;a<r;a++)n[a]=t[a];for(;a<s;a++)n[a]=t[a]+n[a-r]&255}function _8(t,n,s,r){let a=0;if(s.length===0)for(;a<r;a++)n[a]=t[a];else for(;a<r;a++)n[a]=t[a]+s[a]&255}function T8(t,n,s,r,a){let i=0;if(s.length===0){for(;i<a;i++)n[i]=t[i];for(;i<r;i++)n[i]=t[i]+(n[i-a]>>1)&255}else{for(;i<a;i++)n[i]=t[i]+(s[i]>>1)&255;for(;i<r;i++)n[i]=t[i]+(n[i-a]+s[i]>>1)&255}}function P8(t,n,s,r,a){let i=0;if(s.length===0){for(;i<a;i++)n[i]=t[i];for(;i<r;i++)n[i]=t[i]+n[i-a]&255}else{for(;i<a;i++)n[i]=t[i]+s[i]&255;for(;i<r;i++)n[i]=t[i]+Bie(n[i-a],s[i],s[i-a])&255}}function Bie(t,n,s){const r=t+n-s,a=Math.abs(r-t),i=Math.abs(r-n),o=Math.abs(r-s);return a<=i&&a<=o?t:i<=o?n:s}function zie(t,n,s,r,a,i){switch(t){case 0:I8(n,s,a);break;case 1:C8(n,s,a,i);break;case 2:_8(n,s,r,a);break;case 3:T8(n,s,r,a,i);break;case 4:P8(n,s,r,a,i);break;default:throw new Error(`Unsupported filter: ${t}`)}}const Uie=new Uint16Array([255]),qie=new Uint8Array(Uie.buffer),Hie=qie[0]===255;function $ie(t){const{data:n,width:s,height:r,channels:a,depth:i}=t,o=[{x:0,y:0,xStep:8,yStep:8},{x:4,y:0,xStep:8,yStep:8},{x:0,y:4,xStep:4,yStep:8},{x:2,y:0,xStep:4,yStep:4},{x:0,y:2,xStep:2,yStep:4},{x:1,y:0,xStep:2,yStep:2},{x:0,y:1,xStep:1,yStep:2}],l=Math.ceil(i/8)*a,c=new Uint8Array(r*s*l);let d=0;for(let h=0;h<7;h++){const p=o[h],m=Math.ceil((s-p.x)/p.xStep),u=Math.ceil((r-p.y)/p.yStep);if(m<=0||u<=0)continue;const y=m*l,g=new Uint8Array(y);for(let w=0;w<u;w++){const b=n[d++],j=n.subarray(d,d+y);d+=y;const N=new Uint8Array(y);zie(b,j,N,g,y,l),g.set(N);for(let A=0;A<m;A++){const E=p.x+A*p.xStep,C=p.y+w*p.yStep;if(!(E>=s||C>=r))for(let F=0;F<l;F++)c[(C*s+E)*l+F]=N[A*l+F]}}}if(i===16){const h=new Uint16Array(c.buffer);if(Hie)for(let p=0;p<h.length;p++)h[p]=Wie(h[p]);return h}else return c}function Wie(t){return(t&255)<<8|t>>8&255}const Gie=new Uint16Array([255]),Kie=new Uint8Array(Gie.buffer),Qie=Kie[0]===255,Yie=new Uint8Array(0);function q3(t){const{data:n,width:s,height:r,channels:a,depth:i}=t,o=Math.ceil(i/8)*a,l=Math.ceil(i/8*a*s),c=new Uint8Array(r*l);let d=Yie,h=0,p,m;for(let u=0;u<r;u++){switch(p=n.subarray(h+1,h+1+l),m=c.subarray(u*l,(u+1)*l),n[h]){case 0:I8(p,m,l);break;case 1:C8(p,m,l,o);break;case 2:_8(p,m,d,l);break;case 3:T8(p,m,d,l,o);break;case 4:P8(p,m,d,l,o);break;default:throw new Error(`Unsupported filter: ${n[h]}`)}d=m,h+=l+1}if(i===16){const u=new Uint16Array(c.buffer);if(Qie)for(let y=0;y<u.length;y++)u[y]=Jie(u[y]);return u}else return c}function Jie(t){return(t&255)<<8|t>>8&255}const gy=Uint8Array.of(137,80,78,71,13,10,26,10);function H3(t){if(!Xie(t.readBytes(gy.length)))throw new Error("wrong PNG signature")}function Xie(t){if(t.length<gy.length)return!1;for(let n=0;n<gy.length;n++)if(t[n]!==gy[n])return!1;return!0}const Zie="tEXt",eoe=0,E8=new TextDecoder("latin1");function toe(t){if(soe(t),t.length===0||t.length>79)throw new Error("keyword length must be between 1 and 79")}const noe=/^[\u0000-\u00FF]*$/;function soe(t){if(!noe.test(t))throw new Error("invalid latin1 text")}function roe(t,n,s){const r=L8(n);t[r]=aoe(n,s-r.length-1)}function L8(t){for(t.mark();t.readByte()!==eoe;);const n=t.offset;t.reset();const s=E8.decode(t.readBytes(n-t.offset-1));return t.skip(1),toe(s),s}function aoe(t,n){return E8.decode(t.readBytes(n))}const ci={UNKNOWN:-1,GREYSCALE:0,TRUECOLOUR:2,INDEXED_COLOUR:3,GREYSCALE_ALPHA:4,TRUECOLOUR_ALPHA:6},Ew={UNKNOWN:-1,DEFLATE:0},$3={UNKNOWN:-1,ADAPTIVE:0},Lw={UNKNOWN:-1,NO_INTERLACE:0,ADAM7:1},Fx={NONE:0,BACKGROUND:1,PREVIOUS:2},Mw={SOURCE:0,OVER:1};class ioe extends WN{constructor(s,r={}){super(s);Yn(this,"_checkCrc");Yn(this,"_inflator");Yn(this,"_png");Yn(this,"_apng");Yn(this,"_end");Yn(this,"_hasPalette");Yn(this,"_palette");Yn(this,"_hasTransparency");Yn(this,"_transparency");Yn(this,"_compressionMethod");Yn(this,"_filterMethod");Yn(this,"_interlaceMethod");Yn(this,"_colorType");Yn(this,"_isAnimated");Yn(this,"_numberOfFrames");Yn(this,"_numberOfPlays");Yn(this,"_frames");Yn(this,"_writingDataChunks");const{checkCrc:a=!1}=r;this._checkCrc=a,this._inflator=new B3,this._png={width:-1,height:-1,channels:-1,data:new Uint8Array(0),depth:1,text:{}},this._apng={width:-1,height:-1,channels:-1,depth:1,numberOfFrames:1,numberOfPlays:0,text:{},frames:[]},this._end=!1,this._hasPalette=!1,this._palette=[],this._hasTransparency=!1,this._transparency=new Uint16Array(0),this._compressionMethod=Ew.UNKNOWN,this._filterMethod=$3.UNKNOWN,this._interlaceMethod=Lw.UNKNOWN,this._colorType=ci.UNKNOWN,this._isAnimated=!1,this._numberOfFrames=1,this._numberOfPlays=0,this._frames=[],this._writingDataChunks=!1,this.setBigEndian()}decode(){for(H3(this);!this._end;){const s=this.readUint32(),r=this.readChars(4);this.decodeChunk(s,r)}return this.decodeImage(),this._png}decodeApng(){for(H3(this);!this._end;){const s=this.readUint32(),r=this.readChars(4);this.decodeApngChunk(s,r)}return this.decodeApngImage(),this._apng}decodeChunk(s,r){const a=this.offset;switch(r){case"IHDR":this.decodeIHDR();break;case"PLTE":this.decodePLTE(s);break;case"IDAT":this.decodeIDAT(s);break;case"IEND":this._end=!0;break;case"tRNS":this.decodetRNS(s);break;case"iCCP":this.decodeiCCP(s);break;case Zie:roe(this._png.text,this,s);break;case"pHYs":this.decodepHYs();break;default:this.skip(s);break}if(this.offset-a!==s)throw new Error(`Length mismatch while decoding chunk ${r}`);this._checkCrc?U3(this,s+4,r):this.skip(4)}decodeApngChunk(s,r){const a=this.offset;switch(r!=="fdAT"&&r!=="IDAT"&&this._writingDataChunks&&this.pushDataToFrame(),r){case"acTL":this.decodeACTL();break;case"fcTL":this.decodeFCTL();break;case"fdAT":this.decodeFDAT(s);break;default:this.decodeChunk(s,r),this.offset=a+s;break}if(this.offset-a!==s)throw new Error(`Length mismatch while decoding chunk ${r}`);this._checkCrc?U3(this,s+4,r):this.skip(4)}decodeIHDR(){const s=this._png;s.width=this.readUint32(),s.height=this.readUint32(),s.depth=ooe(this.readUint8());const r=this.readUint8();this._colorType=r;let a;switch(r){case ci.GREYSCALE:a=1;break;case ci.TRUECOLOUR:a=3;break;case ci.INDEXED_COLOUR:a=1;break;case ci.GREYSCALE_ALPHA:a=2;break;case ci.TRUECOLOUR_ALPHA:a=4;break;case ci.UNKNOWN:default:throw new Error(`Unknown color type: ${r}`)}if(this._png.channels=a,this._compressionMethod=this.readUint8(),this._compressionMethod!==Ew.DEFLATE)throw new Error(`Unsupported compression method: ${this._compressionMethod}`);this._filterMethod=this.readUint8(),this._interlaceMethod=this.readUint8()}decodeACTL(){this._numberOfFrames=this.readUint32(),this._numberOfPlays=this.readUint32(),this._isAnimated=!0}decodeFCTL(){const s={sequenceNumber:this.readUint32(),width:this.readUint32(),height:this.readUint32(),xOffset:this.readUint32(),yOffset:this.readUint32(),delayNumber:this.readUint16(),delayDenominator:this.readUint16(),disposeOp:this.readUint8(),blendOp:this.readUint8(),data:new Uint8Array(0)};this._frames.push(s)}
2649decodePLTE(s){if(s%3!==0)throw new RangeError(`PLTE field length must be a multiple of 3. Got ${s}`);const r=s/3;this._hasPalette=!0;const a=[];this._palette=a;for(let i=0;i<r;i++)a.push([this.readUint8(),this.readUint8(),this.readUint8()])}decodeIDAT(s){this._writingDataChunks=!0;const r=s,a=this.offset+this.byteOffset;if(this._inflator.push(new Uint8Array(this.buffer,a,r)),this._inflator.err)throw new Error(`Error while decompressing the data: ${this._inflator.err}`);this.skip(s)}decodeFDAT(s){this._writingDataChunks=!0;let r=s,a=this.offset+this.byteOffset;if(a+=4,r-=4,this._inflator.push(new Uint8Array(this.buffer,a,r)),this._inflator.err)throw new Error(`Error while decompressing the data: ${this._inflator.err}`);this.skip(s)}decodetRNS(s){switch(this._colorType){case ci.GREYSCALE:case ci.TRUECOLOUR:{if(s%2!==0)throw new RangeError(`tRNS chunk length must be a multiple of 2. Got ${s}`);if(s/2>this._png.width*this._png.height)throw new Error(`tRNS chunk contains more alpha values than there are pixels (${s/2} vs ${this._png.width*this._png.height})`);this._hasTransparency=!0,this._transparency=new Uint16Array(s/2);for(let r=0;r<s/2;r++)this._transparency[r]=this.readUint16();break}case ci.INDEXED_COLOUR:{if(s>this._palette.length)throw new Error(`tRNS chunk contains more alph
2649a values than there are palette colors (${s} vs ${this._palette.length})`);let r=0;for(;r<s;r++){const a=this.readByte();this._palette[r].push(a)}for(;r<this._palette.length;r++)this._palette[r].push(255);break}case ci.UNKNOWN:case ci.GREYSCALE_ALPHA:case ci.TRUECOLOUR_ALPHA:default:throw new Error(`tRNS chunk is not supported for color type ${this._colorType}`)}}decodeiCCP(s){const r=L8(this),a=this.readUint8();if(a!==Ew.DEFLATE)throw new Error(`Unsupported iCCP compression method: ${a}`);const i=this.readBytes(s-r.length-2);this._png.iccEmbeddedProfile={name:r,profile:Oie(i)}}decodepHYs(){const s=this.readUint32(),r=this.readUint32(),a=this.readByte();this._png.resolution={x:s,y:r,unit:a}}decodeApngImage(){this._apng.width=this._png.width,this._apng.height=this._png.height,this._apng.channels=this._png.channels,this._apng.depth=this._png.depth,this._apng.numberOfFrames=this._numberOfFrames,this._apng.numberOfPlays=this._numberOfPlays,this._apng.text=this._png.text,this._apng.resolution=this._png.resolution;for(let s=0;s<this._numberOfFrames;s++){const r={sequenceNumber:this._frames[s].sequenceNumber,delayNumber:this._frames[s].delayNumber,delayDenominator:this._frames[s].delayDenominator,data:this._apng.depth===8?new Uint8Array(this._apng.width*this._apng.height*this._apng.channels):new Uint16Array(this._apng.width*this._apng.height*this._apng.channels)},a=this._frames.at(s);if(a){if(a.data=q3({data:a.data,width:a.width,height:a.height,channels:this._apng.channels,depth:this._apng.depth}),this._hasPalette&&(this._apng.palette=this._palette),this._hasTransparency&&(this._apng.transparency=this._transparency),s===0||a.xOffset===0&&a.yOffset===0&&a.width===this._png.width&&a.height===this._png.height)r.data=a.data;else{const i=this._apng.frames.at(s-1);this.disposeFrame(a,i,r),this.addFrameDataToCanvas(r,a)}this._apng.frames.push(r)}}return this._apng}disposeFrame(s,r,a){switch(s.disposeOp){case Fx.NONE:break;case Fx.BACKGROUND:for(let i=0;i<this._png.height;i++)for(let o=0;o<this._png.width;o++){const l=(i*s.width+o)*this._png.channels;for(let c=0;c<this._png.channels;c++)a.data[l+c]=0}break;case Fx.PREVIOUS:a.data.set(r.data);break;default:throw new Error("Unknown disposeOp")}}addFrameDataToCanvas(s,r){const a=1<<this._png.depth,i=(o,l)=>{const c=((o+r.yOffset)*this._png.width+r.xOffset+l)*this._png.channels,d=(o*r.width+l)*this._png.channels;return{index:c,frameIndex:d}};switch(r.blendOp){case Mw.SOURCE:for(let o=0;o<r.height;o++)for(let l=0;l<r.width;l++){const{index:c,frameIndex:d}=i(o,l);for(let h=0;h<this._png.channels;h++)s.data[c+h]=r.data[d+h]}break;case Mw.OVER:for(let o=0;o<r.height;o++)for(let l=0;l<r.width;l++){const{index:c,frameIndex:d}=i(o,l);for(let h=0;h<this._png.channels;h++){const p=r.data[d+this._png.channels-1]/a,m=h%(this._png.channels-1)===0?1:r.data[d+h],u=Math.floor(p*m+(1-p)*s.data[c+h]);s.data[c+h]+=u}}break;default:throw new Error("Unknown blendOp")}}decodeImage(){var r;if(this._inflator.err)throw new Error(`Error while decompressing the data: ${this._inflator.err}`);const s=this._isAnimated?((r=this._frames)==null?void 0:r.at(0)).data:this._inflator.result;if(this._filterMethod!==$3.ADAPTIVE)throw new Error(`Filter method ${this._filterMethod} not supported`);if(this._interlaceMethod===Lw.NO_INTERLACE)this._png.data=q3({data:s,width:this._png.width,height:this._png.height,channels:this._png.channels,depth:this._png.depth});else if(this._interlaceMethod===Lw.ADAM7)this._png.data=$ie({data:s,width:this._png.width,height:this._png.height,channels:this._png.channels,depth:this._png.depth});else throw new Error(`Interlace method ${this._interlaceMethod} not supported`);this._hasPalette&&(this._png.palette=this._palette),this._hasTransparency&&(this._png.transparency=this._transparency)}pushDataToFrame(){const s=this._inflator.result,r=this._frames.at(-1);r?r.data=s:this._frames.push({sequenceNumber:0,width:this._png.width,height:this._png.height,xOffset:0,yOffset:0,delayNumber:0,delayDenominator:0,disposeOp:Fx.NONE,blendOp:Mw.SOURCE,data:s}),this._inflator=new B3,this._writingDataChunks=!1}}function ooe(t){if(t!==1&&t!==2&&t!==4&&t!==8&&t!==16)throw new Error(`invalid bit depth: ${t}`);return t}var W3;(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.METRE=1]="METRE"})(W3||(W3={}));function loe(t,n){return new ioe(t,n).decode()}var en=function(){return typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:this}();function Rw(){en.console&&typeof en.console.log=="function"&&en.console.log.apply(en.console,arguments)}var ls={log:Rw,warn:function(t){en.console&&(typeof en.console.warn=="function"?en.console.warn.apply(en.console,arguments):Rw.call(null,arguments))},error:function(t){en.console&&(typeof en.console.error=="function"?en.console.error.apply(en.console,arguments):Rw(t))}};function Ow(t,n,s){var r=new XMLHttpRequest;r.open("GET",t),r.responseType="blob",r.onload=function(){Rd(r.response,n,s)},r.onerror=function(){ls.error("could not download file")},r.send()}function G3(t){var n=new XMLHttpRequest;n.open("HEAD",t,!1);try{n.send()}catch{}return n.status>=200&&n.status<=299}function Vx(t){try{t.dispatchEvent(new MouseEvent("click"))}catch{var n=document.createEvent("MouseEvents");
2649n.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(n)}}var Rd=en.saveAs||((typeof window>"u"?"undefined":Jn(window))!=="object"||window!==en?function(){}:typeof HTMLAnchorElement<"u"&&"download"in HTMLAnchorElement.prototype?function(t,n,s){var r=en.URL||en.webkitURL,a=document.createElement("a");n=n||t.name||"download",a.download=n,a.rel="noopener",typeof t=="string"?(a.href=t,a.origin!==location.origin?G3(a.href)?Ow(t,n,s):Vx(a,a.target="_blank"):Vx(a)):(a.href=r.createObjectURL(t),setTimeout(function(){r.revokeObjectURL(a.href)},4e4),setTimeout(function(){Vx(a)},0))}:"msSaveOrOpenBlob"in navigator?function(t,n,s){if(n=n||t.name||"download",typeof t=="string")if(G3(t))Ow(t,n,s);else{var r=document.createElement("a");r.href=t,r.target="_blank",setTimeout(function(){Vx(r)})}else navigator.msSaveOrOpenBlob(function(a,i){return i===void 0?i={autoBom:!1}:Jn(i)!=="object"&&(ls.warn("Deprecated: Expected third argument to be a object"),i={autoBom:!i}),i.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\uFEFF",a],{type:a.type}):a}(t,s),n)}:function(t,n,s,r){if((r=r||open("","_blank"))&&(r.document.title=r.document.body.innerText="downloading..."),typeof t=="string")return Ow(t,n,s);var a=t.type==="application/octet-stream",i=/constructor/i.test(en.HTMLElement)||en.safari,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||a&&i)&&(typeof FileReader>"u"?"undefined":Jn(FileReader))==="object"){var l=new FileReader;l.onloadend=function(){var h=l.result;h=o?h:h.replace(/^data:[^;]*;/,"data:attachment/file;"),r?r.location.href=h:location=h,r=null},l.readAsDataURL(t)}else{var c=en.URL||en.webkitURL,d=c.createObjectURL(t);r?r.location=d:location.href=d,r=null,setTimeout(function(){c.revokeObjectURL(d)},4e4)}});/** 2650 * A class to parse color values 2651 * @author Stoyan Stefanov <[email protected]> 2652 * {@link http://www.phpied.com/rgb-color-parser-in-javascript/} 2653 * @license Use it if you like it 2654 */function M8(t){var n;t=t||"",this.ok=!1,t.charAt(0)=="#"&&(t=t.substr(1,6)),t={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee9
26540",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"}[t=(t=t.replace(/ /g,"")).toLowerCase()]||t;for(var s=[{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(l){return[parseInt(l[1]),parseInt(l[2]),parseInt(l[3])]}},{re:/^(\w{2})(\w{2})(\w{2})$/,example:["#00ff00","336699"],process:function(l){return[parseInt(l[1],16),parseInt(l[2],16),parseInt(l[3],16)]}},{re:/^(\w{1})(\w{1})(\w{1})$/,example:["#fb0","f0f"],process:function(l){return[parseInt(l[1]+l[1],16),parseInt(l[2]+l[2],16),parseInt(l[3]+l[3],16)]}}],r=0;r<s.length;r++){var a=s[r].re,i=s[r].process,o=a.exec(t);o&&(n=i(o),this.r=n[0],this.g=n[1],this.b=n[2],this.ok=!0)}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"},this.toHex=function(){var l=this.r.toString(16),c=this.g.toString(16),d=this.b.toString(16);return l.length==1&&(l="0"+l),c.length==1&&(c="0"+c),d.length==1&&(d="0"+d),"#"+l+c+d}}var xy=en.atob.bind(en),K3=en.btoa.bind(en);/** 2655 * @license 2656 * Joseph Myers does not specify a particular license for his work. 2657 * 2658 * Author: Joseph Myers 2659 * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js 2660 * 2661 * Modified by: Owen Leong 2662 */function Fw(t,n){var s=t[0],r=t[1],a=t[2],i=t[3];s=ea(s,r,a,i,n[0],7,-680876936),i=ea(i,s,r,a,n[1],12,-389564586),a=ea(a,i,s,r,n[2],17,606105819),r=ea(r,a,i,s,n[3],22,-1044525330),s=ea(s,r,a,i,n[4],7,-176418897),i=ea(i,s,r,a,n[5],12,1200080426),a=ea(a,i,s,r,n[6],17,-1473231341),r=ea(r,a,i,s,n[7],22,-45705983),s=ea(s,r,a,i,n[8],7,1770035416),i=ea(i,s,r,a,n[9],12,-1958414417),a=ea(a,i,s,r,n[10],17,-42063),r=ea(r,a,i,s,n[11],22,-1990404162),s=ea(s,r,a,i,n[12],7,1804603682),i=ea(i,s,r,a,n[13],12,-40341101),a=ea(a,i,s,r,n[14],17,-1502002290),s=ta(s,r=ea(r,a,i,s,n[15],22,1236535329),a,i,n[1],5,-165796510),i=ta(i,s,r,a,n[6],9,-1069501632),a=ta(a,i,s,r,n[11],14,643717713),r=ta(r,a,i,s,n[0],20,-373897302),s=ta(s,r,a,i,n[5],5,-701558691),i=ta(i,s,r,a,n[10],9,38016083),a=ta(a,i,s,r,n[15],14,-660478335),r=ta(r,a,i,s,n[4],20,-405537848),s=ta(s,r,a,i,n[9],5,568446438),i=ta(i,s,r,a,n[14],9,-1019803690),a=ta(a,i,s,r,n[3],14,-187363961),r=ta(r,a,i,s,n[8],20,1163531501),s=ta(s,r,a,i,n[13],5,-1444681467),i=ta(i,s,r,a,n[2],9,-51403784),a=ta(a,i,s,r,n[7],14,1735328473),s=na(s,r=ta(r,a,i,s,n[12],20,-1926607734),a,i,n[5],4,-378558),i=na(i,s,r,a,n[8],11,-2022574463),a=na(a,i,s,r,n[11],16,1839030562),r=na(r,a,i,s,n[14],23,-35309556),s=na(s,r,a,i,n[1],4,-1530992060),i=na(i,s,r,a,n[4],11,1272893353),a=na(a,i,s,r,n[7],16,-155497632),r=na(r,a,i,s,n[10],23,-1094730640),s=na(s,r,a,i,n[13],4,681279174),i=na(i,s,r,a,n[0],11,-358537222),a=na(a,i,s,r,n[3],16,-722521979),r=na(r,a,i,s,n[6],23,76029189),s=na(s,r,a,i,n[9],4,-640364487),i=na(i,s,r,a,n[12],11,-421815835),a=na(a,i,s,r,n[15],16,530742520),s=sa(s,r=na(r,a,i,s,n[2],23,-995338651),a,i,n[0],6,-198630844),i=sa(i,s,r,a,n[7],10,1126891415),a=sa(a,i,s,r,n[14],15,-1416354905),r=sa(r,a,i,s,n[5],21,-57434055),s=sa(s,r,a,i,n[12],6,1700485571),i=sa(i,s,r,a,n[3],10,-1894986606),a=sa(a,i,s,r,n[10],15,-1051523),r=sa(r,a,i,s,n[1],21,-2054922799),s=sa(s,r,a,i,n[8],6,1873313359),i=sa(i,s,r,a,n[15],10,-30611744),a=sa(a,i,s,r,n[6],15,-1560198380),r=sa(r,a,i,s,n[13],21,1309151649),s=sa(s,r,a,i,n[4],6,-145523070),i=sa(i,s,r,a,n[11],10,-1120210379),a=sa(a,i,s,r,n[2],15,718787259),r=sa(r,a,i,s,n[9],21,-343485551),t[0]=Bc(s,t[0]),t[1]=Bc(r,t[1]),t[2]=Bc(a,t[2]),t[3]=Bc(i,t[3])}function kb(t,n,s,r,a,i){return n=Bc(Bc(n,t),Bc(r,i)),Bc(n<<a|n>>>32-a,s)}function ea(t,n,s,r,a,i,o){return kb(n&s|~n&r,t,n,a,i,o)}function ta(t,n,s,r,a,i,o){return kb(n&r|s&~r,t,n,a,i,o)}function na(t,n,s,r,a,i,o){return kb(n^s^r,t,n,a,i,o)}function sa(t,n,s,r,a,i,o){return kb(s^(n|~r),t,n,a,i,o)}function R8(t){var n,s=t.length,r=[1732584193,-271733879,-1732584194,271733878];for(n=64;n<=t.length;n+=64)Fw(r,coe(t.substring(n-64,n)));t=t.substring(n-64);var a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(n=0;n<t.length;n++)a[n>>2]|=t.charCodeAt(n)<<(n%4<<3);if(a[n>>2]|=128<<(n%4<<3),n>55)for(Fw(r,a),n=0;n<16;n++)a[n]=0;return a[14]=8*s,Fw(r,a),r}function coe(t){var n,s=[];for(n=0;n<64;n+=4)s[n>>2]=t.charCodeAt(n)+(t.charCodeAt(n+1)<<8)+(t.charCodeAt(n+2)<<16)+(t.charCodeAt(n+3)<<24);return s}var Q3="0123456789abcdef".split("");function doe(t){for(var n="",s=0;s<4;s++)n+=Q3[t>>8*s+4&15]+Q3[t>>8*s&15];return n}function hoe(t){return String.fromCharCode(255&t,(65280&t)>>8,(16711680&t)>>16,(4278190080&t)>>24)}function jk(t){return R8(t).map(hoe).join("")}var uoe=function(t){for(var n=0;n<t.length;n++)t[n]=doe(t[n]);return t.join("")}(R8("hello"))!="5d41402abc4b2a76b9719d911017c592";function Bc(t,n){if(uoe){var s=(65535&t)+(65535&n);return(t>>16)+(n>>16)+(s>>16)<<16|65535&s}return t+n&4294967295}/** 2663 * @license 2664 * FPDF is released under a permissive license: there is no usage restriction. 2665 * You may embed it freely in your application (commercial or not), with or 2666 * without modifications. 2667 * 2668 * Reference: http://www.fpdf.org/en/script/script37.php 2669 */function kk(t,n){var s,r,a,i;if(t!==s){for(var o=(a=t,i=1+(256/t.length|0),new Array(i+1).join(a)),l=[],c=0;c<256;c++)l[c]=c;var d=0;for(c=0;c<256;c++){var h=l[c];
2669d=(d+h+o.charCodeAt(c))%256,l[c]=l[d],l[d]=h}s=t,r=l}else l=r;var p=n.length,m=0,u=0,y="";for(c=0;c<p;c++)u=(u+(h=l[m=(m+1)%256]))%256,l[m]=l[u],l[u]=h,o=l[(l[m]+l[u])%256],y+=String.fromCharCode(n.charCodeAt(c)^o);return y}/** 2670 * @license 2671 * Licensed under the MIT License. 2672 * http://opensource.org/licenses/mit-license 2673 * Author: Owen Leong (@owenl131) 2674 * Date: 15 Oct 2020 2675 * References: 2676 * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt 2677 * https://github.com/foliojs/pdfkit/blob/master/lib/security.js 2678 * http://www.fpdf.org/en/script/script37.php 2679 */var Y3={print:4,modify:8,copy:16,"annot-forms":32};function mu(t,n,s,r){this.v=1,this.r=2;var a=192;t.forEach(function(l){if(Y3.perm!==void 0)throw new Error("Invalid permission: "+l);a+=Y3[l]}),this.padding="(¿N^NuÂAd\0NVÿú�\b..\0¶Ãh>Â/\f©þdSiz";var i=(n+this.padding).substr(0,32),o=(s+this.padding).substr(0,32);this.O=this.processOwnerPassword(i,o),this.P=-(1+(255^a)),this.encryptionKey=jk(i+this.O+this.lsbFirstWord(this.P)+this.hexToBytes(r)).substr(0,5),this.U=kk(this.encryptionKey,this.padding)}function fu(t){if(/[^\u0000-\u00ff]/.test(t))throw new Error("Invalid PDF Name Object: "+t+", Only accept ASCII characters.");for(var n="",s=t.length,r=0;r<s;r++){var a=t.charCodeAt(r);n+=a<33||a===35||a===37||a===40||a===41||a===47||a===60||a===62||a===91||a===93||a===123||a===125||a>126?"#"+("0"+a.toString(16)).slice(-2):t[r]}return n}function J3(t){if(Jn(t)!=="object")throw new Error("Invalid Context passed to initialize PubSub (jsPDF-module)");var n={};this.subscribe=function(s,r,a){if(a=a||!1,typeof s!="string"||typeof r!="function"||typeof a!="boolean")throw new Error("Invalid arguments passed to PubSub.subscribe (jsPDF-module)");n.hasOwnProperty(s)||(n[s]={});var i=Math.random().toString(35);return n[s][i]=[r,!!a],i},this.unsubscribe=function(s){for(var r in n)if(n[r][s])return delete n[r][s],Object.keys(n[r]).length===0&&delete n[r],!0;return!1},this.publish=function(s){if(n.hasOwnProperty(s)){var r=Array.prototype.slice.call(arguments,1),a=[];for(var i in n[s]){var o=n[s][i];try{o[0].apply(t,r)}catch(l){en.console&&ls.error("jsPDF PubSub Error",l.message,l)}o[1]&&a.push(i)}a.length&&a.forEach(this.unsubscribe)}},this.getTopics=function(){return n}}function x0(t){if(!(this instanceof x0))return new x0(t);var n="opacity,stroke-opacity".split(",");for(var s in t)t.hasOwnProperty(s)&&n.indexOf(s)>=0&&(this[s]=t[s]);this.id="",this.objectNumber=-1}function O8(t,n){this.gState=t,this.matrix=n,this.id="",this.objectNumber=-1}function Bd(t,n,s,r,a){if(!(this instanceof Bd))return new Bd(t,n,s,r,a);this.type=t==="axial"?2:3,this.coords=n,this.colors=s,O8.call(this,r,a)}function _u(t,n,s,r,a){if(!(this instanceof _u))return new _u(t,n,s,r,a);this.boundingBox=t,this.xStep=n,this.yStep=s,this.stream="",this.cloneIndex=0,O8.call(this,r,a)}function zt(t){var n,s=typeof arguments[0]=="string"?arguments[0]:"p",r=arguments[1],a=arguments[2],i=arguments[3],o=[],l=1,c=16,d="S",h=null;Jn(t=t||{})==="object"&&(s=t.orientation,r=t.unit||r,a=t.format||a,i=t.compress||t.compressPdf||i,(h=t.encryption||null)!==null&&(h.userPassword=h.userPassword||"",h.ownerPassword=h.ownerPassword||"",h.userPermissions=h.userPermissions||[]),l=typeof t.userUnit=="number"?Math.abs(t.userUnit):1,t.precision!==void 0&&(n=t.precision),t.floatPrecision!==void 0&&(c=t.floatPrecision),d=t.defaultPathOperation||"S"),o=t.filters||(i===!0?["FlateEncode"]:o),r=r||"mm",s=(""+(s||"P")).toLowerCase();var p=t.putOnlyUsedFonts||!1,m={},u={internal:{},__private__:{}};u.__private__.PubSub=J3;var y="1.3",g=u.__private__.getPdfVersion=function(){return y};u.__private__.setPdfVersion=function(v){y=v};var w={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],"government-letter":[576,756],legal:[612,1008],"junior-legal":[576,360],ledger:[1224,792],tabloid:[792,1224],"credit-card":[153,243]};u.__private__.getPageFormats=function(){return w};var b=u.__private__.getPageFormat=function(v){return w[v]};a=a||"a4";var j="compat",N="advanced",A=j;function E(){this.saveGraphicsState(),Y(new Bt(at,0,0,-at,0,gd()*at).toString()+" cm"),this.setFontSize(this.getFontSize()/at),d="n",A=N}function C(){this.restoreGraphicsState(),d="S",A=j}var F=u.__private__.combineFontStyleAndFontWeight=function(v,M){if(v=="bold"&&M=="normal"||v=="bold"&&M==400||v=="normal"&&M=="italic"||v=="bold"&&M=="italic")throw new Error("Invalid Combination of fontweight and fontstyle");return M&&(v=M==400||M==="normal"?v==="italic"?"italic":"normal":M!=700&&M!=="bold"||v!=="normal"?(M==700?"bold":M)+""+v:"bold"),v};u.advancedAPI=function(v){var M=A===j;return M&&E.call(this),typeof v!="function"||(v(this),M&&C.call(this)),this},u.compatAPI=function(v){var M=A===N;return M&&C.call(this),typeof v!="function"||(v(this),M&&E.call(this)),this},u.isAdvancedAPI=function(){return A===N};var O,L=function(v){if(A!==N)throw new Error(v+" is only available in 'advanced' API mode. You need to call advancedAPI() first.")},W=u.roundToPrecision=u.__private__.roundToPrecision=function(v,M){var Z=n||M;if(isNaN(v)||isNaN(Z))throw new Error("Invalid argument passed to
2679jsPDF.roundToPrecision");return v.toFixed(Z).replace(/0+$/,"")};O=u.hpf=u.__private__.hpf=typeof c=="number"?function(v){if(isNaN(v))throw new Error("Invalid argument passed to jsPDF.hpf");return W(v,c)}:c==="smart"?function(v){if(isNaN(v))throw new Error("Invalid argument passed to jsPDF.hpf");return W(v,v>-1&&v<1?16:5)}:function(v){if(isNaN(v))throw new Error("Invalid argument passed to jsPDF.hpf");return W(v,16)};var _=u.f2=u.__private__.f2=function(v){if(isNaN(v))throw new Error("Invalid argument passed to jsPDF.f2");return W(v,2)},P=u.__private__.f3=function(v){if(isNaN(v))throw new Error("Invalid argument passed to jsPDF.f3");return W(v,3)},K=u.scale=u.__private__.scale=function(v){if(isNaN(v))throw new Error("Invalid argument passed to jsPDF.scale");return A===j?v*at:A===N?v:void 0},q=function(v){return K(function(M){return A===j?gd()-M:A===N?M:void 0}(v))};u.__private__.setPrecision=u.setPrecision=function(v){typeof parseInt(v,10)=="number"&&(n=parseInt(v,10))};var ae,ce="00000000000000000000000000000000",de=u.__private__.getFileId=function(){return ce},H=u.__private__.setFileId=function(v){return ce=v!==void 0&&/^[a-fA-F0-9]{32}$/.test(v)?v.toUpperCase():ce.split("").map(function(){return"ABCDEF0123456789".charAt(Math.floor(16*Math.random()))}).join(""),h!==null&&(fr=new mu(h.userPermissions,h.userPassword,h.ownerPassword,ce)),ce};u.setFileId=function(v){return H(v),this},u.getFileId=function(){return de()};var X=u.__private__.convertDateToPDFDate=function(v){var M=v.getTimezoneOffset(),Z=M<0?"+":"-",le=Math.floor(Math.abs(M/60)),ye=Math.abs(M%60),_e=[Z,G(le),"'",G(ye),"'"].join("");return["D:",v.getFullYear(),G(v.getMonth()+1),G(v.getDate()),G(v.getHours()),G(v.getMinutes()),G(v.getSeconds()),_e].join("")},V=u.__private__.convertPDFDateToDate=function(v){var M=parseInt(v.substr(2,4),10),Z=parseInt(v.substr(6,2),10)-1,le=parseInt(v.substr(8,2),10),ye=parseInt(v.substr(10,2),10),_e=parseInt(v.substr(12,2),10),Be=parseInt(v.substr(14,2),10);return new Date(M,Z,le,ye,_e,Be,0)},he=u.__private__.setCreationDate=function(v){var M;if(v===void 0&&(v=new Date),v instanceof Date)M=X(v);else{if(!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\+0[0-9]|\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(v))throw new Error("Invalid argument passed to jsPDF.setCreationDate");M=v}return ae=M},T=u.__private__.getCreationDate=function(v){var M=ae;return v==="jsDate"&&(M=V(ae)),M};u.setCreationDate=function(v){return he(v),this},u.getCreationDate=function(v){return T(v)};var I,G=u.__private__.padd2=function(v){return("0"+parseInt(v)).slice(-2)},re=u.__private__.padd2Hex=function(v){return("00"+(v=v.toString())).substr(v.length)},ne=0,pe=[],je=[],ke=0,De=[],Pe=[],Ze=!1,tt=je;u.__private__.setCustomOutputDestination=function(v){Ze=!0,tt=v};var Je=function(v){Ze||(tt=v)};u.__private__.resetCustomOutputDestination=function(){Ze=!1,tt=je};var Y=u.__private__.out=function(v){return v=v.toString(),ke+=v.length+1,tt.push(v),tt},Oe=u.__private__.write=function(v){return Y(arguments.length===1?v.toString():Array.prototype.join.call(arguments," "))},Wt=u.__private__.getArrayBuffer=function(v){for(var M=v.length,Z=new ArrayBuffer(M),le=new Uint8Array(Z);M--;)le[M]=v.charCodeAt(M);return Z},yt=[["Helvetica","helvetica","normal","WinAnsiEncoding"],["Helvetica-Bold","helvetica","bold","WinAnsiEncoding"],["Helvetica-Oblique","helvetica","italic","WinAnsiEncoding"],["Helvetica-BoldOblique","helvetica","bolditalic","WinAnsiEncoding"],["Courier","courier","normal","WinAnsiEncoding"],["Courier-Bold","courier","bold","WinAnsiEncoding"],["Courier-Oblique","courier","italic","WinAnsiEncoding"],["Courier-BoldOblique","courier","bolditalic","WinAnsiEncoding"],["Times-Roman","times","normal","WinAnsiEncoding"],["Times-Bold","times","bold","WinAnsiEncoding"],["Times-Italic","times","italic","WinAnsiEncoding"],["Times-BoldItalic","times","bolditalic","WinAnsiEncoding"],["ZapfDingbats","zapfdingbats","normal",null],["Symbol","symbol","normal",null]];u.__private__.getStandardFonts=function(){return yt};var Ce=t.fontSize||16;u.__private__.setFontSize=u.setFontSize=function(v){return Ce=A===N?v/at:v,this};var wt,ot=u.__private__.getFontSize=u.getFontSize=function(){return A===j?Ce:Ce*at},_t=t.R2L||!1;u.__private__.setR2L=u.setR2L=function(v){return _t=v,this},u.__private__.getR2L=u.getR2L=function(){return _t};var gt,un=u.__private__.setZoomMode=function(v){if(/^(?:\d+\.\d*|\d*\.\d+|\d+)%$/.test(v))wt=v;
vendor: 4,841 bytes, line 2679
2679else if(isNaN(v)){if([void 0,null,"fullwidth","fullheight","fullpage","original"].indexOf(v)===-1)throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. "'+v+'" is not recognized.');wt=v}else wt=parseInt(v,10)};u.__private__.getZoomMode=function(){return wt};var Xt,be=u.__private__.setPageMode=function(v){if([void 0,null,"UseNone","UseOutlines","UseThumbs","FullScreen"].indexOf(v)==-1)throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. "'+v+'" is not recognized.');gt=v};u.__private__.getPageMode=function(){return gt};var Ie=u.__private__.setLayoutMode=function(v){if([void 0,null,"continuous","single","twoleft","tworight","two"].indexOf(v)==-1)throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. "'+v+'" is not recognized.');Xt=v};u.__private__.getLayoutMode=function(){return Xt},u.__private__.setDisplayMode=u.setDisplayMode=function(v,M,Z){return un(v),Ie(M),be(Z),this};var $e={title:"",subject:"",author:"",keywords:"",creator:""};u.__private__.getDocumentProperty=function(v){if(Object.keys($e).indexOf(v)===-1)throw new Error("Invalid argument passed to jsPDF.getDocumentProperty");return $e[v]},u.__private__.getDocumentProperties=function(){return $e},u.__private__.setDocumentProperties=u.setProperties=u.setDocumentProperties=function(v){for(var M in $e)$e.hasOwnProperty(M)&&v[M]&&($e[M]=v[M]);return this},u.__private__.setDocumentProperty=function(v,M){if(Object.keys($e).indexOf(v)===-1)throw new Error("Invalid arguments passed to jsPDF.setDocumentProperty");return $e[v]=M};var Fe,at,dt,rn,Ut,qt={},Vt={},Gt=[],bt={},nt={},it={},ht={},nn=null,Mt=0,Tt=[],In=new J3(u),Ja=t.hotfixes||[],Ts={},_r={},Tr=[],Bt=function v(M,Z,le,ye,_e,Be){if(!(this instanceof v))return new v(M,Z,le,ye,_e,Be);isNaN(M)&&(M=1),isNaN(Z)&&(Z=0),isNaN(le)&&(le=0),isNaN(ye)&&(ye=1),isNaN(_e)&&(_e=0),isNaN(Be)&&(Be=0),this._matrix=[M,Z,le,ye,_e,Be]};Object.defineProperty(Bt.prototype,"sx",{get:function(){return this._matrix[0]},set:function(v){this._matrix[0]=v}}),Object.defineProperty(Bt.prototype,"shy",{get:function(){return this._matrix[1]},set:function(v){this._matrix[1]=v}}),Object.defineProperty(Bt.prototype,"shx",{get:function(){return this._matrix[2]},set:function(v){this._matrix[2]=v}}),Object.defineProperty(Bt.prototype,"sy",{get:function(){return this._matrix[3]},set:function(v){this._matrix[3]=v}}),Object.defineProperty(Bt.prototype,"tx",{get:function(){return this._matrix[4]},set:function(v){this._matrix[4]=v}}),Object.defineProperty(Bt.prototype,"ty",{get:function(){return this._matrix[5]},set:function(v){this._matrix[5]=v}}),Object.defineProperty(Bt.prototype,"a",{get:function(){return this._matrix[0]},set:function(v){this._matrix[0]=v}}),Object.defineProperty(Bt.prototype,"b",{get:function(){return this._matrix[1]},set:function(v){this._matrix[1]=v}}),Object.defineProperty(Bt.prototype,"c",{get:function(){return this._matrix[2]},set:function(v){this._matrix[2]=v}}),Object.defineProperty(Bt.prototype,"d",{get:function(){return this._matrix[3]},set:function(v){this._matrix[3]=v}}),Object.defineProperty(Bt.prototype,"e",{get:function(){return this._matrix[4]},set:function(v){this._matrix[4]=v}}),Object.defineProperty(Bt.prototype,"f",{get:function(){return this._matrix[5]},set:function(v){this._matrix[5]=v}}),Object.defineProperty(Bt.prototype,"rotation",{get:function(){return Math.atan2(this.shx,this.sx)}}),Object.defineProperty(Bt.prototype,"scaleX",{get:function(){return this.decompose().scale.sx}}),Object.defineProperty(Bt.prototype,"scaleY",{get:function(){return this.decompose().scale.sy}}),Object.defineProperty(Bt.prototype,"isIdentity",{get:function(){return this.sx===1&&this.shy===0&&this.shx===0&&this.sy===1&&this.tx===0&&this.ty===0}}),Bt.prototype.join=function(v){return[this.sx,this.shy,this.shx,this.sy,this.tx,this.ty].map(O).join(v)},Bt.prototype.multiply=function(v){var M=v.sx*this.sx+v.shy*this.shx,Z=v.sx*this.shy+v.shy*this.sy,le=v.shx*this.sx+v.sy*this.shx,ye=v.shx*this.shy+v.sy*this.sy,_e=v.tx*this.sx+v.ty*this.shx+this.tx,Be=v.tx*this.shy+v.ty*this.sy+this.ty;return new Bt(M,Z,le,ye,_e,Be)},Bt.prototype.decompose=function(){var v=this.sx,M=this.shy,Z=this.shx,le=this.sy,ye=this.tx,_e=this.ty,Be=Math.sqrt(v*v+M*M),Ct=(v/=Be)*Z+(M/=Be)*le;Z-=v*Ct,le-=M*Ct;var Dt=Math.sqrt(Z*Z+le*le);return Ct/=Dt,v*(le/=Dt)<M*(Z/=Dt)&&(v=-v,M=-M,Ct=-Ct,Be=-Be),{scale:new Bt(Be,0,0,Dt,0,0),translate:new Bt(1,0,0,1,ye,_e),rotate:new Bt(v,M,-M,v,0,0),skew:new Bt(1,0,Ct,1,0,0)}},Bt.prototype.toString=function(v){return this.join(" ")},Bt.prototype.inversed=function(){var v=this.sx,M=this.shy,Z=this.shx,le=this.sy,ye=this.tx,_e=this.ty,Be=1/(v*le-M*Z),Ct=le*Be,Dt=-M*Be,an=-Z*Be,pn=v*Be;return new Bt(Ct,Dt,an,pn,-Ct*ye-an*_e,-Dt*ye-pn*_e)}
2679,Bt.prototype.applyToPoint=function(v){var M=v.x*this.sx+v.y*this.shx+this.tx,Z=v.x*this.shy+v.y*this.sy+this.ty;return new fd(M,Z)},Bt.prototype.applyToRectangle=function(v){var M=this.applyToPoint(v),Z=this.applyToPoint(new fd(v.x+v.w,v.y+v.h));return new $p(M.x,M.y,Z.x-M.x,Z.y-M.y)},Bt.prototype.clone=function(){var v=this.sx,M=this.shy,Z=this.shx,le=this.sy,ye=this.tx,_e=this.ty;return new Bt(v,M,Z,le,ye,_e)},u.Matrix=Bt;var oe=u.matrixMult=function(v,M){return M.multiply(v)},ge=new Bt(1,0,0,1,0,0);u.unitMatrix=u.identityMatrix=ge;var Ae=function(v,M){if(!nt[v]){var Z=(M instanceof Bd?"Sh":"P")+(Object.keys(bt).length+1).toString(10);M.id=Z,nt[v]=Z,bt[Z]=M,In.publish("addPattern",M)}};u.ShadingPattern=Bd,u.TilingPattern=_u,u.addShadingPattern=function(v,M){return L("addShadingPattern()"),Ae(v,M),this},u.beginTilingPattern=function(v){L("beginTilingPattern()"),Wp(v.boundingBox[0],v.boundingBox[1],v.boundingBox[2]-v.boundingBox[0],v.boundingBox[3]-v.boundingBox[1],v.matrix)},u.endTilingPattern=function(v,M){L("endTilingPattern()"),M.stream=Pe[I].join(` 2680`),Ae(v,M),In.publish("endTilingPattern",M),Tr.pop().restore()};var Re,Xe=u.__private__.newObject=function(){var v=pt();return jt(v,!0),v},pt=u.__private__.newObjectDeferred=function(){return ne++,pe[ne]=function(){return ke},ne},jt=function(v,M){return M=typeof M=="boolean"&&M,pe[v]=ke,M&&Y(v+" 0 obj"),v},ft=u.__private__.newAdditionalObject=function(){var v={objId:pt(),content:""};return De.push(v),v},mt=pt(),lt=pt(),xt=u.__private__.decodeColorString=function(v){var M=v.split(" ");if(M.length!==2||M[1]!=="g"&&M[1]!=="G")M.length!==5||M[4]!=="k"&&M[4]!=="K"||(M=[(1-M[0])*(1-M[3]),(1-M[1])*(1-M[3]),(1-M[2])*(1-M[3]),"r"]);else{var Z=parseFloat(M[0]);M=[Z,Z,Z,"r"]}for(var le="#",ye=0;ye<3;ye++)le+=("0"+Math.floor(255*parseFloat(M[ye])).toString(16)).slice(-2);return le},Qt=u.__private__.encodeColorString=function(v){var M;typeof v=="string"&&(v={ch1:v});var Z=v.ch1,le=v.ch2,ye=v.ch3,_e=v.ch4,Be=v.pdfColorType==="draw"?["G","RG","K"]:["g","rg","k"];if(typeof Z=="string"&&Z.charAt(0)!=="#"){var Ct=new M8(Z);if(Ct.ok)Z=Ct.toHex();else if(!/^\d*\.?\d*$/.test(Z))throw new Error('Invalid color "'+Z+'" passed to jsPDF.encodeColorString.')}if(typeof Z=="string"&&/^#[0-9A-Fa-f]{3}$/.test(Z)&&(Z="#"+Z[1]+Z[1]+Z[2]+Z[2]+Z[3]+Z[3]),typeof Z=="string"&&/^#[0-9A-Fa-f]{6}$/.test(Z)){var Dt=parseInt(Z.substr(1),16);Z=Dt>>16&255,le=Dt>>8&255,ye=255&Dt}if(le===void 0||_e===void 0&&Z===le&&le===ye)M=typeof Z=="string"?Z+" "+Be[0]:v.precision===2?_(Z/255)+" "+Be[0]:P(Z/255)+" "+Be[0];else if(_e===void 0||Jn(_e)==="object"){if(_e&&!isNaN(_e.a)&&_e.a===0)return["1.","1.","1.",Be[1]].join(" ");M=typeof Z=="string"?[Z,le,ye,Be[1]].join(" "):v.precision===2?[_(Z/255),_(le/255),_(ye/255),Be[1]].join(" "):[P(Z/255),P(le/255),P(ye/255),Be[1]].join(" ")}else M=typeof Z=="string"?[Z,le,ye,_e,Be[2]].join(" "):v.precision===2?[_(Z),_(le),_(ye),_(_e),Be[2]].join(" "):[P(Z),P(le),P(ye),P(_e),Be[2]].join(" ");return M},Zt=u.__private__.getFilters=function(){return o},Kt=u.__private__.putStream=function(v){var M=(v=v||{}).data||"",Z=v.filters||Zt(),le=v.alreadyAppliedFilters||[],ye=v.addLength1||!1,_e=M.length,Be=v.objectId,Ct=function(Ns){return Ns};if(h!==null&&Be===void 0)throw new Error("ObjectId must be passed to putStream for file encryption");h!==null&&(Ct=fr.encryptor(Be,0));var Dt={};Z===!0&&(Z=["FlateEncode"]);var an=v.additionalKeyValues||[],pn=(Dt=zt.API.processDataByFilters!==void 0?zt.API.processDataByFilters(M,Z):{data:M,reverseChain:[]}).reverseChain+(Array.isArray(le)?le.join(" "):le.toString());if(Dt.data.length!==0&&(an.push({key:"Length",value:Dt.data.length}),ye===!0&&an.push({key:"Length1",value:_e})),pn.length!=0)if(pn.split("/").length-1==1)an.push({key:"Filter",value:pn});else{an.push({key:"Filter",value:"["+pn+"]"});for(var Fn=0;Fn<an.length;Fn+=1)if(an[Fn].key==="DecodeParms"){for(var ir=[],is=0;is<Dt.reverseChain.split("/").length-1;is+=1)ir.push("null");ir.push(an[Fn].value),an[Fn].value="["+ir.join(" ")+"]"}}Y("<<");for(var ts=0;ts<an.length;ts++)Y("/"+an[ts].key+" "+an[ts].value);Y(">>"),Dt.data.length!==0&&(Y("stream"),Y(Ct(Dt.data)),Y("endstream"))},xn=u.__private__.putPage=function(v){var M=v.number,Z=v.data,le=v.objId,ye=v.contentsObjId;jt(le,!0),Y("<</Type /Page"),Y("/Parent "+v.rootDictionaryObjId+" 0 R"),Y("/Resources "+v.resourceDictionaryObjId+" 0 R"),Y("/MediaBox ["+parseFloat(O(v.mediaBox.bottomLeftX))+" "+parseFloat(O(v.mediaBox.bottomLeftY))+" "+O(v.mediaBox.topRightX)+" "+O(v.mediaBox.topRightY)+"]"),v.cropBox!==null&&Y("/CropBox ["+O(v.cropBox.bottomLeftX)+" "+O(v.cropBox.bottomLeftY)+" "+O(v.cropBox.topRightX)+" "+O(v.cropBox.topRightY)+"]"),v.bleedBox!==null&&Y("/BleedBox ["+O(v.bleedBox.bottomLeftX)+" "+O(v.bleedBox.bottomLeftY)+" "+O(v.bleedBox.topRightX)+" "+O(v.bleedBox.topRightY)+"]"),v.trimBox!==null&&Y("/TrimBox ["+O(v.trimBox.bottomLeftX)+" "+O(v.trimBox.bottomLeftY)+" "+O(v.trimBox.topRightX)+" "+O(v.trimBox.topRightY)+"]"),v.artBox!==null&&Y("/ArtBox ["+O(v.artBox.bottomLeftX)+" "+O(v.artBox.bottomLeftY)+" "+O(v.artBox.topRightX)+" "+O(v.artBox.topRightY)+"]"),typeof v.userUnit=="number"&&v.userUnit!==1&&Y("/UserUnit "+v.userUnit),In.publish("putPage",{objId:le,pageContext:Tt[M],pageNumber:M,page:Z}),Y("/Contents "+ye+" 0 R"),Y(">>"),Y("endobj");var _e=Z.join(` 2681`);return A===N&&(_e+=` 2682Q`),jt(ye,!0),Kt({data:_e,filters:Zt(),objectId:ye}),Y("endobj"),le},dn=u.__private__.putPages=function(){var v,M,Z=[];for(v=1;v<=Mt;v++)Tt[v].objId=pt(),Tt[v].contentsObjId=pt();for(v=1;v<=Mt;v++)Z.push(xn({number:v,data:Pe[v],objId:Tt[v].objId,contentsObjId:Tt[v].contentsObjId,mediaBox:Tt[v].mediaBox,cropBox:Tt[v].cropBox,bleedBox:Tt[v].bleedBox,trimBox:Tt[v].trimBox,artBox:Tt[v].artBox,userUnit:Tt[v].userUnit,rootDictionaryObjId:mt,resourceDictionaryObjId:lt}));jt(mt,!0),Y("<</Type /Pages");var le="/Kids [";for(M=0;M<Mt;M++)le+=Z[M]+" 0 R ";Y(le+"]"),Y("/Count "+Mt),Y(">>"),Y("endobj"),In.publish("postPutPages")},Bn=function(v){In.publish("putFont",{font:v,out:Y,newObject:Xe,putStream:Kt}),v.isAlreadyPutted!==!0&&(v.objectNumber=Xe(),Y("<<"),Y("/Type /Font"),Y("/BaseFont /"+fu(v.postScriptName)),Y("/Subtype /Type1"),typeof v.encoding=="string"&&Y("/Encoding /"+v.encoding),Y("/FirstChar 32"),Y("/LastChar 255"),Y(">>"),Y("endobj"))},Pr=function(v){v.objectNumber=Xe();var M=[];M.push({key:"Type",value:"/XObject"}),M.push({key:"Subtype",value:"/Form"}),M.push({key:"BBox",value:"["+[O(v.x),O(v.y),O(v.x+v.width),O(v.y+v.height)].join(" ")+"]"}),M.push({key:"Matrix",value:"["+v.matrix.toString()+"]"});var Z=v.pages[1].join(` 2683`);Kt({data:Z,additionalKeyValues:M,objectId:v.objectNumber}),Y("endobj")},ua=function(v,M){M||(M=21);var Z=Xe(),le=function(Be,Ct){var Dt,an=[],pn=1/(Ct-1);for(Dt=0;Dt<1;Dt+=pn)an.push(Dt);if(an.push(1),Be[0].offset!=0){var Fn={offset:0,color:Be[0].color};Be.unshift(Fn)}if(Be[Be.length-1].offset!=1){var ir={offset:1,color:Be[Be.length-1].color};Be.push(ir)}for(var is="",ts=0,Ns=0;Ns<an.length;Ns++){for(Dt=an[Ns];Dt>Be[ts+1].offset;)ts++;var Bs=Be[ts].offset,zs=(Dt-Bs)/(Be[ts+1].offset-Bs),Kr=Be[ts].color,dl=Be[ts+1].color;is+=re(Math.round((1-zs)*Kr[0]+zs*dl[0]).toString(16))+re(Math.round((1-zs)*Kr[1]+zs*dl[1]).toString(16))+re(Math.round((1-zs)*Kr[2]+zs*dl[2]).toString(16))}return is.trim()}(v.colors,M),ye=[];
vendor: 11,125 bytes, lines 2683-2684
2683ye.push({key:"FunctionType",value:"0"}),ye.push({key:"Domain",value:"[0.0 1.0]"}),ye.push({key:"Size",value:"["+M+"]"}),ye.push({key:"BitsPerSample",value:"8"}),ye.push({key:"Range",value:"[0.0 1.0 0.0 1.0 0.0 1.0]"}),ye.push({key:"Decode",value:"[0.0 1.0 0.0 1.0 0.0 1.0]"}),Kt({data:le,additionalKeyValues:ye,alreadyAppliedFilters:["/ASCIIHexDecode"],objectId:Z}),Y("endobj"),v.objectNumber=Xe(),Y("<< /ShadingType "+v.type),Y("/ColorSpace /DeviceRGB");var _e="/Coords ["+O(parseFloat(v.coords[0]))+" "+O(parseFloat(v.coords[1]))+" ";v.type===2?_e+=O(parseFloat(v.coords[2]))+" "+O(parseFloat(v.coords[3])):_e+=O(parseFloat(v.coords[2]))+" "+O(parseFloat(v.coords[3]))+" "+O(parseFloat(v.coords[4]))+" "+O(parseFloat(v.coords[5])),Y(_e+="]"),v.matrix&&Y("/Matrix ["+v.matrix.toString()+"]"),Y("/Function "+Z+" 0 R"),Y("/Extend [true true]"),Y(">>"),Y("endobj")},pr=function(v,M){var Z=pt(),le=Xe();M.push({resourcesOid:Z,objectOid:le}),v.objectNumber=le;var ye=[];ye.push({key:"Type",value:"/Pattern"}),ye.push({key:"PatternType",value:"1"}),ye.push({key:"PaintType",value:"1"}),ye.push({key:"TilingType",value:"1"}),ye.push({key:"BBox",value:"["+v.boundingBox.map(O).join(" ")+"]"}),ye.push({key:"XStep",value:O(v.xStep)}),ye.push({key:"YStep",value:O(v.yStep)}),ye.push({key:"Resources",value:Z+" 0 R"}),v.matrix&&ye.push({key:"Matrix",value:"["+v.matrix.toString()+"]"}),Kt({data:v.stream,additionalKeyValues:ye,objectId:v.objectNumber}),Y("endobj")},Wr=function(v){for(var M in v.objectNumber=Xe(),Y("<<"),v)switch(M){case"opacity":Y("/ca "+_(v[M]));break;case"stroke-opacity":Y("/CA "+_(v[M]))}Y(">>"),Y("endobj")},Ji=function(v){jt(v.resourcesOid,!0),Y("<<"),Y("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"),function(){for(var M in Y("/Font <<"),qt)qt.hasOwnProperty(M)&&(p===!1||p===!0&&m.hasOwnProperty(M))&&Y("/"+M+" "+qt[M].objectNumber+" 0 R");Y(">>")}(),function(){if(Object.keys(bt).length>0){for(var M in Y("/Shading <<"),bt)bt.hasOwnProperty(M)&&bt[M]instanceof Bd&&bt[M].objectNumber>=0&&Y("/"+M+" "+bt[M].objectNumber+" 0 R");In.publish("putShadingPatternDict"),Y(">>")}}(),function(M){if(Object.keys(bt).length>0){for(var Z in Y("/Pattern <<"),bt)bt.hasOwnProperty(Z)&&bt[Z]instanceof u.TilingPattern&&bt[Z].objectNumber>=0&&bt[Z].objectNumber<M&&Y("/"+Z+" "+bt[Z].objectNumber+" 0 R");In.publish("putTilingPatternDict"),Y(">>")}}(v.objectOid),function(){if(Object.keys(it).length>0){var M;for(M in Y("/ExtGState <<"),it)it.hasOwnProperty(M)&&it[M].objectNumber>=0&&Y("/"+M+" "+it[M].objectNumber+" 0 R");In.publish("putGStateDict"),Y(">>")}}(),function(){for(var M in Y("/XObject <<"),Ts)Ts.hasOwnProperty(M)&&Ts[M].objectNumber>=0&&Y("/"+M+" "+Ts[M].objectNumber+" 0 R");In.publish("putXobjectDict"),Y(">>")}(),Y(">>"),Y("endobj")},Ci=function(v){Vt[v.fontName]=Vt[v.fontName]||{},Vt[v.fontName][v.fontStyle]=v.id},_a=function(v,M,Z,le,ye){var _e={id:"F"+(Object.keys(qt).length+1).toString(10),postScriptName:v,fontName:M,fontStyle:Z,encoding:le,isStandardFont:ye||!1,metadata:{}};return In.publish("addFont",{font:_e,instance:this}),qt[_e.id]=_e,Ci(_e),_e.id},ps=u.__private__.pdfEscape=u.pdfEscape=function(v,M){return function(Z,le){var ye,_e,Be,Ct,Dt,an,pn,Fn,ir;if(Be=(le=le||{}).sourceEncoding||"Unicode",Dt=le.outputEncoding,(le.autoencode||Dt)&&qt[Fe].metadata&&qt[Fe].metadata[Be]&&qt[Fe].metadata[Be].encoding&&(Ct=qt[Fe].metadata[Be].encoding,!Dt&&qt[Fe].encoding&&(Dt=qt[Fe].encoding),!Dt&&Ct.codePages&&(Dt=Ct.codePages[0]),typeof Dt=="string"&&(Dt=Ct[Dt]),Dt)){for(pn=!1,an=[],ye=0,_e=Z.length;ye<_e;ye++)(Fn=Dt[Z.charCodeAt(ye)])?an.push(String.fromCharCode(Fn)):an.push(Z[ye]),an[ye].charCodeAt(0)>>8&&(pn=!0);Z=an.join("")}for(ye=Z.length;pn===void 0&&ye!==0;)Z.charCodeAt(ye-1)>>8&&(pn=!0),ye--;if(!pn)return Z;for(an=le.noBOM?[]:[254,255],ye=0,_e=Z.length;ye<_e;ye++){if((ir=(Fn=Z.charCodeAt(ye))>>8)>>8)throw new Error("Character at position "+ye+" of string '"+Z+"' exceeds 16bits. Cannot be encoded into UCS-2 BE");an.push(ir),an.push(Fn-(ir<<8))}return String.fromCharCode.apply(void 0,an)}(v,M).replace(/\\/g,"\\\\").replace(/\(/g,"\\(").replace(/\)/g,"\\)")},Xa=u.__private__.beginPage=function(v){Pe[++Mt]=[],Tt[Mt]={objId:0,contentsObjId:0,userUnit:Number(l),artBox:null,bleedBox:null,cropBox:null,trimBox:null,mediaBox:{bottomLeftX:0,bottomLeftY:0,topRightX:Number(v[0]),topRightY:Number(v[1])}},Za(Mt),Je(Pe[I])},fn=function(v,M){var Z,le,ye;switch(s=M||s,typeof v=="string"&&(Z=b(v.toLowerCase()),Array.isArray(Z)&&(le=Z[0],ye=Z[1])),Array.isArray(v)&&(le=v[0]*at,ye=v[1]*at),isNaN(le)&&(le=a[0],ye=a[1]),(le>14400||ye>14400)&&(ls.warn("A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400"),le=Math.min(14400,le),ye=Math.min(14400,ye)),a=[le,ye],s.substr(0,1)){case"l":ye>le&&(a=[ye,le]);break;case"p":le>ye&&(a=[ye,le])}Xa(a),ms(st),Y(Oh),qp!==0&&Y(qp+" J"),Gl!==0&&Y(Gl+" j"),In.publish("addPage",{pageNumber:Mt})},Tn=function(v){v>0&&v<=Mt&&(Pe.splice(v,1),Tt.splice(v,1),Mt--,I>Mt&&(I=Mt),this.setPage(I))},Za=function(v){v>0&&v<=Mt&&(I=v)},pa=u.__private__.getNumberOfPages=u.getNumberOfPages=function(){return Pe.length-1},es=function(v,M,Z){var le,ye=void 0;return Z=Z||{},v=v!==void 0?v:qt[Fe].fontName,M=M!==void 0?M:qt[Fe].fontStyle,le=v.toLowerCase(),Vt[le]!==void 0&&Vt[le][M]!==void 0?ye=Vt[le][M]:Vt[v]!==void 0&&Vt[v][M]!==void 0?ye=Vt[v][M]:Z.disableWarning===!1&&ls.warn("Unable to look up font label for font '"+v+"', '"+M+"'. Refer to getFontList() for available fonts."),ye||Z.noFallback||(ye=Vt.times[M])==null&&(ye=Vt.times.normal),ye},mr=u.__private__.putInfo=function(){var v=Xe(),M=function(le){return le};for(var Z in h!==null&&(M=fr.encryptor(v,0)),Y("<<"),Y("/Producer ("+ps(M("jsPDF "+zt.version))+")"),$e)$e.hasOwnProperty(Z)&&$e[Z]&&Y("/"+Z.substr(0,1).toUpperCase()+Z.substr(1)+" ("+ps(M($e[Z]))+")");Y("/CreationDate ("+ps(M(ae))+")"),Y(">>"),Y("endobj")},_i=u.__private__.putCatalog=function(v){var M=(v=v||{}).rootDictionaryObjId||mt;switch(Xe(),Y("<<"),Y("/Type /Catalog"),Y("/Pages "+M+" 0 R"),wt||(wt="fullwidth"),wt){case"fullwidth":Y("/OpenAction [3 0 R /FitH null]");break;case"fullheight":Y("/OpenAction [3 0 R /FitV null]");break;case"fullpage":Y("/OpenAction [3 0 R /Fit]");break;case"original":Y("/OpenAction [3 0 R /XYZ null null 1]");break;default:var Z=""+wt;Z.substr(Z.length-1)==="%"&&(wt=parseInt(wt)/100),typeof wt=="number"&&Y("/OpenAction [3 0 R /XYZ null null "+_(wt)+"]")}switch(Xt||(Xt="continuous"),Xt){case"continuous":Y("/PageLayout /OneColumn");break;case"single":Y("/PageLayout /SinglePage");break;case"two":case"twoleft":Y("/PageLayout /TwoColumnLeft");break;case"tworight":Y("/PageLayout /TwoColumnRight")}gt&&Y("/PageMode /"+gt),In.publish("putCatalog"),Y(">>"),Y("endobj")},Bl=u.__private__.putTrailer=function(){Y("trailer"),Y("<<"),Y("/Size "+(ne+1)),Y("/Root "+ne+" 0 R"),Y("/Info "+(ne-1)+" 0 R"),h!==null&&Y("/Encrypt "+fr.oid+" 0 R"),Y("/ID [ <"+ce+"> <"+ce+"> ]"),Y(">>")},js=u.__private__.putHeader=function(){Y("%PDF-"+y),Y("%ºÃˆ ")},zl=u.__private__.putXRef=function(){var v="0000000000";Y("xref"),Y("0 "+(ne+1)),Y("0000000000 65535 f ");for(var M=1;M<=ne;M++)typeof pe[M]=="function"?Y((v+pe[M]()).slice(-10)+" 00000 n "):pe[M]!==void 0?Y((v+pe[M]).slice(-10)+" 00000 n "):Y("0000000000 00000 n ")},ma=u.__private__.buildDocument=function(){var v;ne=0,ke=0,je=[],pe=[],De=[],mt=pt(),lt=pt(),Je(je),In.publish("buildDocument"),js(),dn(),function(){In.publish("putAdditionalObjects");for(var Z=0;Z<De.length;Z++){var le=De[Z];jt(le.objId,!0),Y(le.content),Y("endobj")}In.publish("postPutAdditionalObjects")}(),v=[],function(){for(var Z in qt)qt.hasOwnProperty(Z)&&(p===!1||p===!0&&m.hasOwnProperty(Z))&&Bn(qt[Z])}(),function(){var Z;for(Z in it)it.hasOwnProperty(Z)&&Wr(it[Z])}(),function(){for(var Z in Ts)Ts.hasOwnProperty(Z)&&Pr(Ts[Z])}(),function(Z){var le;for(le in bt)bt.hasOwnProperty(le)&&(bt[le]instanceof Bd?ua(bt[le]):bt[le]instanceof _u&&pr(bt[le],Z))}(v),In.publish("putResources"),v.forEach(Ji),Ji({resourcesOid:lt,objectOid:Number.MAX_SAFE_INTEGER}),In.publish("postPutResources"),h!==null&&(fr.oid=Xe(),Y("<<"),Y("/Filter /Standard"),Y("/V "+fr.v),Y("/R "+fr.r),Y("/U <"+fr.toHexString(fr.U)+">"),Y("/O <"+fr.toHexString(fr.O)+">"),Y("/P "+fr.P),Y(">>"),Y("endobj")),mr(),_i();var M=ke;return zl(),Bl(),Y("startxref"),Y(""+M),Y("%%EOF"),Je(Pe[I]),je.join(` 2684`)},ei=u.__private__.getBlob=function(v){return new Blob([Wt(v)],{type:"application/pdf"})},Xi=function(v){for(;v.firstChild;)v.removeChild(v.firstChild)},Ps=function(v){var M,Z=v.document,le=Z.documentElement,ye=Z.head,_e=Z.body;return ye||(ye=Z.createElement("head"),le.appendChild(ye)),_e||(_e=Z.createElement("body"),le.appendChild(_e)),Xi(ye),Xi(_e),(M=Z.createElement("style")).appendChild(Z.createTextNode("html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}")),ye.appendChild(M),{document:Z,body:_e}},Ul=u.output=u.__private__.output=(Re=function(v,M){switch(typeof(M=M||{})=="string"?M={filename:M}:M.filename=M.filename||"generated.pdf",v){case void 0:return ma();case"save":u.save(M.filename);break;case"arraybuffer":return Wt(ma());case"blob":return ei(ma());case"bloburi":case"bloburl":if(en.URL!==void 0&&typeof en.URL.createObjectURL=="function")return en.URL&&en.URL.createObjectURL(ei(ma()))||void 0;ls.warn("bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.");break;case"datauristring":case"dataurlstring":var Z="",le=ma();try{Z=K3(le)}catch{Z=K3(unescape(encodeURIComponent(le)))}return"data:application/pdf;filename="+encodeURIComponent(M.filename)+";base64,"+Z;case"pdfobjectnewwindow":if(Object.prototype.toString.call(en)==="[object Window]"){var ye="https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js",_e=!M.pdfObjectUrl;_e||(ye=M.pdfObjectUrl);var Be=en.open();if(Be!==null){var Ct=Ps(Be),Dt=Ct.document.createElement("script"),an=this;Dt.src=ye,_e&&(Dt.integrity="sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==",Dt.crossOrigin="anonymous"),Dt.onload=function(){Be.PDFObject.embed(an.output("dataurlstring"),M)},Ct.body.appendChild(Dt)}return Be}throw new Error("The option pdfobjectnewwindow just works in a browser-environment.");case"pdfjsnewwindow":if(Object.prototype.toString.call(en)==="[object Window]"){var pn=M.pdfJsUrl||"examples/PDF.js/web/viewer.html",Fn=en.open();if(Fn!==null){var ir=Ps(Fn),is=ir.document.createElement("iframe"),ts=pn.indexOf("?")===-1?"?":"&";an=this,is.id="pdfViewer",is.width="500px",is.height="400px",is.src=pn+ts+"file=&downloadName="+encodeURIComponent(M.filename),is.onload=function(){Fn.document.title=M.filename,is.contentWindow.PDFViewerApplication.open(an.output("bloburl"))},ir.body.appendChild(is)}return Fn}throw new Error("The option pdfjsnewwindow just works in a browser-environment.");case"dataurlnewwindow":if(Object.prototype.toString.call(en)!=="[object Window]")throw new Error("The option dataurlnewwindow just works in a browser-environment.");var Ns=en.open();if(Ns!==null){var Bs=Ps(Ns),zs=Bs.document.createElement("iframe");
2684zs.src=this.output("datauristring",M),Bs.body.appendChild(zs),Ns.document.title=M.filename}if(Ns||typeof safari>"u")return Ns;break;case"datauri":case"dataurl":return en.document.location.href=this.output("datauristring",M);default:return null}},Re.foo=function(){try{return Re.apply(this,arguments)}catch(Z){var v=Z.stack||"";~v.indexOf(" at ")&&(v=v.split(" at ")[1]);var M="Error in function "+v.split(` 2685`)[0].split("<")[0]+": "+Z.message;if(!en.console)throw new Error(M);en.console.error(M,Z),en.alert&&alert(M)}},Re.foo.bar=Re,Re.foo),Ta=function(v){return Array.isArray(Ja)===!0&&Ja.indexOf(v)>-1};switch(r){case"pt":at=1;break;case"mm":at=72/25.4;break;case"cm":at=72/2.54;break;case"in":at=72;break;case"px":at=Ta("px_scaling")==1?.75:96/72;break;case"pc":case"em":at=12;break;case"ex":at=6;break;default:if(typeof r!="number")throw new Error("Invalid unit: "+r);at=r}var fr=null;he(),H();var ud=u.__private__.getPageInfo=u.getPageInfo=function(v){if(isNaN(v)||v%1!=0)throw new Error("Invalid argument passed to jsPDF.getPageInfo");return{objId:Tt[v].objId,pageNumber:v,pageContext:Tt[v]}},So=u.__private__.getPageInfoByObjId=function(v){if(isNaN(v)||v%1!=0)throw new Error("Invalid argument passed to jsPDF.getPageInfoByObjId");for(var M in Tt)if(Tt[M].objId===v)break;return ud(M)},Lh=u.__private__.getCurrentPageInfo=u.getCurrentPageInfo=function(){return{objId:Tt[I].objId,pageNumber:I,pageContext:Tt[I]}};u.addPage=function(){return fn.apply(this,arguments),this},u.setPage=function(){return Za.apply(this,arguments),Je.call(this,Pe[I]),this},u.insertPage=function(v){return this.addPage(),this.movePage(I,v),this},u.movePage=function(v,M){var Z,le;if(v>M){Z=Pe[v],le=Tt[v];for(var ye=v;ye>M;ye--)Pe[ye]=Pe[ye-1],Tt[ye]=Tt[ye-1];Pe[M]=Z,Tt[M]=le,this.setPage(M)}else if(v<M){Z=Pe[v],le=Tt[v];for(var _e=v;_e<M;_e++)Pe[_e]=Pe[_e+1],Tt[_e]=Tt[_e+1];Pe[M]=Z,Tt[M]=le,this.setPage(M)}return this},u.deletePage=function(){return Tn.apply(this,arguments),this},u.__private__.text=u.text=function(v,M,Z,le,ye){var _e,Be,Ct,Dt,an,pn,Fn,ir,is,ts=(le=le||{}).scope||this;if(typeof v=="number"&&typeof M=="number"&&(typeof Z=="string"||Array.isArray(Z))){var Ns=Z;Z=M,M=v,v=Ns}if(arguments[3]instanceof Bt==0?(Ct=arguments[4],Dt=arguments[5],Jn(Fn=arguments[3])==="object"&&Fn!==null||(typeof Ct=="string"&&(Dt=Ct,Ct=null),typeof Fn=="string"&&(Dt=Fn,Fn=null),typeof Fn=="number"&&(Ct=Fn,Fn=null),le={flags:Fn,angle:Ct,align:Dt})):(L("The transform parameter of text() with a Matrix value"),is=ye),isNaN(M)||isNaN(Z)||v==null)throw new Error("Invalid arguments passed to jsPDF.text");if(v.length===0)return ts;var Bs,zs="",Kr=typeof le.lineHeightFactor=="number"?le.lineHeightFactor:It,dl=ts.internal.scaleFactor;function Gp(fs){return fs=fs.split(" ").join(Array(le.TabLen||9).join(" ")),ps(fs,Fn)}function xd(fs){for(var gs,Js=fs.concat(),gr=[],ul=Js.length;ul--;)typeof(gs=Js.shift())=="string"?gr.push(gs):Array.isArray(fs)&&(gs.length===1||gs[1]===void 0&&gs[2]===void 0)?gr.push(gs[0]):gr.push([gs[0],gs[1],gs[2]]);return gr}function yd(fs,gs){var Js;if(typeof fs=="string")Js=gs(fs)[0];else if(Array.isArray(fs)){for(var gr,ul,Zp=fs.concat(),Qh=[],Ag=Zp.length;Ag--;)typeof(gr=Zp.shift())=="string"?Qh.push(gs(gr)[0]):Array.isArray(gr)&&typeof gr[0]=="string"&&(ul=gs(gr[0],gr[1],gr[2]),Qh.push([ul[0],ul[1],ul[2]]));Js=Qh}return Js}var Kl=!1,bd=!0;if(typeof v=="string")Kl=!0;else if(Array.isArray(v)){var zh=v.concat();Be=[];for(var Uh,Qr=zh.length;Qr--;)(typeof(Uh=zh.shift())!="string"||Array.isArray(Uh)&&typeof Uh[0]!="string")&&(bd=!1);Kl=bd}if(Kl===!1)throw new Error('Type of text must be string or Array. "'+v+'" is not recognized.');typeof v=="string"&&(v=v.match(/[\r?\n]/)?v.split(/\r\n|\r|\n/g):[v]);var vd=Ce/ts.internal.scaleFactor,wd=vd*(Kr-1);switch(le.baseline){case"bottom":Z-=wd;break;case"top":Z+=vd-wd;break;case"hanging":Z+=vd-2*wd;break;case"middle":Z+=vd/2-wd}if((pn=le.maxWidth||0)>0&&(typeof v=="string"?v=ts.splitTextToSize(v,pn):Object.prototype.toString.call(v)==="[object Array]"&&(v=v.reduce(function(fs,gs){return fs.concat(ts.splitTextToSize(gs,pn))},[]))),_e={text:v,x:M,y:Z,options:le,mutex:{pdfEscape:ps,activeFontKey:Fe,fonts:qt,activeFontSize:Ce}},In.publish("preProcessText",_e),v=_e.text,Ct=(le=_e.options).angle,is instanceof Bt==0&&Ct&&typeof Ct=="number"){Ct*=Math.PI/180,le.rotationDirection===0&&(Ct=-Ct),A===N&&(Ct=-Ct);var Kp=Math.cos(Ct),Io=Math.sin(Ct);is=new Bt(Kp,Io,-Io,Kp,0,0)}else Ct&&Ct instanceof Bt&&(is=Ct);A!==N||is||(is=ge),(an=le.charSpace||Fh)!==void 0&&(zs+=O(K(an))+` Tc 2686`,this.setCharSpace(this.getCharSpace()||0)),(ir=le.horizontalScale)!==void 0&&(zs+=O(100*ir)+` Tz 2687`),le.lang;var fa=-1,Ng=le.renderingMode!==void 0?le.renderingMode:le.stroke,qh=ts.internal.getCurrentPageInfo().pageContext;switch(Ng){case 0:case!1:case"fill":fa=0;break;case 1:case!0:case"stroke":fa=1;break;case 2:case"fillThenStroke":fa=2;break;case 3:case"invisible":fa=3;break;case 4:case"fillAndAddForClipping":fa=4;break;case 5:case"strokeAndAddPathForClipping":fa=5;break;
2687case 6:case"fillThenStrokeAndAddToPathForClipping":fa=6;break;case 7:case"addToPathForClipping":fa=7}var Sg=qh.usedRenderingMode!==void 0?qh.usedRenderingMode:-1;fa!==-1?zs+=fa+` Tr 2688`:Sg!==-1&&(zs+=`0 Tr 2689`),fa!==-1&&(qh.usedRenderingMode=fa),Dt=le.align||"left";var Pi,jd=Ce*Kr,Qp=ts.internal.pageSize.getWidth(),Hh=qt[Fe];an=le.charSpace||Fh,pn=le.maxWidth||0,Fn=Object.assign({autoencode:!0,noBOM:!0},le.flags);var kd=[],Yp=function(fs){return ts.getStringUnitWidth(fs,{font:Hh,charSpace:an,fontSize:Ce,doKerning:!1})*Ce/dl};if(Object.prototype.toString.call(v)==="[object Array]"){var ga;Be=xd(v),Dt!=="left"&&(Pi=Be.map(Yp));var Pa,$h=0;if(Dt==="right"){M-=Pi[0],v=[],Qr=Be.length;for(var Ql=0;Ql<Qr;Ql++)Ql===0?(Pa=ti(M),ga=ks(Z)):(Pa=K($h-Pi[Ql]),ga=-jd),v.push([Be[Ql],Pa,ga]),$h=Pi[Ql]}else if(Dt==="center"){M-=Pi[0]/2,v=[],Qr=Be.length;for(var Yl=0;Yl<Qr;Yl++)Yl===0?(Pa=ti(M),ga=ks(Z)):(Pa=K(($h-Pi[Yl])/2),ga=-jd),v.push([Be[Yl],Pa,ga]),$h=Pi[Yl]}else if(Dt==="left"){v=[],Qr=Be.length;for(var Wh=0;Wh<Qr;Wh++)v.push(Be[Wh])}else if(Dt==="justify"&&Hh.encoding==="Identity-H"){v=[],Qr=Be.length,pn=pn!==0?pn:Qp;for(var Nd=0,or=0;or<Qr;or++)if(ga=or===0?ks(Z):-jd,Pa=or===0?ti(M):Nd,or<Qr-1){var Db=K((pn-Pi[or])/(Be[or].split(" ").length-1)),Co=Be[or].split(" ");v.push([Co[0]+" ",Pa,ga]),Nd=0;for(var Zi=1;Zi<Co.length;Zi++){var Sd=(Yp(Co[Zi-1]+" "+Co[Zi])-Yp(Co[Zi]))*dl+Db;Zi==Co.length-1?v.push([Co[Zi],Sd,0]):v.push([Co[Zi]+" ",Sd,0]),Nd-=Sd}}else v.push([Be[or],Pa,ga]);v.push(["",Nd,0])}else{if(Dt!=="justify")throw new Error('Unrecognized alignment option, use "left", "center", "right" or "justify".');for(v=[],Qr=Be.length,pn=pn!==0?pn:Qp,or=0;or<Qr;or++){ga=or===0?ks(Z):-jd,Pa=or===0?ti(M):0;var Jp=Be[or].split(" ").length-1,Xp=Jp>0?(pn-Pi[or])/Jp:0;or<Qr-1?kd.push(O(K(Xp))):kd.push(0),v.push([Be[or],Pa,ga])}}}(typeof le.R2L=="boolean"?le.R2L:_t)===!0&&(v=yd(v,function(fs,gs,Js){return[fs.split("").reverse().join(""),gs,Js]})),_e={text:v,x:M,y:Z,options:le,mutex:{pdfEscape:ps,activeFontKey:Fe,fonts:qt,activeFontSize:Ce}},In.publish("postProcessText",_e),v=_e.text,Bs=_e.mutex.isHex||!1;var Gh=qt[Fe].encoding;Gh!=="WinAnsiEncoding"&&Gh!=="StandardEncoding"||(v=yd(v,function(fs,gs,Js){return[Gp(fs),gs,Js]})),Be=xd(v),v=[];for(var Ad,Dd,Jl,hl=Array.isArray(Be[0])?1:0,Xl="",Kh=function(fs,gs,Js){var gr="";return Js instanceof Bt?(Js=typeof le.angle=="number"?oe(Js,new Bt(1,0,0,1,fs,gs)):oe(new Bt(1,0,0,1,fs,gs),Js),A===N&&(Js=oe(new Bt(1,0,0,-1,0,0),Js)),gr=Js.join(" ")+` Tm 2690`):gr=O(fs)+" "+O(gs)+` Td 2691`,gr},Yr=0;Yr<Be.length;Yr++){switch(Xl="",hl){case 1:Jl=(Bs?"<":"(")+Be[Yr][0]+(Bs?">":")"),Ad=parseFloat(Be[Yr][1]),Dd=parseFloat(Be[Yr][2]);break;case 0:Jl=(Bs?"<":"(")+Be[Yr]+(Bs?">":")"),Ad=ti(M),Dd=ks(Z)}kd!==void 0&&kd[Yr]!==void 0&&(Xl=kd[Yr]+` Tw 2692`),Yr===0?v.push(Xl+Kh(Ad,Dd,is)+Jl):hl===0?v.push(Xl+Jl):hl===1&&v.push(Xl+Kh(Ad,Dd,is)+Jl)}v=hl===0?v.join(` Tj 2693T* `):v.join(` Tj 2694`),v+=` Tj 2695`;var _o=`BT 2696/`;return _o+=Fe+" "+Ce+` Tf 2697`,_o+=O(Ce*Kr)+` TL 2698`,_o+=Do+` 2699`,_o+=zs,_o+=v,Y(_o+="ET"),m[Fe]=!0,ts};var Mh=u.__private__.clip=u.clip=function(v){return Y(v==="evenodd"?"W*":"W"),this};u.clipEvenOdd=function(){return Mh("evenodd")},u.__private__.discardPath=u.discardPath=function(){return Y("n"),this};var Ti=u.__private__.isValidStyle=function(v){var M=!1;return[void 0,null,"S","D","F","DF","FD","f","f*","B","B*","n"].indexOf(v)!==-1&&(M=!0),M};u.__private__.setDefaultPathOperation=u.setDefaultPathOperation=function(v){return Ti(v)&&(d=v),this};var pd=u.__private__.getStyle=u.getStyle=function(v){var M=d;switch(v){case"D":case"S":M="S";break;case"F":M="f";break;case"FD":case"DF":M="B";break;case"f":case"f*":case"B":case"B*":M=v}return M},ql=u.close=function(){return Y("h"),this};u.stroke=function(){return Y("S"),this},u.fill=function(v){return Hl("f",v),this},u.fillEvenOdd=function(v){return Hl("f*",v),this},u.fillStroke=function(v){return Hl("B",v),this},u.fillStrokeEvenOdd=function(v){return Hl("B*",v),this};var Hl=function(v,M){Jn(M)==="object"?md(M,v):Y(v)},$l=function(v){v===null||A===N&&v===void 0||(v=pd(v),Y(v))};function Wl(v,M,Z,le,ye){var _e=new _u(M||this.boundingBox,Z||this.xStep,le||this.yStep,this.gState,ye||this.matrix
vendor: 4,448 bytes, line 2699
2699);_e.stream=this.stream;var Be=v+"$$"+this.cloneIndex+++"$$";return Ae(Be,_e),_e}var md=function(v,M){var Z=nt[v.key],le=bt[Z];if(le instanceof Bd)Y("q"),Y(Ge(M)),le.gState&&u.setGState(le.gState),Y(v.matrix.toString()+" cm"),Y("/"+Z+" sh"),Y("Q");else if(le instanceof _u){var ye=new Bt(1,0,0,-1,0,gd());v.matrix&&(ye=ye.multiply(v.matrix||ge),Z=Wl.call(le,v.key,v.boundingBox,v.xStep,v.yStep,ye).id),Y("q"),Y("/Pattern cs"),Y("/"+Z+" scn"),le.gState&&u.setGState(le.gState),Y(M),Y("Q")}},Ge=function(v){switch(v){case"f":case"F":case"n":return"W n";case"f*":return"W* n";case"B":case"S":return"W S";case"B*":return"W* S"}},J=u.moveTo=function(v,M){return Y(O(K(v))+" "+O(q(M))+" m"),this},ve=u.lineTo=function(v,M){return Y(O(K(v))+" "+O(q(M))+" l"),this},Ve=u.curveTo=function(v,M,Z,le,ye,_e){return Y([O(K(v)),O(q(M)),O(K(Z)),O(q(le)),O(K(ye)),O(q(_e)),"c"].join(" ")),this};u.__private__.line=u.line=function(v,M,Z,le,ye){if(isNaN(v)||isNaN(M)||isNaN(Z)||isNaN(le)||!Ti(ye))throw new Error("Invalid arguments passed to jsPDF.line");return A===j?this.lines([[Z-v,le-M]],v,M,[1,1],ye||"S"):this.lines([[Z-v,le-M]],v,M,[1,1]).stroke()},u.__private__.lines=u.lines=function(v,M,Z,le,ye,_e){var Be,Ct,Dt,an,pn,Fn,ir,is,ts,Ns,Bs,zs;if(typeof v=="number"&&(zs=Z,Z=M,M=v,v=zs),le=le||[1,1],_e=_e||!1,isNaN(M)||isNaN(Z)||!Array.isArray(v)||!Array.isArray(le)||!Ti(ye)||typeof _e!="boolean")throw new Error("Invalid arguments passed to jsPDF.lines");for(J(M,Z),Be=le[0],Ct=le[1],an=v.length,Ns=M,Bs=Z,Dt=0;Dt<an;Dt++)(pn=v[Dt]).length===2?(Ns=pn[0]*Be+Ns,Bs=pn[1]*Ct+Bs,ve(Ns,Bs)):(Fn=pn[0]*Be+Ns,ir=pn[1]*Ct+Bs,is=pn[2]*Be+Ns,ts=pn[3]*Ct+Bs,Ns=pn[4]*Be+Ns,Bs=pn[5]*Ct+Bs,Ve(Fn,ir,is,ts,Ns,Bs));return _e&&ql(),$l(ye),this},u.path=function(v){for(var M=0;M<v.length;M++){var Z=v[M],le=Z.c;switch(Z.op){case"m":J(le[0],le[1]);break;case"l":ve(le[0],le[1]);break;case"c":Ve.apply(this,le);break;case"h":ql()}}return this},u.__private__.rect=u.rect=function(v,M,Z,le,ye){if(isNaN(v)||isNaN(M)||isNaN(Z)||isNaN(le)||!Ti(ye))throw new Error("Invalid arguments passed to jsPDF.rect");return A===j&&(le=-le),Y([O(K(v)),O(q(M)),O(K(Z)),O(K(le)),"re"].join(" ")),$l(ye),this},u.__private__.triangle=u.triangle=function(v,M,Z,le,ye,_e,Be){if(isNaN(v)||isNaN(M)||isNaN(Z)||isNaN(le)||isNaN(ye)||isNaN(_e)||!Ti(Be))throw new Error("Invalid arguments passed to jsPDF.triangle");return this.lines([[Z-v,le-M],[ye-Z,_e-le],[v-ye,M-_e]],v,M,[1,1],Be,!0),this},u.__private__.roundedRect=u.roundedRect=function(v,M,Z,le,ye,_e,Be){if(isNaN(v)||isNaN(M)||isNaN(Z)||isNaN(le)||isNaN(ye)||isNaN(_e)||!Ti(Be))throw new Error("Invalid arguments passed to jsPDF.roundedRect");var Ct=4/3*(Math.SQRT2-1);return ye=Math.min(ye,.5*Z),_e=Math.min(_e,.5*le),this.lines([[Z-2*ye,0],[ye*Ct,0,ye,_e-_e*Ct,ye,_e],[0,le-2*_e],[0,_e*Ct,-ye*Ct,_e,-ye,_e],[2*ye-Z,0],[-ye*Ct,0,-ye,-_e*Ct,-ye,-_e],[0,2*_e-le],[0,-_e*Ct,ye*Ct,-_e,ye,-_e]],v+ye,M,[1,1],Be,!0),this},u.__private__.ellipse=u.ellipse=function(v,M,Z,le,ye){if(isNaN(v)||isNaN(M)||isNaN(Z)||isNaN(le)||!Ti(ye))throw new Error("Invalid arguments passed to jsPDF.ellipse");var _e=4/3*(Math.SQRT2-1)*Z,Be=4/3*(Math.SQRT2-1)*le;return J(v+Z,M),Ve(v+Z,M-Be,v+_e,M-le,v,M-le),Ve(v-_e,M-le,v-Z,M-Be,v-Z,M),Ve(v-Z,M+Be,v-_e,M+le,v,M+le),Ve(v+_e,M+le,v+Z,M+Be,v+Z,M),$l(ye),this},u.__private__.circle=u.circle=function(v,M,Z,le){if(isNaN(v)||isNaN(M)||isNaN(Z)||!Ti(le))throw new Error("Invalid arguments passed to jsPDF.circle");return this.ellipse(v,M,Z,Z,le)},u.setFont=function(v,M,Z){return Z&&(M=F(M,Z)),Fe=es(v,M,{disableWarning:!1}),this};var et=u.__private__.getFont=u.getFont=function(){return qt[es.apply(u,arguments)]};u.__private__.getFontList=u.getFontList=function(){var v,M,Z={};for(v in Vt)if(Vt.hasOwnProperty(v))for(M in Z[v]=[],Vt[v])Vt[v].hasOwnProperty(M)&&Z[v].push(M);return Z},u.addFont=function(v,M,Z,le,ye){var _e=["StandardEncoding","MacRomanEncoding","Identity-H","WinAnsiEncoding"];return arguments[3]&&_e.indexOf(arguments[3])!==-1?ye=arguments[3]:arguments[3]&&_e.indexOf(arguments[3])==-1&&(Z=F(Z,le)),_a.call(this,v,M,Z,ye=ye||"Identity-H")};var It,st=t.lineWidth||.200025,Dn=u.__private__.getLineWidth=u.getLineWidth=function(){return st},ms=u.__private__.setLineWidth=u.setLineWidth=function(v){return st=v,Y(O(K(v))+" w"),this};u.__private__.setLineDash=zt.API.setLineDash=zt.API.setLineDashPattern=function(v,M){if(v=v||[],M=M||0,isNaN(M)||!Array.isArray(v))throw new Error("Invalid arguments passed to
2699jsPDF.setLineDash");return v=v.map(function(Z){return O(K(Z))}).join(" "),M=O(K(M)),Y("["+v+"] "+M+" d"),this};var Gr=u.__private__.getLineHeight=u.getLineHeight=function(){return Ce*It};u.__private__.getLineHeight=u.getLineHeight=function(){return Ce*It};var Er=u.__private__.setLineHeightFactor=u.setLineHeightFactor=function(v){return typeof(v=v||1.15)=="number"&&(It=v),this},Ao=u.__private__.getLineHeightFactor=u.getLineHeightFactor=function(){return It};Er(t.lineHeight);var ti=u.__private__.getHorizontalCoordinate=function(v){return K(v)},ks=u.__private__.getVerticalCoordinate=function(v){return A===N?v:Tt[I].mediaBox.topRightY-Tt[I].mediaBox.bottomLeftY-K(v)},Rh=u.__private__.getHorizontalCoordinateString=u.getHorizontalCoordinateString=function(v){return O(ti(v))},Nb=u.__private__.getVerticalCoordinateString=u.getVerticalCoordinateString=function(v){return O(ks(v))},Oh=t.strokeColor||"0 G";u.__private__.getStrokeColor=u.getDrawColor=function(){return xt(Oh)},u.__private__.setStrokeColor=u.setDrawColor=function(v,M,Z,le){return Oh=Qt({ch1:v,ch2:M,ch3:Z,ch4:le,pdfColorType:"draw",precision:2}),Y(Oh),this};var Up=t.fillColor||"0 g";u.__private__.getFillColor=u.getFillColor=function(){return xt(Up)},u.__private__.setFillColor=u.setFillColor=function(v,M,Z,le){return Up=Qt({ch1:v,ch2:M,ch3:Z,ch4:le,pdfColorType:"fill",precision:2}),Y(Up),this};var Do=t.textColor||"0 g",Sb=u.__private__.getTextColor=u.getTextColor=function(){return xt(Do)};u.__private__.setTextColor=u.setTextColor=function(v,M,Z,le){return Do=Qt({ch1:v,ch2:M,ch3:Z,ch4:le,pdfColorType:"text",precision:3}),this};var Fh=t.charSpace,Ab=u.__private__.getCharSpace=u.getCharSpace=function(){return parseFloat(Fh||0)};u.__private__.setCharSpace=u.setCharSpace=function(v){if(isNaN(v))throw new Error("Invalid argument passed to jsPDF.setCharSpace");return Fh=v,this};var qp=0;u.CapJoinStyles={0:0,butt:0,but:0,miter:0,1:1,round:1,rounded:1,circle:1,2:2,projecting:2,project:2,square:2,bevel:2},u.__private__.setLineCap=u.setLineCap=function(v){var M=u.CapJoinStyles[v];if(M===void 0)throw new Error("Line cap style of '"+v+"' is not recognized. See or extend .CapJoinStyles property for valid styles");return qp=M,Y(M+" J"),this};var Gl=0;u.__private__.setLineJoin=u.setLineJoin=function(v){var M=u.CapJoinStyles[v];if(M===void 0)throw new Error("Line join style of '"+v+"' is not recognized. See or extend .CapJoinStyles property for valid styles");return Gl=M,Y(M+" j"),this},u.__private__.setLineMiterLimit=u.__private__.setMiterLimit=u.setLineMiterLimit=u.setMiterLimit=function(v){if(v=v||0,isNaN(v))throw new Error("Invalid argument passed to jsPDF.setLineMiterLimit");return Y(O(K(v))+" M"),this},u.GState=x0,u.setGState=function(v){(v=typeof v=="string"?it[ht[v]]:Hp(null,v)).equals(nn)||(Y("/"+v.id+" gs"),nn=v)};var Hp=function(v,M){if(!v||!ht[v]){var Z=!1;for(var le in it)if(it.hasOwnProperty(le)&&it[le].equals(M)){Z=!0;break}if(Z)M=it[le];else{var ye="GS"+(Object.keys(it).length+1).toString(10);it[ye]=M,M.id=ye}return v&&(ht[v]=M.id),In.publish("addGState",M),M}};u.addGState=function(v,M){return Hp(v,M),this},u.saveGraphicsState=function(){return Y("q"),Gt.push({key:Fe,size:Ce,color:Do}),this},u.restoreGraphicsState=function(){Y("Q");var v=Gt.pop();return Fe=v.key,Ce=v.size,Do=v.color,nn=null,this},u.setCurrentTransformationMatrix=function(v){return Y(v.toString()+" cm"),this},u.comment=function(v){return Y("#"+v),this};var fd=function(v,M){var Z=v||0;Object.defineProperty(this,"x",{enumerable:!0,get:function(){return Z},set:function(_e){isNaN(_e)||(Z=parseFloat(_e))}});var le=M||0;Object.defineProperty(this,"y",{enumerable:!0,get:function(){return le},set:function(_e){isNaN(_e)||(le=parseFloat(_e))}});var ye="pt";return Object.defineProperty(this,"type",{enumerable:!0,get:function(){return ye},set:function(_e){ye=_e.toString()}}),this},$p=function(v,M,Z,le){fd.call(this,v,M),this.type="rect";var ye=Z||0;Object.defineProperty(this,"w",{enumerable:!0,get:function(){return ye},set:function(Be){isNaN(Be)||(ye=parseFloat(Be))}});var _e=le||0;return Object.defineProperty(this,"h",{enumerable:!0,get:function(){return _e},set:function(Be){isNaN(Be)||(_e=parseFloat(Be))}}),this},Vh=function(){this.page=Mt,this.currentPage=I,this.pages=Pe.slice(0),this.pagesContext=Tt.slice(0),this.x=dt,this.y=rn,this.matrix=Ut,this.width=bg(I),this.height=cl(I),this.outputDestination=tt,this.id="",this.objectNumber=-1};Vh.prototype.restore=function(){Mt=this.page,I=this.currentPage,Tt=this.pagesContext,Pe=this.pages,dt=this.x,rn=this.y,Ut=this.matrix,ll(I,this.width),vg(I,this.height),tt=this.outputDestination};var Wp=function(v,M,Z,le,ye){Tr.push(new Vh),Mt=I=0,Pe=[],dt=v,rn=M,Ut=ye,Xa([Z,le])};for(var Bh in u.beginFormObject=function(v,M,Z,le,ye){return Wp(v,M,Z,le,ye),this},u.endFormObject=function(v){return function(M){if(_r[M])Tr.pop().restore(
vendor: 4,741 bytes, line 2699
2699);else{var Z=new Vh,le="Xo"+(Object.keys(Ts).length+1).toString(10);Z.id=le,_r[M]=le,Ts[le]=Z,In.publish("addFormObject",Z),Tr.pop().restore()}}(v),this},u.doFormObject=function(v,M){var Z=Ts[_r[v]];return Y("q"),Y(M.toString()+" cm"),Y("/"+Z.id+" Do"),Y("Q"),this},u.getFormObject=function(v){var M=Ts[_r[v]];return{x:M.x,y:M.y,width:M.width,height:M.height,matrix:M.matrix}},u.save=function(v,M){return v=v||"generated.pdf",(M=M||{}).returnPromise=M.returnPromise||!1,M.returnPromise===!1?(Rd(ei(ma()),v),typeof Rd.unload=="function"&&en.setTimeout&&setTimeout(Rd.unload,911),this):new Promise(function(Z,le){try{var ye=Rd(ei(ma()),v);typeof Rd.unload=="function"&&en.setTimeout&&setTimeout(Rd.unload,911),Z(ye)}catch(_e){le(_e.message)}})},zt.API)zt.API.hasOwnProperty(Bh)&&(Bh==="events"&&zt.API.events.length?function(v,M){var Z,le,ye;for(ye=M.length-1;ye!==-1;ye--)Z=M[ye][0],le=M[ye][1],v.subscribe.apply(v,[Z].concat(typeof le=="function"?[le]:le))}(In,zt.API.events):u[Bh]=zt.API[Bh]);function bg(v){return Tt[v].mediaBox.topRightX-Tt[v].mediaBox.bottomLeftX}function ll(v,M){Tt[v].mediaBox.topRightX=M+Tt[v].mediaBox.bottomLeftX}function cl(v){return Tt[v].mediaBox.topRightY-Tt[v].mediaBox.bottomLeftY}function vg(v,M){Tt[v].mediaBox.topRightY=M+Tt[v].mediaBox.bottomLeftY}var wg=u.getPageWidth=function(v){return bg(v=v||I)/at},jg=u.setPageWidth=function(v,M){ll(v,M*at)},gd=u.getPageHeight=function(v){return cl(v=v||I)/at},kg=u.setPageHeight=function(v,M){vg(v,M*at)};return u.internal={pdfEscape:ps,getStyle:pd,getFont:et,getFontSize:ot,getCharSpace:Ab,getTextColor:Sb,getLineHeight:Gr,getLineHeightFactor:Ao,getLineWidth:Dn,write:Oe,getHorizontalCoordinate:ti,getVerticalCoordinate:ks,getCoordinateString:Rh,getVerticalCoordinateString:Nb,collections:{},newObject:Xe,newAdditionalObject:ft,newObjectDeferred:pt,newObjectDeferredBegin:jt,getFilters:Zt,putStream:Kt,events:In,scaleFactor:at,pageSize:{getWidth:function(){return wg(I)},setWidth:function(v){jg(I,v)},getHeight:function(){return gd(I)},setHeight:function(v){kg(I,v)}},encryptionOptions:h,encryption:fr,getEncryptor:function(v){return h!==null?fr.encryptor(v,0):function(M){return M}},output:Ul,getNumberOfPages:pa,get pages(){return Pe},out:Y,f2:_,f3:P,getPageInfo:ud,getPageInfoByObjId:So,getCurrentPageInfo:Lh,getPDFVersion:g,Point:fd,Rectangle:$p,Matrix:Bt,hasHotfix:Ta},Object.defineProperty(u.internal.pageSize,"width",{get:function(){return wg(I)},set:function(v){jg(I,v)},enumerable:!0,configurable:!0}),Object.defineProperty(u.internal.pageSize,"height",{get:function(){return gd(I)},set:function(v){kg(I,v)},enumerable:!0,configurable:!0}),(function(v){for(var M=0,Z=yt.length;M<Z;M++){var le=_a.call(this,v[M][0],v[M][1],v[M][2],yt[M][3],!0);p===!1&&(m[le]=!0);var ye=v[M][0].split("-");Ci({id:le,fontName:ye[0],fontStyle:ye[1]||""})}In.publish("addFonts",{fonts:qt,dictionary:Vt})}).call(u,yt),Fe="F1",fn(a,s),In.publish("initialized"),u}mu.prototype.lsbFirstWord=function(t){return String.fromCharCode(255&t,t>>8&255,t>>16&255,t>>24&255)},mu.prototype.toHexString=function(t){return t.split("").map(function(n){return("0"+(255&n.charCodeAt(0)).toString(16)).slice(-2)}).join("")},mu.prototype.hexToBytes=function(t){for(var n=[],s=0;s<t.length;s+=2)n.push(String.fromCharCode(parseInt(t.substr(s,2),16)));return n.join("")},mu.prototype.processOwnerPassword=function(t,n){return kk(jk(n).substr(0,5),t)},mu.prototype.encryptor=function(t,n){var s=jk(this.encryptionKey+String.fromCharCode(255&t,t>>8&255,t>>16&255,255&n,n>>8&255)).substr(0,10);return function(r){return kk(s,r)}},x0.prototype.equals=function(t){var n,s="id,objectNumber,equals";if(!t||Jn(t)!==Jn(this))return!1;var r=0;for(n in this)if(!(s.indexOf(n)>=0)){if(this.hasOwnProperty(n)&&!t.hasOwnProperty(n)||this[n]!==t[n])return!1;r++}for(n in t)t.hasOwnProperty(n)&&s.indexOf(n)<0&&r--;return r===0},zt.API={events:[]},zt.version="4.2.1";var Qs=zt.API,tS=1,Eh=function(t){return t.replace(/\\/g,"\\\\").replace(/\(/g,"\\(").replace(/\)/g,"\\)")},cu=function(t){return t.replace(/\\\\/g,"\\").replace(/\\\(/g,"(").replace(/\\\)/g,")")},kh=function(t){return t.toString().replace(/#/g,"#23").replace(/[\s\n\r()<>[\]{}\/%]/g,function(n){var s=n.charCodeAt(0).toString(16).toUpperCase();return"#"+(s.length===1?"0"+s:s)})},hn=function(t){return t.toFixed(2)},uc=function(t){return t.toFixed(5)};Qs.__acroform__={};var Ya=function(t,n){t.prototype=Object.create(n.prototype),t.prototype.constructor=t},X3=function(t){return t*tS},Lo=function(t){var n=new V8,s=At.internal.getHeight(t)||0,r=At.internal.getWidth(t)||0;return n.BBox=[0,0,Number(hn(r)),Number(hn(s))],n},poe=Qs.__acroform__.setBit=function(t,n){if(t=t||0,n=n||0,isNaN(t)||isNaN(n))throw new Error("Invalid arguments passed to
2699jsPDF.API.__acroform__.setBit");return t|1<<n},moe=Qs.__acroform__.clearBit=function(t,n){if(t=t||0,n=n||0,isNaN(t)||isNaN(n))throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBit");return t&~(1<<n)},foe=Qs.__acroform__.getBit=function(t,n){if(isNaN(t)||isNaN(n))throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBit");return t&1<<n?1:0},nr=Qs.__acroform__.getBitForPdf=function(t,n){if(isNaN(t)||isNaN(n))throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf");return foe(t,n-1)},sr=Qs.__acroform__.setBitForPdf=function(t,n){if(isNaN(t)||isNaN(n))throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf");return poe(t,n-1)},rr=Qs.__acroform__.clearBitForPdf=function(t,n){if(isNaN(t)||isNaN(n))throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf");return moe(t,n-1)},goe=Qs.__acroform__.calculateCoordinates=function(t,n){var s=n.internal.getHorizontalCoordinate,r=n.internal.getVerticalCoordinate,a=t[0],i=t[1],o=t[2],l=t[3],c={};return c.lowerLeft_X=s(a)||0,c.lowerLeft_Y=r(i+l)||0,c.upperRight_X=s(a+o)||0,c.upperRight_Y=r(i)||0,[Number(hn(c.lowerLeft_X)),Number(hn(c.lowerLeft_Y)),Number(hn(c.upperRight_X)),Number(hn(c.upperRight_Y))]},xoe=function(t){if(t.appearanceStreamContent)return t.appearanceStreamContent;if(t.V||t.DV){var n=[],s=t._V||t.DV,r=Nk(t,s),a=t.scope.internal.getFont(t.fontName,t.fontStyle).id;n.push("/Tx BMC"),n.push("q"),n.push("BT"),n.push(t.scope.__private__.encodeColorString(t.color)),n.push("/"+a+" "+hn(r.fontSize)+" Tf"),n.push("1 0 0 1 0 0 Tm"),n.push(r.text),n.push("ET"),n.push("Q"),n.push("EMC");var i=Lo(t);return i.scope=t.scope,i.stream=n.join(` 2700`),i}},Nk=function(t,n){var s=t.fontSize===0?t.maxFontSize:t.fontSize,r={text:"",fontSize:""},a=(n=(n=n.substr(0,1)=="("?n.substr(1):n).substr(n.length-1)==")"?n.substr(0,n.length-1):n).split(" ");a=t.multiline?a.map(function(_){return _.split(` 2701`)}):a.map(function(_){return[_]});var i=s,o=At.internal.getHeight(t)||0;o=o<0?-o:o;var l=At.internal.getWidth(t)||0;l=l<0?-l:l;var c=function(_,P,K){if(_+1<a.length){var q=P+" "+a[_+1][0];return Bx(q,t,K).width<=l-4}return!1};i++;e:for(;i>0;){n="",i--;var d,h,p=Bx("3",t,i).height,m=t.multiline?o-i:(o-p)/2,u=m+=2,y=0,g=0,w=0;if(i<=0){n=`(...) Tj 2702`,n+="% Width of Text: "+Bx(n,t,i=12).width+", FieldWidth:"+l+` 2703`;break}for(var b="",j=0,N=0;N<a.length;N++)if(a.hasOwnProperty(N)){var A=!1;if(a[N].length!==1&&w!==a[N].length-1){if((p+2)*(j+2)+2>o)continue e;b+=a[N][w],A=!0,g=N,N--}else{b=(b+=a[N][w]+" ").substr(b.length-1)==" "?b.substr(0,b.length-1):b;var E=parseInt(N),C=c(E,b,i),F=N>=a.length-1;if(C&&!F){b+=" ",w=0;continue}if(C||F){if(F)g=E;else if(t.multiline&&(p+2)*(j+2)+2>o)continue e}else{if(!t.multiline||(p+2)*(j+2)+2>o)continue e;g=E}}for(var O="",L=y;L<=g;L++){var W=a[L];if(t.multiline){if(L===g){O+=W[w]+" ",w=(w+1)%W.length;continue}if(L===y){O+=W[W.length-1]+" ";continue}}O+=W[0]+" "}switch(O=O.substr(O.length-1)==" "?O.substr(0,O.length-1):O,h=Bx(O,t,i).width,t.textAlign){case"right":d=l-h-2;break;case"center":d=(l-h)/2;break;default:d=2}n+=hn(d)+" "+hn(u)+` Td 2704`,n+="("+Eh(O)+`) Tj 2705`,n+=-hn(d)+` 0 Td 2706`,u=-(i+2),h=0,y=A?g:g+1,j++,b=""}break}return r.text=n,r.fontSize=i,r},Bx=function(t,n,s){var r=n.scope.internal.getFont(n.fontName,n.fontStyle),a=n.scope.getStringUnitWidth(t,{font:r,fontSize:parseFloat(s),charSpace:0})*parseFloat(s);return{height:n.scope.getStringUnitWidth("3",{font:r,fontSize:parseFloat(s),charSpace:0})*parseFloat(s)*1.5,width:a}},yoe={fields:[],xForms:[],acroFormDictionaryRoot:null,printedOut:!1,internal:null,isInitialized:!1},boe=function(t,n){var s={type:"reference",object:t};n.internal.getPageInfo(t.page).pageContext.annotations.find(function(r){return r.type===s.type&&r.object===s.object})===void 0&&n.internal.getPageInfo(t.page).pageContext.annotations.push(s)},voe=function(t,n){if(n.scope=t,t.internal!==void 0&&(t.internal.acroformPlugin===void 0||t.internal.acroformPlugin.isInitialized===!1)){if(ko.FieldNum=0,t.internal.acroformPlugin=JSON.parse(JSON.stringify(yoe)),t.internal.acroformPlugin.acroFormDictionaryRoot)throw new Error("Exception while creating AcroformDictionary");tS=t.internal.scaleFactor,t.internal.acroformPlugin.acroFormDictionaryRoot=new B8,t.internal.acroformPlugin.acroFormDictionaryRoot.scope=t,t.internal.acroformPlugin.acroFormDictionaryRoot._eventID=t.internal.events.subscribe("postPutResources",function(){(function(s){s.internal.events.unsubscribe(s.internal.acroformPlugin.acroFormDictionaryRoot._eventID),delete s.internal.acroformPlugin.acroFormDictionaryRoot._eventID,s.internal.acroformPlugin.printedOut=!0})(t)}),t.internal.events.subscribe("buildDocument",function(){(function(s){s.internal.acroformPlugin.acroFormDictionaryRoot.objId=void 0;var r=s.internal.acroformPlugin.acroFormDictionaryRoot.Fields;for(var a in r)if(r.hasOwnProperty(a)){var i=r[a];
2706i.objId=void 0,i.hasAnnotation&&boe(i,s)}})(t)}),t.internal.events.subscribe("putCatalog",function(){(function(s){if(s.internal.acroformPlugin.acroFormDictionaryRoot===void 0)throw new Error("putCatalogCallback: Root missing.");s.internal.write("/AcroForm "+s.internal.acroformPlugin.acroFormDictionaryRoot.objId+" 0 R")})(t)}),t.internal.events.subscribe("postPutPages",function(s){(function(r,a){var i=!r;for(var o in r||(a.internal.newObjectDeferredBegin(a.internal.acroformPlugin.acroFormDictionaryRoot.objId,!0),a.internal.acroformPlugin.acroFormDictionaryRoot.putStream()),r=r||a.internal.acroformPlugin.acroFormDictionaryRoot.Kids)if(r.hasOwnProperty(o)){var l=r[o],c=[],d=l.Rect;if(l.Rect&&(l.Rect=goe(l.Rect,a)),a.internal.newObjectDeferredBegin(l.objId,!0),l.DA=At.createDefaultAppearanceStream(l),Jn(l)==="object"&&typeof l.getKeyValueListForStream=="function"&&(c=l.getKeyValueListForStream()),l.Rect=d,l.hasAppearanceStream&&!l.appearanceStreamContent){var h=xoe(l);c.push({key:"AP",value:"<</N "+h+">>"}),a.internal.acroformPlugin.xForms.push(h)}if(l.appearanceStreamContent){var p="";for(var m in l.appearanceStreamContent)if(l.appearanceStreamContent.hasOwnProperty(m)){var u=l.appearanceStreamContent[m];
2706if(p+="/"+m+" ",p+="<<",Object.keys(u).length>=1||Array.isArray(u)){for(var o in u)if(u.hasOwnProperty(o)){var y=u[o];typeof y=="function"&&(y=y.call(a,l)),p+="/"+o+" "+y+" ",a.internal.acroformPlugin.xForms.indexOf(y)>=0||a.internal.acroformPlugin.xForms.push(y)}}else typeof(y=u)=="function"&&(y=y.call(a,l)),p+="/"+o+" "+y,a.internal.acroformPlugin.xForms.indexOf(y)>=0||a.internal.acroformPlugin.xForms.push(y);p+=">>"}c.push({key:"AP",value:`<< 2707`+p+">>"})}a.internal.putStream({additionalKeyValues:c,objectId:l.objId}),a.internal.out("endobj")}i&&function(g,w){for(var b in g)if(g.hasOwnProperty(b)){var j=b,N=g[b];w.internal.newObjectDeferredBegin(N.objId,!0),Jn(N)==="object"&&typeof N.putStream=="function"&&N.putStream(),delete g[j]}}(a.internal.acroformPlugin.xForms,a)})(s,t)}),t.internal.acroformPlugin.isInitialized=!0}},F8=Qs.__acroform__.arrayToPdfArray=function(t,n,s){var r=function(o){return o};if(Array.isArray(t)){for(var a="[",i=0;i<t.length;i++)switch(i!==0&&(a+=" "),Jn(t[i])){case"boolean":case"number":case"object":a+=t[i].toString();break;case"string":t[i].substr(0,1)==="/"?a+="/"+kh(t[i].substr(1)):(n!==void 0&&s&&(r=s.internal.getEncryptor(n)),a+="("+Eh(r(t[i].toString()))+")")}return a+"]"}throw new Error("Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray")},Vw=function(t,n,s){var r=function(a){return a};return n!==void 0&&s&&(r=s.internal.getEncryptor(n)),(t=t||"").toString(),"("+Eh(r(t))+")"},Go=function(){this._objId=void 0,this._scope=void 0,Object.defineProperty(this,"objId",{get:function(){if(this._objId===void 0){if(this.scope===void 0)return;this._objId=this.scope.internal.newObjectDeferred()}return this._objId},set:function(t){this._objId=t}}),Object.defineProperty(this,"scope",{value:this._scope,writable:!0})};Go.prototype.toString=function(){return this.objId+" 0 R"},Go.prototype.putStream=function(){var t=this.getKeyValueListForStream();this.scope.internal.putStream({data:this.stream,additionalKeyValues:t,objectId:this.objId}),this.scope.internal.out("endobj")},Go.prototype.getKeyValueListForStream=function(){var t=[],n=Object.getOwnPropertyNames(this).filter(function(i){return i!="content"&&i!="appearanceStreamContent"&&i!="scope"&&i!="objId"&&i.substring(0,1)!="_"});for(var s in n)if(Object.getOwnPropertyDescriptor(this,n[s]).configurable===!1){var r=n[s],a=this[r];a&&(Array.isArray(a)?t.push({key:r,value:F8(a,this.objId,this.scope)}):a instanceof Go?(a.scope=this.scope,t.push({key:r,value:a.objId+" 0 R"})):typeof a!="function"&&t.push({key:r,value:a}))}return t};var V8=function(){Go.call(this),Object.defineProperty(this,"Type",{value:"/XObject",configurable:!1,writable:!0}),Object.defineProperty(this,"Subtype",{value:"/Form",configurable:!1,writable:!0}),Object.defineProperty(this,"FormType",{value:1,configurable:!1,writable:!0});var t,n=[];Object.defineProperty(this,"BBox",{configurable:!1,get:function(){return n},set:function(s){n=s}}),Object.defineProperty(this,"Resources",{value:"2 0 R",configurable:!1,writable:!0}),Object.defineProperty(this,"stream",{enumerable:!1,configurable:!0,set:function(s){t=s.trim()},get:function(){return t||null}})};Ya(V8,Go);var B8=function(){Go.call(this);var t,n=[];Object.defineProperty(this,"Kids",{enumerable:!1,configurable:!0,get:function(){return n.length>0?n:void 0}}),Object.defineProperty(this,"Fields",{enumerable:!1,configurable:!1,get:function(){return n}}),Object.defineProperty(this,"DA",{enumerable:!1,configurable:!1,get:function(){if(t){var s=function(r){return r};return this.scope&&(s=this.scope.internal.getEncryptor(this.objId)),"("+Eh(s(t))+")"}},set:function(s){t=s}})};Ya(B8,Go);var ko=function t(){Go.call(this);var n=4;Object.defineProperty(this,"F",{enumerable:!1,configurable:!1,get:function(){return n},set:function(b){if(isNaN(b))throw new Error('Invalid value "'+b+'" for attribute F supplied.');n=b}}),Object.defineProperty(this,"showWhenPrinted",{enumerable:!0,configurable:!0,get:function(){return!!nr(n,3)},set:function(b){b?this.F=sr(n,3):this.F=rr(n,3)}});var s=0;Object.defineProperty(this,"Ff",{enumerable:!1,configurable:!1,get:function(){return s},set:function(b){if(isNaN(b))throw new Error('Invalid value "'+b+'" for attribute Ff supplied.');s=b}});var r=[];
vendor: 5,449 bytes, line 2707
2707Object.defineProperty(this,"Rect",{enumerable:!1,configurable:!1,get:function(){if(r.length!==0)return r},set:function(b){r=b!==void 0?b:[]}}),Object.defineProperty(this,"x",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[0])?0:r[0]},set:function(b){r[0]=b}}),Object.defineProperty(this,"y",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[1])?0:r[1]},set:function(b){r[1]=b}}),Object.defineProperty(this,"width",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[2])?0:r[2]},set:function(b){r[2]=b}}),Object.defineProperty(this,"height",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[3])?0:r[3]},set:function(b){r[3]=b}});var a="";Object.defineProperty(this,"FT",{enumerable:!0,configurable:!1,get:function(){return a},set:function(b){switch(b){case"/Btn":case"/Tx":case"/Ch":case"/Sig":a=b;break;default:throw new Error('Invalid value "'+b+'" for attribute FT supplied.')}}});var i=null;Object.defineProperty(this,"T",{enumerable:!0,configurable:!1,get:function(){if(!i||i.length<1){if(this instanceof y0)return;i="FieldObject"+t.FieldNum++}var b=function(j){return j};return this.scope&&(b=this.scope.internal.getEncryptor(this.objId)),"("+Eh(b(i))+")"},set:function(b){i=b.toString()}}),Object.defineProperty(this,"fieldName",{configurable:!0,enumerable:!0,get:function(){return i},set:function(b){i=b}});var o="helvetica";Object.defineProperty(this,"fontName",{enumerable:!0,configurable:!0,get:function(){return o},set:function(b){o=b}});var l="normal";Object.defineProperty(this,"fontStyle",{enumerable:!0,configurable:!0,get:function(){return l},set:function(b){l=b}});var c=0;Object.defineProperty(this,"fontSize",{enumerable:!0,configurable:!0,get:function(){return c},set:function(b){c=b}});var d=void 0;Object.defineProperty(this,"maxFontSize",{enumerable:!0,configurable:!0,get:function(){return d===void 0?50/tS:d},set:function(b){d=b}});var h="black";Object.defineProperty(this,"color",{enumerable:!0,configurable:!0,get:function(){return h},set:function(b){h=b}});var p="/F1 0 Tf 0 g";Object.defineProperty(this,"DA",{enumerable:!0,configurable:!1,get:function(){if(!(!p||this instanceof y0||this instanceof ah))return Vw(p,this.objId,this.scope)},set:function(b){b=b.toString(),p=b}});var m=null;Object.defineProperty(this,"DV",{enumerable:!1,configurable:!1,get:function(){if(m)return this instanceof Dr==0?Vw(m,this.objId,this.scope):m},set:function(b){b=b.toString(),m=this instanceof Dr==0?b.substr(0,1)==="("?cu(b.substr(1,b.length-2)):cu(b):b}}),Object.defineProperty(this,"defaultValue",{enumerable:!0,configurable:!0,get:function(){return this instanceof Dr==1?cu(m.substr(1,m.length-1)):m},set:function(b){b=b.toString(),m=this instanceof Dr==1?"/"+kh(b):b}});var u=null;Object.defineProperty(this,"_V",{enumerable:!1,configurable:!1,get:function(){if(u)return u},set:function(b){this.V=b}}),Object.defineProperty(this,"V",{enumerable:!1,configurable:!1,get:function(){if(u)return this instanceof Dr==0?Vw(u,this.objId,this.scope):u},set:function(b){b=b.toString(),u=this instanceof Dr==0?b.substr(0,1)==="("?cu(b.substr(1,b.length-2)):cu(b):b}}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,get:function(){return this instanceof Dr==1?cu(u.substr(1,u.length-1)):u},set:function(b){b=b.toString(),u=this instanceof Dr==1?"/"+kh(b):b}}),Object.defineProperty(this,"hasAnnotation",{enumerable:!0,configurable:!0,get:function(){return this.Rect}}),Object.defineProperty(this,"Type",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?"/Annot":null}}),Object.defineProperty(this,"Subtype",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?"/Widget":null}});var y,g=!1;Object.defineProperty(this,"hasAppearanceStream",{enumerable:!0,configurable:!0,get:function(){return g},set:function(b){b=!!b,g=b}}),Object.defineProperty(this,"page",{enumerable:!0,configurable:!0,get:function(){if(y)return y},set:function(b){y=b}}),Object.defineProperty(this,"readOnly",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,1)},set:function(b){b?this.Ff=sr(this.Ff,1):this.Ff=rr(this.Ff,1)}}),Object.defineProperty(this,"required",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,2)},set:function(b){b?this.Ff=sr(this.Ff,2):this.Ff=rr(this.Ff,2)}}),Object.defineProperty(this,"noExport",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,3)},set:function(b){b?this.Ff=sr(this.Ff,3):this.Ff=rr(this.Ff,3)}});var w=null;Object.defineProperty(this,"Q",{enumerable:!0,configurable:!1,get:function(){if(w!==null)return w},set:function(b){if([0,1,2].indexOf(b)===-1)throw new Error('Invalid value "'+b+'" for attribute Q supplied.');w=b}}),Object.defineProperty(this,"textAlign",{get:function(){var b;switch(w){case 0:default:b="left";break;case 1:b="center";break;case 2:b="right"}return b},configurable:!0,enumerable:!0,set:function(b){switch(b){case"right":case 2:w=2;break;case"center":case 1:w=1;break;default:w=0}}})};Ya(ko,Go);var Ku=function(){ko.call(this),this.FT="/Ch",this.V="()",this.fontName="zapfdingbats";var t=0;Object.defineProperty(this,"TI",{enumerable:!0,configurable:!1,get:function(){return t},set:function(s){t=s}}),Object.defineProperty(this,"topIndex",{enumerable:!0,configurable:!0,get:function(){return t},set:function(s){t=s}});var n=[];Object.defineProperty(this,"Opt",{enumerable:!0,configurable:!1,get:function(){return F8(n,this.objId,this.scope)}
2707,set:function(s){var r,a;a=[],typeof(r=s)=="string"&&(a=function(i,o,l){l||(l=1);for(var c,d=[];c=o.exec(i);)d.push(c[l]);return d}(r,/\((.*?)\)/g)),n=a}}),this.getOptions=function(){return n},this.setOptions=function(s){n=s,this.sort&&n.sort()},this.addOption=function(s){s=(s=s||"").toString(),n.push(s),this.sort&&n.sort()},this.removeOption=function(s,r){for(r=r||!1,s=(s=s||"").toString();n.indexOf(s)!==-1&&(n.splice(n.indexOf(s),1),r!==!1););},Object.defineProperty(this,"combo",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,18)},set:function(s){s?this.Ff=sr(this.Ff,18):this.Ff=rr(this.Ff,18)}}),Object.defineProperty(this,"edit",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,19)},set:function(s){this.combo===!0&&(s?this.Ff=sr(this.Ff,19):this.Ff=rr(this.Ff,19))}}),Object.defineProperty(this,"sort",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,20)},set:function(s){s?(this.Ff=sr(this.Ff,20),n.sort()):this.Ff=rr(this.Ff,20)}}),Object.defineProperty(this,"multiSelect",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,22)},set:function(s){s?this.Ff=sr(this.Ff,22):this.Ff=rr(this.Ff,22)}}),Object.defineProperty(this,"doNotSpellCheck",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,23)},set:function(s){s?this.Ff=sr(this.Ff,23):this.Ff=rr(this.Ff,23)}}),Object.defineProperty(this,"commitOnSelChange",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,27)},set:function(s){s?this.Ff=sr(this.Ff,27):this.Ff=rr(this.Ff,27)}}),this.hasAppearanceStream=!1};Ya(Ku,ko);var Qu=function(){Ku.call(this),this.fontName="helvetica",this.combo=!1};Ya(Qu,Ku);var Yu=function(){Qu.call(this),this.combo=!0};Ya(Yu,Qu);var yy=function(){Yu.call(this),this.edit=!0};Ya(yy,Yu);var Dr=function(){ko.call(this),this.FT="/Btn",Object.defineProperty(this,"noToggleToOff",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,15)},set:function(s){s?this.Ff=sr(this.Ff,15):this.Ff=rr(this.Ff,15)}}),Object.defineProperty(this,"radio",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,16)},set:function(s){s?this.Ff=sr(this.Ff,16):this.Ff=rr(this.Ff,16)}}),Object.defineProperty(this,"pushButton",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,17)},set:function(s){s?this.Ff=sr(this.Ff,17):this.Ff=rr(this.Ff,17)}}),Object.defineProperty(this,"radioIsUnison",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,26)},set:function(s){s?this.Ff=sr(this.Ff,26):this.Ff=rr(this.Ff,26)}});var t,n={};Object.defineProperty(this,"MK",{enumerable:!1,configurable:!1,get:function(){var s=function(i){return i};if(this.scope&&(s=this.scope.internal.getEncryptor(this.objId)),Object.keys(n).length!==0){var r,a=[];for(r in a.push("<<"),n)a.push("/"+r+" ("+Eh(s(n[r]))+")");return a.push(">>"),a.join(` 2708`)}},set:function(s){Jn(s)==="object"&&(n=s)}}),Object.defineProperty(this,"caption",{enumerable:!0,configurable:!0,get:function(){return n.CA||""},set:function(s){typeof s=="string"&&(n.CA=s)}}),Object.defineProperty(this,"AS",{enumerable:!1,configurable:!1,get:function(){return t},set:function(s){var r=s==null?"":s.toString();r.substr(0,1)==="/"&&(r=r.substr(1)),t="/"+kh(r)}}),Object.defineProperty(this,"appearanceState",{enumerable:!0,configurable:!0,get:function(){return t.substr(1,t.length-1)},set:function(s){t="/"+kh(s)}})};Ya(Dr,ko);var by=function(){Dr.call(this),this.pushButton=!0};Ya(by,Dr);var Ju=function(){Dr.call(this),this.radio=!0,this.pushButton=!1;var t=[];Object.defineProperty(this,"Kids",{enumerable:!0,configurable:!1,get:function(){return t},set:function(n){t=n!==void 0?n:[]}})};Ya(Ju,Dr);var y0=function(){var t,n;ko.call(this),Object.defineProperty(this,"Parent",{enumerable:!1,configurable:!1,get:function(){return t},set:function(a){t=a}}),Object.defineProperty(this,"optionName",{enumerable:!1,configurable:!0,get:function(){return n},set:function(a){n=a}});var s,r={};Object.defineProperty(this,"MK",{enumerable:!1,configurable:!1,get:function(){var a=function(l){return l};this.scope&&(a=this.scope.internal.getEncryptor(this.objId));var i,o=[];for(i in o.push("<<"),r)o.push("/"+i+" ("+Eh(a(r[i]))+")");return o.push(">>"),o.join(` 2709`)}
vendor: 9,202 bytes, lines 2709-2718
2709,set:function(a){Jn(a)==="object"&&(r=a)}}),Object.defineProperty(this,"caption",{enumerable:!0,configurable:!0,get:function(){return r.CA||""},set:function(a){typeof a=="string"&&(r.CA=a)}}),Object.defineProperty(this,"AS",{enumerable:!1,configurable:!1,get:function(){return s},set:function(a){var i=a==null?"":a.toString();i.substr(0,1)==="/"&&(i=i.substr(1)),s="/"+kh(i)}}),Object.defineProperty(this,"appearanceState",{enumerable:!0,configurable:!0,get:function(){return s.substr(1,s.length-1)},set:function(a){var i=a==null?"":a.toString();i.substr(0,1)==="/"&&(i=i.substr(1)),s="/"+kh(i)}}),this.caption="l",this.appearanceState="Off",this._AppearanceType=At.RadioButton.Circle,this.appearanceStreamContent=this._AppearanceType.createAppearanceStream(this.optionName)};Ya(y0,ko),Ju.prototype.setAppearance=function(t){if(!("createAppearanceStream"in t)||!("getCA"in t))throw new Error("Couldn't assign Appearance to RadioButton. Appearance was Invalid!");for(var n in this.Kids)if(this.Kids.hasOwnProperty(n)){var s=this.Kids[n];s.appearanceStreamContent=t.createAppearanceStream(s.optionName),s.caption=t.getCA()}},Ju.prototype.createOption=function(t){var n=new y0;return n.Parent=this,n.optionName=t,this.Kids.push(n),woe.call(this.scope,n),n};var vy=function(){Dr.call(this),this.fontName="zapfdingbats",this.caption="3",this.appearanceState="On",this.value="On",this.textAlign="center",this.appearanceStreamContent=At.CheckBox.createAppearanceStream()};Ya(vy,Dr);var ah=function(){ko.call(this),this.FT="/Tx",Object.defineProperty(this,"multiline",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,13)},set:function(n){n?this.Ff=sr(this.Ff,13):this.Ff=rr(this.Ff,13)}}),Object.defineProperty(this,"fileSelect",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,21)},set:function(n){n?this.Ff=sr(this.Ff,21):this.Ff=rr(this.Ff,21)}}),Object.defineProperty(this,"doNotSpellCheck",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,23)},set:function(n){n?this.Ff=sr(this.Ff,23):this.Ff=rr(this.Ff,23)}}),Object.defineProperty(this,"doNotScroll",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,24)},set:function(n){n?this.Ff=sr(this.Ff,24):this.Ff=rr(this.Ff,24)}}),Object.defineProperty(this,"comb",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,25)},set:function(n){n?this.Ff=sr(this.Ff,25):this.Ff=rr(this.Ff,25)}}),Object.defineProperty(this,"richText",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,26)},set:function(n){n?this.Ff=sr(this.Ff,26):this.Ff=rr(this.Ff,26)}});var t=null;Object.defineProperty(this,"MaxLen",{enumerable:!0,configurable:!1,get:function(){return t},set:function(n){t=n}}),Object.defineProperty(this,"maxLength",{enumerable:!0,configurable:!0,get:function(){return t},set:function(n){Number.isInteger(n)&&(t=n)}}),Object.defineProperty(this,"hasAppearanceStream",{enumerable:!0,configurable:!0,get:function(){return this.V||this.DV}})};Ya(ah,ko);var wy=function(){ah.call(this),Object.defineProperty(this,"password",{enumerable:!0,configurable:!0,get:function(){return!!nr(this.Ff,14)},set:function(t){t?this.Ff=sr(this.Ff,14):this.Ff=rr(this.Ff,14)}}),this.password=!0};Ya(wy,ah);var At={CheckBox:{createAppearanceStream:function(){return{N:{On:At.CheckBox.YesNormal},D:{On:At.CheckBox.YesPushDown,Off:At.CheckBox.OffPushDown}}},YesPushDown:function(t){var n=Lo(t);n.scope=t.scope;var s=[],r=t.scope.internal.getFont(t.fontName,t.fontStyle).id,a=t.scope.__private__.encodeColorString(t.color),i=Nk(t,t.caption);return s.push("0.749023 g"),s.push("0 0 "+hn(At.internal.getWidth(t))+" "+hn(At.internal.getHeight(t))+" re"),s.push("f"),s.push("BMC"),s.push("q"),s.push("0 0 1 rg"),s.push("/"+r+" "+hn(i.fontSize)+" Tf "+a),s.push("BT"),s.push(i.text),s.push("ET"),s.push("Q"),s.push("EMC"),n.stream=s.join(` 2710`),n},YesNormal:function(t){var n=Lo(t);n.scope=t.scope;var s=t.scope.internal.getFont(t.fontName,t.fontStyle).id,r=t.scope.__private__.encodeColorString(t.color),a=[],i=At.internal.getHeight(t),o=At.internal.getWidth(t),l=Nk(t,t.caption);return a.push("1 g"),a.push("0 0 "+hn(o)+" "+hn(i)+" re"),a.push("f"),a.push("q"),a.push("0 0 1 rg"),a.push("0 0 "+hn(o-1)+" "+hn(i-1)+" re"),a.push("W"),a.push("n"),a.push("0 g"),a.push("BT"),a.push("/"+s+" "+hn(l.fontSize)+" Tf "+r),a.push(l.text),a.push("ET"),a.push("Q"),n.stream=a.join(` 2711`),n},OffPushDown:function(t){var n=Lo(t);n.scope=t.scope;var s=[];return s.push("0.749023 g"),s.push("0 0 "+hn(At.internal.getWidth(t))+" "+hn(At.internal.getHeight(t))+" re"),s.push("f"),n.stream=s.join(` 2712`),n}},RadioButton:{Circle:{createAppearanceStream:function(t){var n={D:{Off:At.RadioButton.Circle.OffPushDown},N:{}};return n.N[t]=At.RadioButton.Circle.YesNormal,n.D[t]=At.RadioButton.Circle.YesPushDown,n},getCA:function(){return"l"},YesNormal:function(t){var n=Lo(t);n.scope=t.scope;var s=[],r=At.internal.getWidth(t)<=At.internal.getHeight(t)?At.internal.getWidth(t)/4:At.internal.getHeight(t)/4;r=Number((.9*r).toFixed(5));var a=At.internal.Bezier_C,i=Number((r*a).toFixed(5));return s.push("q"),s.push("1 0 0 1 "+uc(At.internal.getWidth(t)/2)+" "+uc(At.internal.getHeight(t)/2)+" cm"),s.push(r+" 0 m"),s.push(r+" "+i+" "+i+" "+r+" 0 "+r+" c"),s.push("-"+i+" "+r+" -"+r+" "+i+" -"+r+" 0 c"),s.push("-"+r+" -"+i+" -"+i+" -"+r+" 0 -"+r+" c"),s.push(i+" -"+r+" "+r+" -"+i+" "+r+" 0 c"),s.push("f"),s.push("Q"),n.stream=s.join(` 2713`),n},YesPushDown:function(t){var n=Lo(t);n.scope=t.scope;var s=[],r=At.internal.getWidth(t)<=At.internal.getHeight(t)?At.internal.getWidth(t)/4:At.internal.getHeight(t)/4;r=Number((.9*r).toFixed(5));var a=Number((2*r).toFixed(5)),i=Number((a*At.internal.Bezier_C).toFixed(5)),o=Number((r*At.internal.Bezier_C).toFixed(5));return s.push("0.749023 g"),s.push("q"),s.push("1 0 0 1 "+uc(At.internal.getWidth(t)/2)+" "+uc(At.internal.getHeight(t)/2)+" cm"),s.push(a+" 0 m"),s.push(a+" "+i+" "+i+" "+a+" 0 "+a+" c"),s.push("-"+i+" "+a+" -"+a+" "+i+" -"+a+" 0 c"),s.push("-"+a+" -"+i+" -"+i+" -"+a+" 0 -"+a+" c"),s.push(i+" -"+a+" "+a+" -"+i+" "+a+" 0 c"),s.push("f"),s.push("Q"),s.push("0 g"),s.push("q"),s.push("1 0 0 1 "+uc(At.internal.getWidth(t)/2)+" "+uc(At.internal.getHeight(t)/2)+" cm"),s.push(r+" 0 m"),s.push(r+" "+o+" "+o+" "+r+" 0 "+r+" c"),s.push("-"+o+" "+r+" -"+r+" "+o+" -"+r+" 0 c"),s.push("-"+r+" -"+o+" -"+o+" -"+r+" 0 -"+r+" c"),s.push(o+" -"+r+" "+r+" -"+o+" "+r+" 0 c"),s.push("f"),s.push("Q"),n.stream=s.join(` 2714`),n},OffPushDown:function(t){var n=Lo(t);n.scope=t.scope;var s=[],r=At.internal.getWidth(t)<=At.internal.getHeight(t)?At.internal.getWidth(t)/4:At.internal.getHeight(t)/4;r=Number((.9*r).toFixed(5));var a=Number((2*r).toFixed(5)),i=Number((a*At.internal.Bezier_C).toFixed(5));return s.push("0.749023 g"),s.push("q"),s.push("1 0 0 1 "+uc(At.internal.getWidth(t)/2)+" "+uc(At.internal.getHeight(t)/2)+" cm"),s.push(a+" 0 m"),s.push(a+" "+i+" "+i+" "+a+" 0 "+a+" c"),s.push("-"+i+" "+a+" -"+a+" "+i+" -"+a+" 0 c"),s.push("-"+a+" -"+i+" -"+i+" -"+a+" 0 -"+a+" c"),s.push(i+" -"+a+" "+a+" -"+i+" "+a+" 0 c"),s.push("f"),s.push("Q"),n.stream=s.join(` 2715`),n}},Cross:{createAppearanceStream:function(t){var n={D:{Off:At.RadioButton.Cross.OffPushDown},N:{}};return n.N[t]=At.RadioButton.Cross.YesNormal,n.D[t]=At.RadioButton.Cross.YesPushDown,n},getCA:function(){return"8"},YesNormal:function(t){var n=Lo(t);n.scope=t.scope;var s=[],r=At.internal.calculateCross(t);return s.push("q"),s.push("1 1 "+hn(At.internal.getWidth(t)-2)+" "+hn(At.internal.getHeight(t)-2)+" re"),s.push("W"),s.push("n"),s.push(hn(r.x1.x)+" "+hn(r.x1.y)+" m"),s.push(hn(r.x2.x)+" "+hn(r.x2.y)+" l"),s.push(hn(r.x4.x)+" "+hn(r.x4.y)+" m"),s.push(hn(r.x3.x)+" "+hn(r.x3.y)+" l"),s.push("s"),s.push("Q"),n.stream=s.join(` 2716`),n},YesPushDown:function(t){var n=Lo(t);n.scope=t.scope;var s=At.internal.calculateCross(t),r=[];return r.push("0.749023 g"),r.push("0 0 "+hn(At.internal.getWidth(t))+" "+hn(At.internal.getHeight(t))+" re"),r.push("f"),r.push("q"),r.push("1 1 "+hn(At.internal.getWidth(t)-2)+" "+hn(At.internal.getHeight(t)-2)+" re"),r.push("W"),r.push("n"),r.push(hn(s.x1.x)+" "+hn(s.x1.y)+" m"),r.push(hn(s.x2.x)+" "+hn(s.x2.y)+" l"),r.push(hn(s.x4.x)+" "+hn(s.x4.y)+" m"),r.push(hn(s.x3.x)+" "+hn(s.x3.y)+" l"),r.push("s"),r.push("Q"),n.stream=r.join(` 2717`),n},OffPushDown:function(t){var n=Lo(t);n.scope=t.scope;var s=[];return s.push("0.749023 g"),s.push("0 0 "+hn(At.internal.getWidth(t))+" "+hn(At.internal.getHeight(t))+" re"),s.push("f"),n.stream=s.join(` 2718`),n}}},createDefaultAppearanceStream:function(t){var n=t.scope.internal.getFont(t.fontName,t.fontStyle).id,s=t.scope.__private__.encodeColorString(t.color);return"/"+n+" "+t.fontSize+" Tf "+s}};At.internal={Bezier_C:.551915024494,calculateCross:function(t){var n=At.internal.getWidth(t),s=At.internal.getHeight(t),r=Math.min(n,s);return{x1:{x:(n-r)/2,y:(s-r)/2+r},x2:{x:(n-r)/2+r,y:(s-r)/2},x3:{x:(n-r)/2,y:(s-r)/2},x4:{x:(n-r)/2+r,y:(s-r)/2+r}}}},At.internal.getWidth=function(t){var n=0;return Jn(t)==="object"&&(n=X3(t.Rect[2])),n},At.internal.getHeight=function(t){var n=0;return Jn(t)==="object"&&(n=X3(t.Rect[3])),n};var woe=Qs.addField=function(t){if(voe(this,t),!(t instanceof ko))throw new Error("Invalid argument passed to
2718jsPDF.addField.");var n;return(n=t).scope.internal.acroformPlugin.printedOut&&(n.scope.internal.acroformPlugin.printedOut=!1,n.scope.internal.acroformPlugin.acroFormDictionaryRoot=null),n.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(n),t.page=t.scope.internal.getCurrentPageInfo().pageNumber,this};Qs.AcroFormChoiceField=Ku,Qs.AcroFormListBox=Qu,Qs.AcroFormComboBox=Yu,Qs.AcroFormEditBox=yy,Qs.AcroFormButton=Dr,Qs.AcroFormPushButton=by,Qs.AcroFormRadioButton=Ju,Qs.AcroFormCheckBox=vy,Qs.AcroFormTextField=ah,Qs.AcroFormPasswordField=wy,Qs.AcroFormAppearance=At,Qs.AcroForm={ChoiceField:Ku,ListBox:Qu,ComboBox:Yu,EditBox:yy,Button:Dr,PushButton:by,RadioButton:Ju,CheckBox:vy,TextField:ah,PasswordField:wy,Appearance:At},zt.AcroForm={ChoiceField:Ku,ListBox:Qu,ComboBox:Yu,EditBox:yy,Button:Dr,PushButton:by,RadioButton:Ju,CheckBox:vy,TextField:ah,PasswordField:wy,Appearance:At};function z8(t){return t.reduce(function(n,s,r){return n[s]=r,n},{})}(function(t){var n="addImage_";t.__addimage__={};var s="UNKNOWN",r={PNG:[[137,80,78,71]],TIFF:[[77,77,0,42],[73,73,42,0]],JPEG:[[255,216,255,224,void 0,void 0,74,70,73,70,0],[255,216,255,225,void 0,void 0,69,120,105,102,0,0],[255,216,255,219],[255,216,255,238]],JPEG2000:[[0,0,0,12,106,80,32,32]],GIF87a:[[71,73,70,56,55,97]],GIF89a:[[71,73,70,56,57,97]],WEBP:[[82,73,70,70,void 0,void 0,void 0,void 0,87,69,66,80]],BMP:[[66,77],[66,65],[67,73],[67,80],[73,67],[80,84]]},a=t.__addimage__.getImageFileTypeByImageData=function(_,P){var K,q,ae,ce,de,H=s;if((P=P||s)==="RGBA"||_.data!==void 0&&_.data instanceof Uint8ClampedArray&&"height"in _&&"width"in _)return"RGBA";if(C(_))for(de in r)for(ae=r[de],K=0;K<ae.length;K+=1){for(ce=!0,q=0;q<ae[K].length;q+=1)if(ae[K][q]!==void 0&&ae[K][q]!==_[q]){ce=!1;break}if(ce===!0){H=de;break}}else for(de in r)for(ae=r[de],K=0;K<ae.length;K+=1){for(ce=!0,q=0;q<ae[K].length;q+=1)if(ae[K][q]!==void 0&&ae[K][q]!==_.charCodeAt(q)){ce=!1;break}if(ce===!0){H=de;break}}return H===s&&P!==s&&(H=P),H},i=function _(P){for(var K=this.internal.write,q=this.internal.putStream,ae=(0,this.internal.getFilters)();ae.indexOf("FlateEncode")!==-1;)ae.splice(ae.indexOf("FlateEncode"),1);P.objectId=this.internal.newObject();var ce=[];if(ce.push({key:"Type",value:"/XObject"}),ce.push({key:"Subtype",value:"/Image"}),ce.push({key:"Width",value:P.width}),ce.push({key:"Height",value:P.height}
2718),P.colorSpace===b.INDEXED?ce.push({key:"ColorSpace",value:"[/Indexed /DeviceRGB "+(P.palette.length/3-1)+" "+("sMask"in P&&P.sMask!==void 0?P.objectId+2:P.objectId+1)+" 0 R]"}):(ce.push({key:"ColorSpace",value:"/"+P.colorSpace}),P.colorSpace===b.DEVICE_CMYK&&ce.push({key:"Decode",value:"[1 0 1 0 1 0 1 0]"})),ce.push({key:"BitsPerComponent",value:P.bitsPerComponent}),"decodeParameters"in P&&P.decodeParameters!==void 0&&ce.push({key:"DecodeParms",value:"<<"+P.decodeParameters+">>"}),"transparency"in P&&Array.isArray(P.transparency)&&P.transparency.length>0){for(var de="",H=0,X=P.transparency.length;H<X;H++)de+=P.transparency[H]+" "+P.transparency[H]+" ";ce.push({key:"Mask",value:"["+de+"]"})}P.sMask!==void 0&&ce.push({key:"SMask",value:P.objectId+1+" 0 R"});var V=P.filter!==void 0?["/"+P.filter]:void 0;if(q({data:P.data,additionalKeyValues:ce,alreadyAppliedFilters:V,objectId:P.objectId}),K("endobj"),"sMask"in P&&P.sMask!==void 0){var he,T=(he=P.sMaskBitsPerComponent)!==null&&he!==void 0?he:P.bitsPerComponent,I={width:P.width,height:P.height,colorSpace:"DeviceGray",bitsPerComponent:T,data:P.sMask};"filter"in P&&(I.decodeParameters="/Predictor ".concat(P.predictor," /Colors 1 /BitsPerComponent ").concat(T," /Columns ").concat(P.width),I.filter=P.filter),_.call(this,I)}if(P.colorSpace===b.INDEXED){var G=this.internal.newObject();q({data:O(new Uint8Array(P.palette)),objectId:G}),K("endobj")}},o=function(){var _=this.internal.collections[n+"images"];for(var P in _)i.call(this,_[P])},l=function(){var _,P=this.internal.collections[n+"images"],K=this.internal.write;for(var q in P)K("/I"+(_=P[q]).index,_.objectId,"0","R")},c=function(){this.internal.collections[n+"images"]||(this.internal.collections[n+"images"]={},this.internal.events.subscribe("putResources",o),this.internal.events.subscribe("putXobjectDict",l))},d=function(){var _=this.internal.collections[n+"images"];return c.call(this),_},h=function(){return Object.keys(this.internal.collections[n+"images"]).length},p=function(_){return typeof t["process"+_.toUpperCase()]=="function"},m=function(_){return Jn(_)==="object"&&_.nodeType===1},u=function(_,P){if(_.nodeName==="IMG"&&_.hasAttribute("src")){var K=""+_.getAttribute("src");if(K.indexOf("data:image/")===0)return xy(unescape(K).split("base64,").pop());var q=t.loadFile(K,!0);if(q!==void 0)return q}if(_.nodeName==="CANVAS"){if(_.width===0||_.height===0)throw new Error("Given canvas must have data. Canvas width: "+_.width+", height: "+_.height);var ae;switch(P){case"PNG":ae="image/png";break;case"WEBP":ae="image/webp";break;default:ae="image/jpeg"}return xy(_.toDataURL(ae,1).split("base64,").pop())}},y=function(_){var P=this.internal.collections[n+"images"];if(P){for(var K in P)if(_===P[K].alias)return P[K]}},g=function(_,P,K){return _||P||(_=-96,P=-96),_<0&&(_=-1*K.width*72/_/this.internal.scaleFactor),P<0&&(P=-1*K.height*72/P/this.internal.scaleFactor),_===0&&(_=P*K.width/K.height),P===0&&(P=_*K.height/K.width),[_,P]},w=function(_,P,K,q,ae,ce){var de=g.call(this,K,q,ae),H=this.internal.getCoordinateString,X=this.internal.getVerticalCoordinateString,V=d.call(this);if(K=de[0],q=de[1],V[ae.index]=ae,ce){ce*=Math.PI/180;var he=Math.cos(ce),T=Math.sin(ce),I=function(re){return re.toFixed(4)},G=[I(he),I(T),I(-1*T),I(he),0,0,"cm"]}this.internal.write("q"),ce?(this.internal.write([1,"0","0",1,H(_),X(P+q),"cm"].join(" ")),this.internal.write(G.join(" ")),this.internal.write([H(K),"0","0",H(q),"0","0","cm"].join(" "))):this.internal.write([H(K),"0","0",H(q),H(_),X(P+q),"cm"].join(" ")),this.isAdvancedAPI()&&this.internal.write([1,0,0,-1,0,0,"cm"].join(" ")),this.internal.write("/I"+ae.index+" Do"),this.internal.write("Q")},b=t.color_spaces={DEVICE_RGB:"DeviceRGB",DEVICE_GRAY:"DeviceGray",DEVICE_CMYK:"DeviceCMYK",CAL_GREY:"CalGray",CAL_RGB:"CalRGB",LAB:"Lab",ICC_BASED:"ICCBased",INDEXED:"Indexed",PATTERN:"Pattern",SEPARATION:"Separation",DEVICE_N:"DeviceN"};t.decode={DCT_DECODE:"DCTDecode",FLATE_DECODE:"FlateDecode",LZW_DECODE:"LZWDecode",JPX_DECODE:"JPXDecode",JBIG2_DECODE:"JBIG2Decode",ASCII85_DECODE:"ASCII85Decode",ASCII_HEX_DECODE:"ASCIIHexDecode",RUN_LENGTH_DECODE:"RunLengthDecode",CCITT_FAX_DECODE:"CCITTFaxDecode"};var j=t.image_compression={NONE:"NONE",FAST:"FAST",MEDIUM:"MEDIUM",SLOW:"SLOW"},N=t.__addimage__.sHashCode=function(_){var P,K,q=0;
2718if(typeof _=="string")for(K=_.length,P=0;P<K;P++)q=(q<<5)-q+_.charCodeAt(P),q|=0;else if(C(_))for(K=_.byteLength/2,P=0;P<K;P++)q=(q<<5)-q+_[P],q|=0;return q},A=t.__addimage__.validateStringAsBase64=function(_){(_=_||"").toString().trim();var P=!0;return _.length===0&&(P=!1),_.length%4!=0&&(P=!1),/^[A-Za-z0-9+/]+$/.test(_.substr(0,_.length-2))===!1&&(P=!1),/^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(_.substr(-2))===!1&&(P=!1),P},E=t.__addimage__.extractImageFromDataUrl=function(_){if(_==null||!(_=_.trim()).startsWith("data:"))return null;var P=_.indexOf(",");return P<0?null:_.substring(0,P).trim().endsWith("base64")?_.substring(P+1):null};t.__addimage__.isArrayBuffer=function(_){return _ instanceof ArrayBuffer};var C=t.__addimage__.isArrayBufferView=function(_){return _ instanceof Int8Array||_ instanceof Uint8Array||_ instanceof Uint8ClampedArray||_ instanceof Int16Array||_ instanceof Uint16Array||_ instanceof Int32Array||_ instanceof Uint32Array||_ instanceof Float32Array||_ instanceof Float64Array},F=t.__addimage__.binaryStringToUint8Array=function(_){for(var P=_.length,K=new Uint8Array(P),q=0;q<P;q++)K[q]=_.charCodeAt(q);return K},O=t.__addimage__.arrayBufferToBinaryString=function(_){for(var P="",K=C(_)?_:new Uint8Array(_),q=0;q<K.length;q+=8192)P+=String.fromCharCode.apply(null,K.subarray(q,q+8192));return P};t.addImage=function(){var _,P,K,q,ae,ce,de,H,X;if(typeof arguments[1]=="number"?(P=s,K=arguments[1],q=arguments[2],ae=arguments[3],ce=arguments[4],de=arguments[5],H=arguments[6],X=arguments[7]):(P=arguments[1],K=arguments[2],q=arguments[3],ae=arguments[4],ce=arguments[5],de=arguments[6],H=arguments[7],X=arguments[8]),Jn(_=arguments[0])==="object"&&!m(_)&&"imageData"in _){var V=_;_=V.imageData,P=V.format||P||s,K=V.x||K||0,q=V.y||q||0,ae=V.w||V.width||ae,ce=V.h||V.height||ce,de=V.alias||de,H=V.compression||H,X=V.rotation||V.angle||X}var he=this.internal.getFilters();if(H===void 0&&he.indexOf("FlateEncode")!==-1&&(H="SLOW"),isNaN(K)||isNaN(q))throw new Error("Invalid coordinates passed to jsPDF.addImage");c.call(this);var T=L.call(this,_,P,de,H);return w.call(this,K,q,ae,ce,T,X),this};var L=function(_,P,K,q){var ae,ce,de;if(typeof _=="string"&&a(_)===s){_=unescape(_);var H=W(_,!1);(H!==""||(H=t.loadFile(_,!0))!==void 0)&&(_=H)}if(m(_)&&(_=u(_,P)),P=a(_,P),!p(P))throw new Error("addImage does not support files of type '"+P+"', please ensure that a plugin for '"+P+"' support is added.");if(((de=K)==null||de.length===0)&&(K=function(X){return typeof X=="string"||C(X)?N(X):C(X.data)?N(X.data):null}(_)),(ae=y.call(this,K))||(_ instanceof Uint8Array||P==="RGBA"||(ce=_,_=F(_)),ae=this["process"+P.toUpperCase()](_,h.call(this),K,function(X){return X&&typeof X=="string"&&(X=X.toUpperCase()),X in t.image_compression?X:j.NONE}(q),ce)),!ae)throw new Error("An unknown error occurred whilst processing the image.");return ae},W=t.__addimage__.convertBase64ToBinaryString=function(_,P){P=typeof P!="boolean"||P;var K,q="";if(typeof _=="string"){var ae;K=(ae=E(_))!==null&&ae!==void 0?ae:_;try{q=xy(K)}catch(ce){if(P)throw A(K)?new Error("atob-Error in jsPDF.convertBase64ToBinaryString "+ce.message):new Error("Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString ")}}return q};t.getImageProperties=function(_){var P,K,q="";if(m(_)&&(_=u(_)),typeof _=="string"&&a(_)===s&&((q=W(_,!1))===""&&(q=t.loadFile(_)||""),_=q),K=a(_),!p(K))throw new Error("addImage does not support files of type '"+K+"', please ensure that a plugin for '"+K+"' support is added.");if(_ instanceof Uint8Array||(_=F(_)),!(P=this["process"+K.toUpperCase()](_)))throw new Error("An unknown error occurred whilst processing the image");return P.fileType=K,P}})(zt.API),function(t){var n=function(s){if(s!==void 0&&s!="")return!0};zt.API.events.push(["addPage",function(s){this.internal.getPageInfo(s.pageNumber).pageContext.annotations=[]}]),t.events.push(["putPage",function(s){for(var r,a,i,o=this.internal.getCoordinateString,l=this.internal.getVerticalCoordinateString,c=this.internal.getPageInfoByObjId(s.objId),d=s.pageContext.annotations,h=!1,p=0;p<d.length&&!h;p++)switch((r=d[p]).type){case"link":(n(r.options.url)||n(r.options.pageNumber))&&(h=!0);break;case"reference":case"text":case"freetext":h=!0}if(h!=0){this.internal.write("/Annots [");for(var m=0;m<d.length;m++){r=d[m];var u=this.internal.pdfEscape,y=this.internal.getEncryptor(s.objId);switch(r.type){case"reference":this.internal.write(" "+r.object.objId+" 0 R ");break;case"text":var g=this.internal.newAdditionalObject(),w=this.internal.newAdditionalObject(),b=this.internal.getEncryptor(g.objId),j=r.title||"Note";i="<</Type /Annot /Subtype /Text "+(a="/Rect ["+o(r.bounds.x)+" "+l(r.bounds.y+r.bounds.h)+" "+o(r.bounds.x+r.boun
vendor: 3,997 bytes, line 2718
2718ds.w)+" "+l(r.bounds.y)+"] ")+"/Contents ("+u(b(r.contents))+")",i+=" /Popup "+w.objId+" 0 R",i+=" /P "+c.objId+" 0 R",i+=" /T ("+u(b(j))+") >>",g.content=i;var N=g.objId+" 0 R";i="<</Type /Annot /Subtype /Popup "+(a="/Rect ["+o(r.bounds.x+30)+" "+l(r.bounds.y+r.bounds.h)+" "+o(r.bounds.x+r.bounds.w+30)+" "+l(r.bounds.y)+"] ")+" /Parent "+N,r.open&&(i+=" /Open true"),i+=" >>",w.content=i,this.internal.write(g.objId,"0 R",w.objId,"0 R");break;case"freetext":a="/Rect ["+o(r.bounds.x)+" "+l(r.bounds.y)+" "+o(r.bounds.x+r.bounds.w)+" "+l(r.bounds.y+r.bounds.h)+"] ";var A="font: Helvetica,sans-serif 12.0pt; text-align:left; color:#"+(r.color||"#000000");i="<</Type /Annot /Subtype /FreeText "+a+"/Contents ("+u(y(r.contents))+")",i+=" /DS("+u(y(A))+")",i+=" /Border [0 0 0]",i+=" >>",this.internal.write(i);break;case"link":if(r.options.name){var E=this.annotations._nameMap[r.options.name];r.options.pageNumber=E.page,r.options.top=E.y}else r.options.top||(r.options.top=0);if(a="/Rect ["+r.finalBounds.x+" "+r.finalBounds.y+" "+r.finalBounds.w+" "+r.finalBounds.h+"] ",i="",r.options.url)i="<</Type /Annot /Subtype /Link "+a+"/Border [0 0 0] /A <</S /URI /URI ("+u(y(r.options.url))+") >>";else if(r.options.pageNumber)switch(i="<</Type /Annot /Subtype /Link "+a+"/Border [0 0 0] /Dest ["+this.internal.getPageInfo(r.options.pageNumber).objId+" 0 R",r.options.magFactor=r.options.magFactor||"XYZ",r.options.magFactor){case"Fit":i+=" /Fit]";break;case"FitH":i+=" /FitH "+r.options.top+"]";break;case"FitV":r.options.left=r.options.left||0,i+=" /FitV "+r.options.left+"]";break;default:var C=l(r.options.top);r.options.left=r.options.left||0,r.options.zoom===void 0&&(r.options.zoom=0),i+=" /XYZ "+r.options.left+" "+C+" "+r.options.zoom+"]"}i!=""&&(i+=" >>",this.internal.write(i))}}this.internal.write("]")}}]),t.createAnnotation=function(s){var r=this.internal.getCurrentPageInfo();switch(s.type){case"link":this.link(s.bounds.x,s.bounds.y,s.bounds.w,s.bounds.h,s);break;case"text":case"freetext":r.pageContext.annotations.push(s)}},t.link=function(s,r,a,i,o){var l=this.internal.getCurrentPageInfo(),c=this.internal.getCoordinateString,d=this.internal.getVerticalCoordinateString;l.pageContext.annotations.push({finalBounds:{x:c(s),y:d(r),w:c(s+a),h:d(r+i)},options:o,type:"link"})},t.textWithLink=function(s,r,a,i){var o,l,c=this.getTextWidth(s),d=this.internal.getLineHeight()/this.internal.scaleFactor;if(i.maxWidth!==void 0){l=i.maxWidth;var h=this.splitTextToSize(s,l).length;o=Math.ceil(d*h)}else l=c,o=d;return this.text(s,r,a,i),a+=.2*d,i.align==="center"&&(r-=c/2),i.align==="right"&&(r-=c),this.link(r,a-d,l,o,i),c},t.getTextWidth=function(s){var r=this.internal.getFontSize();return this.getStringUnitWidth(s)*r/this.internal.scaleFactor}}(zt.API),function(t){var n={1569:[65152],1570:[65153,65154],1571:[65155,65156],1572:[65157,65158],1573:[65159,65160],1574:[65161,65162,65163,65164],1575:[65165,65166],1576:[65167,65168,65169,65170],1577:[65171,65172],1578:[65173,65174,65175,65176],1579:[65177,65178,65179,65180],1580:[65181,65182,65183,65184],1581:[65185,65186,65187,65188],1582:[65189,65190,65191,65192],1583:[65193,65194],1584:[65195,65196],1585:[65197,65198],1586:[65199,65200],1587:[65201,65202,65203,65204],1588:[65205,65206,65207,65208],1589:[65209,65210,65211,65212],1590:[65213,65214,65215,65216],1591:[65217,65218,65219,65220],1592:[65221,65222,65223,65224],1593:[65225,65226,65227,65228],1594:[65229,65230,65231,65232],1601:[65233,65234,65235,65236],1602:[65237,65238,65239,65240],1603:[65241,65242,65243,65244],1604:[65245,65246,65247,65248],1605:[65249,65250,65251,65252],1606:[65253,65254,65255,65256],1607:[65257,65258,65259,65260],1608:[65261,65262],1609:[65263,65264,64488,64489],1610:[65265,65266,65267,65268],1649:[64336,64337],1655:[64477],1657:[64358,64359,64360,64361],1658:[64350,64351,64352,64353],1659:[64338,64339,64340,64341],1662:[64342,64343,64344,64345],1663:[64354,64355,64356,64357],1664:[64346,64347,64348,64349],1667:[64374,64375,64376,6437
27187],1668:[64370,64371,64372,64373],1670:[64378,64379,64380,64381],1671:[64382,64383,64384,64385],1672:[64392,64393],1676:[64388,64389],1677:[64386,64387],1678:[64390,64391],1681:[64396,64397],1688:[64394,64395],1700:[64362,64363,64364,64365],1702:[64366,64367,64368,64369],1705:[64398,64399,64400,64401],1709:[64467,64468,64469,64470],1711:[64402,64403,64404,64405],1713:[64410,64411,64412,64413],1715:[64406,64407,64408,64409],1722:[64414,64415],1723:[64416,64417,64418,64419],1726:[64426,64427,64428,64429],1728:[64420,64421],1729:[64422,64423,64424,64425],1733:[64480,64481],1734:[64473,64474],1735:[64471,64472],1736:[64475,64476],1737:[64482,64483],1739:[64478,64479],1740:[64508,64509,64510,64511],1744:[64484,64485,64486,64487],1746:[64430,64431],1747:[64432,64433]},s={65247:{65154:65269,65156:65271,65160:65273,65166:65275},65248:{65154:65270,65156:65272,65160:65274,65166:65276},65165:{65247:{65248:{65258:65010}}},1617:{1612:64606,1613:64607,1614:64608,1615:64609,1616:64610}},r={1612:64606,1613:64607,1614:64608,1615:64609,1616:64610},a=[1570,1571,1573,1575];t.__arabicParser__={};var i=t.__arabicParser__.isInArabicSubstitutionA=function(g){return n[g.charCodeAt(0)]!==void 0},o=t.__arabicParser__.isArabicLetter=function(g){return typeof g=="string"&&/^[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]+$/.test(g)},l=t.__arabicParser__.isArabicEndLetter=function(g){return o(g)&&i(g)&&n[g.charCodeAt(0)].length<=2},c=t.__arabicParser__.isArabicAlfLetter=function(g){return o(g)&&a.indexOf(g.charCodeAt(0))>=0};t.__arabicParser__.arabicLetterHasIsolatedForm=function(g){return o(g)&&i(g)&&n[g.charCodeAt(0)].length>=1};var d=t.__arabicParser__.arabicLetterHasFinalForm=function(g){return o(g)&&i(g)&&n[g.charCodeAt(0)].length>=2};t.__arabicParser__.arabicLetterHasInitialForm=function(g){return o(g)&&i(g)&&n[g.charCodeAt(0)].length>=3};var h=t.__arabicParser__.arabicLetterHasMedialForm=function(g){return o(g)&&i(g)&&n[g.charCodeAt(0)].length==4},p=t.__arabicParser__.resolveLigatures=function(g){var w=0,b=s,j="",N=0;for(w=0;w<g.length;w+=1)b[g.charCodeAt(w)]!==void 0?(N++,typeof(b=b[g.charCodeAt(w)])=="number"&&(j+=String.fromCharCode(b),b=s,N=0),w===g.length-1&&(b=s,j+=g.charAt(w-(N-1)),w-=N-1,N=0)):(b=s,j+=g.charAt(w-N),w-=N,N=0);return j};t.__arabicParser__.isArabicDiacritic=function(g){return g!==void 0&&r[g.charCodeAt(0)]!==void 0};var m=t.__arabicParser__.getCorrectForm=function(g,w,b){return o(g)?i(g)===!1?-1:!d(g)||!o(w)&&!o(b)||!o(b)&&l(w)||l(g)&&!o(w)||l(g)&&c(w)||l(g)&&l(w)?0:h(g)&&o(w)&&!l(w)&&o(b)&&d(b)?3:l(g)||!o(b)?1:2:-1},u=function(g){var w=0,b=0,j=0,N="",A="",E="",C=(g=g||"").split("\\s+"),F=[];for(w=0;w<C.length;w+=1){for(F.push(""),b=0;b<C[w].length;b+=1)N=C[w][b],A=C[w][b-1],E=C[w][b+1],o(N)?(j=m(N,A,E),F[w]+=j!==-1?String.fromCharCode(n[N.charCodeAt(0)][j]):N):F[w]+=N;F[w]=p(F[w])}return F.join(" ")},y=t.__arabicParser__.processArabic=t.processArabic=function(){var g,w=typeof arguments[0]=="string"?arguments[0]:arguments[0].text,b=[];if(Array.isArray(w)){var j=0;for(b=[],j=0;j<w.length;j+=1)Array.isArray(w[j])?b.push([u(w[j][0]),w[j][1],w[j][2]]):b.push([u(w[j])]);g=b}else g=u(w);return typeof arguments[0]=="string"?g:(arguments[0].text=g,arguments[0])};t.events.push(["preProcessText",y])}(zt.API),zt.API.autoPrint=function(t){var n;return(t=t||{}).variant=t.variant||"non-conform",t.variant==="javascript"?this.addJS("print({});"):(this.internal.events.subscribe("postPutResources",function(){n=this.internal.newObject(),this.internal.out("<<"),this.internal.out("/S /Named"),this.internal.out("/Type /Action"),this.internal.out("/N /Print"),this.internal.out(">>"),this.internal.out("endobj")}),this.internal.events.subscribe("putCatalog",function(){this.internal.out("/OpenAction "+n+" 0 R")})),this},function(t){var n=function(){var s=void 0;Object.defineProperty(this,"pdf",{get:function(){return s},set:function(l){s=l}});var r=150;Object.defineProperty(this,"width",{get:function(){return r},set:function(l){r=isNaN(l)||Number.isInteger(l)===!1||l<0?150:l,this.getContext("2d").pageWrapXEnabled&&(this.getContext("2d").pageWrapX=r+1)}});var a=300;Object.defineProperty(this,"height",{get:function(){return a}
2718,set:function(l){a=isNaN(l)||Number.isInteger(l)===!1||l<0?300:l,this.getContext("2d").pageWrapYEnabled&&(this.getContext("2d").pageWrapY=a+1)}});var i=[];Object.defineProperty(this,"childNodes",{get:function(){return i},set:function(l){i=l}});var o={};Object.defineProperty(this,"style",{get:function(){return o},set:function(l){o=l}}),Object.defineProperty(this,"parentNode",{})};n.prototype.getContext=function(s,r){var a;if((s=s||"2d")!=="2d")return null;for(a in r)this.pdf.context2d.hasOwnProperty(a)&&(this.pdf.context2d[a]=r[a]);return this.pdf.context2d._canvas=this,this.pdf.context2d},n.prototype.toDataURL=function(){throw new Error("toDataURL is not implemented.")},t.events.push(["initialized",function(){this.canvas=new n,this.canvas.pdf=this}])}(zt.API),function(t){var n={left:0,top:0,bottom:0,right:0},s=!1,r=function(){this.internal.__cell__===void 0&&(this.internal.__cell__={},this.internal.__cell__.padding=3,this.internal.__cell__.headerFunction=void 0,this.internal.__cell__.margins=Object.assign({},n),this.internal.__cell__.margins.width=this.getPageWidth(),a.call(this))},a=function(){this.internal.__cell__.lastCell=new i,this.internal.__cell__.pages=1},i=function(){var c=arguments[0];Object.defineProperty(this,"x",{enumerable:!0,get:function(){return c},set:function(g){c=g}});var d=arguments[1];Object.defineProperty(this,"y",{enumerable:!0,get:function(){return d},set:function(g){d=g}});var h=arguments[2];Object.defineProperty(this,"width",{enumerable:!0,get:function(){return h},set:function(g){h=g}});var p=arguments[3];Object.defineProperty(this,"height",{enumerable:!0,get:function(){return p},set:function(g){p=g}});var m=arguments[4];Object.defineProperty(this,"text",{enumerable:!0,get:function(){return m},set:function(g){m=g}});var u=arguments[5];Object.defineProperty(this,"lineNumber",{enumerable:!0,get:function(){return u},set:function(g){u=g}});var y=arguments[6];return Object.defineProperty(this,"align",{enumerable:!0,get:function(){return y},set:function(g){y=g}}),this};i.prototype.clone=function(){return new i(this.x,this.y,this.width,this.height,this.text,this.lineNumber,this.align)},i.prototype.toArray=function(){return[this.x,this.y,this.width,this.height,this.text,this.lineNumber,this.align]},t.setHeaderFunction=function(c){return r.call(this),this.internal.__cell__.headerFunction=typeof c=="function"?c:void 0,this},t.getTextDimensions=function(c,d){r.call(this);var h=(d=d||{}).fontSize||this.getFontSize(),p=d.font||this.getFont(),m=d.scaleFactor||this.internal.scaleFactor,u=0,y=0,g=0,w=this;if(!Array.isArray(c)&&typeof c!="string"){if(typeof c!="number")throw new Error("getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.");c=String(c)}var b=d.maxWidth;b>0?typeof c=="string"?c=this.splitTextToSize(c,b):Object.prototype.toString.call(c)==="[object Array]"&&(c=c.reduce(function(N,A){return N.concat(w.splitTextToSize(A,b))},[])):c=Array.isArray(c)?c:[c];for(var j=0;j<c.length;j++)u<(g=this.getStringUnitWidth(c[j],{font:p})*h)&&(u=g);return u!==0&&(y=c.length),{w:u/=m,h:Math.max((y*h*this.getLineHeightFactor()-h*(this.getLineHeightFactor()-1))/m,0)}},t.cellAddPage=function(){r.call(this),this.addPage();var c=this.internal.__cell__.margins||n;return this.internal.__cell__.lastCell=new i(c.left,c.top,void 0,void 0),this.internal.__cell__.pages+=1,this};var o=t.cell=function(){var c;c=arguments[0]instanceof i?arguments[0]:new i(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]),r.call(this);var d=this.internal.__cell__.lastCell,h=this.internal.__cell__.padding,p=this.internal.__cell__.margins||n,m=this.internal.__cell__.tableHeaderRow,u=this.internal.__cell__.printHeaders;return d.lineNumber!==void 0&&(d.lineNumber===c.lineNumber?(c.x=(d.x||0)+(d.width||0),c.y=d.y||0):d.y+d.height+c.height+p.bottom>this.getPageHeight()?(this.cellAddPage(),c.y=p.top,u&&m&&(this.printHeaderRow(c.lineNumber,!0),c.y+=m[0].height)):c.y=d.y+d.height||c.y),c.text[0]!==void 0&&(this.rect(c.x,c.y,c.width,c.height,s===!0?"FD":void 0),c.align==="right"?this.text(c.text,c.x+c.width-h,c.y+h,{align:"right",baseline:"top"}):c.align==="center"?this.text(c.text,c.x+c.width/2,c.y+h,{align:"center",baseline:"top",maxWidth:c.width-h-h}):this.text(c.text,c.x+h,c.y+h,{align:"left",baseline:"top",maxWidth:c.width-h-h})),this.internal.__cell__.lastCell=c,this};t.table=function(c,d,h,p,m){if(r.call(this),!h)throw new Error("No data for PDF table.");var u,y,g,w,b=[],j=[],N=[],A={},E={},C=[],F=[],O=(m=m||{}).autoSize||!1,L=m.printHeaders!==!1,W=m.css&&m.css["font-size"]!==void 0?16*m.css["font-size"]:m.fontSize||12,_=m.margins||Object.assign({width:this.getPageWidth()},n),P=typeof m.padding=="number"?m.padding:3,K=m.headerBackgroun
vendor: 1,533 bytes, line 2718
2718dColor||"#c8c8c8",q=m.headerTextColor||"#000";if(a.call(this),this.internal.__cell__.printHeaders=L,this.internal.__cell__.margins=_,this.internal.__cell__.table_font_size=W,this.internal.__cell__.padding=P,this.internal.__cell__.headerBackgroundColor=K,this.internal.__cell__.headerTextColor=q,this.setFontSize(W),p==null)j=b=Object.keys(h[0]),N=b.map(function(){return"left"});else if(Array.isArray(p)&&Jn(p[0])==="object")for(b=p.map(function(V){return V.name}),j=p.map(function(V){return V.prompt||V.name||""}),N=p.map(function(V){return V.align||"left"}),u=0;u<p.length;u+=1)E[p[u].name]=.7499990551181103*p[u].width;else Array.isArray(p)&&typeof p[0]=="string"&&(j=b=p,N=b.map(function(){return"left"}));if(O||Array.isArray(p)&&typeof p[0]=="string")for(u=0;u<b.length;u+=1){for(A[w=b[u]]=h.map(function(V){return V[w]}),this.setFont(void 0,"bold"),C.push(this.getTextDimensions(j[u],{fontSize:this.internal.__cell__.table_font_size,scaleFactor:this.internal.scaleFactor}).w),y=A[w],this.setFont(void 0,"normal"),g=0;g<y.length;g+=1)C.push(this.getTextDimensions(y[g],{fontSize:this.internal.__cell__.table_font_size,scaleFactor:this.internal.scaleFactor}).w);E[w]=Math.max.apply(null,C)+P+P,C=[]}if(L){var ae={};for(u=0;u<b.length;u+=1)ae[b[u]]={},ae[b[u]].text=j[u],ae[b[u]].align=N[u];var ce=l.call(this,ae,E);F=b.map(function(V){return new i(c,d,E[V],ce,ae[V].text,void 0,ae[V].align)}),this.setTableHeaderRow(F),this.printHeaderRow(1,!1)}var de=p.reduce(function(V,he){return V[he.name]=he.align,V},{});for(u=0;u<h.length;
vendor: 5,473 bytes, line 2718
2718u+=1){"rowStart"in m&&m.rowStart instanceof Function&&m.rowStart({row:u,data:h[u]},this);var H=l.call(this,h[u],E);for(g=0;g<b.length;g+=1){var X=h[u][b[g]];"cellStart"in m&&m.cellStart instanceof Function&&m.cellStart({row:u,col:g,data:X},this),o.call(this,new i(c,d,E[b[g]],H,X,u+2,de[b[g]]))}}return this.internal.__cell__.table_x=c,this.internal.__cell__.table_y=d,this};var l=function(c,d){var h=this.internal.__cell__.padding,p=this.internal.__cell__.table_font_size,m=this.internal.scaleFactor;return Object.keys(c).map(function(u){var y=c[u];return this.splitTextToSize(y.hasOwnProperty("text")?y.text:y,d[u]-h-h)},this).map(function(u){return this.getLineHeightFactor()*u.length*p/m+h+h},this).reduce(function(u,y){return Math.max(u,y)},0)};t.setTableHeaderRow=function(c){r.call(this),this.internal.__cell__.tableHeaderRow=c},t.printHeaderRow=function(c,d){if(r.call(this),!this.internal.__cell__.tableHeaderRow)throw new Error("Property tableHeaderRow does not exist.");var h;if(s=!0,typeof this.internal.__cell__.headerFunction=="function"){var p=this.internal.__cell__.headerFunction(this,this.internal.__cell__.pages);this.internal.__cell__.lastCell=new i(p[0],p[1],p[2],p[3],void 0,-1)}this.setFont(void 0,"bold");for(var m=[],u=0;u<this.internal.__cell__.tableHeaderRow.length;u+=1){h=this.internal.__cell__.tableHeaderRow[u].clone(),d&&(h.y=this.internal.__cell__.margins.top||0,m.push(h)),h.lineNumber=c;var y=this.getTextColor();this.setTextColor(this.internal.__cell__.headerTextColor),this.setFillColor(this.internal.__cell__.headerBackgroundColor),o.call(this,h),this.setTextColor(y)}m.length>0&&this.setTableHeaderRow(m),this.setFont(void 0,"normal"),s=!1}}(zt.API);var U8={italic:["italic","oblique","normal"],oblique:["oblique","italic","normal"],normal:["normal","oblique","italic"]},q8=["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded"],Sk=z8(q8),H8=[100,200,300,400,500,600,700,800,900],joe=z8(H8);function Bw(t){var n=t.family.replace(/"|'/g,"").toLowerCase(),s=function(i){return U8[i=i||"normal"]?i:"normal"}(t.style),r=function(i){return i?typeof i=="number"?i>=100&&i<=900&&i%100==0?i:400:/^\d00$/.test(i)?parseInt(i):i==="bold"?700:400:400}(t.weight),a=function(i){return typeof Sk[i=i||"normal"]=="number"?i:"normal"}(t.stretch);return{family:n,style:s,weight:r,stretch:a,src:t.src||[],ref:t.ref||{name:n,style:[a,s,r].join(" ")}}}function Z3(t,n,s,r){var a;for(a=s;a>=0&&a<n.length;a+=r)if(t[n[a]])return t[n[a]];for(a=s;a>=0&&a<n.length;a-=r)if(t[n[a]])return t[n[a]]}var koe={"sans-serif":"helvetica",fixed:"courier",monospace:"courier",terminal:"courier",cursive:"times",fantasy:"times",serif:"times"},e6={caption:"times",icon:"times",menu:"times","message-box":"times","small-caption":"times","status-bar":"times"};function t6(t){return[t.stretch,t.style,t.weight,t.family].join(" ")}function n6(t){return t.trimLeft()}function Noe(t,n){for(var s=0;s<t.length;){if(t.charAt(s)===n)return[t.substring(0,s),t.substring(s+1)];s+=1}return null}function Soe(t){var n=t.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);return n===null?null:[n[0],t.substring(n[0].length)]}var du,zx,s6,r6,a6,zw=["times"];function i6(t,n,s,r,a){var i=4,o=l6;switch(a){case zt.API.image_compression.FAST:i=1,o=o6;break;case zt.API.image_compression.MEDIUM:i=6,o=c6;break;case zt.API.image_compression.SLOW:i=9,o=d6}t=function(c,d,h,p){for(var m,u=c.length/d,y=new Uint8Array(c.length+u),g=[Aoe,o6,l6,c6,d6],w=0;w<u;w+=1){var b=w*d,j=c.subarray(b,b+d);if(p)y.set(p(j,h,m),b+w);else{for(var N=g.length,A=[],E=0;E<N;E+=1)A[E]=g[E](j,h,m);var C=Ioe(A.concat());y.set(A[C],b+w)}m=j}return y}(t,n,Math.ceil(s*r/8),o);var l=uk(t,{level:i});return zt.API.__addimage__.arrayBufferToBinaryString(l)}function Aoe(t){var n=Array.apply([],t);return n.unshift(0),n}function o6(t,n){var s=t.length,r=[];r[0]=1;for(var a=0;a<s;a+=1){var i=t[a-n]||0;r[a+1]=t[a]-i+256&255}return r}function l6(t,n,s){var r=t.length,a=[];a[0]=2;for(var i=0;i<r;i+=1){var o=s&&s[i]||0;a[i+1]=t[i]-o+256&255}return a}function c6(t,n,s){var r=t.length,a=[];a[0]=3;for(var i=0;i<r;i+=1){var o=t[i-n]||0,l=s&&s[i]||0;a[i+1]=t[i]+256-(o+l>>>1)&255}return a}function d6(t,n,s){var r=t.length,a=[];a[0]=4;for(var i=0;i<r;i+=1){var o=Doe(t[i-n]||0,s&&s[i]||0,s&&s[i-n]||0);a[i+1]=t[i]-o+256&255}return a}function Doe(t,n,s){if(t===n&&n===s)return t;var r=Math.abs(n-s),a=Math.abs(t-s),i=Math.abs(t+n-s-s);return r<=a&&r<=i?t:a<=i?n:s}function Ioe(t){var n=t.map(function(s){return s.reduce(function(r,a){return r+Math.abs(a)},0)});return n.indexOf(Math.min.apply(null,n))}function Uw(t,n,s){var r=n*s,a=Math.floor(r/8),i=16-(r-8*a+s),o=(1<<s)-1;return $8(t,a)>>i&o}function h6(t,n,s,r){var a=s*r,i=Math.floor(a/8),o=16-(a-8*i+r),l=(1<<r)-1,c=(n&l)<<o;(function(d,h,p){if(h+1<d.byteLength)d.setUint16(h,p,!1);else{var m=p>>8&255;d.setUint8(h,m)}})(t,i,$8(t,i)&~(l<<o)&65535|c)}function $8(t,n){return n+1<t.byteLength?t.getUint16(n,!1):t.getUint8(n)<<8}function Coe(t){var n=0;if(t[n++]!==71||t[n++]!==73||t[n++]!==70||t[n++]!==56||(t[n++]+1&253)!=56||t[n++]!==97)throw new Error("Invalid GIF 87a/89a header.");var s=t[n++]|t[n++]<<8,r=t[n++]|t[n++]<<8,a=t[n++],i=a>>7,o=1<<1+(7&a);t[n++],t[n++];var l=null,c=null;i&&(l=n,c=o,n+=3*o);var d=!0,h=[],p=0,m=null,u=0,y=null;for(this.width=s,this.height=r;d&&n<t.length;)switch(t[n++]){case 33:switch(t[n++]){case 255:if(t[n]!==11||t[n+1]==78&&t[n+2]==69&&t[n+3]==84&&t[n+4]==83&&t[
vendor: 19,325 bytes, lines 2718-2755
2718n+5]==67&&t[n+6]==65&&t[n+7]==80&&t[n+8]==69&&t[n+9]==50&&t[n+10]==46&&t[n+11]==48&&t[n+12]==3&&t[n+13]==1&&t[n+16]==0)n+=14,y=t[n++]|t[n++]<<8,n++;else for(n+=12;;){if(!((_=t[n++])>=0))throw Error("Invalid block size");if(_===0)break;n+=_}break;case 249:if(t[n++]!==4||t[n+4]!==0)throw new Error("Invalid graphics extension block.");var g=t[n++];p=t[n++]|t[n++]<<8,m=t[n++],1&g||(m=null),u=g>>2&7,n++;break;case 254:for(;;){if(!((_=t[n++])>=0))throw Error("Invalid block size");if(_===0)break;n+=_}break;default:throw new Error("Unknown graphic control label: 0x"+t[n-1].toString(16))}break;case 44:var w=t[n++]|t[n++]<<8,b=t[n++]|t[n++]<<8,j=t[n++]|t[n++]<<8,N=t[n++]|t[n++]<<8,A=t[n++],E=A>>6&1,C=1<<1+(7&A),F=l,O=c,L=!1;A>>7&&(L=!0,F=n,O=C,n+=3*C);var W=n;for(n++;;){var _;if(!((_=t[n++])>=0))throw Error("Invalid block size");if(_===0)break;n+=_}h.push({x:w,y:b,width:j,height:N,has_local_palette:L,palette_offset:F,palette_size:O,data_offset:W,data_length:n-W,transparent_index:m,interlaced:!!E,delay:p,disposal:u});break;case 59:d=!1;break;default:throw new Error("Unknown gif block: 0x"+t[n-1].toString(16))}this.numFrames=function(){return h.length},this.loopCount=function(){return y},this.frameInfo=function(P){if(P<0||P>=h.length)throw new Error("Frame index out of range.");return h[P]},this.decodeAndBlitFrameBGRA=function(P,K){var q=this.frameInfo(P),ae=q.width*q.height;if(ae>536870912)throw new Error("Image dimensions exceed 512MB, which is too large.");var ce=new Uint8Array(ae);u6(t,q.data_offset,ce,ae);var de=q.palette_offset,H=q.transparent_index;H===null&&(H=256);var X=q.width,V=s-X,he=X,T=4*(q.y*s+q.x),I=4*((q.y+q.height)*s+q.x),G=T,re=4*V;q.interlaced===!0&&(re+=4*s*7);for(var ne=8,pe=0,je=ce.length;pe<je;++pe){var ke=ce[pe];if(he===0&&(he=X,(G+=re)>=I&&(re=4*V+4*s*(ne-1),G=T+(X+V)*(ne<<1),ne>>=1)),ke===H)G+=4;else{var De=t[de+3*ke],Pe=t[de+3*ke+1],Ze=t[de+3*ke+2];K[G++]=Ze,K[G++]=Pe,K[G++]=De,K[G++]=255}--he}},this.decodeAndBlitFrameRGBA=function(P,K){var q=this.frameInfo(P),ae=q.width*q.height;if(ae>536870912)throw new Error("Image dimensions exceed 512MB, which is too large.");var ce=new Uint8Array(ae);u6(t,q.data_offset,ce,ae);var de=q.palette_offset,H=q.transparent_index;H===null&&(H=256);var X=q.width,V=s-X,he=X,T=4*(q.y*s+q.x),I=4*((q.y+q.height)*s+q.x),G=T,re=4*V;q.interlaced===!0&&(re+=4*s*7);for(var ne=8,pe=0,je=ce.length;pe<je;++pe){var ke=ce[pe];if(he===0&&(he=X,(G+=re)>=I&&(re=4*V+4*s*(ne-1),G=T+(X+V)*(ne<<1),ne>>=1)),ke===H)G+=4;else{var De=t[de+3*ke],Pe=t[de+3*ke+1],Ze=t[de+3*ke+2];K[G++]=De,K[G++]=Pe,K[G++]=Ze,K[G++]=255}--he}}}function u6(t,n,s,r){for(var a=t[n++],i=1<<a,o=i+1,l=o+1,c=a+1,d=(1<<c)-1,h=0,p=0,m=0,u=t[n++],y=new Int32Array(4096),g=null;;){for(;h<16&&u!==0;)p|=t[n++]<<h,h+=8,u===1?u=t[n++]:--u;if(h<c)break;var w=p&d;if(p>>=c,h-=c,w!==i){if(w===o)break;for(var b=w<l?w:g,j=0,N=b;N>i;)N=y[N]>>8,++j;var A=N;if(m+j+(b!==w?1:0)>r)return void ls.log("Warning, gif stream longer than expected.");s[m++]=A;var E=m+=j;for(b!==w&&(s[m++]=A),N=b;j--;)N=y[N],s[--E]=255&N,N>>=8;g!==null&&l<4096&&(y[l++]=g<<8|A,l>=d+1&&c<12&&(++c,d=d<<1|1)),g=w}else l=o+1,d=(1<<(c=a+1))-1,g=null}return m!==r&&ls.log("Warning, gif stream shorter than expected."),s}/** 2719 * @license 2720 Copyright (c) 2008, Adobe Systems Incorporated 2721 All rights reserved. 2722 2723 Redistribution and use in source and binary forms, with or without 2724 modification, are permitted provided that the following conditions are 2725 met: 2726 2727 * Redistributions of source code must retain the above copyright notice, 2728 this list of conditions and the following disclaimer. 2729 2730 * Redistributions in binary form must reproduce the above copyright 2731 notice, this list of conditions and the following disclaimer in the 2732 documentation and/or other materials provided with the distribution. 2733 2734 * Neither the name of Adobe Systems Incorporated nor the names of its 2735 contributors may be used to endorse or promote products derived from 2736 this software without specific prior written permission. 2737 2738 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 2739 IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 2740 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 2741 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 2742 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 2743 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 2744 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 2745 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 2746 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 2747 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 2748 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2749*/function qw(t){var n,s,r,a,i,o=Math.floor,l=new Array(64),c=new Array(64),d=new Array(64),h=new Array(64),p=new Array(65535),m=new Array(65535),u=new Array(64),y=new Array(64),g=[],w=0,b=7,j=new Array(64),N=new Array(64),A=new Array(64),E=new Array(256),C=new Array(2048),F=[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],O=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],L=[0,1,2,3,4,5,6,7,8,9,10,11],W=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],_=[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,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],P=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],K=[0,1,2,3,4,5,6,7,8,9,10,11],q=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],ae=[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 ce(T,I){for(var G=0,re=0,ne=new Array,pe=1;pe<=16;pe++){for(var je=1;je<=T[pe];je++)ne[I[re]]=[],ne[I[re]][0]=G,ne[I[re]][1]=pe,re++,G++;G*=2}return ne}function de(T){for(var I=T[0],G=T[1]-1;G>=0;)I&1<<G&&(w|=1<<b),G--,--b<0&&(w==255?(H(255),H(0)):H(w),b=7,w=0)}function H(T){g.push(T)}function X(T){H(T>>8&255),H(255&T)}function V(T,I,G,re,ne){for(var pe,je=ne[0],ke=ne[240],De=function(Ce,wt){var ot,_t,gt,un,Xt,be,Ie,$e,Fe,at,dt=0;for(Fe=0;Fe<8;++Fe){ot=Ce[dt],_t=Ce[dt+1],gt=Ce[dt+2],un=Ce[dt+3],Xt=Ce[dt+4],be=Ce[dt+5],Ie=Ce[dt+6];var rn=ot+($e=Ce[dt+7]),Ut=ot-$e,qt=_t+Ie,Vt=_t-Ie,Gt=gt+be,bt=gt-be,nt=un+Xt,it=un-Xt,ht=rn+nt,nn=rn-nt,Mt=qt+Gt,Tt=qt-Gt;Ce[dt]=ht+Mt,Ce[dt+4]=ht-Mt;var In=.707106781*(Tt+nn);Ce[dt+2]=nn+In,Ce[dt+6]=nn-In;var Ja=.382683433*((ht=it+bt)-(Tt=Vt+Ut)),Ts=.5411961*ht+Ja,_r=1.306562965*Tt+Ja,Tr=.707106781*(Mt=bt+Vt),Bt=Ut+Tr,oe=Ut-Tr;Ce[dt+5]=oe+Ts,Ce[dt+3]=oe-Ts,Ce[dt+1]=Bt+_r,Ce[dt+7]=Bt-_r,dt+=8}for(dt=0,Fe=0;Fe<8;++Fe){ot=Ce[dt],_t=Ce[dt+8],gt=Ce[dt+16],un=Ce[dt+24],Xt=Ce[dt+32],be=Ce[dt+40],Ie=Ce[dt+48];var ge=ot+($e=Ce[dt+56]),Ae=ot-$e,Re=_t+Ie,Xe=_t-Ie,pt=gt+be,jt=gt-be,ft=un+Xt,mt=un-Xt,lt=ge+ft,xt=ge-ft,Qt=Re+pt,Zt=Re-pt;Ce[dt]=lt+Qt,Ce[dt+32]=lt-Qt;var Kt=.707106781*(Zt+xt);Ce[dt+16]=xt+Kt,Ce[dt+48]=xt-Kt;var xn=.382683433*((lt=mt+jt)-(Zt=Xe+Ae)),dn=.5411961*lt+xn,Bn=1.306562965*Zt+xn,Pr=.707106781*(Qt=jt+Xe),ua=Ae+Pr,pr=Ae-Pr;Ce[dt+40]=pr+dn,Ce[dt+24]=pr-dn,Ce[dt+8]=ua+Bn,Ce[dt+56]=ua-Bn,dt++}for(Fe=0;Fe<64;++Fe)at=Ce[Fe]*wt[Fe],u[Fe]=at>0?at+.5|0:at-.5|0;return u}(T,I),Pe=0;Pe<64;++Pe)y[F[Pe]]=De[Pe];var Ze=y[0]-G;G=y[0],Ze==0?de(re[0]):(de(re[m[pe=32767+Ze]]),de(p[pe]));for(var tt=63;tt>0&&y[tt]==0;)tt--;if(tt==0)return de(je),G;for(var Je,Y=1;Y<=tt;){for(var Oe=Y;y[Y]==0&&Y<=tt;)++Y;var Wt=Y-Oe;if(Wt>=16){Je=Wt>>4;for(var yt=1;yt<=Je;++yt)de(ke);Wt&=15}pe=32767+y[Y],de(ne[(Wt<<4)+m[pe]]),de(p[pe]),Y++}return tt!=63&&de(je),G}function he(T){T=Math.min(Math.max(T,1),100),i!=T&&(function(I){for(var G=[16,11,10,16,24,40,51,61,12,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],re=0;re<64;re++){var ne=o((G[re]*I+50)/100);ne=Math.min(Math.max(ne,1),255),l[F[re]]=ne}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],je=0;je<64;je++){var ke=o((pe[je]*I+50)/100);ke=Math.min(Math.max(ke,1),255),c[F[je]]=ke}for(var De=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],Pe=0,Ze=0;Ze<8;Ze++)for(var tt=0;tt<8;tt++)d[Pe]=1/(l[F[Pe]]*De[Ze]*De[tt]*8),h[Pe]=1/(c[F[Pe]]*De[Ze]*De[tt]*8),Pe++}(T<50?Math.floor(5e3/T):Math.floor(200-2*T)),i=T)}this.encode=function(T,I){I&&he(I),g=new Array,w=0,b=7,X(65496),X(65504),X(16),H(74),H(70),H(73),H(70),H(0),H(1),H(1),H(0),X(1),X(1),H(0),H(0),function(){X(65499),X(132),H(0);for(var _t=0;_t<64;_t++)H(l[_t]);H(1);for(var gt=0;gt<64;gt++)H(c[gt])}(),function(_t,gt){X(65472),X(17),H(8),X(gt),X(_t),H(3),H(1),H(17),H(0),H(2),H(17),H(1),H(3),H(17),H(1)}(T.width,T.height),function(){X(65476),X(418),H(0);for(var _t=0;_t<16;_t++)H(O[_t+1]);for(var gt=0;gt<=11;gt++)H(L[gt]);H(16);for(var un=0;un<16;un++)H(W[un+1]);for(var Xt=0;Xt<=161;Xt++)H(_[Xt]);H(1);for(var be=0;be<16;be++)H(P[be+1]);for(var Ie=0;Ie<=11;Ie++)H(K[Ie]);H(17);for(var $e=0;$e<16;$e++)H(q[$e+1]);for(var Fe=0;Fe<=161;Fe++)H(ae[Fe])}(),X(65498),X(12),H(3),H(1),H(0),H(2),H(17),H(3),H(17),H(0),H(63),H(0);var G=0,re=0,ne=0;w=0,b=7,this.encode.displayName="_encode_";for(var pe,je,ke,De,Pe,Ze,tt,Je,Y,Oe=T.data,Wt=T.width,yt=T.height,Ce=4*Wt,wt=0;wt<yt;){for(pe=0;pe<Ce;){for(Pe=Ce*wt+pe,tt=-1,Je=0,Y=0;Y<64;Y++)Ze=Pe+(Je=Y>>3)*Ce+(tt=4*(7&Y)),wt+Je>=yt&&(Ze-=Ce*(wt+1+Je-yt)),pe+tt>=Ce&&(Ze-=pe+tt-Ce+4),je=Oe[Ze++],ke=Oe[Ze++],De=Oe[Ze++],j[Y]=(C[je]+C[ke+256|0]+C[De+512|0]>>16)-128,N[Y]=(C[je+768|0]+C[ke+1024|0]+C[De+1280|0]>>16)-128,A[Y]=(C[je+1280|0]+C[ke+1536|0]+C[De+1792|0]>>16)-128;G=V(j,d,G,n,r),re=V(N,h,re,s,a),ne=V(A,h,ne,s,a),pe+=32}wt+=8}if(b>=0){var ot=[];ot[1]=b+1,ot[0]=(1<<b+1)-1,de(ot)}return X(65497),new Uint8Array(g)},t=t||50,function(){for(var T=String.fromCharCode,I=0;I<256;I++)E[I]=T(I)}(),n=ce(O,L),s=ce(P,K),r=ce(W,_),a=ce(q,ae),function(){for(var T=1,I=2,G=1;G<=15;G++){for(var re=T;re<I;re++)m[32767+re]=G,p[32767+re]=[],p[32767+re][1]=G,p[32767+re][0]=re;for(var ne=-(I-1);ne<=-T;ne++)m[32767+ne]=G,p[32767+ne]=[],p[32767+ne][1]=G,p[32767+ne][0]=I-1+ne;T<<=1,I<<=1}}(),function(){for(var T=0;T<256;T++)C[T]=19595*T,C[T+256|0]=38470*T,C[T+512|0]=7471*T+32768,C[T+768|0]=-11059*T,C[T+1024|0]=-21709*T,C[T+1280|0]=32768*T+8421375,C[T+1536|0]=-27439*T,C[T+1792|0]=-5329*T}(),he(t)}/** 2750 * @license 2751 * Copyright (c) 2017 Aras Abbasi 2752 * 2753 * Licensed under the MIT License. 2754 * http://opensource.org/licenses/mit-license 2755 */function ro(t,n){if(this.pos=0,this.buffer=t,this.datav=new DataView(t.buffer),this.is_with_alpha=!!n,this.bottom_up=!0,this.flag=String.fromCharCode(this.buffer[0])+String.fromCharCode(this.buffer[1]),this.pos+=2,["BM","BA","CI","CP","IC","PT"].indexOf(this.flag)===-1)throw new Error("Invalid BMP File");this.parseHeader(),this.parseBGR()}function p6(t){function n(L){if(!L)throw Error("assert :P")}function s(L,W,_){for(var P=0;4>P;P++)if(L[W+P]!=_.charCodeAt(P))return!0;return!1}function r(L,W,_,P,K){for(var q=0;q<K;q++)L[W+q]=_[P+q]}function a(L,W,_,P){for(var K=0;K<P;K++)L[W+K]=_}function i(L){return new Int32Array(L)}function o(L,W){for(var _=[],P=0;P<L;P++)_.push(new W);return _}function l(L,W){var _=[];return function P(K,q,ae){for(var ce=ae[q],de=0;de<ce&&(K.push(ae.length>q+1?[]:new W),!(ae.length<q+1));de++)P(K[de],q+1,ae)}(_,0,L),_}var c=function(){var L=this;function W(f,x){for(var k=1<<x-1>>>0;f&k;)k>>>=1;return k?(f&k-1)+k:f}function _(f,x,k,D,R){n(!(D%k));do f[x+(D-=k)]=R;while(0<D)}function P(f,x,k,D,R){if(n(2328>=R),512>=R)var B=i(512);else if((B=i(R))==null)return 0;return function(z,$,Q,ee,ue,Se){var te,fe,we=$,Te=1<<Q,Ne=i(16),Ee=i(16);for(n(ue!=0),n(ee!=null),n(z!=null),n(0<Q),fe=0;fe<ue;++fe){if(15<ee[fe])return 0;++Ne[ee[fe]]}if(Ne[0]==ue)return 0;for(Ee[1]=0,te=1;15>te;++te){if(Ne[te]>1<<te)return 0;Ee[te+1]=Ee[te]+Ne[te]}for(fe=0;fe<ue;++fe)te=ee[fe],0<ee[fe]&&(Se[Ee[te]++]=fe);if(Ee[15]==1)return(ee=new K).g=0,ee.value=Se[0],_(z,we,1,Te,ee),Te;var Me,We=-1,ze=Te-1,Rt=0,Nt=1,yn=1,Pt=1<<Q;for(fe=0,te=1,ue=2;te<=Q;++te,ue<<=1){if(Nt+=yn<<=1,0>(yn-=Ne[te]))return 0;for(;0<Ne[te];--Ne[te])(ee=new K).g=te,ee.value=Se[fe++],_(z,we+Rt,ue,Pt,ee),Rt=W(Rt,te)}for(te=Q+1,ue=2;15>=te;++te,ue<<=1){if(Nt+=yn<<=1,0>(yn-=Ne[te]))return 0;for(;0<Ne[te];--Ne[te]){if(ee=new K,(Rt&ze)!=We){for(we+=Pt,Me=1<<(We=te)-Q;15>We&&!(0>=(Me-=Ne[We]));)++We,Me<<=1;Te+=Pt=1<<(Me=We-Q),z[$+(We=Rt&ze)].g=Me+Q,z[$+We].value=we-$-We}ee.g=te-Q,ee.value=Se[fe++],_(z,we+(Rt>>Q),ue,Pt,ee),Rt=W(Rt,te)}}return Nt!=2*Ee[15]-1?0:Te}(f,x,k,D,R,B)}function K(){this.value=this.g=0}function q(){this.value=this.g=0}function ae(){this.G=o(5,K),this.H=i(5),this.jc=this.Qb=this.qb=this.nd=0,this.pd=o(Hh,q)}function ce(f,x,k,D){n(f!=null),n(x!=null),n(2147483648>D),f.Ca=254,f.I=0,f.b=-8,f.Ka=0,f.oa=x,f.pa=k,f.Jd=x,f.Yc=k+D,f.Zc=4<=D?k+D-4+1:k,je(f)}function de(f,x){for(var k=0;0<x--;)k|=De(f,128)<<x;return k}function H(f,x){var k=de(f,x);return ke(f)?-k:k}function X(f,x,k,D){var R,B=0;for(n(f!=null),n(x!=null),n(4294967288>D),f.Sb=D,f.Ra=0,f.u=0,f.h=0,4<D&&(D=4),R=0;R<D;++R)B+=x[k+R]<<8*R;f.Ra=B,f.bb=D,f.oa=x,f.pa=k}function V(f){for(;8<=f.u&&f.bb<f.Sb;)f.Ra>>>=8,f.Ra+=f.oa[f.pa+f.bb]<<ga-8>>>0,++f.bb,f.u-=8;re(f)&&(f.h=1,f.u=0)}function he(f,x){if(n(0<=x),!f.h&&x<=Yp){var k=G(f)&kd[x];return f.u+=x,V(f),k}return f.h=1,f.u=0}function T(){this.b=this.Ca=this.I=0,this.oa=[],this.pa=0,this.Jd=[],this.Yc=0,this.Zc=[],this.Ka=0}function I(){this.Ra=0,this.oa=[],this.h=this.u=this.bb=this.Sb=this.pa=0}function G(f){return f.Ra>>>(f.u&ga-1)>>>0}function re(f){return n(f.bb<=f.Sb),f.h||f.bb==f.Sb&&f.u>ga}function ne(f,x){f.u=x,f.h=re(f)}function pe(f){f.u>=Pa&&(n(f.u>=Pa),V(f))}function je(f){n(f!=null&&f.oa!=null),f.pa<f.Zc?(f.I=(f.oa[f.pa++]|f.I<<8)>>>0,f.b+=8):(n(f!=null&&f.oa!=null),f.pa<f.Yc?(f.b+=8,f.I=f.oa[f.pa++]|f.I<<8):f.Ka?f.b=0:(f.I<<=8,f.b+=8,f.Ka=1))}function ke(f){return de(f,1)}function De(f,x){var k=f.Ca;0>f.b&&je(f);var D=f.b,R=k*x>>>8,B=(f.I>>>D>R)+0;for(B?(k-=R,f.I-=R+1<<D>>>0):k=R+1,D=k,R=0;256<=D;)R+=8,D>>=8;return D=7^R+$h[D],f.b-=D,f.Ca=(k<<D)-1,B}function Pe(f,x,k){f[x+0]=k>>24&255,f[x+1]=k>>16&255,f[x+2]=k>>8&255,f[x+3]=255&k}function Ze(f,x){return f[x+0]|f[x+1]<<8}function tt(f,x){return Ze(f,x)|f[x+2]<<16}function Je(f,x){return Ze(f,x)|Ze(f,x+2)<<16}function Y(f,x){var k=1<<x;return n(f!=null),n(0<x),f.X=i(k),f.X==null?0:(f.Mb=32-x,f.Xa=x,1)}function Oe(f,x){n(f!=null),n(x!=null),n(f.Xa==x.Xa),r(x.X,0,f.X,0,1<<x.Xa)}function Wt(){this.X=[],this.Xa=this.Mb=0}function yt(f,x,k,D){n(k!=null),n(D!=null);var R=k[0],B=D[0];return R==0&&(R=(f*B+x/2)/x),B==0&&(B=(x*R+f/2)/f),0>=R||0>=B?0:(k[0]=R,D[0]=B,1)}function Ce(f,x){return f+(1<<x)-1>>>x}function wt(f,x){return((4278255360&f)+(4278255360&x)>>>0&4278255360)+((16711935&f)+(16711935&x)>>>0&16711935)>>>0}function ot(f,x){L[x]=function(k,D,R,B,z,$,Q){var ee;for(ee=0;ee<z;++ee){var ue=L[f]($[Q+ee-1],R,B+ee);$[Q+ee]=wt(k[D+ee],ue)}}}function _t(){this.ud=this.hd=this.jd=0}function gt(f,x){return((4278124286&(f^x))>>>1)+(f&x)>>>0}function un(f){return 0<=f&&256>f?f:0>f?0:255<f?255:void 0}function Xt(f,x){return un(f+(f-x+.5>>1))}function be(f,x,k){return Math.abs(x-k)-Math.abs(f-k)}function Ie(f,x,k,D,R,B,z){for(D=B[z-1],k=0;k<R;++k)B[z+k]=D=wt(f[x+k],D)}function $e(f,x,k,D,R){var B;for(B=0;B<k;++B){var z=f[x+B],$=z>>8&255,Q=16711935&(Q=(Q=16711935&z)+(($<<16)+$));D[R+B]=(4278255360&z)+Q>>>0}}function Fe(f,x){x.jd=255&f,x.hd=f>>8&255,x.ud=f>>16&255}function at(f,x,k,D,R,B){var z;for(z=0;z<D;++z){var $=x[k+z],Q=$>>>8,ee=$,ue=255&(ue=(ue=$>>>16)+((f.jd<<24>>24)*(Q<<24>>24)>>>5));ee=255&(ee=(ee+=(f.hd<<24>>24)*(Q<<24>>24)>>>5)+((f.ud<<24>>24)*(ue<<24>>24)>>>5)),R[B+z]=(4278255360&$)+(ue<<16)+ee}}function dt(f,x,k,D,R){L[x]=function(B,z,$,Q,ee,ue,Se,te,fe){for(Q=Se;Q<te;++Q)for(Se=0;Se<fe;++Se)ee[ue++]=R($[D(B[z++])])},L[f]=function(B,z,$,Q,ee,ue,Se){var te=8>>B.b,fe=B.Ea,we=B.K[0],Te=B.w;if(8>te)for(B=(1<<B.b)-1,Te=(1<<te)-1;z<$;++z){var Ne,Ee=0;for(Ne=0;Ne<fe;++Ne)Ne&B||(Ee=D(Q[ee++])),ue[Se++]=R(we[Ee&Te]),Ee>>=te}else L["VP8LMapColor"+k](Q,ee,we,Te,ue,Se,z,$,fe)}}function rn(f,x,k,D,R){for(k=x+k;x<k;){var B=f[x++];D[R++]=B>>16&255,D[R++]=B>>8&255,D[R++]=255&B}}function Ut(f,x,k,D,R){for(k=x+k;x<k;){var B=f[x++];D[R++]=B>>16&255,D[R++]=B>>8&255,D[R++]=255&B,D[R++]=B>>24&255}}function qt(f,x,k,D,R){for(k=x+k;x<k;){var B=(z=f[x++])>>16&240|z>>12&15,z=240&z|z>>28&15;D[R++]=B,D[R++]=z}}function Vt(f,x,k,D,R){for(k=x+k;x<k;){var B=(z=f[x++])>>16&248|z>>13&7,z=z>>5&224|z>>3&31;D[R++]=B,D[R++]=z}}function Gt(f,x,k,D,R){for(k=x+k;x<k;){var B=f[x++];D[R++]=255&B,D[R++]=B>>8&255,D[R++]=B>>16&255}}function bt(f,x,k,D,R,B){if(B==0)for(k=x+k;x<k;)Pe(D,((B=f[x++])[0]>>24|B[1]>>8&65280|B[2]<<8&16711680|B[3]<<24)>>>0),R+=32;else r(D,R,f,x,k)}function nt(f,x){L[x][0]=L[f+"0"],L[x][1]=L[f+"1"],L[x][2]=L[f+"2"],L[x][3]=L[f+"3"],L[x][4]=L[f+"4"],L[x][5]=L[f+"5"],L[x][6]=L[f+"6"],L[x][7]=L[f+"7"],L[x][8]=L[f+"8"],L[x][9]=L[f+"9"],L[x][10]=L[f+"10"],L[x][11]=L[f+"11"],L[x][12]=L[f+"12"],L[x][13]=L[f+"13"],L[x][14]=L[f+"0"],L[x][15]=L[f+"0"]}function it(f){return f==_b||f==Tb||f==Pg||f==Pb}function ht(){this.eb=[],this.size=this.A=this.fb=0}function nn(){this.y=[],this.f=[],this.ea=[],this.F=[],this.Tc=this.Ed=this.Cd=this.Fd=this.lb=this.Db=this.Ab=this.fa=this.J=this.W=this.N=this.O=0}function Mt(){this.Rd=this.height=this.width=this.S=0,this.f={},this.f.RGBA=new ht,this.f.kb=new nn,this.sd=null}function Tt(){this.width=[0],this.height=[0],this.Pd=[0],this.Qd=[0],this.format=[0]}function In(){this.Id=this.fd=this.Md=this.hb=this.ib=this.da=this.bd=this.cd=this.j=this.v=this.Da=this.Sd=this.ob=0}function Ja(f){return alert("todo:WebPSamplerProcessPlane"),f.T}function Ts(f,x){var k=f.T,D=x.ba.f.RGBA,R=D.eb,B=D.fb+f.ka*D.A,z=Li[x.ba.S],$=f.y,Q=f.O,ee=f.f,ue=f.N,Se=f.ea,te=f.W,fe=x.cc,we=x.dc,Te=x.Mc,Ne=x.Nc,Ee=f.ka,Me=f.ka+f.T,We=f.U,ze=We+1>>1;for(Ee==0?z($,Q,null,null,ee,ue,Se,te,ee,ue,Se,te,R,B,null,null,We):(z(x.ec,x.fc,$,Q,fe,we,Te,Ne,ee,ue,Se,te,R,B-D.A,R,B,We),++k);Ee+2<Me;Ee+=2)fe=ee,we=ue,Te=Se,Ne=te,ue+=f.Rc,te+=f.Rc,B+=2*D.A,z($,(Q+=2*f.fa)-f.fa,$,Q,fe,we,Te,Ne,ee,ue,Se,te,R,B-D.A,R,B,We);return Q+=f.fa,f.j+Me<f.o?(r(x.ec,x.fc,$,Q,We),r(x.cc,x.dc,ee,ue,ze),r(x.Mc,x.Nc,Se,te,ze),k--):1&Me||z($,Q,null,
vendor: 4,661 bytes, line 2755
2755null,ee,ue,Se,te,ee,ue,Se,te,R,B+D.A,null,null,We),k}function _r(f,x,k){var D=f.F,R=[f.J];if(D!=null){var B=f.U,z=x.ba.S,$=z==Tg||z==Pg;x=x.ba.f.RGBA;var Q=[0],ee=f.ka;Q[0]=f.T,f.Kb&&(ee==0?--Q[0]:(--ee,R[0]-=f.width),f.j+f.ka+f.T==f.o&&(Q[0]=f.o-f.j-ee));var ue=x.eb;ee=x.fb+ee*x.A,f=oS(D,R[0],f.width,B,Q,ue,ee+($?0:3),x.A),n(k==Q),f&&it(z)&&em(ue,ee,$,B,Q,x.A)}return 0}function Tr(f){var x=f.ma,k=x.ba.S,D=11>k,R=k==Cg||k==_g||k==Tg||k==Cb||k==12||it(k);if(x.memory=null,x.Ib=null,x.Jb=null,x.Nd=null,!Pi(x.Oa,f,R?11:12))return 0;if(R&&it(k)&&dl(),f.da)alert("todo:use_scaling");else{if(D){if(x.Ib=Ja,f.Kb){if(k=f.U+1>>1,x.memory=i(f.U+2*k),x.memory==null)return 0;x.ec=x.memory,x.fc=0,x.cc=x.ec,x.dc=x.fc+f.U,x.Mc=x.cc,x.Nc=x.dc+k,x.Ib=Ts,dl()}}else alert("todo:EmitYUV");R&&(x.Jb=_r,D&&zs())}if(D&&!NS){for(f=0;256>f;++f)pR[f]=89858*(f-128)+Lg>>Eg,gR[f]=-22014*(f-128)+Lg,fR[f]=-45773*(f-128),mR[f]=113618*(f-128)+Lg>>Eg;for(f=nm;f<Mb;++f)x=76283*(f-16)+Lg>>Eg,xR[f-nm]=mr(x,255),yR[f-nm]=mr(x+8>>4,15);NS=1}return 1}function Bt(f){var x=f.ma,k=f.U,D=f.T;return n(!(1&f.ka)),0>=k||0>=D?0:(k=x.Ib(f,x),x.Jb!=null&&x.Jb(f,x,k),x.Dc+=k,1)}function oe(f){f.ma.memory=null}function ge(f,x,k,D){return he(f,8)!=47?0:(x[0]=he(f,14)+1,k[0]=he(f,14)+1,D[0]=he(f,1),he(f,3)!=0?0:!f.h)}function Ae(f,x){if(4>f)return f+1;var k=f-2>>1;return(2+(1&f)<<k)+he(x,k)+1}function Re(f,x){return 120<x?x-120:1<=(k=((k=Z8[x-1])>>4)*f+(8-(15&k)))?k:1;var k}function Xe(f,x,k){var D=G(k),R=f[x+=255&D].g-8;return 0<R&&(ne(k,k.u+8),D=G(k),x+=f[x].value,x+=D&(1<<R)-1),ne(k,k.u+f[x].g),f[x].value}function pt(f,x,k){return k.g+=f.g,k.value+=f.value<<x>>>0,n(8>=k.g),f.g}function jt(f,x,k){var D=f.xc;return n((x=D==0?0:f.vc[f.md*(k>>D)+(x>>D)])<f.Wb),f.Ya[x]}function ft(f,x,k,D){var R=f.ab,B=f.c*x,z=f.C;x=z+x;var $=k,Q=D;for(D=f.Ta,k=f.Ua;0<R--;){var ee=f.gc[R],ue=z,Se=x,te=$,fe=Q,we=(Q=D,$=k,ee.Ea);switch(n(ue<Se),n(Se<=ee.nc),ee.hc){case 2:Wh(te,fe,(Se-ue)*we,Q,$);break;case 0:var Te=ue,Ne=Se,Ee=Q,Me=$,We=(Pt=ee).Ea;Te==0&&(Ql(te,fe,null,null,1,Ee,Me),Ie(te,fe+1,0,0,We-1,Ee,Me+1),fe+=We,Me+=We,++Te);for(var ze=1<<Pt.b,Rt=ze-1,Nt=Ce(We,Pt.b),yn=Pt.K,Pt=Pt.w+(Te>>Pt.b)*Nt;Te<Ne;){var En=yn,xr=Pt,bn=1;for(Yl(te,fe,Ee,Me-We,1,Ee,Me);bn<We;){var Et=(bn&~Rt)+ze;Et>We&&(Et=We),(0,Zi[En[xr++]>>8&15])(te,fe+ +bn,Ee,Me+bn-We,Et-bn,Ee,Me+bn),bn=Et}fe+=We,Me+=We,++Te&Rt||(Pt+=Nt)}Se!=ee.nc&&r(Q,$-we,Q,$+(Se-ue-1)*we,we);break;case 1:for(we=te,Ne=fe,We=(te=ee.Ea)-(Me=te&~(Ee=(fe=1<<ee.b)-1)),Te=Ce(te,ee.b),ze=ee.K,ee=ee.w+(ue>>ee.b)*Te;ue<Se;){for(Rt=ze,Nt=ee,yn=new _t,Pt=Ne+Me,En=Ne+te;Ne<Pt;)Fe(Rt[Nt++],yn),Sd(yn,we,Ne,fe,Q,$),Ne+=fe,$+=fe;Ne<En&&(Fe(Rt[Nt++],yn),Sd(yn,we,Ne,We,Q,$),Ne+=We,$+=We),++ue&Ee||(ee+=Te)}break;case 3:if(te==Q&&fe==$&&0<ee.b){for(Ne=Q,te=we=$+(Se-ue)*we-(Me=(Se-ue)*Ce(ee.Ea,ee.b)),fe=Q,Ee=$,Te=[],Me=(We=Me)-1;0<=Me;--Me)Te[Me]=fe[Ee+Me];for(Me=We-1;0<=Me;--Me)Ne[te+Me]=Te[Me];Nd(ee,ue,Se,Q,we,Q,$)}else Nd(ee,ue,Se,te,fe,Q,$)}$=D,Q=k}Q!=k&&r(D,k,$,Q,B)}function mt(f,x){var k=f.V,D=f.Ba+f.c*f.C,R=x-f.C;if(n(x<=f.l.o),n(16>=R),0<R){var B=f.l,z=f.Ta,$=f.Ua,Q=B.width;if(ft(f,R,k,D),R=$=[$],n((k=f.C)<(D=x)),n(B.v<B.va),D>B.o&&(D=B.o),k<B.j){var ee=B.j-k;k=B.j,R[0]+=ee*Q}if(k>=D?k=0:(R[0]+=4*B.v,B.ka=k-B.j,B.U=B.va-B.v,B.T=D-k,k=1),k){if($=$[0],11>(k=f.ca).S){var ue=k.f.RGBA,Se=(D=k.S,R=B.U,B=B.T,ee=ue.eb,ue.A),te=B;for(ue=ue.fb+f.Ma*ue.A;0<te--;){var fe=z,we=$,Te=R,Ne=ee,Ee=ue;switch(D){case Ig:Jp(fe,we,Te,Ne,Ee);break;case Cg:Xp(fe,we,Te,Ne,Ee);break;case _b:Xp(fe,we,Te,Ne,Ee),em(Ne,Ee,0,Te,1,0);break;case mS:Dd(fe,we,Te,Ne,Ee);break;case _g:bt(fe,we,Te,Ne,Ee,1);break;case Tb:bt(fe,we,Te,Ne,Ee,1),em(Ne,Ee,0,Te,1,0);break;case Tg:bt(fe,we,Te,Ne,Ee,0);break;case Pg:bt(fe,we,Te,Ne,Ee,0),em(Ne,Ee,1,Te,1,0);break;case Cb:Gh(fe,we,Te,Ne,Ee);break;case Pb:Gh(fe,we,Te,Ne,Ee),iS(Ne,Ee,Te,1,0);break;case fS:Ad(fe,we,Te,Ne,Ee);break;default:n(0)}$+=Q,ue+=Se}f.Ma+=B}else alert("todo:EmitRescaledRowsYUVA");n(f.Ma<=k.height)}}f.C=x,n(f.C<=f.i)}function lt(f){var x;if(0<f.ua)return 0;for(x=0;x<f.Wb;++x){var k=f.Ya[x].G,D=f.Ya[x].H;if(0<k[1][D[1]+0].g||0<k[2][D[2]+0].g||0<k[3][D[3]+0].g)return 0}return 1}function xt(f,x,k,D,R,B){if(f.Z!=0){var z=f.qd,$=f.rd;for(n(ec[f.Z]!=null);x<k;++x)ec[f.Z](z,$,D,R,D,R,B),z=D,$=R,R+=B;f.qd=z,f.rd=$}}function Qt(f,x){var k=f.l.ma,D=k.Z==0||k.Z==1?f.l.j:f.C;if(D=f.C<D?D:f.C,n(x<=f.l.o),x>D){var R=f.l.width,B=k.ca,z=k.tb+R*D,$=f.V,Q=f.Ba+f.c*D,ee=f.gc;n(f.ab==1),n(ee[0].hc==3),Db(ee[0],D,x,$,Q,B,z),xt(k,D,x,B,z,R)}f.C=f.Ma=x}function Zt(f,x,k,D,R,B,z){var $=f.$/D,Q=f.$%D,ee=f.m,ue=f.s,Se=k+f.$,te=Se;R=k+D*R;var fe=k+D*B,we=280+ue.ua,Te=f.Pb?$:16777216,Ne=0<ue.ua?ue.Wa:null,Ee=ue.wc,Me=Se<fe?jt
vendor: 15,975 bytes, line 2755
2755(ue,Q,$):null;n(f.C<B),n(fe<=R);var We=!1;e:for(;;){for(;We||Se<fe;){var ze=0;if($>=Te){var Rt=Se-k;n((Te=f).Pb),Te.wd=Te.m,Te.xd=Rt,0<Te.s.ua&&Oe(Te.s.Wa,Te.s.vb),Te=$+tR}if(Q&Ee||(Me=jt(ue,Q,$)),n(Me!=null),Me.Qb&&(x[Se]=Me.qb,We=!0),!We)if(pe(ee),Me.jc){ze=ee,Rt=x;var Nt=Se,yn=Me.pd[G(ze)&Hh-1];n(Me.jc),256>yn.g?(ne(ze,ze.u+yn.g),Rt[Nt]=yn.value,ze=0):(ne(ze,ze.u+yn.g-256),n(256<=yn.value),ze=yn.value),ze==0&&(We=!0)}else ze=Xe(Me.G[0],Me.H[0],ee);if(ee.h)break;if(We||256>ze){if(!We)if(Me.nd)x[Se]=(Me.qb|ze<<8)>>>0;else{if(pe(ee),We=Xe(Me.G[1],Me.H[1],ee),pe(ee),Rt=Xe(Me.G[2],Me.H[2],ee),Nt=Xe(Me.G[3],Me.H[3],ee),ee.h)break;x[Se]=(Nt<<24|We<<16|ze<<8|Rt)>>>0}if(We=!1,++Se,++Q>=D&&(Q=0,++$,z!=null&&$<=B&&!($%16)&&z(f,$),Ne!=null))for(;te<Se;)ze=x[te++],Ne.X[(506832829*ze&4294967295)>>>Ne.Mb]=ze}else if(280>ze){if(ze=Ae(ze-256,ee),Rt=Xe(Me.G[4],Me.H[4],ee),pe(ee),Rt=Re(D,Rt=Ae(Rt,ee)),ee.h)break;if(Se-k<Rt||R-Se<ze)break e;for(Nt=0;Nt<ze;++Nt)x[Se+Nt]=x[Se+Nt-Rt];for(Se+=ze,Q+=ze;Q>=D;)Q-=D,++$,z!=null&&$<=B&&!($%16)&&z(f,$);if(n(Se<=R),Q&Ee&&(Me=jt(ue,Q,$)),Ne!=null)for(;te<Se;)ze=x[te++],Ne.X[(506832829*ze&4294967295)>>>Ne.Mb]=ze}else{if(!(ze<we))break e;for(We=ze-280,n(Ne!=null);te<Se;)ze=x[te++],Ne.X[(506832829*ze&4294967295)>>>Ne.Mb]=ze;ze=Se,n(!(We>>>(Rt=Ne).Xa)),x[ze]=Rt.X[We],We=!0}We||n(ee.h==re(ee))}if(f.Pb&&ee.h&&Se<R)n(f.m.h),f.a=5,f.m=f.wd,f.$=f.xd,0<f.s.ua&&Oe(f.s.vb,f.s.Wa);else{if(ee.h)break e;z!=null&&z(f,$>B?B:$),f.a=0,f.$=Se-k}return 1}return f.a=3,0}function Kt(f){n(f!=null),f.vc=null,f.yc=null,f.Ya=null;var x=f.Wa;x!=null&&(x.X=null),f.vb=null,n(f!=null)}function xn(){var f=new Ct;return f==null?null:(f.a=0,f.xb=yS,nt("Predictor","VP8LPredictors"),nt("Predictor","VP8LPredictors_C"),nt("PredictorAdd","VP8LPredictorsAdd"),nt("PredictorAdd","VP8LPredictorsAdd_C"),Wh=$e,Sd=at,Jp=rn,Xp=Ut,Gh=qt,Ad=Vt,Dd=Gt,L.VP8LMapColor32b=or,L.VP8LMapColor8b=Co,f)}function dn(f,x,k,D,R){var B=1,z=[f],$=[x],Q=D.m,ee=D.s,ue=null,Se=0;e:for(;;){if(k)for(;B&&he(Q,1);){var te=z,fe=$,we=D,Te=1,Ne=we.m,Ee=we.gc[we.ab],Me=he(Ne,2);if(we.Oc&1<<Me)B=0;else{switch(we.Oc|=1<<Me,Ee.hc=Me,Ee.Ea=te[0],Ee.nc=fe[0],Ee.K=[null],++we.ab,n(4>=we.ab),Me){case 0:case 1:Ee.b=he(Ne,3)+2,Te=dn(Ce(Ee.Ea,Ee.b),Ce(Ee.nc,Ee.b),0,we,Ee.K),Ee.K=Ee.K[0];break;case 3:var We,ze=he(Ne,8)+1,Rt=16<ze?0:4<ze?1:2<ze?2:3;if(te[0]=Ce(Ee.Ea,Rt),Ee.b=Rt,We=Te=dn(ze,1,0,we,Ee.K)){var Nt,yn=ze,Pt=Ee,En=1<<(8>>Pt.b),xr=i(En);if(xr==null)We=0;else{var bn=Pt.K[0],Et=Pt.w;for(xr[0]=Pt.K[0][0],Nt=1;Nt<1*yn;++Nt)xr[Nt]=wt(bn[Et+Nt],xr[Nt-1]);for(;Nt<4*En;++Nt)xr[Nt]=0;Pt.K[0]=null,Pt.K[0]=xr,We=1}}Te=We;break;case 2:break;default:n(0)}B=Te}}if(z=z[0],$=$[0],B&&he(Q,1)&&!(B=1<=(Se=he(Q,4))&&11>=Se)){D.a=3;break e}var ct;if(ct=B)t:{var Xs,mn,Vn,Ss=D,Lr=z,xa=$,Ws=Se,Jr=k,ya=Ss.m,yr=Ss.s,zn=[null],Kn=1,Gs=0,Qn=eR[Ws];n:for(;;){if(Jr&&he(ya,1)){var Mr=he(ya,3)+2,to=Ce(Lr,Mr),Zs=Ce(xa,Mr),Ea=to*Zs;if(!dn(to,Zs,0,Ss,zn))break n;for(zn=zn[0],yr.xc=Mr,Xs=0;Xs<Ea;++Xs){var os=zn[Xs]>>8&65535;zn[Xs]=os,os>=Kn&&(Kn=os+1)}}if(ya.h)break n;for(mn=0;5>mn;++mn){var br=gS[mn];!mn&&0<Ws&&(br+=1<<Ws),Gs<br&&(Gs=br)}var si=o(Kn*Qn,K),ba=Kn,ri=o(ba,ae);if(ri==null)var ai=null;else n(65536>=ba),ai=ri;var La=i(Gs);if(ai==null||La==null||si==null){Ss.a=1;break n}var ii=si;for(Xs=Vn=0;Xs<Kn;++Xs){var xs=ai[Xs],oi=xs.G,no=xs.H,Id=0,ml=1,Rr=0;for(mn=0;5>mn;++mn){br=gS[mn],oi[mn]=ii,no[mn]=Vn,!mn&&0<Ws&&(br+=1<<Ws);r:{var Rg,Rb=br,Og=Ss,sm=La,wR=ii,jR=Vn,Ob=0,tc=Og.m,kR=he(tc,1);if(a(sm,0,0,Rb),kR){var NR=he(tc,1)+1,SR=he(tc,1),DS=he(tc,SR==0?1:8);sm[DS]=1,NR==2&&(sm[DS=he(tc,8)]=1);var Fg=1}else{var IS=i(19),CS=he(tc,4)+4;if(19<CS){Og.a=3;var Vg=0;break r}for(Rg=0;Rg<CS;++Rg)IS[X8[Rg]]=he(tc,3);var Fb=void 0,rm=void 0,_S=Og,AR=IS,Bg=Rb,TS=sm,Vb=0,nc=_S.m,PS=8,ES=o(128,K);s:for(;P(ES,0,7,AR,19);){if(he(nc,1)){var DR=2+2*he(nc,3);if((Fb=2+he(nc,DR))>Bg)break s}else Fb=Bg;for(rm=0;rm<Bg&&Fb--;){pe(nc);var LS=ES[0+(127&G(nc))];ne(nc,nc.u+LS.g);var Yh=LS.value;if(16>Yh)TS[rm++]=Yh,Yh!=0&&(PS=Yh);else{var IR=Yh==16,MS=Yh-16,CR=Y8[MS],RS=he(nc,Q8[MS])+CR;if(rm+RS>Bg)break s;for(var _R=IR?PS:0;0<RS--;)TS[rm++]=_R}}Vb=1;break s}Vb||(_S.a=3),Fg=Vb}(Fg=Fg&&!tc.h)&&(Ob=P(wR,jR,8,sm,Rb)),Fg&&Ob!=0?Vg=Ob:(Og.a=3,Vg=0)}if(Vg==0)break n;if(ml&&J8[mn]==1&&(ml=ii[Vn].g==0),Id+=ii[Vn].g,Vn+=Vg,3>=mn){var am,Bb=La[0];for(am=1;am<br;++am)La[am]>Bb&&(Bb=La[am]);Rr+=Bb}}if(xs.nd=ml,xs.Qb=0,ml&&(xs.qb=(oi[3][no[3]+0].value<<24|oi[1][no[1]+0].value<<16|oi[2][no[2]+0].value)>>>0,Id==0&&256>oi[0][no[0]+0].value&&(xs.Qb=1,xs.qb+=oi[0][no[0]+0].value<<8)),xs.jc=!xs.Qb&&6>Rr,xs.jc){var zg,fl=xs;for(zg=0;zg<Hh;++zg){var sc=zg,rc=fl.pd[sc],Ug=fl.G[0][fl.H[0]+sc];256<=Ug.value?(rc.g=Ug.g+256,rc.value=Ug.value):(rc.g=0,rc.value=0,sc>>=pt(Ug,8,rc),sc>>=pt(fl.G[1][fl.H[1]+sc],16,rc),sc>>=pt(fl.G[2][fl.H[2]+sc],0,rc),pt(fl.G[3][fl.H[3]+sc],24,rc))}}}yr.vc=zn,yr.Wb=Kn,yr.Ya=ai,yr.yc=si,ct=1;break t}ct=0}if(!(B=ct)){D.a=3;break e}if(0<Se){if(ee.ua=1<<Se,!Y(ee.Wa,Se)){D.a=1,B=0;break e}}else ee.ua=0;var zb=D,OS=z,TR=$,Ub=zb.s,qb=Ub.xc;if(zb.c=OS,zb.i=TR,Ub.md=Ce(OS,qb),Ub.wc=qb==0?-1:(1<<qb)-1,k){D.xb=lR;break e}if((ue=i(z*$))==null){D.a=1,B=0;break e}B=(B=Zt(D,ue,0,z,$,$,null))&&!Q.h;break e}return B?(R!=null?R[0]=ue:(n(ue==null),n(k)),D.$=0,k||Kt(ee)):Kt(ee),B}function Bn(f,x){var k=f.c*f.i,D=k+x+16*x;return n(f.c<=x),f.V=i(D),f.V==null?(f.Ta=null,f.Ua=0,f.a=1,0):(f.Ta=f.V,f.Ua=f.Ba+k+x,1)}function Pr(f,x){var k=f.C,D=x-k,R=f.V,B=f.Ba+f.c*k;for(n(x<=f.l.o);0<D;){var z=16<D?16:D,$=f.l.ma,Q=f.l.width,ee=Q*z,ue=$.ca,Se=$.tb+Q*k,te=f.Ta,fe=f.Ua;ft(f,z,R,B),lS(te,fe,ue,Se,ee),xt($,k,k+z,ue,Se,Q),D-=z,R+=z*f.c,k+=z}n(k==x),f.C=f.Ma=x}function ua(){this.ub=this.yd=this.td=this.Rb=0}function pr(){this.Kd=this.Ld=this.Ud=this.Td=this.i=this.c=0}function Wr(){this.Fb=this.Bb=this.Cb=0,this.Zb=i(4),this.Lb=i(4)}function Ji(){this.Yb=function(){var f=[];return function x(k,D,R){for(var B=R[D],z=0;z<B&&(k.push(R.length>D+1?[]:0),!(R.length<D+1));z++)x(k[z],D+1,R)}(f,0,[3,11]),f}()}function Ci(){this.jb=i(3),this.Wc=l([4,8],Ji),this.Xc=l([4,17],Ji)}function _a(){this.Pc=this.wb=this.Tb=this.zd=0,this.vd=new i(4),this.od=new i(4)}function ps(){this.ld=this.La=this.dd=this.tc=0}function Xa(){this.Na=this.la=0}function fn(){this.Sc=[0,0],this.Eb=[0,0],this.Qc=[0,0],this.ia=this.lc=0}function Tn(){this.ad=i(384),this.Za=0,this.Ob=i(16),this.$b=this.Ad=this.ia=this.Gc=this.Hc=this.Dd=0}function Za(){this.uc=this.M=this.Nb=0,this.wa=Array(new ps),this.Y=0,this.ya=Array(new Tn),this.aa=0,this.l=new _i}function pa(){this.y=i(16),this.f=i(8),this.ea=i(8)}function es(){this.cb=this.a=0,this.sc="",this.m=new T,this.Od=new ua,this.Kc=new pr,this.ed=new _a,this.Qa=new Wr,this.Ic=this.$c=this.Aa=0,this.D=new Za,this.Xb=this.Va=this.Hb=this.zb=this.yb=this.Ub=this.za=0,this.Jc=o(8,T),this.ia=0,this.pb=o(4,fn),this.Pa=new Ci,this.Bd=this.kc=0,this.Ac=[],this.Bc=0,this.zc=[0,0,0,0],this.Gd=Array(new pa),this.Hd=0,this.rb=Array(new Xa),this.sb=0,this.wa=Array(new ps),this.Y=0,this.oc=[],this.pc=0,this.sa=[],this.ta=0,this.qa=[],this.ra=0,this.Ha=[],this.B=this.R=this.Ia=0,this.Ec=[],this.M=this.ja=this.Vb=this.Fc=0,this.ya=Array(new Tn),this.L=this.aa=0,this.gd=l([4,2],ps),this.ga=null,this.Fa=[],this.Cc=this.qc=this.P=0,this.Gb=[],this.Uc=0,this.mb=[],this.nb=0,this.rc=[],this.Ga=this.Vc=0}function mr(f,x){return 0>f?0:f>x?x:f}function _i(){this.T=this.U=this.ka=this.height=this.width=0,this.y=[],this.f=[],this.ea=[],this.Rc=this.fa=this.W=this.N=this.O=0,this.ma="void",this.put="VP8IoPutHook",this.ac="VP8IoSetupHook",this.bc="VP8IoTeardownHook",this.ha=this.Kb=0,this.data=[],this.hb=this.ib=this.da=this.o=this.j=this.va=this.v=this.Da=this.ob=this.w=0,this.F=[],this.J=0}function Bl(){var f=new es;return f!=null&&(f.a=0,f.sc="OK",f.cb=0,f.Xb=0,tm||(tm=ei)),f}function js(f,x,k){return f.a==0&&(f.a=x,f.sc=k,f.cb=0),0}function zl(f,x,k){return 3<=k&&f[x+0]==157&&f[x+1]==1&&f[x+2]==42}function ma(f,x){if(f==null)return 0;if(f.a=0,f.sc="OK",x==null)return js(f,2,"null VP8Io passed to VP8GetHeaders()");var k=x.data,D=x.w,R=x.ha;if(4>R)return js(f,7,"Truncated header.");var B=k[D+0]|k[D+1]<<8|k[D+2]<<16,z=f.Od;if(z.Rb=!(1&B),z.td=B>>1&7,z.yd=B>>4&1,z.ub=B>>5,3<z.td)return js(f,3,"Incorrect keyframe parameters.");if(!z.yd)return js(f,4,"Frame not displayable.");D+=3,R-=3;var $=f.Kc;if(z.Rb){if(7>R)return js(f,7,"cannot parse picture header");if(!zl(k,D,R))return js(f,3,"Bad code word");$.c=16383&(k[D+4]<<8|k[D+3]),$.Td=k[D+4]>>6,$.i=16383&(k[D+6]<<8|k[D+5]),$.Ud=k[D+6]>>6,D+=7,R-=7,f.za=$.c+15>>4,f.Ub=$.i+15>>4,x.width=$.c,x.height=$.i,x.Da=0,x.j=0,x.v=0,x.va=x.width,x.o=x.height,x.da=0,x.ib=x.width,x.hb=x.height,x.U=x.width,x.T=x.height,a((B=f.Pa).jb,0,255,B.jb.length),n((B=f.Qa)!=null),B.Cb=0,B.Bb=0,B.Fb=1,a(B.Zb,0,0,B.Zb.length),a(B.Lb,0,0,B.Lb)}if(z.ub>R)return js(f,7,"bad partition length");ce(B=f.m,k,D,z.ub),D+=z.ub,R-=z.ub,z.Rb&&($.Ld=ke(B),$.Kd=ke(B)),$=f.Qa;var Q,ee=f.Pa;if(n(B!=null),n($!=null),$.Cb=ke(B),$.Cb){if($.Bb=ke(B),ke(B)){for($.Fb=ke(B),Q=0;4>Q;++Q)$.Zb[Q]=ke(B)?H(B,7):0;for(Q=0;4>Q;++Q)$.Lb[Q]=ke(B)?H(B,6):0}if($.Bb)for(Q=0;3>Q;++Q)ee.jb[Q]=ke(B)?de(B,8):255}else $.Bb=0;if(B.Ka)return js(f,3,"cannot parse segment header");if(($=f.ed).zd=ke(B),$.Tb=de(B,6),$.wb=de(B,3),$.Pc=ke(B),$.Pc&&ke(B)){for(ee=0;4>ee;++ee)ke(B)&&($.vd[ee]=H(B,6));for(ee=0;4>ee;++ee)ke(B)&&($.od[ee]=H(B,6))}if(f.L=$.Tb==0?0:$.zd?1:2,B.Ka)return js(f,3,"cannot parse filter header");var ue=R;if(R=Q=D,D=Q+ue,$=ue,f.Xb=(1<<de(f.m,2))-1,ue<3*(ee=f.Xb))k=7;else{for(Q+=3*ee,$-=3*ee,ue=0;ue<ee;++ue){var Se=k[R+0]|k[R+1]<<8|k[R+2]<<16;Se>$&&(Se=$),ce(f.Jc[+ue],k,Q,Se),Q+=Se,$-=Se,R+=3}ce(f.Jc[+ee],k,Q,$),k=Q<D?0:5}if(k!=0)return js(f,k,"cannot parse partitions");for(k=de(Q=f.m,7),R=ke(Q)?H(Q,4):0,D=ke(Q)?H(Q,4):0,$=ke(Q)?H(Q,4):0,ee=ke(Q)?H(Q,4):0,Q=ke(Q)?H(Q,4):0,ue=f.Qa,Se=0;4>Se;++Se){if(ue.Cb){var te=ue.Zb[Se];ue.Fb||(te+=k)}else{if(0<Se){f.pb[Se]=f.pb[0];continue}te=k}var fe=f.pb[Se];fe.Sc[0]=Eb[mr(te+R,127)],fe.Sc[1]=Lb[mr(te+0,127)],fe.Eb[0]=2*Eb[mr(te+D,127)],fe.Eb[1]=101581*Lb[mr(te+$,127)]>>16,8>fe.Eb[1]&&(fe.Eb[1]=8),fe.Qc[0]=Eb[mr(te+ee,117)],fe.Qc[1]=Lb[mr(te+Q,127)],fe.lc=te+Q}if(!z.Rb)return js(f,4,"Not a key frame.");for(ke(B),z=f.Pa,k=0;4>k;++k){for(R=0;8>R;++R)for(D=0;3>D;++D)for($=0;11>$;++$)ee=De(B,iR[k][R][D][$])?de(B,8):rR[k][R][D][$],z.Wc[k][R].Yb[D][$]=ee;for(R=0;17>R;++R)z.Xc[k][R]=z.Wc[k][oR[R]]}return f.kc=ke(B),f.kc&&(f.Bd=de(B,8)),f.cb=1}function ei(f,x,k,D,R,B,z){var $=x[R].Yb[k];for(k=0;16>R;++R){if(!De(f,$[k+0]))return R;for(;!De(f,$[k+1]);)if($=x[++R].Yb[0],k=0,R==16)return 16;var Q=x[R+1].Yb;if(De(f,$[k+2])){var ee=f,ue=0;if(De(ee,(te=$)[(Se=k)+3]))if(De(ee,te[Se+6])){for($=0,Se=2*(ue=De(ee,te[Se+8]))+(te=De(ee,te[Se+9+ue])),ue=0,te=nR[Se];te[$];++$)ue+=ue+De(ee,te[$]);ue+=3+(8<<Se)}else De(ee,te[Se+7])?(ue=7+2*De(ee,165),ue+=De(ee,145)):ue=5+De(ee,159);else ue=De(ee,te[Se+4])?3+De(ee,te[Se+5]):2;$=Q[2]}else ue=1,$=Q[1];Q=z+sR[R],0>(ee=f).b&&je(ee);var Se,te=ee.b,fe=(Se=ee.Ca>>1)-(ee.I>>te)>>31;--ee.b,ee.Ca+=fe,ee.Ca|=1,ee.I-=(Se+1&fe)<<te,B[Q]=((ue^fe)-fe)*D[(0<R)+0]}return 16}function Xi(f){var x=f.rb[f.sb-1];x.la=0,x.Na=0,a(f.zc,0,0,f.zc.length),f.ja=0}function Ps(f,x,k,D,R){R=f[x+k+32*D]+(R>>3),f[x+k+32*D]=-256&R?0>R?0:255:R}function Ul(f,x,k,D,R,B){Ps(f,x,0,k,D+R),Ps(f,x,1,k,D+B),Ps(f,x,2,k,D-B),Ps(f,x,3,k,D-R)}function Ta(f){return(20091*f>>16)+f}function fr(f,x,k,D){var R,B=0,z=i(16);for(R=0;4>R;++R){var $=f[x+0]+f[x+8],Q=f[x+0]-f[x+8],ee=(35468*f[x+4]>>16)-Ta(f[x+12]),ue=Ta(f[x+4])+(35468*f[x+12]>>16);z[B+0]=$+ue,z[B+1]=Q+ee,z[B+2]=Q-ee,z[B+3]=$-ue,B+=4,x++}for(R=B=0;4>R;++R)$=(f=z[B+0]+4)+z[B+8],Q=f-z[B+8],ee=(35468*z[B+4]>>16)-Ta(z[B+12]),Ps(k,D,0,0,$+(ue=Ta(z[B+4])+(35468*z[B+12]>>16))),Ps(k,D,1,0,Q+ee),Ps(k,D,2,0,Q-ee),Ps(k,D,3,0,$-ue),B++,D+=32}function ud(f,x,k,D){var R=f[x+0]+4,B=35468*f[x+4]>>16,z=Ta(f[x+4]),$=35468*f[x+1]>>16;Ul(k,D,0,R+z,f=Ta(f[x+1]),$),Ul(k,D,1,R+B,f,$),Ul(k,D,2,R-B,f,$),Ul(k,D,3,R-z,f,$)}function So(f,x,k,D,R){fr(f,x,k,D),R&&fr(f,x+16,k,D+4)}function Lh(f,x,k,D){hl(f,x+0,k,D,1),hl(f,x+32,k,D+128,1)}function Mh(f,x,k,D){var R;for(f=f[x+0]+4,R=0;4>R;++R)for(x=0;4>x;++x)Ps(k,D,x,R,f)}function Ti(f,x,k,D){f[x+0]&&Yr(f,x+0,k,D),f[x+16]&&Yr(f,x+16,k,D+4),f[x+32]&&Yr(f,x+32,k,D+128),f[x+48]&&Yr(f,x+48,k,D+128+4)}function pd(f,x,k,D){var R,B=i(16);for(R=0;4>R;++R){var z=f[x+0+R]+f[x+12+R],$=f[x+4+R]+f[x+8+R],Q=f[x+4+R]-f[x+8+R],ee=f[x+0+R]-f[x+12+R];B[0+R]=z+$,B[8+R]=z-$,B[4+R]=ee+Q,B[12+R]=ee-Q}for(R=0;4>R;++R)z=(f=B[0+4*R]+3)+B[3+4*R],$=B[1+4*R]+B[2+4*R],Q=B[1+4*R]-B[2+4*R],ee=f-B[3+4*R],k[D+0]=z+$>>3,k[D+16]=ee+Q>>3,k[D+32]=z-$>>3,k[D+48]=ee-Q>>3,D+=64}function ql(f,x,k){var D,R=x-32,B=ni,z=255-f[R-1];for(D=0;D<k;++D){var $,Q=B,ee=z+f[x-1];for($=0;$<k;++$)f[x+$]=Q[ee+f[R+$]];x+=32}}function Hl(f,x){ql(f,x,4)}function $l(f,x){ql(f,x,8)}function Wl(f,x){ql(f,x,16)}function md(f,x){var k;for(k=0;16>k;++k)r(f,x+32*k,f,x-32,16)}function Ge(f,x){var k;for(k=16;0<k;--k)a(f,x,f[x-1],16),x+=32}function J(f,x,k){var D;for(D=0;16>D;++D)a(x,k+32*D,f,16)}function ve(f,x){var k,D=16;for(k=0;16>k;++k)D+=f[x-1+32*k]+f[x+k-32];J(D>>5,f,x)}function Ve(f,x){var k,D=8;for(k=0;16>k;++k)D+=f[x-1+32*k];J(D>>4,f,x)}function et(f,x){var k,D=8;for(k=0;16>k;++k)D+=f[x+k-32];J(D>>4,f,x)}function It(f,x){J(128,f,x)}function st(f,x,k){return f+2*x+k+2>>2}function Dn(f,x){var k,D=x-32;for(D=new Uint8Array([st(f[D-1],f[D+0],f[D+1]),st(f[D+0],f[D+1],f[D+2]),st(f[D+1],f[D+2],f[D+3]),st(f[D+2],f[D+3],f[D+4])]),k=0;4>k;++k)r(f,x+32*k,D,0,D.length)}function ms(f,x){var k=f[x-1],D=f[x-1+32],R=f[x-1+64],B=f[x-1+96];Pe(f,x+0,16843009*st(f[x-1-32],k,D)),Pe(f,x+32,16843009*st(k,D,R)),Pe(f,x+64,16843009*st(D,R,B)),Pe(f,x+96,16843009*st(R,B,B))}function Gr(f,x){var k,D=4;for(k=0;4>k;++k)D+=f[x+k-32]+f[x-1+32*k];for(D>>=3,k=0;4>k;++k)a(f,x+32*k,D,4)}function Er(f,x){var k=f[x-1+0],D=f[x-1+32],R=f[x-1+64],B=f[x-1-32],z=f[x+0-32],$=f[x+1-32],Q=f[x+2-32],ee=f[x+3-32];f[x+0+96]=st(D,R,f[x-1+96]),f[x+1+96]=f[x+0+64]=st(k,D,R),f[x+2+96]=f[x+1+64]=f[x+0+32]=st(B,k,D),f[x+3+96]=f[x+2+64]=f[x+1+32]=f[x+0+0]=st(z,B,k),f[x+3+64]=f[x+2+32]=f[x+1+0]=st($,z,B),f[x+3+32]=f[x+2+0]=st(Q,$,z),f[x+3+0]=st(ee,Q,$)}function Ao(f,x){var k=f[x+1-32],D=f[x+2-32],R=f[x+3-32],B=f[x+4-32],z=f[x+5-32],$=f[x+6-32],Q=f[x+7-32];f[x+0+0]=st(f[x+0-32],k,D),f[x+1+0]=f[x+0+32]=st(k,D,R),f[x+2+0]=f[x+1+32]=f[x+0+64]=st(D,R,B),f[x+3+0]=f[x+2+32]=f[x+1+64]=f[x+0+96]=st(R,B,z),f[x+3+32]=f[x+2+64]=f[x+1+96]=st(B,z,$),f[x+3+64]=f[x+2+96]=st(z,$,Q),f[x+3+96]=st($,Q,Q)}function ti(f,x){var k=f[x-1+0],D=f[x-1+32],R=f[x-1+64],B=f[x-1-32],z=f[x+0-32],$=f[x+1-32],Q=f[x+2-32],ee=f[x+3-32];f[x+0+0]=f[x+1+64]=B+z+1>>1,f[x+1+0]=f[x+2+64]=z+$+1>>1,f[x+2+0]=f[x+3+64]=$+Q+1>>1,f[x+3+0]=Q+ee+1>>1,f[x+0+96]=st(R,D,k),f[x+0+64]=st(D,k,B),f[x+0+32]=f[x+1+96]=st(k,B,z),f[x+1+32]=f[x+2+96]=st(B,z,$),f[x+2+32]=f[x+3+96]=st(z,$,Q),f[x+3+32]=st($,Q,ee)}function ks(f,x){var k=f[x+0-32],D=f[x+1-32],R=f[x+2-32],B=f[x+3-32],z=f[x+4-32],$=f[x+5-32],Q=f[x+6-32],ee=f[x+7-32];f[x+0+0]=k+D+1>>1,f[x+1+0]=f[x+0+64]=D+R+1>>1,f[x+2+0]=f[x+1+64]=R+B+1>>1,f[x+3+0]=f[x+2+64]=B+z+1>>1,f[x+0+32]=st(k,D,R),f[x+1+32]=f[x+0+96]=st(D,R,B),f[x+2+32]=f[x+1+96]=st(R,B,z),f[x+3+32]=f[x+2+96]=st(B,z,$),f[x+3+64]=st(z,$,Q),f[x+3+96]=st($,Q,ee)}function Rh(f,x){var k=f[x-1+0],D=f[x-1+32],R=f[x-1+64],B=f[x-1+96];f[x+0+0]=k+D+1>>1,f[x+2+0]=f[x+0+32]=D+R+1>>1,f[x+2+32]=f[x+0+64]=R+B+1>>1,f[x+1+0]=st(k,D,R),f[x+3+0]=f[x+1+32]=st(D,R,B),f[x+3+32]=f[x+1+64]=st(R,B,B),f[x+3+64]=f[x+2+64]=f[x+0+96]=f[x+1+96]=f[x+2+96]=f[x+3+96]=B}function Nb(f,x){var k=f[x-1+0],D=f[x-1+32],R=f[x-1+64],B=f[x-1+96],z=f[x-1-32],$=f[x+0-32],Q=f[x+1-32],ee=f[x+2-32];f[x+0+0]=f[x+2+32]=k+z+1>>1,f[x+0+32]=f[x+2+64]=D+k+1>>1,f[x+0+64]=f[x+2+96]=R+D+1>>1,f[x+0+96]=B+R+1>>1,f[x+3+0]=st($,Q,ee),f[x+2+0]=st(z,$,Q),f[x+1+0]=f[x+3+32]=st(k,z,$),f[x+1+32]=f[x+3+64]=st(D,k,z),f[x+1+64]=f[x+3+96]=st(R,D,k),f[x+1+96]=st(B,R,D)}function Oh(f,x){var k;for(k=0;8>k;++k)r(f,x+32*k,f,x-32,8)}function Up(f,x){var k;for(k=0;8>k;++k)a(f,x,f[x-1],8),x+=32}
vendor: 5,199 bytes, line 2755
2755function Do(f,x,k){var D;for(D=0;8>D;++D)a(x,k+32*D,f,8)}function Sb(f,x){var k,D=8;for(k=0;8>k;++k)D+=f[x+k-32]+f[x-1+32*k];Do(D>>4,f,x)}function Fh(f,x){var k,D=4;for(k=0;8>k;++k)D+=f[x+k-32];Do(D>>3,f,x)}function Ab(f,x){var k,D=4;for(k=0;8>k;++k)D+=f[x-1+32*k];Do(D>>3,f,x)}function qp(f,x){Do(128,f,x)}function Gl(f,x,k){var D=f[x-k],R=f[x+0],B=3*(R-D)+Ib[1020+f[x-2*k]-f[x+k]],z=Dg[112+(B+4>>3)];f[x-k]=ni[255+D+Dg[112+(B+3>>3)]],f[x+0]=ni[255+R-z]}function Hp(f,x,k,D){var R=f[x+0],B=f[x+k];return Ei[255+f[x-2*k]-f[x-k]]>D||Ei[255+B-R]>D}function fd(f,x,k,D){return 4*Ei[255+f[x-k]-f[x+0]]+Ei[255+f[x-2*k]-f[x+k]]<=D}function $p(f,x,k,D,R){var B=f[x-3*k],z=f[x-2*k],$=f[x-k],Q=f[x+0],ee=f[x+k],ue=f[x+2*k],Se=f[x+3*k];return 4*Ei[255+$-Q]+Ei[255+z-ee]>D?0:Ei[255+f[x-4*k]-B]<=R&&Ei[255+B-z]<=R&&Ei[255+z-$]<=R&&Ei[255+Se-ue]<=R&&Ei[255+ue-ee]<=R&&Ei[255+ee-Q]<=R}function Vh(f,x,k,D){var R=2*D+1;for(D=0;16>D;++D)fd(f,x+D,k,R)&&Gl(f,x+D,k)}function Wp(f,x,k,D){var R=2*D+1;for(D=0;16>D;++D)fd(f,x+D*k,1,R)&&Gl(f,x+D*k,1)}function Bh(f,x,k,D){var R;for(R=3;0<R;--R)Vh(f,x+=4*k,k,D)}function bg(f,x,k,D){var R;for(R=3;0<R;--R)Wp(f,x+=4,k,D)}function ll(f,x,k,D,R,B,z,$){for(B=2*B+1;0<R--;){if($p(f,x,k,B,z))if(Hp(f,x,k,$))Gl(f,x,k);else{var Q=f,ee=x,ue=k,Se=Q[ee-2*ue],te=Q[ee-ue],fe=Q[ee+0],we=Q[ee+ue],Te=Q[ee+2*ue],Ne=27*(Me=Ib[1020+3*(fe-te)+Ib[1020+Se-we]])+63>>7,Ee=18*Me+63>>7,Me=9*Me+63>>7;Q[ee-3*ue]=ni[255+Q[ee-3*ue]+Me],Q[ee-2*ue]=ni[255+Se+Ee],Q[ee-ue]=ni[255+te+Ne],Q[ee+0]=ni[255+fe-Ne],Q[ee+ue]=ni[255+we-Ee],Q[ee+2*ue]=ni[255+Te-Me]}x+=D}}function cl(f,x,k,D,R,B,z,$){for(B=2*B+1;0<R--;){if($p(f,x,k,B,z))if(Hp(f,x,k,$))Gl(f,x,k);else{var Q=f,ee=x,ue=k,Se=Q[ee-ue],te=Q[ee+0],fe=Q[ee+ue],we=Dg[112+(4+(Te=3*(te-Se))>>3)],Te=Dg[112+(Te+3>>3)],Ne=we+1>>1;Q[ee-2*ue]=ni[255+Q[ee-2*ue]+Ne],Q[ee-ue]=ni[255+Se+Te],Q[ee+0]=ni[255+te-we],Q[ee+ue]=ni[255+fe-Ne]}x+=D}}function vg(f,x,k,D,R,B){ll(f,x,k,1,16,D,R,B)}function wg(f,x,k,D,R,B){ll(f,x,1,k,16,D,R,B)}function jg(f,x,k,D,R,B){var z;for(z=3;0<z;--z)cl(f,x+=4*k,k,1,16,D,R,B)}function gd(f,x,k,D,R,B){var z;for(z=3;0<z;--z)cl(f,x+=4,1,k,16,D,R,B)}function kg(f,x,k,D,R,B,z,$){ll(f,x,R,1,8,B,z,$),ll(k,D,R,1,8,B,z,$)}function v(f,x,k,D,R,B,z,$){ll(f,x,1,R,8,B,z,$),ll(k,D,1,R,8,B,z,$)}function M(f,x,k,D,R,B,z,$){cl(f,x+4*R,R,1,8,B,z,$),cl(k,D+4*R,R,1,8,B,z,$)}function Z(f,x,k,D,R,B,z,$){cl(f,x+4,1,R,8,B,z,$),cl(k,D+4,1,R,8,B,z,$)}function le(){this.ba=new Mt,this.ec=[],this.cc=[],this.Mc=[],this.Dc=this.Nc=this.dc=this.fc=0,this.Oa=new In,this.memory=0,this.Ib="OutputFunc",this.Jb="OutputAlphaFunc",this.Nd="OutputRowFunc"}function ye(){this.data=[],this.offset=this.kd=this.ha=this.w=0,this.na=[],this.xa=this.gb=this.Ja=this.Sa=this.P=0}function _e(){this.nc=this.Ea=this.b=this.hc=0,this.K=[],this.w=0}function Be(){this.ua=0,this.Wa=new Wt,this.vb=new Wt,this.md=this.xc=this.wc=0,this.vc=[],this.Wb=0,this.Ya=new ae,this.yc=new K}function Ct(){this.xb=this.a=0,this.l=new _i,this.ca=new Mt,this.V=[],this.Ba=0,this.Ta=[],this.Ua=0,this.m=new I,this.Pb=0,this.wd=new I,this.Ma=this.$=this.C=this.i=this.c=this.xd=0,this.s=new Be,this.ab=0,this.gc=o(4,_e),this.Oc=0}function Dt(){this.Lc=this.Z=this.$a=this.i=this.c=0,this.l=new _i,this.ic=0,this.ca=[],this.tb=0,this.qd=null,this.rd=0}function an(f,x,k,D,R,B,z){for(f=f==null?0:f[x+0],x=0;x<z;++x)R[B+x]=f+k[D+x]&255,f=R[B+x]}function pn(f,x,k,D,R,B,z){var $;if(f==null)an(null,null,k,D,R,B,z);else for($=0;$<z;++$)R[B+$]=f[x+$]+k[D+$]&255}function Fn(f,x,k,D,R,B,z){if(f==null)an(null,null,k,D,R,B,z);else{var $,Q=f[x+0],ee=Q,ue=Q;for($=0;$<z;++$)ee=ue+(Q=f[x+$])-ee,ue=k[D+$]+(-256&ee?0>ee?0:255:ee)&255,ee=Q,R[B+$]=ue}}function ir(f,x,k,D){var R=x.width,B=x.o;if(n(f!=null&&x!=null),0>k||0>=D||k+D>B)return null;if(!f.Cc){if(f.ga==null){var z;if(f.ga=new Dt,(z=f.ga==null)||(z=x.width*x.o,n(f.Gb.length==0),f.Gb=i(z),f.Uc=0,f.Gb==null?z=0:(f.mb=f.Gb,f.nb=f.Uc,f.rc=null,z=1),z=!z),!z){z=f.ga;var $=f.Fa,Q=f.P,ee=f.qc,ue=f.mb,Se=f.nb,te=Q+1,fe=ee-1,we=z.l;if(n($!=null&&ue!=null&&x!=null),ec[0]=null,ec[1]=an,ec[2]=pn,ec[3]=Fn,z.ca=ue,z.tb=Se,z.c=x.width,z.i=x.height,n(0<z.c&&0<z.i),1>=ee)x=0;else if(z.$a=3&$[Q+0],z.Z=$[Q+0]>>2&3,z.Lc=$[Q+0]>>4&3,Q=$[Q+0]>>6&3,0>z.$a||1<z.$a||4<=z.Z||1<z.Lc||Q)x=0;else if(we.put=Bt,we.ac=Tr,we.bc=oe,we.ma=z,we.width=x.width,we.height=x.height,we.Da=x.Da,we.v=x.v,we.va=x.va,we.j=x.j,we.o=x.o,z.$a)e:{n(z.$a==1),x=xn();t:for(;;){if(x==null){x=0;break e}if(n(z!=null),z.mc=x,x.c=z.c,x.i=z.i,x.l=z.l,x.l.ma=z,x.l.width=z.c,x.l.height=z.i,x.a=0,X(x.m,$,te,fe),!dn(z.c,z.i,1,x,null)||(x.ab==1&&x.gc[0].hc==3&<(x.s)?(z.ic=1,$=x.c*x.i,x.Ta=null,x.Ua=0,x.V=i($),x.Ba=0,x.V==null?(x.a=1,x=0):x=1):(z.ic=0,x=Bn(x,z.c)),!x))break t;x=1;break e}z.mc=null,x=0}else x=fe>=z.c*z.i;z=!x}if(z)return null;f.ga.Lc!=1?f.Ga=0:D=B-k}n(f.ga!=null),n(k+D<=B);e:{if(x=($=f.ga).c,B=$.l.o,$.$a==0){if(te=f.rc,fe=f.Vc,we=f.Fa,Q=f.P+1+k*x,ee=f.mb,ue=f.nb+k*x,n(Q<=f.P+f.qc),$.Z!=0)for(n(ec[$.Z]!=null),z=0;z<D;++z)ec[$.Z](te,fe,we,Q,ee,ue,x),te=ee,fe=ue,ue+=x,Q+=x;else for(z=0;z<D;++z)r(ee,ue,we,Q,x),te=ee,fe=ue,ue+=x,Q+=x;f.rc=te,f.Vc=fe}else{if(n($.mc!=null),x=k+D,n((z=$.mc)!=null),n(x<=z.i),z.C>=x)x=1;else if($.ic||zs(),$.ic){$=z.V,te=z.Ba,fe=z.c;
vendor: 6,091 bytes, line 2755
2755var Te=z.i,Ne=(we=1,Q=z.$/fe,ee=z.$%fe,ue=z.m,Se=z.s,z.$),Ee=fe*Te,Me=fe*x,We=Se.wc,ze=Ne<Me?jt(Se,ee,Q):null;n(Ne<=Ee),n(x<=Te),n(lt(Se));t:for(;;){for(;!ue.h&&Ne<Me;){if(ee&We||(ze=jt(Se,ee,Q)),n(ze!=null),pe(ue),256>(Te=Xe(ze.G[0],ze.H[0],ue)))$[te+Ne]=Te,++Ne,++ee>=fe&&(ee=0,++Q<=x&&!(Q%16)&&Qt(z,Q));else{if(!(280>Te)){we=0;break t}Te=Ae(Te-256,ue);var Rt,Nt=Xe(ze.G[4],ze.H[4],ue);if(pe(ue),!(Ne>=(Nt=Re(fe,Nt=Ae(Nt,ue)))&&Ee-Ne>=Te)){we=0;break t}for(Rt=0;Rt<Te;++Rt)$[te+Ne+Rt]=$[te+Ne+Rt-Nt];for(Ne+=Te,ee+=Te;ee>=fe;)ee-=fe,++Q<=x&&!(Q%16)&&Qt(z,Q);Ne<Me&&ee&We&&(ze=jt(Se,ee,Q))}n(ue.h==re(ue))}Qt(z,Q>x?x:Q);break t}!we||ue.h&&Ne<Ee?(we=0,z.a=ue.h?5:3):z.$=Ne,x=we}else x=Zt(z,z.V,z.Ba,z.c,z.i,x,Pr);if(!x){D=0;break e}}k+D>=B&&(f.Cc=1),D=1}if(!D)return null;if(f.Cc&&((D=f.ga)!=null&&(D.mc=null),f.ga=null,0<f.Ga))return alert("todo:WebPDequantizeLevels"),null}return f.nb+k*R}function is(f,x,k,D,R,B){for(;0<R--;){var z,$=f,Q=x+(k?1:0),ee=f,ue=x+(k?0:3);for(z=0;z<D;++z){var Se=ee[ue+4*z];Se!=255&&(Se*=32897,$[Q+4*z+0]=$[Q+4*z+0]*Se>>23,$[Q+4*z+1]=$[Q+4*z+1]*Se>>23,$[Q+4*z+2]=$[Q+4*z+2]*Se>>23)}x+=B}}function ts(f,x,k,D,R){for(;0<D--;){var B;for(B=0;B<k;++B){var z=f[x+2*B+0],$=15&(ee=f[x+2*B+1]),Q=4369*$,ee=(240&ee|ee>>4)*Q>>16;f[x+2*B+0]=(240&z|z>>4)*Q>>16&240|(15&z|z<<4)*Q>>16>>4&15,f[x+2*B+1]=240&ee|$}x+=R}}function Ns(f,x,k,D,R,B,z,$){var Q,ee,ue=255;for(ee=0;ee<R;++ee){for(Q=0;Q<D;++Q){var Se=f[x+Q];B[z+4*Q]=Se,ue&=Se}x+=k,z+=$}return ue!=255}function Bs(f,x,k,D,R){var B;for(B=0;B<R;++B)k[D+B]=f[x+B]>>8}function zs(){em=is,iS=ts,oS=Ns,lS=Bs}function Kr(f,x,k){L[f]=function(D,R,B,z,$,Q,ee,ue,Se,te,fe,we,Te,Ne,Ee,Me,We){var ze,Rt=We-1>>1,Nt=$[Q+0]|ee[ue+0]<<16,yn=Se[te+0]|fe[we+0]<<16;n(D!=null);var Pt=3*Nt+yn+131074>>2;for(x(D[R+0],255&Pt,Pt>>16,Te,Ne),B!=null&&(Pt=3*yn+Nt+131074>>2,x(B[z+0],255&Pt,Pt>>16,Ee,Me)),ze=1;ze<=Rt;++ze){var En=$[Q+ze]|ee[ue+ze]<<16,xr=Se[te+ze]|fe[we+ze]<<16,bn=Nt+En+yn+xr+524296,Et=bn+2*(En+yn)>>3;Pt=Et+Nt>>1,Nt=(bn=bn+2*(Nt+xr)>>3)+En>>1,x(D[R+2*ze-1],255&Pt,Pt>>16,Te,Ne+(2*ze-1)*k),x(D[R+2*ze-0],255&Nt,Nt>>16,Te,Ne+(2*ze-0)*k),B!=null&&(Pt=bn+yn>>1,Nt=Et+xr>>1,x(B[z+2*ze-1],255&Pt,Pt>>16,Ee,Me+(2*ze-1)*k),x(B[z+2*ze+0],255&Nt,Nt>>16,Ee,Me+(2*ze+0)*k)),Nt=En,yn=xr}1&We||(Pt=3*Nt+yn+131074>>2,x(D[R+We-1],255&Pt,Pt>>16,Te,Ne+(We-1)*k),B!=null&&(Pt=3*yn+Nt+131074>>2,x(B[z+We-1],255&Pt,Pt>>16,Ee,Me+(We-1)*k)))}}function dl(){Li[Ig]=cR,Li[Cg]=bS,Li[mS]=dR,Li[_g]=vS,Li[Tg]=wS,Li[Cb]=jS,Li[fS]=hR,Li[_b]=bS,Li[Tb]=vS,Li[Pg]=wS,Li[Pb]=jS}function Gp(f){return f&~uR?0>f?0:255:f>>kS}function xd(f,x){return Gp((19077*f>>8)+(26149*x>>8)-14234)}function yd(f,x,k){return Gp((19077*f>>8)-(6419*x>>8)-(13320*k>>8)+8708)}function Kl(f,x){return Gp((19077*f>>8)+(33050*x>>8)-17685)}function bd(f,x,k,D,R){D[R+0]=xd(f,k),D[R+1]=yd(f,x,k),D[R+2]=Kl(f,x)}function zh(f,x,k,D,R){D[R+0]=Kl(f,x),D[R+1]=yd(f,x,k),D[R+2]=xd(f,k)}function Uh(f,x,k,D,R){var B=yd(f,x,k);x=B<<3&224|Kl(f,x)>>3,D[R+0]=248&xd(f,k)|B>>5,D[R+1]=x}function Qr(f,x,k,D,R){var B=240&Kl(f,x)|15;D[R+0]=240&xd(f,k)|yd(f,x,k)>>4,D[R+1]=B}function vd(f,x,k,D,R){D[R+0]=255,bd(f,x,k,D,R+1)}function wd(f,x,k,D,R){zh(f,x,k,D,R),D[R+3]=255}function Kp(f,x,k,D,R){bd(f,x,k,D,R),D[R+3]=255}function Io(f,x,k){L[f]=function(D,R,B,z,$,Q,ee,ue,Se){for(var te=ue+(-2&Se)*k;ue!=te;)x(D[R+0],B[z+0],$[Q+0],ee,ue),x(D[R+1],B[z+0],$[Q+0],ee,ue+k),R+=2,++z,++Q,ue+=2*k;1&Se&&x(D[R+0],B[z+0],$[Q+0],ee,ue)}}function fa(f,x,k){return k==0?f==0?x==0?6:5:x==0?4:0:k}function Ng(f,x,k,D,R){switch(f>>>30){case 3:hl(x,k,D,R,0);break;case 2:Xl(x,k,D,R);break;case 1:Yr(x,k,D,R)}}function qh(f,x){var k,D,R=x.M,B=x.Nb,z=f.oc,$=f.pc+40,Q=f.oc,ee=f.pc+584,ue=f.oc,Se=f.pc+600;for(k=0;16>k;++k)z[$+32*k-1]=129;for(k=0;8>k;++k)Q[ee+32*k-1]=129,ue[Se+32*k-1]=129;for(0<R?z[$-1-32]=Q[ee-1-32]=ue[Se-1-32]=129:(a(z,$-32-1,127,21),a(Q,ee-32-1,127,9),a(ue,Se-32-1,127,9)),D=0;D<f.za;++D){var te=x.ya[x.aa+D];if(0<D){for(k=-1;16>k;++k)r(z,$+32*k-4,z,$+32*k+12,4);for(k=-1;8>k;++k)r(Q,ee+32*k-4,Q,ee+32*k+4,4),r(ue,Se+32*k-4,ue,Se+32*k+4,4)}var fe=f.Gd,we=f.Hd+D,Te=te.ad,Ne=te.Hc;if(0<R&&(r(z,$-32,fe[we].y,0,16),r(Q,ee-32,fe[we].f,0,8),r(ue,Se-32,fe[we].ea,0,8)),te.Za){var Ee=z,Me=$-32+16;for(0<R&&(D>=f.za-1?a(Ee,Me,fe[we].y[15],4):r(Ee,Me,fe[we+1].y,0,4)),k=0;4>k;k++)Ee[Me+128+k]=Ee[Me+256+k]=Ee[Me+384+k]=Ee[Me+0+k];for(k=0;16>k;++k,Ne<<=2)Ee=z,Me=$+SS[k],eo[te.Ob[k]](Ee,Me),Ng(Ne,Te,16*+k,Ee,Me)}else if(Ee=fa(D,R,te.Ob[0]),Zl[Ee](z,$),Ne!=0)for(k=0;16>k;++k,Ne<<=2)Ng(Ne,Te,16*+k,z,$+SS[k]);for(k=te.Gc,Ee=fa(D,R,te.Dd),pl[Ee](Q,ee),pl[Ee](ue,Se),Ne=Te,Ee=Q,Me=ee,255&(te=0|k)&&(170&te?Kh(Ne,256,Ee,Me):_o(Ne,256,Ee,Me)),te=ue,Ne=Se,255&(k>>=8)&&(170&k?Kh(Te,320,te,Ne):_o(Te,320,te,Ne)),R<f.Ub-1&&(r(fe[we].y,0,z,$+480,16),r(fe[we].f,0,Q,ee+224,8),r(fe[we].ea,0,ue,Se+224,8)),k=8*B*f.B,fe=f.sa,we=f.ta+16*D+16*B*f.R,Te=f.qa,te=f.ra+8*D+k,Ne=f.Ha,Ee=f.Ia+8*D+k,k=0;16>k;++k)r(fe,we+k*f.R,z,$+32*k,16);for(k=0;8>k;++k)r(Te,te+k*f.B,Q,ee+32*k,8),r(Ne,Ee+k*f.B,ue,Se+32*k,8)}}function Sg(f,x,k,D,R,B,z,$,Q){var ee=[0],ue=[0],Se=0,te=Q!=null?Q.kd:0,fe=Q??new ye;if(f==null||12>k)return 7;fe.data=f,fe.w=x,fe.ha=k,x=[x],k=[k],fe.gb=[fe.gb];e:{var we=x,Te=k,Ne=fe.gb;if(n(f!=null),n(Te!=null),n(Ne!=null),Ne[0]=0,12<=Te[0]&&!s(f,we[0],"RIFF")){if(s(f,we[0]+8,"WEBP")){Ne=3;break e}var Ee=Je(f,we[0]+4);if(12>Ee||4294967286<Ee){Ne=3;break e}if(te&&Ee>Te[0]-8){Ne=7;break e}Ne[0]=Ee,we[0]+=12,Te[0]-=12}Ne=0}if(Ne!=0)return Ne;for(Ee=0<fe.gb[0],k=k[0];;){e:{var Me=f;Te=x,Ne=k;var We=ee,ze=ue,Rt=we=[0];if((Pt=Se=[Se])[0]=0,8>Ne[0])Ne=7;else{if(!s(Me,Te[0],"VP8X")){if(Je(Me,Te[0]+4)!=10){Ne=3;break e}if(18>Ne[0]){Ne=7;break e}var Nt=Je(Me,Te[0]+8),yn=1+tt(Me,Te[0]+12);if(2147483648<=yn*(Me=1+tt(Me,Te[0]+15))){Ne=3;break e}Rt!=null&&(Rt[0]=Nt),We!=null&&(We[0]=yn),ze!=null&&(ze[0]=Me),Te[0]+=18,Ne[0]-=18,Pt[0]=1}Ne=0}}if(Se=Se[0],we=we[0],Ne!=0)return Ne;if(Te=!!(2&we),!Ee&&Se)return 3;if(B!=null&&(B[0]=!!(16&we)),z!=null&&(z[0]=Te),$!=null&&($[0]=0),z=ee[0],we=ue[0],Se&&Te&&Q==null){Ne=0;break}if(4>k){Ne=7;break}if(Ee&&Se||!Ee&&!Se&&!s(f,x[0],"ALPH")){k=[k],fe.na=[fe.na],fe.P=[fe.P],fe.S
2755a=[fe.Sa];e:{Nt=f,Ne=x,Ee=k;var Pt=fe.gb;We=fe.na,ze=fe.P,Rt=fe.Sa,yn=22,n(Nt!=null),n(Ee!=null),Me=Ne[0];var En=Ee[0];for(n(We!=null),n(Rt!=null),We[0]=null,ze[0]=null,Rt[0]=0;;){if(Ne[0]=Me,Ee[0]=En,8>En){Ne=7;break e}var xr=Je(Nt,Me+4);if(4294967286<xr){Ne=3;break e}var bn=8+xr+1&-2;if(yn+=bn,0<Pt&&yn>Pt){Ne=3;break e}if(!s(Nt,Me,"VP8 ")||!s(Nt,Me,"VP8L")){Ne=0;break e}if(En[0]<bn){Ne=7;break e}s(Nt,Me,"ALPH")||(We[0]=Nt,ze[0]=Me+8,Rt[0]=xr),Me+=bn,En-=bn}}if(k=k[0],fe.na=fe.na[0],fe.P=fe.P[0],fe.Sa=fe.Sa[0],Ne!=0)break}k=[k],fe.Ja=[fe.Ja],fe.xa=[fe.xa];e:if(Pt=f,Ne=x,Ee=k,We=fe.gb[0],ze=fe.Ja,Rt=fe.xa,Nt=Ne[0],Me=!s(Pt,Nt,"VP8 "),yn=!s(Pt,Nt,"VP8L"),n(Pt!=null),n(Ee!=null),n(ze!=null),n(Rt!=null),8>Ee[0])Ne=7;else{if(Me||yn){if(Pt=Je(Pt,Nt+4),12<=We&&Pt>We-12){Ne=3;break e}if(te&&Pt>Ee[0]-8){Ne=7;break e}ze[0]=Pt,Ne[0]+=8,Ee[0]-=8,Rt[0]=yn}else Rt[0]=5<=Ee[0]&&Pt[Nt+0]==47&&!(Pt[Nt+4]>>5),ze[0]=Ee[0];Ne=0}if(k=k[0],fe.Ja=fe.Ja[0],fe.xa=fe.xa[0],x=x[0],Ne!=0)break;if(4294967286<fe.Ja)return 3;if($==null||Te||($[0]=fe.xa?2:1),z=[z],we=[we],fe.xa){if(5>k){Ne=7;break}$=z,te=we,Te=B,f==null||5>k?f=0:5<=k&&f[x+0]==47&&!(f[x+4]>>5)?(Ee=[0],Pt=[0],We=[0],X(ze=new I,f,x,k),ge(ze,Ee,Pt,We)?($!=null&&($[0]=Ee[0]),te!=null&&(te[0]=Pt[0]),Te!=null&&(Te[0]=We[0]),f=1):f=0):f=0}else{if(10>k){Ne=7;break}$=we,f==null||10>k||!zl(f,x+3,k-3)?f=0:(te=f[x+0]|f[x+1]<<8|f[x+2]<<16,Te=16383&(f[x+7]<<8|f[x+6]),f=16383&(f[x+9]<<8|f[x+8]),1&te||3<(te>>1&7)||!(te>>4&1)||te>>5>=fe.Ja||!Te||!f?f=0:(z&&(z[0]=Te),$&&($[0]=f),f=1))}if(!f||(z=z[0],we=we[0],Se&&(ee[0]!=z||ue[0]!=we)))return 3;Q!=null&&(Q[0]=fe,Q.offset=x-Q.w,n(4294967286>x-Q.w),n(Q.offset==Q.ha-k));break}return Ne==0||Ne==7&&Se&&Q==null?(B!=null&&(B[0]|=fe.na!=null&&0<fe.na.length),D!=null&&(D[0]=z),R!=null&&(R[0]=we),0):Ne}function Pi(f,x,k){var D=x.width,R=x.height,B=0,z=0,$=D,Q=R;if(x.Da=f!=null&&0<f.Da,x.Da&&($=f.cd,Q=f.bd,B=f.v,z=f.j,11>k||(B&=-2,z&=-2),0>B||0>z||0>=$||0>=Q||B+$>D||z+Q>R))return 0;if(x.v=B,x.j=z,x.va=B+$,x.o=z+Q,x.U=$,x.T=Q,x.da=f!=null&&0<f.da,x.da){if(!yt($,Q,k=[f.ib],B=[f.hb]))return 0;x.ib=k[0],x.hb=B[0]}return x.ob=f!=null&&f.ob,x.Kb=f==null||!f.Sd,x.da&&(x.ob=x.ib<3*D/4&&x.hb<3*R/4,x.Kb=0),1}function jd(f){if(f==null)return 2;if(11>f.S){var x=f.f.RGBA;x.fb+=(f.height-1)*x.A,x.A=-x.A}else x=f.f.kb,f=f.height,x.O+=(f-1)*x.fa,x.fa=-x.fa,x.N+=(f-1>>1)*x.Ab,x.Ab=-x.Ab,x.W+=(f-1>>1)*x.Db,x.Db=-x.Db,x.F!=null&&(x.J+=(f-1)*x.lb,x.lb=-x.lb);return 0}function Qp(f,x,k,D){if(D==null||0>=f||0>=x)return 2;if(k!=null){if(k.Da){var R=k.cd,B=k.bd,z=-2&k.v,$=-2&k.j;if(0>z||0>$||0>=R||0>=B||z+R>f||$+B>x)return 2;f=R,x=B}if(k.da){if(!yt(f,x,R=[k.ib],B=[k.hb]))return 2;f=R[0],x=B[0]}}D.width=f,D.height=x;e:{var Q=D.width,ee=D.height;if(f=D.S,0>=Q||0>=ee||!(f>=Ig&&13>f))f=2;else{if(0>=D.Rd&&D.sd==null){z=B=R=x=0;var ue=($=Q*AS[f])*ee;if(11>f||(B=(ee+1)/2*(x=(Q+1)/2),f==12&&(z=(R=Q)*ee)),(ee=i(ue+2*B+z))==null){f=1;break e}D.sd=ee,11>f?((Q=D.f.RGBA).eb=ee,Q.fb=0,Q.A=$,Q.size=ue):((Q=D.f.kb).y=ee,Q.O=0,Q.fa=$,Q.Fd=ue,Q.f=ee,Q.N=0+ue,Q.Ab=x,Q.Cd=B,Q.ea=ee,Q.W=0+ue+B,Q.Db=x,Q.Ed=B,f==12&&(Q.F=ee,Q.J=0+ue+2*B),Q.Tc=z,Q.lb=R)}if(x=1,R=D.S,B=D.width,z=D.height,R>=Ig&&13>R)if(11>R)f=D.f.RGBA,x&=($=Math.abs(f.A))*(z-1)+B<=f.size,x&=$>=B*AS[R],x&=f.eb!=null;else{f=D.f.kb,$=(B+1)/2,ue=(z+1)/2,Q=Math.abs(f.fa),ee=Math.abs(f.Ab);var Se=Math.abs(f.Db),te=Math.abs(f.lb),fe=te*(z-1)+B;x&=Q*(z-1)+B<=f.Fd,x&=ee*(ue-1)+$<=f.Cd,x=(x&=Se*(ue-1)+$<=f.Ed)&Q>=B&ee>=$&Se>=$,x&=f.y!=null,x&=f.f!=null,x&=f.ea!=null,R==12&&(x&=te>=B,x&=fe<=f.Tc,x&=f.F!=null)}else x=0;f=x?0:2}}return f!=0||k!=null&&k.fd&&(f=jd(D)),f}var Hh=64,kd=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215],Yp=24,ga=32,Pa=8,$h=[0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7];ot("Predictor0","PredictorAdd0"),L.Predictor0=function(){return 4278190080},L.Predictor1=function(f){return f},L.Predictor2=function(f,x,k){return x[k+0]},L.Predictor3=function(f,x,k){return x[k+1]},L.Predictor4=function(f,x,k){return x[k-1]},L.Predictor5=function(f,x,k){return gt(gt(f,x[k+1]),x[k+0])},L.Predictor6=function(f,x,k){return gt(f,x[k-1])},L.Predictor7=function(f,x,k){return gt(f,x[k+0])},L.Predictor8=function(f,x,k){return gt(x[k-1],x[k+0])},L.Predictor9=function(f,x,k){return gt(x[k+0],x[k+1])},L.Predictor10=function(f,x,k){return gt(gt(f,x[k-1]),gt(x[k+0],x[k+1]))},L.Predictor11=function(f,x,k){var D=x[k+0];return 0>=be(D>>24&255,f>>24&255,(x=x[k-1])>>24&255)+be(D>>16&255,f>>16&255,x>>16&255)+be(D>>8&255,f>>8&255,x>>8&255)+be(255&D,255&f,255&x)?D:f},L.Predictor12=function(f,x,k){var D=x[k+0];return(un((f>>24&255)+(D>>24&255)-((x=x[k-1])>>24&255))<<24|un((f>>16&255)+(D>>16&255)-(x>>16&255))<<16|un((f>>8&255)+(D>>8&255)-(x>>8&255))<<8|un((255&f)+(255&D)-(255&x)))>>>0},L.Predictor13=function(f,x,k){var D=x[k-1];return(Xt((f=gt(f,x[k+0]))>>24&255,D>>24&255)<<24|Xt(f>>16&255,D>>16&255)<<16|Xt(f>>8&255,D>>8&255)<<8|Xt(255&f,255&D))>>>0};var Ql=L.PredictorAdd0;L.PredictorAdd1=Ie,ot("Predictor2","PredictorAdd2"),ot("Predictor3","PredictorAdd3"),ot("Predictor4","PredictorAdd4"),ot("Predictor5","PredictorAdd5"),ot("Predictor6","PredictorAdd6"),ot("Predictor7","PredictorAdd7"),ot("Predictor8","PredictorAdd8"),ot("Predictor9","PredictorAdd9"),ot("Predictor10","PredictorAdd10"),ot("Predictor11","PredictorAdd11"),ot("Predictor12","PredictorAdd12"),ot("Predictor13","PredictorAdd13");var Yl=L.PredictorAdd2;dt("ColorIndexInverseTransform","MapARGB","32b",function(f){return f>>8&255},function(f){return f}),dt("VP8LColorIndexInverseTransformAlpha","MapAlpha","8b",function(f){return f},function(f){return f>>8&255});var Wh,Nd=L.ColorIndexInverseTransform,or=L.MapARGB,Db=L.VP8LColorIndexInverseTransformAlpha,Co=L.MapAlpha,Zi=L.VP8LPredictorsAdd=[];Zi.length=16,(L.VP8LPredictors=[]).length=16,(L.VP8LPredictorsAdd_C=[]).length=16,(L.VP8LPredictors_C=[]).length=16;var Sd,Jp,Xp,Gh,Ad,Dd,Jl,hl,Xl,Kh,Yr,_o,fs,gs,Js,gr,ul,Zp,Qh,Ag,nS,sS,rS,aS,em,iS,oS,lS,cS=i(511),dS=i(2041
vendor: 4,704 bytes, line 2755
2755),hS=i(225),uS=i(767),pS=0,Ib=dS,Dg=hS,ni=uS,Ei=cS,Ig=0,Cg=1,mS=2,_g=3,Tg=4,Cb=5,fS=6,_b=7,Tb=8,Pg=9,Pb=10,Q8=[2,3,7],Y8=[3,3,11],gS=[280,256,256,256,40],J8=[0,1,1,1,0],X8=[17,18,0,1,2,3,4,5,16,6,7,8,9,10,11,12,13,14,15],Z8=[24,7,23,25,40,6,39,41,22,26,38,42,56,5,55,57,21,27,54,58,37,43,72,4,71,73,20,28,53,59,70,74,36,44,88,69,75,52,60,3,87,89,19,29,86,90,35,45,68,76,85,91,51,61,104,2,103,105,18,30,102,106,34,46,84,92,67,77,101,107,50,62,120,1,119,121,83,93,17,31,100,108,66,78,118,122,33,47,117,123,49,63,99,109,82,94,0,116,124,65,79,16,32,98,110,48,115,125,81,95,64,114,126,97,111,80,113,127,96,112],eR=[2954,2956,2958,2962,2970,2986,3018,3082,3212,3468,3980,5004],tR=8,Eb=[4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,17,18,19,20,20,21,21,22,22,23,23,24,25,25,26,27,28,29,30,31,32,33,34,35,36,37,37,38,39,40,41,42,43,44,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,93,95,96,98,100,101,102,104,106,108,110,112,114,116,118,122,124,126,128,130,132,134,136,138,140,143,145,148,151,154,157],Lb=[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,234,239,245,249,254,259,264,269,274,279,284],tm=null,nR=[[173,148,140,0],[176,155,140,135,0],[180,157,141,134,130,0],[254,254,243,230,196,177,153,140,133,130,129,0]],sR=[0,1,4,8,5,2,3,6,9,12,13,10,7,11,14,15],xS=[-0,1,-1,2,-2,3,4,6,-3,5,-4,-5,-6,7,-7,8,-8,-9],rR=[[[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]],[[253,136,254,255,228,219,128,128,128,128,128],[189,129,242,255,227,213,255,219,128,128,128],[106,126,227,252,214,209,255,255,128,128,128]],[[1,98,248,255,236,226,255,255,128,128,128],[181,133,238,254,221,234,255,154,128,128,128],[78,134,202,247,198,180,255,219,128,128,128]],[[1,185,249,255,243,255,128,128,128,128,128],[184,150,247,255,236,224,128,128,128,128,128],[77,110,216,255,236,230,128,128,128,128,128]],[[1,101,251,255,241,255,128,128,128,128,128],[170,139,241,252,236,209,255,255,128,128,128],[37,116,196,243,228,255,255,255,128,128,128]],[[1,204,254,255,245,255,128,128,128,128,128],[207,160,250,255,238,128,128,128,128,128,128],[102,103,231,255,211,171,128,128,128,128,128]],[[1,152,252,255,240,255,128,128,128,128,128],[177,135,243,255,234,225,128,128,128,128,128],[80,129,211,255,194,224,128,128,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[246,1,255,128,128,128,128,128,128,128,128],[255,128,128,128,128,128,128,128,128,128,128]]],[[[198,35,237,223,193,187,162,160,145,155,62],[131,45,198,221,172,176,220,157,252,221,1],[68,47,146,208,149,167,221,162,255,223,128]],[[1,149,241,255,221,224,255,255,128,128,128],[184,141,234,253,222,220,255,199,128,128,128],[81,99,181,242,176,190,249,202,255,255,128]],[[1,129,232,253,214,197,242,196,255,255,128],[99,121,210,250,201,198,255,202,128,128,128],[23,91,163,242,170,187,247,210,255,255,128]],[[1,200,246,255,234,255,128,128,128,128,128],[109,178,241,255,231,245,255,255,128,128,128],[44,130,201,253,205,192,255,255,128,128,128]],[[1,132,239,251,219,209,255,165,128,128,128],[94,136,225,251,218,190,255,255,128,128,128],[22,100,174,245,186,161,255,199,128,128,128]],[[1,182,249,255,232,235,128,128,128,128,128],[124,143,241,255,227,234,128,128,128,128,128],[35,77,181,251,193,211,255,205,128,128,128]],[[1,157,247,255,236,231,255,255,128,128,128],[121,141,235,255,225,227,255,255,128,128,128],[45,99,188,251,195,217,255,224,128,128,128]],[[1,1,251,255,213,255,128,128,128,128,128],[203,1,248,255,255,128,128,128,128,128,128],[137,1,177,255,224,255,128,128,128,128,128]]],[[[253,9,248,251,207,208,255,192,128,128,128],[175,13,224,243,193,185,249,198,255,255,128],[73,17,171,221,161,179,236,167,255,234,128]],[[1,95,247,253,212,183,255,255,128,128,128],[239,90,244,250,211,209,255,255,128,128,128],[155,77,195,248,188,195,255,255,128,128,128]],[[1,24,239,251,218,219,255,205,128,128,128],[201,51,219,255,196,186,128,128,128,128,128],[69,46,190,239,201,218,255,228,128,128,128]],[[1,191,251,255,255,128,128,128,128,128,128],[223,165,249,255,213,255,128,128,128,128,128],[141,124,248,255,255,128,128,128,128,128,128]],[[1,16,248,255,255,128,128,128,128,128,128],[190,36,230,255,236,255,128,128,128,128,128],[149,1,255,128,128,128,128,128,128,128,128]],[[1,226,255,128,128,128,128,128,128,128,128],[247,192,255,128,128,128,128,128,128,128,128],[240,128,25
27555,128,128,128,128,128,128,128,128]],[[1,134,252,255,255,128,128,128,128,128,128],[213,62,250,255,255,128,128,128,128,128,128],[55,93,255,128,128,128,128,128,128,128,128]],[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]]],[[[202,24,213,235,186,191,220,160,240,175,255],[126,38,182,232,169,184,228,174,255,187,128],[61,46,138,219,151,178,240,170,255,216,128]],[[1,112,230,250,199,191,247,159,255,255,128],[166,109,228,252,211,215,255,174,128,128,128],[39,77,162,232,172,180,245,178,255,255,128]],[[1,52,220,246,198,199,249,220,255,255,128],[124,74,191,243,183,193,250,221,255,255,128],[24,71,130,219,154,170,243,182,255,255,128]],[[1,182,225,249,219,240,255,224,128,128,128],[149,150,226,252,216,205,255,171,128,128,128],[28,108,170,242,183,194,254,223,255,255,128]],[[1,81,230,252,204,203,255,192,128,128,128],[123,102,209,247,188,196,255,233,128,128,128],[20,95,153,243,164,173,255,203,128,128,128]],[[1,222,248,255,216,213,128,128,128,128,128],[168,175,246,252,235,205,255,255,128,128,128],[47,116,215,255,211,212,255,255,128,128,128]],[[1,121,236,253,212,214,255,255,128,128,128],[141,84,213,252,201,202,255,219,128,128,128],[42,80,160,240,162,185,255,205,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[244,1,255,128,128,128,128,128,128,128,128],[238,1,255,128,128,128,128,128,128,128,128]]]],aR=[[[231,120,48,89,115,113,120,152,112],[152,179,64,126,170,118,46,70,95],[175,69,143,80,85,82,72,155,103],[56,58,10,171,218,189,17,13,152],[114,26,17,163,44,195,21,10,173],[121,24,80,195,26,62,44,64,85],[144,71,10,38,171,213,144,34,26],[170,46,55,19,136,160,33,206,71],[63,20,8,114,114,208,12,9,226],[81,40,11,96,182,84,29,16,36]],[[134,183,89,137,98,101,106,165,148],[72,187,100,130,157,111,32,75,80],[66,102,167,99,74,62,40,234,128],[41,53,9,178,241,141,26,8,107],[74,43,26,146,73,166,49,23,157],[65,38,105,160,51,52,31,115,128],[104,79,12,27,217,255,87,17,7],[87,68,71,44,114,51,15,186,23],[47,41,14,110,182,183,21,17,194],[66,45,25,102,197,189,23,18,22]],[[88,88,147,150,42,46,45,196,205],[43,97,183,117,85,38,35,179,61],[39,53,200,87,26,21,43,232,171],[56,34,51,104,114,102,29,93,77],[39,28,85,171,58,165,90,98,64],[34,22,116,206,23,34,43,166,73],[107,54,32,26,51,1,81,43,31],[68,25,106,22,64,171,36,225,114],[34,19,21,102,132,188,16,76,124],[62,18,78,95,85,57,50,48,51]],[[193,101,35,159,215,111,89,46,111],[60,148,31,172,219,228,21,18,111],[112,113,77,85,179,255,38,120,114],[40,42,1,196,245,209,10,25,109],[88,43,29,140,166,213,37,43,154],[61,63,30,155,67,45,68,1,209],[100,80,8,43,154,1,51,26,71],[142,78,78,16,255,128,34,197,171],[41,40,5,102,211,183,4,1,221],[51,50,17,168,209,192,23,25,82]],[[138,31,36,171,27,166,38,44,229],[67,87,58,169,82,115,26,59,179],[63,59,90,180,59,166,93,73,154],[40,40,21,116,143,209,34,39,175],[47,15,16,183,34,223,49,45,183],[46,17,33,183,6,98,15,32,183],[57,46,22,24,128,1,54,17,37],[65,32,73,115,28,128,23,128,205],[40,3,9,115,51,192,18,6,223],[87,37,9,115,59,77,64,21,47]],[[104,55,44,218,9,54,53,130,226],[64,90,70,205,40,41,23,26,57],[54,57,112,184,5,41,38,166,213],[30,34,26,133,152,116,10,32,134],[39,19,53,221,26,114,32,73,255],[31,9,65,234,2,15,1,118,73],[75,32,12,51,192,255,160,43,51],[88,31,35,67,102,85,55,186,85],[56,21,23,111,59,205,45,37,192],[55,38,70,124,73,102,1,34,98]],[[125,98,42,88,104,85,117,175,82],[95,84,53,89,128,100,113,101,45],[75,79,123,47,51,128,81,171,1],[57,17,5,71,102,57,53,41,49],[38,33,13,121,57,73,26,1,85],[41,10,67,138,77,110,90,47,114],[115,21,2,10,102,255,166,23,6],[101,29,16,10,85,128,101,196,26],[57,18,10,102,102,213,34,20,43],[117,20,15,36,163,128,68,1,26]],[[102,61,71,37,34,53,31,243,192],[69,60,71,38,73,119,28,222,37],[68,45,128,34,1,47,11,245,171],[62,17,19,70,146,85,55,62,70],[37,43,37,154,100,163,85,160,1],[63,9,92,136,28,64,32,201,85],[75,15,9,9,64,255,184,119,16],[86,6,28,5,64,255,25,248,1],[56,8,17,132,137,255,55,116,128],[58,15,20,82,135,57,26,121,40]],[[164,50,31,137,154,133,25,35,218],[51,103,44,131,131,123,31,6,158],[86,40,64,135,148,224,45,183,128],[22,26,17,131,240,154,14,1,209],[45,16,21,91,64,222,7,
27551,197],[56,21,39,155,60,138,23,102,213],[83,12,13,54,192,255,68,47,28],[85,26,85,85,128,128,32,146,171],[18,11,7,63,144,171,4,4,246],[35,27,10,146,174,171,12,26,128]],[[190,80,35,99,180,80,126,54,45],[85,126,47,87,176,51,41,20,32],[101,75,128,139,118,146,116,128,85],[56,41,15,176,236,85,37,9,62],[71,30,17,119,118,255,17,18,138],[101,38,60,138,55,70,43,26,142],[146,36,19,30,171,255,97,27,20],[138,45,61,62,219,1,81,188,64],[32,41,20,117,151,142,20,21,163],[112,19,12,61,195,128,48,4,24]]],iR=[[[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[176,246,255,255,255,255,255,255,255,255,255],[223,241,252,255,255,255,255,255,255,255,255],[249,253,253,255,255,255,255,255,255,255,255]],[[255,244,252,255,255,255,255,255,255,255,255],[234,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255]],[[255,246,254,255,255,255,255,255,255,255,255],[239,253,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[251,255,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[251,254,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,254,253,255,254,255,255,255,255,255,255],[250,255,254,255,254,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[217,255,255,255,255,255,255,255,255,255,255],[225,252,241,253,255,255,254,255,255,255,255],[234,250,241,250,253,255,253,254,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[223,254,254,255,255,255,255,255,255,255,255],[238,253,254,254,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[249,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,255,255,255,255,255,255,255,255,255],[247,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[252,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[186,251,250,255,255,255,255,255,255,255,255],[234,251,244,254,255,255,255,255,255,255,255],[251,251,243,253,254,255,254,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[236,253,254,255,255,255,255,255,255,255,255],[251,253,253,254,254,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[254,254,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[254,254,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[248,255,255,255,255,255,255,255,255,255,255],[250,254,252,254,255,255,255,255,255,255,255],[248,254,249,253,255,255,255,255,255,255,255]],[[255,253,253,255,255,255,255,255,255,255,255],[246,253,253,255,255,255,255,255,255,255,255],[252,254,251,254,254,255,255,255,255,255,255]],[[255,254,252,25
27555,255,255,255,255,255,255,255],[248,254,253,255,255,255,255,255,255,255,255],[253,255,254,254,255,255,255,255,255,255,255]],[[255,251,254,255,255,255,255,255,255,255,255],[245,251,254,255,255,255,255,255,255,255,255],[253,253,254,255,255,255,255,255,255,255,255]],[[255,251,253,255,255,255,255,255,255,255,255],[252,253,254,255,255,255,255,255,255,255,255],[255,254,255,255,255,255,255,255,255,255,255]],[[255,252,255,255,255,255,255,255,255,255,255],[249,255,254,255,255,255,255,255,255,255,255],[255,255,254,255,255,255,255,255,255,255,255]],[[255,255,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]]],oR=[0,1,2,3,6,4,5,6,6,6,6,6,6,6,6,7,0],Zl=[],eo=[],pl=[],lR=1,yS=2,ec=[],Li=[];Kr("UpsampleRgbLinePair",bd,3),Kr("UpsampleBgrLinePair",zh,3),Kr("UpsampleRgbaLinePair",Kp,4),Kr("UpsampleBgraLinePair",wd,4),Kr("UpsampleArgbLinePair",vd,4),Kr("UpsampleRgba4444LinePair",Qr,2),Kr("UpsampleRgb565LinePair",Uh,2);var cR=L.UpsampleRgbLinePair,dR=L.UpsampleBgrLinePair,bS=L.UpsampleRgbaLinePair,vS=L.UpsampleBgraLinePair,wS=L.UpsampleArgbLinePair,jS=L.UpsampleRgba4444LinePair,hR=L.UpsampleRgb565LinePair,Eg=16,Lg=1<<Eg-1,nm=-227,Mb=482,kS=6,uR=(256<<kS)-1,NS=0,pR=i(256),mR=i(256),fR=i(256),gR=i(256),xR=i(Mb-nm),yR=i(Mb-nm);Io("YuvToRgbRow",bd,3),Io("YuvToBgrRow",zh,3),Io("YuvToRgbaRow",Kp,4),Io("YuvToBgraRow",wd,4),Io("YuvToArgbRow",vd,4),Io("YuvToRgba4444Row",Qr,2),Io("YuvToRgb565Row",Uh,2);var SS=[0,4,8,12,128,132,136,140,256,260,264,268,384,388,392,396],Mg=[0,2,8],bR=[8,7,6,4,4,2,2,2,1,1,1,1],vR=1;this.WebPDecodeRGBA=function(f,x,k,D,R){var B=Cg,z=new le,$=new Mt;z.ba=$,$.S=B,$.width=[$.width],$.height=[$.height];var Q=$.width,ee=$.height,ue=new Tt;if(ue==null||f==null)var Se=2;else n(ue!=null),Se=Sg(f,x,k,ue.width,ue.height,ue.Pd,ue.Qd,ue.format,null);if(Se!=0?Q=0:(Q!=null&&(Q[0]=ue.width[0]),ee!=null&&(ee[0]=ue.height[0]),Q=1),Q){$.width=$.width[0],$.height=$.height[0],D!=null&&(D[0]=$.width),R!=null&&(R[0]=$.height);e:{if(D=new _i,(R=new ye).data=f,R.w=x,R.ha=k,R.kd=1,x=[0],n(R!=null),((f=Sg(R.data,R.w,R.ha,null,null,null,x,null,R))==0||f==7)&&x[0]&&(f=4),(x=f)==0){if(n(z!=null),D.data=R.data,D.w=R.w+R.offset,D.ha=R.ha-R.offset,D.put=Bt,D.ac=Tr,D.bc=oe,D.ma=z,R.xa){if((f=xn())==null){z=1;break e}if(function(te,fe){var we=[0],Te=[0],Ne=[0];t:for(;;){if(te==null)return 0;if(fe==null)return te.a=2,0;if(te.l=fe,te.a=0,X(te.m,fe.data,fe.w,fe.ha),!ge(te.m,we,Te,Ne)){te.a=3;break t}if(te.xb=yS,fe.width=we[0],fe.height=Te[0],!dn(we[0],Te[0],1,te,null))break t;return 1}return n(te.a!=0),0}(f,D)){if(D=(x=Qp(D.width,D.height,z.Oa,z.ba))==0){t:{D=f;n:for(;;){if(D==null){D=0;break t}if(n(D.s.yc!=null),n(D.s.Ya!=null),n(0<D.s.Wb),n((k=D.l)!=null),n((R=k.ma)!=null),D.xb!=0){if(D.ca=R.ba,D.tb=R.tb,n(D.ca!=null),!Pi(R.Oa,k,_g)){D.a=2;break n}if(!Bn(D,k.width)||k.da)break n;if((k.da||it(D.ca.S))&&zs(),11>D.ca.S||(alert("todo:WebPInitConvertARGBToYUV"),D.ca.f.kb.F!=null&&zs()),D.Pb&&0<D.s.ua&&D.s.vb.X==null&&!Y(D.s.vb,D.s.Wa.Xa)){D.a=1;break n}D.xb=0}if(!Zt(D,D.V,D.Ba,D.c,D.i,k.o,mt))break n;R.Dc=D.Ma,D=1;break t}n(D.a!=0),D=0}D=!D}D&&(x=f.a)}else x=f.a}else{if((f=new Bl)==null){z=1;break e}
vendor: 13,250 bytes, lines 2755-2779
2755if(f.Fa=R.na,f.P=R.P,f.qc=R.Sa,ma(f,D)){if((x=Qp(D.width,D.height,z.Oa,z.ba))==0){if(f.Aa=0,k=z.Oa,n((R=f)!=null),k!=null){if(0<(Q=0>(Q=k.Md)?0:100<Q?255:255*Q/100)){for(ee=ue=0;4>ee;++ee)12>(Se=R.pb[ee]).lc&&(Se.ia=Q*bR[0>Se.lc?0:Se.lc]>>3),ue|=Se.ia;ue&&(alert("todo:VP8InitRandom"),R.ia=1)}R.Ga=k.Id,100<R.Ga?R.Ga=100:0>R.Ga&&(R.Ga=0)}(function(te,fe){if(te==null)return 0;if(fe==null)return js(te,2,"NULL VP8Io parameter in VP8Decode().");if(!te.cb&&!ma(te,fe))return 0;if(n(te.cb),fe.ac==null||fe.ac(fe)){fe.ob&&(te.L=0);var we=Mg[te.L];if(te.L==2?(te.yb=0,te.zb=0):(te.yb=fe.v-we>>4,te.zb=fe.j-we>>4,0>te.yb&&(te.yb=0),0>te.zb&&(te.zb=0)),te.Va=fe.o+15+we>>4,te.Hb=fe.va+15+we>>4,te.Hb>te.za&&(te.Hb=te.za),te.Va>te.Ub&&(te.Va=te.Ub),0<te.L){var Te=te.ed;for(we=0;4>we;++we){var Ne;if(te.Qa.Cb){var Ee=te.Qa.Lb[we];te.Qa.Fb||(Ee+=Te.Tb)}else Ee=Te.Tb;for(Ne=0;1>=Ne;++Ne){var Me=te.gd[we][Ne],We=Ee;if(Te.Pc&&(We+=Te.vd[0],Ne&&(We+=Te.od[0])),0<(We=0>We?0:63<We?63:We)){var ze=We;0<Te.wb&&(ze=4<Te.wb?ze>>2:ze>>1)>9-Te.wb&&(ze=9-Te.wb),1>ze&&(ze=1),Me.dd=ze,Me.tc=2*We+ze,Me.ld=40<=We?2:15<=We?1:0}else Me.tc=0;Me.La=Ne}}}we=0}else js(te,6,"Frame setup failed"),we=te.a;if(we=we==0){if(we){te.$c=0,0<te.Aa||(te.Ic=vR);t:{we=te.Ic,Te=4*(ze=te.za);var Rt=32*ze,Nt=ze+1,yn=0<te.L?ze*(0<te.Aa?2:1):0,Pt=(te.Aa==2?2:1)*ze;if((Me=Te+832+(Ne=3*(16*we+Mg[te.L])/2*Rt)+(Ee=te.Fa!=null&&0<te.Fa.length?te.Kc.c*te.Kc.i:0))!=Me)we=0;else{if(Me>te.Vb){if(te.Vb=0,te.Ec=i(Me),te.Fc=0,te.Ec==null){we=js(te,1,"no memory during frame initialization.");break t}te.Vb=Me}Me=te.Ec,We=te.Fc,te.Ac=Me,te.Bc=We,We+=Te,te.Gd=o(Rt,pa),te.Hd=0,te.rb=o(Nt+1,Xa),te.sb=1,te.wa=yn?o(yn,ps):null,te.Y=0,te.D.Nb=0,te.D.wa=te.wa,te.D.Y=te.Y,0<te.Aa&&(te.D.Y+=ze),n(!0),te.oc=Me,te.pc=We,We+=832,te.ya=o(Pt,Tn),te.aa=0,te.D.ya=te.ya,te.D.aa=te.aa,te.Aa==2&&(te.D.aa+=ze),te.R=16*ze,te.B=8*ze,ze=(Rt=Mg[te.L])*te.R,Rt=Rt/2*te.B,te.sa=Me,te.ta=We+ze,te.qa=te.sa,te.ra=te.ta+16*we*te.R+Rt,te.Ha=te.qa,te.Ia=te.ra+8*we*te.B+Rt,te.$c=0,We+=Ne,te.mb=Ee?Me:null,te.nb=Ee?We:null,n(We+Ee<=te.Fc+te.Vb),Xi(te),a(te.Ac,te.Bc,0,Te),we=1}}if(we){if(fe.ka=0,fe.y=te.sa,fe.O=te.ta,fe.f=te.qa,fe.N=te.ra,fe.ea=te.Ha,fe.Vd=te.Ia,fe.fa=te.R,fe.Rc=te.B,fe.F=null,fe.J=0,!pS){for(we=-255;255>=we;++we)cS[255+we]=0>we?-we:we;for(we=-1020;1020>=we;++we)dS[1020+we]=-128>we?-128:127<we?127:we;for(we=-112;112>=we;++we)hS[112+we]=-16>we?-16:15<we?15:we;for(we=-255;510>=we;++we)uS[255+we]=0>we?0:255<we?255:we;pS=1}Jl=pd,hl=So,Kh=Lh,Yr=Mh,_o=Ti,Xl=ud,fs=vg,gs=wg,Js=kg,gr=v,ul=jg,Zp=gd,Qh=M,Ag=Z,nS=Vh,sS=Wp,rS=Bh,aS=bg,eo[0]=Gr,eo[1]=Hl,eo[2]=Dn,eo[3]=ms,eo[4]=Er,eo[5]=ti,eo[6]=Ao,eo[7]=ks,eo[8]=Nb,eo[9]=Rh,Zl[0]=ve,Zl[1]=Wl,Zl[2]=md,Zl[3]=Ge,Zl[4]=Ve,Zl[5]=et,Zl[6]=It,pl[0]=Sb,pl[1]=$l,pl[2]=Oh,pl[3]=Up,pl[4]=Ab,pl[5]=Fh,pl[6]=qp,we=1}else we=0}we&&(we=function(En,xr){for(En.M=0;En.M<En.Va;++En.M){var bn,Et=En.Jc[En.M&En.Xb],ct=En.m,Xs=En;for(bn=0;bn<Xs.za;++bn){var mn=ct,Vn=Xs,Ss=Vn.Ac,Lr=Vn.Bc+4*bn,xa=Vn.zc,Ws=Vn.ya[Vn.aa+bn];if(Vn.Qa.Bb?Ws.$b=De(mn,Vn.Pa.jb[0])?2+De(mn,Vn.Pa.jb[2]):De(mn,Vn.Pa.jb[1]):Ws.$b=0,Vn.kc&&(Ws.Ad=De(mn,Vn.Bd)),Ws.Za=!De(mn,145)+0,Ws.Za){var Jr=Ws.Ob,ya=0;for(Vn=0;4>Vn;++Vn){var yr,zn=xa[0+Vn];for(yr=0;4>yr;++yr){zn=aR[Ss[Lr+yr]][zn];for(var Kn=xS[De(mn,zn[0])];0<Kn;)Kn=xS[2*Kn+De(mn,zn[Kn])];zn=-Kn,Ss[Lr+yr]=zn}r(Jr,ya,Ss,Lr,4),ya+=4,xa[0+Vn]=zn}}else zn=De(mn,156)?De(mn,128)?1:3:De(mn,163)?2:0,Ws.Ob[0]=zn,a(Ss,Lr,zn,4),a(xa,0,zn,4);Ws.Dd=De(mn,142)?De(mn,114)?De(mn,183)?1:3:2:0}if(Xs.m.Ka)return js(En,7,"Premature end-of-partition0 encountered.");for(;En.ja<En.za;++En.ja){if(Xs=Et,mn=(ct=En).rb[ct.sb-1],Ss=ct.rb[ct.sb+ct.ja],bn=ct.ya[ct.aa+ct.ja],Lr=ct.kc?bn.Ad:0)mn.la=Ss.la=0,bn.Za||(mn.Na=Ss.Na=0),bn.Hc=0,bn.Gc=0,bn.ia=0;else{var Gs,Qn;if(mn=Ss,Ss=Xs,Lr=ct.Pa.Xc,xa=ct.ya[ct.aa+ct.ja],Ws=ct.pb[xa.$b],Vn=xa.ad,Jr=0,ya=ct.rb[ct.sb-1],zn=yr=0,a(Vn,Jr,0,384),xa.Za)var Mr=0,to=Lr[3];else{Kn=i(16);var Zs=mn.Na+ya.Na;if(Zs=tm(Ss,Lr[1],Zs,Ws.Eb,0,Kn,0),mn.Na=ya.Na=(0<Zs)+0,1<Zs)Jl(Kn,0,Vn,Jr);else{var Ea=Kn[0]+3>>3;for(Kn=0;256>Kn;Kn+=16)Vn[Jr+Kn]=Ea}Mr=1,to=Lr[0]}var os=15&mn.la,br=15&ya.la;for(Kn=0;4>Kn;++Kn){var si=1&br;for(Ea=Qn=0;4>Ea;++Ea)os=os>>1|(si=(Zs=tm(Ss,to,Zs=si+(1&os),Ws.Sc,Mr,Vn,Jr))>Mr)<<7,Qn=Qn<<2|(3<Zs?3:1<Zs?2:Vn[Jr+0]!=0),Jr+=16;os>>=4,br=br>>1|si<<7,yr=(yr<<8|Qn)>>>0}for(to=os,Mr=br>>4,Gs=0;4>Gs;Gs+=2){for(Qn=0,os=mn.la>>4+Gs,br=ya.la>>4+Gs,Kn=0;2>Kn;++Kn){for(si=1&br,Ea=0;2>Ea;++Ea)Zs=si+(1&os),os=os>>1|(si=0<(Zs=tm(Ss,Lr[2],Zs,Ws.Qc,0,Vn,Jr)))<<3,Qn=Qn<<2|(3<Zs?3:1<Zs?2:Vn[Jr+0]!=0),Jr+=16;os>>=2,br=br>>1|si<<5}zn|=Qn<<4*Gs,to|=os<<4<<Gs,Mr|=(240&br)<<Gs}mn.la=to,ya.la=Mr,xa.Hc=yr,xa.Gc=zn,xa.ia=43690&zn?0:Ws.ia,Lr=!(yr|zn)}if(0<ct.L&&(ct.wa[ct.Y+ct.ja]=ct.gd[bn.$b][bn.Za],ct.wa[ct.Y+ct.ja].La|=!Lr),Xs.Ka)return js(En,7,"Premature end-of-file encountered.")}if(Xi(En),ct=xr,Xs=1,bn=(Et=En).D,mn=0<Et.L&&Et.M>=Et.zb&&Et.M<=Et.Va,Et.Aa==0)t:{if(bn.M=Et.M,bn.uc=mn,qh(Et,bn),Xs=1,bn=(Qn=Et.D).Nb,mn=(zn=Mg[Et.L])*Et.R,Ss=zn/2*Et.B,Kn=16*bn*Et.R,Ea=8*bn*Et.B,Lr=Et.sa,xa=Et.ta-mn+Kn,Ws=Et.qa,Vn=Et.ra-Ss+Ea,Jr=Et.Ha,ya=Et.Ia-Ss+Ea,br=(os=Qn.M)==0,yr=os>=Et.Va-1,Et.Aa==2&&qh(Et,Qn),Qn.uc)for(si=(Zs=Et).D.M,n(Zs.D.uc),Qn=Zs.yb;Qn<Zs.Hb;++Qn){Mr=Qn,to=si;var ba=(ri=(Rr=Zs).D).Nb;Gs=Rr.R;var ri=ri.wa[ri.Y+Mr],ai=Rr.sa,La=Rr.ta+16*ba*Gs+16*Mr,ii=ri.dd,xs=ri.tc;if(xs!=0)if(n(3<=xs),Rr.L==1)0<Mr&&sS(ai,La,Gs,xs+4),ri.La&&aS(ai,La,Gs,xs),0<to&&nS(ai,La,Gs,xs+4),ri.La&&rS(ai,La,Gs,xs);else{var oi=Rr.B,no=Rr.qa,Id=Rr.ra+8*ba*oi+8*Mr,ml=Rr.Ha,Rr=Rr.Ia+8*ba*oi+8*Mr;ba=ri.ld,0<Mr&&(gs(ai,La,Gs,xs+4,ii,ba),gr(no,Id,ml,Rr,oi,xs+4,ii,ba)),ri.La&&(Zp(ai,La,Gs,xs,ii,ba),Ag(no,Id,ml,Rr,oi,xs,ii,ba)),0<to&&(fs(ai,La,Gs,xs+4,ii,ba),Js(no,Id,ml,Rr,oi,xs+4,ii,ba)),ri.La&&(ul(ai,La,Gs,xs,ii,ba),Qh(no,Id,ml,Rr,oi,xs,ii,ba))}}if(Et.ia&&alert("todo:DitherRow"),ct.put!=null){if(Qn=16*os,os=16*(os+1),br?(ct.y=Et.sa,ct.O=Et.ta+Kn,ct.f=Et.qa,ct.N=Et.ra+Ea,ct.ea=Et.Ha,ct.W=Et.Ia+Ea):(Qn-=zn,ct.y=Lr,ct.O=xa,ct.f=Ws,ct.N=Vn,ct.ea=Jr,ct.W=ya),yr||(os-=zn),os>ct.o&&(os=ct.o),ct.F=null,ct.J=null,Et.Fa!=null&&0<Et.Fa.length&&Qn<os&&(ct.J=ir(Et,ct,Qn,os-Qn),ct.F=Et.mb,ct.F==null&&ct.F.length==0)){Xs=js(Et,3,"Could not decode alpha data.");break t}Qn<ct.j&&(zn=ct.j-Qn,Qn=ct.j,n(!(1&zn)),ct.O+=Et.R*zn,ct.N+=Et.B*(zn>>1),ct.W+=Et.B*(zn>>1),ct.F!=null&&(ct.J+=ct.width*zn)),Qn<os&&(ct.O+=ct.v,ct.N+=ct.v>>1,ct.W+=ct.v>>1,ct.F!=null&&(ct.J+=ct.v),ct.ka=Qn-ct.j,ct.U=ct.va-ct.v,ct.T=os-Qn,Xs=ct.put(ct))}bn+1!=Et.Ic||yr||(r(Et.sa,Et.ta-mn,Lr,xa+16*Et.R,mn),r(Et.qa,Et.ra-Ss,Ws,Vn+8*Et.B,Ss),r(Et.Ha,Et.Ia-Ss,Jr,ya+8*Et.B,Ss))}if(!Xs)return js(En,6,"Output aborted.")}return 1}(te,fe)),fe.bc!=null&&fe.bc(fe),we&=1}return we?(te.cb=0,we):0})(f,D)||(x=f.a)}}else x=f.a}x==0&&z.Oa!=null&&z.Oa.fd&&(x=jd(z.ba))}z=x}B=z!=0?null:11>B?$.f.RGBA.eb:$.f.kb.y}else B=null;return B};var AS=[3,4,3,4,4,2,2,4,4,4,2,1,1]};function d(L,W){for(var _="",P=0;P<4;P++)_+=String.fromCharCode(L[W++]);return _}function h(L,W){return L[W+0]|L[W+1]<<8}function p(L,W){return(L[W+0]|L[W+1]<<8|L[W+2]<<16)>>>0}function m(L,W){return(L[W+0]|L[W+1]<<8|L[W+2]<<16|L[W+3]<<24)>>>0}new c;var u=[0],y=[0],g=[],w=new c,b=t,j=function(L,W){var _={},P=0,K=!1,q=0,ae=0;if(_.frames=[],!function(T,I){for(var G=0;G<4;G++)if(T[I+G]!="RIFF".charCodeAt(G))return!0;return!1}(L,W)){for(m(L,W+=4),W+=8;W<L.length;){var ce=d(L,W),de=m(L,W+=4);W+=4;var H=de+(1&de);switch(ce){case"VP8 ":case"VP8L":_.frames[P]===void 0&&(_.frames[P]={}),(he=_.frames[P]).src_off=K?ae:W-8,he.src_size=q+de+8,P++,K&&(K=!1,q=0,ae=0);break;case"VP8X":(he=_.header={}).feature_flags=L[W];var X=W+4;he.canvas_width=1+p(L,X),X+=3,he.canvas_height=1+p(L,X),X+=3;break;case"ALPH":K=!0,q=H+8,ae=W-8;break;case"ANIM":(he=_.header).bgcolor=m(L,W),X=W+4,he.loop_count=h(L,X),X+=2;break;case"ANMF":var V,he;(he=_.frames[P]={}).offset_x=2*p(L,W),W+=3,he.offset_y=2*p(L,W),W+=3,he.width=1+p(L,W),W+=3,he.height=1+p(L,W),W+=3,he.duration=p(L,W),W+=3,V=L[W++],he.dispose=1&V,he.blend=V>>1&1}ce!="ANMF"&&(W+=H)}return _}}(b,0);j.response=b,j.rgbaoutput=!0,j.dataurl=!1;var N=j.header?j.header:null,A=j.frames?j.frames:null;if(N){N.loop_counter=N.loop_count,u=[N.canvas_height],y=[N.canvas_width];for(var E=0;E<A.length&&A[E].blend!=0;E++);}var C=A[0],F=w.WebPDecodeRGBA(b,C.src_off,C.src_size,y,u);C.rgba=F,C.imgwidth=y[0],C.imgheight=u[0];for(var O=0;O<y[0]*u[0]*4;O++)g[O]=F[O];return this.width=y,this.height=u,this.data=g,this}/** ==================================================================== 2756 * @license 2757 * jsPDF XMP metadata plugin 2758 * Copyright (c) 2016 Jussi Utunen, [email protected] 2759 * 2760 * Permission is hereby granted, free of charge, to any person obtaining 2761 * a copy of this software and associated documentation files (the 2762 * "Software"), to deal in the Software without restriction, including 2763 * without limitation the rights to use, copy, modify, merge, publish, 2764 * distribute, sublicense, and/or sell copies of the Software, and to 2765 * permit persons to whom the Software is furnished to do so, subject to 2766 * the following conditions: 2767 * 2768 * The above copyright notice and this permission notice shall be 2769 * included in all copies or substantial portions of the Software. 2770 * 2771 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 2772 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 2773 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 2774 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 2775 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 2776 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 2777 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2778 * ==================================================================== 2779 */function _oe(){var t,n=this.internal.__metadata__.metadata,s=unescape(encodeURIComponent(n));t=this.internal.__metadata__.rawXml?s:'<x:xmpmeta xmlns:x="adobe:ns:meta/"><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns:jspdf="'+this.internal.__metadata__.namespaceUri+'"><jspdf:metadata>'+s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")+"</jspdf:metadata></rdf:Description></rdf:RDF></x:xmpmeta>",this.internal.__metadata__.metadataObjectNumber=this.internal.newObject(),this.internal.write("<< /Type /Metadata /Subtype /XML /Length "+t.length+" >>"),this.internal.write("stream"),this.internal.write(t),this.internal.write("endstream"),this.internal.write("endobj")}function Toe(){this.internal.__metadata__.metadataObjectNumber&&this.internal.write("/Metadata "+this.internal.__metadata__.metadataObjectNumber+" 0 R")}(function(t){var n,s,r,a,i,o,l,c,d,h=function(T){return T=T||{},this.isStrokeTransparent=T.isStrokeTransparent||!1,this.strokeOpacity=T.strokeOpacity||1,this.strokeStyle=T.strokeStyle||"#000000",this.fillStyle=T.fillStyle||"#000000",this.isFillTransparent=T.isFillTransparent||!1,this.fillOpacity=T.fillOpacity||1,this.font=T.font||"10px sans-serif",this.textBaseline=T.textBaseline||"alphabetic",this.textAlign=T.textAlign||"left",this.lineWidth=T.lineWidth||1,this.lineJoin=T.lineJoin||"miter",this.lineCap=T.lineCap||"butt",this.path=T.path||[],this.transform=T.transform!==void 0?T.transform.clone():new c,this.globalCompositeOperation=T.globalCompositeOperation||"normal",this.globalAlpha=T.globalAlpha||1,this.clip_path=T.clip_path||[],this.currentPoint=T.currentPoint||new o,this.miterLimit=T.miterLimit||10,this.lastPoint=T.lastPoint||new o,this.lineDashOffset=T.lineDashOffset||0,this.lineDash=T.lineDash||[],this.margin=T.margin||[0,0,0,0],this.prevPageLastElemOffset=T.prevPageLastElemOffset||0,this.ignoreClearRect=typeof T.ignoreClearRect!="boolean"||T.ignoreClearRect,this};t.events.push(["initialized",function(){this.context2d=new p(this),n=this.internal.f2,s=this.internal.getCoordinateString,r=this.internal.getVerticalCoordinateString,a=this.internal.getHorizontalCoordinate,i=this.internal.getVerticalCoordinate,o=this.internal.Point,l=this.internal.Rectangle,c=this.internal.Matrix,d=new h}]);var p=function(T){Object.defineProperty(this,"canvas",{get:function(){return{parentNode:!1,style:!1}}});var I=T;Object.defineProperty(this,"pdf",{get:function(){return I}});var G=!1;Object.defineProperty(this,"pageWrapXEnabled",{get:function(){return G},set:function(Y){G=!!Y}});var re=!1;Object.defineProperty(this,"pageWrapYEnabled",{get:function(){return re},set:function(Y){re=!!Y}});var ne=0;Object.defineProperty(this,"posX",{get:function(){return ne},set:function(Y){isNaN(Y)||(ne=Y)}});var pe=0;Object.defineProperty(this,"posY",{get:function(){return pe},set:function(Y){isNaN(Y)||(pe=Y)}}),Object.defineProperty(this,"margin",{get:function(){return d.margin},set:function(Y){var Oe;typeof Y=="number"?Oe=[Y,Y,Y,Y]:((Oe=new Array(4))[0]=Y[0],Oe[1]=Y.length>=2?Y[1]:Oe[0],Oe[2]=Y.length>=3?Y[2]:Oe[0],Oe[3]=Y.length>=4?Y[3]:Oe[1]),d.margin=Oe}});var je=!1;Object.defineProperty(this,"autoPaging",{get:function(){return je},set:function(Y){je=Y}});var ke=0;Object.defineProperty(this,"lastBreak",{get:function(){return ke},set:function(Y){ke=Y}});var De=[];Object.defineProperty(this,"pageBreaks",{get:function(){return De},set:function(Y){De=Y}}),Object.defineProperty(this,"ctx",{get:function(){return d}
2779,set:function(Y){Y instanceof h&&(d=Y)}}),Object.defineProperty(this,"path",{get:function(){return d.path},set:function(Y){d.path=Y}});var Pe=[];Object.defineProperty(this,"ctxStack",{get:function(){return Pe},set:function(Y){Pe=Y}}),Object.defineProperty(this,"fillStyle",{get:function(){return this.ctx.fillStyle},set:function(Y){var Oe;Oe=m(Y),this.ctx.fillStyle=Oe.style,this.ctx.isFillTransparent=Oe.a===0,this.ctx.fillOpacity=Oe.a,this.pdf.setFillColor(Oe.r,Oe.g,Oe.b,{a:Oe.a}),this.pdf.setTextColor(Oe.r,Oe.g,Oe.b,{a:Oe.a})}}),Object.defineProperty(this,"strokeStyle",{get:function(){return this.ctx.strokeStyle},set:function(Y){var Oe=m(Y);this.ctx.strokeStyle=Oe.style,this.ctx.isStrokeTransparent=Oe.a===0,this.ctx.strokeOpacity=Oe.a,Oe.a===0?this.pdf.setDrawColor(255,255,255):(Oe.a,this.pdf.setDrawColor(Oe.r,Oe.g,Oe.b))}}),Object.defineProperty(this,"lineCap",{get:function(){return this.ctx.lineCap},set:function(Y){["butt","round","square"].indexOf(Y)!==-1&&(this.ctx.lineCap=Y,this.pdf.setLineCap(Y))}}),Object.defineProperty(this,"lineWidth",{get:function(){return this.ctx.lineWidth},set:function(Y){isNaN(Y)||(this.ctx.lineWidth=Y,this.pdf.setLineWidth(Y))}}),Object.defineProperty(this,"lineJoin",{get:function(){return this.ctx.lineJoin},set:function(Y){["bevel","round","miter"].indexOf(Y)!==-1&&(this.ctx.lineJoin=Y,this.pdf.setLineJoin(Y))}}),Object.defineProperty(this,"miterLimit",{get:function(){return this.ctx.miterLimit},set:function(Y){isNaN(Y)||(this.ctx.miterLimit=Y,this.pdf.setMiterLimit(Y))}}),Object.defineProperty(this,"textBaseline",{get:function(){return this.ctx.textBaseline},set:function(Y){this.ctx.textBaseline=Y}}),Object.defineProperty(this,"textAlign",{get:function(){return this.ctx.textAlign},set:function(Y){["right","end","center","left","start"].indexOf(Y)!==-1&&(this.ctx.textAlign=Y)}});var Ze=null,tt=null,Je=null;Object.defineProperty(this,"fontFaces",{get:function(){return Je},set:function(Y){Ze=null,tt=null,Je=Y}}),Object.defineProperty(this,"font",{get:function(){return this.ctx.font},set:function(Y){var Oe;if(this.ctx.font=Y,(Oe=/^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:\%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:\%|in|[cem]m|ex|p[ctx])))?\s*([-_,\"\'\sa-z0-9]+?)\s*$/i.exec(Y))!==null){var Wt=Oe[1];Oe[2];var yt=Oe[3],Ce=Oe[4];Oe[5];var wt=Oe[6],ot=/^([.\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i.exec(Ce)[2];Ce=Math.floor(ot==="px"?parseFloat(Ce)*this.pdf.internal.scaleFactor:ot==="em"?parseFloat(Ce)*this.pdf.getFontSize():parseFloat(Ce)*this.pdf.internal.scaleFactor),this.pdf.setFontSize(Ce);var _t=function(dt){var rn,Ut,qt=[],Vt=dt.trim();if(Vt==="")return zw;if(Vt in e6)return[e6[Vt]];for(;Vt!=="";){switch(Ut=null,rn=(Vt=n6(Vt)).charAt(0)){case'"':case"'":Ut=Noe(Vt.substring(1),rn);break;default:Ut=Soe(Vt)}if(Ut===null||(qt.push(Ut[0]),(Vt=n6(Ut[1]))!==""&&Vt.charAt(0)!==","))return zw;Vt=Vt.replace(/^,/,"")}return qt}(wt);if(this.fontFaces){var gt=function(dt,rn){var Ut=dt.getFontList(),qt=JSON.stringify(Ut);if(Ze===null||tt!==qt){var Vt=function(Gt){var bt=[];return Object.keys(Gt).forEach(function(nt){Gt[nt].forEach(function(it){var ht=null;switch(it){case"bold":ht={family:nt,weight:"bold"};break;case"italic":ht={family:nt,style:"italic"};break;case"bolditalic":ht={family:nt,weight:"bold",style:"italic"};break;case"":case"normal":ht={family:nt}}ht!==null&&(ht.ref={name:nt,style:it},bt.push(ht))})}),bt}(Ut);Ze=function(Gt){for(var bt={},nt=0;nt<Gt.length;++nt){var it=Bw(Gt[nt]),ht=it.family,nn=it.stretch,Mt=it.style,Tt=it.weight;bt[ht]=bt[ht]||{},bt[ht][nn]=bt[ht][nn]||{},bt[ht][nn][Mt]=bt[ht][nn][Mt]||{},bt[ht][nn][Mt][Tt]=it}return bt}(Vt.concat(rn)),tt=qt}return Ze}(this.pdf,this.fontFaces),un=_t.map(function(dt){return{family:dt,stretch:"normal",weight:yt,style:Wt}}),Xt=function(dt,rn,Ut){for(var qt=(Ut=Ut||{}).defaultFontFamily||"times",Vt=Object.assign({},koe,Ut.genericFontFamilies||{}),Gt=null,bt=null,nt=0;nt<rn.length;++nt)if(Vt[(Gt=Bw(rn[nt])).family]&&(Gt.family=Vt[Gt.family]),dt.hasOwnProperty(Gt.family)){bt=dt[Gt.family];break}if(!(bt=bt||dt[qt]))throw new Error("Could not find a font-family for the rule '"+t6(Gt)+"' and default family '"+qt+"'.");if(bt=function(it,ht){if(ht[it])return ht[it];var nn=Sk[it],Mt=nn<=Sk.normal?-1:1,Tt=Z3(ht,q8,nn,Mt);if(!Tt)throw new Error("Could not find a matching font-stretch value for "+it);return Tt}(Gt.stretch,bt),bt=function(it,ht){if(ht[it])return ht[it];for(var nn=U8[it],Mt=0;Mt<nn.length;++Mt)if(ht[nn[Mt]])return ht[nn[Mt]];throw new Error("Could not find a matching font-style for "+it)}(Gt.style,bt),!(bt=function(it,ht){if(ht[it])return ht[it];if(it===400&&ht[500])return ht[500];if(it===500&&ht[400])return ht[400];var nn=joe[it],Mt=Z3(ht,H8,nn,it<400?-1:1);if(!Mt)throw new Error("Could not find a matching font-weight for value "+it);return Mt}(Gt.weight,bt)))throw new Error("Failed to resolve a font for the rule '"+t6(Gt)+"'.");return bt}(gt,un);this.pdf.setFont(Xt.ref.name,Xt.ref.style)}
2779else{var be="";(yt==="bold"||parseInt(yt,10)>=700||Wt==="bold")&&(be="bold"),Wt==="italic"&&(be+="italic"),be.length===0&&(be="normal");for(var Ie="",$e={arial:"Helvetica",Arial:"Helvetica",verdana:"Helvetica",Verdana:"Helvetica",helvetica:"Helvetica",Helvetica:"Helvetica","sans-serif":"Helvetica",fixed:"Courier",monospace:"Courier",terminal:"Courier",cursive:"Times",fantasy:"Times",serif:"Times"},Fe=0;Fe<_t.length;Fe++){if(this.pdf.internal.getFont(_t[Fe],be,{noFallback:!0,disableWarning:!0})!==void 0){Ie=_t[Fe];break}if(be==="bolditalic"&&this.pdf.internal.getFont(_t[Fe],"bold",{noFallback:!0,disableWarning:!0})!==void 0)Ie=_t[Fe],be="bold";else if(this.pdf.internal.getFont(_t[Fe],"normal",{noFallback:!0,disableWarning:!0})!==void 0){Ie=_t[Fe],be="normal";break}}if(Ie===""){for(var at=0;at<_t.length;at++)if($e[_t[at]]){Ie=$e[_t[at]];break}}Ie=Ie===""?"Times":Ie,this.pdf.setFont(Ie,be)}}}}),Object.defineProperty(this,"globalCompositeOperation",{get:function(){return this.ctx.globalCompositeOperation},set:function(Y){this.ctx.globalCompositeOperation=Y}}),Object.defineProperty(this,"globalAlpha",{get:function(){return this.ctx.globalAlpha},set:function(Y){this.ctx.globalAlpha=Y}}),Object.defineProperty(this,"lineDashOffset",{get:function(){return this.ctx.lineDashOffset},set:function(Y){this.ctx.lineDashOffset=Y,he.call(this)}}),Object.defineProperty(this,"lineDash",{get:function(){return this.ctx.lineDash},set:function(Y){this.ctx.lineDash=Y,he.call(this)}}),Object.defineProperty(this,"ignoreClearRect",{get:function(){return this.ctx.ignoreClearRect},set:function(Y){this.ctx.ignoreClearRect=!!Y}})};p.prototype.setLineDash=function(T){this.lineDash=T},p.prototype.getLineDash=function(){return this.lineDash.length%2?this.lineDash.concat(this.lineDash):this.lineDash.slice()},p.prototype.fill=function(){A.call(this,"fill",!1)},p.prototype.stroke=function(){A.call(this,"stroke",!1)},p.prototype.beginPath=function(){this.path=[{type:"begin"}]},p.prototype.moveTo=function(T,I){if(isNaN(T)||isNaN(I))throw ls.error("jsPDF.context2d.moveTo: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.moveTo");var G=this.ctx.transform.applyToPoint(new o(T,I));this.path.push({type:"mt",x:G.x,y:G.y}),this.ctx.lastPoint=new o(T,I)},p.prototype.closePath=function(){var T=new o(0,0),I=0;for(I=this.path.length-1;I!==-1;I--)if(this.path[I].type==="begin"&&Jn(this.path[I+1])==="object"&&typeof this.path[I+1].x=="number"){T=new o(this.path[I+1].x,this.path[I+1].y);break}this.path.push({type:"close"}),this.ctx.lastPoint=new o(T.x,T.y)},p.prototype.lineTo=function(T,I){if(isNaN(T)||isNaN(I))throw ls.error("jsPDF.context2d.lineTo: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.lineTo");var G=this.ctx.transform.applyToPoint(new o(T,I));this.path.push({type:"lt",x:G.x,y:G.y}),this.ctx.lastPoint=new o(G.x,G.y)},p.prototype.clip=function(){this.ctx.clip_path=JSON.parse(JSON.stringify(this.path)),A.call(this,null,!0)},p.prototype.quadraticCurveTo=function(T,I,G,re){if(isNaN(G)||isNaN(re)||isNaN(T)||isNaN(I))throw ls.error("jsPDF.context2d.quadraticCurveTo: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.quadraticCurveTo");var ne=this.ctx.transform.applyToPoint(new o(G,re)),pe=this.ctx.transform.applyToPoint(new o(T,I));this.path.push({type:"qct",x1:pe.x,y1:pe.y,x:ne.x,y:ne.y}),this.ctx.lastPoint=new o(ne.x,ne.y)},p.prototype.bezierCurveTo=function(T,I,G,re,ne,pe){if(isNaN(ne)||isNaN(pe)||isNaN(T)||isNaN(I)||isNaN(G)||isNaN(re))throw ls.error("jsPDF.context2d.bezierCurveTo: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.bezierCurveTo");var je=this.ctx.transform.applyToPoint(new o(ne,pe)),ke=this.ctx.transform.applyToPoint(new o(T,I)),De=this.ctx.transform.applyToPoint(new o(G,re));this.path.push({type:"bct",x1:ke.x,y1:ke.y,x2:De.x,y2:De.y,x:je.x,y:je.y}),this.ctx.lastPoint=new o(je.x,je.y)},p.prototype.arc=function(T,I,G,re,ne,pe){if(isNaN(T)||isNaN(I)||isNaN(G)||isNaN(re)||isNaN(ne))throw ls.error("jsPDF.context2d.arc: Invalid arguments",arguments),new Error("Invalid arguments passed to
2779jsPDF.context2d.arc");if(pe=!!pe,!this.ctx.transform.isIdentity){var je=this.ctx.transform.applyToPoint(new o(T,I));T=je.x,I=je.y;var ke=this.ctx.transform.applyToPoint(new o(0,G)),De=this.ctx.transform.applyToPoint(new o(0,0));G=Math.sqrt(Math.pow(ke.x-De.x,2)+Math.pow(ke.y-De.y,2))}Math.abs(ne-re)>=2*Math.PI&&(re=0,ne=2*Math.PI),this.path.push({type:"arc",x:T,y:I,radius:G,startAngle:re,endAngle:ne,counterclockwise:pe})},p.prototype.arcTo=function(T,I,G,re,ne){throw new Error("arcTo not implemented.")},p.prototype.rect=function(T,I,G,re){if(isNaN(T)||isNaN(I)||isNaN(G)||isNaN(re))throw ls.error("jsPDF.context2d.rect: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.rect");this.moveTo(T,I),this.lineTo(T+G,I),this.lineTo(T+G,I+re),this.lineTo(T,I+re),this.lineTo(T,I),this.lineTo(T+G,I),this.lineTo(T,I)},p.prototype.fillRect=function(T,I,G,re){if(isNaN(T)||isNaN(I)||isNaN(G)||isNaN(re))throw ls.error("jsPDF.context2d.fillRect: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.fillRect");if(!u.call(this)){var ne={};this.lineCap!=="butt"&&(ne.lineCap=this.lineCap,this.lineCap="butt"),this.lineJoin!=="miter"&&(ne.lineJoin=this.lineJoin,this.lineJoin="miter"),this.beginPath(),this.rect(T,I,G,re),this.fill(),ne.hasOwnProperty("lineCap")&&(this.lineCap=ne.lineCap),ne.hasOwnProperty("lineJoin")&&(this.lineJoin=ne.lineJoin)}},p.prototype.strokeRect=function(T,I,G,re){if(isNaN(T)||isNaN(I)||isNaN(G)||isNaN(re))throw ls.error("jsPDF.context2d.strokeRect: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.strokeRect");y.call(this)||(this.beginPath(),this.rect(T,I,G,re),this.stroke())},p.prototype.clearRect=function(T,I,G,re){if(isNaN(T)||isNaN(I)||isNaN(G)||isNaN(re))throw ls.error("jsPDF.context2d.clearRect: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.clearRect");this.ignoreClearRect||(this.fillStyle="#ffffff",this.fillRect(T,I,G,re))},p.prototype.save=function(T){T=typeof T!="boolean"||T;for(var I=this.pdf.internal.getCurrentPageInfo().pageNumber,G=0;G<this.pdf.internal.getNumberOfPages();G++)this.pdf.setPage(G+1),this.pdf.internal.out("q");if(this.pdf.setPage(I),T){this.ctx.fontSize=this.pdf.internal.getFontSize();var re=new h(this.ctx);this.ctxStack.push(this.ctx),this.ctx=re}},p.prototype.restore=function(T){T=typeof T!="boolean"||T;for(var I=this.pdf.internal.getCurrentPageInfo().pageNumber,G=0;G<this.pdf.internal.getNumberOfPages();G++)this.pdf.setPage(G+1),this.pdf.internal.out("Q");this.pdf.setPage(I),T&&this.ctxStack.length!==0&&(this.ctx=this.ctxStack.pop(),this.fillStyle=this.ctx.fillStyle,this.strokeStyle=this.ctx.strokeStyle,this.font=this.ctx.font,this.lineCap=this.ctx.lineCap,this.lineWidth=this.ctx.lineWidth,this.lineJoin=this.ctx.lineJoin,this.lineDash=this.ctx.lineDash,this.lineDashOffset=this.ctx.lineDashOffset)},p.prototype.toDataURL=function(){throw new Error("toDataUrl not implemented.")};var m=function(T){var I,G,re,ne;if(T.isCanvasGradient===!0&&(T=T.getColor()),!T)return{r:0,g:0,b:0,a:0,style:T};if(/transparent|rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*0+\s*\)/.test(T))I=0,G=0,re=0,ne=0;else{var pe=/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(T);if(pe!==null)I=parseInt(pe[1]),G=parseInt(pe[2]),re=parseInt(pe[3]),ne=1;else if((pe=/rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)/.exec(T))!==null)I=parseInt(pe[1]),G=parseInt(pe[2]),re=parseInt(pe[3]),ne=parseFloat(pe[4]);else{if(ne=1,typeof T=="string"&&T.charAt(0)!=="#"){var je=new M8(T);T=je.ok?je.toHex():"#000000"}T.length===4?(I=T.substring(1,2),I+=I,G=T.substring(2,3),G+=G,re=T.substring(3,4),re+=re):(I=T.substring(1,3),G=T.substring(3,5),re=T.substring(5,7)),I=parseInt(I,16),G=parseInt(G,16),re=parseInt(re,16)}}return{r:I,g:G,b:re,a:ne,style:T}},u=function(){return this.ctx.isFillTransparent||this.globalAlpha==0},y=function(){return!!(this.ctx.isStrokeTransparent||this.globalAlpha==0)};p.prototype.fillText=function(T,I,G,re){if(isNaN(I)||isNaN(G)||typeof T!="string")throw ls.error("jsPDF.context2d.fillText: Invalid arguments",arguments),new Error("Invalid arguments passed to
2779jsPDF.context2d.fillText");if(re=isNaN(re)?void 0:re,!u.call(this)){var ne=H(this.ctx.transform.rotation),pe=this.ctx.transform.scaleX;P.call(this,{text:T,x:I,y:G,scale:pe,angle:ne,align:this.textAlign,maxWidth:re})}},p.prototype.strokeText=function(T,I,G,re){if(isNaN(I)||isNaN(G)||typeof T!="string")throw ls.error("jsPDF.context2d.strokeText: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.strokeText");if(!y.call(this)){re=isNaN(re)?void 0:re;var ne=H(this.ctx.transform.rotation),pe=this.ctx.transform.scaleX;P.call(this,{text:T,x:I,y:G,scale:pe,renderingMode:"stroke",angle:ne,align:this.textAlign,maxWidth:re})}},p.prototype.measureText=function(T){if(typeof T!="string")throw ls.error("jsPDF.context2d.measureText: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.measureText");var I=this.pdf,G=this.pdf.internal.scaleFactor,re=I.internal.getFontSize(),ne=I.getStringUnitWidth(T)*re/I.internal.scaleFactor;return new function(pe){var je=(pe=pe||{}).width||0;return Object.defineProperty(this,"width",{get:function(){return je}}),this}({width:ne*=Math.round(96*G/72*1e4)/1e4})},p.prototype.scale=function(T,I){if(isNaN(T)||isNaN(I))throw ls.error("jsPDF.context2d.scale: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.scale");var G=new c(T,0,0,I,0,0);this.ctx.transform=this.ctx.transform.multiply(G)},p.prototype.rotate=function(T){if(isNaN(T))throw ls.error("jsPDF.context2d.rotate: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.rotate");var I=new c(Math.cos(T),Math.sin(T),-Math.sin(T),Math.cos(T),0,0);this.ctx.transform=this.ctx.transform.multiply(I)},p.prototype.translate=function(T,I){if(isNaN(T)||isNaN(I))throw ls.error("jsPDF.context2d.translate: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.translate");var G=new c(1,0,0,1,T,I);this.ctx.transform=this.ctx.transform.multiply(G)},p.prototype.transform=function(T,I,G,re,ne,pe){if(isNaN(T)||isNaN(I)||isNaN(G)||isNaN(re)||isNaN(ne)||isNaN(pe))throw ls.error("jsPDF.context2d.transform: Invalid arguments",arguments),new Error("Invalid arguments passed to jsPDF.context2d.transform");var je=new c(T,I,G,re,ne,pe);this.ctx.transform=this.ctx.transform.multiply(je)},p.prototype.setTransform=function(T,I,G,re,ne,pe){T=isNaN(T)?1:T,I=isNaN(I)?0:I,G=isNaN(G)?0:G,re=isNaN(re)?1:re,ne=isNaN(ne)?0:ne,pe=isNaN(pe)?0:pe,this.ctx.transform=new c(T,I,G,re,ne,pe)};var g=function(){return this.margin[0]>0||this.margin[1]>0||this.margin[2]>0||this.margin[3]>0};p.prototype.drawImage=function(T,I,G,re,ne,pe,je,ke,De){var Pe=this.pdf.getImageProperties(T),Ze=1,tt=1,Je=1,Y=1;re!==void 0&&ke!==void 0&&(Je=ke/re,Y=De/ne,Ze=Pe.width/re*ke/re,tt=Pe.height/ne*De/ne),pe===void 0&&(pe=I,je=G,I=0,G=0),re!==void 0&&ke===void 0&&(ke=re,De=ne),re===void 0&&ke===void 0&&(ke=Pe.width,De=Pe.height);var Oe=this.ctx.transform.decompose(),Wt=H(Oe.rotate.shx),yt=new c,Ce=(yt=(yt=(yt=yt.multiply(Oe.translate)).multiply(Oe.skew)).multiply(Oe.scale)).applyToRectangle(new l(pe-I*Je,je-G*Y,re*Ze,ne*tt));if(this.autoPaging){for(var wt,ot=w.call(this,Ce),_t=[],gt=0;gt<ot.length;gt+=1)_t.indexOf(ot[gt])===-1&&_t.push(ot[gt]);N(_t);for(var un=_t[0],Xt=_t[_t.length-1],be=un;be<Xt+1;be++){this.pdf.setPage(be);var Ie=this.pdf.internal.pageSize.width-this.margin[3]-this.margin[1],$e=be===1?this.posY+this.margin[0]:this.margin[0],Fe=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],at=this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2],dt=be===1?0:Fe+(be-2)*at;if(this.ctx.clip_path.length!==0){var rn=this.path;wt=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=j(wt,this.posX+this.margin[3],-dt+$e+this.ctx.prevPageLastElemOffset),E.call(this,"fill",!0),this.path=rn}var Ut=JSON.parse(JSON.stringify(Ce));Ut=j([Ut],this.posX+this.margin[3],-dt+$e+this.ctx.prevPageLastElemOffset)[0];var qt=(be>un||be<Xt)&&g.call(this);qt&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],Ie,at,null).clip().discardPath()),this.pdf.addImage(T,"JPEG",Ut.x,Ut.y,Ut.w,Ut.h,null,
vendor: 8,784 bytes, line 2779
2779null,Wt),qt&&this.pdf.restoreGraphicsState()}}else this.pdf.addImage(T,"JPEG",Ce.x,Ce.y,Ce.w,Ce.h,null,null,Wt)};var w=function(T,I,G){var re=[];I=I||this.pdf.internal.pageSize.width,G=G||this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2];var ne=this.posY+this.ctx.prevPageLastElemOffset;switch(T.type){default:case"mt":case"lt":re.push(Math.floor((T.y+ne)/G)+1);break;case"arc":re.push(Math.floor((T.y+ne-T.radius)/G)+1),re.push(Math.floor((T.y+ne+T.radius)/G)+1);break;case"qct":var pe=X(this.ctx.lastPoint.x,this.ctx.lastPoint.y,T.x1,T.y1,T.x,T.y);re.push(Math.floor((pe.y+ne)/G)+1),re.push(Math.floor((pe.y+pe.h+ne)/G)+1);break;case"bct":var je=V(this.ctx.lastPoint.x,this.ctx.lastPoint.y,T.x1,T.y1,T.x2,T.y2,T.x,T.y);re.push(Math.floor((je.y+ne)/G)+1),re.push(Math.floor((je.y+je.h+ne)/G)+1);break;case"rect":re.push(Math.floor((T.y+ne)/G)+1),re.push(Math.floor((T.y+T.h+ne)/G)+1)}for(var ke=0;ke<re.length;ke+=1)for(;this.pdf.internal.getNumberOfPages()<re[ke];)b.call(this);return re},b=function(){var T=this.fillStyle,I=this.strokeStyle,G=this.font,re=this.lineCap,ne=this.lineWidth,pe=this.lineJoin;this.pdf.addPage(),this.fillStyle=T,this.strokeStyle=I,this.font=G,this.lineCap=re,this.lineWidth=ne,this.lineJoin=pe},j=function(T,I,G){for(var re=0;re<T.length;re++)switch(T[re].type){case"bct":T[re].x2+=I,T[re].y2+=G;case"qct":T[re].x1+=I,T[re].y1+=G;default:T[re].x+=I,T[re].y+=G}return T},N=function(T){return T.sort(function(I,G){return I-G})},A=function(T,I){var G=this.fillStyle,re=this.strokeStyle,ne=this.lineCap,pe=this.lineWidth,je=Math.abs(pe*this.ctx.transform.scaleX),ke=this.lineJoin;if(this.autoPaging){for(var De,Pe,Ze=JSON.parse(JSON.stringify(this.path)),tt=JSON.parse(JSON.stringify(this.path)),Je=[],Y=0;Y<tt.length;Y++)if(tt[Y].x!==void 0)for(var Oe=w.call(this,tt[Y]),Wt=0;Wt<Oe.length;Wt+=1)Je.indexOf(Oe[Wt])===-1&&Je.push(Oe[Wt]);for(var yt=0;yt<Je.length;yt++)for(;this.pdf.internal.getNumberOfPages()<Je[yt];)b.call(this);N(Je);for(var Ce=Je[0],wt=Je[Je.length-1],ot=Ce;ot<wt+1;ot++){this.pdf.setPage(ot),this.fillStyle=G,this.strokeStyle=re,this.lineCap=ne,this.lineWidth=je,this.lineJoin=ke;var _t=this.pdf.internal.pageSize.width-this.margin[3]-this.margin[1],gt=ot===1?this.posY+this.margin[0]:this.margin[0],un=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],Xt=this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2],be=ot===1?0:un+(ot-2)*Xt;if(this.ctx.clip_path.length!==0){var Ie=this.path;De=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=j(De,this.posX+this.margin[3],-be+gt+this.ctx.prevPageLastElemOffset),E.call(this,T,!0),this.path=Ie}if(Pe=JSON.parse(JSON.stringify(Ze)),this.path=j(Pe,this.posX+this.margin[3],-be+gt+this.ctx.prevPageLastElemOffset),I===!1||ot===0){var $e=(ot>Ce||ot<wt)&&g.call(this);$e&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],_t,Xt,null).clip().discardPath()),E.call(this,T,I),$e&&this.pdf.restoreGraphicsState()}this.lineWidth=pe}this.path=Ze}else this.lineWidth=je,E.call(this,T,I),this.lineWidth=pe},E=function(T,I){if((T!=="stroke"||I||!y.call(this))&&(T==="stroke"||I||!u.call(this))){for(var G,re,ne=[],pe=this.path,je=0;je<pe.length;je++){var ke=pe[je];switch(ke.type){case"begin":ne.push({begin:!0});break;case"close":ne.push({close:!0});break;case"mt":ne.push({start:ke,deltas:[],abs:[]});break;case"lt":var De=ne.length;if(pe[je-1]&&!isNaN(pe[je-1].x)&&(G=[ke.x-pe[je-1].x,ke.y-pe[je-1].y],De>0)){for(;De>=0;De--)if(ne[De-1].close!==!0&&ne[De-1].begin!==!0){ne[De-1].deltas.push(G),ne[De-1].abs.push(ke);break}}break;case"bct":G=[ke.x1-pe[je-1].x,ke.y1-pe[je-1].y,ke.x2-pe[je-1].x,ke.y2-pe[je-1].y,ke.x-pe[je-1].x,ke.y-pe[je-1].y],ne[ne.length-1].deltas.push(G);break;case"qct":var Pe=pe[je-1].x+2/3*(ke.x1-pe[je-1].x),Ze=pe[je-1].y+2/3*(ke.y1-pe[je-1].y),tt=ke.x+2/3*(ke.x1-ke.x),Je=ke.y+2/3*(ke.y1-ke.y),Y=ke.x,Oe=ke.y;G=[Pe-pe[je-1].x,Ze-pe[je-1].y,tt-pe[je-1].x,Je-pe[je-1].y,Y-pe[je-1].x,Oe-pe[je-1].y],ne[ne.length-1].deltas.push(G);break;case"arc":ne.push({deltas:[],abs:[],arc:!0}),Array.isArray(ne[ne.length-1].abs)&&ne[ne.length-1].abs.push(ke)}}re=I?null:T==="stroke"?"stroke":"fill";for(var Wt=!1,yt=0;yt<ne.length;yt++)if(ne[yt].arc)for(var Ce=ne[yt].abs,wt=0;wt<Ce.length;wt++){var ot=Ce[wt];ot.type==="arc"?O.call(this,ot.x,ot.y,ot.radius,ot.startAngle,ot.endAngle,ot.counterclockwise,void 0,I,!Wt):K.call(this,ot.x,ot.y),Wt=!0}else if(ne[yt].close===!0)this.pdf.internal.out("h"),Wt=!1;else if(ne[yt].begin!==!0){var _t=ne[yt].start.x,gt=ne[yt].start.y;q.call(this,ne[yt].deltas,_t,gt),Wt=!0}re&&L.call(this,re),I&&W.call(this)}},C=function(T){var I=this.pdf.internal.getFontSize()/this.pdf.internal.scaleFactor,G=I*(this.pdf.internal.getLineHeightFactor()-1);switch(this.ctx.textBaseline){case"bottom":return T-G;case"top":return T+I-G;case"hanging":return T+I-2*G;case"middle":return T+I/2-G;default:return T}},F=function(T){return T+this.pdf.internal.getFontSize()/this.pdf.internal.scaleFactor*(this.pdf.internal.getLineHeightFactor()-1)};p.prototype.createLinearGradient=function(){var T=function(){};return T.colorStops=[],T.addColorStop=function(I,G){this.colorStops.push([I,G])},T.getColor=function(){return this.colorStops.length===0?"#000000":this.colorStops[0][1]},T.isCanvasGradient=!0,T},p.prototype.createPattern=function(){return this.createLinearGradient()},p.prototype.createRadialGradient=function(){return this.createLinearGradient()};var O=function(T,I,G,re,ne,pe,je,ke,De){for(var Pe=ce.call(this,G,re,ne,pe),Ze=0;Ze<Pe.length;Ze++){var tt=Pe[Ze];Ze===0&&(De?_.call(this,tt.x1+T,tt.y1+I):K.call(this,tt.x1+T,tt.y1+I)),ae.call(this,T,I,tt.x2,tt.y2,tt.x3,tt.y3,tt.x4,tt.y4)}ke?W.call(this):L.call(this,je)},L=function(T){switch(T){case"stroke":this.pdf.internal.out("S");break;case"fill":this.pdf.internal.out("f")}},W=function(){this.pdf.clip(),this.pdf.discardPath()},_=function(T,I){this.pdf.internal.out(s(T)+" "+r(I)+" m")},P=function(T){var I;switch(T.align){case"right":case"end":I="right";break;case"center":I="center";break;default:I="left"}var G,re,ne,pe=this.pdf.getTextDimensions(T.text),je=C.call(this,T.y),ke=F.call(this,je)-pe.h,De=this.ctx.transform.applyToPoint(new o(T.x,je));if(this.autoPaging){var Pe=this.ctx.transform.decompose(),Ze=new c;Ze=(Ze=(Ze=Ze.multiply(Pe.translate)).multiply(Pe.skew)).multiply(Pe.scale);for(var tt=this.ctx.transform.applyToRectangle(new l(T.x,je,pe.w,pe.h)),Je=Ze.applyToRectangle(new l(T.x,ke,pe.w,pe.h)),Y=w.call(this,Je),Oe=[],Wt=0;Wt<Y.length;Wt+=1)Oe.indexOf(Y[Wt])===-1&&Oe.push(Y[Wt]);N(Oe);for(var yt=Oe[0],Ce=Oe[Oe.length-1],wt=yt;wt<Ce+1;wt++){this.pdf.setPage(wt);var ot=wt===1?this.posY+this.margin[0]:this.margin[0],_t=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],gt=this.pdf.internal.pageSize.height-this.margin[2],un=gt-this.margin[0],Xt=this.pdf.internal.pageSize.width-this.margin[1],be=Xt-this.margin[3],Ie=wt===1?0:_t+(wt-2)*un;if(this.ctx.clip_path.length!==0){var $e=this.path;G=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=j(G,this.posX+this.margin[3],-1*Ie+ot),E.call(this,"fill",!0),this.path=$e}var Fe=j([JSON.parse(JSON.stringify(Je))],this.posX+this.margin[3],-Ie+ot+this.ctx.prevPageLastElemOffset)[0];T.scale>=.01&&(re=this.pdf.internal.getFontSize(),this.pdf.setFontSize(re*T.scale),ne=this.lineWidth,this.lineWidth=ne*T.scale);var at=this.autoPaging!=="text";if(at||Fe.y+Fe.h<=gt){if(at||Fe.y>=ot&&Fe.x<=Xt){var dt=at?T.text:this.pdf.splitTextToSize(T.text,T.maxWidth||Xt-Fe.x)[0],rn=j([JSON.parse(JSON.stringify(tt))],this.posX+this.margin[3],-Ie+ot+this.ctx.prevPageLastElemOffset)[0],Ut=at&&(wt>yt||wt<Ce)&&g.call(this);Ut&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],be,un,null).clip().discardPath()),this.pdf.text(dt,rn.x,rn.y,{angle:T.angle,align:I,renderingMode:T.renderingMode}),Ut&&this.pdf.restoreGraphicsState()}}else Fe.y<gt&&(this.ctx.prevPageLastElemOffset+=gt-Fe.y);T.scale>=.01&&(this.pdf.setFontSize(re),this.lineWidth=ne)}}else T.scale>=.01&&(re=this.pdf.internal.getFontSize(),this.pdf.setFontSize(re*T.scale),ne=this.lineWidth,this.lineWidth=ne*T.scale),this.pdf.text(T.text,De.x+this.posX,De.y+this.posY,{angle:T.angle,align:I,renderingMode:T.renderingMode,maxWidth:T.maxWidth}),T.scale>=.01&&(this.pdf.setFontSize(re),this.lineWidth=ne)},K=function(T,I,G,re){G=G||0,re=re||0,this.pdf.internal.out(s(T+G)+" "+r(I+re)+" l")},q=function(T,I,G){return this.pdf.lines(T,I,G,null,null)},ae=function(T,I,G,re,ne,pe,je,ke){this.pdf.internal.out([n(a(G+T)),n(i(re+I)),n(a(ne+T)),n(i(pe+I)),n(a(je+T)),n(i(ke+I)),"c"].join(" "))},ce=function(T,I,G,re){for(var ne=2*Math.PI,pe=Math.PI/2;I>G;)I-=ne;var je=Math.abs(G-I);je<ne&&re&&(je=ne-je);for(var ke=[],De=re?-1:1,Pe=I;je>1e-5;){var Ze=Pe+De*Math.min(je,pe);
vendor: 4,238 bytes, line 2779
2779ke.push(de.call(this,T,Pe,Ze)),je-=Math.abs(Ze-Pe),Pe=Ze}return ke},de=function(T,I,G){var re=(G-I)/2,ne=T*Math.cos(re),pe=T*Math.sin(re),je=ne,ke=-pe,De=je*je+ke*ke,Pe=De+je*ne+ke*pe,Ze=4/3*(Math.sqrt(2*De*Pe)-Pe)/(je*pe-ke*ne),tt=je-Ze*ke,Je=ke+Ze*je,Y=tt,Oe=-Je,Wt=re+I,yt=Math.cos(Wt),Ce=Math.sin(Wt);return{x1:T*Math.cos(I),y1:T*Math.sin(I),x2:tt*yt-Je*Ce,y2:tt*Ce+Je*yt,x3:Y*yt-Oe*Ce,y3:Y*Ce+Oe*yt,x4:T*Math.cos(G),y4:T*Math.sin(G)}},H=function(T){return 180*T/Math.PI},X=function(T,I,G,re,ne,pe){var je=T+.5*(G-T),ke=I+.5*(re-I),De=ne+.5*(G-ne),Pe=pe+.5*(re-pe),Ze=Math.min(T,ne,je,De),tt=Math.max(T,ne,je,De),Je=Math.min(I,pe,ke,Pe),Y=Math.max(I,pe,ke,Pe);return new l(Ze,Je,tt-Ze,Y-Je)},V=function(T,I,G,re,ne,pe,je,ke){var De,Pe,Ze,tt,Je,Y,Oe,Wt,yt,Ce,wt,ot,_t,gt,un=G-T,Xt=re-I,be=ne-G,Ie=pe-re,$e=je-ne,Fe=ke-pe;for(Pe=0;Pe<41;Pe++)yt=(Oe=(Ze=T+(De=Pe/40)*un)+De*((Je=G+De*be)-Ze))+De*(Je+De*(ne+De*$e-Je)-Oe),Ce=(Wt=(tt=I+De*Xt)+De*((Y=re+De*Ie)-tt))+De*(Y+De*(pe+De*Fe-Y)-Wt),Pe==0?(wt=yt,ot=Ce,_t=yt,gt=Ce):(wt=Math.min(wt,yt),ot=Math.min(ot,Ce),_t=Math.max(_t,yt),gt=Math.max(gt,Ce));return new l(Math.round(wt),Math.round(ot),Math.round(_t-wt),Math.round(gt-ot))},he=function(){if(this.prevLineDash||this.ctx.lineDash.length||this.ctx.lineDashOffset){var T,I,G=(T=this.ctx.lineDash,I=this.ctx.lineDashOffset,JSON.stringify({lineDash:T,lineDashOffset:I}));this.prevLineDash!==G&&(this.pdf.setLineDash(this.ctx.lineDash,this.ctx.lineDashOffset),this.prevLineDash=G)}}})(zt.API),function(t){var n=function(o){var l,c,d,h,p,m,u,y,g,w;for(c=[],d=0,h=(o+=l="\0\0\0\0".slice(o.length%4||4)).length;h>d;d+=4)(p=(o.charCodeAt(d)<<24)+(o.charCodeAt(d+1)<<16)+(o.charCodeAt(d+2)<<8)+o.charCodeAt(d+3))!==0?(m=(p=((p=((p=((p=(p-(w=p%85))/85)-(g=p%85))/85)-(y=p%85))/85)-(u=p%85))/85)%85,c.push(m+33,u+33,y+33,g+33,w+33)):c.push(122);return function(b,j){for(var N=j;N>0;N--)b.pop()}(c,l.length),String.fromCharCode.apply(String,c)+"~>"},s=function(o){var l,c,d,h,p,m=String,u="length",y=255,g="charCodeAt",w="slice",b="replace";for(o[w](-2),o=o[w](0,-2)[b](/\s/g,"")[b]("z","!!!!!"),d=[],h=0,p=(o+=l="uuuuu"[w](o[u]%5||5))[u];p>h;h+=5)c=52200625*(o[g](h)-33)+614125*(o[g](h+1)-33)+7225*(o[g](h+2)-33)+85*(o[g](h+3)-33)+(o[g](h+4)-33),d.push(y&c>>24,y&c>>16,y&c>>8,y&c);return function(j,N){for(var A=N;A>0;A--)j.pop()}(d,l[u]),m.fromCharCode.apply(m,d)},r=function(o){return o.split("").map(function(l){return("0"+l.charCodeAt().toString(16)).slice(-2)}).join("")+">"},a=function(o){var l=new RegExp(/^([0-9A-Fa-f]{2})+$/);if((o=o.replace(/\s/g,"")).indexOf(">")!==-1&&(o=o.substr(0,o.indexOf(">"))),o.length%2&&(o+="0"),l.test(o)===!1)return"";for(var c="",d=0;d<o.length;d+=2)c+=String.fromCharCode("0x"+(o[d]+o[d+1]));return c},i=function(o){for(var l=new Uint8Array(o.length),c=o.length;c--;)l[c]=o.charCodeAt(c);return(l=uk(l)).reduce(function(d,h){return d+String.fromCharCode(h)},"")};t.processDataByFilters=function(o,l){var c=0,d=o||"",h=[];for(typeof(l=l||[])=="string"&&(l=[l]),c=0;c<l.length;c+=1)switch(l[c]){case"ASCII85Decode":case"/ASCII85Decode":d=s(d),h.push("/ASCII85Encode");break;case"ASCII85Encode":case"/ASCII85Encode":d=n(d),h.push("/ASCII85Decode");break;case"ASCIIHexDecode":case"/ASCIIHexDecode":d=a(d),h.push("/ASCIIHexEncode");break;case"ASCIIHexEncode":case"/ASCIIHexEncode":d=r(d),h.push("/ASCIIHexDecode");break;case"FlateEncode":case"/FlateEncode":d=i(d),h.push("/FlateDecode");break;default:throw new Error('The filter: "'+l[c]+'" is not implemented')}return{data:d,reverseChain:h.reverse().join(" ")}}}(zt.API),function(t){t.loadFile=function(n,s,r){return function(a,i,o){i=i!==!1,o=typeof o=="function"?o:function(){};var l=void 0;try{l=function(c,d,h){var p=new XMLHttpRequest,m=0,u=function(y){var g=y.length,w=[],b=String.fromCharCode;for(m=0;m<g;m+=1)w.push(b(255&y.charCodeAt(m)));return w.join("")};if(p.open("GET",c,!d),p.overrideMimeType("text/plain; charset=x-user-defined"),d===!1&&(p.onload=function(){p.status===200?h(u(this.responseText)):h(void 0)}),p.send(null),d&&p.status===200)return u(p.responseText)}(a,i,o)}catch{}return l}(n,s,r)},t.allowFsRead=void 0,t.loadImageFile=t.loadFile}(zt.API),function(t){function n(){return(en.html2canvas?Promise.resolve(en.html2canvas):$i(()=>
2779import("./html2canvas.esm-CBrSDip1.js"),[])).catch(function(l){return Promise.reject(new Error("Could not load html2canvas: "+l))}).then(function(l){return l.default?l.default:l})}function s(){return(en.DOMPurify?Promise.resolve(en.DOMPurify):$i(()=>Promise.resolve().then(()=>KY),void 0)).catch(function(l){return Promise.reject(new Error("Could not load dompurify: "+l))}).then(function(l){return l.default?l.default:l})}var r=function(l){var c=Jn(l);return c==="undefined"?"undefined":c==="string"||l instanceof String?"string":c==="number"||l instanceof Number?"number":c==="function"||l instanceof Function?"function":l&&l.constructor===Array?"array":l&&l.nodeType===1?"element":c==="object"?"object":"unknown"},a=function(l,c){var d=document.createElement(l);for(var h in c.className&&(d.className=c.className),c.innerHTML&&c.dompurify&&(d.innerHTML=c.dompurify.sanitize(c.innerHTML)),c.style)d.style[h]=c.style[h];return d},i=function l(c,d){for(var h=c.nodeType===3?document.createTextNode(c.nodeValue):c.cloneNode(!1),p=c.firstChild;p;p=p.nextSibling)d!==!0&&p.nodeType===1&&p.nodeName==="SCRIPT"||h.appendChild(l(p,d));return c.nodeType===1&&(c.nodeName==="CANVAS"?(h.width=c.width,h.height=c.height,h.getContext("2d").drawImage(c,0,0)):c.nodeName!=="TEXTAREA"&&c.nodeName!=="SELECT"||(h.value=c.value),h.addEventListener("load",function(){h.scrollTop=c.scrollTop,h.scrollLeft=c.scrollLeft},!0)),h},o=function l(c){var d=Object.assign(l.convert(Promise.resolve()),JSON.parse(JSON.stringify(l.template))),h=l.convert(Promise.resolve(),d);return(h=h.setProgress(1,l,1,[l])).set(c)};(o.prototype=Object.create(Promise.prototype)).constructor=o,o.convert=function(l,c){return l.__proto__=c||o.prototype,l},o.template={prop:{src:null,container:null,overlay:null,canvas:null,img:null,pdf:null,pageSize:null,callback:function(){}},progress:{val:0,state:null,n:0,stack:[]},opt:{filename:"file.pdf",margin:[0,0,0,0],enableLinks:!0,x:0,y:0,html2canvas:{},jsPDF:{},backgroundColor:"transparent"}},o.prototype.from=function(l,c){return this.then(function(){switch(c=c||function(d){switch(r(d)){case"string":return"string";case"element":return d.nodeName.toLowerCase()==="canvas"?"canvas":"element";default:return"unknown"}}(l),c){case"string":return this.then(s).then(function(d){return this.set({src:a("div",{innerHTML:l,dompurify:d})})});case"element":return this.set({src:l});case"canvas":return this.set({canvas:l});case"img":return this.set({img:l});default:return this.error("Unknown source type.")}})},o.prototype.to=function(l){switch(l){case"container":return this.toContainer();case"canvas":return this.toCanvas();case"img":return this.toImg();case"pdf":return this.toPdf();default:return this.error("Invalid target.")}},o.prototype.toContainer=function(){return this.thenList([function(){return this.prop.src||this.error("Cannot duplicate - no source HTML.")},function(){return this.prop.pageSize||this.setPageSize()}]).then(function(){var l={position:"relative",display:"inline-block",width:(typeof this.opt.width!="number"||isNaN(this.opt.width)||typeof this.opt.windowWidth!="number"||isNaN(this.opt.windowWidth)?Math.max(this.prop.src.clientWidth,this.prop.src.scrollWidth,this.prop.src.offsetWidth):this.opt.windowWidth)+"px",left:0,right:0,top:0,margin:"auto",backgroundColor:this.opt.backgroundColor},c=i(this.prop.src,this.opt.html2canvas.javascriptEnabled);c.tagName==="BODY"&&(l.height=Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight)+"px"),this.prop.overlay=a("div",{className:"html2pdf__overlay",style:{position:"fixed",overflow:"hidden",zIndex:1e3,left:"-100000px",right:0,bottom:0,top:0}}),this.prop.container=a("div",{className:"html2pdf__container",style:l}),this.prop.container.appendChild(c),this.prop.container.firstChild.appendChild(a("div",{style:{clear:"both",border:"0 none transparent",margin:0,padding:0,height:0}})),this.prop.container.style.float="none",this.prop.overlay.appendChild(this.prop.container),document.body.appendChild(this.prop.overlay),this.prop.container.firstChild.style.position="relative",this.prop.container.height=Math.max(this.prop.container.firstChild.clientHeight,this.prop.container.firstChild.scrollHeight,this.prop.container.firstChild.offsetHeight)+"px"})},o.prototype.toCanvas=function(){var l=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(l).then(n).then(function(c){var d=Object.assign({},this.opt.html2canvas);return delete d.onrendered,c(this.prop.container,d)}).then(function(c){(this.opt.html2canvas.onrendered||function(){})(c),this.prop.canvas=c,document.body.removeChild(this.prop.overlay)})},o.prototype.toContext2d=function(){var l=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(l).then(n).then(function(c){var d=this.opt.jsPDF,h=this.opt.fontFaces,p=typeof this.opt.width!="number"||isNaN(this.opt.width)||typeof this.opt.windowWidth!="number"||isNaN(this.opt.windowWidth)?1:this.opt.width/this.opt.windowWidth,m=Object.assign({async:!0,allowTaint:!0,scale:p,scrollX:this.opt.scrollX||0,scrollY:this.opt.scrollY||0,backgroundColor:"#ffffff",imageTimeout:15e3,logging:!0,proxy:null,removeContainer:!0,foreignObjectRendering:!1,useCORS:!1},this.opt.html2canvas);if(delete m.onrendered,d.context2d.autoPaging=this.opt.autoPaging===void 0||this.opt.autoPaging,d.context2d.posX=this.opt.x,d.context2d.posY=this.opt.y,d.context2d.margin=this.opt.margin,d.context2d.fontFaces=h,h)for(var u=0;u<h.length;++u){var y=h[u],g=y.src.find(function(w){return w.format==="truetype"});g&&d.addFont(g.url,y.ref.name,y.ref.style)}
vendor: 4,673 bytes, line 2779
2779return m.windowHeight=m.windowHeight||0,m.windowHeight=m.windowHeight==0?Math.max(this.prop.container.clientHeight,this.prop.container.scrollHeight,this.prop.container.offsetHeight):m.windowHeight,d.context2d.save(!0),c(this.prop.container,m)}).then(function(c){this.opt.jsPDF.context2d.restore(!0),(this.opt.html2canvas.onrendered||function(){})(c),this.prop.canvas=c,document.body.removeChild(this.prop.overlay)})},o.prototype.toImg=function(){return this.thenList([function(){return this.prop.canvas||this.toCanvas()}]).then(function(){var l=this.prop.canvas.toDataURL("image/"+this.opt.image.type,this.opt.image.quality);this.prop.img=document.createElement("img"),this.prop.img.src=l})},o.prototype.toPdf=function(){return this.thenList([function(){return this.toContext2d()}]).then(function(){this.prop.pdf=this.prop.pdf||this.opt.jsPDF})},o.prototype.output=function(l,c,d){return(d=d||"pdf").toLowerCase()==="img"||d.toLowerCase()==="image"?this.outputImg(l,c):this.outputPdf(l,c)},o.prototype.outputPdf=function(l,c){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then(function(){return this.prop.pdf.output(l,c)})},o.prototype.outputImg=function(l){return this.thenList([function(){return this.prop.img||this.toImg()}]).then(function(){switch(l){case void 0:case"img":return this.prop.img;case"datauristring":case"dataurlstring":return this.prop.img.src;case"datauri":case"dataurl":return document.location.href=this.prop.img.src;default:throw'Image output type "'+l+'" is not supported.'}})},o.prototype.save=function(l){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).set(l?{filename:l}:null).then(function(){this.prop.pdf.save(this.opt.filename)})},o.prototype.doCallback=function(){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then(function(){this.prop.callback(this.prop.pdf)})},o.prototype.set=function(l){if(r(l)!=="object")return this;var c=Object.keys(l||{}).map(function(d){if(d in o.template.prop)return function(){this.prop[d]=l[d]};switch(d){case"margin":return this.setMargin.bind(this,l.margin);case"jsPDF":return function(){return this.opt.jsPDF=l.jsPDF,this.setPageSize()};case"pageSize":return this.setPageSize.bind(this,l.pageSize);default:return function(){this.opt[d]=l[d]}}},this);return this.then(function(){return this.thenList(c)})},o.prototype.get=function(l,c){return this.then(function(){var d=l in o.template.prop?this.prop[l]:this.opt[l];return c?c(d):d})},o.prototype.setMargin=function(l){return this.then(function(){switch(r(l)){case"number":l=[l,l,l,l];case"array":if(l.length===2&&(l=[l[0],l[1],l[0],l[1]]),l.length===4)break;default:return this.error("Invalid margin array.")}this.opt.margin=l}).then(this.setPageSize)},o.prototype.setPageSize=function(l){function c(d,h){return Math.floor(d*h/72*96)}return this.then(function(){(l=l||zt.getPageSize(this.opt.jsPDF)).hasOwnProperty("inner")||(l.inner={width:l.width-this.opt.margin[1]-this.opt.margin[3],height:l.height-this.opt.margin[0]-this.opt.margin[2]},l.inner.px={width:c(l.inner.width,l.k),height:c(l.inner.height,l.k)},l.inner.ratio=l.inner.height/l.inner.width),this.prop.pageSize=l})},o.prototype.setProgress=function(l,c,d,h){return l!=null&&(this.progress.val=l),c!=null&&(this.progress.state=c),d!=null&&(this.progress.n=d),h!=null&&(this.progress.stack=h),this.progress.ratio=this.progress.val/this.progress.state,this},o.prototype.updateProgress=function(l,c,d,h){return this.setProgress(l?this.progress.val+l:null,c||null,d?this.progress.n+d:null,h?this.progress.stack.concat(h):null)},o.prototype.then=function(l,c){var d=this;return this.thenCore(l,c,function(h,p){return d.updateProgress(null,null,1,[h]),Promise.prototype.then.call(this,function(m){return d.updateProgress(null,h),m}).then(h,p).then(function(m){return d.updateProgress(1),m})})},o.prototype.thenCore=function(l,c,d){d=d||Promise.prototype.then;var h=this;l&&(l=l.bind(h)),c&&(c=c.bind(h));var p=Promise.toString().indexOf("[native code]")!==-1&&Promise.name==="Promise"?h:o.convert(Object.assign({},h),Promise.prototype),m=d.call(p,l,c);return o.convert(m,h.__proto__)},o.prototype.thenExternal=function(l,c){return Promise.prototype.then.call(this,l,c)},o.prototype.thenList=function(l){var c=this;return l.forEach(function(d){c=c.thenCore(d)}),c},o.prototype.catch=function(l){l&&(l=l.bind(this));var c=Promise.prototype.catch.call(this,l);return o.convert(c,this)},o.prototype.catchExternal=function(l){return Promise.prototype.catch.call(this,l)},o.prototype.error=function(l){return this.then(function(){throw new Error(l)})},o.prototype.using=o.prototype.set,o.prototype.saveAs=o.prototype.save,o.prototype.exp
vendor: 18,682 bytes, lines 2779-2785
2779ort=o.prototype.output,o.prototype.run=o.prototype.then,zt.getPageSize=function(l,c,d){if(Jn(l)==="object"){var h=l;l=h.orientation,c=h.unit||c,d=h.format||d}c=c||"mm",d=d||"a4",l=(""+(l||"P")).toLowerCase();var p,m=(""+d).toLowerCase(),u={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],"government-letter":[576,756],legal:[612,1008],"junior-legal":[576,360],ledger:[1224,792],tabloid:[792,1224],"credit-card":[153,243]};switch(c){case"pt":p=1;break;case"mm":p=72/25.4;break;case"cm":p=72/2.54;break;case"in":p=72;break;case"px":p=.75;break;case"pc":case"em":p=12;break;case"ex":p=6;break;default:throw"Invalid unit: "+c}var y,g=0,w=0;if(u.hasOwnProperty(m))g=u[m][1]/p,w=u[m][0]/p;else try{g=d[1],w=d[0]}catch{throw new Error("Invalid format: "+d)}if(l==="p"||l==="portrait")l="p",w>g&&(y=w,w=g,g=y);else{if(l!=="l"&&l!=="landscape")throw"Invalid orientation: "+l;l="l",g>w&&(y=w,w=g,g=y)}return{width:w,height:g,unit:c,k:p,orientation:l}},t.html=function(l,c){(c=c||{}).callback=c.callback||function(){},c.html2canvas=c.html2canvas||{},c.html2canvas.canvas=c.html2canvas.canvas||this.canvas,c.jsPDF=c.jsPDF||this,c.fontFaces=c.fontFaces?c.fontFaces.map(Bw):null;var d=new o(c);return c.worker?d:d.from(l).doCallback()}}(zt.API),zt.API.addJS=function(t){var n,s,r=function(a){for(var i="",o=0;o<a.length;o++){var l=a[o];if(l==="("||l===")"){for(var c=0,d=o-1;d>=0&&a[d]==="\\";d--)c++;i+=c%2==0?"\\"+l:l}else i+=l}return i}(t);return this.internal.events.subscribe("postPutResources",function(){n=this.internal.newObject(),this.internal.out("<<"),this.internal.out("/Names [(EmbeddedJS) "+(n+1)+" 0 R]"),this.internal.out(">>"),this.internal.out("endobj"),s=this.internal.newObject(),this.internal.out("<<"),this.internal.out("/S /JavaScript"),this.internal.out("/JS ("+r+")"),this.internal.out(">>"),this.internal.out("endobj")}),this.internal.events.subscribe("putCatalog",function(){n!==void 0&&s!==void 0&&this.internal.out("/Names <</JavaScript "+n+" 0 R>>")}),this},function(t){var n;t.events.push(["postPutResources",function(){var s=this,r=/^(\d+) 0 obj$/;if(this.outline.root.children.length>0)for(var a=s.outline.render().split(/\r\n/),i=0;i<a.length;i++){var o=a[i],l=r.exec(o);if(l!=null){var c=l[1];s.internal.newObjectDeferredBegin(c,!1)}s.internal.write(o)}if(this.outline.createNamedDestinations){var d=this.internal.pages.length,h=[];for(i=0;i<d;i++){var p=s.internal.newObject();h.push(p);var m=s.internal.getPageInfo(i+1);s.internal.write("<< /D["+m.objId+" 0 R /XYZ null null null]>> endobj")}var u=s.internal.newObject();for(s.internal.write("<< /Names [ "),i=0;i<h.length;i++)s.internal.write("(page_"+(i+1)+")"+h[i]+" 0 R");s.internal.write(" ] >>","endobj"),n=s.internal.newObject(),s.internal.write("<< /Dests "+u+" 0 R"),s.internal.write(">>","endobj")}}]),t.events.push(["putCatalog",function(){var s=this;s.outline.root.children.length>0&&(s.internal.write("/Outlines",this.outline.makeRef(this.outline.root)),this.outline.createNamedDestinations&&s.internal.write("/Names "+n+" 0 R"))}]),t.events.push(["initialized",function(){var s=this;s.outline={createNamedDestinations:!1,root:{children:[]}},s.outline.add=function(r,a,i){var o={title:a,options:i,children:[]};return r==null&&(r=this.root),r.children.push(o),o},s.outline.render=function(){return this.ctx={},this.ctx.val="",this.ctx.pdf=s,this.genIds_r(this.root),this.renderRoot(this.root),this.renderItems(this.root),this.ctx.val},s.outline.genIds_r=function(r){r.id=s.internal.newObjectDeferred();for(var a=0;a<r.children.length;a++)this.genIds_r(r.children[a])},s.outline.renderRoot=function(r){this.objStart(r),this.line("/Type /Outlines"),r.children.length>0&&(this.line("/First "+this.makeRef(r.children[0])),this.line("/Last "+this.makeRef(r.children[r.children.length-1]))),this.line("/Count "+this.count_r({count:0},r)),this.objEnd()},s.outline.renderItems=function(r){for(var a=this.ctx.pdf.internal.getVerticalCoordinateString,i=0;i<r.children.length;i++){var o=r.children[i];this.objStart(o),this.line("/Title "+this.makeString(o.title)),this.line("/Parent "+this.makeRef(r)),i>0&&this.line("/Prev "+this.makeRef(r.children[i-1])),i<r.children.length-1&&this.line("/Next "+this.makeRef(r.children[i+1])),o.children.length>0&&(this.line("/First "+this.makeRef(o.children[0])),this.line("/Last "+this.makeRef(o.children[o.children.length-1])));var l=this.count=this.count_r({count:0},o);if(l>0&&this.line("/Count "+l),o.options&&o.options.pageNumber){var c=s.internal.getPageInfo(o.options.pageNumber);this.line("/Dest ["+c.objId+" 0 R /XYZ 0 "+a(0)+" 0]")}this.objEnd()}for(var d=0;d<r.children.length;d++)this.renderItems(r.children[d])},s.outline.line=function(r){this.ctx.val+=r+`\r 2780`},s.outline.makeRef=function(r){return r.id+" 0 R"},s.outline.makeString=function(r){return"("+s.internal.pdfEscape(r)+")"},s.outline.objStart=function(r){this.ctx.val+=`\r 2781`+r.id+` 0 obj\r 2782<<\r 2783`},s.outline.objEnd=function(){this.ctx.val+=`>> \r 2784endobj\r 2785`},s.outline.count_r=function(r,a){for(var i=0;i<a.children.length;i++)r.count++,this.count_r(r,a.children[i]);return r.count}}])}(zt.API),function(t){var n=[192,193,194,195,196,197,198,199];t.processJPEG=function(s,r,a,i,o,l){var c,d=this.decode.DCT_DECODE,h=null;if(typeof s=="string"||this.__addimage__.isArrayBuffer(s)||this.__addimage__.isArrayBufferView(s)){switch(s=o||s,s=this.__addimage__.isArrayBuffer(s)?new Uint8Array(s):s,c=function(p){for(var m,u=256*p.charCodeAt(4)+p.charCodeAt(5),y=p.length,g={width:0,height:0,numcomponents:1},w=4;w<y;w+=2){if(w+=u,n.indexOf(p.charCodeAt(w+1))!==-1){m=256*p.charCodeAt(w+5)+p.charCodeAt(w+6),g={width:256*p.charCodeAt(w+7)+p.charCodeAt(w+8),height:m,numcomponents:p.charCodeAt(w+9)};break}u=256*p.charCodeAt(w+2)+p.charCodeAt(w+3)}return g}(s=this.__addimage__.isArrayBufferView(s)?this.__addimage__.arrayBufferToBinaryString(s):s),c.numcomponents){case 1:l=this.color_spaces.DEVICE_GRAY;break;case 4:l=this.color_spaces.DEVICE_CMYK;break;case 3:l=this.color_spaces.DEVICE_RGB}h={data:s,width:c.width,height:c.height,colorSpace:l,bitsPerComponent:8,filter:d,index:r,alias:a}}return h}}(zt.API),zt.API.processPNG=function(t,n,s,r){if(this.__addimage__.isArrayBuffer(t)&&(t=new Uint8Array(t)),this.__addimage__.isArrayBufferView(t)){var a,i=loe(t,{checkCrc:!0}),o=i.width,l=i.height,c=i.channels,d=i.palette,h=i.depth;a=d&&c===1?function(O){for(var L=O.width,W=O.height,_=O.data,P=O.palette,K=O.depth,q=!1,ae=[],ce=[],de=void 0,H=!1,X=0,V=0;V<P.length;V++){var he=YD(P[V],4),T=he[0],I=he[1],G=he[2],re=he[3];ae.push(T,I,G),re!=null&&(re===0?(X++,ce.length<1&&ce.push(V)):re<255&&(H=!0))}if(H||X>1){q=!0,ce=void 0;var ne=L*W;de=new Uint8Array(ne);for(var pe=new DataView(_.buffer),je=0;je<ne;je++){var ke=Uw(pe,je,K),De=YD(P[ke],4)[3];de[je]=De}}else X===0&&(ce=void 0);return{colorSpace:"Indexed",colorsPerPixel:1,sMaskBitsPerComponent:q?8:void 0,colorBytes:_,alphaBytes:de,needSMask:q,palette:ae,mask:ce}}(i):c===2||c===4?function(O){for(var L=O.data,W=O.width,_=O.height,P=O.channels,K=O.depth,q=P===2?"DeviceGray":"DeviceRGB",ae=P-1,ce=W*_,de=ae,H=ce*de,X=1*ce,V=Math.ceil(H*K/8),he=Math.ceil(X*K/8),T=new Uint8Array(V),I=new Uint8Array(he),G=new DataView(L.buffer),re=new DataView(T.buffer),ne=new DataView(I.buffer),pe=!1,je=0;je<ce;je++){for(var ke=je*P,De=0;De<de;De++)h6(re,Uw(G,ke+De,K),je*de+De,K);var Pe=Uw(G,ke+de,K);Pe<(1<<K)-1&&(pe=!0),h6(ne,Pe,1*je,K)}return{colorSpace:q,colorsPerPixel:ae,sMaskBitsPerComponent:pe?K:void 0,colorBytes:T,alphaBytes:I,needSMask:pe}}(i):function(O){var L=O.data,W=O.channels===1?"DeviceGray":"DeviceRGB";return{colorSpace:W,colorsPerPixel:W==="DeviceGray"?1:3,colorBytes:L instanceof Uint16Array?function(_){for(var P=_.length,K=new Uint8Array(2*P),q=new DataView(K.buffer,K.byteOffset,K.byteLength),ae=0;ae<P;ae++)q.setUint16(2*ae,_[ae],!1);return K}(L):L,needSMask:!1}}(i);var p,m,u,y=a,g=y.colorSpace,w=y.colorsPerPixel,b=y.sMaskBitsPerComponent,j=y.colorBytes,N=y.alphaBytes,A=y.needSMask,E=y.palette,C=y.mask,F=null;return r!==zt.API.image_compression.NONE&&typeof uk=="function"?(F=function(O){var L;switch(O){case zt.API.image_compression.FAST:L=11;break;case zt.API.image_compression.MEDIUM:L=13;break;case zt.API.image_compression.SLOW:L=14;break;default:L=12}return L}(r),p=this.decode.FLATE_DECODE,m="/Predictor ".concat(F," /Colors ").concat(w," /BitsPerComponent ").concat(h," /Columns ").concat(o),t=i6(j,Math.ceil(o*w*h/8),w,h,r),A&&(u=i6(N,Math.ceil(o*b/8),1,b,r))):(p=void 0,m=void 0,t=j,A&&(u=N)),(this.__addimage__.isArrayBuffer(t)||this.__addimage__.isArrayBufferView(t))&&(t=this.__addimage__.arrayBufferToBinaryString(t)),(u&&this.__addimage__.isArrayBuffer(u)||this.__addimage__.isArrayBufferView(u))&&(u=this.__addimage__.arrayBufferToBinaryString(u)),{alias:s,data:t,index:n,filter:p,decodeParameters:m,transparency:C,palette:E,sMask:u,predictor:F,width:o,height:l,bitsPerComponent:h,sMaskBitsPerComponent:b,colorSpace:g}}},function(t){t.processGIF89A=function(n,s,r,a){var i=new Coe(n),o=i.width,l=i.height,c=[];i.decodeAndBlitFrameRGBA(0,c);var d={data:c,width:o,height:l},h=new qw(100).encode(d,100);return t.processJPEG.call(this,h,s,r,a)},t.processGIF87A=t.processGIF89A}(zt.API),ro.prototype.parseHeader=function(){if(this.fileSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.reserved=this.datav.getUint32(this.pos,!0),this.pos+=4,this.offset=this.datav.getUint32(this.pos,!0),this.pos+=4,this.headerSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.width=this.datav.getUint32(this.pos,!0),this.pos+=4,this.height=this.datav.getInt32(this.pos,!0),this.pos+=4,this.planes=this.datav.getUint16(this.pos,!0),this.pos+=2,this.bitPP=this.datav.getUint16(this.pos,!0),this.pos+=2,this.compress=this.datav.getUint32(this.pos,!0),this.pos+=4,this.rawSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.hr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.vr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.colors=this.datav.getUint32(this.pos,!0),this.pos+=4,this.importantColors=this.datav.getUint32(this.pos,!0),this.pos+=4,this.bitPP===16&&this.is_with_alpha&&(this.bitPP=15),this.bitPP<15){var t=this.colors===0?1<<this.bitPP:this.colors;this.palette=new Array(t);for(var n=0;n<t;n++){var s=this.datav.getUint8(this.pos++,!0),r=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0);this.palette[n]={red:a,green:r,blue:s,quad:i}}}this.height<0&&(this.height*=-1,this.bottom_up=!1)},ro.prototype.parseBGR=function(){this.pos=this.offset;var t="bit"+this.bitPP,n=this.width*this.height*4;if(n>536870912)throw new Error("Image dimensions exceed 512MB, which is too large.");this.data=new Uint8Array(n);try{this[t]()}catch(s){ls.log("bit decode error:"+s)}},ro.prototype.bit1=function(){var t,n=Math.ceil(this.width/8),s=n%4;for(t=this.height-1;t>=0;t--){for(var r=this.bottom_up?t:this.height-1-t,a=0;a<n;a++)for(var i=this.datav.getUint8(this.pos++,!0),o=r*this.width*4+8*a*4,l=0;l<8&&8*a+l<this.width;l++){var c=this.palette[i>>7-l&1];this.data[o+4*l]=c.blue,this.data[o+4*l+1]=c.green,this.data[o+4*l+2]=c.red,this.data[o+4*l+3]=255}s!==0&&(this.pos+=4-s)}},ro.prototype.bit4=function(){for(var t=Math.ceil(this.width/2),n=t%4,s=this.height-1;s>=0;s--){for(var r=this.bottom_up?s:this.height-1-s,a=0;a<t;a++){var i=this.datav.getUint8(this.pos++,!0),o=r*this.width*4+2*a*4,l=i>>4,c=15&i,d=this.palette[l];if(this.data[o]=d.blue,this.data[o+1]=d.green,this.data[o+2]=d.red,this.data[o+3]=255,2*a+1>=this.width)break;d=this.palette[c],this.data[o+4]=d.blue,this.data[o+4+1]=d.green,this.data[o+4+2]=d.red,this.data[o+4+3]=255}n!==0&&(this.pos+=4-n)}},ro.prototype.bit8=function(){for(var t=this.width%4,n=this.height-1;n>=0;n--){for(var s=this.bottom_up?n:this.height-1-n,r=0;r<this.width;r++){var a=this.datav.getUint8(this.pos++,!0),i=s*this.width*4+4*r;if(a<this.palette.length){var o=this.palette[a];this.data[i]=o.red,this.data[i+1]=o.green,this.data[i+2]=o.blue,this.data[i+3]=255}else this.data[i]=255,this.data[i+1]=255,this.data[i+2]=255,this.data[i+3]=255}t!==0&&(this.pos+=4-t)}},ro.prototype.bit15=function(){for(var t=this.width%3,n=parseInt("11111",2),s=this.height-1;s>=0;s--){for(var r=this.bottom_up?s:this.height-1-s,a=0;a<this.width;a++){var i=this.datav.getUint16(this.pos,!0);this.pos+=2;var o=(i&n)/n*255|0,l=(i>>5&n)/n*255|0,c=(i>>10&n)/n*255|0,d=i>>15?255:0,h=r*this.width*4+4*a;this.data[h]=c,this.data[h+1]=l,this.data[h+2]=o,this.data[h+3]=d}this.pos+=t}},ro.prototype.bit16=function(){for(var t=this.width%3,n=parseInt("11111",2),s=parseInt("111111",2),r=this.height-1;r>=0;r--){for(var a=this.bottom_up?r:this.height-1-r,i=0;i<this.width;i++){var o=this.datav.getUint16(this.pos,!0);this.pos+=2;var l=(o&n)/n*255|0,c=(o>>5&s)/s*255|0,d=(o>>11)/n*255|0,h=a*this.width*4+4*i;this.data[h]=d,this.data[h+1]=c,this.data[h+2]=l,this.data[h+3]=255}this.pos+=t}},ro.prototype.bit24=function(){for(var t=this.height-1;t>=0;t--){for(var n=this.bottom_up?t:this.height-1-t,s=0;s<this.width;s++){var r=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),o=n*this.width*4+4*s;this.data[o]=i,this.data[o+1]=a,this.data[o+2]=r,this.data[o+3]=255}this.pos+=this.width%4}},ro.prototype.bit32=function(){for(var t=this.height-1;t>=0;t--)for(var n=this.bottom_up?t:this.height-1-t,s=0;s<this.width;s++){var r=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),o=this.datav.getUint8(this.pos++,!0),l=n*this.width*4+4*s;this.data[l]=i,this.data[l+1]=a,this.data[l+2]=r,this.data[l+3]=o}},ro.prototype.getData=function(){return this.data},function(t){t.processBMP=function(n,s,r,a){var i=new ro(n,!1),o=i.width,l=i.height,c={data:i.getData(),width:o,height:l},d=new qw(100).encode(c,100);return t.processJPEG.call(this,d,s,r,a)}}(zt.API),p6.prototype.getData=function(){return this.data},function(t){t.processWEBP=function(n,s,r,a){var i=new p6(n),o=i.width,l=i.height,c={data:i.getData(),width:o,height:l},d=new qw(100).encode(c,100);return t.processJPEG.call(this,d,s,r,a)}}(zt.API),zt.API.processRGBA=function(t,n,s){for(var r=t.data,a=r.length,i=new Uint8Array(a/4*3),o=new Uint8Array(a/4),l=0,c=0,d=0;d<a;d+=4){var h=r[d],p=r[d+1],m=r[d+2],u=r[d+3];i[l++]=h,i[l++]=p,i[l++]=m,o[c++]=u}var y=this.__addimage__.arrayBufferToBinaryString(i);return{alpha:this.__addimage__.arrayBufferToBinaryString(o),data:y,index:n,alias:s,colorSpace:"DeviceRGB",bitsPerComponent:8,width:t.width,height:t.height}},zt.API.setLanguage=function(t){return this.internal.languageSettings===void 0&&(this.internal.languageSettings={},this.internal.languageSettings.isSubscribed=!1),{af:"Afrikaans",sq:"Albanian",ar:"Arabic (Standard)","ar-DZ":"Arabic (Algeria)","ar-BH":"Arabic (Bahrain)","ar-EG":"Arabic (Egypt)","ar-IQ":"Arabic (Iraq)","ar-JO":"Arabic (Jordan)","ar-KW":"Arabic (Kuwait)","ar-LB":"Arabic (Lebanon)","ar-LY":"Arabic (Libya)","ar-MA":"Arabic (Morocco)","ar-OM":"Arabic (Oman)","ar-QA":"Arabic (Qatar)","ar-SA":"Arabic (Saudi Arabia)","ar-SY":"Arabic (Syria)","ar-TN":"Arabic (Tunisia)","ar-AE":"Arabic (U.A.E.)","ar-YE":"Arabic (Yemen)",an:"Aragonese",hy:"Armenian",as:"Assamese",ast:"Asturian",az:"Azerbaijani",eu:"Basque",be:"Belarusian",bn:"Bengali",bs:"Bosnian",br:"Breton",bg:"Bulgarian",my:"Burmese",ca:"Catalan",ch:"Chamorro",ce:"Chechen",zh:"Chinese","zh-HK":"Chinese (Hong Kong)","zh-CN":"Chinese (PRC)","zh-SG":"Chinese (Singapore)","zh-TW":"Chinese (Taiwan)",cv:"Chuvash",co:"Corsican",cr:"Cree",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch (Standard)","nl-BE":"Dutch (Belgian)",en:"English","en-AU":"English (Australia)","en-BZ":"English (Belize)","en-CA":"English (Canada)","en-IE":"English (Ireland)","en-JM":"English (Jamaica)","en-NZ":"English (New Zealand)","en-PH":"English (Philippines)","en-ZA":"English (South Africa)","en-TT":"English (Trinidad & Tobago)","en-GB":"English (United Kingdom)","en-US":"English (United States)","en-ZW":"English (Zimbabwe)",eo:"Esperanto",et:"Estonian",fo:"Faeroese",fj:"Fijian",fi:"Finnish",fr:"French (Standard)","fr-BE":"French (Belgium)","fr-CA":"French (Canada)","fr-FR":"French (France)","fr-LU":"French (Luxembourg)","fr-MC":"French (Monaco)","fr-CH":"French (Switzerland)",fy:"Frisian",fur:"Friulian",gd:"Gaelic (Scots)","gd-IE":"Gaelic (Irish)",gl:"Galacian",ka:"Georgian",de:"German (Standard)","de-AT":"German (Austria)","de-DE":"German (Germany)","de-LI":"German (Liechtenstein)","de-LU":"German (Luxembourg)","de-CH":"German (Switzerland)",el:"Greek",gu:"Gujurati",ht:"Haitian",he:"Hebrew",hi:"Hindi",hu:"Hungarian",is:"Icelandic",id:"Indonesian",iu:"Inuktitut",ga:"Irish",it:"Italian (Standard)","it-CH":"Italian (Switzerland)",ja:"Japanese",kn:"Kannada",ks:"Kashmiri",kk:"Kazakh",km:"Khmer",ky:"Kirghiz",tlh:"Klingon",ko:"Korean","ko-KP":"Korean (North Korea)","ko-KR":"Korean (South Korea)",la:"Latin",lv:"Latvian",lt:"Lithuanian",lb:"Luxembourgish",mk:"North Macedonia",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mo:"Moldavian",nv:"Navajo",ng:"Ndonga",ne:"Nepali",no:"Norwegian",nb:"Norwegian (Bokmal)",nn:"Norwegian (Nynorsk)",oc:"Occitan",or:"Oriya",om:"Oromo",fa:"Persian","fa-IR":"Persian/Iran",pl:"Polish",pt:"Portuguese","pt-BR":"Portuguese (Brazil)",pa:"Punjabi","pa-IN":"Punjabi (India)","pa-PK":"Punjabi (Pakistan)",qu:"Quechua",rm:"Rhaeto-Romanic",ro:"Romanian","ro-MO":"Romanian (Moldavia)",ru:"Russian","ru-MO":"Russian (Moldavia)",sz:"Sami (Lappish)",sg:"Sango",sa:"Sanskrit",sc:"Sardinian",sd:"Sindhi",si:"Singhalese",sr:"Serbian",sk:"Slovak",sl:"Slovenian",so:"Somani",sb:"Sorbian",es:"Spanish","es-AR":"Spanish (Argentina)","es-BO":"Spanish (Bolivia)","es-CL":"Spanish (Chile)","es-CO":"Spanish (Colombia)","es-CR":"Spanish (Costa Rica)","es-DO":"Spanish (Dominican Republic)","es-EC":"Spanish (Ecuador)","es-SV":"Spanish (El Salvador)","es-GT":"Spanish (Guatemala)","es-HN":"Spanish (Honduras)","es-MX":"Spanish (Mexico)","es-NI":"Spanish (Nicaragua)","es-PA":"Spanish (Panama)","es-PY":"Spanish (Paraguay)","es-PE":"Spanish (Peru)","es-PR":"Spanish (Puerto Rico)","es-ES":"Spanish (Sp
2785ain)","es-UY":"Spanish (Uruguay)","es-VE":"Spanish (Venezuela)",sx:"Sutu",sw:"Swahili",sv:"Swedish","sv-FI":"Swedish (Finland)","sv-SV":"Swedish (Sweden)",ta:"Tamil",tt:"Tatar",te:"Teluga",th:"Thai",tig:"Tigre",ts:"Tsonga",tn:"Tswana",tr:"Turkish",tk:"Turkmen",uk:"Ukrainian",hsb:"Upper Sorbian",ur:"Urdu",ve:"Venda",vi:"Vietnamese",vo:"Volapuk",wa:"Walloon",cy:"Welsh",xh:"Xhosa",ji:"Yiddish",zu:"Zulu"}[t]!==void 0&&(this.internal.languageSettings.languageCode=t,this.internal.languageSettings.isSubscribed===!1&&(this.internal.events.subscribe("putCatalog",function(){this.internal.write("/Lang ("+this.internal.languageSettings.languageCode+")")}),this.internal.languageSettings.isSubscribed=!0)),this},du=zt.API,zx=du.getCharWidthsArray=function(t,n){var s,r,a=(n=n||{}).font||this.internal.getFont(),i=n.fontSize||this.internal.getFontSize(),o=n.charSpace||this.internal.getCharSpace(),l=n.widths?n.widths:a.metadata.Unicode.widths,c=l.fof?l.fof:1,d=n.kerning?n.kerning:a.metadata.Unicode.kerning,h=d.fof?d.fof:1,p=n.doKerning!==!1,m=0,u=t.length,y=0,g=l[0]||c,w=[];for(s=0;s<u;s++)r=t.charCodeAt(s),typeof a.metadata.widthOfString=="function"?w.push((a.metadata.widthOfGlyph(a.metadata.characterToGlyph(r))+o*(1e3/i)||0)/1e3):(m=p&&Jn(d[r])==="object"&&!isNaN(parseInt(d[r][y],10))?d[r][y]/h:0,w.push((l[r]||g)/c+m)),y=r;return w},s6=du.getStringUnitWidth=function(t,n){var s=(n=n||{}).fontSize||this.internal.getFontSize(),r=n.font||this.internal.getFont(),a=n.charSpace||this.internal.getCharSpace();return du.processArabic&&(t=du.processArabic(t)),typeof r.metadata.widthOfString=="function"?r.metadata.widthOfString(t,s,a)/s:zx.apply(this,arguments).reduce(function(i,o){return i+o},0)},r6=function(t,n,s,r){for(var a=[],i=0,o=t.length,l=0;i!==o&&l+n[i]<s;)l+=n[i],i++;a.push(t.slice(0,i));var c=i;for(l=0;i!==o;)l+n[i]>r&&(a.push(t.slice(c,i)),l=0,c=i),l+=n[i],i++;return c!==i&&a.push(t.slice(c,i)),a},a6=function(t,n,s){s||(s={});var r,a,i,o,l,c,d,h=[],p=[h],m=s.textIndent||0,u=0,y=0,g=t.split(" "),w=zx.apply(this,[" ",s])[0];if(c=s.lineIndent===-1?g[0].length+2:s.lineIndent||0){var b=Array(c).join(" "),j=[];g.map(function(A){(A=A.split(/\s*\n/)).length>1?j=j.concat(A.map(function(E,C){return(C&&E.length?` 2786`:"")+E})):j.push(A[0])}),g=j,c=s6.apply(this,[b,s])}for(i=0,o=g.length;i<o;i++){var N=0;if(r=g[i],c&&r[0]==` 2787`&&(r=r.substr(1),N=1),m+u+(y=(a=zx.apply(this,[r,s])).reduce(function(A,E){return A+E},0))>n||N){if(y>n){for(l=r6.apply(this,[r,a,n-(m+u),n]),h.push(l.shift()),h=[l.pop()];l.length;)p.push([l.shift()]);y=a.slice(r.length-(h[0]?h[0].length:0)).reduce(function(A,E){return A+E},0)}else h=[r];p.push(h),m=y+c,u=w}else h.push(r),m+=u+y,u=w}return d=c?function(A,E){return(E?b:"")+A.join(" ")}:function(A){return A.join(" ")},p.map(d)},du.splitTextToSize=function(t,n,s){var r,a=(s=s||{}).fontSize||this.internal.getFontSize(),i=(function(h){if(h.widths&&h.kerning)return{widths:h.widths,kerning:h.kerning};var p=this.internal.getFont(h.fontName,h.fontStyle),m="Unicode";return p.metadata[m]?{widths:p.metadata[m].widths||{0:1},kerning:p.metadata[m].kerning||{}}:{font:p.metadata,fontSize:this.internal.getFontSize(),charSpace:this.internal.getCharSpace()}}).call(this,s);r=Array.isArray(t)?t:String(t).split(/\r?\n/);var o=1*this.internal.scaleFactor*n/a;i.textIndent=s.textIndent?1*s.textIndent*this.internal.scaleFactor/a:0,i.lineIndent=s.lineIndent;var l,c,d=[];for(l=0,c=r.length;l<c;l++)d=d.concat(a6.apply(this,[r[l],o,i]));return d},function(t){t.__fontmetrics__=t.__fontmetrics__||{};for(var n="0123456789abcdef",s="klmnopqrstuvwxyz",r={},a={},i=0;i<16;i++)r[s[i]]=n[i],a[n[i]]=s[i];var o=function(m){return"0x"+parseInt(m,10).toString(16)},l=t.__fontmetrics__.compress=function(m){var u,y,g,w,b=["{"];for(var j in m){if(u=m[j],isNaN(parseInt(j,10))?y="'"+j+"'":(j=parseInt(j,10),y=(y=o(j).slice(2)).slice(0,-1)+a[y.slice(-1)]),typeof u=="number")u<0?(g=o(u).slice(3),w="-"):(g=o(u).slice(2),w=""),g=w+g.slice(0,-1)+a[g.slice(-1)];else{if(Jn(u)!=="object")throw new Error("Don't know what to do with value type "+Jn(u)+".");g=l(u)}b.push(y+g)}return b.push("}"),b.join("")},c=t.__fontmetrics__.uncompress=function(m){if(typeof m!="string")throw new Error("Invalid argument passed to uncompress.");for(var u,y,g,w,b={},j=1,N=b,A=[],E="",C="",F=m.length-1,O=1;O<F;O+=1)(w=m[O])=="'"?u?(g=u.join(""),u=void 0):u=[]:u?u.push(w):w=="{"?(A.pu
vendor: 3,255 bytes, line 2787
2787sh([N,g]),N={},g=void 0):w=="}"?((y=A.pop())[0][y[1]]=N,g=void 0,N=y[0]):w=="-"?j=-1:g===void 0?r.hasOwnProperty(w)?(E+=r[w],g=parseInt(E,16)*j,j=1,E=""):E+=w:r.hasOwnProperty(w)?(C+=r[w],N[g]=parseInt(C,16)*j,j=1,g=void 0,C=""):C+=w;return b},d={codePages:["WinAnsiEncoding"],WinAnsiEncoding:c("{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}")},h={Unicode:{Courier:d,"Courier-Bold":d,"Courier-BoldOblique":d,"Courier-Oblique":d,Helvetica:d,"Helvetica-Bold":d,"Helvetica-BoldOblique":d,"Helvetica-Oblique":d,"Times-Roman":d,"Times-Bold":d,"Times-BoldItalic":d,"Times-Italic":d}},p={Unicode:{"Courier-Oblique":c("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Times-BoldItalic":c("{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}"),"Helvetica-Bold":c("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4y
vendor: 11,049 bytes, line 2787
2787dn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"),Courier:c("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Courier-BoldOblique":c("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Times-Bold":c("{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}"),Symbol:c("{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}"),Helvetica:c("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}"),"Helvetica-BoldOblique":c("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"),ZapfDingbats:c("{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}"),"Courier-Bold":c("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Times-Italic":c("{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}"),"Times-Roman":c("{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}"),"Helvetica-Oblique":c("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4y
2787dn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}")}};t.events.push(["addFont",function(m){var u=m.font,y=p.Unicode[u.postScriptName];y&&(u.metadata.Unicode={},u.metadata.Unicode.widths=y.widths,u.metadata.Unicode.kerning=y.kerning);var g=h.Unicode[u.postScriptName];g&&(u.metadata.Unicode.encoding=g,u.encoding=g.codePages[0])}])}(zt.API),function(t){var n=function(s){for(var r=s.length,a=new Uint8Array(r),i=0;i<r;i++)a[i]=s.charCodeAt(i);return a};t.API.events.push(["addFont",function(s){var r=void 0,a=s.font,i=s.instance;if(!a.isStandardFont){if(i===void 0)throw new Error("Font does not exist in vFS, import fonts or remove declaration doc.addFont('"+a.postScriptName+"').");if(typeof(r=i.existsFileInVFS(a.postScriptName)===!1?i.loadFile(a.postScriptName):i.getFileFromVFS(a.postScriptName))!="string")throw new Error("Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('"+a.postScriptName+"').");(function(o,l){l=/^\x00\x01\x00\x00/.test(l)?n(l):n(xy(l)),o.metadata=t.API.TTFFont.open(l),o.metadata.Unicode=o.metadata.Unicode||{encoding:{},kerning:{},widths:[]},o.metadata.glyIdsUsed=[0]})(a,r)}}])}(zt),zt.API.addSvgAsImage=function(t,n,s,r,a,i,o,l){if(isNaN(n)||isNaN(s))throw ls.error("jsPDF.addSvgAsImage: Invalid coordinates",arguments),new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");if(isNaN(r)||isNaN(a))throw ls.error("jsPDF.addSvgAsImage: Invalid measurements",arguments),new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");var c=document.createElement("canvas");c.width=r,c.height=a;var d=c.getContext("2d");d.fillStyle="#fff",d.fillRect(0,0,c.width,c.height);var h={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},p=this;return(en.canvg?Promise.resolve(en.canvg):$i(()=>import("./index.es-B_vM6UPK.js"),[])).catch(function(m){return Promise.reject(new Error("Could not load canvg: "+m))}).then(function(m){return m.default?m.default:m}).then(function(m){return m.fromString(d,t,h)},function(){return Promise.reject(new Error("Could not load canvg."))}).then(function(m){return m.render(h)}).then(function(){p.addImage(c.toDataURL("image/jpeg",1),n,s,r,a,o,l)})},zt.API.putTotalPages=function(t){var n,s=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(n=new RegExp(t,"g"),s=this.internal.getNumberOfPages()):(n=new RegExp(this.pdfEscape16(t,this.internal.getFont()),"g"),s=this.pdfEscape16(this.internal.getNumberOfPages()+"",this.internal.getFont()));for(var r=1;r<=this.internal.getNumberOfPages();r++)for(var a=0;a<this.internal.pages[r].length;a++)this.internal.pages[r][a]=this.internal.pages[r][a].replace(n,s);return this},zt.API.viewerPreferences=function(t,n){var s;t=t||{},n=n||!1;var r,a,i,o={HideToolbar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:"UseNone",value:"UseNone",type:"name",explicitSet:!1,valueSet:["UseNone","UseOutlines","UseThumbs","UseOC"],pdfVersion:1.3},Direction:{defaultValue:"L2R",value:"L2R",type:"name",explicitSet:!1,valueSet:["L2R","R2L"],pdfVersion:1.3},ViewArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},ViewClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintScaling:{defaultValue:"AppDefault",value:"AppDefault",type:"name",explicitSet:!1,valueSet:["AppDefault","None"],pdfVersion:1.6},Duplex:{defaultValue:"",value:"none",type:"name",explicitSet:!1,valueSet:["Simplex","DuplexFlipShortEdge","DuplexFlipLongEdge","none"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:"",value:"",type:"array",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:"integer",explicitSet:!1,valueSet:null,pdfVersion:1.7}},l=Object.keys(o),c=[],d=0,h=0,p=0;function m(y,g){var w,b=!1;for(w=0;w<y.length;w+=1)y[w]===g&&(b=!0);return b}if(this.internal.viewerpreferences===void 0&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(o)),this.internal.viewerpreferences.isSubscribed=!1),s=this.internal.viewerpreferences.configuration,t==="reset"||n===!0){var u=l.length;for(p=0;p<u;p+=1)s[l[p]].value=s[l[p]].defaultValue,s[l[p]].explicitSet=!1}if(Jn(t)==="object"){for(a in t)if(i=t[a],m(l,a)&&i!==void 0){if(s[a].type==="boolean"&&typeof i=="boolean")s[a].value=i;else if(s[a].type==="name"&&m(s[a].valueSet,i))s[a].value=i;else if(s[a].type==="integer"&&Number.isInteger(i))s[a].value=i;else if(s[a].type==="array"){for(d=0;d<i.length;d+=1)if(r=!0,i[d].length===1&&typeof i[d][0]=="number")c.push(String(i[d]-1));else if(i[d].length>1){for(h=0;h<i[d].length;h+=1)typeof i[d][h]!="number"&&(r=!1);r===!0&&c.push([i[d][0]-1,i[d][1]-1].join(" "))}s[a].value="["+c.join(" ")+"]"}else s[a].value=s[a].defaultValue;s[a].explicitSet=!0}}return this.internal.viewerpreferences.isSubscribed===!1&&(this.internal.events.subscribe("putCatalog",function(){var y,g=[];for(y in s)s[y].explicitSet===!0&&(s[y].type==="name"?g.push("/"+y+" /"+s[y].value):g.push("/"+y+" "+s[y].value));g.length!==0&&this.internal.write(`/ViewerPreferences 2788<< 2789`+g.join(` 2790`)+` 2791>>`)}),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=s,this},zt.API.addMetadata=function(t,n){return this.internal.__metadata__===void 0&&(this.internal.__metadata__={metadata:t,namespaceUri:n??"http://jspdf.default.namespaceuri/",rawXml:typeof n=="boolean"&&n},this.internal.events.subscribe("putCatalog",Toe),this.internal.events.subscribe("postPutResources",_oe)),this},function(t){var n=t.API,s=n.pdfEscape16=function(i,o){for(var l,c=o.metadata.Unicode.widths,d=["","0","00","000","0000"],h=[""],p=0,m=i.length;p<m;++p){if(l=o.metadata.characterToGlyph(i.charCodeAt(p)),o.metadata.glyIdsUsed.push(l),o.metadata.toUnicode[l]=i.charCodeAt(p),c.indexOf(l)==-1&&(c.push(l),c.push([parseInt(o.metadata.widthOfGlyph(l),10)])),l=="0")return h.join("");l=l.toString(16),h.push(d[4-l.length],l)}return h.join("")},r=function(i){var o,l,c,d,h,p,m;for(h=`/CIDInit /ProcSet findresource begin 279212 dict begin 2793begincmap 2794/CIDSystemInfo << 2795 /Registry (Adobe) 2796 /Ordering (UCS) 2797 /Supplement 0 2798>> def 2799/CMapName /Adobe-Identity-UCS def 2800/CMapType 2 def 28011 begincodespacerange 2802<0000><ffff> 2803endcodespacerange`,c=[],p=0,m=(l=Object.keys(i).sort(function(u,y){return u-y})).length;p<m;p++)o=l[p],c.length>=100&&(h+=` 2804`+c.length+` beginbfchar 2805`+c.join(` 2806`)+` 2807endbfchar`,c=[]),i[o]!==void 0&&i[o]!==null&&typeof i[o].toString=="function"&&(d=("0000"+i[o].toString(16)).slice(-4),o=("0000"+(+o).toString(16)).slice(-4),c.push("<"+o+"><"+d+">"));return c.length&&(h+=` 2808`+c.length+` beginbfchar 2809`+c.join(` 2810`)+` 2811endbfchar 2812`),h+`endcmap 2813CMapName currentdict /CMap defineresource pop 2814end 2815end`};n.events.push(["putFont",function(i){(function(o){var l=o.font,c=o.out,d=o.newObject,h=o.putStream;if(l.metadata instanceof t.API.TTFFont&&l.encoding==="Identity-H"){for(var p=l.metadata.Unicode.widths,m=l.metadata.subset.encode(l.metadata.glyIdsUsed,1),u="",y=0;y<m.length;y++)u+=String.fromCharCode(m[y]);var g=d();h({data:u,addLength1:!0,objectId:g}),c("endobj");var w=d();h({data:r(l.metadata.toUnicode),addLength1:!0,objectId:w}),c("endobj");var b=d();c("<<"),c("/Type /FontDescriptor"),c("/FontName /"+fu(l.fontName)),c("/FontFile2 "+g+" 0 R"),c("/FontBBox "+t.API.PDFObject.convert(l.metadata.bbox)),c("/Flags "+l.metadata.flags),c("/StemV "+l.metadata.stemV),c("/ItalicAngle "+l.metadata.italicAngle),c("/Ascent "+l.metadata.ascender),c("/Descent "+l.metadata.decender),c("/CapHeight "+l.metadata.capHeight),c(">>"),c("endobj");var j=d();c("<<"),c("/Type /Font"),c("/BaseFont /"+fu(l.fontName)),c("/FontDescriptor "+b+" 0 R"),c("/W "+t.API.PDFObject.convert(p)),c("/CIDToGIDMap /Identity"),c("/DW 1000"),c("/Subtype /CIDFontType2"),c("/CIDSystemInfo"),c("<<"),c("/Supplement 0"),c("/Registry (Adobe)"),
2815c("/Ordering ("+l.encoding+")"),c(">>"),c(">>"),c("endobj"),l.objectNumber=d(),c("<<"),c("/Type /Font"),c("/Subtype /Type0"),c("/ToUnicode "+w+" 0 R"),c("/BaseFont /"+fu(l.fontName)),c("/Encoding /"+l.encoding),c("/DescendantFonts ["+j+" 0 R]"),c(">>"),c("endobj"),l.isAlreadyPutted=!0}})(i)}]),n.events.push(["putFont",function(i){(function(o){var l=o.font,c=o.out,d=o.newObject,h=o.putStream;if(l.metadata instanceof t.API.TTFFont&&l.encoding==="WinAnsiEncoding"){for(var p=l.metadata.rawData,m="",u=0;u<p.length;u++)m+=String.fromCharCode(p[u]);var y=d();h({data:m,addLength1:!0,objectId:y}),c("endobj");var g=d();h({data:r(l.metadata.toUnicode),addLength1:!0,objectId:g}),c("endobj");var w=d();c("<<"),c("/Descent "+l.metadata.decender),c("/CapHeight "+l.metadata.capHeight),c("/StemV "+l.metadata.stemV),c("/Type /FontDescriptor"),c("/FontFile2 "+y+" 0 R"),c("/Flags 96"),c("/FontBBox "+t.API.PDFObject.convert(l.metadata.bbox)),c("/FontName /"+fu(l.fontName)),c("/ItalicAngle "+l.metadata.italicAngle),c("/Ascent "+l.metadata.ascender),c(">>"),c("endobj"),l.objectNumber=d();for(var b=0;b<l.metadata.hmtx.widths.length;b++)l.metadata.hmtx.widths[b]=parseInt(l.metadata.hmtx.widths[b]*(1e3/l.metadata.head.unitsPerEm));c("<</Subtype/TrueType/Type/Font/ToUnicode "+g+" 0 R/BaseFont/"+fu(l.fontName)+"/FontDescriptor "+w+" 0 R/Encoding/"+l.encoding+" /FirstChar 29 /LastChar 255 /Widths "+t.API.PDFObject.convert(l.metadata.hmtx.widths)+">>"),c("endobj"),l.isAlreadyPutted=!0}})(i)}]);var a=function(i){var o,l=i.text||"",c=i.x,d=i.y,h=i.options||{},p=i.mutex||{},m=p.pdfEscape,u=p.activeFontKey,y=p.fonts,g=u,w="",b=0,j="",N=y[g].encoding;if(y[g].encoding!=="Identity-H")return{text:l,x:c,y:d,options:h,mutex:p};for(j=l,g=u,Array.isArray(l)&&(j=l[0]),b=0;b<j.length;b+=1)y[g].metadata.hasOwnProperty("cmap")&&(o=y[g].metadata.cmap.unicode.codeMap[j[b].charCodeAt(0)]),o||j[b].charCodeAt(0)<256&&y[g].metadata.hasOwnProperty("Unicode")?w+=j[b]:w+="";var A="";return parseInt(g.slice(1))<14||N==="WinAnsiEncoding"?A=m(w,g).split("").map(function(E){return E.charCodeAt(0).toString(16)}).join(""):N==="Identity-H"&&(A=s(w,y[g])),p.isHex=!0,{text:A,x:c,y:d,options:h,mutex:p}};n.events.push(["postProcessText",function(i){var o=i.text||"",l=[],c={text:o,x:i.x,y:i.y,options:i.options,mutex:i.mutex};if(Array.isArray(o)){var d=0;for(d=0;d<o.length;d+=1)Array.isArray(o[d])&&o[d].length===3?l.push([a(Object.assign({},c,{text:o[d][0]})).text,o[d][1],o[d][2]]):l.push(a(Object.assign({},c,{text:o[d]})).text);i.text=l}else i.text=a(Object.assign({},c,{text:o})).text}])}(zt),function(t){var n=function(){return this.internal.vFS===void 0&&(this.internal.vFS={}),!0};t.existsFileInVFS=function(s){return n.call(this),this.internal.vFS[s]!==void 0},t.addFileToVFS=function(s,r){return n.call(this),this.internal.vFS[s]=r,this},t.getFileFromVFS=function(s){return n.call(this),this.internal.vFS[s]!==void 0?this.internal.vFS[s]:null}}(zt.API),function(t){t.__bidiEngine__=t.prototype.__bidiEngine__=function(r){var a,i,o,l,c,d,h,p=n,m=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],u=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],y={L:0,R:1,EN:2,AN:3,N:4,B:5,S:6},g={0:0,5:1,6:2,7:3,32:4,251:5,254:6,255:7},w=["(",")","(","<",">","<","[","]","[","{","}","{","«","»","«","â¹","âº","â¹","â
","â","â
","â½","â¾","â½","â","â","â","â¤","â¥","â¤","â©","âª","â©","ï¹","ï¹","ï¹","ï¹","ï¹","ï¹","ï¹","ï¹","ï¹","﹤","ï¹¥","﹤"],b=new RegExp(/^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/),j=!1,N=0;this.__bidiEngine__={};var A=function(_){var P=_.charCodeAt(),K=P>>8,q=g[K];return q!==void 0?p[256*q+(255&P)]:K===252||K===253?"AL":b.test(K)?"L":K===8?"R":"N"},E=function(_){for(var P,K=0;K<_.length;K++){if((P=A(_.charAt(K)))==="L")return!1;if(P==="R")return!0}return!1},C=function(_,P,K,q){var ae,ce,de,H,X=P[q];switch(X){case"L":case"R":case"LRE":case"RLE":case"LRO":case"RLO":case"PDF":j=!1;break;case"N":case"AN":break;case"EN":j&&(X="AN");break;case"AL":j=!0,X="R";break;case"WS":case"BN":X="N";break;case"CS":q<1||q+1>=P.length||(ae=K[q-1])!=="EN"&&ae!=="AN"||(ce=P[q+1])!=="EN"&&ce!=="AN"?X="N":j&&(ce="AN"),X=ce===ae?ce:"N";break;case"ES":X=(ae=q>0?K[q-1]:"B")==="EN"&&q+1<P.length&&P[q+1]==="EN"?"EN":"N";break;case"ET":if(q>0&&K[q-1]==="EN"){X="EN";break}if(j){X="N";break}for(de=q+1,H=P.length;de<H&&P[de]==="ET";)de++;X=de<H&&P[de]==="EN"?"EN":"N";break;case"NSM":if(o&&!l){for(H=P.length,de=q+1;de<H&&P[de]==="NSM";)de++;if(de<H){var V=_[q],he=V>=1425&&V<=2303||V===64286;if(ae=P[de],he&&(ae==="R"||ae==="AL")){X="R";break}}}X=q<1||(ae=P[q-1])==="B"?"N":K[q-1];break;case"B":j=!1,a=!0,X=N;break;case"S":i=!0,X="N"}return X},F=function(_,P,K){var q=_.split("");return K&&O(q,K,{hiLevel:N}),q.reverse(),P&&P.reverse(),q.join("")},O=function(_,P,K){var q,ae,ce,de,H,X=-1,V=_.length,he=0,T=[],I=N?u:m,G=[];for(j=!1,a=!1,i=!1,ae=0;ae<V;ae++)G[ae]=A(_[ae]);for(ce=0;ce<V;ce++){if(H=he,T[ce]=C(_,G,T,ce),q=240&(he=I[H][y[T[ce]]]),he&=15,P[ce]=de=I[he][5],q>0)if(q===16){for(ae=X;ae<ce;ae++)P[ae]=1;X=-1}else X=-1;if(I[he][6])X===-1&&(X=ce);else if(X>-1){for(ae=X;ae<ce;ae++)P[ae]=de;X=-1}G[ce]==="B"&&(P[ce]=0),K.hiLevel|=de}i&&function(re,ne,pe){for(var je=0;je<pe;je++)if(re[je]==="S"){ne[je]=N;for(var ke=je-1;ke>=0&&re[ke]==="WS";ke--)ne[ke]=N}}(G,P,V)},L=function(_,P,K,q,ae){if(!(ae.hiLevel<_)){if(_===1&&N===1&&!a)return P.reverse(),void(K&&K.reverse());for(var ce,de,H,X,V=P.length,he=0;he<V;){if(q[he]>=_){for(H=he+1;H<V&&q[H]>=_;)H++;for(X=he,de=H-1;X<de;X++,de--)ce=P[X],P[X]=P[de],P[de]=ce,K&&(ce=K[X],K[X]=K[de],K[de]=ce);he=H}he++}}},W=function(_,P,K){var q=_.split(""),ae={hiLevel:N};return K||(K=[]),O(q,K,ae),function(ce,de,H){if(H.hiLevel!==0&&h)for(var X,V=0;V<ce.length;V++)de[V]===1&&(X=w.indexOf(ce[V]))>=0&&(ce[V]=w[X+1])}(q,K,ae),L(2,q,P,K,ae),L(1,q,P,K,ae),q.join("")};return this.__bidiEngine__.doBidiReorder=function(_,P,K){if(function(ae,ce){if(ce)for(var de=0;de<ae.length;de++)ce[de]=de;l===void 0&&(l=E(ae)),d===void 0&&(d=E(ae))}
vendor: 14,236 bytes, line 2815
2815(_,P),o||!c||d)if(o&&c&&l^d)N=l?1:0,_=F(_,P,K);else if(!o&&c&&d)N=l?1:0,_=W(_,P,K),_=F(_,P);else if(!o||l||c||d){if(o&&!c&&l^d)_=F(_,P),l?(N=0,_=W(_,P,K)):(N=1,_=W(_,P,K),_=F(_,P));else if(o&&l&&!c&&d)N=1,_=W(_,P,K),_=F(_,P);else if(!o&&!c&&l^d){var q=h;l?(N=1,_=W(_,P,K),N=0,h=!1,_=W(_,P,K),h=q):(N=0,_=W(_,P,K),_=F(_,P),N=1,h=!1,_=W(_,P,K),h=q,_=F(_,P))}}else N=0,_=W(_,P,K);else N=l?1:0,_=W(_,P,K);return _},this.__bidiEngine__.setOptions=function(_){_&&(o=_.isInputVisual,c=_.isOutputVisual,l=_.isInputRtl,d=_.isOutputRtl,h=_.isSymmetricSwapping)},this.__bidiEngine__.setOptions(r),this.__bidiEngine__};var n=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","N","N","ET","ET","ET","N","N","N","N","N","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","N","N","N","N","N","N","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","N","N","N","N","N","N","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","N","N","N","N","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","N","ET","ET","ET","ET","N","N","N","N","L","N","N","BN","N","N","ET","ET","EN","EN","N","L","N","N","N","EN","L","N","N","N","N","N","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","N","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","N","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","N","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","N","N","L","L","L","L","L","L","L","N","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","N","L","N","N","N","N","N","ET","N","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","R","NSM","R","NSM","NSM","R","NSM","NSM","R","NSM","N","N","N","N","N","N","N","N","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","N","N","N","N","N","R","R","R","R","R","N","N","N","N","N","N","N","N","N","N","N","AN","AN","AN","AN","AN","AN","N","N","AL","ET","ET","AL","CS","AL","N","N","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","N","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","N","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","N","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","N","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","N","N","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","N","N","N","N","N","N","N","N","N","N","N","N","N","N","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","R","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","R","R","N","N","N","N","R","N","N","N","N","N","WS","WS","WS","WS","WS","WS","WS","WS","WS","WS","WS","BN","BN","BN","L","R","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","WS","B","LRE","RLE","PDF","LRO","RLO","CS","ET","ET","ET","ET","ET","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","CS","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","WS","BN","BN","BN","BN","BN","N","LRI","RLI","FSI","PDI","BN","BN","BN","BN","BN","BN","EN","L","N","N","EN","EN","EN","EN","EN","EN","ES","ES","N","N","N","L","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","ES","ES","N","N","N","N","L","L","L","L","L","L","L","L","L","L","L","L","L","N","N","N","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","ET","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","L","L","L","L","L","L","L","N","N","N","N","N","N","N","N","N","N","N","N","L","L","L","L","L","N","N","N","N","N","R","NSM","R","R","R","R","R","R","R","R","R","R","ES","R","R","R","R","R","R","R","R","R","R","R","R","R","N","R","R","R","R","R","N","R","N","R","R","N","R","R","N","R","R","R","R","R","R","R","R","R","R","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","CS","N","CS","N","N","CS","N","N","N","N","N","N","N","N","N","ET","N","N","ES","ES","N","N","N","N","N","ET","ET","N","N","N","N","N","AL","AL","AL","AL","AL","N","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","N","N","BN","N","N","N","ET","ET","ET","N","N","N","N","N","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","N","N","N","N","N","N","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","N","N","N","N","N","N","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","N","N","N","N","N","N","N","N","N","N","N","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","N","N","N","L","L","L","L","L","L","N","N","L","L","L","L","L","L","N","N","L","L","L","L","L","L","N","N","L","L","L","N","N","N","ET","ET","N","N","N","ET","ET","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N","N"],s=new t.__bidiEngine__({isInputVisual:!0});t.API.events.push(["postProcessText",function(r){var a=r.text;r.x,r.y;var i=r.options||{};r.mutex,i.lang;var o=[];if(i.isInputVisual=typeof i.isInputVisual!="boolean"||i.isInputVisual,s.setOptions(i),Object.prototype.toString.call(a)==="[object Array]"){var l=0;for(o=[],l=0;l<a.length;l+=1)Object.prototype.toString.call(a[l])==="[object Array]"?o.push([s.doBidiReorder(a[l][0]),a[l][1],a[l][2]]):o.push([s.doBidiReorder(a[l])]);r.text=o}else r.text=s.doBidiReorder(a);s.setOptions({isInputVisual:!0})}])}(zt),zt.API.TTFFont=function(){function t(n){var s;if(this.rawData=n,s=this.contents=new rd(n),this.contents.pos=4,s.readString(4)==="ttcf")throw new Error("TTCF not supported.");s.pos=0,this.parse(),this.subset=new Woe(this),this.registerTTF()}return t.open=function(n){return new t(n)},t.prototype.parse=function(){return this.directory=new Poe(this.contents),this.head=new Loe(this),this.name=new Voe(this),this.cmap=new W8(this),this.toUnicode={},this.hhea=new Moe(this),this.maxp=new Boe(this),this.hmtx=new zoe(this),this.post=new Ooe(this),this.os2=new Roe(this),this.loca=new $oe(this),this.glyf=new Uoe(this),this.ascender=this.os2.exists&&this.os2.ascender||this.hhea.ascender,this.decender=this.os2.exists&&this.os2.decender||this.hhea.decender,this.lineGap=this.os2.exists&&this.os2.lineGap||this.hhea.lineGap,this.bbox=[this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax]},t.prototype.registerTTF=function(){var n,s,r,a,i;if(this.scaleFactor=1e3/this.head.unitsPerEm,this.bbox=(function(){var o,l,c,d;for(d=[],o=0,l=(c=this.bbox).length;o<l;o++)n=c[o],d.push(Math.round(n*this.scaleFactor));return d}).call(this),this.stemV=0,this.post.exists?(r=255&(a=this.post.italic_angle),32768&(s=a>>16)&&(s=-(1+(65535^s))),this.italicAngle=+(s+"."+r)):this.italicAngle=0,this.ascender=Math.round(this.ascender*this.scaleFactor),this.decender=Math.round(this.decender*this.scaleFactor),this.lineGap=Math.round(this.lineGap*this.scaleFactor),this.capHeight=this.os2.exists&&this.os2.capHeight||this.ascender,this.xHeight=this.os2.exists&&this.os2.xHeight||0,this.familyClass=(this.os2.exists&&this.os2.familyClass||0)>>8,this.isSerif=(i=this.familyClass)===1||i===2||i===3||i===4||i===5||i===7,this.isScript=this.familyClass===10,this.flags=0,this.post.isFixedPitch&&(this.flags|=1),this.isSerif&&(this.flags|=2),this.isScript&&(this.flags|=8),this.italicAngle!==0&&(this.flags|=64),this.flags|=32,!this.cmap.unicode)throw new Error("No unicode cmap for font")},t.prototype.characterToGlyph=function(n){var s;return((s=this.cmap.unicode)!=null?s.codeMap[n]:void 0)||0},t.prototype.widthOfGlyph=function(n){var s;return s=1e3/this.head.unitsPerEm,this.hmtx.forGlyph(n).advance*s},t.prototype.widthOfString=function(n,s,r){var a,i,o,l;for(o=0,i=0,l=(n=""+n).length;0<=l?i<l:i>l;i=0<=l?++i:--i)a=n.charCodeAt(i),o+=this.widthOfGlyph(this.characterToGlyph(a))+r*(1e3/s)||0;return o*(s/1e3)},t.prototype.lineHeight=function(n,s){var r;return s==null&&(s=!1),r=s?this.lineGap:0,(this.ascender+r-this.decender)/1e3*n},t}();var No,rd=function(){function t(n){this.data=n??[],this.pos=0,this.length=this.data.length}return t.prototype.readByte=function(){return this.data[this.pos++]},t.prototype.writeByte=function(n){return this.data[this.pos++]=n},t.prototype.readUInt32=function(){return 16777216*this.readByte()+(this.readByte()<<16)+(this.readByte()<<8)+this.readByte()},t.prototype.writeUInt32=function(n){return this.writeByte(n>>>24&255),this.writeByte(n>>16&255),this.writeByte(n>>8&255),this.writeByte(255&n)},t.prototype.readInt32=function(){var n;return(n=this.readUInt32())>=2147483648?n-4294967296:n},t.prototype.writeInt32=function(n){return n<0&&(n+=4294967296),this.writeUInt32(n)},t.prototype.readUInt16=function(){return this.readByte()<<8|this.readByte()},t.prototype.writeUInt16=function(n){return this.writeByte(n>>8&255),this.writeByte(255&n)},t.prototype.readInt16=function(){var n;return(n=this.readUInt16())>=32768?n-65536:n},t.prototype.writeInt16=function(n){return n<0&&(n+=65536),this.writeUInt16(n)},t.prototype.readString=function(n){var s,r;for(r=[],s=0;
vendor: 17,600 bytes, line 2815
28150<=n?s<n:s>n;s=0<=n?++s:--s)r[s]=String.fromCharCode(this.readByte());return r.join("")},t.prototype.writeString=function(n){var s,r,a;for(a=[],s=0,r=n.length;0<=r?s<r:s>r;s=0<=r?++s:--s)a.push(this.writeByte(n.charCodeAt(s)));return a},t.prototype.readShort=function(){return this.readInt16()},t.prototype.writeShort=function(n){return this.writeInt16(n)},t.prototype.readLongLong=function(){var n,s,r,a,i,o,l,c;return n=this.readByte(),s=this.readByte(),r=this.readByte(),a=this.readByte(),i=this.readByte(),o=this.readByte(),l=this.readByte(),c=this.readByte(),128&n?-1*(72057594037927940*(255^n)+281474976710656*(255^s)+1099511627776*(255^r)+4294967296*(255^a)+16777216*(255^i)+65536*(255^o)+256*(255^l)+(255^c)+1):72057594037927940*n+281474976710656*s+1099511627776*r+4294967296*a+16777216*i+65536*o+256*l+c},t.prototype.writeLongLong=function(n){var s,r;return s=Math.floor(n/4294967296),r=4294967295&n,this.writeByte(s>>24&255),this.writeByte(s>>16&255),this.writeByte(s>>8&255),this.writeByte(255&s),this.writeByte(r>>24&255),this.writeByte(r>>16&255),this.writeByte(r>>8&255),this.writeByte(255&r)},t.prototype.readInt=function(){return this.readInt32()},t.prototype.writeInt=function(n){return this.writeInt32(n)},t.prototype.read=function(n){var s,r;for(s=[],r=0;0<=n?r<n:r>n;r=0<=n?++r:--r)s.push(this.readByte());return s},t.prototype.write=function(n){var s,r,a,i;for(i=[],r=0,a=n.length;r<a;r++)s=n[r],i.push(this.writeByte(s));return i},t}(),Poe=function(){var t;function n(s){var r,a,i;for(this.scalarType=s.readInt(),this.tableCount=s.readShort(),this.searchRange=s.readShort(),this.entrySelector=s.readShort(),this.rangeShift=s.readShort(),this.tables={},a=0,i=this.tableCount;0<=i?a<i:a>i;a=0<=i?++a:--a)r={tag:s.readString(4),checksum:s.readInt(),offset:s.readInt(),length:s.readInt()},this.tables[r.tag]=r}return n.prototype.encode=function(s){var r,a,i,o,l,c,d,h,p,m,u,y,g;for(g in u=Object.keys(s).length,c=Math.log(2),p=16*Math.floor(Math.log(u)/c),o=Math.floor(p/c),h=16*u-p,(a=new rd).writeInt(this.scalarType),a.writeShort(u),a.writeShort(p),a.writeShort(o),a.writeShort(h),i=16*u,d=a.pos+i,l=null,y=[],s)for(m=s[g],a.writeString(g),a.writeInt(t(m)),a.writeInt(d),a.writeInt(m.length),y=y.concat(m),g==="head"&&(l=d),d+=m.length;d%4;)y.push(0),d++;return a.write(y),r=2981146554-t(a.data),a.pos=l+8,a.writeUInt32(r),a.data},t=function(s){var r,a,i,o;for(s=G8.call(s);s.length%4;)s.push(0);for(i=new rd(s),a=0,r=0,o=s.length;r<o;r=r+=4)a+=i.readUInt32();return 4294967295&a},n}(),Eoe={}.hasOwnProperty,ol=function(t,n){for(var s in n)Eoe.call(n,s)&&(t[s]=n[s]);function r(){this.constructor=t}return r.prototype=n.prototype,t.prototype=new r,t.__super__=n.prototype,t};No=function(){function t(n){var s;this.file=n,s=this.file.directory.tables[this.tag],this.exists=!!s,s&&(this.offset=s.offset,this.length=s.length,this.parse(this.file.contents))}return t.prototype.parse=function(){},t.prototype.encode=function(){},t.prototype.raw=function(){return this.exists?(this.file.contents.pos=this.offset,this.file.contents.read(this.length)):null},t}();var Loe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ol(t,No),t.prototype.tag="head",t.prototype.parse=function(n){return n.pos=this.offset,this.version=n.readInt(),this.revision=n.readInt(),this.checkSumAdjustment=n.readInt(),this.magicNumber=n.readInt(),this.flags=n.readShort(),this.unitsPerEm=n.readShort(),this.created=n.readLongLong(),this.modified=n.readLongLong(),this.xMin=n.readShort(),this.yMin=n.readShort(),this.xMax=n.readShort(),this.yMax=n.readShort(),this.macStyle=n.readShort(),this.lowestRecPPEM=n.readShort(),this.fontDirectionHint=n.readShort(),this.indexToLocFormat=n.readShort(),this.glyphDataFormat=n.readShort()},t.prototype.encode=function(n){var s;return(s=new rd).writeInt(this.version),s.writeInt(this.revision),s.writeInt(this.checkSumAdjustment),s.writeInt(this.magicNumber),s.writeShort(this.flags),s.writeShort(this.unitsPerEm),s.writeLongLong(this.created),s.writeLongLong(this.modified),s.writeShort(this.xMin),s.writeShort(this.yMin),s.writeShort(this.xMax),s.writeShort(this.yMax),s.writeShort(this.macStyle),s.writeShort(this.lowestRecPPEM),s.writeShort(this.fontDirectionHint),s.writeShort(n),s.writeShort(this.glyphDataFormat),s.data},t}(),m6=function(){function t(n,s){var r,a,i,o,l,c,d,h,p,m,u,y,g,w,b,j,N;switch(this.platformID=n.readUInt16(),this.encodingID=n.readShort(),this.offset=s+n.readInt(),p=n.pos,n.pos=this.offset,this.format=n.readUInt16(),this.length=n.readUInt16(),this.language=n.readUInt16(),this.isUnicode=this.platformID===3&&this.encodingID===1&&this.format===4||this.platformID===0&&this.format===4,this.codeMap={},this.format){case 0:for(c=0;c<256;++c)this.codeMap[c]=n.readByte();break;case 4:for(u=n.readUInt16(),m=u/2,n.pos+=6,i=function(){var A,E;for(E=[],c=A=0;0<=m?A<m:A>m;c=0<=m?++A:--A)E.push(n.readUInt16());return E}(),n.pos+=2,g=function(){var A,E;for(E=[],c=A=0;0<=m?A<m:A>m;c=0<=m?++A:--A)E.push(n.readUInt16());return E}(),d=function(){var A,E;for(E=[],c=A=0;0<=m?A<m:A>m;c=0<=m?++A:--A)E.push(n.readUInt16());return E}(),h=function(){var A,E;for(E=[],c=A=0;0<=m?A<m:A>m;c=0<=m?++A:--A)E.push(n.readUInt16());return E}(),a=(this.length-n.pos+this.offset)/2,l=function(){var A,E;for(E=[],c=A=0;0<=a?A<a:A>a;c=0<=a?++A:--A)E.push(n.readUInt16());return E}(),c=b=0,N=i.length;b<N;c=++b)for(w=i[c],r=j=y=g[c];y<=w?j<=w:j>=w;r=y<=w?++j:--j)h[c]===0?o=r+d[c]:(o=l[h[c]/2+(r-y)-(m-c)]||0)!==0&&(o+=d[c]),this.codeMap[r]=65535&o}n.pos=p}return t.encode=function(n,s){var r,a,i,o,l,c,d,h,p,m,u,y,g,w,b,j,N,A,E,C,F,O,L,W,_,P,K,q,ae,ce,de,H,X,V,he,T,I,G,re,ne,pe,je,ke,De,Pe,Ze;switch(q=new rd,o=Object.keys(n).sort(function(tt,Je){return tt-Je}),s){case"macroman":for(g=0,w=function(){var tt=[];for(y=0;y<256;++y)tt.push(0);return tt}(),j={0:0},i={},ae=0,X=o.length;ae<X;ae++)j[ke=n[a=o[ae]]]==null&&(j[ke]=++g),i[a]={old:n[a],new:j[n[a]]},w[a]=j[n[a]];return q.writeUInt16(1),q.writeUInt16(0),q.writeUInt32(12),q.writeUInt16(0),q.writeUInt16(262),q.writeUInt16(0),q.write(w),{charMap:i,subtable:q.data,maxGlyphID:g+1};case"unicode":for(P=[],p=[],N=0,j={},r={},b=d=null,ce=0,V=o.length;ce<V;ce++)j[E=n[a=o[ce]]]==null&&(j[E]=++N),r[a]={old:E,new:j[E]},l=j[E]-a,b!=null&&l===d||(b&&p.push(b),P.push(a),d=l),b=a;for(b&&p.push(b),p.push(65535),P.push(65535),W=2*(L=P.length),O=2*Math.pow(Math.log(L)/Math.LN2,2),m=Math.log(O/2)/Math.LN2,F=2*L-O,c=[],C=[],u=[],y=de=0,he=P.length;de<he;y=++de){if(_=P[y],h=p[y],_===65535){c.push(0),C.push(0);break}if(_-(K=r[_].new)>=32768)for(c.push(0),C.push(2*(u.length+L-y)),a=H=_;_<=h?H<=h:H>=h;a=_<=h?++H:--H)u.push(r[a].new);else c.push(K-_),C.push(0)}for(q.writeUInt16(3),q.writeUInt16(1),q.writeUInt32(12),q.writeUInt16(4),q.writeUInt16(16+8*L+2*u.length),q.writeUInt16(0),q.writeUInt16(W),q.writeUInt16(O),q.writeUInt16(m),q.writeUInt16(F),pe=0,T=p.length;pe<T;pe++)a=p[pe],q.writeUInt16(a);for(q.writeUInt16(0),je=0,I=P.length;je<I;je++)a=P[je],q.writeUInt16(a);for(De=0,G=c.length;De<G;De++)l=c[De],q.writeUInt16(l);for(Pe=0,re=C.length;Pe<re;Pe++)A=C[Pe],q.writeUInt16(A);for(Ze=0,ne=u.length;Ze<ne;Ze++)g=u[Ze],q.writeUInt16(g);return{charMap:r,subtable:q.data,maxGlyphID:N+1}}},t}(),W8=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ol(t,No),t.prototype.tag="cmap",t.prototype.parse=function(n){var s,r,a;for(n.pos=this.offset,this.version=n.readUInt16(),a=n.readUInt16(),this.tables=[],this.unicode=null,r=0;0<=a?r<a:r>a;r=0<=a?++r:--r)s=new m6(n,this.offset),this.tables.push(s),s.isUnicode&&this.unicode==null&&(this.unicode=s);return!0},t.encode=function(n,s){var r,a;return s==null&&(s="macroman"),r=m6.encode(n,s),(a=new rd).writeUInt16(0),a.writeUInt16(1),r.table=a.data.concat(r.subtable),r},t}(),Moe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ol(t,No),t.prototype.tag="hhea",t.prototype.parse=function(n){return n.pos=this.offset,this.version=n.readInt(),this.ascender=n.readShort(),this.decender=n.readShort(),this.lineGap=n.readShort(),this.advanceWidthMax=n.readShort(),this.minLeftSideBearing=n.readShort(),this.minRightSideBearing=n.readShort(),this.xMaxExtent=n.readShort(),this.caretSlopeRise=n.readShort(),this.caretSlopeRun=n.readShort(),this.caretOffset=n.readShort(),n.pos+=8,this.metricDataFormat=n.readShort(),this.numberOfMetrics=n.readUInt16()},t}(),Roe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ol(t,No),t.prototype.tag="OS/2",t.prototype.parse=function(n){if(n.pos=this.offset,this.version=n.readUInt16(),this.averageCharWidth=n.readShort(),this.weightClass=n.readUInt16(),this.widthClass=n.readUInt16(),this.type=n.readShort(),this.ySubscriptXSize=n.readShort(),this.ySubscriptYSize=n.readShort(),this.ySubscriptXOffset=n.readShort(),this.ySubscriptYOffset=n.readShort(),this.ySuperscriptXSize=n.readShort(),this.ySuperscriptYSize=n.readShort(),this.ySuperscriptXOffset=n.readShort(),this.ySuperscriptYOffset=n.readShort(),this.yStrikeoutSize=n.readShort(),this.yStrikeoutPosition=n.readShort(),this.familyClass=n.readShort(),this.panose=function(){var s,r;for(r=[],s=0;s<10;++s)r.push(n.readByte());return r}(),this.charRange=function(){var s,r;for(r=[],s=0;s<4;++s)r.push(n.readInt());return r}(),this.vendorID=n.readString(4),this.selection=n.readShort(),this.firstCharIndex=n.readShort(),this.lastCharIndex=n.readShort(),this.version>0&&(this.ascent=n.readShort(),this.descent=n.readShort(),this.lineGap=n.readShort(),this.winAscent=n.readShort(),this.winDescent=n.readShort(),this.codePageRange=function(){var s,r;for(r=[],s=0;s<2;s=++s)r.push(n.readInt());return r}(),this.version>1))return this.xHeight=n.readShort(),this.capHeight=n.readShort(),this.defaultChar=n.readShort(),this.breakChar=n.readShort(),this.maxContext=n.readShort()},t}(),Ooe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ol(t,No),t.prototype.tag="post",t.prototype.parse=function(n){var s,r,a;switch(n.pos=this.offset,this.format=n.readInt(),this.italicAngle=n.readInt(),this.underlinePosition=n.readShort(),this.underlineThickness=n.readShort(),this.isFixedPitch=n.readInt(),this.minMemType42=n.readInt(),this.maxMemType42=n.readInt(),this.minMemType1=n.readInt(),this.maxMemType1=n.readInt(),this.format){case 65536:case 196608:break;case 131072:var i;for(r=n.readUInt16(),this.glyphNameIndex=[],i=0;0<=r?i<r:i>r;i=0<=r?++i:--i)this.glyphNameIndex.push(n.readUInt16());for(this.names=[],a=[];n.pos<this.offset+this.length;)s=n.readByte(),a.push(this.names.push(n.readString(s)));return a;case 151552:return r=n.readUInt16(),this.offsets=n.read(r);case 262144:return this.map=(function(){var o,l,c;for(c=[],i=o=0,l=this.file.maxp.numGlyphs;0<=l?o<l:o>l;i=0<=l?++o:--o)c.push(n.readUInt32());return c}).call(this)}},t}(),Foe=function(t,n){this.raw=t,this.length=t.length,this.platformID=n.platformID,this.encodingID=n.encodingID,this.languageID=n.languageID},Voe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ol(t,No),t.prototype.tag="name",t.prototype.parse=function(n){var s,r,a,i,o,l,c,d,h,p,m;for(n.pos=this.offset,n.readShort(),s=n.readShort(),l=n.readShort(),r=[],i=0;0<=s?i<s:i>s;i=0<=s?++i:--i)r.push({platformID:n.readShort(),encodingID:n.readShort(),languageID:n.readShort(),nameID:n.readShort(),length:n.readShort(),offset:this.offset+l+n.readShort()});for(c={},i=h=0,p=r.length;h<p;i=++h)a=r[i],n.pos=a.offset,d=n.readString(a.length),o=new Foe(d,a),c[m=a.nameID]==null&&(c[m]=[]),c[a.nameID].push(o);this.strings=c,this.copyright=c[0],this.fontFamily=c[1],this.fontSubfamily=c[2],this.uniqueSubfamily=c[3],this.fontName=c[4],this.version=c[5];try{this.postscriptName=c[6][0].raw.replace(/[\x00-\x19\x80-\xff]/g,"")}catch{this.postscriptName=c[4][0].raw.replace(/[\x00-\x19\x80-\xff]/g,"")}return this.trademark=c[7],this.manufacturer=c[8],this.designer=c[9],this.description=c[10],this.vendorUrl=c[11],this.designerUrl=c[12],this.license=c[13],this.licenseUrl=c[14],this.preferredFamily=c[15],this.preferredSubfamily=c[17],this.compatibleFull=c[18],this.sampleText=c[19]},t}(),Boe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ol(t,No),t.prototype.tag="maxp",t.prototype.parse=function(n){return n.pos=this.offset,this.version=n.readInt(),this.numGlyphs=n.readUInt16(),this.maxPoints=n.readUInt16(),this.maxContours=n.readUInt16(),this.maxCompositePoints=n.readUInt16(),this.maxComponentContours=n.readUInt16(),this.maxZones=n.readUInt16(),this.maxTwilightPoints=n.readUInt16(),this.maxStorage=n.readUInt16(),this.maxFunctionDefs=n.readUInt16(),this.maxInstructionDefs=n.readUInt16(),this.maxStackElements=n.readUInt16(),this.maxSizeOfInstructions=n.readUInt16(),this.maxComponentElements=n.readUInt16(),this.maxComponentDepth=n.readUInt16()},t}(),zoe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ol(t,No),t.prototype.tag="hmtx",t.prototype.parse=function(n){var s,r,a,i,o,l,c;for(n.pos=this.offset,this.metrics=[],s=0,l=this.file.hhea.numberOfMetrics;0<=l?s<l:s>l;s=0<=l?++s:--s)this.metrics.push({advance:n.readUInt16(),lsb:n.readInt16()});for(a=this.file.maxp.numGlyphs-this.file.hhea.numberOfMetrics,this.leftSideBearings=function(){var d,h;for(h=[],s=d=0;0<=a?d<a:d>a;s=0<=a?++d:--d)h.push(n.readInt16());return h}(),this.widths=(function(){var d,h,p,m;for(m=[],d=0,h=(p=this.metrics).length;d<h;d++)i=p[d],m.push(i.advance);return m}).call(this),r=this.widths[this.widths.length-1],c=[],s=o=0;0<=a?o<a:o>a;s=0<=a?++o:--o)c.push(this.widths.push(r));return c},t.prototype.forGlyph=function(n){return n in this.metrics?this.metrics[n]:{advance:this.metrics[this.metrics.length-1].advance,lsb:this.leftSideBearings[n-this.metrics.length]}},t}(),G8=[].slice,Uoe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ol(t,No),t.prototype.tag="glyf",t.prototype.parse=function(){return this.cache={}},t.prototype.glyphFor=function(n){var s,r,a,i,o,l,c,d,h,p;return n in this.cache?this.cache[n]:(i=this.file.loca,s=this.file.contents,r=i.indexOf(n),(a=i.lengthOf(n))===0?this.cache[n]=null:(s.pos=this.offset+r,o=(l=new rd(s.read(a))).readShort(),d=l.readShort(),p=l.readShort(),c=l.readShort(),h=l.readShort(),this.cache[n]=o===-1?new Hoe(l,d,p,c,h):new qoe(l,o,d,p,c,h),this.cache[n]))},t.prototype.encode=function(n,s,r){var a,i,o,l,c;for(o=[],i=[],l=0,c=s.length;l<c;l++)a=n[s[l]],i.push(o.length),a&&(o=o.concat(a.encode(r)));return i.push(o.length),{table:o,offsets:i}},t}(),qoe=function(){function t(n,s,r,a,i,o){this.raw=n,this.numberOfContours=s,this.xMin=r,this.yMin=a,this.xMax=i,this.yMax=o,this.compound=!1}return t.prototype.encode=function(){return this.raw.data},t}(),Hoe=function(){function t(n,s,r,a,i){var o,l;for(this.raw=n,this.xMin=s,this.yMin=r,this.xMax=a,this.yMax=i,this.compound=!0,this.glyphIDs=[],this.glyphOffsets=[],o=this.raw;l=o.readShort(),this.glyphOffsets.push(o.pos),this.glyphIDs.push(o.readUInt16()),32&l;)o.pos+=1&l?4:2,128&l?o.pos+=8:64&l?o.pos+=4:8&l&&(o.pos+=2)}return t.prototype.encode=function(){var n,s,r;for(s=new rd(G8.call(this.raw.data)),n=0,r=this.glyphIDs.length;n<r;++n)s.pos=this.glyphOffsets[n];return s.data},t}(),$oe=function(){function t(){return t.__super__.constructor.apply(this,arguments)}return ol(t,No),t.prototype.tag="loca",t.prototype.parse=function(n){var s,r;return n.pos=this.offset,s=this.file.head.indexToLocFormat,this.offsets=s===0?(function(){var a,i;for(i=[],r=0,a=this.length;r<a;r+=2)i.push(2*n.readUInt16());return i}).call(this):(function(){var a,i;for(i=[],r=0,a=this.length;r<a;r+=4)i.push(n.readUInt32());return i}).call(this)},t.prototype.indexOf=function(n){return this.offsets[n]},t.prototype.lengthOf=function(n){return this.offsets[n+1]-this.offsets[n]},t.prototype.encode=function(n,s){for(var r=new Uint32Array(this.offsets.length),a=0,i=0,o=0;o<r.length;++o)if(r[o]=a,i<s.length&&s[i]==o){++i,r[o]=a;var l=this.offsets[o],c=this.offsets[o+1]-l;c>0&&(a+=c)}for(var d=new Array(4*r.length),h=0;h<r.length;++h)d[4*h+3]=255&r[h],d[4*h+2]=(65280&r[h])>>8,d[4*h+1]=(16711680&r[h])>>16,d[4*h]=(4278190080&r[h])>>24;return d},t}(),Woe=function(){function t(n){this.font=n,this.subset={},this.unicodes={},this.next=33}return t.prototype.generateCmap=function(){var n,s,r,a,i;for(s in a=this.font.cmap.tables[0].codeMap,n={},i=this.subset)r=i[s],n[s]=a[r];return n},t.prototype.glyphsFor=function(n){var s,r,a,i,o,l,c;for(a={},o=0,l=n.length;o<l;o++)a[i=n[o]]=this.font.glyf.glyphFor(i);for(i in s=[],a)(r=a[i])!=null&&r.compound&&s.push.apply(s,r.glyphIDs);if(s.length>0)for(i in c=this.glyphsFor(s))r=c[i],a[i]=r;return a},t.prototype.encode=function(n,s){var r,a,i,o,l,c,d,h,p,m,u,y,g,w,b;for(a in r=W8.encode(this.generateCmap(),"unicode"),o=this.glyphsFor(n),u={0:0},b=r.charMap)u[(c=b[a]).old]=c.new;for(y in m=r.maxGlyphID,o)y in u||(u[y]=m++);return h=function(j){var N,A;for(N in A={},j)A[j[N]]=N;return A}(u),p=Object.keys(h).sort(function(j,N){return j-N}),g=function(){var j,N,A;for(A=[],j=0,N=p.length;j<N;j++)l=p[j],A.push(h[l]);return A}(),i=this.font.glyf.encode(o,g,u),d=this.font.loca.encode(i.offsets,g),w={cmap:this.font.cmap.raw(),glyf:i.table,loca:d,hmtx:this.font.hmtx.raw(),hhea:this.font.hhea.raw(),maxp:this.font.maxp.raw(),post:this.font.post.raw(),name:this.font.name.raw(),head:this.font.head.encode(s)},this.font.os2.exists&&(w["OS/2"]=this.font.os2.raw()),this.font.directory.encode(w)},t}();zt.API.PDFObject=function(){var t;function n(){}return t=function(s,r){return(Array(r+1).join("0")+s).slice(-r)},n.convert=function(s){var r,a,i,o;
2815if(Array.isArray(s))return"["+function(){var l,c,d;for(d=[],l=0,c=s.length;l<c;l++)r=s[l],d.push(n.convert(r));return d}().join(" ")+"]";if(typeof s=="string")return"/"+s;if(s!=null&&s.isString)return"("+s+")";if(s instanceof Date)return"(D:"+t(s.getUTCFullYear(),4)+t(s.getUTCMonth(),2)+t(s.getUTCDate(),2)+t(s.getUTCHours(),2)+t(s.getUTCMinutes(),2)+t(s.getUTCSeconds(),2)+"Z)";if({}.toString.call(s)==="[object Object]"){for(a in i=["<<"],s)o=s[a],i.push("/"+a+" "+n.convert(o));return i.push(">>"),i.join(` 2816`)}return""+s},n}();const K8=S.forwardRef(({className:t,...n},s)=>e.jsx("textarea",{className:Ht("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),ref:s,...n}));K8.displayName="Textarea";const Goe="https://fnlfrdinxtwkhzbmyawv.supabase.co/functions/v1/openrouter-chat",Koe="https://fnlfrdinxtwkhzbmyawv.supabase.co/functions/v1/followup-suggestions",Qoe=({content:t,index:n,userMessage:s})=>{const[r,a]=S.useState(!1),[i,o]=S.useState(null),[l,c]=S.useState(!1),d=async m=>{if(l)return;const u=i===m?null:m;if(o(u),!!u){c(!0);try{const{error:y}=await Ol.from("chat_feedback").insert({rating:u,assistant_message:t,user_message:s??null,user_agent:typeof navigator<"u"?navigator.userAgent:null});if(y)throw y;Pd({title:u==="up"?"Thanks for the feedback!":"Thanks â we'll do better",description:u==="up"?"Glad this response was helpful.":"Your feedback helps us improve future answers."})}catch(y){console.error("feedback insert error:",y),o(null),Pd({title:"Couldn't save feedback",description:"Please try again.",variant:"destructive"})}finally{c(!1)}}},h=async()=>{try{await navigator.clipboard.writeText(t),a(!0),Pd({title:"Copied to clipboard"}),setTimeout(()=>a(!1),1500)}catch{Pd({title:"Copy failed",variant:"destructive"})}},p=()=>{try{const m=new zt({unit:"pt",format:"a4"}),u=m.internal.pageSize.getWidth(),y=m.internal.pageSize.getHeight(),g=48,w=u-g*2;m.setFont("helvetica","bold"),m.setFontSize(14),m.setTextColor(0,102,255),m.text("DeepSeek AI Response",g,g),m.setFont("helvetica","normal"),m.setFontSize(9),m.setTextColor(120,120,120),m.text(`Generated ${new Date().toLocaleString()} via deepseek.ai (DeepSeek V3.1, free community route)`,g,g+16),m.setFontSize(11),m.setTextColor(20,20,20);const b=m.splitTextToSize(t,w);let j=g+44;const N=15;for(const A of b)j>y-g&&(m.addPage(),j=g),m.text(A,g,j),j+=N;m.setFontSize(8),m.setTextColor(150,150,150),m.text("Independent fan site â not affiliated with DeepSeek.com",g,y-24),m.save(`deepseek-response-${n+1}.pdf`),Pd({title:"PDF downloaded"})}catch(m){console.error(m),Pd({title:"PDF export failed",variant:"destructive"})}};return e.jsxs("div",{className:"flex gap-1 mt-1.5 ml-1",children:[e.jsxs("button",{onClick:h,className:"inline-flex items-center gap-1 text-xs text-slate-500 hover:text-[#0066FF] px-2 py-1 rounded-md hover:bg-slate-100 transition-colors","aria-label":"Copy response",children:[r?e.jsx(Jt,{className:"h-3 w-3"}):e.jsx(hz,{className:"h-3 w-3"}),r?"Copied":"Copy"]}),e.jsxs("button",{onClick:p,className:"inline-flex items-center gap-1 text-xs text-slate-500 hover:text-[#0066FF] px-2 py-1 rounded-md hover:bg-slate-100 transition-colors","aria-label":"Download as PDF",children:[e.jsx(pz,{className:"h-3 w-3"}),"PDF"]}),e.jsx("div",{className:"mx-1 w-px bg-slate-200","aria-hidden":"true"}),e.jsx("button",{onClick:()=>d("up"),className:Ht("inline-flex items-center gap-1 text-xs px-2 py-1 rounded-md transition-colors",i==="up"?"text-[#0066FF] bg-[#0066FF]/10":"text-slate-500 hover:text-[#0066FF] hover:bg-slate-100"),"aria-label":"Good response","aria-pressed":i==="up",children:e.jsx(m2,{className:"h-3 w-3"})}),e.jsx("button",{onClick:()=>d("down"),className:Ht("inline-flex items-center gap-1 text-xs px-2 py-1 rounded-md transition-colors",i==="down"?"text-red-600 bg-red-50":"text-slate-500 hover:text-red-600 hover:bg-slate-100"),"aria-label":"Bad response","aria-pressed":i==="down",children:e.jsx(p2,{className:"h-3 w-3"})})]})},Yoe=({reasoning:t,streaming:n})=>{const[s,r]=S.useState(!0);return e.jsxs("div",{className:"mb-2 rounded-xl border border-slate-200 bg-slate-50/70 overflow-hidden",children:[e.jsxs("button",{type:"button",onClick:()=>r(a=>!a),className:"w-full flex items-center gap-2 px-3 py-2 text-xs font-medium text-slate-600 hover:bg-slate-100 transition-colors",children:[e.jsx(_s,{className:"h-3.5 w-3.5 text-[#0066FF]"}),e.jsx("span",{children:n?"Thinkingâ¦":"Thought process"}),e.jsx(Xm,{className:Ht("h-3.5 w-3.5 ml-auto transition-transform",s?"rotate-180":"")})]}),s&&e.jsx("div",{className:"px-3 pb-3 pt-1 text-xs text-slate-600 whitespace-pre-wrap leading-relaxed max-h-64 overflow-y-auto font-mono",children:t})]})},Joe=({variant:t="full",placeholder:n="Message DeepSeek V3.1â¦",suggestions:s=[],emptyHeadline:r="How can I help you today?",emptySubline:a="Ask anything â code, math, writing, analysis.",className:i,heightClass:o})=>{var E,C;const[l,c]=S.useState([]),[d,h]=S.useState(""),[p,m]=S.useState(!1),[u,y]=S.useState([]),[g,w]=S.useState(!1),b=S.useRef(null);S.useEffect(()=>{var F;(F=b.current)==null||F.scrollTo({top:b.current.scrollHeight,behavior:"smooth"})},[l,u]);const j=async F=>{var de,H;if(!F.trim()||p)return;l.filter(X=>X.role==="user").length===0&&$i(async()=>{const{trackEvent:X}=await Promise.resolve().then(()=>oY);return{trackEvent:X}},void 0).then(({trackEvent:X})=>X("chat_started",{prompt_length:F.trim().length}));const O={role:"user",content:F.trim()},L=[...l,O];c(L),h(""),m(!0),y([]),w(!1);const W="In the meantime, use the [**official DeepSeek chat**](https://chat.deepseek.com) (V4-Pro and V4-Flash, free account), or our [**free Chrome sidebar**](https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop).",_=`â ï¸ **The free community route is full right now.** 2817 2818This demo runs on free routes with a daily cap, and it has been hit. Try again in a minute or later today. 2819 2820`+W,P=`â ï¸ **Our free demo chat is temporarily unavailable.** 2821 2822The free community route did not respond. Please try again shortly. 2823 2824`+W,K=()=>{c(X=>[...X,{role:"assistant",content:P}])};let q="",ae="";
2824const ce=(X,V="content")=>{V==="reasoning"?ae+=X:q+=X,c(he=>{const T=he[he.length-1],I={role:"assistant",content:q,reasoning:ae||void 0};return(T==null?void 0:T.role)==="assistant"?he.map((G,re)=>re===he.length-1?I:G):[...he,I]})};try{const X=await fetch(Goe,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImZubGZyZGlueHR3a2h6Ym15YXd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3Mzc3OTE1MDgsImV4cCI6MjA1MzM2NzUwOH0.tm49bNkTr2x0Q9esdnfcv2y-gpylp18b2w2GC0oEm7w"},body:JSON.stringify({messages:L})});if(!X.ok){let G=X.status===429?_:P;try{const re=await X.json();X.status===429&&typeof(re==null?void 0:re.error)=="string"&&(G=`â ï¸ **The free community route is full right now.** 2825 2826${re.error} 2827 2828${W}`)}catch{}c(re=>[...re,{role:"assistant",content:G}]),m(!1);return}if(!X.body)throw new Error("No response body");const V=X.body.getReader(),he=new TextDecoder;let T="",I=!1;for(;!I;){const{done:G,value:re}=await V.read();if(G)break;T+=he.decode(re,{stream:!0});let ne;for(;(ne=T.indexOf(` 2829`))!==-1;){let pe=T.slice(0,ne);if(T=T.slice(ne+1),pe.endsWith("\r")&&(pe=pe.slice(0,-1)),!pe||pe.startsWith(":")||!pe.startsWith("data: "))continue;const je=pe.slice(6).trim();if(je==="[DONE]"){I=!0;break}try{const De=(H=(de=JSON.parse(je).choices)==null?void 0:de[0])==null?void 0:H.delta,Pe=(De==null?void 0:De.reasoning)??(De==null?void 0:De.reasoning_content);Pe&&ce(Pe,"reasoning"),De!=null&&De.content&&ce(De.content,"content")}catch{T=pe+` 2830`+T;break}}}}catch(X){console.error(X),K()}finally{if(m(!1),q.trim().length>0){w(!0);try{const X=await fetch(Koe,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImZubGZyZGlueHR3a2h6Ym15YXd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3Mzc3OTE1MDgsImV4cCI6MjA1MzM2NzUwOH0.tm49bNkTr2x0Q9esdnfcv2y-gpylp18b2w2GC0oEm7w"},body:JSON.stringify({messages:[...L,{role:"assistant",content:q}]})});if(X.ok){const V=await X.json();Array.isArray(V==null?void 0:V.suggestions)&&y(V.suggestions)}}catch(X){console.error("followup fetch error:",X)}finally{w(!1)}}}},N=F=>{F.preventDefault(),j(d)},A=t==="compact"?"h-[420px]":"h-[70vh]";return e.jsxs("div",{className:Ht("bg-white border border-slate-200 rounded-2xl shadow-sm flex flex-col",o??A,i),children:[e.jsxs("div",{ref:b,className:"flex-1 overflow-y-auto p-4 md:p-6 space-y-4",children:[l.length===0&&e.jsxs("div",{className:"h-full flex flex-col items-center justify-center text-center",children:[e.jsx("div",{className:"w-12 h-12 rounded-2xl bg-[#0066FF] flex items-center justify-center mb-3",children:e.jsx(Os,{className:"h-6 w-6 text-white"})}),e.jsx("h2",{className:"text-base md:text-lg font-semibold text-slate-900",children:r}),e.jsx("p",{className:"text-sm text-slate-500 mt-1",children:a}),s.length>0&&e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2 mt-5 w-full max-w-xl",children:s.map(F=>e.jsx("button",{onClick:()=>j(F),className:"text-left text-sm px-4 py-3 border border-slate-200 rounded-xl hover:border-[#0066FF] hover:bg-[#0066FF]/5 transition-colors text-slate-700",children:F},F))})]}),l.map((F,O)=>{var L;return e.jsxs("div",{className:Ht("flex gap-3",F.role==="user"?"justify-end":"justify-start"),children:[F.role==="assistant"&&e.jsx("div",{className:"w-8 h-8 rounded-full bg-[#0066FF] flex items-center justify-center flex-shrink-0",children:e.jsx(Os,{className:"h-4 w-4 text-white"})}),e.jsxs("div",{className:"flex flex-col max-w-[80%]",children:[F.role==="assistant"&&F.reasoning&&e.jsx(Yoe,{reasoning:F.reasoning,streaming:p&&O===l.length-1&&!F.content}),e.jsx("div",{className:Ht("rounded-2xl px-4 py-3 text-sm",F.role==="user"?"bg-[#0066FF] text-white":"bg-slate-100 text-slate-900",F.role==="assistant"&&!F.content&&"hidden"),children:F.role==="assistant"?e.jsx("div",{className:"prose prose-sm max-w-none prose-pre:bg-slate-900 prose-pre:text-slate-100 prose-code:text-[#0066FF] prose-code:bg-blue-50 prose-code:px-1 prose-code:py-0.5 prose-code:rounded prose-code:before:content-none prose-code:after:content-none prose-pre:code:!text-slate-100 prose-pre:code:!bg-transparent prose-pre:code:!p-0",children:e.jsx(Vse,{children:F.content||"â¦"})}):e.jsx("p",{className:"whitespace-pre-wrap",children:F.content})}),F.role==="assistant"&&F.content&&!(p&&O===l.length-1)&&e.jsx(Qoe,{content:F.content,index:O,userMessage:((L=l[O-1])==null?void 0:L.role)==="user"?l[O-1].content:void 0})]}),F.role==="user"&&e.jsx("div",{className:"w-8 h-8 rounded-full bg-slate-200 flex items-center justify-center flex-shrink-0",children:e.jsx(ig,{className:"h-4 w-4 text-slate-700"})})]},O)}),p&&((E=l[l.length-1])==null?void 0:E.role)==="user"&&e.jsxs("div",{className:"flex gap-3 justify-start",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-[#0066FF] flex items-center justify-center",children:e.jsx(Os,{className:"h-4 w-4 text-white"})}),e.jsx("div",{className:"bg-slate-100 rounded-2xl px-4 py-3",children:e.jsx(Zm,{className:"h-4 w-4 animate-spin text-slate-500"})})]}),!p&&u.length>0&&((C=l[l.length-1])==null?void 0:C.role)==="assistant"&&e.jsxs("div",{className:"pl-11 pt-1",children:[e.jsx("p",{className:"text-xs text-slate-400 mb-2",children:"Suggested follow-ups"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:u.map(F=>e.jsx("button",{onClick:()=>j(F),className:"text-left text-xs px-3 py-1.5 border border-slate-200 rounded-full hover:border-[#0066FF] hover:bg-[#0066FF]/5 hover:text-[#0066FF] transition-colors text-slate-700",children:F},F))})]}),g&&!p&&e.jsxs("div",{className:"pl-11 pt-1 flex items-center gap-2 text-xs text-slate-400",children:[e.jsx(Zm,{className:"h-3 w-3 animate-spin"}),"Generating follow-up questionsâ¦"]})]}),e.jsxs("form",{onSubmit:N,className:"border-t border-slate-200 p-3 md:p-4",children:[e.jsxs("div",{className:"flex gap-2 items-end",children:[e.jsx(K8,{value:d,onChange:F=>h(F.target.value),placeholder:n,className:"min-h-[52px] max-h-40 resize-none rounded-xl",onKeyDown:F=>{F.key==="Enter"&&!F.shiftKey&&(F.preventDefault(),N(F))},disabled:p}),e.jsx(Ke,{type:"submit","aria-label":"Send message",disabled:p||!d.trim(),className:"h-[52px] px-4 roun
2830ded-xl bg-[#0066FF] hover:bg-[#0066FF]/90",children:p?e.jsx(Zm,{className:"h-4 w-4 animate-spin"}):e.jsx(Az,{className:"h-4 w-4"})})]}),e.jsx("p",{className:"text-xs text-slate-400 mt-2 text-center",children:"Independent fan site â not affiliated with DeepSeek.com. This demo answers with DeepSeek V3.1 on free community routes (with R1 as fallback when a route is busy). For V4-Flash and V4-Pro, use the official chat at chat.deepseek.com."})]})]})},Xoe=["Explain DeepSeek V4 Flash in simple terms","Write a Python function for binary search","Compare DeepSeek V4 vs GPT-5","How many r's are in 'strawberry'?"],Zoe=()=>e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek Chat: Free Demo Chatbox + Official Login (2026)"}),e.jsx("meta",{name:"description",content:"Try a free DeepSeek chatbox here â no signup, runs DeepSeek V3.1 on free community routes. For V4-Pro and V4-Flash, use the official chat.deepseek.com login."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/chat"}),e.jsx("meta",{property:"og:title",content:"DeepSeek Chat: Free Demo Chatbox + Official Login"}),e.jsx("meta",{property:"og:description",content:"A free DeepSeek demo chatbox running V3.1 on community routes, plus the official login for V4-Pro and V4-Flash."}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek Chat: Free Demo Chatbox + Official Login"}),e.jsx("meta",{name:"twitter:description",content:"A free DeepSeek demo chatbox running V3.1 on community routes, plus the official login for V4-Pro and V4-Flash."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"})]}),e.jsx("main",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white pt-24 pb-8 px-4",children:e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsxs("header",{className:"text-center mb-6",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1 rounded-full bg-[#0066FF]/10 text-[#0066FF] text-sm font-medium mb-3",children:[e.jsx(Zc,{className:"h-4 w-4"}),"Free demo · DeepSeek V3.1 via community routes"]}),e.jsx("h1",{className:"text-3xl md:text-4xl font-bold tracking-tight text-slate-900",children:"DeepSeek Chat â free demo, no signup"}),e.jsxs("p",{className:"mt-2 text-slate-600 max-w-2xl mx-auto",children:["Type in the box below to try DeepSeek without an account. This independent demo runs"," ",e.jsx("strong",{children:"DeepSeek V3.1"})," on free community routes (falling back to R1 when a route is busy), so answers and speed can vary. It does ",e.jsx("strong",{children:"not"})," run V4-Flash or V4-Pro. For the current ",e.jsx("strong",{children:"V4-Pro"})," and ",e.jsx("strong",{children:"V4-Flash"})," models, use the"," ",e.jsx("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"text-[#0066FF] underline",children:"official DeepSeek chat"})," ","(see our ",e.jsx(se,{to:"/login",className:"text-[#0066FF] underline",children:"login guide"}),")."]}),e.jsx("div",{className:"mt-4 flex justify-center",children:e.jsx(il,{date:"2026-09-09"})})]}),e.jsx(Joe,{variant:"full",suggestions:Xoe,placeholder:"Ask DeepSeek anythingâ¦"})]})})]}),ele=()=>{const t={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"How do I log in to DeepSeek?",acceptedAnswer:{"@type":"Answer",text:"Visit chat.deepseek.com and click 'Sign In'. You can log in with your email address or Google account. Registration is free and takes less than a minute."}},{"@type":"Question",name:"Is DeepSeek login free?",acceptedAnswer:{"@type":"Answer",text:"Yes, DeepSeek is completely free to use. There are no subscription fees or message limits. Create a free account and start chatting immediately."}},{"@type":"Question",name:"Can I use DeepSeek without creating an account?",acceptedAnswer:{"@type":"Answer",text:"You need an account to use DeepSeek Chat. This allows you to save your chat history and access all features. Registration is quick and free."}}]},n={"@context":"https://schema.org","@type":"WebPage",name:"DeepSeek Login Guide â Independent Sign-In Walkthrough",description:"Independent guide explaining how to sign in on DeepSeek's official site chat.deepseek.com with email, Google or Apple, plus account recovery.",url:"https://deepseek.ai/login"},s={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://deepseek.ai"},{"@type":"ListItem",position:2,name:"Login",item:"https://deepseek.ai/login"}]};return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsxs(ut,{children:[e.jsx("title",{children:"DeepSeek Login Guide 2026 â Official Sign-In Steps"}),e.jsx("meta",{name:"description",content:"Independent guide to signing in at the official chat.deepseek.com: email, Google or Apple, account recovery and API keys. We link to DeepSeek â we do not host the login."}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/login"}),e.jsx("meta",{property:"og:title",content:"DeepSeek Login Guide 2026 â Official Sign-In Steps"}),e.jsx("meta",{property:"og:description",content:"Independent walkthrough of the official DeepSeek sign-in: email, Google or Apple, account recovery and API keys. The login itself happens on chat.deepseek.com."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/login"}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2830),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek Login Guide 2026 â Official Sign-In Steps"}),e.jsx("meta",{name:"twitter:description",content:"Independent walkthrough of the official DeepSeek sign-in, account recovery and API keys. The login itself happens on chat.deepseek.com."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(t)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsxs("main",{className:"container mx-auto px-4 py-8",children:[e.jsx(ur,{currentPage:"Login"}),e.jsxs("section",{className:"text-center mb-16",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-6",children:e.jsx("span",{className:"bg-gradient-to-r from-primary to-primary/70 bg-clip-text text-transparent",children:"DeepSeek Login Guide"})}),e.jsxs("p",{className:"text-xl text-muted-foreground max-w-3xl mx-auto mb-4",children:["This is an independent guide, not a login screen. Signing in always happens on DeepSeek's own site,",e.jsx("a",{href:"https://chat.deepseek.com/sign_in",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:" chat.deepseek.com"})," â free, with email, Google or Apple. Below: the exact steps, account recovery, and what to do when sign-in fails."]}),e.jsxs("div",{className:"flex flex-wrap gap-4 justify-center mt-8",children:[e.jsx(Ke,{size:"lg",className:"gap-2",asChild:!0,children:e.jsxs("a",{href:"https://chat.deepseek.com/sign_in",target:"_blank",rel:"noopener noreferrer",children:[e.jsx(Pn,{className:"w-5 h-5"}),"Open official sign-in on chat.deepseek.com"]})}),e.jsx(Ke,{size:"lg",variant:"outline",className:"gap-2",asChild:!0,children:e.jsx("a",{href:"https://chat.deepseek.com/sign_up",target:"_blank",rel:"noopener noreferrer",children:"Create Free Account"})})]})]}),e.jsx("section",{className:"mb-16 max-w-4xl mx-auto",children:e.jsxs(ie,{className:"border-primary/30 bg-primary/5",children:[e.jsxs(Ot,{children:[e.jsx(fh,{className:"w-10 h-10 text-primary mb-2"}),e.jsx(Ft,{children:"Looking for DeepSeek Chat, not the login screen?"}),e.jsx(bs,{children:"Signing in is only the first step. Most people searching for DeepSeek chat want to know what the chat can actually do, which model answers, and whether they can try it without an account."})]}),e.jsx(me,{children:e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsxs("li",{children:[e.jsx(se,{to:"/chat",className:"text-primary hover:underline font-medium",children:"Try the free demo chat on this site"})," ","â no account needed, runs on a community route with limited capacity."]}),e.jsxs("li",{children:[e.jsx(se,{to:"/blog/ai-chat",className:"text-primary hover:underline font-medium",children:"What DeepSeek Chat can do"})," ","â features, limits and how it compares to the paid API."]}),e.jsxs("li",{children:[e.jsx(se,{to:"/deepseek-v4",className:"text-primary hover:underline font-medium",children:"Which model you get"})," ","â the V4 line is the current generation behind DeepSeek chat."]}),e.jsxs("li",{children:[e.jsx(se,{to:"/pricing",className:"text-primary hover:underline font-medium",children:"What it costs"})," ","â chat is free; the API is billed per token."]})]})})]})}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"How to Log In"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-8 max-w-4xl mx-auto",children:[e.jsxs(ie,{children:[e.jsxs(Ot,{children:[e.jsx(tT,{className:"w-10 h-10 text-primary mb-2"}),e.jsx(Ft,{children:"Email Login"}),e.jsx(bs,{children:"Sign in with your email address"})]}),e.jsxs(me,{children:[e.jsxs("ol",{className:"list-decimal list-inside space-y-2 text-muted-foreground mb-4",children:[e.jsxs("li",{children:["Go to ",e.jsx("a",{href:"https://chat.deepseek.com/sign_in",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"chat.deepseek.com"})]}),e.jsx("li",{children:"Enter your email address"}),e.jsx("li",{children:"Enter your password"}),e.jsx("li",{children:'Click "Sign In"'})]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["New user? ",e.jsx("a",{href:"https://chat.deepseek.com/sign_up",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Create a free account"})]})]})]}),e.jsxs(ie,{children:[e.jsxs(Ot,{children:[e.jsx(Fs,{className:"w-10 h-10 text-primary mb-2"}),e.jsx(Ft,{children:"Google Login"}),e.jsx(bs,{children:"Sign in with your Google account"})]}),e.jsxs(me,{children:[e.jsxs("ol",{className:"list-decimal list-inside space-y-2 text-muted-foreground mb-4",children:[e.jsxs("li",{children:["Go to ",e.jsx("a",{href:"https://chat.deepseek.com/sign_in",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"chat.deepseek.com"})]}),e.jsx("li",{children:'Click "Continue with Google"'}),e.jsx("li",{children:"Select your Google account"}),e.jsx("li",{children:"You're logged in!"})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Fastest way to get started â no password needed."})]})]})]})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"What You Get with a DeepSeek Account"}),e.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:[e.jsxs(ie,{className:"text-center",children:[e.jsxs(Ot,{children:[e.jsx(Lt,{className:"w-10 h-10 text-primary mx-auto mb-2"}),e.jsx(Ft,{className:"text-lg",children:"Free Access"})]}),e.jsx(me,{children:e.jsx("p",{className:"text-muted-foreground text-sm",children:"Unlimited chat with no subscription fees or message limits."})})]}),e.jsxs(ie,{className:"text-center",children:[e.jsxs(Ot,{children:[e.jsx(fh,{className:"w-10 h-10 text-primary mx-auto mb-2"}),e.jsx(Ft,{className:"text-lg",children:"Advanced Models"})]}),e.jsx(me,{children:e.jsx("p",{className:"text-muted-foreground text-sm",children:"Access DeepSeek V4-Flash and V4-Pro for reasoning-heavy tasks. The legacy V3 and R1 aliases were retired on 24 July 2026."})})]}),e.jsxs(ie,{className:"text-center",children:[e.jsxs(Ot,{children:[e.jsx(rl,{className:"w-10 h-10 text-primary mx-auto mb-2"}),e.jsx(Ft,{className:"text-lg",children:"Saved History"})]}),e.jsx(me,{children:e.jsx("p",{className:"text-muted-foreground text-sm",children:"All your conversations saved and accessible anytime."})})]}),e.jsxs(ie,{className:"text-center",children:[e.jsxs(Ot,{children:[e.jsx(Fs,{className:"w-10 h-10 text-primary mx-auto mb-2"}),e.jsx(Ft,{className:"text-lg",children:"Chrome Extension"})]}),e.jsx(me,{children:e.jsx("p",{className:"text-muted-foreground text-sm",children:"Use our free extension for instant access while browsing."})})]})]})]}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"text-3xl font-bold text-center mb-8",children:"Frequently Asked Questions"}
2830),e.jsxs("div",{className:"max-w-3xl mx-auto space-y-6",children:[e.jsxs(ie,{children:[e.jsx(Ot,{children:e.jsx(Ft,{className:"text-lg",children:"How do I log in to DeepSeek?"})}),e.jsx(me,{children:e.jsxs("p",{className:"text-muted-foreground",children:["Visit ",e.jsx("a",{href:"https://chat.deepseek.com/sign_in",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"chat.deepseek.com"}),' and click "Sign In". You can log in with your email address or Google account. Registration is free and takes less than a minute.']})})]}),e.jsxs(ie,{children:[e.jsx(Ot,{children:e.jsx(Ft,{className:"text-lg",children:"Is DeepSeek login free?"})}),e.jsx(me,{children:e.jsx("p",{className:"text-muted-foreground",children:"Yes, DeepSeek is completely free to use. There are no subscription fees or message limits. Create a free account and start chatting immediately with advanced AI models."})})]}),e.jsxs(ie,{children:[e.jsx(Ot,{children:e.jsx(Ft,{className:"text-lg",children:"Can I use DeepSeek without creating an account?"})}),e.jsx(me,{children:e.jsx("p",{className:"text-muted-foreground",children:"You need an account to use DeepSeek Chat. This allows you to save your chat history and access all features. Registration is quick and free â just provide an email or use Google sign-in."})})]}),e.jsxs(ie,{children:[e.jsx(Ot,{children:e.jsx(Ft,{className:"text-lg",children:"Is my data safe with DeepSeek?"})}),e.jsx(me,{children:e.jsxs("p",{className:"text-muted-foreground",children:["DeepSeek uses standard security protocols. Note that DeepSeek is a Chinese company, so data may be stored in China. For more details, see our ",e.jsx(se,{to:"/is-deepseek-safe",className:"text-primary hover:underline",children:"DeepSeek safety guide"}),"."]})})]})]})]}),e.jsxs("section",{className:"text-center bg-muted/50 rounded-2xl p-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-4",children:"Ready to Get Started?"}),e.jsx("p",{className:"text-muted-foreground mb-6 max-w-2xl mx-auto",children:"Join millions of users already using DeepSeek AI. Free, powerful, and easy to use."}),e.jsxs("div",{className:"flex flex-wrap gap-4 justify-center",children:[e.jsx(Ke,{size:"lg",asChild:!0,children:e.jsx("a",{href:"https://chat.deepseek.com/sign_in",target:"_blank",rel:"noopener noreferrer",children:"Sign In Now"})}),e.jsx(Ke,{size:"lg",variant:"outline",asChild:!0,children:e.jsx(se,{to:"/chat",children:"Learn More About DeepSeek Chat"})})]})]})]})]})},Ux="seo_report_pass",f6=t=>`${(t*100).toFixed(2)}%`,g6=t=>t.toFixed(2),hu=t=>t.toLocaleString();function _m({value:t,suffix:n="",invert:s=!1}){if(!isFinite(t)||Math.abs(t)<1e-4)return e.jsx("span",{className:"inline-flex items-center text-muted-foreground text-xs",children:e.jsx(kz,{className:"h-3 w-3"})});const r=s?t<0:t>0,a=t>0?az:rz,i=r?"text-green-600":"text-red-600";return e.jsxs("span",{className:`inline-flex items-center gap-0.5 text-xs ${i}`,children:[e.jsx(a,{className:"h-3 w-3"}),Math.abs(t).toLocaleString(void 0,{maximumFractionDigits:2}),n]})}function tle(){const[t,n]=S.useState(""),[s,r]=S.useState(null),[a,i]=S.useState(!1),[o,l]=S.useState(null),c=async u=>{i(!0),l(null);try{const{data:y,error:g}=await Ol.functions.invoke("seo-report-read",{body:{passphrase:u}});if(g)throw g;if(!(y!=null&&y.ok))throw new Error((y==null?void 0:y.error)||"Failed");r(y),localStorage.setItem(Ux,u)}catch(y){l((y==null?void 0:y.message)||"Failed to load report"),r(null)}finally{i(!1)}};S.useEffect(()=>{const u=localStorage.getItem(Ux);u&&(n(u),c(u))},[]);const d=S.useMemo(()=>{if(!s||s.weeks.length===0)return null;const[u,y]=s.weeks,g=F=>{const O=s.rows.filter(_=>_.type===F&&_.week_start===u),L=s.rows.filter(_=>_.type===F&&_.week_start===y),W=new Map(L.map(_=>[_.key,_]));return O.map(_=>({..._,prev:W.get(_.key)})).sort((_,P)=>P.clicks-_.clicks)},w=g("query"),b=g("page"),j=F=>({clicks:F.reduce((O,L)=>O+L.clicks,0),impressions:F.reduce((O,L)=>O+L.impressions,0)}),N=j(w),A=s.rows.filter(F=>F.type==="query"&&F.week_start===y),E=j(A),C=w.filter(F=>F.prev).map(F=>{var O;return{...F,delta:F.clicks-(((O=F.prev)==null?void 0:O.clicks)??0)}}).filter(F=>Math.abs(F.delta)>=5).sort((F,O)=>Math.abs(O.delta)-Math.abs(F.delta)).slice(0,20);return{latest:u,prev:y,queries:w,pages:b,cur:N,pre:E,movers:C}},[s]);if(!s)return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"SEO Report"}),e.jsx("meta",{name:"robots",content:"noindex, nofollow"})]}),e.jsx("div",{className:"min-h-screen flex items-center justify-center p-4",children:e.jsxs(ie,{className:"w-full max-w-md p-6 space-y-4",children:[e.jsx("h1",{className:"text-xl font-semibold",children:"SEO Report"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Enter the passphrase to view weekly Search Console data."}),e.jsx(qu,{type:"password",value:t,onChange:u=>n(u.target.value),placeholder:"Passphrase",onKeyDown:u=>u.key==="Enter"&&t&&c(t)}),o&&e.jsx("p",{className:"text-sm text-red-600",children:o}),e.jsxs(Ke,{onClick:()=>c(t),disabled:!t||a,className:"w-full",children:[a?e.jsx(Zm,{className:"h-4 w-4 animate-spin mr-2"}):null,"Unlock"]})]})})]});if(!d)return e.jsx("div",{className:"min-h-screen flex items-center justify-center p-4",children:e.jsxs(ie,{className:"p-6 max-w-md text-center space-y-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"No snapshots yet. The first one runs every Monday at 09:00 UTC."}),e.jsxs(Ke,{variant:"outline",onClick:()=>{localStorage.removeItem(Ux),r(null)},children:[e.jsx(z4,{className:"h-4 w-4 mr-2"})," Reset"]})]})});const h=d.cur.clicks-d.pre.clicks,p=d.cur.impressions-d.pre.impressions,m=u=>u.slice(0,50).map(y=>{const g=y.prev?y.clicks-y.prev.clicks:0,w=y.prev?y.position-y.prev.position:0;return e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium max-w-md truncate",children:y.key}),e.jsx(U,{className:"text-right",children:hu(y.clicks)}),e.jsx(U,{className:"text-right",children:e.jsx(_m,{value:g})}),e.jsx(U,{className:"text-right",children:hu(y.impressions)}),e.jsx(U,{className:"text-right",children:f6(y.ctr)}),e.jsx(U,{className:"text-right",children:g6(y.position)}),e.jsx(U,{className:"text-right",children:e.jsx(_m,{value:w,invert:!0})})]},`${y.type}-${y.key}`)});return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"SEO Report"}),e.jsx("meta",{name:"robots",content:"noindex, nofollow"})]}),e.jsxs("div",{className:"container mx-auto py-8 px-4 space-y-6 max-w-7xl",children:[e.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"SEO Report"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Week of ",d.latest,d.prev?` (vs ${d.prev})`:""]})]}),e.jsxs(Ke,{variant:"outline",size:"sm",onClick:()=>c(t),disabled:a,children:[a?e.jsx(Zm,{className:"h-4 w-4 animate-spin mr-2"}):e.jsx(z4,{className:"h-4 w-4 mr-2"}),"Refresh"]})]}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[e.jsxs(ie,{className:"p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"Total clicks"}),e.jsx("p",{className:"text-2xl font-semibold",children:hu(d.cur.clicks)}),e.jsx(_m,{value:h})]}),e.jsxs(ie,{className:"p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"Total impressions"}),e.jsx("p",{className:"text-2xl font-semibold",children:hu(d.cur.impressions)}),e.jsx(_m,{value:p})]}),e.jsxs(ie,{className:"p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"Avg CTR"}),e.jsx("p",{className:"text-2xl font-semibold",children:d.cur.impressions?f6(d.cur.clicks/d.cur.impressions):"â"})]}),e.jsxs(ie,{className:"p-4",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"Tracked queries"}),e.jsx("p",{className:"text-2xl font-semibold",children:d.queries.length})]})]}),e.jsxs(QL,{defaultValue:"queries",children:[e.jsxs(AN,{children:[e.jsx(Oc,{value:"queries",children:"Top queries"}),e.jsx(Oc,{value:"pages",children:"Top pages"}),e.jsx(Oc,{value:"movers",children:"Movers"})]}),e.jsx(Fc,{value:"queries",children:e.jsx(ie,{children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Query"}),e.jsx(qe,{className:"text-right",children:"Clicks"}),e.jsx(qe,{className:"text-right",children:"Î"}),e.jsx(qe,{className:"text-right",children:"Impr."}),e.jsx(qe,{className:"text-right",children:"CTR"}),e.jsx(qe,{className:"text-right",children:"Pos"}),e.jsx(qe,{className:"text-right",children:"Î pos"})]})}),e.jsx(us,{children:m(d.queries)})]})})}),e.jsx(Fc,{value:"pages",children:e.jsx(ie,{children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Page"}),e.jsx(qe,{className:"text-right",children:"Clicks"}),e.jsx(qe,{className:"text-right",children:"Î"}),e.jsx(qe,{className:"text-right",children:"Impr."}),e.jsx(qe,{className:"text-right",children:"CTR"}),e.jsx(qe,{className:"text-right",children:"Pos"}),e.jsx(qe,{className:"text-right",children:"Î pos"})]})}),e.jsx(us,{children:m(d.pages)})]})})}),e.jsx(Fc,{value:"movers",children:e.jsx(ie,{children:e.jsxs(ds,{children:[e.jsx(hs,{children:e.jsxs(Le,{children:[e.jsx(qe,{children:"Query"}),e.jsx(qe,{className:"text-right",children:"Clicks now"}),e.jsx(qe,{className:"text-right",children:"Clicks before"}),e.jsx(qe,{className:"text-right",children:"Î Clicks"}),e.jsx(qe,{className:"text-right",children:"Pos"})]})}),e.jsx(us,{children:d.movers.length===0?e.jsx(Le,{children:e.jsx(U,{colSpan:5,className:"text-center text-muted-foreground py-6",children:"Need at least 2 weeks of data to show movers."})}):d.movers.map(u=>{var y;return e.jsxs(Le,{children:[e.jsx(U,{className:"font-medium max-w-md truncate",children:u.key}),e.jsx(U,{className:"text-right",children:hu(u.clicks)}),e.jsx(U,{className:"text-right",children:hu(((y=u.prev)==null?void 0:y.clicks)??0)}),e.jsx(U,{className:"text-right",children:e.jsx(_m,{value:u.delta})}),e.jsx(U,{className:"text-right",children:g6(u.position)})]},`mover-${u.key}`)})})]})})})]}),e.jsxs("div",{className:"text-xs text-muted-foreground pt-4 border-t",children:["Snapshots run every Monday at 09:00 UTC from Google Search Console. Bookmark this page."," ",e.jsx("button",{onClick:()=>{localStorage.removeItem(Ux),r(null)},className:"underline",children:"Lock"})]})]})]})}const nle=()=>{const t=[{question:"Was ist DeepSeek auf Deutsch?",answer:"DeepSeek ist ein chinesisches KI-Unternehmen aus Hangzhou, das leistungsstarke Sprachmodelle entwickelt. Aktuell werden über die API DeepSeek-V4-Flash und DeepSeek-V4-Pro angeboten. Die Modelle verstehe
2830n und generieren flieÃend Deutsch und sind eine kostengünstige Alternative zu ChatGPT und Claude."},{question:"Ist DeepSeek in Deutschland kostenlos nutzbar?",answer:"Ja. Der DeepSeek-Chat auf chat.deepseek.com ist für Privatnutzer in Deutschland kostenlos. Nur die API-Nutzung für Entwickler ist kostenpflichtig â ab $0,14 pro 1 Million Input-Tokens (Cache-Miss) bei DeepSeek-V4-Flash."},{question:"Ist DeepSeek DSGVO-konform?",answer:"DeepSeek verarbeitet Daten auf Servern in China, einem Land ohne EU-Angemessenheitsbeschluss. Eine Ãbermittlung personenbezogener Daten benötigt daher Standardvertragsklauseln plus eine dokumentierte Transfer-Folgenabschätzung. Für DSGVO-sensible Fälle empfiehlt sich Eigenhosting der offenen Gewichte in einer EU-Region (z. B. AWS eu-central-1 Frankfurt) statt der gehosteten API."},{question:"Wie melde ich mich bei DeepSeek an?",answer:"Gehen Sie auf chat.deepseek.com, klicken Sie auf 'Anmelden' und registrieren Sie sich mit E-Mail-, Google- oder Apple-Konto. Die Anmeldung ist kostenlos und dauert unter einer Minute. Die Anmeldung erfolgt ausschlieÃlich bei DeepSeek selbst â nicht auf dieser unabhängigen Info-Seite."},{question:"Welche DeepSeek-Modelle gibt es 2026?",answer:"Ãber die offizielle API sind DeepSeek-V4-Flash (schnell und günstig) und DeepSeek-V4-Pro (stärkstes Modell für Mathe, Code und Logik) verfügbar. Die älteren Endpunkte deepseek-chat (V3) und deepseek-reasoner (R1) wurden am 24. Juli 2026 abgeschaltet; die offenen Gewichte der Vorgängermodelle bleiben zum Eigenhosten verfügbar."},{question:"Kann ich DeepSeek geschäftlich nutzen?",answer:"Ja. Die Lizenz erlaubt kommerzielle Nutzung â über die API oder durch Eigenhosting der Open-Source-Modelle. Prüfen Sie bei personenbezogenen Daten vorher die DSGVO-Anforderungen und die Transparenzpflichten der EU-KI-Verordnung."}],n={"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://deepseek.ai/deepseek-deutsch",url:"https://deepseek.ai/deepseek-deutsch",name:"DeepSeek auf Deutsch â Kostenlos Nutzen, Anleitung & API",description:"Vollständiger Leitfaden zu DeepSeek auf Deutsch: Anmeldung, kostenloser Chat, DSGVO, API und Vergleich mit ChatGPT.",inLanguage:"de"},{"@type":"FAQPage",mainEntity:t.map(s=>({"@type":"Question",name:s.question,acceptedAnswer:{"@type":"Answer",text:s.answer}}))}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("html",{lang:"de"}),e.jsx("title",{children:"DeepSeek Deutsch 2026 â Gratis Chat, Login & API"}),e.jsx("meta",{name:"description",content:"DeepSeek auf Deutsch: kostenloser Chat, Anmeldung in 30 Sekunden, DSGVO-Hinweise, API-Preise ab $0,14/1M Tokens und Vergleich mit ChatGPT."}),e.jsx("meta",{name:"keywords",content:"deepseek deutsch, deepseek deutschland, deepseek anmelden, deepseek kostenlos, deepseek api deutsch, deepseek dsgvo"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-deutsch"}),e.jsx("link",{rel:"alternate",hrefLang:"de",href:"https://deepseek.ai/deepseek-deutsch"}),e.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://deepseek.ai/"}),e.jsx("link",{rel:"alternate",hrefLang:"x-default",href:"https://deepseek.ai/"}),e.jsx("meta",{property:"og:title",content:"DeepSeek auf Deutsch â Kostenloser KI-Chat & API"}),e.jsx("meta",{property:"og:description",content:"DeepSeek-V3 und R1 auf Deutsch nutzen: Anleitung, DSGVO und API-Preise."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-deutsch"}),e.jsx("meta",{property:"og:locale",content:"de_DE"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek auf Deutsch â Kostenloser KI-Chat & API"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek-V3 und R1 auf Deutsch nutzen: Anleitung, DSGVO und API-Preise."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)})]}),e.jsxs("main",{className:"min-h-screen bg-background",children:[e.jsx("section",{className:"relative py-20 bg-gradient-to-br from-primary/5 via-background to-primary/10",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx(ur,{currentPage:"DeepSeek auf Deutsch"}),e.jsxs("div",{className:"text-center mt-8",children:[e.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-foreground mb-6",children:"DeepSeek auf Deutsch"}),e.jsx("p",{className:"text-xl md:text-2xl text-muted-foreground max-w-3xl mx-auto mb-8",children:"Der vollständige deutsche Leitfaden zum DeepSeek-KI-Chat â kostenlos nutzen, anmelden, DSGVO verstehe
2830n und die API integrieren."}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsxs("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-6 py-3 rounded-lg bg-primary text-primary-foreground font-semibold hover:bg-primary/90",children:[e.jsx(fh,{className:"w-5 h-5 mr-2"})," DeepSeek Chat starten ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]}),e.jsxs(se,{to:"/deepseek-api",className:"inline-flex items-center justify-center px-6 py-3 rounded-lg border border-border bg-background font-semibold hover:bg-muted",children:[e.jsx(qr,{className:"w-5 h-5 mr-2"})," API-Dokumentation"]})]})]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-6",children:"Was ist DeepSeek?"}),e.jsxs("p",{className:"text-lg text-muted-foreground mb-4",children:["DeepSeek ist ein chinesisches KI-Unternehmen mit Sitz in Hangzhou, das seit 2023 leistungsstarke Open-Source-Sprachmodelle entwickelt. Die Modelle ",e.jsx("strong",{className:"text-foreground",children:"DeepSeek-V3"})," und ",e.jsx("strong",{className:"text-foreground",children:"DeepSeek-R1"})," stehen in Benchmarks auf Augenhöhe mit GPT-4o und Claude Sonnet â bei einem Bruchteil der Kosten."]}),e.jsx("p",{className:"text-lg text-muted-foreground",children:"Für deutschsprachige Nutzer ist DeepSeek besonders interessant, weil die Modelle flieÃend Deutsch beherrschen, der Chat kostenlos ist und die API rund 90 % günstiger als OpenAI ausfällt."})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-12",children:"DeepSeek in 3 Schritten anmelden"}),e.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:[{n:1,t:"Webseite öffnen",d:"Gehen Sie auf chat.deepseek.com â keine Installation nötig, läuft im Browser."},{n:2,t:"Konto erstellen",d:"Registrieren Sie sich kostenlos mit E-Mail, Google- oder Apple-Konto."},{n:3,t:"Auf Deutsch chatten",d:"Tippen Sie Ihre Frage auf Deutsch ein â DeepSeek antwortet sofort in Ihrer Sprache."}].map(s=>e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-primary text-primary-foreground flex items-center justify-center text-xl font-bold mx-auto mb-4",children:s.n}),e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:s.t}),e.jsx("p",{className:"text-muted-foreground",children:s.d})]},s.n))})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-12",children:"DeepSeek-Modelle im Ãberblick"}),e.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:[{name:"DeepSeek-V4-Flash",tag:"Allgemeiner Chat",bullets:["128K Kontextfenster","Schnelle Antworten","$0,14 Input / $0,28 Output je 1M Tokens"]},{name:"DeepSeek-V4-Pro",tag:"Komplexe Aufgaben & Logik",bullets:["Stärkstes aktuelles Modell","Mathe, Code & Logik","$0,435 Input / $0,87 Output je 1M Tokens"]},{name:"V3 / R1 / Coder",tag:"Abgeschaltet",bullets:["deepseek-chat & deepseek-reasoner","am 24. Juli 2026 eingestellt","Preise gelten nicht mehr"]}].map(s=>e.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[e.jsx("h3",{className:"text-xl font-bold text-foreground mb-2",children:s.name}),e.jsx("p",{className:"text-muted-foreground text-sm mb-4",children:s.tag}),e.jsx("ul",{className:"space-y-2",children:s.bullets.map(r=>e.jsxs("li",{className:"flex items-start text-sm text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-0.5 flex-shrink-0"}),r]},r))})]},s.name))})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-card border border-border",children:[e.jsx(rl,{className:"w-8 h-8 text-primary flex-shrink-0 mt-1"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-3",children:"DSGVO & Datenschutz"}),e.jsxs("p",{className:"text-muted-foreground mb-3",children:["DeepSeek verarbeitet Eingaben standardmäÃig auf Servern in der Volksrepublik China. Für die ",e.jsx("strong",{children:"DSGVO"})," bedeutet das: Ohne explizite Einwilligung dürfen Sie ",e.jsx("strong",{children:"keine personenbezogenen Daten Dritter"}
2830)," (z. B. Kundendaten, Mitarbeiterdaten) in den Chat oder die API eingeben."]}),e.jsxs("p",{className:"text-muted-foreground",children:["Für sensible geschäftliche Anwendungsfälle empfehlen wir das Eigenhosting des Open-Source-Modells DeepSeek-V3 auf einem EU-Server, oder die Nutzung über OpenRouter mit europäischer Datenverarbeitung. Mehr Details auf unserer"," ",e.jsx(se,{to:"/is-deepseek-safe",className:"text-primary hover:underline",children:"Sicherheitsanalyse-Seite"}),"."]})]})]})})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-4",children:"EU-KI-Verordnung: was Unternehmen in der DACH-Region beachten müssen"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Anders als in den USA oder Kanada gilt in Deutschland, Ãsterreich und der Schweiz (via EU-Marktzugang) zusätzlich die KI-Verordnung der EU. Sie richtet sich nicht nur an Modellanbieter, sondern auch an Sie als Betreiber:"}),e.jsxs("ul",{className:"space-y-3 mb-6",children:[e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Transparenzpflicht:"})," Nutzer müssen erkennen können, dass sie mit einer KI sprechen. Kennzeichnen Sie Chatbots und KI-generierte Inhalte eindeutig."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Hochrisiko-Anwendungen:"})," Bewerberauswahl, Kreditwürdigkeit, Bildungsbewertung oder Zugang zu öffentlichen Leistungen unterliegen strengen Anforderungen â hier ist die gehostete API in der Regel keine tragfähige Grundlage."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"KI-Kompetenz:"})," Beschäftigte, die KI-Systeme im Unternehmen einsetzen, sollen dafür geschult werden â dokumentieren Sie interne Richtlinien und Schulungen."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Verzeichnis von Verarbeitungstätigkeiten:"})," KI-Tools mit Personenbezug gehören nach Art. 30 DSGVO ins Verzeichnis, inklusive Drittlandtransfer nach China."]})]})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Allgemeine Informationen zu öffentlich dokumentierten Pflichten, keine Rechtsberatung â für den konkreten Fall entscheidet Ihre Datenschutzbeauftragte."})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-4",children:"DeepSeek mit EU-Datenhaltung betreiben"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Weil die Modellgewichte offen sind, lässt sich DeepSeek ohne Datenübermittlung nach China betreiben. Drei praxistaugliche Wege:"}),e.jsxs("ul",{className:"space-y-3 mb-6",children:[e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Eigenhosting in einer EU-Region"})," â AWS eu-central-1 (Frankfurt), Azure Germany West Central oder ein deutscher Anbieter wie Hetzner/IONOS, betrieben mit vLLM oder SGLang."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"EU-Inferenzanbieter"}
2830)," â Dienste mit europäischer Datenverarbeitung und Auftragsverarbeitungsvertrag (AVV) nach Art. 28 DSGVO."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Kompromiss beachten:"})," Selbst gehostet laufen offene Vorgängergewichte, nicht der aktuelle V4-Pro-Stand der offiziellen API â die Qualität liegt also etwas darunter."]})]})]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Kostenvergleich zwischen gehosteter API und Eigenhosting finden Sie auf unserer ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline",children:"Preisseite"}),"."]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-12",children:"Häufig gestellte Fragen"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"space-y-4",children:t.map((s,r)=>e.jsxs(ss,{value:`item-${r}`,className:"bg-card border border-border rounded-lg px-6",children:[e.jsx(rs,{className:"text-foreground font-semibold text-left hover:no-underline",children:s.question}),e.jsx(as,{className:"text-muted-foreground",children:s.answer})]},r))})]})}),e.jsx("section",{className:"py-20 bg-primary",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-primary-foreground mb-6",children:"DeepSeek jetzt auf Deutsch testen"}),e.jsx("p",{className:"text-xl text-primary-foreground/90 mb-8",children:"Kostenlos, keine Kreditkarte erforderlich."}),e.jsxs("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 rounded-lg bg-white text-primary font-semibold hover:bg-gray-100",children:[e.jsx(Lt,{className:"w-5 h-5 mr-2"})," Kostenlos starten ",e.jsx(wn,{className:"w-5 h-5 ml-2"})]})]})})]})]})},sle=()=>{const t=[{question:"Is DeepSeek available in Canada?",answer:"Yes. DeepSeek is fully accessible from Canada â both the free web chat at chat.deepseek.com and the developer API work without a VPN. There is no Canadian government restriction on DeepSeek as of 2026, though the Office of the Privacy Commissioner of Canada has launched a preliminary review of its data-handling practices."},{question:"Is DeepSeek safe to use in Canada under PIPEDA?",answer:"DeepSeek processes data on servers located in China, which means personal information entered into the chat or API leaves Canadian jurisdiction. Under PIPEDA, organisations remain accountable for personal information transferred to third parties for processing â so businesses should obtain meaningful consent and avoid entering customer data without a privacy impact assessment."},{question:"How much does DeepSeek cost in Canada?",answer:"The DeepSeek web chat is free for personal use. The API is billed in US dollars: DeepSeek-V4-Flash costs $0.15 per 1M input tokens (cache miss) and $0.60 per 1M output tokens â roughly CAD $0.20 and $0.82 at 1 USD = 1.36 CAD. DeepSeek-V4-Pro costs $0.66 and $1.98 (about CAD $0.90 / $2.69). The older deepseek-chat (V3) and deepseek-reasoner (R1) endpoints were switched off on 24 July 2026."},{question:"Can I use DeepSeek for my Canadian business?",answer:"Yes â the licence permits commercial use. For regulated industries (finance, health, public sector) you should either self-host the open-source DeepSeek-V3 model on a Canadian cloud region (AWS ca-central-1, Azure Canada Central) or use a proxy provider with Canadian data residency."},{question:"Does DeepSeek understand Canadian English and French?",answer:"Yes. DeepSeek handles both Canadian English (including 'colour', 'centre', 'behaviour') and Canadian French fluently. For Quebec French specifically, results are noticeably better than older open-source models like Llama 2."},{question:"How do I sign up for DeepSeek from Canada?",answer:"Go to chat.deepseek.com, click 'Sign in' and register with your email, Google or Apple account. No phone number is required and the sign-up is free. The interface auto-detects your locale and presents an English UI for Canadian users."}],n={"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://deepseek.ai/deepseek-canada",url:"https://deepseek.ai/deepseek-canada",name:"DeepSeek Canada â Free AI Chat, R1 & API for Canadians",de
2830scription:"Complete guide to DeepSeek in Canada: free chat access, PIPEDA privacy notes, API pricing in CAD and how it compares to ChatGPT.",inLanguage:"en-CA"},{"@type":"FAQPage",mainEntity:t.map(s=>({"@type":"Question",name:s.question,acceptedAnswer:{"@type":"Answer",text:s.answer}}))}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("html",{lang:"en-CA"}),e.jsx("title",{children:"DeepSeek Canada 2026 â Free AI Chat, R1 & API for Canadians"}),e.jsx("meta",{name:"description",content:"DeepSeek in Canada: free chat access, PIPEDA privacy guidance, API pricing in CAD and a comparison with ChatGPT. No VPN required."}),e.jsx("meta",{name:"keywords",content:"deepseek canada, deepseek ai canada, is deepseek available in canada, deepseek pipeda, deepseek toronto, deepseek api canada"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-canada"}),e.jsx("link",{rel:"alternate",hrefLang:"en-CA",href:"https://deepseek.ai/deepseek-canada"}),e.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://deepseek.ai/"}),e.jsx("link",{rel:"alternate",hrefLang:"x-default",href:"https://deepseek.ai/"}),e.jsx("meta",{property:"og:title",content:"DeepSeek Canada â Free AI Chat & API Guide"}),e.jsx("meta",{property:"og:description",content:"Use DeepSeek in Canada: signup, PIPEDA, pricing in CAD and Canadian-specific FAQs."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-canada"}),e.jsx("meta",{property:"og:locale",content:"en_CA"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek Canada â Free AI Chat & API Guide"}),e.jsx("meta",{name:"twitter:description",content:"Use DeepSeek in Canada: signup, PIPEDA, pricing in CAD and Canadian-specific FAQs."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)})]}),e.jsxs("main",{className:"min-h-screen bg-background",children:[e.jsx("section",{className:"relative py-20 bg-gradient-to-br from-primary/5 via-background to-primary/10",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx(ur,{currentPage:"DeepSeek Canada"}),e.jsxs("div",{className:"text-center mt-8",children:[e.jsxs("div",{className:"inline-flex items-center px-4 py-2 rounded-full bg-primary/10 text-primary text-sm font-medium mb-6",children:[e.jsx(O1,{className:"w-4 h-4 mr-2"})," Guide for Canadian users"]}),e.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-foreground mb-6",children:"DeepSeek in Canada"}),e.jsx("p",{className:"text-xl md:text-2xl text-muted-foreground max-w-3xl mx-auto mb-8",children:"Everything Canadians need to know â free chat access, PIPEDA privacy considerations, API pricing in CAD and how DeepSeek stacks up against ChatGPT."}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsxs("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-6 py-3 rounded-lg bg-primary text-primary-foreground font-semibold hover:bg-primary/90",children:[e.jsx(fh,{className:"w-5 h-5 mr-2"})," Open DeepSeek Chat ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]}),e.jsxs(se,{to:"/deepseek-vs-chatgpt",className:"inline-flex items-center justify-center px-6 py-3 rounded-lg border border-border bg-background font-semibold hover:bg-muted",children:["Compare to ChatGPT ",e.jsx(wn,{className:"w-5 h-5 ml-2"})]})]})]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-6",children:"Is DeepSeek available in Canada?"}),e.jsxs("p",{className:"text-lg text-muted-foreground mb-4",children:[e.jsx("strong",{className:"text-foreground",children:"Yes â DeepSeek works in every Canadian province and territory"}),", from Toronto and Vancouver to Yellowknife. No VPN is required. Both the consumer chat at chat.deepseek.com and the developer API at api.deepseek.com are accessible over standard Canadian internet connections."]}),e.jsx("p",{className:"text-lg text-muted-foreground",children:"Unlike countries that have restricted DeepSeek (Italy, Australia for government devices), Canada has no nationwide ban. The Office of the Privacy Commissioner of Canada has opened a preliminary investigation into DeepSeek's privacy practices, but the service remains fully available to Canadian consumers and businesses as of 2026."})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-4",children:"DeepSeek API pricing in Canadian dollars"}),e.jsx("p",{className:"text-muted-foreground text-center mb-12",children:"Converted at 1 USD = 1.36 CAD (approximate)."}),e.jsx("div",{className:"overflow-x-auto max-w-4xl mx-auto",children:e.jsxs("table",{className:"w-full border-collapse bg-card border border-border rounded-xl overflow-hidden",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-border bg-muted/50",children:[e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Model"}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Input (CAD / 1M)"}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Output (CAD / 1M)"}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Context"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-b border-border",children:[e.jsx("td",{className:"py-4 px-6 font-semibold",children:"DeepSeek-V4.1-Flash"}),e.jsx("td",{className:"py-4 px-6 text-primary font-semibold",children:"$0.20"}),e.jsx("td",{className:"py-4 px-6",children:"$0.82"}),e.jsx("td",{className:"py-4 px-6",children:"1M"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-4 px-6 font-semibold",children:"DeepSeek-V4-Pro"}),e.jsx("td",{className:"py-4 px-6 text-primary font-semibold",children:"$0.90"}),e.jsx("td",{className:"py-4 px-6",children:"$2.69"}),e.jsx("td",{className:"py-4 px-6",children:"1M"})]})]})]})}),e.jsxs("p",{className:"text-center text-sm text-muted-foreground mt-6",children:["Billing is always in USD ($0.15 / $0.60 for V4.1-Flash, $0.66 / $1.98 for V4-Pro, off-peak); CAD figures are indicative. Peak hours (01:00â04:00 and 06:00â10:00 UTC, Monday to Frid
2830ay) cost double. The older ",e.jsx("code",{children:"deepseek-chat"})," (V3) and ",e.jsx("code",{children:"deepseek-reasoner"})," (R1) endpoints were switched off on 24 July 2026. See our ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline",children:"pricing page"}),"."]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-card border border-border",children:[e.jsx(rl,{className:"w-8 h-8 text-primary flex-shrink-0 mt-1"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-3",children:"PIPEDA and Canadian privacy"}),e.jsxs("p",{className:"text-muted-foreground mb-3",children:["Under the ",e.jsx("strong",{children:"Personal Information Protection and Electronic Documents Act (PIPEDA)"}),", Canadian organisations remain accountable for personal information they transfer to a third-party processor â even when that processor is outside Canada."]}),e.jsx("p",{className:"text-muted-foreground mb-3",children:"Because DeepSeek processes data on servers in China, businesses should:"}),e.jsxs("ul",{className:"space-y-2 mb-3",children:[e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),"Obtain meaningful consent before entering customer data"]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),"Consider a Privacy Impact Assessment for sensitive use cases"]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),"For regulated industries, self-host DeepSeek-V3 on AWS ca-central-1 or Azure Canada Central"]})]}),e.jsxs("p",{className:"text-muted-foreground",children:["For personal use, the same caution as with any consumer AI chatbot applies â don't paste anything you wouldn't want stored. Full analysis on our"," ",e.jsx(se,{to:"/is-deepseek-safe",className:"text-primary hover:underline",children:"DeepSeek safety page"}),"."]})]})]})})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-4",children:"Quebec Law 25 and provincial privacy rules"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"PIPEDA is only the federal baseline. Several provinces add their own layer, and Quebec's is the strictest in the country for anything sent outside its borders."}),e.jsxs("ul",{className:"space-y-3 mb-6",children:[e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Quebec (Law 25)"})," â a privacy impact assessment is required before personal information leaves the province, and individuals must be told when a decision relies solely on automated processing."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Alberta and British Columbia"})," â provincial PIPA laws cover private-sector employers; BC public bodies face extra data-residency expectations under FIPPA."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Health information"})," â provincial health privacy acts such as Ontario's PHIPA effectively rule out pasting patient data into any offshore chatbot."]})]})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"For regulated Canadian workloads, run open DeepSeek weights in AWS ca-central-1 or Azure Canada Central instead of the hosted API. General information, not legal advice."})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-4",children:"Bilingual use: DeepSeek in Canadian French"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Canada is the one market where a model's French matters as much as its English. In practice DeepSeek handles both, with caveats worth knowing before you put it in front of customers:"}),e.jsxs("ul",{className:"space-y-3",children:[e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"It defaults to European French."})," Ask explicitly for « français québécois » or Canadian usage, or you will get Parisian phrasing and terminology."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"English spelling drifts American."}),' Add "use Canadian spelling: colour, centre, cheque" to your system prompt for customer-facing copy.']})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Have a francophone review published output."})," For Charter of the French Language obligations, machine translation alone is not a safe final step."]})]})]})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-12",children:"DeepSeek Canada â FAQ"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"space-y-4",children:t.map((s,r)=>e.jsxs(ss,{value:`item-${r}`,className:"bg-card border border-border rounded-lg px-6",children:[e.jsx(rs,{className:"text-foreground font-semibold text-left hover:no-underline",children:s.question}),e.jsx(as,{className:"text-muted-foreground",children:s.answer})]},r))})]})}),e.jsx("section",{className:"py-20 bg-primary",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-primary-foreground mb-6",children:"Try DeepSeek from Canada â free"}
2830),e.jsx("p",{className:"text-xl text-primary-foreground/90 mb-8",children:"No credit card. No VPN. Works on any Canadian connection."}),e.jsxs("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 rounded-lg bg-white text-primary font-semibold hover:bg-gray-100",children:["Open DeepSeek Chat ",e.jsx(wn,{className:"w-5 h-5 ml-2"})]})]})})]})]})},rle=()=>{const t=[{question:"Is DeepSeek available in the United States?",answer:"Yes. DeepSeek is fully accessible from all 50 US states â both the free web chat at chat.deepseek.com and the developer API work without a VPN. There is no federal ban, although several states (Texas, New York, Virginia) and federal agencies (US Navy, NASA, Department of Commerce) have restricted DeepSeek on government-issued devices."},{question:"Is DeepSeek safe to use in the US under CCPA?",answer:"DeepSeek processes user data on servers in China, which means personal information leaves US jurisdiction. Under the California Consumer Privacy Act (CCPA) and CPRA, California residents retain rights to know, delete and opt out â but enforcing those rights against an overseas processor is difficult. Businesses handling consumer data should obtain explicit consent and avoid pasting customer PII into the chat."},{question:"How much does DeepSeek cost in the US?",answer:"The DeepSeek web chat is free for personal use. The API is billed in US dollars: DeepSeek-V4-Flash costs $0.15 per 1M input tokens (cache miss) and $0.60 per 1M output tokens; DeepSeek-V4-Pro costs $0.66 and $1.98. The older deepseek-chat (V3) and deepseek-reasoner (R1) endpoints were switched off on 24 July 2026."},{question:"Can I use DeepSeek for my US business?",answer:"Yes â the licence permits commercial use. For regulated industries (HIPAA healthcare, GLBA finance, FedRAMP government workloads) you should either self-host the open-source DeepSeek-V3 weights on a US cloud region (AWS us-east-1, Azure East US) or use a proxy provider with US data residency such as Together AI, Fireworks or DeepInfra."},{question:"Is DeepSeek banned in any US states?",answer:"As of 2026, Texas, New York, Virginia and Tennessee have banned DeepSeek on state-government devices. Federal agencies including the US Navy, NASA, Department of Commerce and Department of Defense have similar restrictions. These bans apply to government-issued hardware only â private citizens and businesses can use DeepSeek freely."},{question:"How do I sign up for DeepSeek from the US?",answer:"Go to chat.deepseek.com, click 'Sign in' and register with your email, Google or Apple account. No phone number is required and sign-up is free. The interface auto-detects your locale and presents an English UI for US users."}],n={"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://deepseek.ai/deepseek-usa",url:"https://deepseek.ai/deepseek-usa",name:"DeepSeek USA â Free AI Chat, R1 & API for Americans",description:"Complete guide to DeepSeek in the United States: free chat access, CCPA privacy notes, US state bans, API pricing in USD and how it compares to ChatGPT.",inLanguage:"en-US"},{"@type":"FAQPage",mainEntity:t.map(s=>({"@type":"Question",name:s.question,acceptedAnswer:{"@type":"Answer",text:s.answer}}))}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("html",{lang:"en-US"}),e.jsx("title",{children:"DeepSeek USA 2026 â Free AI Chat, R1 & API in America"}),e.jsx("meta",{name:"description",content:"DeepSeek in the USA: free chat access, CCPA privacy guidance, state-level bans, API pricing in USD and a comparison with ChatGPT. No VPN required."}),e.jsx("meta",{name:"keywords",content:"deepseek usa, deepseek america, is deepseek available in usa, deepseek ccpa, deepseek banned us states, deepseek api usa"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-usa"}),e.jsx("link",{rel:"alternate",hrefLang:"en-US",href:"https://deepseek.ai/deepseek-usa"}),e.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://deepseek.ai/"}),e.jsx("link",{rel:"alternate",hrefLang:"x-default",href:"https://deepseek.ai/"}),e.jsx("meta",{property:"og:title",content:"DeepSeek USA â Free AI Chat & API Guide"}),e.jsx("meta",{property:"og:description",content:"Use DeepSeek in the United States: signup, CCPA, state bans, pricing in USD and US-specific FAQs."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-usa"}),e.jsx("meta",{property:"og:locale",content:"en_US"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2830),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek USA â Free AI Chat & API Guide"}),e.jsx("meta",{name:"twitter:description",content:"Use DeepSeek in the United States: signup, CCPA, state bans, pricing in USD and US-specific FAQs."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)})]}),e.jsxs("main",{className:"min-h-screen bg-background",children:[e.jsx("section",{className:"relative py-20 bg-gradient-to-br from-primary/5 via-background to-primary/10",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx(ur,{currentPage:"DeepSeek USA"}),e.jsxs("div",{className:"text-center mt-8",children:[e.jsxs("div",{className:"inline-flex items-center px-4 py-2 rounded-full bg-primary/10 text-primary text-sm font-medium mb-6",children:[e.jsx(O1,{className:"w-4 h-4 mr-2"})," Guide for American users"]}),e.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-foreground mb-6",children:"DeepSeek in the USA"}),e.jsx("p",{className:"text-xl md:text-2xl text-muted-foreground max-w-3xl mx-auto mb-8",children:"Everything Americans need to know â free chat access, CCPA privacy considerations, US state bans, API pricing in USD and how DeepSeek stacks up against ChatGPT."}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsxs("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-6 py-3 rounded-lg bg-primary text-primary-foreground font-semibold hover:bg-primary/90",children:[e.jsx(fh,{className:"w-5 h-5 mr-2"})," Open DeepSeek Chat ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]}),e.jsxs(se,{to:"/deepseek-vs-chatgpt",className:"inline-flex items-center justify-center px-6 py-3 rounded-lg border border-border bg-background font-semibold hover:bg-muted",children:["Compare to ChatGPT ",e.jsx(wn,{className:"w-5 h-5 ml-2"})]})]})]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-6",children:"Is DeepSeek available in the United States?"}),e.jsxs("p",{className:"text-lg text-muted-foreground mb-4",children:[e.jsx("strong",{className:"text-foreground",children:"Yes â DeepSeek works in every US state"}),", from California to New York. No VPN is required. Both the consumer chat at chat.deepseek.com and the developer API at api.deepseek.com are accessible over standard US internet connections."]}),e.jsx("p",{className:"text-lg text-muted-foreground",children:"There is no federal ban on DeepSeek for private use. However, several US states (Texas, New York, Virginia, Tennessee) and federal agencies (US Navy, NASA, Department of Commerce, Department of Defense) have restricted DeepSeek on government-issued devices over data-sovereignty concerns. These restrictions do not affect private citizens or commercial businesses."})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-4",children:"DeepSeek API pricing in US dollars"}),e.jsx("p",{className:"text-muted-foreground text-center mb-12",children:"Native USD billing â no FX conversion required."}),e.jsx("div",{className:"overflow-x-auto max-w-4xl mx-auto",children:e.jsxs("table",{className:"w-full border-collapse bg-card border border-border rounded-xl overflow-hidden",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-border bg-muted/50",children:[e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Model"}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Input (USD / 1M)"}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Output (USD / 1M)"}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Context"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-b border-border",children:[e.jsx("td",{className:"py-4 px-6 font-semibold",children:"DeepSeek-V4.1-Flash"}),e.jsx("td",{className:"py-4 px-6 text-primary font-semibold",children:"$0.15"}),e.jsx("td",{className:"py-4 px-6",children:"$0.60"}),e.jsx("td",{className:"py-4 px-6",children:"1M"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-4 px-6 font-semibold",children:"DeepSeek-V4-Pro"}),e.jsx("td",{className:"py-4 px-6 text-primary font-semibold",children:"$0.66"}),e.jsx("td",{className:"py-4 px-6",children:"$1.98"}),e.jsx("td",{className:"py-4 px-6",children:"1M"})]})]})]})}),e.jsxs("p",{className:"text-center text-sm text-muted-foreground mt-6",children:["Input rates are cache-miss, off-peak prices. Peak hours (01:00â04:00 and 06:00â10:00 UTC, Monday to Frid
2830ay) are billed at double these rates. The older ",e.jsx("code",{children:"deepseek-chat"})," (V3) and ",e.jsx("code",{children:"deepseek-reasoner"})," (R1) endpoints were switched off on 24 July 2026, so their rates no longer apply. Full breakdown on our ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline",children:"pricing page"}),"."]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-card border border-border",children:[e.jsx(rl,{className:"w-8 h-8 text-primary flex-shrink-0 mt-1"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-3",children:"CCPA and US privacy"}),e.jsxs("p",{className:"text-muted-foreground mb-3",children:["Under the ",e.jsx("strong",{children:"California Consumer Privacy Act (CCPA/CPRA)"}),", California residents have the right to know what personal information is collected, to delete it and to opt out of its sale. Because DeepSeek processes data on servers in China, enforcing those rights against the operator is practically difficult."]}),e.jsx("p",{className:"text-muted-foreground mb-3",children:"US businesses handling consumer data should:"}),e.jsxs("ul",{className:"space-y-2 mb-3",children:[e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),"Obtain explicit consent before entering customer PII"]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),"For HIPAA, GLBA or FedRAMP workloads, never use the hosted DeepSeek API"]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),"Self-host DeepSeek-V3 on AWS us-east-1, Azure East US or Together AI for US data residency"]})]}),e.jsxs("p",{className:"text-muted-foreground",children:["For personal use, treat DeepSeek like any consumer chatbot â don't paste anything you wouldn't want stored. Full analysis on our"," ",e.jsx(se,{to:"/is-deepseek-safe",className:"text-primary hover:underline",children:"DeepSeek safety page"}),"."]})]})]})})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-4",children:"Where DeepSeek is restricted in the US"}),e.jsx("p",{className:"text-muted-foreground mb-8",children:"Every restriction reported so far applies to government-issued devices and networks, not to private citizens or companies."}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full border-collapse bg-card border border-border rounded-xl overflow-hidden",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-border bg-muted/50",children:[e.jsx("th",{className:"py-3 px-5 text-left text-foreground font-semibold",children:"Jurisdiction"}),e.jsx("th",{className:"py-3 px-5 text-left text-foreground font-semibold",children:"Scope of restriction"}),e.jsx("th",{className:"py-3 px-5 text-left text-foreground font-semibold",children:"Applies to consumers?"})]})}),e.jsx("tbody",{children:[["Texas","State-owned devices and networks","No"],["New York","State government devices","No"],["Virginia","Executive-branch devices","No"],["Tennessee","State government devices","No"],["US Navy / DoD","Official hardware and networks","No"],["NASA / Dept. of Commerce","Agency devices","No"]].map(([s,r,a])=>e.jsxs("tr",{className:"border-b border-border last:border-0",children:[e.jsx("td",{className:"py-3 px-5 font-semibold text-foreground",children:s}),e.jsx("td",{className:"py-3 px-5 text-muted-foreground",children:r}),e.jsx("td",{className:"py-3 px-5 text-muted-foreground",children:a})]},s))})]})}),e.jsx("p",{className:"text-sm text-muted-foreground mt-4",children:"There is no federal ban on private or commercial use. Rules on government devices change frequently â check your own agency or state IT policy before installing anything."})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-4",children:"US data residency: running DeepSeek models on American infrastru
2830cture"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"If your workload touches HIPAA health records, GLBA financial data or a FedRAMP boundary, the hosted DeepSeek API is the wrong choice â the request leaves US jurisdiction. Because the weights are open, you can keep the model and drop the offshore transfer:"}),e.jsxs("ul",{className:"space-y-3",children:[e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Self-host on a US region"})," â AWS us-east-1 / us-west-2, Azure East US, or GCP us-central1 with vLLM or SGLang."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"US-based inference providers"})," â Together AI, Fireworks and DeepInfra serve open DeepSeek weights from American data centres with signable data terms."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Note the trade-off"})," â self-hosted routes run open weights, not the newest first-party V4-Pro checkpoint, so quality is a step behind the official API."]})]})]}),e.jsxs("p",{className:"text-sm text-muted-foreground mt-6",children:["Sizing your own GPUs? Our ",e.jsx(se,{to:"/deepseek-api",className:"text-primary hover:underline",children:"API guide"})," covers throughput, and the ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline",children:"pricing page"})," compares hosted cost against self-hosting."]})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-12",children:"DeepSeek USA â FAQ"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"space-y-4",children:t.map((s,r)=>e.jsxs(ss,{value:`item-${r}`,className:"bg-card border border-border rounded-lg px-6",children:[e.jsx(rs,{className:"text-foreground font-semibold text-left hover:no-underline",children:s.question}),e.jsx(as,{className:"text-muted-foreground",children:s.answer})]},r))})]})}),e.jsx("section",{className:"py-20 bg-primary",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-primary-foreground mb-6",children:"Try DeepSeek from the USA â free"}),e.jsx("p",{className:"text-xl text-primary-foreground/90 mb-8",children:"No credit card. No VPN. Works on any US connection."}),e.jsxs("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 rounded-lg bg-white text-primary font-semibold hover:bg-gray-100",children:["Open DeepSeek Chat ",e.jsx(wn,{className:"w-5 h-5 ml-2"})]})]})})]})]})},ale=()=>{const t=[{question:"Is DeepSeek available in the UK?",answer:"Yes. DeepSeek is fully accessible across the United Kingdom â England, Scotland, Wales and Northern Ireland â without a VPN. Both the free web chat at chat.deepseek.com and the developer API work over standard British internet connections. There is no UK government ban on DeepSeek for the general public, though the Information Commissioner's Office (ICO) has opened enquiries into its UK GDPR compliance."},{question:"Is DeepSeek safe to use in the UK under UK GDPR?",answer:"DeepSeek processes personal data on servers in China â a country without a UK adequacy decision. Under UK GDPR, transferring personal data to China requires appropriate safeguards (Standard Contractual Clauses, a Transfer Risk Assessment, or explicit consent). The ICO has signalled increased scrutiny, and UK businesses should not enter customer data into DeepSeek without a documented lawful basis."},{question:"How much does DeepSeek cost in the UK?",answer:"The DeepSeek web chat is free for personal use. The API is billed in US dollars: DeepSeek-V4-Flash costs $0.15 per 1M input tokens (cache miss) and $0.60 per 1M output tokens â roughly £0.12 and £0.47 at 1 USD = 0.79 GBP. DeepSeek-V4-Pro costs $0.66 and $1.98 (about £0.52 / £1.56). The older deepseek-chat (V3) and deepseek-reasoner (R1) endpoints were switched off on 24 July 2026."},{question:"Can I use DeepSeek for my UK business?",answer:"Yes â the licence permits commercial use. For regulated industries (FCA-regulated finance, NHS healthcare, public sector) you should either self-host the open-source DeepSeek-V3 weights on a UK cloud region (AWS eu-west-2 London, Azure UK South) or use a proxy provider with UK data residency. A Data Protection Impact Assessment (DPIA) is strongly recommended before processing personal data."},{question:"Has the UK government banned DeepSeek?",answer:"No, there is no UK-wide ban on DeepSeek as of 2026. The Information Commissioner's Office has o
2830pened enquiries into its data-handling practices, and individual government departments may choose to restrict it on official devices, but private citizens and UK businesses can use DeepSeek freely. This contrasts with Italy, which banned the consumer app in early 2025."},{question:"How do I sign up for DeepSeek from the UK?",answer:"Go to chat.deepseek.com, click 'Sign in' and register with your email, Google or Apple account. No phone number is required and sign-up is free. The interface auto-detects your locale and presents an English UI for UK users. There is no waiting list or geographic restriction."}],n={"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://deepseek.ai/deepseek-uk",url:"https://deepseek.ai/deepseek-uk",name:"DeepSeek UK â Free AI Chat, R1 & API for British Users",description:"Complete guide to DeepSeek in the United Kingdom: free chat access, UK GDPR and ICO notes, API pricing in GBP and how it compares to ChatGPT.",inLanguage:"en-GB"},{"@type":"FAQPage",mainEntity:t.map(s=>({"@type":"Question",name:s.question,acceptedAnswer:{"@type":"Answer",text:s.answer}}))}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("html",{lang:"en-GB"}),e.jsx("title",{children:"DeepSeek UK 2026 â Free AI Chat, R1 & API for Britain"}),e.jsx("meta",{name:"description",content:"DeepSeek in the UK: free chat access, UK GDPR & ICO guidance, API pricing in GBP and a comparison with ChatGPT. No VPN required."}),e.jsx("meta",{name:"keywords",content:"deepseek uk, deepseek britain, is deepseek available in uk, deepseek gdpr uk, deepseek ico, deepseek london, deepseek api uk"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-uk"}),e.jsx("link",{rel:"alternate",hrefLang:"en-GB",href:"https://deepseek.ai/deepseek-uk"}),e.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://deepseek.ai/"}),e.jsx("link",{rel:"alternate",hrefLang:"x-default",href:"https://deepseek.ai/"}),e.jsx("meta",{property:"og:title",content:"DeepSeek UK â Free AI Chat & API Guide"}),e.jsx("meta",{property:"og:description",content:"Use DeepSeek in the UK: signup, UK GDPR, ICO scrutiny, pricing in GBP and British-specific FAQs."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-uk"}),e.jsx("meta",{property:"og:locale",content:"en_GB"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"DeepSeek UK â Free AI Chat & API Guide"}),e.jsx("meta",{name:"twitter:description",content:"Use DeepSeek in the UK: signup, UK GDPR, ICO scrutiny, pricing in GBP and British-specific FAQs."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)})]}),e.jsxs("main",{className:"min-h-screen bg-background",children:[e.jsx("section",{className:"relative py-20 bg-gradient-to-br from-primary/5 via-background to-primary/10",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx(ur,{currentPage:"DeepSeek UK"}),e.jsxs("div",{className:"text-center mt-8",children:[e.jsxs("div",{className:"inline-flex items-center px-4 py-2 rounded-full bg-primary/10 text-primary text-sm font-medium mb-6",children:[e.jsx(O1,{className:"w-4 h-4 mr-2"})," Guide for British users"]}),e.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-foreground mb-6",children:"DeepSeek in the UK"}),e.jsx("p",{className:"text-xl md:text-2xl text-muted-foreground max-w-3xl mx-auto mb-8",children:"Everything British users need to know â free chat access, UK GDPR and ICO considerations, API pricing in GBP and how DeepSeek stacks up against ChatGPT."}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsxs("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-6 py-3 rounded-lg bg-primary text-primary-foreground font-semibold hover:bg-primary/90",children:[e.jsx(fh,{className:"w-5 h-5 mr-2"})," Open DeepSeek Chat ",e.jsx(Pn,{className:"w-4 h-4 ml-2"})]}),e.jsxs(se,{to:"/deepseek-vs-chatgpt",className:"inline-flex items-center justify-center px-6 py-3 rounded-lg border border-border bg-background font-semibold hover:bg-muted",children:["Compare to ChatGPT ",e.jsx(wn,{className:"w-5 h-5 ml-2"})]})]})]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-6",children:"Is DeepSeek available in the UK?"}),e.jsxs("p",{className:"text-lg text-muted-foreground mb-4",children:[e.jsx("strong",{className:"text-foreground",children:"Yes â DeepSeek works across the United Kingdom"}),", from London and Manchester to Edinburgh, Cardiff and Belfast. No VPN is required. Both the consumer chat at chat.deepseek.com and the developer API at api.deepseek.com are accessible over standard UK internet connections."]}),e.jsx("p",{className:"text-lg text-muted-foreground",children:"Unlike Italy, which banned the consumer app in early 2025, the UK has no nationwide ban. The Information Commissioner's Office (ICO) has opened enquiries into DeepSeek's UK GDPR compliance and may issue guidance, but the service remains fully available to British consumers and businesses as of 2026."})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-4",children:"DeepSeek API pricing in pounds sterling"}),e.jsx("p",{className:"text-muted-foreground text-center mb-12",children:"Converted at 1 USD = 0.79 GBP (approximate)."}),e.jsx("div",{className:"overflow-x-auto max-w-4xl mx-auto",children:e.jsxs("table",{className:"w-full border-collapse bg-card border border-border rounded-xl overflow-hidden",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-border bg-muted/50",children:[e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Model"}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Input (GBP / 1M)"}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Output (GBP / 1M)"}),e.jsx("th",{className:"py-4 px-6 text-left text-foreground font-semibold",children:"Context"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-b border-border",children:[e.jsx("td",{className:"py-4 px-6 font-semibold",children:"DeepSeek-V4.1-Flash"}),e.jsx("td",{className:"py-4 px-6 text-primary font-semibold",children:"£0.12"}),e.jsx("td",{className:"py-4 px-6",children:"£0.47"}),e.jsx("td",{className:"py-4 px-6",children:"1M"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-4 px-6 font-semibold",children:"DeepSeek-V4-Pro"}),e.jsx("td",{className:"py-4 px-6 text-primary font-semibold",children:"£0.52"}),e.jsx("td",{className:"py-4 px-6",children:"£1.56"}),e.jsx("td",{className:"py-4 px-6",children:"1M"})]})]})]})}),e.jsxs("p",{className:"text-center text-sm text-muted-foreground mt-6",children:["Billing is always in USD ($0.15 / $0.60 for V4.1-Flash, $0.66 / $1.98 for V4-Pro, off-peak); GBP figures are indicative. Peak hours (01:00â04:00 and 06:00â10:00 UTC, Monday to Frid
2830ay) cost double. The older ",e.jsx("code",{children:"deepseek-chat"})," (V3) and ",e.jsx("code",{children:"deepseek-reasoner"})," (R1) endpoints were switched off on 24 July 2026. See our ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline",children:"pricing page"}),"."]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-card border border-border",children:[e.jsx(rl,{className:"w-8 h-8 text-primary flex-shrink-0 mt-1"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold text-foreground mb-3",children:"UK GDPR, the ICO and data transfers"}),e.jsxs("p",{className:"text-muted-foreground mb-3",children:["China does not have a UK adequacy decision under ",e.jsx("strong",{children:"UK GDPR"}),". Transferring personal data to DeepSeek's Chinese servers therefore requires appropriate safeguards â typically Standard Contractual Clauses combined with a documented Transfer Risk Assessment (TRA)."]}),e.jsx("p",{className:"text-muted-foreground mb-3",children:"UK businesses should:"}),e.jsxs("ul",{className:"space-y-2 mb-3",children:[e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),"Complete a Data Protection Impact Assessment (DPIA) before processing personal data"]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),"Obtain explicit consent or identify another lawful basis under Article 6"]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),"For FCA-regulated or NHS workloads, self-host DeepSeek-V3 on AWS eu-west-2 London or Azure UK South"]})]}),e.jsxs("p",{className:"text-muted-foreground",children:["For personal use, the same caution as with any consumer AI chatbot applies â don't paste anything you wouldn't want stored. Full analysis on our"," ",e.jsx(se,{to:"/is-deepseek-safe",className:"text-primary hover:underline",children:"DeepSeek safety page"}),"."]})]})]})})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-4",children:"Sector guidance for UK organisations"}),e.jsx("p",{className:"text-muted-foreground mb-8",children:"What counts as acceptable use in Britain depends far more on your regulator than on DeepSeek itself."}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full border-collapse bg-card border border-border rounded-xl overflow-hidden",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-border bg-muted/50",children:[e.jsx("th",{className:"py-3 px-5 text-left text-foreground font-semibold",children:"Sector"}),e.jsx("th",{className:"py-3 px-5 text-left text-foreground font-semibold",children:"Hosted API with personal data?"}),e.jsx("th",{className:"py-3 px-5 text-left text-foreground font-semibold",children:"Practical route"})]})}),e.jsx("tbody",{children:[["NHS & health / social care","No","Self-host in AWS eu-west-2 or Azure UK South; DPIA plus DSPT review"],["FCA-regulated finance","No","UK-region deployment, SYSC outsourcing assessment, audit logging"],["Central & local government","No","Follow departmental AI policy; UK-hosted open weights only"],["Education","Anonymised only","Staff use for lesson prep; no pupil records in prompts"],["Startups & SMEs","With consent","Hosted API for non-personal data; keep customer PII out of prompts"]].map(([s,r,a])=>e.jsxs("tr",{className:"border-b border-border last:border-0",children:[e.jsx("td",{className:"py-3 px-5 font-semibold text-foreground",children:s}),e.jsx("td",{className:"py-3 px-5 text-muted-foreground",children:r}),e.jsx("td",{className:"py-3 px-5 text-muted-foreground",children:a})]},s))})]})}),e.jsx("p",{className:"text-sm text-muted-foreground mt-4",children:"This is general information about publicly documented obligations, not legal advice â your data protection officer has the final word."})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-4",children:"Paying for the API from the UK"}),e.jsxs("ul",{className:"space-y-3",children:[e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Billing is USD-only."})," Your bank or card issuer applies its own FX rate and, usually, a non-sterling transaction fee of around 2â3% on top of the token cost."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"Top-ups are prepaid credit,"})," not a monthly subscription, so unused balance simply sits on the account."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"VAT-registered businesses"})," buying digital services from outside the UK normally account for the reverse charge â ask your accountant how to record it."]})]}),e.jsxs("li",{className:"flex items-start text-muted-foreground",children:[e.jsx(Jt,{className:"w-4 h-4 text-primary mr-2 mt-1 flex-shrink-0"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:"GBP figures on this page are indicative."})," Model your real spend in dollars with our ",e.jsx(se,{to:"/pricing",className:"text-primary hover:underline",children:"cost c
2830alculator"}),"."]})]})]})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground text-center mb-12",children:"DeepSeek UK â FAQ"}),e.jsx(Vs,{type:"single",collapsible:!0,className:"space-y-4",children:t.map((s,r)=>e.jsxs(ss,{value:`item-${r}`,className:"bg-card border border-border rounded-lg px-6",children:[e.jsx(rs,{className:"text-foreground font-semibold text-left hover:no-underline",children:s.question}),e.jsx(as,{className:"text-muted-foreground",children:s.answer})]},r))})]})}),e.jsx("section",{className:"py-20 bg-primary",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-primary-foreground mb-6",children:"Try DeepSeek from the UK â free"}),e.jsx("p",{className:"text-xl text-primary-foreground/90 mb-8",children:"No credit card. No VPN. Works on any British connection."}),e.jsxs("a",{href:"https://chat.deepseek.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center px-8 py-4 rounded-lg bg-white text-primary font-semibold hover:bg-gray-100",children:["Open DeepSeek Chat ",e.jsx(wn,{className:"w-5 h-5 ml-2"})]})]})})]})]})},ile=()=>{const t=[{wrong:"deepsek",note:"Missing 'e' â by far the most common typo (search volume ~18K/month in the US)."},{wrong:"deepseak",note:"Extra 'a' â phonetic misspelling. Sometimes intentional brand styling, but always incorrect."},{wrong:"deep sek",note:"Two words with missing 'e' â combines both common errors."},{wrong:"deap seek",note:"'Deap' instead of 'deep' â phonetic typo from non-native English speakers."},{wrong:"deepsearch",note:"Confusion with the Perplexity feature 'Deep Search'. Different product."},{wrong:"deep-seek",note:"Hyphenated â incorrect; the official brand never uses a hyphen."},{wrong:"DeepSEEK",note:"All caps on 'SEEK' â the official capitalisation is camelCase: DeepSeek."},{wrong:"deep seek",note:"Two words â extremely common (1M+ monthly impressions). Search engines treat this as a valid variant but the brand is one word."}],n=[{q:"Is it DeepSeek or Deep Seek?",a:"The official brand name is DeepSeek â one word, camelCase. 'Deep Seek' as two words is a common spelling variant that search engines recognise, but the company itself never writes it that way."},{q:"Is 'deepsek' the same as DeepSeek?",a:"Yes â 'deepsek' is the most common typo for DeepSeek. People search for it about 18,000 times per month in the US alone. There is no separate product called Deepsek."},{q:"How do you pronounce DeepSeek?",a:"DeepSeek is pronounced 'deep-seek' â exactly like the two English words 'deep' and 'seek' read together. The 'ee' sounds are long, as in 'meet' and 'feet'."}],s={"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://deepseek.ai/deepseek-correct-spelling",url:"https://deepseek.ai/deepseek-correct-spelling",name:"Deepsek or DeepSeek? Correct Spelling Explained",description:"The correct spelling is DeepSeek â one word, camelCase. Common typos include deepsek, deepseak, deap seek and deep sek.",inLanguage:"en"},{"@type":"FAQPage",mainEntity:n.map(r=>({"@type":"Question",name:r.q,acceptedAnswer:{"@type":"Answer",text:r.a}}))}]};return e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Deepsek or DeepSeek? Correct Spelling & Common Typos"}),e.jsx("meta",{name:"description",content:"The correct spelling is DeepSeek â one word, camelCase. See common misspellings like deepsek, deepseak, deap seek and deep sek."}),e.jsx("meta",{name:"keywords",content:"deepsek, deepseak, deep sek, deap seek, deepsearch, how to spell deepseek, deepseek correct spelling"}),e.jsx("link",{rel:"canonical",href:"https://deepseek.ai/deepseek-correct-spelling"}),e.jsx("meta",{property:"og:title",content:"Deepsek or DeepSeek? Correct Spelling Explained"}),e.jsx("meta",{property:"og:description",content:"DeepSeek is the correct spelling. Here are 8 common typos and what they all refer to."}),e.jsx("meta",{property:"og:url",content:"https://deepseek.ai/deepseek-correct-spelling"}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:image",content:"https://deepseek.ai/og-image.png"}
2830),e.jsx("meta",{property:"og:image:width",content:"1200"}),e.jsx("meta",{property:"og:image:height",content:"630"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"Deepsek or DeepSeek? Correct Spelling Explained"}),e.jsx("meta",{name:"twitter:description",content:"DeepSeek is the correct spelling. Here are 8 common typos and what they all refer to."}),e.jsx("meta",{name:"twitter:image",content:"https://deepseek.ai/og-image.png"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})]}),e.jsxs("main",{className:"min-h-screen bg-background",children:[e.jsx("section",{className:"py-16 bg-gradient-to-br from-primary/5 via-background to-primary/10",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx(ur,{currentPage:"Correct Spelling"}),e.jsxs("div",{className:"mt-8",children:[e.jsxs("div",{className:"inline-flex items-center px-3 py-1 rounded-full bg-primary/10 text-primary text-sm font-medium mb-4",children:[e.jsx($r,{className:"w-4 h-4 mr-2"})," Spelling Guide"]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-foreground mb-6",children:"Is it Deepsek or DeepSeek? Here's the correct spelling"}),e.jsxs("p",{className:"text-xl text-muted-foreground mb-8",children:["The correct spelling is ",e.jsx("strong",{className:"text-primary",children:"DeepSeek"})," â one word, camelCase, capital D and capital S. Everything else (deepsek, deepseak, deap seek, deep sek) is a typo for the same Chinese AI company."]}),e.jsxs("div",{className:"p-6 rounded-xl bg-card border-2 border-primary mb-8",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx(Jt,{className:"w-6 h-6 text-primary"}),e.jsx("span",{className:"text-sm font-semibold text-primary",children:"CORRECT"})]}),e.jsx("p",{className:"text-3xl font-bold text-foreground",children:"DeepSeek"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"One word · Capital D · Capital S · No hyphen · No space"})]}),e.jsxs(se,{to:"/",className:"inline-flex items-center px-6 py-3 rounded-lg bg-primary text-primary-foreground font-semibold hover:bg-primary/90",children:["Visit DeepSeek homepage ",e.jsx(wn,{className:"w-5 h-5 ml-2"})]})]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-8",children:"Common misspellings of DeepSeek"}),e.jsx("div",{className:"space-y-4",children:t.map(r=>e.jsxs("div",{className:"p-5 rounded-lg bg-card border border-border",children:[e.jsxs("div",{className:"flex flex-wrap items-baseline gap-3 mb-2",children:[e.jsx("span",{className:"text-2xl font-bold text-muted-foreground line-through",children:r.wrong}),e.jsx(wn,{className:"w-4 h-4 text-muted-foreground"}),e.jsx("span",{className:"text-2xl font-bold text-primary",children:"DeepSeek"})]}),e.jsx("p",{className:"text-muted-foreground",children:r.note})]},r.wrong))})]})}),e.jsx("section",{className:"py-16 bg-muted/30",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-6",children:"Why so many people misspell DeepSeek"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-4",children:`DeepSeek launched into global awareness in January 2025 when its R1 reasoning model topped benchmarks at a fraction of OpenAI's cost. Hundreds of millions of people heard the name spoken before they ever saw it written â and "deep seek" is naturally easy to mis-type as "deepsek" (skipping the second 'e') or "deepseak" (adding an 'a' to match the spoken stress).`}),e.jsxs("p",{className:"text-lg text-muted-foreground mb-4",children:["The official company name in English is ",e.jsx("strong",{children:"DeepSeek"}),", sometimes written as ",e.jsx("strong",{children:"DeepSeek AI"}),'. In Chinese it is 深度æ±ç´¢ (ShÄndù QiúsuÇ), which literally translates to "deep search" or "deep seek" â exactly the origin of the English brand.']}),e.jsxs("p",{className:"text-lg text-muted-foreground",children:["Whichever spelling brought you here, you've landed in the right place. Continue to our"," ",e.jsx(se,{to:"/what-is-deepseek-ai",className:"text-primary hover:underline",children:"DeepSeek AI guide"})," or jump straight into the"," ",e.jsx(se,{to:"/chat",className:"text-primary hover:underline",children:"free chat"}),"."]})]})}),e.jsx("section",{className:"py-16 bg-background",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-8",children:"FAQ"}),e.jsx("div",{className:"space-y-4",children:n.map((r,a)=>e.jsxs("div",{className:"p-6 rounded-lg bg-card border border-border",children:[e.jsx("h3",{className:"font-semibold text-foreground mb-2",children:r.q}),e.jsx("p",{className:"text-muted-foreground",children:r.a})]},a))})]})}),e.jsx("section",{className:"py-16 bg-primary",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center",children:[e.jsx("h2",{className:"text-3xl font-bold text-primary-foreground mb-6",children:"Now you've got the spelling right â try DeepSeek"}),e.jsxs(se,{to:"/",className:"inline-flex items-center px-8 py-4 rounded-lg bg-white text-primary font-semibold hover:bg-gray-100",children:["Go to DeepSeek ",e.jsx(wn,{className:"w-5 h-5 ml-2"})]})]})})]})]})},ole=()=>e.jsxs(e.Fragment,{children:[e.jsxs(ut,{children:[e.jsx("title",{children:"Page Not Found â DeepSeek.ai"}),e.jsx("meta",{name:"robots",content:"noindex, follow"}),e.jsx("meta",{name:"description",content:"The page you're looking for doesn't exist on DeepSeek.ai. Browse our DeepSeek guides, comparisons and news instead."})]}),e.jsx("main",{className:"min-h-[70vh] flex items-center justify-center px-4 pt-24 pb-12",children:e.jsxs("div",{className:"max-w-xl text-center",children:[e.jsx("p",{className:"text-sm font-semibold text-primary mb-2",children:"404"}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mb-4",children:"This page doesn't exist"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-8",children:"The URL you tried isn't on DeepSeek.ai. It may have been moved, mistyped, or never existed. Try one of the popular pages below."}),e.jsxs("div",{className:"flex flex-wrap gap-3 justify-center mb-10",children:[e.jsx(se,{to:"/",className:"px-4 py-2 rounded-full bg-primary text-white text-sm font-medium hover:bg-primary/90",children:"Home"}),e.jsx(se,{to:"/blog",className:"px-4 py-2 rounded-full bg-secondary text-sm font-medium hover:bg-secondary/80",children:"Blog"}),e.jsx(se,{to:"/deepseek-vs-chatgpt",className:"px-4 py-2 rounded-full bg-secondary text-sm font-medium hover:bg-secondary/80",children:"DeepSeek vs ChatGPT"}),e.jsx(se,{to:"/deepseek-r1",className:"px-4 py-2 rounded-full bg-secondary text-sm font-medium hover:bg-secondary/80",children:"DeepSeek R1"}),e.jsx(se,{to:"/deepseek-v4",className:"px-4 py-2 rounded-full bg-secondary text-sm font-medium hover:bg-secondary/80",children:"DeepSeek V4"}),e.jsx(se,{to:"/pricing",className:"px-4 py-2 rounded-full bg-secondary text-sm font-medium hover:bg-secondary/80",children:"Pricing"})]}),e.jsxs("a",{href:"https://chromewebstore.google.com/detail/ai-sidebar-with-deepseek/inhcgfpbfdjbjogdfjbclgolkmhnooop",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center px-6 py-3 text-base font-medium rounded-full text-white bg-primary hover:bg-primary/90 shadow",children:[e.jsx(Fs,{className:"mr-2 h-5 w-5"}),"Get the free Chrome extension"]})]})})]}),lle=[{path:"/.lovable/oauth/consent",element:e.jsx(QK,{})},{path:"/.lovable/oauth/signin",element:e.jsx(JK,{})},{path:"/",element:e.jsx(BW,{}),children:[{index:!0,element:e.jsx(WQ,{})},{path:"chat",element:e.jsx(Zoe,{})},{path:"seo-report",element:e.jsx(tle,{})},{path:"pricing",element:e.jsx(ZX,{})},{path:"docs",element:e.jsx(eZ,{})},{path:"about",element:e.jsx(lY,{})},{path:"solutions",element:e.jsx(XY,{})},{path:"blog",element:e.jsx(pY,{})},{path:"blog/:slug",element:e.jsx(YY,{}),getStaticPaths:()=>dY.map(t=>`/blog/${t}`)},{path:"blog/vibe-coding",element:e.jsx(oJ,{})},{path:"blog/ai-chat",element:e.jsx(dJ,{})},{path:"blog/deepseek-r2-challenges",element:e.jsx(hJ,{})},{path:"blog/what-is-deep-learning-ai",element:e.jsx(uJ,{})},{path:"blog/what-is-deep-seek",element:e.jsx(pJ,{})},{path:"blog/deepseek-v31",element:e.jsx(mJ,{})},{path:"blog/deepseek-v31-silent-revolution",element:e.jsx(fJ,{})},{path:"blog/deepseek-terminus-upgrade",element:e.jsx(yJ,{})},{path:"blog/deepseek-ocr-context-compression",element:e.jsx(vJ,{})},{path:"blog/deepseek-chen-deli-ai-humanity-warning",element:e.jsx(jJ,{})},{path:"blog/deepseek-math-v2",element:e.jsx(NJ,{})},{path:"blog/reasoning-era-gemini-3-deepseek",element:e.jsx(AJ,{})},{path:"blog/deepseek-guide-2026",element:e.jsx(DJ,{})},{path:"blog/deepseek-mhc-manifold-constrained-hyper-connections",element:e.jsx(IJ,{})}
2830,{path:"blog/deepseek-engram-v4-architecture",element:e.jsx(_J,{})},{path:"blog/deepseek-v4-next-move",element:e.jsx(PJ,{})},{path:"blog/claude-opus-4-8-vs-deepseek-v4",element:e.jsx(LJ,{})},{path:"blog/deepseek-50-billion-funding-round",element:e.jsx(MJ,{})},{path:"blog/deepseek-raises-7-4-billion-bizarre-deal",element:e.jsx(RJ,{})},{path:"blog/how-to-use-deepseek-v4-better-than-99-percent",element:e.jsx(OJ,{})},{path:"blog/deepseek-dspark-speculative-decoding",element:e.jsx(zJ,{})},{path:"blog/inside-deepseek-dspark-lossless-inference",element:e.jsx(qJ,{})},{path:"blog/deepseek-own-ai-chip-inference-silicon",element:e.jsx(HJ,{})},{path:"blog/deepseek-v4-ga-surge-pricing-migration",element:e.jsx($J,{})},{path:"blog/deepseek-chat-reasoner-retired-billing-impact",element:e.jsx(WJ,{})},{path:"blog/deepseek-v4-flash-ga-agent-benchmarks",element:e.jsx(KJ,{})},{path:"blog/deepseek-reasonix-coding-agent-cli",element:e.jsx(YJ,{})},{path:"blog/deepseek-harness-open-source-claude-code-alternative",element:e.jsx(eX,{})},{path:"blog/deepseek-v5-release-date-rumors",element:e.jsx(sX,{})},{path:"blog/deepseek-v41-flash-vs-gpt6-astra-four-builds",element:e.jsx(lX,{})},{path:"blog/deepseek-vision-api-guide",element:e.jsx(hX,{})},{path:"blog/leak-catl-deepseek-investor",element:e.jsx(mX,{})},{path:"blog/deepseek-agi-10-billion-funding-round",element:e.jsx(xX,{})},{path:"blog/deepseek-v4-pro-api-price-cut-permanent",element:e.jsx(vX,{})},{path:"blog/deepseek-v41-flash-beta-native-multimodal",element:e.jsx(wX,{})},{path:"blog/deepseek-huawei-ascend-160000-chip-cluster",element:e.jsx(kX,{})},{path:"blog/deepseek-hiring-150-engineers-systems-shift",element:e.jsx(SX,{})},{path:"blog/what-is-deepseek-ai",element:e.jsx(WA,{})},{path:"blog/llama-4-vs-deepseek",element:e.jsx(gJ,{})},{path:"blog/deepseek-v4-flash-review",element:e.jsx(ZA,{})},{path:"blog/deepseek-v4-compressed-attention",element:e.jsx(UX,{})},{path:"blog/deepseek-v4-unveiled-1-6-trillion-parameters",element:e.jsx(qX,{})},{path:"blog/deepseek-r2-ai-model-launch-2025",element:e.jsx(xJ,{})},{path:"contact",element:e.jsx(JY,{})},{path:"login",element:e.jsx(ele,{})},{path:"deepseek-login",element:e.jsx(x4,{to:"/login",replace:!0})},{path:"deepseek-pricing",element:e.jsx(x4,{to:"/pricing",replace:!0})},{path:"deepseek-stock",element:e.jsx(ZY,{})},{path:"deepseek-r1",element:e.jsx(nJ,{})},{path:"deep-learning-ai",element:e.jsx(iJ,{})},{path:"what-is-deepseek-ai",element:e.jsx(WA,{})},{path:"deepseek-ai",element:e.jsx(AX,{})},{path:"deepseek-api",element:e.jsx(_X,{})},{path:"deepseek-vs-chatgpt",element:e.jsx(TX,{})},{path:"deepseek-vs-claude",element:e.jsx(PX,{})},{path:"deepseek-vs-gemini",element:e.jsx(LX,{})},{path:"deepseek-vs-perplexity",element:e.jsx(MX,{})},{path:"deepseek-vs-llama",element:e.jsx(RX,{})},{path:"deepseek-vs-mistral",element:e.jsx(OX,{})},{path:"deepseek-vs-stepfun",element:e.jsx(FX,{})},{path:"deepseek-v4",element:e.jsx(zX,{})},{path:"deepseek-v4-flash-review",element:e.jsx(ZA,{})},{path:"is-deepseek-safe",element:e.jsx(HX,{})},{path:"privacy-policy",element:e.jsx($X,{})},{path:"chrome-extension-uninstall",element:e.jsx(lJ,{})},{path:"chrome-extension-update",element:e.jsx(cJ,{})},{path:"deepseek-deutsch",element:e.jsx(nle,{})},{path:"deepseek-canada",element:e.jsx(sle,{})},{path:"deepseek-usa",element:e.jsx(rle,{})},{path:"deepseek-uk",element:e.jsx(ale,{})},{path:"deepseek-correct-spelling",element:e.jsx(ile,{})},{path:"*",element:e.jsx(ole,{})}]}];DV({routes:lle});export{Jn as _,ca as c,ad as g,tg as r}; 2831//# sourceMappingURL=app-CSG9M24J.js.map
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.