react-toolkits 2.9.27 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1,2796 +1,25 @@
1
1
  import { lazy, useContext, useMemo, useState, useRef, useEffect, createContext, memo, useCallback, forwardRef, Fragment as Fragment$1, Suspense, useImperativeHandle, cloneElement } from 'react';
2
2
  import { useStore, create, createStore } from 'zustand';
3
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
4
4
  import { pick, has, template, get, isEqual } from 'lodash-es';
5
- import * as Antd2 from 'antd';
6
- import { Modal, Form, theme, Space, Input, Tag, Typography, Spin, Result, Table, Button, Card, Select, Alert, Divider, Menu, App, Row, Col, Breadcrumb, Skeleton, Descriptions, Empty, Dropdown, Tooltip, Collapse, Checkbox } from 'antd';
5
+ import * as Me from 'antd';
6
+ import { Modal, Form, theme, Space, Input, Tag, Typography, Spin, Table, Button, Result, Card, Select, Alert, Divider, Menu, App, Row, Col, Breadcrumb, Skeleton, Descriptions, Empty, Dropdown, Tooltip, Collapse, Checkbox } from 'antd';
7
7
  import { flushSync } from 'react-dom';
8
8
  import { createRoot } from 'react-dom/client';
9
- import logoUrl from './logo-L6MFCL6M.png';
9
+ import u1 from './logo-L6MFCL6M.png';
10
10
  import { persist, createJSONStorage } from 'zustand/middleware';
11
11
  import { Routes, Route, Navigate, useNavigate, useLocation, Link, useParams } from 'react-router-dom';
12
12
  import { jwtDecode } from 'jwt-decode';
13
- import useSWRImmutable from 'swr/immutable';
14
13
  import { PlusOutlined, UserAddOutlined, UsergroupAddOutlined, LogoutOutlined, UserOutlined, MenuUnfoldOutlined, MenuFoldOutlined } from '@ant-design/icons';
15
- import qs from 'query-string';
16
- import useSWR3, { mutate, unstable_serialize } from 'swr';
17
- import useSWRMutation from 'swr/mutation';
14
+ import ft from 'axios';
15
+ import lr, { mutate, unstable_serialize } from 'swr';
16
+ import cr from 'swr/immutable';
17
+ import ye from 'swr/mutation';
18
18
  import { produce } from 'immer';
19
- import useSWRInfinite from 'swr/infinite';
20
- import dayjs from 'dayjs';
19
+ import vs from 'query-string';
20
+ import hr from 'swr/infinite';
21
+ import aa from 'dayjs';
21
22
 
22
- var __defProp = Object.defineProperty;
23
- var __getOwnPropNames = Object.getOwnPropertyNames;
24
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
25
- var __esm = (fn, res) => function __init() {
26
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
27
- };
28
- var __export = (target, all) => {
29
- for (var name in all)
30
- __defProp(target, name, { get: all[name], enumerable: true });
31
- };
32
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
23
+ var Et=Object.defineProperty;var Vo=(e,s,t)=>s in e?Et(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t;var _=(e,s)=>()=>(e&&(s=e(e=0)),s);var Ze=(e,s)=>{for(var t in s)Et(e,t,{get:s[t],enumerable:!0});};var et=(e,s,t)=>Vo(e,typeof s!="symbol"?s+"":s,t);var Go,Ut,Ot=_(()=>{Go={global:{noEntitlement:"No permission, please contact the administrator.",name:"Name",creationTime:"Creation Time",operation:"Operation",update:"Update",edit:"Edit",delete:"Delete",selectAll:"Select All",game:"Game",user:"User",role:"Role",username:"Username",password:"Password",label:"Label",method:"Method",route:"Route",request:"Request",response:"Response",add:"Add",signIn:"Sign In"},SignIn:{title:"Sign In Method",thirdParty:"Third party sign in",signInWithIDass:"Sign in with IDass",unregistered:"You are not yet registered on the platform, please contact the administrator",welcome:"Welcome"},NotFound:{subTitle:"The page you visited does not exist",buttonText:"Return to homepage"},FilterFormWrapper:{confirmText:"Search",resetText:"Reset"},FormModal:{confirmText:"Confirm",cancelText:"Cancel"},GameSelect:{label:"Current Game",placeholder:"Please select a game"},RequireGame:{description:"Please select a game"},UserWidget:{signOutText:"Sign Out"},UserList:{createTitle:"Create User",createSuccessfully:"User created successfully",updateTitle:"Update User",updateSuccessfully:"User updated successfully",deleteTitle:"Delete User",deleteContent:"Are you sure you want to delete user <%= user %>?",deleteSuccessfully:"User deleted successfully"},RoleList:{createTitle:"Create Role",createSuccessfully:"Role created successfully",updateTitle:"Update Role",updateSuccessfully:"Role updated successfully",deleteTitle:"Delete Role",deleteContent:"Are you sure you want to delete role <%= role %>?",deleteSuccessfully:"Role deleted successfully"},PermissionList:{failedDescription:"Failed to get permission list",baseSectionTitle:"Platform Basic Permissions",gameSectionTitle:"Game Permissions",gameSectionDescription:"Please select a game first",gameSelectPlaceholder:"Please select a game first",removeText:"Remove",addText:"Add Game Permissions"},RoleDetail:{title:"Role Details"},InfiniteList:{loadingText:"Loading...",reachEndText:"You've reached the end",loadMoreText:"Load more"}},Ut=Go;});function I(e){let s=useContext(Nt);if(!s)throw new Error("Missing ToolkitsContext.Provider in the tree");return useStore(s,e)}var Oo,J,Nt,Bt,No,Wt=_(()=>{Ot();Oo=e=>{let s={locale:Ut,usePermissionApiV2:!1,gameApiV2:!1};return createStore()(t=>({...s,...e,setContext:o=>{t({...o});}}))},Nt=createContext(null);Bt=e=>{let{children:s,...t}=e,o=useRef();return o.current||(o.current=Oo(t)),J=o.current,jsx(Nt.Provider,{value:o.current,children:s})};process.env.NODE_ENV!=="production"&&(Bt.displayName="ContextProvider");No=Bt;});var z=_(()=>{Wt();});function b(){let e=I(t=>t.locale);return {t:useMemo(()=>(t,o)=>has(e,t)?template(get(e,t))(o):t,[e])}}var qt=_(()=>{z();});var R=_(()=>{qt();});var r1,we,Xt=_(()=>{R();r1=e=>{let{extras:s,isConfirming:t,onConfirm:o,onReset:r,children:i,buttonsAlign:n="left",showReset:d}=e,{t:a}=b(),{token:{colorFillAlter:h,lineWidth:p,lineType:c,colorBorder:u,borderRadiusLG:y}}=theme.useToken();return jsx("div",{style:{maxWidth:"none",background:h,borderWidth:p,borderStyle:c,borderColor:u,borderRadius:y,padding:24,marginBottom:24},children:jsxs("div",{className:`flex ${n==="bottom"?"flex-col":"flex-row"}`,children:[jsx("div",{className:`${n==="left"?"flex-grow-0":"flex-1"}`,children:i}),jsx("div",{className:`${n==="bottom"?"text-end":"text-start"} ml-4`,children:jsxs(Space,{children:[jsx(Button,{type:"primary",loading:t,onClick:o,children:a("FilterFormWrapper.confirmText")}),s?.map(l=>jsx(Fragment$1,{children:l.children},l.key)),d&&jsx(Button,{onClick:r,children:a("FilterFormWrapper.resetText")})]})})]})})},we=r1;});var Ae=_(()=>{Xt();});function p1(e){let s=document.createElement("div"),t=createRoot(s);return new Promise(o=>{setTimeout(()=>{flushSync(()=>{t.render(e);}),o(s.innerHTML);});})}var c1,m1,Pe,Zt=_(()=>{c1=e=>{let s=/(<[^>]*>)/;return e.split(s).filter(t=>t!=="")};m1=e=>{let{texts:s,children:t}=e,[o,r]=useState("");return useEffect(()=>{p1(t).then(i=>{let n=c1(i);for(let d of s)for(let a=0;a<n.length;a++)n[a]=n[a].replace(String(d),`<span style='color: #DC143C;'>${d}</span>`);r(n.join(""));});},[t,s]),jsx("div",{dangerouslySetInnerHTML:{__html:o}})},Pe=m1;});var Ee=_(()=>{Zt();});var f1,ue,es=_(()=>{f1=e=>jsx("img",{src:u1,alt:"logo",...e}),ue=f1;});var st=_(()=>{es();});var ts,ss=_(()=>{ts=create()(persist(e=>({openKeys:[],setOpenKeys:s=>e({openKeys:s}),selectedKeys:[],setSelectedKeys:s=>e({selectedKeys:s})}),{name:"nav",storage:createJSONStorage(()=>localStorage),partialize:e=>({openKeys:e.openKeys,selectedKeys:e.selectedKeys})}));});function ot(e){let s=[];if(e)for(let t=0;t<e.length;t++)if(e[t]===null||e[t].type==="divider")s[t]=e[t];else if(e[t].children){let{children:o,...r}=e[t];s[t]={...r,children:ot(o)};}else {let{route:o,label:r,...i}=e[t],n=o?jsx(Link,{to:o,children:r}):r;s[t]={...i,label:n};}return s}function rt(e,s=[],t=[]){for(let o of e){let r=o?.children;if(Array.isArray(r)){let i=o.type!=="group"&&o.key?[...t,o.key]:t;rt(r,s,i);}else o&&s.push(Object.assign(o,{keypath:t}));}return s}var os=_(()=>{});var as,it,is=_(()=>{ss();os();as=memo(function(s){let{items:t,theme:o,loading:r}=s,i=useLocation(),n=useMemo(()=>rt(t??[]),[t]),d=useMemo(()=>ot(t??[]),[t]),{openKeys:a,selectedKeys:h,setOpenKeys:p,setSelectedKeys:c}=ts(),u=useCallback(y=>{let m=y?.find(f=>a?.indexOf(f)===-1),l=n.find(f=>m===f.key);p(l?.keypath??[m]);},[n,a,p]);return useEffect(()=>{let y=n.find(m=>i.pathname===m.route);if(y){let m=y.key,l=y.keypath;c([m]),p(l);}},[n,i]),r?jsx("div",{className:"flex justify-center items-center",style:{height:"calc(100vh - 64px)"},children:jsx(Spin,{})}):jsx(Menu,{theme:o,style:{borderRight:"none"},items:d,mode:"inline",openKeys:a,selectedKeys:h,onOpenChange:u})});process.env.NODE_ENV==="development"&&(as.displayName="NavMenu");it=as;});var nt=_(()=>{is();});var T1,k1,lt,ls=_(()=>{z();ve();R();(({Spin:T1}=Me)),k1=e=>{let{hideGameSelect:s,children:t}=e,o=I(d=>d.usePermissionApiV2),{game:r,isLoading:i}=K(),{t:n}=b();return i?jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:200},children:jsx(T1,{})}):o&&!s&&!r?jsx(Empty,{image:Empty.PRESENTED_IMAGE_SIMPLE,description:n("RequireGame.description")}):jsx(Fragment$1,{children:t},r?.id??r?.game_id)},lt=k1;});var ct=_(()=>{ls();});var Y,fe=_(()=>{Y=create()(persist((e,s,t)=>({token:"",getUser:()=>{try{return jwtDecode(s().token)}catch{return null}},setToken:o=>e({token:o}),clearToken:()=>{s().setToken(""),t.persist.clearStorage();}}),{name:"token",partialize:e=>({token:e.token})}));});var U1,pt,cs=_(()=>{fe();R();U1=e=>{let{logoutRedirectUrl:s}=e,{t}=b(),o=useNavigate(),{clearToken:r,getUser:i}=Y(),n=i(),d=[{key:"1",icon:jsx(LogoutOutlined,{}),label:jsx("a",{onClick:()=>{r(),o(s);},children:t("UserWidget.signOutText")})}];return jsx("div",{children:jsx(Dropdown,{menu:{selectable:!0,items:d},placement:"bottomRight",children:jsx("a",{onClick:a=>{a.preventDefault();},children:jsxs(Space,{align:"center",children:[jsx("span",{children:n?.authorityId}),jsx(UserOutlined,{style:{fontSize:"16px"}})]})})})})},pt=U1;});var mt=_(()=>{cs();});var ps,dt=_(()=>{ps={getItem:e=>sessionStorage.getItem(e)||localStorage.getItem(e),setItem:(e,s)=>{sessionStorage.setItem(e,s),localStorage.setItem(e,s);},removeItem:async e=>{sessionStorage.removeItem(e),localStorage.removeItem(e);}};});var gs,K,Oe=_(()=>{dt();z();gs=create()(persist(e=>({collapsed:!1,setCollapsed:s=>e({collapsed:s})}),{name:"layout",storage:createJSONStorage(()=>localStorage),partialize:e=>({collapsed:e.collapsed})})),K=create()(persist((e,s)=>({initialized:!1,isLoading:!1,game:null,games:[],async fetchGames({apiV2:t=J.getState().gameApiV2,forceUpdate:o=!1}={}){if(!o&&s().initialized)return s().games;try{e({isLoading:!0});let r;return t?r=(await ft.get("/api/game/list")).data.data.list??[]:r=(await ft.get("/api/usystem/game/all")).data.data??[],e({games:r}),r}finally{e({initialized:!0,isLoading:!1});}}}),{name:"game",storage:createJSONStorage(()=>ps),partialize:e=>({game:e.game})}));});var K1,H1,ys,xs=_(()=>{z();R();Oe();(({Text:K1}=Typography)),H1=e=>{let{filter:s,onGameChange:t}=e,{t:o}=b(),{game:r,games:i,isLoading:n,fetchGames:d}=K(),a=I(c=>c.gameApiV2);useEffect(()=>{d({apiV2:a});},[]);let h=i?.filter(c=>s?.(c)??!0)?.map(c=>({label:c.name,value:a?c.game_id:c.id})),p=async c=>{let u=i.find(y=>String(a?y.game_id:y.id)===String(c));K.setState({game:u}),t?.(u);};return jsxs(Space,{children:[jsx(K1,{children:o("GameSelect.label")}),jsx(Select,{showSearch:!0,optionFilterProp:"label",value:a?r?.game_id:r?.id,placeholder:o("GameSelect.placeholder"),loading:n,style:{width:"200px"},options:h,onChange:p})]})},ys=H1;});var _s=_(()=>{});var X1,Z1,er,tr,sr,or,rr,Cs=_(()=>{z();st();nt();ct();mt();xs();Oe();_s();(({Spin:X1,theme:Z1}=Me)),{Header:er,Sider:tr,Content:sr}=Me.Layout,or=e=>{let{menuCollapsible:s,isMenuLoading:t,title:o,items:r,headerExtra:i,hideGameSelect:n,children:d,navWidth:a,logoutRedirectUrl:h,filter:p,onGameChange:c}=e,{token:{colorBgContainer:u,colorBorder:y}}=Z1.useToken(),m=I(x=>x.usePermissionApiV2),{collapsed:l,setCollapsed:f}=gs();return jsxs(Me.Layout,{children:[jsxs(tr,{collapsible:!0,theme:"light",trigger:null,collapsed:l,width:a,style:{height:"100vh",overflow:"auto",borderRightWidth:1,borderRightStyle:"solid",borderRightColor:y},children:[jsxs("div",{className:"flex gap-2 px-6 py-4 overflow-hidden",children:[jsx(ue,{width:32,height:32}),(!s||!l)&&jsx("div",{className:"h-8 flex items-center expand",children:o})]}),jsx(it,{items:r,loading:t})]}),jsxs(Me.Layout,{children:[jsx(er,{style:{padding:"0 24px",background:u},children:jsxs("div",{className:"flex justify-between items-center h-full",children:[jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),className:"mr-6",children:[s&&jsx(Button,{type:"text",icon:l?jsx(MenuUnfoldOutlined,{}):jsx(MenuFoldOutlined,{}),style:{fontSize:"16px"},onClick:async()=>{f(!l);}}),m&&!n&&jsx(ys,{filter:p,onGameChange:c}),i?.left?.map(x=>jsx("span",{children:x.children},x.key))]}),jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),children:[i?.right?.map(x=>jsx("span",{children:x.children},x.key)),jsx(pt,{logoutRedirectUrl:h})]})]})}),jsx(sr,{style:{overflow:"auto",padding:"24px 16px",maxHeight:"calc(100vh - 64px)"},children:jsx(Suspense,{fallback:jsx(X1,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"200px"}}),children:jsx(lt,{hideGameSelect:n,children:d})})})]})]})},rr=or;});var ve=_(()=>{Cs();Oe();});var ut,C,B=_(()=>{ut="https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1",C="App-ID";});var pr,V,ie,ws,ne=_(()=>{z();ve();B();fe();pr=ft.create({baseURL:"/",headers:{"Content-Type":"application/json; charset=utf-8"}}),V=()=>{let{notification:e}=App.useApp(),{token:s,clearToken:t}=Y(),o=useNavigate(),{signInPath:r,usePermissionApiV2:i,gameApiV2:n}=I(h=>h),{game:d}=K();return useCallback(async h=>{let{responseType:p="json",headers:c,...u}=h,y={...c,Accept:p==="blob"?"application/octet-stream":"application/json",Authorization:s?`Bearer ${s}`:void 0,[C]:c?.[C]??(i?n?d?.game_id:d?.id:void 0)};try{let m=await pr.request({...u,responseType:p,headers:y});if(p==="json"){let l=m.data;if(l.code===0||l.code===200||l.status===0)return l.data;throw e.error({message:"Request failed",description:l.msg}),new Error(l.msg)}return m}catch(m){if(console.log("error",m,ft.isAxiosError(m)),ft.isAxiosError(m)){let l=m.response;if(!l)throw m;if(l.status===401)if(t(),r)o(r);else throw new Error;else if(l.status===403)e.error({message:"Forbidden",description:"You do not have permission to access this resource."});else if(l.status===412)if(t(),r)o(r);else throw new Error;else throw e.error({message:"Request failed",description:l.data.msg}),new Error(l.data.msg)}else throw m}},[o,t,e,s,d,r])},ie=(e,s)=>{let t=V();return lr(e,t,s)},ws=(e,s)=>{let t=V();return cr(e,t,s)};});function gt(e=[],s){let o=I(a=>a.usePermissionApiV2)?"/api/usystem/user/checkV2":"/api/usystem/user/check",r=e.length?{...s,method:"POST",url:o,data:{permissions:e}}:null,{data:i,...n}=ie(r),d=i?.has_all?e.reduce((a,h)=>(a[h]=!0,a),{}):e.reduce((a,h)=>(a[h]=i?.[h]??!1,a),{});return {...n,data:d}}function W(e,s){let{data:t,isValidating:o,isLoading:r}=gt(e?[e]:void 0,s);return e===void 0?{accessible:!0,isValidating:!1,isLoading:!1}:{accessible:t?.[e]??!1,isValidating:o,isLoading:r}}var X=_(()=>{z();ne();});var Cr,H,Is=_(()=>{X();R();Cr=e=>{let{children:s,code:t,showLoading:o,disabled:r,headers:i,...n}=e,{data:d,isLoading:a}=gt(Array.isArray(t)?t:[t],{headers:i}),{t:h}=b();return a?jsx(Button,{loading:o,disabled:!o,...n,children:s}):Object.values(d??{})?.some(Boolean)?jsx(Button,{disabled:r,...n,children:s}):jsx(Tooltip,{defaultOpen:!1,title:h("global.noEntitlement"),children:jsx(Button,{disabled:!0,...n,children:s})})},H=Cr;});var Be=_(()=>{Is();});var j,Ie=_(()=>{j=create((e,s)=>({keyMap:new Map,payloadMap:new Map,getPayload(t){return s().payloadMap.get(t)??{page:1}},setPayload(t,o){e(r=>({payloadMap:new Map(r.payloadMap).set(t,o)}));},refetch(t,o){let r=s().getPayload(t),i={...r,...o};isEqual(r,i)?s().mutate(t,void 0):s().setPayload(t,i);},mutate(t,o,r){let i=s().keyMap.get(t);return mutate(i,o,r)}}));});var ks,zr,Ar,le,Ls=_(()=>{ne();X();Ae();R();Ie();ks=(r=>(r[r.Confirm=0]="Confirm",r[r.Reset=1]="Reset",r[r.Jump=2]="Jump",r[r.Init=3]="Init",r))(ks||{}),zr=(e,s)=>{let t={method:"GET",defaultSize:10,refreshInterval:0,getTotal:F=>F?.total,getDataSource:F=>F?.list,...e},{url:o,code:r,headers:i,onePage:n,method:d,buttonsAlign:a,showReset:h,defaultSize:p,refreshInterval:c,tableExtra:u,form:y,body:m,params:l,renderForm:f,afterSuccess:g,getTotal:x,getDataSource:S,footer:G,...ee}=t,{t:Q}=b(),[v]=Form.useForm(y),U=useRef(3),te=typeof i=="function"?i(v):i,{accessible:O,isLoading:$}=W(r,{headers:te}),[P,D]=useState(!1),{keyMap:q,getPayload:be,refetch:pe}=j(),{page:M,size:N=p,formValue:se}=be(o),Se={page:M,size:N,formValue:se},Ft=useMemo(()=>typeof m=="function"?m(Se):d==="POST"&&typeof m>"u"?{...se,...n?void 0:{page:M,size:N}}:m,[n,d,M,N,se,m]),Mo=useMemo(()=>typeof l=="function"?l(Se):d==="GET"&&typeof l>"u"?{...se,...n?void 0:{page:M,size:N}}:void 0,[n,d,M,N,se,l]),Vt=useRef(!1),Io=V(),Xe={url:o,method:d,data:Ft,params:Mo,headers:te},Ro=useMemo(()=>{if(!O||!P)return null;let F=unstable_serialize(Xe);return q.set(o,F),F},[O,P,o,Xe]),{data:oe,isValidating:Gt}=lr(Ro,()=>Io(Xe),{shouldRetryOnError:!1,revalidateOnFocus:!1,refreshInterval:Vt.current?c:0,onSuccess(F){Vt.current=!0,g?.(U.current,v,F);}}),Dt=useMemo(()=>S(oe,v),[oe,y,S]),zt=useMemo(()=>x(oe),[oe,x]),To=useMemo(()=>!n&&{showSizeChanger:!0,showQuickJumper:!0,current:M,pageSize:N,total:zt,onChange:async(F,De)=>{U.current=2,pe(o,{page:F,size:De});}},[M,N,n,zt]),At=async()=>{U.current=0;try{await v.validateFields(),D(!0),pe(o,{page:1,formValue:v.getFieldsValue()});}catch{D(!1);}},ko=async()=>{U.current=1,v.resetFields();try{await v.validateFields({validateOnly:!0}),D(!0),pe(o,{page:1,formValue:v.getFieldsValue()});}catch{D(!1);}};if(useEffect(()=>{(async()=>{if(O)try{v.resetFields();let De=await v.validateFields({validateOnly:!0});pe(o,{page:1,formValue:De}),D(!0);}catch{D(!1);}})();},[O,y]),useImperativeHandle(s,()=>({data:oe,dataSource:Dt,form:v})),$)return jsx(Spin,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:300}});if(!O)return jsx(Result,{status:403,subTitle:Q("global.noEntitlement")});let Lo=typeof f=="function"?jsx(we,{showReset:h,buttonsAlign:a,isConfirming:Gt,onReset:ko,onConfirm:At,children:cloneElement(f(v),{onKeyUp:F=>{F.key==="Enter"&&At();}})}):jsx(Form,{form:v}),Fo=G&&(()=>G(oe));return jsxs("div",{children:[Lo,typeof u=="function"?u(v,oe):u,jsx(Table,{...ee,dataSource:Dt,loading:Gt,pagination:To,footer:Fo})]})},Ar=forwardRef(zr),le=Ar;});var Te=_(()=>{Ls();Ie();});function Fs(e){let{content:s,onConfirm:t,...o}=e,r=useMemo(()=>++$r,[]),i=Qr(),n=i.getOpen(r),[d,a]=useState(!1),h=typeof s=="function",p=()=>{i.show(r);},c=()=>{i.hide(r);},m=jsx(Modal,{...o,open:n,confirmLoading:d,onOk:async()=>{try{a(!0),await t?.();}finally{a(!1);}},onCancel:()=>{c();},children:h?s({hide:c}):s});return {id:r,show:p,hide:c,modal:m}}var Qr,$r,xt=_(()=>{Qr=create((e,s)=>({open:new Map,getOpen:t=>s().open.get(t)??!1,show(t){e({open:new Map(s().open).set(t,!0)});},hide(t){e({open:new Map(s().open).set(t,!1)});},hideAll(){e({open:new Map});}})),$r=0;});function We(e){let{content:s,form:t,formProps:o,onConfirm:r,...i}=e,[n,d]=useState({}),[a]=Form.useForm();a=t||a;let h=typeof s=="function",p=async()=>{let g=await a.validateFields();await r?.(g,n),m();},c=()=>{a.resetFields();},{id:u,show:y,hide:m,modal:l}=Fs({...i,content:g=>jsx(Form,{...o,form:a,children:h?s(n,g):s}),onConfirm:p,afterClose:c});return {id:u,show:({initialValues:g,extraValues:x}={})=>{x&&d(x),g&&a.setFieldsValue(g),y();},hide:m,modal:l}}var qe=_(()=>{xt();});function As(){return ie({url:"/api/usystem/user/allPermssions",headers:{[C]:"global"}})}function Es(){return ie({url:"/api/usystem/user/allPermissionsV2",headers:{[C]:"global"}})}function Us(){let{accessible:e}=W("200005",{headers:{[C]:"global"}});return ie(e?{url:"/api/usystem/role/all",headers:{[C]:"global"}}:null)}function Os(e){let s=I(t=>t.usePermissionApiV2);return ie({url:`/api/usystem/role/${s?"infoV2":"info"}?name=${e}`,headers:{[C]:"global"}})}function Ns(){let e=V(),s=I(t=>t.usePermissionApiV2);return ye(s?"/api/usystem/role/createV2":"/api/usystem/role/create",(t,{arg:o})=>e({url:t,data:o,headers:{[C]:"global"}}))}function Bs(){let e=V(),s=I(t=>t.usePermissionApiV2);return ye(s?"/api/usystem/role/updateV2":"/api/usystem/role/update",(t,{arg:o})=>e({url:t,data:o,headers:{[C]:"global"}}))}function Ws(){let e=V();return ye("/api/usystem/role/delete",(s,{arg:t})=>e({url:s,data:t,headers:{[C]:"global"}}))}function qs(){let e=V();return ye("/api/usystem/user/create",(s,{arg:t})=>e({url:s,data:t,headers:{[C]:"global"}}))}function Ks(){let e=V();return ye("/api/usystem/user/update",(s,{arg:t})=>e({url:s,data:t,headers:{[C]:"global"}}))}function Hs(){let e=V();return ye("/api/usystem/user/delete",(s,{arg:t})=>e({url:s,data:t,headers:{[C]:"global"}}))}var Ke=_(()=>{z();B();ne();X();});var da,Le,Pt=_(()=>{R();da=e=>{let{permissions:s,readonly:t,expand:o,value:r,onChange:i}=e,[n,d]=useState([]),[a,h]=useState({}),[p,c]=useState(r??[]),{t:u}=b(),y=useCallback(f=>{d(f);},[]),m=(f,g)=>{let x=[];return f?x=[...new Set(p.concat(g))]:(x=p.slice(),g.forEach(S=>{let G=x.findIndex(ee=>ee===S);G>-1&&x.splice(G,1);})),x},l=(f,g)=>{let x=m(f.target.checked,g);c(x),i?.(x);};return useEffect(()=>{c(r??[]);},[r]),useEffect(()=>{o&&d((s??[]).map(({category:f})=>f));},[o,s]),useEffect(()=>{let f=(s??[]).reduce((g,x)=>(g[x.category]=x.permissions.every(S=>p?.includes(S.value)),g),{});h(f);},[p,s]),jsx(Collapse,{style:{width:"100%"},collapsible:"header",activeKey:n,items:(s??[]).map(f=>({key:f.category,label:f.category,extra:!t&&jsx(Checkbox,{checked:a[f.category],onChange:g=>{l(g,f.permissions.map(x=>x.value));},children:u("global.selectAll")}),children:jsx(Checkbox.Group,{style:{width:"100%"},value:p,disabled:t,children:jsx(Row,{gutter:[10,10],style:{width:"100%"},children:f.permissions.map(g=>jsx(Col,{span:6,children:jsx(Checkbox,{value:g.value,onChange:x=>{l(x,[g.value]);},children:g.label})},g.value))})})})),onChange:y})},Le=da;});var ga,ha,js,Qs=_(()=>{R();Ke();Pt();(({Text:ga}=Typography)),ha=e=>{let{expand:s=!0,value:t,readonly:o,onChange:r}=e,{data:i,isLoading:n,error:d}=As(),{t:a}=b();return d?jsx("div",{className:"flex justify-center",children:jsx(ga,{type:"danger",children:a("PermissionList.failedDescription")})}):jsx(Skeleton,{active:!0,loading:n,children:jsx(Le,{value:t,permissions:i,readonly:o,expand:s,onChange:r})})},js=ha;});var vt,wa,Pa,eo,to=_(()=>{R();Ke();Pt();(({Text:vt}=Typography)),{Option:wa}=Select,Pa=e=>{let{expand:s=!0,value:t,readonly:o,onChange:r}=e,{data:{permission:i,game:n}={},isLoading:d,error:a}=Es(),[h,p]=useState([]),c=i?.filter(f=>f.is_common),u=i?.filter(f=>!f.is_common),{t:y}=b();if(useEffect(()=>{let f=[];Object.keys(t??{}).forEach(g=>{g!=="global"&&f.push({gameId:g,permissions:t?.[g]??[]});}),p(f);},[t]),a)return jsx("div",{className:"flex justify-center",children:jsx(vt,{type:"danger",children:y("PermissionList.failedDescription")})});let m=()=>{p(f=>[...f,{gameId:"",permissions:[]}]);},l=f=>{p(g=>g.filter((x,S)=>S!==f));};return jsxs("div",{className:"flex flex-col w-full",children:[jsx("div",{className:"mb-12",children:jsx(Divider,{dashed:!0,children:y("PermissionList.baseSectionTitle")})}),jsx(Skeleton,{active:!0,loading:d,children:jsx(Le,{value:t?.global,readonly:o,permissions:c,expand:s,onChange:f=>{r?.({...t,global:f});}})}),jsx("div",{className:"my-12",children:jsx(Divider,{dashed:!0,children:y("PermissionList.gameSectionTitle")})}),h.map((f,g)=>jsx(Card,{title:jsxs(Space,{children:[jsx(vt,{children:y("global.game")}),o?jsx(vt,{children:n?.find(x=>String(x.id)===f.gameId)?.name}):jsx(Select,{disabled:o,value:h[g].gameId||void 0,style:{width:"160px"},placeholder:y("PermissionList.gameSelectPlaceholder"),onChange:x=>{p(S=>{let G=S.slice();return G[g].gameId=x,G});},children:n?.map(x=>jsx(wa,{value:x.id,disabled:h.some(({gameId:S})=>S===String(x.id)),children:x.name},x.id))})]}),className:"mb-6",extra:!o&&jsx(Button,{type:"link",onClick:()=>{l(g);},children:y("PermissionList.removeText")}),children:h[g].gameId?jsx(Skeleton,{active:!0,loading:d,children:jsx(Le,{value:t?.[h[g].gameId],readonly:o,expand:s,permissions:u,onChange:x=>{r?.({...t,[h[g].gameId]:x});}})}):jsx(Empty,{description:y("PermissionList.gameSectionDescription")})},g)),!o&&jsx(Button,{block:!0,type:"dashed",onClick:m,children:y("PermissionList.addText")})]})},eo=Pa;});var va,Fe,so=_(()=>{z();Qs();to();va=e=>{let{value:s}=e,t=I(o=>o.usePermissionApiV2);return jsx(Fragment,{children:t?jsx(eo,{...e,value:s}):jsx(js,{...e,value:s})})},Fe=va;});var oo=_(()=>{});var je=_(()=>{so();Ke();oo();});var po={};Ze(po,{default:()=>za,url:()=>Ve});var Ga,Ve,io,Da,za,uo=_(()=>{Ee();R();Be();Te();Ie();B();je();qe();(({Option:Ga}=Select)),Ve="/api/usystem/user/list",io=e=>{let{message:s}=App.useApp(),{t}=b(),{refetch:o,mutate:r}=j(),{data:i,isLoading:n}=Us(),d=qs(),a=Ks(),h=t(e?"UserList.createTitle":"UserList.updateTitle"),p=jsxs(Fragment,{children:[jsx(Form.Item,{label:t("global.name"),name:"name",rules:[{required:!0}],children:jsx(Input,{disabled:!e})}),jsx(Form.Item,{label:t("global.role"),name:"roles",children:jsx(Select,{allowClear:!0,mode:"multiple",loading:n,children:(i??[]).map(u=>jsx(Ga,{value:u.name,children:u.name},u.id))})})]});return We({title:h,formProps:{labelCol:{flex:"80px"}},content:p,onConfirm:async(u,y)=>{e?(await d.trigger(u),o(Ve,{page:1}),s.success(t("UserList.createSuccessfully"))):(await a.trigger(u),r(Ve,m=>produce(m,l=>{if(l?.List){let f=l.List?.findIndex(g=>g.id===y?.id);f!==-1&&(l.List[f].roles=u.roles);}}),{revalidate:!1}),s.success(t("UserList.updateSuccessfully")));}})},Da=()=>{let{modal:e,message:s}=App.useApp(),t=Hs(),{mutate:o}=j(),{show:r,modal:i}=io(!0),{show:n,modal:d}=io(),{t:a}=b(),h=[{title:a("global.name"),dataIndex:"name",key:"name"},{title:"ID",dataIndex:"id",key:"id"},{title:a("global.role"),dataIndex:"roles",key:"roles",width:"40%",render(p){return jsx(Row,{gutter:[4,4],children:(p||[]).map(c=>jsx(Col,{children:c==="root"?jsx(Tag,{color:"#f50",children:c}):jsx(Tag,{color:"#ff5a00",children:jsx(Link,{to:`../role/${c}`,children:c})})},c))})}},{title:a("global.creationTime"),dataIndex:"Ctime",key:"ctime"},{title:a("global.operation"),width:150,align:"center",render:p=>jsxs(Space,{children:[jsx(H,{size:"small",type:"link",code:"100003",headers:{[C]:"global"},onClick:()=>{n({initialValues:{name:p.name,roles:p.roles},extraValues:{id:p.id}});},children:a("global.update")}),jsx(H,{danger:!0,size:"small",code:"100004",type:"link",headers:{[C]:"global"},onClick:()=>{e.confirm({title:a("UserList.deleteTitle"),content:jsx(Pe,{texts:[p.name],children:a("UserList.deleteContent",{user:p.name})}),async onOk(){await t.trigger({id:p.id,name:p.name}),o(Ve,c=>produce(c,u=>{let y=u?.List?.findIndex(m=>m.id===p.id);y&&u?.List?.splice(y,1);})),s.success(a("UserList.deleteSuccessfully"));}});},children:a("global.delete")})]})}];return jsxs(Fragment,{children:[jsx(Card,{title:a("global.user"),extra:jsx(H,{type:"primary",icon:jsx(UserAddOutlined,{}),code:"100002",headers:{[C]:"global"},onClick:()=>{r();},children:a("UserList.createTitle")}),children:jsx(le,{code:"100001",url:Ve,rowKey:"id",columns:h,getTotal:p=>p?.Total,getDataSource:p=>p?.List,headers:{[C]:"global"}})}),i,d]})},za=Da;});var xo={};Ze(xo,{default:()=>Wa});var Qe,go,Ba,Wa,_o=_(()=>{z();Ee();R();Be();Te();Ie();B();je();ne();qe();X();Qe="/api/usystem/role/list",go=e=>{let{message:s}=App.useApp(),{t}=b(),{refetch:o,mutate:r}=j(),i=Ns(),n=Bs(),d=t(e?"RoleList.createTitle":"RoleList.updateTitle"),a={layout:"vertical"},h=jsxs(Fragment,{children:[jsx(Form.Item,{label:t("global.name"),name:"name",rules:[{required:!0}],children:jsx(Input,{disabled:!e,addonBefore:"role_"})}),jsx(Form.Item,{name:"permissions",children:jsx(Fe,{})})]});return We({title:d,width:"50vw",formProps:a,content:h,onConfirm:async(c,u)=>{e?(await i.trigger({name:`role_${c.name}`,permissions:c.permissions}),o(Qe,{page:1}),s.success(t("RoleList.createSuccessfully"))):(await n.trigger({id:u?.id,name:`role_${c.name}`,permissions:c.permissions}),r(Qe,y=>produce(y,m=>{let l=m?.List?.find(f=>f.id===u?.id);l&&(l.permissions=c.permissions);}),{revalidate:!1}),s.success(t("RoleList.updateSuccessfully")));}})},Ba=()=>{let{accessible:e}=W("200005",{headers:{[C]:"global"}}),{modal:s,message:t}=App.useApp(),{t:o}=b(),r=I(m=>m.usePermissionApiV2),{mutate:i}=j(),{show:n,modal:d}=go(!0),{show:a,modal:h}=go(),p=Ws(),c=V(),u=async m=>{let l=await c({url:`/api/usystem/role/info${r?"V2":""}?name=${m.name}`,headers:{[C]:"global"}});a({initialValues:{permissions:l?.permissions,name:l?.name.replace(/^role_/,"")},extraValues:{id:l?.id}});},y=[{title:o("global.name"),key:"name",render(m){return e?jsx(Link,{to:`${m.name}`,relative:"path",children:m.name}):jsx(Fragment,{children:m.name})}},{title:"ID",dataIndex:"id",key:"id"},{title:o("global.creationTime"),dataIndex:"ctime",key:"ctime"},{title:o("global.operation"),width:150,align:"center",render:(m,l)=>jsxs(Space,{size:"small",children:[jsx(H,{code:"200003",size:"small",type:"link",headers:{[C]:"global"},onClick:async()=>{u(l);},children:o("global.edit")}),jsx(H,{danger:!0,code:"200004",size:"small",type:"link",headers:{[C]:"global"},onClick:()=>{s.confirm({title:o("RoleList.deleteTitle"),content:jsx(Pe,{texts:[l.name],children:o("RoleList.deleteContent",{role:l.name})}),async onOk(){await p.trigger({id:l.id,name:l.name}),i(Qe,f=>produce(f,g=>{let x=g?.List?.findIndex(S=>S.id===l.id);x&&g?.List?.splice(x,1);})),t.success(o("RoleList.deleteSuccessfully"));}});},children:o("global.delete")})]})}];return jsxs(Fragment,{children:[jsx(Card,{title:o("global.role"),extra:jsx(H,{type:"primary",code:"200002",icon:jsx(UsergroupAddOutlined,{}),headers:{[C]:"global"},onClick:()=>{n();},children:o("RoleList.createTitle")}),children:jsx(le,{rowKey:"name",columns:y,code:"200001",url:Qe,headers:{[C]:"global"},getTotal:m=>m?.Total,getDataSource:m=>m?.List})}),d,h]})},Wa=Ba;});var bo={};Ze(bo,{default:()=>Ja});var $a,Ja,So=_(()=>{R();je();$a=()=>{let e=useParams(),{data:s,isLoading:t}=Os(e.name),{t:o}=b();return jsxs(Fragment,{children:[jsx(Breadcrumb,{style:{marginBottom:24},items:[{key:"1",title:jsx(Link,{to:"..",relative:"path",children:o("global.role")})},{key:"2",title:e.name}]}),jsx(Card,{title:o("RoleDetail.title"),children:jsxs(Skeleton,{loading:t,children:[jsxs(Descriptions,{column:3,layout:"vertical",children:[jsx(Descriptions.Item,{label:o("global.name"),children:s?.name}),jsx(Descriptions.Item,{label:"ID",children:s?.id}),jsx(Descriptions.Item,{label:o("global.creationTime"),children:s?.ctime})]}),jsx(Fe,{readonly:!0,value:s?.permissions})]})})]})},Ja=$a;});z();R();var $o=e=>{let{initialTags:s,addable:t,removable:o,addCallback:r,removeCallback:i}=e,{t:n}=b(),{token:d}=theme.useToken(),[a,h]=useState([]),[p,c]=useState(!1),[u,y]=useState(""),[m,l]=useState(-1),[f,g]=useState(""),x=useRef(null),S=useRef(null);useEffect(()=>{h(s??[]);},[s]),useEffect(()=>{p&&x.current?.focus();},[p]),useEffect(()=>{S.current?.focus();},[u]);let G=async P=>{if(await i?.(P)){let q=a.filter(be=>be!==P);h(q);}},ee=()=>{c(!0);},Q=P=>{y(P.target.value);},v=async()=>{u&&a.indexOf(u)===-1&&await r?.(u)&&h([...a,u]),c(!1),y("");},U=P=>{g(P.target.value);},te=()=>{let P=[...a];P[m]=f,h(P),l(-1),y("");},O={width:78,verticalAlign:"top"},$={background:d.colorBgContainer,borderStyle:"dashed"};return jsxs(Space,{wrap:!0,size:[0,8],children:[jsx(Space,{wrap:!0,size:[0,8],children:a.map((P,D)=>m===D?jsx(Input,{ref:S,size:"small",style:O,value:f,onChange:U,onBlur:te,onPressEnter:te},P):jsx(Tag,{closable:o,style:{userSelect:"none"},onClose:async q=>{q.preventDefault(),await G(P);},children:jsx("span",{onDoubleClick:q=>{D!==0&&(l(D),g(P),q.preventDefault());},children:P})},P))}),t&&(p?jsx(Input,{ref:x,type:"text",size:"small",style:O,value:u,onChange:Q,onBlur:v,onPressEnter:v}):jsxs(Tag,{style:$,onClick:ee,children:[jsx(PlusOutlined,{}),"\xA0",n("global.add")]}))]})},Jo=$o;var Zo=e=>{let{children:s,...t}=e,[o,r]=useState(!1);return jsx(Typography.Paragraph,{...t,className:"mb-0",ellipsis:{rows:2,expandable:"collapsible",expanded:o,onExpand:(i,n)=>{r(n.expanded);}},children:s})},ze=Zo;Ae();Ee();ne();X();Ae();R();var yr=e=>{let{code:s,url:t,extras:o,headers:r,getRowKey:i,getDataSource:n,hasMore:d,renderForm:a,transformArg:h,...p}=e,{t:c}=b(),[u]=Form.useForm(),[y,m]=useState(!1),[l,f]=useState(),g=V(),x=(M,N)=>{if(!y)return null;let se=M!==0?i(N):void 0,Se=h(l,se);return vs.stringify(Se)?`${t}?${vs.stringify(Se)}`:t},S=typeof r=="function"?r(u):r,{accessible:G,isLoading:ee}=W(s,{headers:S}),{data:Q,size:v,setSize:U,isValidating:te}=hr(x,M=>g({url:M,headers:S}),{shouldRetryOnError:!1,revalidateOnFocus:!1,revalidateFirstPage:!1}),O=n(Q),$=te||v>0&&Q&&typeof Q[v-1]>"u",P=typeof d<"u"?!d(Q):!0,D=!O||O.length===0,q=async()=>{let M=await u.getFieldsValue();f(M);try{await u.validateFields(),U(1),m(!0);}catch{U(0),m(!1);}},be=()=>{U(v+1);},pe=async()=>{try{u.resetFields(),await u.validateFields({validateOnly:!0}),U(1);}catch{U(0);}};return useEffect(()=>{G&&u.validateFields({validateOnly:!0}).then(M=>{f(M),m(!0);}).catch(()=>{m(!1);});},[G]),ee?jsx(Spin,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:300}}):G?jsxs(Fragment,{children:[a?jsx(we,{extras:o?.map(M=>({key:M.key,children:typeof M.children=="function"?M.children(u):M.children})),onReset:pe,onConfirm:q,children:a(u)}):jsx(Form,{form:u}),jsx(Table,{...p,dataSource:O,loading:$,pagination:!1}),!D&&jsx(Button,{block:!0,loading:$,type:"link",htmlType:"button",disabled:$||P,onClick:be,children:c($?"InfiniteList.loadingText":P?"InfiniteList.reachEndText":"InfiniteList.loadMoreText")})]}):jsx(Result,{status:403,subTitle:c("global.noEntitlement")})},xr=yr;ve();nt();Be();Te();ct();B();X();R();var Nr=e=>{let{code:s,isGlobal:t,children:o}=e,{accessible:r,isValidating:i}=W(s,t?{headers:{[C]:"global"}}:void 0),{t:n}=b();return i?jsx(Spin,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:200}}):r?jsx(Fragment,{children:o}):jsx(Result,{status:"403",subTitle:n("global.noEntitlement")})},Br=Nr;mt();B();qe();xt();X();fe();R();var sa=e=>{let{redirectUrl:s}=e,t=useNavigate(),{t:o}=b();return jsx("div",{className:"h-screen flex justify-center items-center",children:jsx(Result,{status:"404",title:"404",subTitle:o("NotFound.subTitle"),extra:s&&jsx(Button,{type:"primary",onClick:()=>{t(s);},children:o("NotFound.buttonText")})})})},oa=sa;R();Te();B();var {Option:Gs}=Select,ia=()=>{let{t:e}=b(),s=[{key:"username",title:e("global.username"),dataIndex:"uname",width:100},{key:"label",title:e("global.label"),dataIndex:"label",width:150},{key:"method",title:e("global.method"),dataIndex:"method",width:100},{key:"route",title:e("global.route"),dataIndex:"route",width:200},{key:"request",title:e("global.request"),dataIndex:"request",render(t){return jsx(ze,{children:t})}},{key:"response",title:e("global.response"),dataIndex:"response",render(t){return jsx(ze,{children:t})}},{key:"creation_time",title:e("global.creationTime"),dataIndex:"ctime",width:200,render(t){return aa(t).format("YYYY-MM-DD HH:mm:ss")}}];return jsx(Card,{title:"\u64CD\u4F5C\u65E5\u5FD7",children:jsx(le,{rowKey:"id",code:"300001",columns:s,tableLayout:"fixed",url:"/api/usystem/log/list",headers:{[C]:"global"},getTotal:t=>t?.Total,getDataSource:t=>t?.List,renderForm:t=>jsxs(Form,{form:t,layout:"inline",children:[jsx(Form.Item,{label:e("global.username"),name:"uname",children:jsx(Input,{allowClear:!0})}),jsx(Form.Item,{label:e("global.route"),name:"route",children:jsx(Input,{allowClear:!0})}),jsx(Form.Item,{label:e("global.method"),name:"method",children:jsxs(Select,{allowClear:!0,style:{width:"100px"},children:[jsx(Gs,{value:"get",children:"GET"}),jsx(Gs,{value:"post",children:"POST"})]})}),jsx(Form.Item,{label:e("global.label"),name:"label",children:jsx(Input,{allowClear:!0})})]})})})},na=ia;var e2=lazy(()=>Promise.resolve().then(()=>(uo(),po))),t2=lazy(()=>Promise.resolve().then(()=>(_o(),xo))),s2=lazy(()=>Promise.resolve().then(()=>(So(),bo))),o2=jsxs(Routes,{children:[jsx(Route,{index:!0,element:jsx(Navigate,{to:"user"})}),jsx(Route,{path:"user",element:jsx(e2,{})}),jsx(Route,{path:"role",element:jsx(t2,{})}),jsx(Route,{path:"role/:name",element:jsx(s2,{})})]});R();st();B();ne();fe();var Co='data:image/svg+xml,<svg xml:space="preserve" style="enable-background:new 0 0 6000 4000;" viewBox="0 0 6000 4000" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1">%0A<style type="text/css">%0A%09.Graphic_x0020_Style_x0020_100{fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_101{fill:url(%23SVGID_1_);}%0A%09.Graphic_x0020_Style_x0020_102{fill:url(%23SVGID_2_);}%0A%09.Graphic_x0020_Style_x0020_104{fill:%23DB6767;}%0A%09.Graphic_x0020_Style_x0020_105{fill:%23FFDE70;}%0A%09.Graphic_x0020_Style_x0020_106{fill:%23FFB114;}%0A%09.Graphic_x0020_Style_x0020_107{fill:%236584C6;}%0A%09.Graphic_x0020_Style_x0020_108{fill:%23102140;}%0A%09.Graphic_x0020_Style_x0020_109{fill:%233B546B;}%0A%09.Graphic_x0020_Style_x0020_110{fill:%23152A52;}%0A%09.Graphic_x0020_Style_x0020_111{fill:%23E8766F;}%0A%09.Graphic_x0020_Style_x0020_112{fill:%23EF5668;}%0A%09.Graphic_x0020_Style_x0020_113{fill:%23FC9590;}%0A%09.Graphic_x0020_Style_x0020_114{fill:%23912433;}%0A%09.Graphic_x0020_Style_x0020_115{opacity:0.5;fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_116{fill:%231A1A1A;}%0A%09.Graphic_x0020_Style_x0020_117{fill:%23535353;}%0A%09.Graphic_x0020_Style_x0020_118{fill:%23DBD2DB;}%0A%09.Graphic_x0020_Style_x0020_119{fill:%234D73C6;}%0A%09.Graphic_x0020_Style_x0020_120{fill:%23D1334A;}%0A%09.Graphic_x0020_Style_x0020_123{fill:url(%23SVGID_3_);}%0A%09.st0{fill:url(%23SVGID_4_);}%0A%09.st1{fill:url(%23SVGID_5_);}%0A%09.st2{fill:url(%23SVGID_6_);}%0A%09.st3{fill:%239D8A9D;}%0A%09.st4{fill:url(%23SVGID_7_);}%0A%09.st5{fill:url(%23SVGID_8_);}%0A%09.st6{fill:%233B546B;}%0A%09.st7{fill:%23A8A1A8;}%0A%09.st8{fill:%23DBD2DB;}%0A%09.st9{fill:%23FFFFFF;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st10{fill:%23339E7E;}%0A%09.st11{fill:none;stroke:%2310663F;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st12{fill:%2300593B;}%0A%09.st13{fill:none;stroke:%233DBE88;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st14{fill:none;stroke:%23134411;stroke-width:8.0149;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st15{fill:%23EF5668;}%0A%09.st16{fill:%23FC9590;}%0A%09.st17{fill:%23102140;}%0A%09.st18{fill:%23DB6767;}%0A%09.st19{fill:%231A1A1A;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st20{fill:%23FFFFFF;}%0A%09.st21{fill:%23535353;}%0A%09.st22{fill:%23F9EBF9;}%0A%09.st23{fill:%23D896D8;}%0A%09.st24{fill:%238E3D8E;}%0A%09.st25{fill:%23CA74CA;}%0A%09.st26{fill:%23D590D5;}%0A%09.st27{fill:%23160A16;}%0A%09.st28{fill:%23384A6E;}%0A%09.st29{fill:%23B7C0D4;}%0A%09.st30{fill:%23E8766F;}%0A%09.st31{fill:%23FFB114;}%0A%09.st32{fill:%23FFDE70;}%0A%09.st33{fill:%23434343;}%0A%09.st34{fill:%23664708;}%0A%09.st35{fill:%23D9D9D9;}%0A%09.st36{fill:url(%23SVGID_9_);}%0A%09.st37{fill:url(%23SVGID_10_);}%0A%09.st38{fill:url(%23SVGID_11_);}%0A%09.st39{fill:url(%23SVGID_12_);}%0A</style>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_1_">%0A%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_2_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_3_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A</linearGradient>%0A<g>%0A%09<linearGradient y2="3014.9536" x2="4941.2124" y1="3014.9536" x1="1288.5804" gradientUnits="userSpaceOnUse" id="SVGID_4_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1288.6,2793.9c55.3,134.1,186.5,387.6,453.7,503.3c220.8,95.6,442.9,57.4,694.7,14.2%0A%09%09c343.1-59,344.3-140.4,552.9-134.7c282.5,7.8,357.3,159.3,673.4,219.7c66.5,12.7,309.6,47.5,574.2-28.4%0A%09%09c360.6-103.4,734.8-407.2,701.8-560C4895.4,2605.9,4103.5,2505.3,1288.6,2793.9z" class="st0"></path>%0A%09<linearGradient y2="1994.5433" x2="5456.5684" y1="1994.5433" x1="686.3356" gradientUnits="userSpaceOnUse" id="SVGID_5_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5428.3,1649.1c-131.4-612.4-697.6-977.3-1155.4-1020.7c-232.1-22-245.1,56.7-616.7,117%0A%09%09c-821.7,133.2-1081-199.5-1850.1-85.1c-341.2,50.8-687.6,102.3-914.4,382.8C519.9,1502.7,718.2,2270,973.9,2621.3%0A%09%09c165.2,227,392.7,363.9,392.7,363.9c68.9,41.5,168.6,100.4,304.8,131.1c237.9,53.7,359.9-29.9,560-42.5%0A%09%09c342.7-21.6,401.6,197.2,772.6,276.4c190.7,40.7,257.4,0.5,1084.5-212.6c811.7-209.1,858.2-198.9,974.7-297.7%0A%09%09C5379.4,2571.8,5521.7,2084.7,5428.3,1649.1z M2709.5,2042.7v-2.7V2042.7z" class="st1"></path>%0A%09<linearGradient y2="1859.5726" x2="5227.9292" y1="1859.5726" x1="1116.5316" gradientUnits="userSpaceOnUse" id="SVGID_6_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5148.1,1664.4c-146.3-421.8-552.5-838.3-943.2-819c-297.4,14.6-412.5,273.3-678.4,215.1%0A%09%09c-227.7-49.8-217.9-255.8-471.6-405.4c-401.7-236.8-1083-107.4-1265.9,223.4c-99.3,179.7-11.7,346.7-173.7,521.2%0A%09%09c-113.5,122.3-192.5,78.9-314.4,198.6c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1%0A%09%09c827.4,146.2,1654.7,292.3,2482.1,438.5c80.8,13.1,529.4,77.9,879.7-216.7C5295.8,2609,5272.6,2023.2,5148.1,1664.4z%0A%09%09 M2709.5,2042.7v-2.7V2042.7z" class="st2"></path>%0A%09<path d="M5224.3,2042.5c-143.7-88.6-413.9-68.2-740.1-95.9c-488.7-41.5-1188.7,312.8-1437,221.4%0A%09%09c-95.1-35-167.4-141.7-220.4-260v1053.6c291.4,51.5,582.8,103,874.2,154.4l1292.2-269.1C5190,2615.6,5243.4,2314,5224.3,2042.5z" class="st3"></path>%0A%09<linearGradient y2="1741.7239" x2="2757.678" y1="1741.7239" x1="1116.5317" gradientUnits="userSpaceOnUse" id="SVGID_7_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.3,179.7-11.7,346.7-173.7,521.2c-113.5,122.3-192.5,78.9-314.4,198.6%0A%09%09c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1c411.1,72.6,822.2,145.3,1233.4,217.9V550.2%0A%09%09C2377.7,484.9,1931.7,620.4,1789.1,878.4z M2709.5,2042.7v-2.7V2042.7z" class="st4"></path>%0A%09<linearGradient y2="1215.4698" x2="2649.5779" y1="1215.4698" x1="1137.9542" gradientUnits="userSpaceOnUse" id="SVGID_8_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.4,179.7-11.7,346.7-173.7,521.2c-113.6,122.3-192.5,78.9-314.4,198.6%0A%09%09c-79.1,77.6-134.7,183-163,298.8c82.9-108.4,187.6-189.5,319.3-210.4c445.6-70.8,892.8,45.1,1192.3-113.7V537.1%0A%09%09C2296.9,511.3,1918.4,644.5,1789.1,878.4z" class="st5"></path>%0A%09<polygon points="1937.1,644.5 1937.1,2265.3 1979.7,2269.9 1983,640.9" class="st6"></polygon>%0A%09<path d="M2757.7,550.2c-35.6-6.1-71.7-10.5-108.1-13.1v1035.7c38.6-20.4,74.7-45.4,108.1-76V550.2z" class="st7"></path>%0A%09<path d="M1117.4,850.5c-15.5,9-30.8,18.5-45.8,28.5v1689.5l42.6,5.1L1117.4,850.5z" class="st6"></path>%0A%09<path d="M2826.8,564.5c-22.7-5.5-45.8-10.3-69.1-14.3v2399.3c23,4.1,46.1,8.1,69.1,12.2V564.5z" class="st8"></path>%0A%09<g>%0A%09%09<path d="M1121,2361c0,0-98.3-110.7,84.2-222.1c-25.3,43.4-118,92.3-52.4,202.9%0A%09%09%09c27.1,62.9-12.8,89.7-12.8,89.7S1080.6,2436.5,1121,2361z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<g>%0A%09%09%09<path d="M1282.2,2470.4c-15.5,28.9-215.1,26.5-315.7,23.4c-1.1-4.4-2.1-8.7-3.1-13c-1.8-7.8-3.5-15.5-5-23.2%0A%09%09%09%09C1035.2,2452.4,1299.9,2437.2,1282.2,2470.4z" class="st9"></path>%0A%09%09%09<path d="M1282.2,2470.4l-16.7,216.9c-25.9,39.1-25.5,89.5-36,137.5c-4.3,22.7-20.4,30.2-38.6,29.2%0A%09%09%09%09c-39.4-34.1-82.1-74.2-124.2-119.9c-50-80.3-81.3-162.6-100.3-240.3C1067.1,2496.9,1266.7,2499.4,1282.2,2470.4z" class="st9"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1331.3,2151c12.7,12.2,30.7,16,43,17c5.5-2.7,11.1-5.7,16.6-8.9c24.3-13.9,39.8-38.8,49.7-66.7%0A%09%09%09%09c-16.1,5.8-51.8,17.4-67.4,11.2c-20.4-8.1-12.5-17.1-3-14.1c11.7,6,55.7-6.5,75.3-12.5c4.1-14.9,6.8-30.2,8.6-44.8%0A%09%09%09%09c-13.9,8.3-34.9,15.8-44.4,12.6c-12.3-4.2-7.4-14.4,2.7-13.2c7.4,0.8,31.4-12,43.6-18.8c2.2-29.7,0.8-53.4,0.4-59.6%0A%09%09%09%09c-0.1-1-0.1-1.6-0.1-1.6s-29-8.6-66.9-14.1c-8,8.1-19.9,20.8-24.9,29.3c-8,13.3-11.7,24.3-18.1,22.2%0A%09%09%09%09c-12.7-6.6,13.3-37.6,27.8-53.4c-16.5-1.8-34.1-2.9-51.4-2.3c-51.5,40.6-24.5,76.1-44.7,71.8c-17.5-3.7,13.5-51.5,26.6-70.5%0A%09%09%09%09c-16.3,1.8-31.9,5.4-45.3,11.6c-12.1,6.2-22.8,12.2-32.4,18.1c-14.5,34.4,20,53.7,1.7,57.9c-14.3,3.3-16.2-30.4-16.2-48.5%0A%09%09%09%09c-124.9,86.7,2.8,144.8,2.8,144.8c0.1,0.5,0.2,1,0.3,1.6c11.4,70.5,70.1,82,134.6,58.3c-10-8-28.1-22.8-31-26.1%0A%09%09%09%09C1315,2147.7,1321.1,2139.9,1331.3,2151z" class="st10"></path>%0A%09%09%09<path d="M1433.5,1969.4c0,0-146,112.4-218.2,149.3" class="st11"></path>%0A%09%09%09<path d="M1396.4,2051c0,0-33.9,4.5-68.8-3.9" class="st11"></path>%0A%09%09%09<path d="M1316.2,1996.6c0,0-20.5,49.4-10.8,65.9" class="st11"></path>%0A%09%09%09<path d="M1352,2122.6c0,0-59.6-20.8-79-38.4" class="st11"></path>%0A%09%09%09<path d="M1216.4,2052.4c0,0-4.7,37.9,18.4,55.6" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M882.7,2066.4c10.6,1.3,21,2.9,31.1,4.8c13.6,13.1,30.4,35.2,30.3,62.7c-1.8,23.8,15.4,19.7,16.3,10%0A%09%09%09%09c0.7-7-2.6-43-4.5-62.6c108.1,32.2,164.1,103.7,86.8,204.4c0,0,80.5,195.4-178.5,184.8c22.7-22.7,62.8-66.9,41.4-76.4%0A%09%09%09%09c-27.3-12.2-10,45.1-70.7,74.5c-19-1.7-39.5-4.4-61.7-8.2c-24-5.1-47.2-15.4-69.1-28.8c39.7-11.4,137-41.9,120.6-63.3%0A%09%09%09%09c-18.9-24.6-31,45.8-143.9,47.6c-21.5-15.8-41.4-33.9-58.9-52.1c37.3-6,107.4-20.1,100.5-40.6c-5.2-8.8-23.3,1.5-49.6,10.6%0A%09%09%09%09c-16.7,5.7-46.9,10.3-66.7,12.9c-38.7-43.2-62.7-81.8-62.7-81.8s30.7-35.6,77.3-76.8c23.3,3.1,68.1,9.9,76,18.1%0A%09%09%09%09c10.7,11.2,29.3,3.1,19.9-14.1c-7.3-13.2-42.1-23.8-69.1-26.7c20.4-16.6,42.9-33.2,66.6-48c31,11.1,99.6,37.5,106.2,56.3%0A%09%09%09%09c7.6,12.8,28.5,9,14.2-20.6c-10.9-22.7-68.4-42.4-95-50.5C786.1,2077.1,836.1,2060.7,882.7,2066.4z" class="st12"></path>%0A%09%09%09<path d="M593.2,2264.5c0,0,316.6-1.6,449.7,21.1" class="st13"></path>%0A%09%09%09<path d="M740.2,2197.3c0,0,46.4,26.9,77.7,70.8" class="st13"></path>%0A%09%09%09<path d="M768.3,2342.5c0,0,86.7-42.5,95.7-72.6" class="st13"></path>%0A%09%09%09<path d="M883.4,2149.7c0,0,45.4,83.2,46.7,123.9" class="st13"></path>%0A%09%09%09<path d="M958.3,2368c0,0,53.3-43.2,47.7-87.5" class="st13"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M924,1810c7.6,5.4,14.9,11,21.8,16.7c4.5,17.1,7.4,43.4-5.2,67.8c-12.3,20.5,2.9,23.7,8,15.4%0A%09%09%09%09c3.7-5.9,17.7-39.3,25.2-57.5c68.8,71.8,79.4,157.7-26.4,216.5c0,0-27.1,205.9-222.4,93.1c27.9-11.1,79.1-34.4,67-51.4%0A%09%09%09%09c-15.5-21.8-28.3,36.1-88.6,38c-13.9-9.1-28.5-19.7-43.9-32c-16.2-14.1-29.4-32.6-40.2-53.2c35.9,5.7,125,17.5,122.1-8.1%0A%09%09%09%09c-3.3-29.5-44.9,28.3-132.9-15.1c-9.4-22.6-16.5-46.7-21.7-69.8c31.6,9.6,92.2,25,96.2,4c0-9.9-18.7-8-43.2-10.4%0A%09%09%09%09c-15.5-1.6-41-9.5-57.5-15.1c-10.2-53.9-11.1-97.8-11.1-97.8s40-19.4,94.8-37.4c16.6,12,48.1,36,50.4,46.4%0A%09%09%09%09c3.2,14.2,21.3,14.5,21.8-4.6c0.4-14.7-21.6-38-41.2-51.3c23.4-6.6,48.4-12.4,73.4-16.1c18.9,22.3,59.8,73.1,56.3,92.5%0A%09%09%09%09c0,14.5,17.9,19.4,20.4-12.7c1.9-24.5-33.5-65-50.3-82.8C844.5,1781,890.6,1786.3,924,1810z" class="st10"></path>%0A%09%09%09<path d="M609.7,1870.6c0,0,245.3,125,337.8,198.4" class="st11"></path>%0A%09%09%09<path d="M754.1,1869.5c0,0,23.6,42.4,27.7,94" class="st11"></path>%0A%09%09%09<path d="M709.4,2009.9c0,0,86.4-3.2,107.1-26.3" class="st11"></path>%0A%09%09%09<path d="M886.5,1884.4c0,0-2.9,92.1-20.5,128.9" class="st11"></path>%0A%09%09%09<path d="M844.5,2108.4c0,0,60.9-17.2,76.8-58.8" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1245.1,1794.2c20.8-5.3,34.8-21,42.5-32.8c-0.2-7.2-0.7-14.6-1.4-22.1c-3.2-32.9-23.8-63.7-50.7-90.6%0A%09%09%09%09c-1.8,19.7-7.4,62.7-22.8,74.5c-20.1,15.5-26.4,2-17.9-5.6c13.2-8.1,22.1-59.9,25.4-83.2c-15-13.2-31.3-25.3-47.2-36%0A%09%09%09%09c2.2,19-0.2,44.7-9,52.2c-11.4,9.8-20.6-1.3-13.9-10.8c4.9-7,2.8-38.8,1.4-55.2c-33.1-20.3-61.3-33.5-68.7-36.8%0A%09%09%09%09c-1.2-0.6-1.9-0.9-1.9-0.9s-25.3,23.8-51.7,58.6c5.2,13,13.5,32.7,20.6,42.9c11.1,16.1,21.9,26.5,16,31.7%0A%09%09%09%09c-14.4,8.7-36.4-36.3-47-60.5c-10.9,15.5-21.4,32.5-29.9,50.2c19.7,76.5,74.9,71.1,59.3,88.7c-13.5,15.3-52.4-45-67.4-69.8%0A%09%09%09%09c-6.6,17.5-10.6,35.3-10.6,52.6c0.7,15.9,2,30.4,3.8,43.6c32.1,35.6,72.7,12.7,67.8,33.6c-3.8,16.4-43.7-2.3-64.6-13.4%0A%09%09%09%09c33.9,178.4,168.8,85.6,168.8,85.6c0.7,0.2,1.3,0.5,2,0.7c87.5,31.6,132-20.3,138.8-99.5c-14.6,5.1-41.3,14.3-46.7,15.2%0A%09%09%09%09C1232.6,1808.5,1226.7,1797.5,1245.1,1794.2z" class="st10"></path>%0A%09%09%09<path d="M1089.2,1580.6c0,0,52.5,215.2,56.8,310.2" class="st11"></path>%0A%09%09%09<path d="M1164,1667.7c0,0-12.8,36.8-41,66.6" class="st11"></path>%0A%09%09%09<path d="M1058.6,1715c0,0,46.2,50.8,70.4,51.1" class="st11"></path>%0A%09%09%09<path d="M1223.1,1755.9c0,0-55.6,47.1-86.3,55.9" class="st11"></path>%0A%09%09%09<path d="M1070,1849.3c0,0,41.4,27.9,74,15.4" class="st11"></path>%0A%09%09</g>%0A%09%09<path d="M1146.1,1890.8c0,0,14.8,158.8-25,350.6" class="st14"></path>%0A%09%09<path d="M937.7,2061.4c0,0,170.2,50.3,183.3,183.5" class="st14"></path>%0A%09%09<path d="M1029.4,2285.6c13.6-4.9,80.6-4.6,99.5,8.8" class="st14"></path>%0A%09%09<path d="M1223.3,2114.4c0,0-98.3,30.9-77.3,232.1" class="st14"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M2812.2,2216.6c0,0,60.8,180.6,68.3,350.2c-193.8,44.1-832.8-6.2-832.8-6.2%0A%09%09%09s14-297.1,80.4-332.6C2416.5,2250.4,2812.2,2216.6,2812.2,2216.6z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M2880.5,2566.9c-7.5-169.6-68.3-350.2-68.3-350.2s-395.8,33.8-684.1,11.4%0A%09%09%09c-17.2,9.2-30.9,36-41.7,70.6c61.5,25.5,298.6,104,672.8-9.3c-4.1,90.6,73.5,94.8,73.5,94.8c12.1,42.2,11.5,131.9,9.7,189.5%0A%09%09%09C2856.4,2571.7,2869.2,2569.4,2880.5,2566.9z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<path d="M2025.5,1497.7c-85.5,55.5-169,100.9-241.9,164.1c7.6,4.2,13.3,9.3,16.2,15.7%0A%09%09%09c0,0,180.9-97,314-235c-1,0.6-1.9,1.2-2.9,1.8C2081.6,1463,2054.9,1479,2025.5,1497.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2229.4,1095.4c-25.7-0.9-176.5,78.1-272.1,168.2c-95.6,90.1-340.3,323.9-337.5,369.2%0A%09%09%09c19.6,10.4,121.7,5.7,163.9,29c72.9-63.1,156.4-108.6,241.9-164.1c29.4-18.7,56.1-34.7,85.5-53.4c0.9-0.7,1.9-1.2,2.9-1.8%0A%09%09%09c13.7-14.2,26.8-28.8,39.2-43.8C2153.1,1398.7,2255.2,1096.3,2229.4,1095.4z" class="st15"></path>%0A%09%09<path d="M2771.6,1674.1c-70.5,28.9-142.4,50.7-222.4,50.7c-37.4,0-80.1,18.7-104.2,53.4%0A%09%09%09c-61.4,98.9-133.6,184.3-232.4,229.8c-32.1,14.6-74.5,15.6-110.7,1.8c-16.7,87.9-31.4,153-31.4,153s68.3,148.9,349.6,142.7%0A%09%09%09c281.3-6.2,397.1-37.2,407.5-93.1C2841.2,2157.3,2787.4,1837.7,2771.6,1674.1z M2709.5,2042.7v-2.7V2042.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2767.4,1598.2c4.1-101.3,24.8-260.6-97.2-366.1c-122-105.5-384.9-173.4-473.5-126.7l-76.5,292.8%0A%09%09%09c11.8,55.4,25.9,140.8,27.6,239.6c1.7,97.6-23.8,254.9-46,372c36.3,13.8,78.6,12.7,110.7-1.8c98.9-45.4,171-130.9,232.4-229.8%0A%09%09%09c24-34.7,66.8-53.4,104.2-53.4c80,0,151.9-21.8,222.4-50.7C2768.4,1641.5,2766.7,1615.1,2767.4,1598.2z" class="st15"></path>%0A%09%09<path d="M2357.9,1064.1c0,0-9-52.4-22.1-33.8c-13.1,18.6-10.3,92.4,9,98.6" class="st16"></path>%0A%09%09<path d="M2626.6,1195.8c5.3-16-5.3-34.7-24-34.7c-74.8,5.3-155,13.4-224.4-18.7c-23.9-11-31.4-34.7-32.8-58.9%0A%09%09%09c-12.4,46.4-71.3,284.2,13.2,332.7c71.4,40.9,184.3-8.4,256.1-105.5C2581,1285.5,2613.8,1234.5,2626.6,1195.8z" class="st16"></path>%0A%09%09<path d="M2517.2,949.8c-125.5-23.1-169.6,125.8-169.6,125.8s-0.8,2.8-2.2,7.9%0A%09%09%09c1.4,24.2,8.9,47.9,32.8,58.9c69.5,32.1,149.6,24,224.4,18.7c18.7,0,29.4,18.7,24,34.7c-12.9,38.6-45.6,89.7-12,114.9%0A%09%09%09c22.5-30.4,41-65.6,52.8-104.1C2717.1,1045.3,2621.6,969,2517.2,949.8z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2650.9,1208c2.1-1.4,41.5-29.8,53.8,4.1c10.6,31.7-40.8,91.7-77.6,80.7l-7.2-3.4" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2641.7,1253.5c0,0,22.4-60.7,39.3-38c16.9,22.7-50.4,66.6-53,66.6C2625.5,1282,2641.7,1253.5,2641.7,1253.5%0A%09%09%09z" class="st16"></path>%0A%09%09<path d="M2695.3,1256.7L2573,1608.5c0,0-4.1,73.6,8.3,89.5c-74.5,98.7-223.4,363.4-223.4,363.4%0A%09%09%09c93.1,24.8,111.9,120,92.1,155.1c108.5-97.2,400.1-407.5,406.4-575C2879.1,1534.1,2854.6,1361.8,2695.3,1256.7z" class="st15"></path>%0A%09%09<path d="M2837.6,1430.3c30.9,169.9,7.7,183.1-75,353.6%0A%09%09%09c-61.7,127.1-230.6,287.4-312.6,360.9c9.9,28.2,8.9,56.1,0,71.9c108.5-97.2,400.1-407.5,406.4-575%0A%09%09%09C2868.7,1583.2,2867.1,1505.7,2837.6,1430.3z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M2680.8,1197.5c-6.7,0-12.5,1.5-17.3,3.9c-21.5,10.5-26.4,38.8-26.4,38.8s-8.9,23.1-16.3,12.6%0A%09%09%09c-0.8-1.2-1.6-2.7-2.3-4.8c18.6-24.8,18.6-85.5,11.7-103.4c-6.9-17.9-99.3,26.2-212.3-13.8c-68.9-29.9-68.1-84.2-59.4-118%0A%09%09%09c4.5-17.6,11.1-29.6,11.1-29.6c8.7-20.6,14.7-76,34.2-70.3c40.6,11.7,106.8-29.1,164.9-24.4c49.8,4.1,97.3,36.1,128.3,67.6%0A%09%09%09c18.2,18.5,30.7,36.8,34.4,49.1C2741.5,1038.4,2700.5,1163.4,2680.8,1197.5z" class="st17"></path>%0A%09%09<path d="M2759.2,2289.4c0,0-18.6,62.6,23.2,86c41.8,23.4,50.2,8.7,50.2,8.7S2751.6,2373.8,2759.2,2289.4z" class="st9"></path>%0A%09%09<path d="M1712.9,1890.5c-52.6-85.2-72.3-184.5-63.6-284.7c-5.7,3.2-11.6,6.9-17.5,11%0A%09%09%09c0,0-40.7,64.1,46.2,255.8c-60.7,57.2-63.2,76.8-57.8,148.5c3.8,6,7.7,11.4,11.8,16.3C1628.4,1981.4,1663.8,1922.1,1712.9,1890.5z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M1827.7,1946.4c-2.8-88.2-44.1-69.6-38.6-133.1c5.5-63.4,12.4-109.6,15.9-150.3%0A%09%09%09c3.3-38.4-60.9-110.4-155.6-57.2c-8.8,100.2,10.9,199.5,63.6,284.7c-49.2,31.6-84.5,91-80.9,146.9c42.1,50.6,95,40.7,95,40.7%0A%09%09%09s40.7-51,44.8-68.3c11.7,0.7-32.4,71-32.4,71s7.6,14.2,24.1,13C1780.1,2092.5,1830.4,2034.6,1827.7,1946.4z" class="st16"></path>%0A%09%09<path d="M1679.1,1995l-15.9,55.8c0,0,23.8-50.3,29.3-72C1698.1,1957.1,1679.1,1995,1679.1,1995z" class="st18"></path>%0A%09%09<path d="M1719.7,2081.7c0.5-1.4,56.1-102.4,65.3-88.7c9.2,13.7-42,92.4-42,92.4s-5.3,3.1-3.5-4.7%0A%09%09%09c1.8-7.8,42.7-68.9,35.4-68.5c-7.4,0.5-44.1,60.7-47.8,65.7S1719.7,2081.7,1719.7,2081.7z" class="st18"></path>%0A%09%09<path d="M1686.9,2067.8c0,0,33.5-83.7,43.3-79.9c9.8,3.9-39.4,83.3-39.4,83.3L1686.9,2067.8z" class="st18"></path>%0A%09%09<path d="M1653.4,1961.3c0,0-15.7,62.3-15.2,75C1645.6,2045.3,1657.7,1960.6,1653.4,1961.3z" class="st18"></path>%0A%09%09<path d="M1761.8,2227.6c-54.2-19.3-110.3-23.2-166.4-38.7c-0.1,0-0.2-0.1-0.3-0.1c8.4,8.6,16.7,17.2,25.1,25.7%0A%09%09%09c53.2,60.7,288.8,91.2,288.8,91.2s-10.9-9.9-72.5-89.2c-8.1,3.7-16.2,7.5-24.4,11.1C1796.6,2235.3,1777.3,2233.4,1761.8,2227.6z" class="st19"></path>%0A%09%09<path d="M1267.8,1860.2c0,0,164.6,162.1,327.3,328.6c0.1,0,0.2,0.1,0.3,0.1c56.1,15.5,112.2,19.3,166.4,38.7%0A%09%09%09c15.5,5.8,34.8,7.7,50.3,0c8.2-3.6,16.4-7.4,24.4-11.1c-33.8-43.5-82.8-108-153.6-203.3%0A%09%09%09C1514.7,2038.1,1267.8,1860.2,1267.8,1860.2z" class="st20"></path>%0A%09%09<path d="M1894.6,2339.3c-53.4,8-106.9,10.7-163-2.7c-19-4.7-34.6-13.9-48.5-25.2%0A%09%09%09c15.8,36.7,102.7,87.4,133.9,82.8c31.7-4.6,303.8-96.5,339.7-99.3c35.9-2.8,272.6-59.4,293.2-78.4c6.2-5.7,10.6-21.4,10.5-40.6%0A%09%09%09c-161,58-322,87.3-483.1,141.9C1950.7,2325.9,1921.3,2334,1894.6,2339.3z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2357.9,2061.5c-149.6,34-453,200.5-549.1,192.3c0,0-60.2,7.5-96.1-8.3c-35.9-15.8-83.7-37.4-96.5-28.9%0A%09%09%09c-10.2,6.8,29.5,56.4,52.7,80.6c6,6.2,10.8,10.8,13.5,12.5c0.2,0.6,0.5,1.1,0.7,1.7c13.9,11.3,29.5,20.5,48.5,25.2%0A%09%09%09c56.1,13.4,109.5,10.7,163,2.7c26.7-5.3,56.1-13.4,82.8-21.4c161-54.5,322-83.8,483.1-141.9%0A%09%09%09C2460.3,2131.9,2436.5,2068.5,2357.9,2061.5z" class="st16"></path>%0A%09</g>%0A%09<path d="M5147.8,2758.7c3.3,42.6-104.8,129-220.1,160.2c-111.1,40.4-316.5,84.1-839.1,218.8%0A%09%09c-356.5,91.9-571.8,151.6-716.6,186.6c-191.1,46.2-259.5,49.2-368,26c-51.4-11-96.9-24.7-137.9-40%0A%09%09c-255-95.3-339.6-255.1-634.7-236.4c-200.1,12.7-322,96.2-560,42.5c-136.3-30.7-235.9-89.6-304.8-131.1%0A%09%09c0,0-186.3-112.1-344.2-301.7c-39.9-42.2-73.3-85.6-94.5-130.9l1061.8-81.6L5147.8,2758.7z" class="Graphic_x0020_Style_x0020_118"></path>%0A%09<polygon points="1909,2627.9 2329.7,2696.9 2880.5,2648.9 2839.9,2636 1902.2,2607.7 1873.4,2616.7" class="st21"></polygon>%0A%09<path d="M2902.4,2554.2c0,0,128.1,29.9,198.1,36.5c16.9,26,103.7,26.1,139.2,31.4c35.5,5.3,64.9,60.1,137.9,65%0A%09%09c73,4.9,88.9,32.2,118.2,30.1c29.2-2.1,39.1-54.7,49.7-59.9c10.6-5.2-32-38.9-10.7-45.5C3396.5,2597.2,2902.4,2554.2,2902.4,2554.2%0A%09%09z" class="st21"></path>%0A%09<path d="M3668.6,2761.4c39.6,3,90.3-36.8,169.2-23.5c88.5,14.9,307.2,32.5,354.3-1.4%0A%09%09c61.3,3.3,696.2,65.4,749.1,44.1c52.9-21.3,68-34.5,68-34.5l-1182-107.2c0,0-299.4,44.5-286.7,84.2%0A%09%09C3547.2,2749,3629,2758.4,3668.6,2761.4z" class="Graphic_x0020_Style_x0020_117"></path>%0A%09<path d="M3779.6,3218.3c-115.9-48.9-340.1-136.6-484.1-148c-201.1-15.9-340.3-109.9-337.2-157.7%0A%09%09c3.1-47.8-605.8-113-946.8-126.3c-204.7-8-676.2-112.3-330.9-291.5l-79,6.1c-81.3,57.9-200.4,165.5-77.3,230.8%0A%09%09c174.8,92.7,1373.9,95.9,1387.8,212c13.2,110.3,575.5,195.9,765.9,301.5C3710,3236.7,3743.7,3227.7,3779.6,3218.3z" class="st22"></path>%0A%09<g>%0A%09%09<path d="M4484.2,1461.7v1181h488.7v-1181H4484.2z M4939.2,2561.4h-421.4v-539.8h421.4%0A%09%09%09V2561.4z M4939.2,1982.4h-421.4v-485.5h421.4V1982.4z" class="Graphic_x0020_Style_x0020_107"></path>%0A%09%09<rect height="485.5" width="355.8" class="Graphic_x0020_Style_x0020_118" y="1496.9" x="4583.5"></rect>%0A%09%09<rect height="485.5" width="65.6" class="Graphic_x0020_Style_x0020_119" y="1496.9" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="80.1" class="Graphic_x0020_Style_x0020_119" y="2021.5" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="341.3" class="Graphic_x0020_Style_x0020_118" y="2021.5" x="4597.9"></rect>%0A%09%09<polygon points="5067.7,1559.5 4972.9,1461.7 4975.8,2765.4 5070.3,2765.4" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<polyline points="2442.7,2752.3 2386.8,2825.9 2352.6,2827.7 2416.8,2743.1 2832.6,2738.3 %0A%09%09%092839.9,2747.7" class="Graphic_x0020_Style_x0020_117"></polyline>%0A%09%09<polygon points="2832.6,2738.3 2416.8,2743.1 2352.6,2827.7 2134.5,2839.2 2105.5,2724.6 %0A%09%09%092798.5,2694.4" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="3202.8,2854.8 2364.9,2854.8 2386.8,2825.9 2442.7,2752.3 2839.9,2747.7 %0A%09%09%093134.1,2744.3" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="2839.5,2730.9 2805.3,2687.1 2112.4,2717.2 2141.4,2831.8 2359.4,2820.3 %0A%09%09%092393.7,2818.5 2449.6,2745 2846.8,2740.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09%09<polygon points="3202.8,2848.8 2364.9,2848.8 2386.8,2819.9 2442.7,2746.3 2839.9,2741.7 %0A%09%09%093134.1,2738.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3326.7,2053.5c67.2,11.8,127,45.4,188.5,75.5c-25.6-21.6-54.4-38-66.9-44.7c-69.9-65-238.4-55.8-331.3-54.5%0A%09%09%09c-56.7,0.8-107.4,28.8-147.4,65.5C3076.9,2034.1,3204.5,2033.1,3326.7,2053.5z" class="st23"></path>%0A%09%09<path d="M3390.7,2125.6c29.4,10.7,40.1,48.1,64.1,69.5c33.5,30.3,76.4,36.8,117.6,27.5c-4-13-8.3-25.7-12.8-37.7%0A%09%09%09c-7.5-20.2-25.1-39.4-44.4-55.7c-61.4-30.2-121.3-63.8-188.5-75.5c-6.7-1.1-13.5-2.2-20.2-3.1c2.5,4.5,4.8,9.1,6.8,13.8%0A%09%09%09c6.9,18.8,10.9,38,12.4,57.2C3347.5,2119.7,3369.7,2120.3,3390.7,2125.6z" class="st23"></path>%0A%09%09<path d="M3454.8,2195c-24-21.4-34.7-58.8-64.1-69.5c-21.1-5.3-43.3-5.9-65.1-4.2c6.4,84.5-36.4,169.9-95.2,228.6%0A%09%09%09c-29.4,32.1-61.4,58.8-101.5,82.8c-32.1,21.4-66.8,37.4-101.5,53.4c-41.6,14.5-81.5,4.8-119.8-10.2c3.7,32.6,11.1,70.7,27.1,85.4%0A%09%09%09c2.2,2,149.9,56.5,246.1,29.3c130.3-36.9,227.4-163.5,314.2-210.2c10.9-5.9,21.4-12.4,31.4-19.5l-0.4-14l53.6-33.2%0A%09%09%09c3.8-4.2,7.6-8.5,11.2-12.9c-4.1-26.8-10.7-53.3-18.4-78.3C3531.3,2231.8,3488.3,2225.3,3454.8,2195z" class="st24"></path>%0A%09%09<path d="M2963.9,2113.7l-74.4,244.3c3.2,19.6,7.7,41,13.7,64.4c0.8-0.5,1.1,24.3,4.3,53.6%0A%09%09%09c38.3,15.1,78.3,24.8,119.8,10.2c34.7-16,69.5-32.1,101.5-53.4c40.1-24,72.1-50.8,101.5-82.8c65-65,110.5-162.6,91.4-255.6%0A%09%09%09C3210,2135.2,3083,2108.6,2963.9,2113.7z" class="st25"></path>%0A%09%09<path d="M3321.8,2094.4c-2.1-10.2-4.9-20.2-8.6-30.2c-2-4.6-4.2-9.2-6.8-13.8c-116-16.9-235.4-12.9-336.9,44.9%0A%09%09%09l-5.6,18.4C3083,2108.6,3210,2135.2,3321.8,2094.4z" class="st26"></path>%0A%09%09<path d="M3590.8,2300.8c-3.6,4.4-7.4,8.7-11.2,12.9l12-7.5C3591.4,2304.4,3591.1,2302.6,3590.8,2300.8z" class="st9"></path>%0A%09%09<g>%0A%09%09%09<path d="M3452.4,2090.3c-50.3-112.2-85.1-243.7-193.4-309.5c-17.4-9.7-50.3-13.5-71.6,3.9%0A%09%09%09%09c-34.5,27-36.4,68-35.6,109.5c51.1,42.2,96.7,74.2,118.4,75.2c65,3,117,150.1,192.8,215.4c35.5,30.6,78.2,23.7,113.6,7.7%0A%09%09%09%09c-19.8-3.7-39.3-11.4-54.6-19C3487.2,2158,3467.9,2123.1,3452.4,2090.3z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09%09<path d="M3489,1994.5c-13.8-96.5-49-197.2-111.1-242.1c-62.1-44.9-38.1-160-114.8-199.7%0A%09%09%09%09c-190.3-102-287.5,4.8-333,55.2c-45.5,50.3-4.1,77.2-4.1,77.2s123.9,124.8,225.9,209c-0.9-41.4,1-82.4,35.6-109.5%0A%09%09%09%09c21.3-17.4,54.2-13.5,71.6-3.9c108.3,65.8,143.1,197.3,193.4,309.5c15.5,32.9,34.8,67.7,69.6,83.2c15.3,7.7,34.8,15.3,54.6,19%0A%09%09%09%09c40.3-18.2,71.2-48.2,71.2-48.2S3502.8,2091.1,3489,1994.5z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09%09<path d="M3182.3,2144.3c-13.4-74.8,34.7-189.7-58.8-221.7c-16-61.4,5.3-128.2-37.4-184.3%0A%09%09%09%09c-33.7-46.4-75.8-81.1-127.5-97.6c-15.4,4-42.2,14-46.3,24.6c-13.8,35.6-24.4,108.3-3.6,195.1c19.9,94,53.6,191.2,151.7,162.7%0A%09%09%09%09c51,68.9,51,103.4,48.3,128.2c25.3,30.5,60,37.2,94.1,32.1C3192.8,2173.6,3185.5,2160.8,3182.3,2144.3z" class="st16"></path>%0A%09%09%09<path d="M3314.2,2124.9c-5.5-129.6-75.8-207-93.8-211.7c30.3-46.1,33.1-82-6.9-106.8%0A%09%09%09%09c-40-24.8-57.9,67.6-57.9,67.6s-19.3,18-16-3.3c17.7-114.7-62.5-214-170.5-231.9c-1.2-0.2-5.1,0.5-10.4,1.9%0A%09%09%09%09c51.7,16.5,93.8,51.2,127.5,97.6c42.7,56.1,21.4,122.9,37.4,184.3c93.5,32.1,45.4,146.9,58.8,221.7c3.1,16.5,10.5,29.3,20.4,38.9%0A%09%09%09%09C3250.3,2176,3296.5,2145.8,3314.2,2124.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M2969,1635.8c0,0,75.2,27.2,72.4,70.7c-2.8,43.5-9.8,77.5,56.3,98.1c-31.6-35.6-34.2-44-26.9-86.3%0A%09%09%09%09S3035.8,1587.8,2969,1635.8z" class="st17"></path>%0A%09%09%09<path d="M2789.6,2288.5c-77.5,101.5-203,106.9-323.3,128.2c-27.7,5.9-43.7,28.1-64.3,43.4%0A%09%09%09%09c7.2,13.8,19.1,27.9,28,39.8c0.5-0.1,1.1-0.3,1.6-0.4c159.5-16.7,359.4-29.1,470.9-150.7l-0.1-16l61-218.3%0A%09%09%09%09c-27.4,9-56.1,12.8-77.6,32.4C2837.7,2184.3,2824.3,2243.1,2789.6,2288.5z" class="st25"></path>%0A%09%09%09<path d="M3017.4,2050.7c-17.9,4.3-35.5,9.7-52.8,16.1c-58.6,21.8-113.1,55-149.7,106.6%0A%09%09%09%09c-16.4,23.2-29.7,48.3-42.2,73.7c-5.8,11.7-11.7,21.5-19.5,31.9c-8.1,10.8-17.8,20.2-27.8,29.2c-21.9,19.5-47.7,34.4-75.4,44.1%0A%09%09%09%09c-33.1,11.6-67.9,16.1-101.5,25.4c-82.7,23-147.1,41.1-152.6,60.5c-0.2,7,2.3,14.5,6.2,22c20.6-15.4,36.6-37.5,64.3-43.4%0A%09%09%09%09c120.2-21.4,245.8-26.7,323.3-128.2c34.7-45.4,48.1-104.2,96.2-141.6c21.5-19.6,50.2-23.4,77.6-32.4l5.1-18.3%0A%09%09%09%09c11-10.8,16.7-15,29.5-24.1c14.7-10.5,30.5-19.7,47.1-26.7c0.1-0.2,0.2-0.4,0.3-0.6C3036,2046.5,3026.6,2048.4,3017.4,2050.7z" class="st23"></path>%0A%09%09%09<path d="M3045.4,2044.9c-0.1,0.2-0.2,0.4-0.3,0.6c0.7-0.3,1.4-0.6,2.1-0.9%0A%09%09%09%09C3046.6,2044.7,3046,2044.8,3045.4,2044.9z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09%09<path d="M2431.6,2499.6c-0.5,0.1-1.1,0.3-1.6,0.4c0.9,1.2,1.8,2.4,2.6,3.6c10.8,15.3,7.8,45,49.1,42.6%0A%09%09%09%09c30.8-6,230-18.7,273.3-29.7c32-8.2,82.2-26.3,148.2-94.1l-0.7-73.5C2791,2470.5,2591.1,2482.9,2431.6,2499.6z" class="st24"></path>%0A%09%09%09<path d="M2398.2,2439.8c0,0,40.7-31.7,69.6,4.1c29,35.9,49.3,96,29,100.7c-20.4,4.6-65.8,2.1-87-35.2%0A%09%09%09%09C2388.5,2472.2,2387.5,2454.3,2398.2,2439.8z" class="st27"></path>%0A%09%09%09<path d="M3350.7,1877.1c18.7-58.6,71.9-104,69.5-165.2c-4.1,1.2-8.2,5.1-10.8,12.5c-7.6,21.4-71.4,103.8-71.4,103.8%0A%09%09%09%09s0,0,3.8-22.1s1.4-35.5-9.7-36.9c-11-1.4-18.3,10.3-18.3,10.3c1-31-13.4-29.3-23.4-27.6c-10,1.7-9.3,51.4-10,64.8%0A%09%09%09%09c-0.7,13.4-15.2,26.9-20-4.1c-2.8-35.9-40.7-71.7-51.7-66.9c-11,4.8,14.8,62,13.1,94.5c-1.7,32.4-20,100.7-5.5,148.2%0A%09%09%09%09c14.5,47.6-3.4,102-3.4,102l85.3,21.2c4.2-67.5,4.5-134.6,44.5-197.1C3350.7,1903.8,3348,1890.5,3350.7,1877.1z" class="st16"></path>%0A%09%09%09<path d="M3420.1,1711.9c2.4,61.2-50.8,106.6-69.5,165.2c-2.7,13.4,0,26.7-8,37.4%0A%09%09%09%09c-40,62.5-40.2,129.7-44.5,197.1l22.9,5.7c0,0-3.5-115.8,17.2-141.3c20.7-25.5,15.2-80,25.3-108.9c10.1-29,71.3-117.9,72-137.2%0A%09%09%09%09C3436,1717.3,3427.9,1709.7,3420.1,1711.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M3305.2,1839.7c-0.4,0.9,11-56.8,9-67.2c4.3,1.6,4.3,1.6,4.3,1.6S3312.8,1824.1,3305.2,1839.7z" class="st9"></path>%0A%09%09%09<g>%0A%09%09%09%09<polygon points="2369.1,2558.8 2880.5,2623.2 2325,2668.2 1891.1,2604.1" class="Graphic_x0020_Style_x0020_115"></polygon>%0A%09%09%09%09<polygon points="2264.3,2566.5 2626.8,2624.8 2334.4,2648.9 2170.4,2611.3" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M2421.8,2452.1c-5.6-0.2-22.6,8.6-22.6,8.6s-13.8-44.1-80.7-43.4s-64.8,65.5-64.8,65.5s5.5,77.2,26.9,93.1%0A%09%09%09%09%09c21.4,15.9,99.3,4.1,102.4,0c3.1-4.1,45.3-6.9,66.9-30.3c21.6-23.4,33.5-24.4,33.5-24.4S2463.5,2453.5,2421.8,2452.1z" class="st16"></path>%0A%09%09%09%09<path d="M2319.3,2460c0,0-45.5,32.4-15.2,90.3c-6.8,0.6-6.8,0.6-6.8,0.6%0A%09%09%09%09%09S2262.7,2493.1,2319.3,2460z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09%09%09<path d="M2376.8,2552.2c0,0-56.9-11.2-43.1-33.6c13.8-22.4,45.5-15.9,46.9-24.5%0A%09%09%09%09%09c1.4-8.6-15.9-23.8-21.7-14.5c-5.9,9.3-15.5,25.2-15.5,25.2s-24.1,6.2-17.9,23.1c6.2,16.9,33.8,15.5,6.2,16.9%0A%09%09%09%09%09c-27.6,1.4-39.6,0-39.6,0s-7.4,36.2,7.3,37.5c14.7,1.4,61.6,6.9,105-10.3c43.4-17.2,43.8-24.7,43.8-24.7%0A%09%09%09%09%09S2401.3,2559.2,2376.8,2552.2z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09%09<polygon points="2331,2682 2848.1,2642 2880.5,2623.2 2322,2668.2 1885.6,2604.1 %0A%09%09%09%09%091893.9,2613.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M1784.9,2001.5l427.1,0.5l15.9,3c18.3,3.5,31.9,18.7,33.5,37.3c9.9,120.2,38.5,538.8,42.7,616.9%0A%09%09%09%09%09c0.3,6.5-11.2,15-17.7,14.2l-444.6-65.8L1784.9,2001.5z" class="st28"></path>%0A%09%09%09%09<path d="M1794.6,1993.3l411.5,8.2c15.8,0.3,28.8,12.5,30.1,28.3c10.4,126.7,52.8,644.5,49.2,643.3%0A%09%09%09%09%09c-3.6-1.2-348.6-51.6-443.5-65.4c-14.1-2.1-24.9-13.4-26.2-27.6l-52.4-553C1761.5,2008.7,1776.2,1992.9,1794.6,1993.3z" class="st29"></path>%0A%09%09%09</g>%0A%09%09%09<path d="M3465.5,2285.9c-5.8-29.1-28.6-54-57-68.5c9.3,57-21.2,85.5-21.2,85.5c-6.8,3.4-40.2,78.1-48.3,71.7%0A%09%09%09%09c-4.1-3.3-5.8-14.7-6.3-29.4c-17.3-67.3-4-136.5-11.5-203.5c-2.3-18.1-0.7-36.2-6.7-52.6c-6.5-5.5-15.7-10.3-27.9-14.4%0A%09%09%09%09c0.8,120.3-17.7,240.4,10.5,355.6c8,37.4,77.5,16,112.2-8C3452.2,2392.7,3478.9,2339.3,3465.5,2285.9z" class="st24"></path>%0A%09%09%09<path d="M3332.7,2345.1c-0.9-27.1,2.3-65.1,1.7-83.5c-0.9-28.4,4.6-84.2-6.4-147.7c-0.5-9.3-4.6-17.6-13.4-24.9%0A%09%09%09%09c5.9,16.5,4.4,34.5,6.7,52.6C3328.7,2208.5,3315.4,2277.8,3332.7,2345.1z" class="st27"></path>%0A%09%09%09<path d="M3591.6,2306.2l-189.3-113.8c2.9,8.8,4.9,17.1,6.2,24.9c28.4,14.5,51.2,39.4,57,68.5%0A%09%09%09%09c4.9,19.6,4.4,39.1-0.3,57.5c36.8,33.3,76.9,62.3,118.5,89.3C3596.9,2393.5,3597.6,2349.6,3591.6,2306.2z" class="st24"></path>%0A%09%09%09<path d="M3226.7,2062.8c-4.2-0.5-8.6-0.9-13.2-1.3c-89.6,102-96.5,485.4-63.4,524c10.1,11.8,36.5,17.9,71.6,18.6%0A%09%09%09%09c-2.7-1.6-5.1-3.5-7.3-5.6C3080,2450.9,3137.9,2222.8,3226.7,2062.8z" class="st23"></path>%0A%09%09%09<path d="M3465.3,2343.4c-8.1,31.8-28.7,60.1-55.8,78.8c-34.7,24-104.2,45.4-112.2,8%0A%09%09%09%09c-28.2-115.2-9.7-235.3-10.5-355.6c-15.1-5.1-34.8-9.1-60-11.8c-88.8,160-146.7,388.1-12.3,535.7c2.1,2.1,4.6,4,7.3,5.6%0A%09%09%09%09c79.8,1.5,205-25.2,288.3-77.9c38.4-24.3,61.5-56.9,73.7-93.5C3542.2,2405.6,3502.1,2376.6,3465.3,2343.4z" class="st25"></path>%0A%09%09</g>%0A%09%09<path d="M3123.6,1922.5c3.2,5.9-36.5,92.1-63.1,100.4c35,56.6,28,41.3,37.6,63.1c63.2-44,78.1-61.9,78.3-92.2%0A%09%09%09C3177.1,1914.4,3123.6,1922.5,3123.6,1922.5z" class="st30"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3972.8,2436.5c-19.3-100.6-1.9-197.3,30.9-292.1c1.9-7.7,9.7-13.5,11.6-23.2%0A%09%09%09c13.5-58,34.8-108.3,58-160.5c1.9-7.7,1.9-15.5,3.9-23.2c1.5-4.4,6.3-7.7,9.3-11.5c-108.6,18.8-247.9,49.9-313.3,64.9%0A%09%09%09c22.2,33.7,40.9,69.3,52.5,109.1c3.9,7.7,13.5,13.5,17.4,21.3c3.9,5.8,0,11.6,3.9,17.4c11.6,15.5,21.3,29,25.1,48.4%0A%09%09%09c1.9,3.9,7.7,5.8,7.7,9.7c0,94.8,7.7,189.6,0,284.3c-6.7,72.9-22.6,143.8-37.3,214.7c84.9-0.2,183-1.6,281.4-2.7%0A%09%09%09c-52.2-58.4-91.1-128-129.9-198.4C3984.4,2475.2,3976.6,2455.8,3972.8,2436.5z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M4194.9,2483.6c82.8-18.7,163-5.3,237.8,48.1c8,8,26.7,5.3,37.4,0%0A%09%09%09c58.6-34.6,128.4-61.3,198-68.7c-150.8-225.4-393-546.7-446.5-551.9c-23.2-2.2-74.3,4.4-135,14.8c-3.1,3.9-7.9,7.1-9.3,11.5%0A%09%09%09c-1.9,7.7-1.9,15.5-3.9,23.2c-23.2,52.2-44.5,102.5-58,160.5c-1.9,9.7-9.7,15.5-11.6,23.2c-32.9,94.8-50.3,191.5-30.9,292.1%0A%09%09%09c3.3,16.6,9.5,33.3,17.3,49.9C4050.6,2508.5,4130.6,2499.3,4194.9,2483.6z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4470.1,2531.7c-10.7,5.3-29.4,8-37.4,0c-74.8-53.4-155-66.8-237.8-48.1%0A%09%09%09c-64.3,15.7-144.3,24.9-204.8,2.8c1.3,2.7,2.6,5.4,3.9,8.1c38.9,70.4,77.7,140.1,129.9,198.4c233-2.6,467.2-3.9,529.1,13.9%0A%09%09%09c110.3,31.7,131,20.7,137.9-30.3c2.3-16.7-49.5-103.7-123-213.5C4598.5,2470.4,4528.6,2497,4470.1,2531.7z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3879.9,2196.6c0-3.9-5.8-5.8-7.7-9.7c-3.9-19.3-13.5-32.9-25.1-48.4c-3.9-5.8,0-11.6-3.9-17.4%0A%09%09%09c-3.9-7.7-13.5-13.5-17.4-21.3c-11.6-39.8-30.4-75.4-52.5-109.1c-23.2,5.3-37.1,8.6-37.1,8.6s-76.6,50.8-73.5,108.1%0A%09%09%09c3.1,57.3,7.7,545.5-0.1,585.4c44.9,2.2,107.7,2.8,180,2.6c14.8-70.9,30.6-141.8,37.3-214.7%0A%09%09%09C3887.6,2386.2,3879.9,2291.4,3879.9,2196.6z" class="st31"></path>%0A%09%09<path d="M3622.6,2308.8c7.7-30.9,11.6-63.8,40.6-85.1c3.9-3.9,1.9-9.7,5.8-13.5c21.7-17.1,39.8-41.6,63-53.7%0A%09%09%09c-6.4-58.7-17.6-101.8-29.1-95c-30.3,17.9-474.3,322.7-497.1,369.5s-42.1,123.7,13.1,152.8c0,0-20.7-133.5,59.3-157%0A%09%09%09c80-23.4,155.8,45.5,157.2,51c0.7,2.8,16.3,25.9,31.7,46.8c24.5-12.2,48.8-24.7,72.3-41.8%0A%09%09%09C3593.6,2440.4,3609.1,2376.5,3622.6,2308.8z" class="st32"></path>%0A%09%09<path d="M3669.1,2210.2c-3.9,3.9-1.9,9.7-5.8,13.5c-29,21.3-32.9,54.2-40.6,85.1c-13.5,67.7-29,131.5-83.2,174.1%0A%09%09%09c-23.4,17.1-47.7,29.6-72.3,41.8c14.9,20.3,29.7,38.6,30.4,34.1c1.4-9.2,146.2-90.6,205.5-136.8c36.9-28.8,39.6-168.5,29.1-265.5%0A%09%09%09C3708.8,2168.5,3690.8,2193.1,3669.1,2210.2z" class="st31"></path>%0A%09%09<path d="M3252.8,2424.8c-14.7,6.4-25.2,15.5-32.7,25.8c33.5,31.1,84.8,42,119.8,22.2c22.9-10.4,45.8-17.6,64.9-32.9%0A%09%09%09c-0.9-0.6-1.9-1.3-3.1-2.1C3385.9,2421.4,3321.1,2395.2,3252.8,2424.8z" class="st16"></path>%0A%09%09<path d="M3220.1,2450.6c-5.4,7.5-9.3,15.6-11.9,23.8c11.3,29.8,34.2,55.9,59.6,75.9%0A%09%09%09c39.9,36.8,89.5,48.9,140.2,47.1l4-152.6c0,0,0,0-7.2-4.8c-19.1,15.3-42,22.5-64.9,32.9%0A%09%09%09C3304.9,2492.6,3253.6,2481.7,3220.1,2450.6z" class="Graphic_x0020_Style_x0020_113"></path>%0A%09%09<path d="M3267.8,2550.4c-25.4-20-48.3-46.1-59.6-75.9c-0.6,1.9-1.2,3.9-1.7,5.8%0A%09%09%09c-3.2,12.6-4,25-3.7,35.5c0.4,15.7,3.1,26.9,3.1,26.9s73.1,121.3,186.1,122.7c14.5-13.8,14.5-13.8,14.5-13.8l0.5-17.8l0.7-24.6%0A%09%09%09l0.3-11.9C3357.3,2599.3,3307.7,2587.2,3267.8,2550.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3235.6,2602c0,0,20.6,1.7,15.5-3.8c-16.6-18-47.6-98.2-21.8-124.8c29.7-30.7,122.5-41.5,160.6-26.4%0A%09%09%09c-3.3-14.6-3.3-14.6-3.3-14.6s-76.5-31-120-13.1c-43.4,17.9-62.2,9.2-63.8,77c-1.7,67.8,9.5,101.6,23.2,107.8%0A%09%09%09C3239.7,2610.3,3235.6,2602,3235.6,2602z" class="st33"></path>%0A%09%09<path d="M3226,2604.1c0,0-34.8-98.6-3.2-143.2s183.6-37.2,209.7,22.5c15.9-4.6,15.9-4.6,15.9-4.6%0A%09%09%09s51.4-54.7-36.3-81.6c-87.8-26.9-216.5,9.7-228.4,92.5S3199.4,2597,3226,2604.1z" class="st20"></path>%0A%09%09<path d="M3340,2529c32.1-10.7,40.1-29.4,53.4-58.8c2.7-5.3,21.4,2.7,32.1-5.3%0A%09%09%09c34.7-32.1,80.1-48.1,120.2-32.1c9,3,17.6,7.1,26,11.5c-6.3-16.9-12.8-29.1-12.8-29.1s-3-1.5-7.6-3.6%0A%09%09%09c-11.7-5.4-33.9-14.8-44.8-14.3c-15.2,0.7-29.9,22.1-29.9,22.1s-32.8-9-49.4,0c-16.5,9-18.5,35.5-18.5,35.5s-15.9-1.7-33.9,7.3%0A%09%09%09s-6.2,37.2-6.2,37.2s-15.2-12.4-42.1,6.2c-20.5,12.6-13.4,51.1-1.3,85.4C3326.1,2565.1,3319.5,2533.5,3340,2529z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M3545.7,2432.8c-40.1-16-85.5,0-120.2,32.1c-10.7,8-29.4,0-32.1,5.3c-13.4,29.4-21.4,48.1-53.4,58.8%0A%09%09%09c-20.4,4.5-13.9,36.1-14.7,61.9c4.6,13,9.9,25.4,14.7,35.5c6.7,14.3,12.4,24,13.6,24.5c32.4,14.5,39.8-12.1,39.8-12.1%0A%09%09%09s7.4,27.2,34.4,26.6c27-0.6,13.8-43.4,13.8-43.4s36.8,33.1,54,29c17.2-4.1,4.1-42.1,4.1-42.1s23.4,27.6,48.3,21.4%0A%09%09%09c24.8-6.2-10.3-94-10.3-94s24.1,13.3,41.4-12.2c10.5-21.9,1.8-55.6-7.2-79.8C3563.2,2439.9,3554.7,2435.8,3545.7,2432.8z" class="st16"></path>%0A%09%09<path d="M3855.6,1746.2c-34.7-66.8-53.4-157.6-120.2-181.7c-70.3-26.7-149.3,8.2-227.2-3%0A%09%09%09c-21.3,43.8-31,95-34.5,140.3c-7.9,103.1,20.2,204.3,82.4,287.5c9.2,12.3,20.1,15.4,35.2,15.3c13.5-0.1,92.2-26.6,94.3-24.1%0A%09%09%09c0,0,89.2,104.8,138.8,155.4c3.9,4,7.6,7.6,11.1,10.9c41,38.7,55.1,33.2,55.1,33.2s66.2-16.5,80-60.7c13.8-44.1,68-261.3,68-261.3%0A%09%09%09s-2.5-6.5-5.6-15.8C3959.1,1845.2,3889.3,1813.7,3855.6,1746.2z" class="st16"></path>%0A%09%09<path d="M4022,1797.7c-2.8-24.8,81.8-357.6-168.2-366.8c-89.9-3.3-189,3.2-269.9,46.9%0A%09%09%09c-34.4,18.6-58.8,48.8-75.7,83.7c77.9,11.2,156.9-23.7,227.2,3c66.8,24,85.5,114.9,120.2,181.7c33.8,67.5,103.5,99,177.4,96.1%0A%09%09%09c-1.2-3.7-2.5-7.7-3.8-12.1C4026.1,1819.7,4023.1,1807.8,4022,1797.7z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4069.8,1569.7c-23-40.4-27.6-96.5-46-109.4c-0.8-25.3-12.8-44.3-33.2-58.9%0A%09%09%09c-26.3-18.9-66.6-30.6-114.7-39.4c-85.5-15.6-326.4,68.3-388.9,41.2c-46.2-20-44.1,85.7-44.1,85.7s-0.6,8.6,2.7,18.9%0A%09%09%09c0.8,2.6,1.9,5.3,3.4,8c6.8,13.1,21.3,26,51.9,25.5c61.6-0.9,148-35.8,156.3-17.5c8.3,18.4,0.9,143.8,12.9,163.8%0A%09%09%09c4.5,0.7,8.3,1.3,11.5,1.8c16,2.6,16,2.6,16,2.6s1.8-85.5,55.2-84.1c18.2,0.5,37.2,5.3,55.1,14.9c34.5,18.6,64.6,55.2,75.4,113.4%0A%09%09%09c16.6,88.2,147.1,77.2,147.1,77.2s2.3-7.5,5.9-19.9c5.1-17.8,12.8-45.6,20-75.9C4070,1659,4082.1,1591.2,4069.8,1569.7z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<polygon points="3720.5,1573.4 3453,1652.4 3452.3,1641 3736.1,1563.3" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09%09<path d="M3661.3,2544.8c-2.7-1-5.3-2.4-7.9-4.1c4.4,48.9,8.2,80.7,8.2,80.7l146.2-7.8%0A%09%09%09c0,0,5.8-43,13.8-101.1c-7.6,1.5-15.3,3.9-23,7.2C3756.1,2539,3707.8,2556.4,3661.3,2544.8z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3847.5,2157.6c-42.9-65.3-126-117.2-122.4-138.8c-110.1-35.4-87.2,349.7-71.6,521.9%0A%09%09%09c2.6,1.7,5.2,3.1,7.9,4.1c46.4,11.6,94.8-5.8,137.3-25.1c7.7-3.3,15.3-5.7,23-7.2c11.1-80.9,26.4-191.1,35.8-255.6%0A%09%09%09C3859.9,2240.5,3857.5,2172.8,3847.5,2157.6z" class="st32"></path>%0A%09%09<path d="M4242.6,2242.6c0,0,36.8,108.5,119.5,116.7c-13.8,52.4,206.2,183.4,206.2,183.4l9.8-23.8l-239.8-248.8%0A%09%09%09L4242.6,2242.6z" class="st34"></path>%0A%09%09<path d="M3298.6,2799c-8.5,5.6-14.3,9.3-14.8,9.1c-2.1-0.7-22.1,19.3-22.1,19.3%0A%09%09%09s33.8,2.8,36.5,0c0.5-0.5,4.9-3.2,11.4-7C3308.5,2811.6,3304.6,2802.8,3298.6,2799z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<path d="M3379,2744c0,0-53.6,37.3-80.3,55c3.9,2.5,6.9,7,8.8,12.3l95.8-56.5%0A%09%09%09C3402.9,2747.5,3396.9,2742.8,3379,2744z" class="Graphic_x0020_Style_x0020_112"></path>%0A%09%09<path d="M3307.5,2811.4c1.1,2.9,1.8,6,2.3,9.1c26.5-15.5,89.9-50.9,89.9-50.9%0A%09%09%09c2.2-5.4,3.8-10.5,3.6-14.7L3307.5,2811.4z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M4750.6,2686.6c-104.2,18.7-203,5.3-304.6,0c-109.5-2.7-227.1-26.7-334,16%0A%09%09%09c-80.1,29.4-171-21.4-261.8-2.7c-64.6,14.9-126.9,34.4-189.1,52.1c1.8,0.1,3.8,0.2,6,0.2c37.2,0,155.8-45.5,257.9-29%0A%09%09%09s212.4,30.3,251-6.9c96.5,5.5,601.2,41.4,650.9,26.2c10.9-23.2,13.8-50.2,10.6-77.7C4808.9,2673.1,4780.3,2680.7,4750.6,2686.6z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4112.1,2702.6c106.9-42.7,224.4-18.7,334-16c101.5,5.3,200.4,18.7,304.6,0c29.7-5.9,58.4-13.5,86.9-21.6%0A%09%09%09c-9.7-83.3-75.3-171.2-141.6-173.3c-45.6,12.2-90.4,22.8-134.1,31.9c-331.1,69.3-596.5,55.3-657.4,37%0A%09%09%09c-68.9-20.7-170.7,19.4-243.8,51.1c-73.1,31.7-122,56.6-95.8,74.6c-0.8,1.2-5,6.1-5.1,9.5c-0.1,3.5-5.8,5.5-8.7,8.7%0A%09%09%09c-8.6,9.5-7.7,26.2,7.4,27.1c1.8,0.1,3.6,0.3,5.3,0.6c20,3.4,31.7,17.6,60.9,4.9c30.3-4.1,30.3-4.1,30.3-4.1s-21.9,17.1,6.4,19.1%0A%09%09%09c62.2-17.7,124.5-37.2,189.1-52.1C3941.1,2681.3,4031.9,2732,4112.1,2702.6z" class="st16"></path>%0A%09%09<path d="M5017.7,2587.8c-2.7-5.3,2.7-13.4,0-18.7c-37.4-72.1-72.1-141.6-130.9-195%0A%09%09%09c-45.4-42.7-96.2-77.5-141.6-120.2c-64.1-53.4-101.5-125.6-173.7-165.6c-80.1-45.4-157.6-88.2-243.1-120.2%0A%09%09%09c-56.1-18.7-114.9-8-173.7-10.7c-8,0-13.4-8-18.7-8c-26.9-3.6-52.7-12-77.2-22.8l-4.1,6.3l-47.1,153.2l241.3,154.8%0A%09%09%09c0.7,4.9,2.5,10,5.3,15.1c70.7-21.4,153.8-12.5,210.4,35.3c58.8,50.8,77.5,133.6,138.9,176.3c50.8,37.4,117.6,48.1,155,101.5%0A%09%09%09c26.3,32.9,23.8,78.3-4.4,111.2c16.3,20,31.9,41.7,46.4,65.4c43.6,17.7,172.5,20.1,226.6-52.4%0A%09%09%09C5038.9,2660.1,5036.7,2621.8,5017.7,2587.8z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4666.9,2134.6c-215.1-230.3-311.2-220.2-404.5-226.6%0A%09%09%09c-58.4-29.4-93.8-48.3-120.4-4.6c-12.4-21.6-57-17.5-57-17.5l-26.1,40.5c24.5,10.8,50.2,19.2,77.2,22.8c5.3,0,10.7,8,18.7,8%0A%09%09%09c58.8,2.7,117.6-8,173.7,10.7c85.5,32.1,163,74.8,243.1,120.2c72.1,40.1,109.5,112.2,173.7,165.6c45.4,42.7,96.2,77.5,141.6,120.2%0A%09%09%09c58.8,53.4,93.5,122.9,130.9,195c2.7,5.3-2.7,13.4,0,18.7c18.9,34.1,21.2,72.4,9.5,105.5c14.4-19.2,23.5-43.8,24.4-74.7%0A%09%09%09C5055.7,2471,4882,2364.8,4666.9,2134.6z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M4758.6,2569.1c-37.4-53.4-104.2-64.1-155-101.5%0A%09%09%09c-61.4-42.7-80.1-125.6-138.9-176.3c-56.5-47.8-139.6-56.7-210.4-35.3c25.1,47.2,127.1,102.1,127.1,102.1s20.7,44.1,55.2,84.1%0A%09%09%09c30.5,35.4,193.5,85.8,317.6,238.2C4782.4,2647.3,4784.9,2601.9,4758.6,2569.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3715.8,2015.7l-33.4,5.8c0,0,86.9,194.9,81.4,227c99.3-46.4,98.4-56.1,98.4-56.1%0A%09%09%09l-7.4-38.1C3852.2,2113.2,3774.4,2063.6,3715.8,2015.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M4035.3,1825.7c0,0-127.3,345.2-108.9,400.3c60.7-14.7,108.9,4.6,108.9,4.6%0A%09%09%09s-11.5-222.5,55.6-345.6C4061.5,1845.5,4035.3,1825.7,4035.3,1825.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M3654.8,2733l130-51c-71.4,10.3-156.4,53.6-160.3,55.2C3633.4,2740.2,3654.8,2733,3654.8,2733z" class="st18"></path>%0A%09%09<path d="M3576.1,2735.8c0,0,55.9-47.6,182.8-76.5c-16.5-5.5-133.9,28.9-190.4,74.1%0A%09%09%09C3573.4,2738.5,3576.1,2735.8,3576.1,2735.8z" class="st18"></path>%0A%09%09<path d="M3558,2699.3c0,0,110.1-70.4,179-82.8c-35.9-12.4-176.2,71.6-176.2,71.6L3558,2699.3z" class="st18"></path>%0A%09%09<path d="M3834.5,1885.6c0,0-102,90.4-148.9,95c48.7,53.3,78.2,78.6,99.3,89.2%0A%09%09%09c0-99.3,91.9-168.2,83.7-237.2c-8.3-68.9-6.4-64.3-6.4-64.3S3863,1851.2,3834.5,1885.6z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M4897.2,2712.3c-24.8-45.5-111.6-233-210.3-220.6c0,0-65.2,9.2-99.4,20.8c-1.1,12.9,9.7,22,21.7,26.5%0A%09%09%09c104.1,32,201.6,111.9,214.5,216.4c41.8,6.1,86.6,20.3,88.3-2.4C4912.3,2747.3,4901.4,2720.1,4897.2,2712.3z" class="st20"></path>%0A%09%09<path d="M4609.1,2539c-12-4.5-22.8-13.6-21.7-26.5c-9.2,3.1-16.2,6.4-19,9.7c149.6,89.2,160.1,153.2,228.5,227.8%0A%09%09%09c9,2.3,18,4.1,26.7,5.4C4810.8,2650.9,4713.3,2571,4609.1,2539z" class="st35"></path>%0A%09%09<path d="M3389.9,2642.1c0,0-40.9-81.4-37.1-99.3c3.8-17.9-3.1-35.9,15.9-43.4c-6.2,13.8-11,29-10,45.5%0A%09%09%09c1,16.5,34.6,94,34.6,94L3389.9,2642.1z" class="st18"></path>%0A%09%09<path d="M3407,2460.9c0,0-9.2,34.9-1.9,66.6c7.4,31.7,30.8,93.9,37,97.1c6.2,3.2,6.2,3.2,6.2,3.2%0A%09%09%09S3398.3,2507.3,3407,2460.9z" class="st18"></path>%0A%09%09<path d="M3472.9,2418.4c0,0-17,55.4-15.2,76c1.8,20.7,41.7,120.8,41.7,120.8l2.9-3.5%0A%09%09%09c0,0-42.5-108.1-31.7-146c10.9-37.9,9.3-50.7,9.3-50.7L3472.9,2418.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3537.6,2454.9c0,0-9.2,72.2,0,81.4s20.4,7.3,20.4,7.3S3539.9,2483.9,3537.6,2454.9z" class="st18"></path>%0A%09%09<path d="M3543.3,2484.1c0,0-7.6,38.4-5.8,52.2c0.7,5.4,2.5,11.2,5.6,16.5c7.7,6.5,16.6,9.4,25.4,1.7%0A%09%09%09c15.6-12.5,17.4-32.6,17.5-52.1c-0.7-2.3-1.4-4.6-2.2-7" class="st16"></path>%0A%09%09<g>%0A%09%09%09<polygon points="3466.8,1624.2 3466.8,1624.2 3466.8,1624.2" class="st9"></polygon>%0A%09%09%09<path d="M3516.4,1675.9c-7.1-21.6-14.1-34.6-21-42.6c-3.4-4-6.9-6.7-10.3-8.4%0A%09%09%09%09c-3.4-1.7-6.8-2.3-9.8-2.3c-3.4,0-6.3,0.8-8.6,1.5c-4.1,1.3-8,4.5-10.7,9.6c-2.7,5.1-4.4,12.1-4.4,21.5%0A%09%09%09%09c0,12.2,2.8,28.6,10.1,50.4c6.4,19,13.3,30.6,20.3,37.6c3.5,3.5,7.1,5.8,10.5,7.3c3.4,1.4,6.8,2,9.7,2c2.7,0,5.1-0.4,7.1-0.9%0A%09%09%09%09c2-0.5,3.5-1.1,4.4-1.4l0,0c2.9-0.9,6.2-3.2,8.5-7.4c2.3-4.2,3.8-10.1,3.8-18.4C3526.2,1713.3,3523.6,1697.9,3516.4,1675.9z%0A%09%09%09%09 M3515.7,1738.9c-1.5,2.6-3.1,3.5-4.1,3.8c-1.2,0.4-2.5,0.9-4,1.3c-1.5,0.4-3.3,0.7-5.1,0.7c-2,0-4.3-0.3-6.7-1.4%0A%09%09%09%09c-3.7-1.5-7.9-4.6-12.5-10.9c-4.6-6.2-9.4-15.6-14-29.3c-7.1-21.2-9.7-36.9-9.7-47.9c0-8.5,1.5-14.2,3.5-17.9%0A%09%09%09%09c2-3.6,4.2-5.2,6.2-5.8l0,0c2-0.6,4.1-1.1,6.3-1.1c2,0,4,0.4,6.3,1.5c3.5,1.7,7.7,5.3,12.4,12.6c4.7,7.2,9.7,18.1,14.9,33.8%0A%09%09%09%09c7.1,21.4,9.4,36.2,9.4,46C3518.5,1731.7,3517.1,1736.3,3515.7,1738.9z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09</g>%0A%09</g>%0A%09<polygon points="4535.9,1753.6 4677.9,1982.4 4774.4,1982.4 4597.9,1697.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09<polygon points="4616.6,1659.7 4815.1,1982.4 4916.5,1982.4 4705.5,1586.9" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<polygon points="4597.9,1697.5 4644.4,1704.9 4815.1,1982.4 4774.4,1982.4" class="Graphic_x0020_Style_x0020_108"></polygon>%0A%09<polygon points="4791.1,1650.6 4705.5,1586.9 4916.5,1982.4 4939.2,1982.4 4939.2,1925.9" class="Graphic_x0020_Style_x0020_107"></polygon>%0A%09<path d="M4590.7,1773.7c0,0,19.3-16,39,11c19.6,27-20.3,47.3-33.4,30.1%0A%09%09C4583.1,1797.4,4579.5,1778.2,4590.7,1773.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09<path d="M4596.3,1780.1c0,0,13.5-11.2,27.3,7.7s-14.2,33.1-23.4,21.1%0A%09%09C4591,1796.7,4588.5,1783.2,4596.3,1780.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09<polygon points="4609.5,1841.2 4648,1821.1 4757.4,1982.4 4699.5,1982.4" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<ellipse ry="38.6" rx="31.7" cy="1701" cx="4703.2" class="Graphic_x0020_Style_x0020_104"></ellipse>%0A%09<polygon points="4705.5,1762.7 4757.4,1724.1 4766.2,1734.7 4712.4,1768.9" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4718.4,1793 4770.3,1754.3 4779,1764.9 4725.3,1799.2" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4731.2,1823.2 4783.2,1784.6 4791.9,1795.1 4738.1,1829.4" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<g>%0A%09%09<path d="M973.4,2494.7c-1.1-7.7-1.9-15.4-2.3-22.9c9.5-13.4,26.8-31.8,52.9-40.2c23.1-6.1,15.4-16.7,6-14.3%0A%09%09%09c-6.8,1.7-40.3,15-58.6,22.4c6.9-84.5,62.6-145.2,175.4-122.9c0,0,168.2-115.8,215,66.2c-26.6-8.7-77.4-22.7-81.8-5%0A%09%09%09c-5.6,22.6,45.1-7,86.4,25.8c2.5,13.6,4.5,28.6,5.7,45.1c0.4,18.1-4.3,37.3-12.2,56.6c-19.6-23.9-69.9-81.6-86.6-63.7%0A%09%09%09c-19.3,20.6,50.3,7.3,76.9,84.6c-10.3,19.7-23.2,39-36.6,56.7c-13.9-23.9-42.7-67.9-60.7-56.8c-7.2,6.3,6.6,15.6,21,31%0A%09%09%09c9.1,9.8,20.1,29.2,27,42.1c-32.6,40-64,68.5-64,68.5s-40.6-10.2-90-29.6c-2.2-17-5.6-50,0.5-58c8.3-10.9-3.5-21.2-17.7-9.4%0A%09%09%09c-11,9.1-13.4,36.4-10.2,55.9c-20.3-9-41-19.4-60.3-31.1c3.7-24.8,13.8-80.3,30.3-90.6c10.5-9.2,2.3-22.4-22.7-3.4%0A%09%09%09c-19.2,14.5-25.3,60.3-27.2,81.1C1004.8,2558,978.2,2528.6,973.4,2494.7z" class="st10"></path>%0A%09%09<path d="M1225.4,2633.4c0,0-71-217.9-78.6-316.8" class="st11"></path>%0A%09%09<path d="M1129.2,2552.6c0,0,15.4-40.3,50.3-75.4" class="st11"></path>%0A%09%09<path d="M1261.1,2488.4c0,0-59.5-46.7-90-43.7" class="st11"></path>%0A%09%09<path d="M1052.5,2468.5c0,0,69.2-57,107.6-70.5" class="st11"></path>%0A%09%09<path d="M1243.7,2349.5c0,0-52.8-23.4-93.7-5.9" class="st11"></path>%0A%09</g>%0A%09<path d="M3360.2,3327.1c-71.4-58-182.9-129.1-345.1-184.1c-329.3-111.6-176.9-187.3-303.6-225.2%0A%09%09s-430.3-22.5-784.9-68.8s-643.1-33.1-556-162c60.4-89.4,145-152.7,191.1-183.1l-109.7,8.4c-108.3,81.3-312.5,270.2,66.8,308.2%0A%09%09c486.5,48.7,1181.1,101.9,1192.6,208.2c9.2,84.8,440.1,200.1,610.2,307.3C3334,3333.3,3346.8,3330.3,3360.2,3327.1z" class="st22"></path>%0A%09<linearGradient y2="608.8419" x2="3633.9429" y1="608.8419" x1="3431.6741" gradientUnits="userSpaceOnUse" id="SVGID_9_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="101.1" rx="101.1" cy="608.8" cx="3532.8" class="st36"></ellipse>%0A%09<linearGradient y2="3174.8586" x2="1457.2415" y1="3174.8586" x1="1136.8959" gradientUnits="userSpaceOnUse" id="SVGID_10_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="106.3" rx="160.2" cy="3174.9" cx="1297.1" class="st37"></ellipse>%0A%09<linearGradient y2="2968.6479" x2="1266.5088" y1="2968.6479" x1="1085.6805" gradientUnits="userSpaceOnUse" id="SVGID_11_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="60" rx="90.4" cy="2968.6" cx="1176.1" class="st38"></ellipse>%0A%09<linearGradient y2="3078.0559" x2="5051.6841" y1="3078.0559" x1="4866.0625" gradientUnits="userSpaceOnUse" id="SVGID_12_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="92.8" rx="92.8" cy="3078.1" cx="4958.9" class="st39"></ellipse>%0A%09<path d="M2285.6,3438c0,0,206.8,24.5,420.7-87.7c42.5-28.4,62.6,33.1,35.4,53.2%0A%09%09c-27.2,20.1-168.9,100.4-399.3,87.4C2216,3486.1,2239.4,3435.8,2285.6,3438z" class="Graphic_x0020_Style_x0020_100"></path>%0A</g>%0A</svg>%0A';var d2=e=>{let{title:s,successRedirectUrl:t,extra:o,unregistered:r}=e,i=new URLSearchParams(window.location.search),{token:n,setToken:d}=Y(),{t:a}=b(),{isLoading:h}=ws(i.has("ticket")?{url:`/api/usystem/user/login?ticket=${i.get("ticket")}`}:null,{onSuccess:p=>{p&&d(p.token);}});if(h)return jsx("div",{className:"w-screen h-screen flex justify-center items-center",children:jsx(Spin,{})});if(n){let p=!!window.location.hash,c=t;return p?(window.location.href=`${window.location.origin}${window.location.pathname}#${c}`,null):jsx(Navigate,{replace:!0,to:c})}return jsxs("div",{className:"w-screen h-screen relative flex overflow-hidden",children:[jsx("div",{className:"absolute top-16 right-16 z-10",children:o}),jsx("div",{className:"absolute left-14 top-6",children:jsxs(Space,{align:"center",children:[jsx(ue,{width:48}),s]})}),jsx("div",{className:"flex-1 flex justify-center items-center bg-slate-50",children:jsx("img",{src:Co,alt:"background",className:"w-10/12"})}),jsx("div",{className:"w-[650px] relative top-0 left-0 right-0 bottom-0",children:jsx("div",{className:"absolute top-1/2 -translate-y-1/2 left-0 right-0",children:jsx("div",{className:"-translate-y-10 px-36",children:jsxs("div",{className:"flex flex-col justify-center",children:[jsx("div",{className:"h-10",children:r&&jsx(Alert,{banner:!0,closable:!0,message:a("SignIn.unregistered"),type:"error"})}),jsx(Typography.Title,{level:2,children:a("SignIn.welcome")}),jsx("div",{className:"mt-4",children:jsxs(Form,{layout:"vertical",autoComplete:"off",children:[jsx(Form.Item,{label:a("global.username"),name:"username",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:a("global.password"),name:"password",rules:[{required:!0}],children:jsx(Input.Password,{})}),jsx(Form.Item,{children:jsx(Button,{block:!0,type:"primary",shape:"round",htmlType:"submit",children:a("global.signIn")})})]})}),jsx(Divider,{plain:!0,dashed:!0,children:a("SignIn.thirdParty")}),jsx("div",{className:"flex justify-center items-center",children:jsxs(Button,{block:!0,shape:"round",href:`${ut}/logout?service=${ut}/login?service=${window.location.href}`,target:"_self",children:[jsx(ue,{width:18}),a("SignIn.signInWithIDass")]})})]})})})})]})},u2=d2;z();ve();B();fe();var _e=class extends Error{constructor(t){super(t?.message);et(this,"status");et(this,"code");this.status=t.status,this.code=t.code;}};async function D3(e,s={}){let t=Object.assign(s,{responseType:s.responseType??"json"}),{body:o,params:r,responseType:i,...n}=t;if(!e)throw new _e({status:400,message:"URL is required"});let d=vs.parseUrl(e),a=Object.assign({},d.query,r),h={skipNull:!0,skipEmptyString:!0,strict:!0,encode:!0},p=vs.stringify(a,h);e=p?`${d.url}?${p}`:e;let c=new Headers(t.headers),u=Y?.getState()?.token;if(u&&c.set("Authorization",`Bearer ${u}`),!c.has(C)&&J.getState().usePermissionApiV2){let S=K.getState().game;S&&c.set(C,String(J.getState().gameApiV2?S.game_id:S.id));}i==="blob"?c.append("Accept","application/octet-stream"):i==="json"&&c.append("Accept","application/json");let y=!!(o&&typeof o=="object"&&!(o instanceof FormData));y&&c.set("Content-Type","application/json");let m=Object.assign(n,{headers:c,body:y?JSON.stringify(o):o}),l=await fetch(e,m);if(!l.ok)try{let S=await l.json();throw new Error(S.msg)}catch(S){throw new _e({status:l.status,message:S?.message??"Can't parse response."})}let f=J.getState().interceptor?.response;if(typeof f=="function")return await f(l,t);let g;if(i==="blob")g=await l.blob();else if(i==="json")try{let S=await l.json();if(S.code===0||S.code===200||S.status===0)g=S.data;else throw new _e({code:S.code,status:l.status,message:S.msg})}catch(S){throw new _e({status:l.status,message:S?.message??"Can't parse response."})}else g=await l.text();return {...pick(l,["headers","status","statusText","url"]),data:g}}dt();
33
24
 
34
- // src/components/locale/en_GB.ts
35
- var locale, en_GB_default;
36
- var init_en_GB = __esm({
37
- "src/components/locale/en_GB.ts"() {
38
- locale = {
39
- global: {
40
- noEntitlement: "No permission, please contact the administrator.",
41
- name: "Name",
42
- creationTime: "Creation Time",
43
- operation: "Operation",
44
- update: "Update",
45
- edit: "Edit",
46
- delete: "Delete",
47
- selectAll: "Select All",
48
- game: "Game",
49
- user: "User",
50
- role: "Role",
51
- username: "Username",
52
- password: "Password",
53
- label: "Label",
54
- method: "Method",
55
- route: "Route",
56
- request: "Request",
57
- response: "Response",
58
- add: "Add",
59
- signIn: "Sign In"
60
- },
61
- SignIn: {
62
- title: "Sign In Method",
63
- thirdParty: "Third party sign in",
64
- signInWithIDass: "Sign in with IDass",
65
- unregistered: "You are not yet registered on the platform, please contact the administrator",
66
- welcome: "Welcome"
67
- },
68
- NotFound: {
69
- subTitle: "The page you visited does not exist",
70
- buttonText: "Return to homepage"
71
- },
72
- FilterFormWrapper: {
73
- confirmText: "Search",
74
- resetText: "Reset"
75
- },
76
- FormModal: {
77
- confirmText: "Confirm",
78
- cancelText: "Cancel"
79
- },
80
- GameSelect: {
81
- label: "Current Game",
82
- placeholder: "Please select a game"
83
- },
84
- RequireGame: {
85
- description: "Please select a game"
86
- },
87
- UserWidget: {
88
- signOutText: "Sign Out"
89
- },
90
- UserList: {
91
- createTitle: "Create User",
92
- createSuccessfully: "User created successfully",
93
- updateTitle: "Update User",
94
- updateSuccessfully: "User updated successfully",
95
- deleteTitle: "Delete User",
96
- deleteContent: "Are you sure you want to delete user <%= user %>?",
97
- deleteSuccessfully: "User deleted successfully"
98
- },
99
- RoleList: {
100
- createTitle: "Create Role",
101
- createSuccessfully: "Role created successfully",
102
- updateTitle: "Update Role",
103
- updateSuccessfully: "Role updated successfully",
104
- deleteTitle: "Delete Role",
105
- deleteContent: "Are you sure you want to delete role <%= role %>?",
106
- deleteSuccessfully: "Role deleted successfully"
107
- },
108
- PermissionList: {
109
- failedDescription: "Failed to get permission list",
110
- baseSectionTitle: "Platform Basic Permissions",
111
- gameSectionTitle: "Game Permissions",
112
- gameSectionDescription: "Please select a game first",
113
- gameSelectPlaceholder: "Please select a game first",
114
- removeText: "Remove",
115
- addText: "Add Game Permissions"
116
- },
117
- RoleDetail: {
118
- title: "Role Details"
119
- },
120
- InfiniteList: {
121
- loadingText: "Loading...",
122
- reachEndText: "You've reached the end",
123
- loadMoreText: "Load more"
124
- }
125
- };
126
- en_GB_default = locale;
127
- }
128
- });
129
- function useToolkitsContext(selector) {
130
- const store = useContext(ToolkitsContext);
131
- if (!store) throw new Error("Missing ToolkitsContext.Provider in the tree");
132
- return useStore(store, selector);
133
- }
134
- var createContextStore, contextStore, ToolkitsContext, ContextProvider, Provider_default;
135
- var init_Provider = __esm({
136
- "src/components/contextProvider/Provider.tsx"() {
137
- init_en_GB();
138
- createContextStore = (initProps) => {
139
- const DEFAULT_PROPS = {
140
- locale: en_GB_default,
141
- usePermissionApiV2: false,
142
- gameApiV2: false
143
- };
144
- return createStore()((set) => ({
145
- ...DEFAULT_PROPS,
146
- ...initProps,
147
- setContext: (props) => {
148
- set({ ...props });
149
- }
150
- }));
151
- };
152
- ToolkitsContext = createContext(null);
153
- ContextProvider = (props) => {
154
- const { children, ...restProps } = props;
155
- const storeRef = useRef();
156
- if (!storeRef.current) {
157
- storeRef.current = createContextStore(restProps);
158
- }
159
- contextStore = storeRef.current;
160
- return /* @__PURE__ */ jsx(ToolkitsContext.Provider, { value: storeRef.current, children });
161
- };
162
- if (process.env.NODE_ENV !== "production") {
163
- ContextProvider.displayName = "ContextProvider";
164
- }
165
- Provider_default = ContextProvider;
166
- }
167
- });
168
-
169
- // src/components/contextProvider/index.ts
170
- var init_contextProvider = __esm({
171
- "src/components/contextProvider/index.ts"() {
172
- init_Provider();
173
- }
174
- });
175
- function useTranslation() {
176
- const locale2 = useToolkitsContext((state) => state.locale);
177
- const t = useMemo(
178
- () => (key, data) => has(locale2, key) ? template(get(locale2, key))(data) : key,
179
- [locale2]
180
- );
181
- return { t };
182
- }
183
- var init_hooks = __esm({
184
- "src/components/locale/hooks.ts"() {
185
- init_contextProvider();
186
- }
187
- });
188
-
189
- // src/components/locale/index.ts
190
- var init_locale = __esm({
191
- "src/components/locale/index.ts"() {
192
- init_hooks();
193
- }
194
- });
195
- var FilterFormWrapper, FilterFormWrapper_default;
196
- var init_FilterFormWrapper = __esm({
197
- "src/components/filterFormWrapper/FilterFormWrapper.tsx"() {
198
- init_locale();
199
- FilterFormWrapper = (props) => {
200
- const { extras, isConfirming, onConfirm, onReset, children, buttonsAlign = "left", showReset } = props;
201
- const { t } = useTranslation();
202
- const {
203
- token: { colorFillAlter, lineWidth, lineType, colorBorder, borderRadiusLG }
204
- } = theme.useToken();
205
- const style = {
206
- maxWidth: "none",
207
- background: colorFillAlter,
208
- borderWidth: lineWidth,
209
- borderStyle: lineType,
210
- borderColor: colorBorder,
211
- borderRadius: borderRadiusLG,
212
- padding: 24,
213
- marginBottom: 24
214
- };
215
- return /* @__PURE__ */ jsx("div", { style, children: /* @__PURE__ */ jsxs("div", { className: `flex ${buttonsAlign === "bottom" ? "flex-col" : "flex-row"}`, children: [
216
- /* @__PURE__ */ jsx("div", { className: `${buttonsAlign === "left" ? "flex-grow-0" : "flex-1"}`, children }),
217
- /* @__PURE__ */ jsx("div", { className: `${buttonsAlign === "bottom" ? "text-end" : "text-start"} ml-4`, children: /* @__PURE__ */ jsxs(Space, { children: [
218
- /* @__PURE__ */ jsx(Button, { type: "primary", loading: isConfirming, onClick: onConfirm, children: t("FilterFormWrapper.confirmText") }),
219
- extras?.map((item) => /* @__PURE__ */ jsx(Fragment$1, { children: item.children }, item.key)),
220
- showReset && /* @__PURE__ */ jsx(Button, { onClick: onReset, children: t("FilterFormWrapper.resetText") })
221
- ] }) })
222
- ] }) });
223
- };
224
- FilterFormWrapper_default = FilterFormWrapper;
225
- }
226
- });
227
-
228
- // src/components/filterFormWrapper/index.ts
229
- var init_filterFormWrapper = __esm({
230
- "src/components/filterFormWrapper/index.ts"() {
231
- init_FilterFormWrapper();
232
- }
233
- });
234
- function renderToString(node) {
235
- const container = document.createElement("div");
236
- const root = createRoot(container);
237
- return new Promise((resolve) => {
238
- setTimeout(() => {
239
- flushSync(() => {
240
- root.render(node);
241
- });
242
- resolve(container.innerHTML);
243
- });
244
- });
245
- }
246
- var splitByTags, Highlight, Highlight_default;
247
- var init_Highlight = __esm({
248
- "src/components/highlight/Highlight.tsx"() {
249
- splitByTags = (str) => {
250
- const regex = /(<[^>]*>)/;
251
- return str.split(regex).filter((part) => part !== "");
252
- };
253
- Highlight = (props) => {
254
- const { texts, children } = props;
255
- const [htmlString, setHtmlString] = useState("");
256
- useEffect(() => {
257
- renderToString(children).then((str) => {
258
- const result = splitByTags(str);
259
- for (const text of texts) {
260
- for (let index = 0; index < result.length; index++) {
261
- result[index] = result[index].replace(String(text), `<span style='color: #DC143C;'>${text}</span>`);
262
- }
263
- }
264
- setHtmlString(result.join(""));
265
- });
266
- }, [children, texts]);
267
- return /* @__PURE__ */ jsx("div", { dangerouslySetInnerHTML: { __html: htmlString } });
268
- };
269
- Highlight_default = Highlight;
270
- }
271
- });
272
-
273
- // src/components/highlight/index.ts
274
- var init_highlight = __esm({
275
- "src/components/highlight/index.ts"() {
276
- init_Highlight();
277
- }
278
- });
279
-
280
- // src/constants.ts
281
- var SSO_URL, APP_ID_HEADER_NAME;
282
- var init_constants = __esm({
283
- "src/constants.ts"() {
284
- SSO_URL = "https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1";
285
- APP_ID_HEADER_NAME = "App-ID";
286
- }
287
- });
288
- var Logo, Logo_default;
289
- var init_Logo = __esm({
290
- "src/components/logo/Logo.tsx"() {
291
- Logo = (props) => {
292
- return /* @__PURE__ */ jsx("img", { src: logoUrl, alt: "logo", ...props });
293
- };
294
- Logo_default = Logo;
295
- }
296
- });
297
-
298
- // src/components/logo/index.ts
299
- var init_logo = __esm({
300
- "src/components/logo/index.ts"() {
301
- init_Logo();
302
- }
303
- });
304
- var useNavStore;
305
- var init_stores = __esm({
306
- "src/components/navMenu/stores.ts"() {
307
- useNavStore = create()(
308
- persist(
309
- (set) => ({
310
- openKeys: [],
311
- setOpenKeys: (keys) => set({ openKeys: keys }),
312
- selectedKeys: [],
313
- setSelectedKeys: (keys) => set({ selectedKeys: keys })
314
- }),
315
- {
316
- name: "nav",
317
- storage: createJSONStorage(() => localStorage),
318
- partialize: (state) => ({
319
- openKeys: state.openKeys,
320
- selectedKeys: state.selectedKeys
321
- })
322
- }
323
- )
324
- );
325
- }
326
- });
327
- function checkChildren(children, permissions) {
328
- return (children ?? []).some((child) => {
329
- if (child === null) {
330
- return false;
331
- } else if (child.type === "divider") {
332
- return true;
333
- } else {
334
- if (child.children) {
335
- return checkChildren(child.children ?? [], permissions);
336
- } else {
337
- return !permissions || !child.code || permissions[child.code];
338
- }
339
- }
340
- });
341
- }
342
- function transformItems(items, permissions) {
343
- const result = [];
344
- if (items) {
345
- for (let i = 0; i < items.length; i++) {
346
- if (items[i] === null || items[i].type === "divider") {
347
- result[i] = items[i];
348
- } else if (items[i].children) {
349
- const { children, ...rest } = items[i];
350
- result[i] = checkChildren(children, permissions) ? {
351
- ...rest,
352
- children: transformItems(children, permissions)
353
- } : null;
354
- } else {
355
- const { route: route3, label, code, ...rest } = items[i];
356
- const isPass = !code || !permissions || permissions[code];
357
- const labelNode = route3 ? /* @__PURE__ */ jsx(Link, { to: route3, children: label }) : label;
358
- result[i] = isPass ? {
359
- ...rest,
360
- label: labelNode
361
- } : null;
362
- }
363
- }
364
- }
365
- return result;
366
- }
367
- function flatItems(items, result = [], keypath = []) {
368
- for (const item of items) {
369
- const children = item?.children;
370
- if (Array.isArray(children)) {
371
- const keys = item.type !== "group" && item.key ? [...keypath, item.key] : keypath;
372
- flatItems(children, result, keys);
373
- } else if (item) {
374
- result.push(Object.assign(item, { keypath }));
375
- }
376
- }
377
- return result;
378
- }
379
- var init_utils = __esm({
380
- "src/components/navMenu/utils.tsx"() {
381
- }
382
- });
383
- var NavMenu, NavMenu_default;
384
- var init_NavMenu = __esm({
385
- "src/components/navMenu/NavMenu.tsx"() {
386
- init_permission();
387
- init_stores();
388
- init_utils();
389
- NavMenu = memo(function NavMenu2(props) {
390
- const { items, theme: theme4, loading } = props;
391
- const location = useLocation();
392
- const flattenItems = useMemo(() => flatItems(items ?? []), [items]);
393
- const codes = useMemo(() => flattenItems.map((item) => item.code).filter(Boolean), [flattenItems]);
394
- const { data: permissions, isLoading: isChecking } = usePermissions(codes, {
395
- headers: { APP_ID_HEADER_NAME: "global" }
396
- });
397
- const internalItems = useMemo(() => transformItems(items ?? [], permissions), [items, permissions]);
398
- const { openKeys, selectedKeys, setOpenKeys, setSelectedKeys } = useNavStore();
399
- const onOpenChange = useCallback(
400
- (keys) => {
401
- const lastOpenKey = keys?.find((key) => openKeys?.indexOf(key) === -1);
402
- const match = flattenItems.find((item) => lastOpenKey === item.key);
403
- setOpenKeys(match?.keypath ?? [lastOpenKey]);
404
- },
405
- [flattenItems, openKeys, setOpenKeys]
406
- );
407
- useEffect(() => {
408
- const match = flattenItems.find((item) => location.pathname === item.route);
409
- if (match) {
410
- const key = match.key;
411
- const keypath = match.keypath;
412
- setSelectedKeys([key]);
413
- setOpenKeys(keypath);
414
- }
415
- }, [flattenItems, location]);
416
- if (loading || isChecking) {
417
- return /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center", style: { height: "calc(100vh - 64px)" }, children: /* @__PURE__ */ jsx(Spin, {}) });
418
- }
419
- return /* @__PURE__ */ jsx(
420
- Menu,
421
- {
422
- theme: theme4,
423
- style: { borderRight: "none" },
424
- items: internalItems,
425
- mode: "inline",
426
- openKeys,
427
- selectedKeys,
428
- onOpenChange
429
- }
430
- );
431
- });
432
- if (process.env.NODE_ENV === "development") {
433
- NavMenu.displayName = "NavMenu";
434
- }
435
- NavMenu_default = NavMenu;
436
- }
437
- });
438
-
439
- // src/components/navMenu/index.ts
440
- var init_navMenu = __esm({
441
- "src/components/navMenu/index.ts"() {
442
- init_NavMenu();
443
- }
444
- });
445
- var Spin2, RequireGame, RequireGame_default;
446
- var init_RequireGame = __esm({
447
- "src/components/requireGame/RequireGame.tsx"() {
448
- init_contextProvider();
449
- init_layout();
450
- init_locale();
451
- ({ Spin: Spin2 } = Antd2);
452
- RequireGame = (props) => {
453
- const { hideGameSelect, children } = props;
454
- const usePermissionApiV2 = useToolkitsContext((state) => state.usePermissionApiV2);
455
- const { game, isLoading } = useGameStore();
456
- const { t } = useTranslation();
457
- if (isLoading) {
458
- return /* @__PURE__ */ jsx(
459
- "div",
460
- {
461
- style: {
462
- display: "flex",
463
- justifyContent: "center",
464
- alignItems: "center",
465
- height: 200
466
- },
467
- children: /* @__PURE__ */ jsx(Spin2, {})
468
- }
469
- );
470
- }
471
- if (usePermissionApiV2 && !hideGameSelect && !game) {
472
- return /* @__PURE__ */ jsx(Empty, { image: Empty.PRESENTED_IMAGE_SIMPLE, description: t("RequireGame.description") });
473
- }
474
- return children;
475
- };
476
- RequireGame_default = RequireGame;
477
- }
478
- });
479
-
480
- // src/components/requireGame/index.ts
481
- var init_requireGame = __esm({
482
- "src/components/requireGame/index.ts"() {
483
- init_RequireGame();
484
- }
485
- });
486
- function useTestToken() {
487
- const usePermissionApiV2 = useToolkitsContext((state) => state.usePermissionApiV2);
488
- return useSWRImmutable(
489
- usePermissionApiV2 ? "/api/usystem/user/checkV2" : "/api/usystem/user/check",
490
- (url) => request(url, {
491
- method: "POST",
492
- body: { permissions: [] },
493
- headers: { [APP_ID_HEADER_NAME]: "global" }
494
- })
495
- );
496
- }
497
- var useTokenStore;
498
- var init_token = __esm({
499
- "src/hooks/token.ts"() {
500
- init_contextProvider();
501
- init_constants();
502
- init_request();
503
- useTokenStore = create()(
504
- persist(
505
- (set, get2, store) => ({
506
- token: "",
507
- getUser: () => {
508
- try {
509
- return jwtDecode(get2().token);
510
- } catch (_) {
511
- return null;
512
- }
513
- },
514
- setToken: (token) => set({ token }),
515
- clearToken: () => {
516
- get2().setToken("");
517
- store.persist.clearStorage();
518
- }
519
- }),
520
- {
521
- name: "token",
522
- partialize: (state) => ({ token: state.token })
523
- }
524
- )
525
- );
526
- }
527
- });
528
- var UserWidget, UserWidget_default;
529
- var init_UserWidget = __esm({
530
- "src/components/userWidget/UserWidget.tsx"() {
531
- init_token();
532
- init_locale();
533
- UserWidget = (props) => {
534
- const { logoutRedirectUrl } = props;
535
- const { t } = useTranslation();
536
- const navigate = useNavigate();
537
- const { clearToken, getUser } = useTokenStore();
538
- const user = getUser();
539
- const items = [
540
- {
541
- key: "1",
542
- icon: /* @__PURE__ */ jsx(LogoutOutlined, {}),
543
- label: /* @__PURE__ */ jsx(
544
- "a",
545
- {
546
- onClick: () => {
547
- clearToken();
548
- navigate(logoutRedirectUrl);
549
- },
550
- children: t("UserWidget.signOutText")
551
- }
552
- )
553
- }
554
- ];
555
- return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
556
- Dropdown,
557
- {
558
- menu: {
559
- selectable: true,
560
- items
561
- },
562
- placement: "bottomRight",
563
- children: /* @__PURE__ */ jsx(
564
- "a",
565
- {
566
- onClick: (e) => {
567
- e.preventDefault();
568
- },
569
- children: /* @__PURE__ */ jsxs(Space, { align: "center", children: [
570
- /* @__PURE__ */ jsx("span", { children: user?.authorityId }),
571
- /* @__PURE__ */ jsx(UserOutlined, { style: { fontSize: "16px" } })
572
- ] })
573
- }
574
- )
575
- }
576
- ) });
577
- };
578
- UserWidget_default = UserWidget;
579
- }
580
- });
581
-
582
- // src/components/userWidget/index.ts
583
- var init_userWidget = __esm({
584
- "src/components/userWidget/index.ts"() {
585
- init_UserWidget();
586
- }
587
- });
588
-
589
- // src/utils/storage.ts
590
- var mixedStorage;
591
- var init_storage = __esm({
592
- "src/utils/storage.ts"() {
593
- mixedStorage = {
594
- getItem: (name) => {
595
- return sessionStorage.getItem(name) || localStorage.getItem(name);
596
- },
597
- setItem: (name, value) => {
598
- sessionStorage.setItem(name, value);
599
- localStorage.setItem(name, value);
600
- },
601
- removeItem: async (name) => {
602
- sessionStorage.removeItem(name);
603
- localStorage.removeItem(name);
604
- }
605
- };
606
- }
607
- });
608
- var useLayoutStore, useGameStore;
609
- var init_stores2 = __esm({
610
- "src/components/layout/stores.ts"() {
611
- init_request();
612
- init_storage();
613
- init_contextProvider();
614
- useLayoutStore = create()(
615
- persist(
616
- (set) => ({
617
- collapsed: false,
618
- setCollapsed: (collapsed) => set({ collapsed })
619
- }),
620
- {
621
- name: "layout",
622
- storage: createJSONStorage(() => localStorage),
623
- partialize: (state) => ({ collapsed: state.collapsed })
624
- }
625
- )
626
- );
627
- useGameStore = create()(
628
- persist(
629
- (set, get2) => ({
630
- initialized: false,
631
- isLoading: false,
632
- game: null,
633
- games: [],
634
- async fetchGames({ apiV2 = contextStore.getState().gameApiV2, forceUpdate = false } = {}) {
635
- if (!forceUpdate && get2().initialized) {
636
- return get2().games;
637
- }
638
- try {
639
- set({ isLoading: true });
640
- let games;
641
- if (!apiV2) {
642
- const response = await request("/api/usystem/game/all");
643
- games = response.data ?? [];
644
- } else {
645
- const response = await request("/api/game/list");
646
- games = response.data?.list ?? [];
647
- }
648
- set({ games });
649
- return games;
650
- } finally {
651
- set({
652
- initialized: true,
653
- isLoading: false
654
- });
655
- }
656
- }
657
- }),
658
- {
659
- name: "game",
660
- storage: createJSONStorage(() => mixedStorage),
661
- partialize: (state) => ({ game: state.game })
662
- }
663
- )
664
- );
665
- }
666
- });
667
- var Text, GameSelect, GameSelect_default;
668
- var init_GameSelect = __esm({
669
- "src/components/layout/GameSelect.tsx"() {
670
- init_contextProvider();
671
- init_locale();
672
- init_stores2();
673
- ({ Text } = Typography);
674
- GameSelect = (props) => {
675
- const { filter, onGameChange } = props;
676
- const { t } = useTranslation();
677
- const { game, games, isLoading, fetchGames } = useGameStore();
678
- const apiV2 = useToolkitsContext((state) => state.gameApiV2);
679
- useEffect(() => {
680
- fetchGames({ apiV2 });
681
- }, []);
682
- const options = games?.filter((item) => filter?.(item) ?? true)?.map((item) => ({
683
- label: item.name,
684
- value: apiV2 ? item.game_id : item.id
685
- }));
686
- const onChange = async (id2) => {
687
- const match = games.find((item) => String(apiV2 ? item.game_id : item.id) === String(id2));
688
- useGameStore.setState({ game: match });
689
- onGameChange?.(match);
690
- };
691
- return /* @__PURE__ */ jsxs(Space, { children: [
692
- /* @__PURE__ */ jsx(Text, { children: t("GameSelect.label") }),
693
- /* @__PURE__ */ jsx(
694
- Select,
695
- {
696
- showSearch: true,
697
- optionFilterProp: "label",
698
- value: apiV2 ? game?.game_id : game?.id,
699
- placeholder: t("GameSelect.placeholder"),
700
- loading: isLoading,
701
- style: { width: "200px" },
702
- options,
703
- onChange
704
- }
705
- )
706
- ] });
707
- };
708
- GameSelect_default = GameSelect;
709
- }
710
- });
711
-
712
- // src/components/layout/style.css
713
- var init_style = __esm({
714
- "src/components/layout/style.css"() {
715
- }
716
- });
717
- var Spin3, theme3, Header, Sider, Content, Layout2, Layout_default;
718
- var init_Layout = __esm({
719
- "src/components/layout/Layout.tsx"() {
720
- init_contextProvider();
721
- init_logo();
722
- init_navMenu();
723
- init_requireGame();
724
- init_userWidget();
725
- init_GameSelect();
726
- init_stores2();
727
- init_style();
728
- ({ Spin: Spin3, theme: theme3 } = Antd2);
729
- ({ Header, Sider, Content } = Antd2.Layout);
730
- Layout2 = (props) => {
731
- const {
732
- menuCollapsible,
733
- isMenuLoading,
734
- title,
735
- items,
736
- headerExtra,
737
- hideGameSelect,
738
- children,
739
- navWidth,
740
- logoutRedirectUrl,
741
- filter,
742
- onGameChange
743
- } = props;
744
- const {
745
- token: { colorBgContainer, colorBorder }
746
- } = theme3.useToken();
747
- const usePermissionApiV2 = useToolkitsContext((state) => state.usePermissionApiV2);
748
- const { collapsed, setCollapsed } = useLayoutStore();
749
- const onCollapse = async () => {
750
- setCollapsed(!collapsed);
751
- };
752
- return /* @__PURE__ */ jsxs(Antd2.Layout, { children: [
753
- /* @__PURE__ */ jsxs(
754
- Sider,
755
- {
756
- collapsible: true,
757
- theme: "light",
758
- trigger: null,
759
- collapsed,
760
- width: navWidth,
761
- style: {
762
- height: "100vh",
763
- overflow: "auto",
764
- borderRightWidth: 1,
765
- borderRightStyle: "solid",
766
- borderRightColor: colorBorder
767
- },
768
- children: [
769
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2 px-6 py-4 overflow-hidden", children: [
770
- /* @__PURE__ */ jsx(Logo_default, { width: 32, height: 32 }),
771
- (!menuCollapsible || !collapsed) && /* @__PURE__ */ jsx("div", { className: "h-8 flex items-center expand", children: title })
772
- ] }),
773
- /* @__PURE__ */ jsx(NavMenu_default, { items, loading: isMenuLoading })
774
- ]
775
- }
776
- ),
777
- /* @__PURE__ */ jsxs(Antd2.Layout, { children: [
778
- /* @__PURE__ */ jsx(
779
- Header,
780
- {
781
- style: {
782
- padding: "0 24px",
783
- background: colorBgContainer
784
- },
785
- children: /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center h-full", children: [
786
- /* @__PURE__ */ jsxs(Space, { size: "small", split: /* @__PURE__ */ jsx(Divider, { type: "vertical" }), className: "mr-6", children: [
787
- menuCollapsible && /* @__PURE__ */ jsx(
788
- Button,
789
- {
790
- type: "text",
791
- icon: collapsed ? /* @__PURE__ */ jsx(MenuUnfoldOutlined, {}) : /* @__PURE__ */ jsx(MenuFoldOutlined, {}),
792
- style: { fontSize: "16px" },
793
- onClick: onCollapse
794
- }
795
- ),
796
- usePermissionApiV2 && !hideGameSelect && /* @__PURE__ */ jsx(GameSelect_default, { filter, onGameChange }),
797
- headerExtra?.left?.map((extra) => /* @__PURE__ */ jsx("span", { children: extra.children }, extra.key))
798
- ] }),
799
- /* @__PURE__ */ jsxs(Space, { size: "small", split: /* @__PURE__ */ jsx(Divider, { type: "vertical" }), children: [
800
- headerExtra?.right?.map((extra) => /* @__PURE__ */ jsx("span", { children: extra.children }, extra.key)),
801
- /* @__PURE__ */ jsx(UserWidget_default, { logoutRedirectUrl })
802
- ] })
803
- ] })
804
- }
805
- ),
806
- /* @__PURE__ */ jsx(
807
- Content,
808
- {
809
- style: {
810
- overflow: "auto",
811
- padding: "24px 16px",
812
- maxHeight: "calc(100vh - 64px)"
813
- },
814
- children: /* @__PURE__ */ jsx(
815
- Suspense,
816
- {
817
- fallback: /* @__PURE__ */ jsx(
818
- Spin3,
819
- {
820
- style: {
821
- display: "flex",
822
- justifyContent: "center",
823
- alignItems: "center",
824
- height: "200px"
825
- }
826
- }
827
- ),
828
- children: /* @__PURE__ */ jsx(RequireGame_default, { hideGameSelect, children })
829
- }
830
- )
831
- }
832
- )
833
- ] })
834
- ] });
835
- };
836
- Layout_default = Layout2;
837
- }
838
- });
839
-
840
- // src/components/layout/index.ts
841
- var init_layout = __esm({
842
- "src/components/layout/index.ts"() {
843
- init_Layout();
844
- init_stores2();
845
- }
846
- });
847
- async function request(url, opts = {}) {
848
- const _opts = Object.assign(opts, { responseType: opts.responseType ?? "json" });
849
- const { body, params, responseType, ...rest } = _opts;
850
- if (!url) {
851
- throw new RequestError({
852
- status: 400,
853
- message: "URL is required"
854
- });
855
- }
856
- const parsed = qs.parseUrl(url);
857
- const queryParams = Object.assign({}, parsed.query, params);
858
- const options = {
859
- skipNull: true,
860
- skipEmptyString: true,
861
- strict: true,
862
- encode: true
863
- };
864
- const queryString = qs.stringify(queryParams, options);
865
- url = queryString ? `${parsed.url}?${queryString}` : url;
866
- const headers = new Headers(_opts.headers);
867
- const token = useTokenStore?.getState()?.token;
868
- if (token) {
869
- headers.set("Authorization", `Bearer ${token}`);
870
- }
871
- if (!headers.has(APP_ID_HEADER_NAME) && contextStore.getState().usePermissionApiV2) {
872
- const game = useGameStore.getState().game;
873
- if (game) {
874
- headers.set(APP_ID_HEADER_NAME, String(contextStore.getState().gameApiV2 ? game.game_id : game.id));
875
- }
876
- }
877
- if (responseType === "blob") {
878
- headers.append("Accept", "application/octet-stream");
879
- } else if (responseType === "json") {
880
- headers.append("Accept", "application/json");
881
- }
882
- const isJsonBody = !!(body && typeof body === "object" && !(body instanceof FormData));
883
- if (isJsonBody) {
884
- headers.set("Content-Type", "application/json");
885
- }
886
- const requestOpts = Object.assign(rest, {
887
- headers,
888
- body: isJsonBody ? JSON.stringify(body) : body
889
- });
890
- const response = await fetch(url, requestOpts);
891
- if (!response.ok) {
892
- try {
893
- const json = await response.json();
894
- throw new Error(json.msg);
895
- } catch (error) {
896
- throw new RequestError({
897
- status: response.status,
898
- message: error?.message ?? "Can't parse response."
899
- });
900
- }
901
- }
902
- const responseInterceptor = contextStore.getState().interceptor?.response;
903
- if (typeof responseInterceptor === "function") {
904
- return await responseInterceptor(response, _opts);
905
- }
906
- let data;
907
- if (responseType === "blob") {
908
- data = await response.blob();
909
- } else if (responseType === "json") {
910
- const json = await response.json();
911
- if (json.code === 0 || json.code === 200 || json.status === 0) {
912
- data = json.data;
913
- } else {
914
- throw new RequestError({
915
- code: json.code,
916
- status: response.status,
917
- message: json.msg
918
- });
919
- }
920
- } else {
921
- data = await response.text();
922
- }
923
- const result = {
924
- ...pick(response, ["headers", "status", "statusText", "url"]),
925
- data
926
- };
927
- return result;
928
- }
929
- var RequestError;
930
- var init_request = __esm({
931
- "src/utils/request.ts"() {
932
- init_contextProvider();
933
- init_layout();
934
- init_constants();
935
- init_token();
936
- RequestError = class extends Error {
937
- constructor(opts) {
938
- super(opts?.message);
939
- __publicField(this, "status");
940
- __publicField(this, "code");
941
- this.status = opts.status;
942
- this.code = opts.code;
943
- }
944
- };
945
- }
946
- });
947
- function usePermissions(codes, options) {
948
- const usePermissionApiV2 = useToolkitsContext((state) => state.usePermissionApiV2);
949
- const url = usePermissionApiV2 ? "/api/usystem/user/checkV2" : "/api/usystem/user/check";
950
- const key = codes.length > 0 ? {
951
- url,
952
- codes,
953
- options
954
- } : null;
955
- const { data, isValidating, isLoading } = useSWR3(
956
- key,
957
- async () => {
958
- const res = await request(url, {
959
- ...options,
960
- method: "POST",
961
- body: {
962
- permissions: codes
963
- }
964
- });
965
- if (res.data?.has_all) {
966
- return codes.reduce((acc, curr) => {
967
- acc[curr] = true;
968
- return acc;
969
- }, {});
970
- }
971
- return codes.reduce((acc, curr) => {
972
- acc[curr] = res.data?.[curr] ?? false;
973
- return acc;
974
- }, {});
975
- },
976
- {
977
- revalidateOnFocus: false
978
- }
979
- );
980
- return { data, isValidating, isLoading };
981
- }
982
- function usePermission(code, options) {
983
- const { data, isValidating, isLoading } = usePermissions(code ? [code] : [], options);
984
- if (code === void 0) {
985
- return {
986
- accessible: true,
987
- isValidating: false,
988
- isLoading: false
989
- };
990
- }
991
- return {
992
- accessible: data?.[code] ?? false,
993
- isValidating,
994
- isLoading
995
- };
996
- }
997
- var init_permission = __esm({
998
- "src/hooks/permission.ts"() {
999
- init_contextProvider();
1000
- init_request();
1001
- }
1002
- });
1003
- var PermissionButton, PermissionButton_default;
1004
- var init_PermissionButton = __esm({
1005
- "src/components/permissionButton/PermissionButton.tsx"() {
1006
- init_constants();
1007
- init_permission();
1008
- init_locale();
1009
- PermissionButton = (props) => {
1010
- const { children, code, showLoading, isGlobal, disabled, ...restProps } = props;
1011
- const { data, isLoading } = usePermissions(Array.isArray(code) ? code : [code], {
1012
- headers: { [APP_ID_HEADER_NAME]: "global" }
1013
- });
1014
- const { t } = useTranslation();
1015
- if (isLoading) {
1016
- return /* @__PURE__ */ jsx(Button, { loading: showLoading, disabled: !showLoading, ...restProps, children });
1017
- }
1018
- if (!Object.values(data ?? {})?.some(Boolean)) {
1019
- return /* @__PURE__ */ jsx(Tooltip, { defaultOpen: false, title: t("global.noEntitlement"), children: /* @__PURE__ */ jsx(Button, { disabled: true, ...restProps, children }) });
1020
- }
1021
- return /* @__PURE__ */ jsx(Button, { disabled, ...restProps, children });
1022
- };
1023
- PermissionButton_default = PermissionButton;
1024
- }
1025
- });
1026
-
1027
- // src/components/permissionButton/index.ts
1028
- var init_permissionButton = __esm({
1029
- "src/components/permissionButton/index.ts"() {
1030
- init_PermissionButton();
1031
- }
1032
- });
1033
- var useQueryListStore;
1034
- var init_stores3 = __esm({
1035
- "src/components/queryList/stores.ts"() {
1036
- useQueryListStore = create((set, get2) => ({
1037
- keyMap: /* @__PURE__ */ new Map(),
1038
- payloadMap: /* @__PURE__ */ new Map(),
1039
- getPayload(route3) {
1040
- return get2().payloadMap.get(route3) ?? { page: 1 };
1041
- },
1042
- setPayload(route3, payload) {
1043
- set((state) => ({
1044
- payloadMap: new Map(state.payloadMap).set(route3, payload)
1045
- }));
1046
- },
1047
- refetch(route3, payload) {
1048
- const prevPayload = get2().getPayload(route3);
1049
- const nextPayload = { ...prevPayload, ...payload };
1050
- if (isEqual(prevPayload, nextPayload)) {
1051
- get2().mutate(route3, void 0);
1052
- } else {
1053
- get2().setPayload(route3, nextPayload);
1054
- }
1055
- },
1056
- mutate(route3, data, opts) {
1057
- const key = get2().keyMap.get(route3);
1058
- return mutate(key, data, opts);
1059
- }
1060
- }));
1061
- }
1062
- });
1063
- var QueryListAction, InternalQueryList, QueryList, QueryList_default;
1064
- var init_QueryList = __esm({
1065
- "src/components/queryList/QueryList.tsx"() {
1066
- init_constants();
1067
- init_permission();
1068
- init_request();
1069
- init_contextProvider();
1070
- init_filterFormWrapper();
1071
- init_layout();
1072
- init_locale();
1073
- init_stores3();
1074
- QueryListAction = /* @__PURE__ */ ((QueryListAction2) => {
1075
- QueryListAction2[QueryListAction2["Confirm"] = 0] = "Confirm";
1076
- QueryListAction2[QueryListAction2["Reset"] = 1] = "Reset";
1077
- QueryListAction2[QueryListAction2["Jump"] = 2] = "Jump";
1078
- QueryListAction2[QueryListAction2["Init"] = 3] = "Init";
1079
- return QueryListAction2;
1080
- })(QueryListAction || {});
1081
- InternalQueryList = (props, ref) => {
1082
- const internalProps = {
1083
- method: "GET",
1084
- defaultSize: 10,
1085
- refreshInterval: 0,
1086
- getTotal: (data2) => data2?.total,
1087
- getDataSource: (data2) => data2?.list,
1088
- ...props
1089
- };
1090
- const {
1091
- route: route3,
1092
- code,
1093
- headers,
1094
- isGlobal,
1095
- onePage,
1096
- method,
1097
- buttonsAlign,
1098
- showReset,
1099
- defaultSize,
1100
- refreshInterval,
1101
- tableExtra,
1102
- form,
1103
- body,
1104
- params,
1105
- renderForm,
1106
- afterSuccess,
1107
- getTotal,
1108
- getDataSource,
1109
- footer,
1110
- ...tableProps
1111
- } = internalProps;
1112
- const { notification } = App.useApp();
1113
- const { t } = useTranslation();
1114
- const [_form] = Form.useForm(form);
1115
- const action = useRef(3 /* Init */);
1116
- const { game } = useGameStore();
1117
- const { gameApiV2, usePermissionApiV2 } = useToolkitsContext((state) => state);
1118
- const { accessible, isLoading } = usePermission(code, {
1119
- headers: {
1120
- [APP_ID_HEADER_NAME]: game ? isGlobal ? "global" : String(gameApiV2 ? game.game_id : game.id) : ""
1121
- }
1122
- });
1123
- const [isValid, setIsValid] = useState(false);
1124
- const { keyMap, getPayload, refetch } = useQueryListStore();
1125
- const { page, size = defaultSize, formValue } = getPayload(route3);
1126
- const payload = { page, size, formValue };
1127
- const _body = useMemo(() => {
1128
- return typeof body === "function" ? body(payload) : method === "POST" && typeof body === "undefined" ? {
1129
- ...formValue,
1130
- ...!onePage ? { page, size } : void 0
1131
- } : body;
1132
- }, [onePage, method, page, size, formValue, body]);
1133
- const _params = useMemo(
1134
- () => typeof params === "function" ? params(payload) : method === "GET" && typeof params === "undefined" ? {
1135
- ...formValue,
1136
- ...!onePage ? { page, size } : void 0
1137
- } : void 0,
1138
- [onePage, method, page, size, formValue, params]
1139
- );
1140
- const _headers = useMemo(() => {
1141
- const newHeaders = new Headers(headers);
1142
- if (usePermissionApiV2) {
1143
- if (isGlobal) {
1144
- newHeaders.set(APP_ID_HEADER_NAME, "global");
1145
- } else if (game) {
1146
- newHeaders.set(APP_ID_HEADER_NAME, String(gameApiV2 ? game.game_id : game.id));
1147
- }
1148
- }
1149
- return newHeaders;
1150
- }, [usePermissionApiV2, isGlobal, game, headers]);
1151
- const key = useMemo(() => {
1152
- if (!accessible || !isValid) {
1153
- return null;
1154
- }
1155
- const httpOption = {
1156
- route: route3,
1157
- method,
1158
- body: _body,
1159
- params: _params,
1160
- headers: _headers
1161
- };
1162
- const serializedKey = unstable_serialize(httpOption);
1163
- keyMap.set(route3, serializedKey);
1164
- return serializedKey;
1165
- }, [method, route3, _body, _params, _headers, isValid, accessible]);
1166
- const shouldPoll = useRef(false);
1167
- const { data, isValidating } = useSWR3(
1168
- key,
1169
- async () => {
1170
- const response = await request(route3, {
1171
- method,
1172
- body: _body,
1173
- params: _params,
1174
- headers: _headers
1175
- });
1176
- return response.data;
1177
- },
1178
- {
1179
- shouldRetryOnError: false,
1180
- revalidateOnFocus: false,
1181
- refreshInterval: shouldPoll.current ? refreshInterval : 0,
1182
- onSuccess(_data) {
1183
- shouldPoll.current = true;
1184
- afterSuccess?.(action.current, _data, _form);
1185
- },
1186
- onError(error) {
1187
- shouldPoll.current = false;
1188
- notification.error({
1189
- message: "\u8BF7\u6C42\u51FA\u9519",
1190
- description: error.message
1191
- });
1192
- }
1193
- }
1194
- );
1195
- const dataSource = useMemo(() => getDataSource(data, _form), [data, form, getDataSource]);
1196
- const total = useMemo(() => getTotal(data), [data, getTotal]);
1197
- const pagination = useMemo(
1198
- () => !onePage && {
1199
- showSizeChanger: true,
1200
- showQuickJumper: true,
1201
- current: page,
1202
- pageSize: size,
1203
- total,
1204
- onChange: async (currentPage, currentSize) => {
1205
- action.current = 2 /* Jump */;
1206
- refetch(route3, {
1207
- page: currentPage,
1208
- size: currentSize
1209
- });
1210
- }
1211
- },
1212
- [page, size, onePage, total]
1213
- );
1214
- const onConfirm = async () => {
1215
- action.current = 0 /* Confirm */;
1216
- try {
1217
- await _form.validateFields();
1218
- setIsValid(true);
1219
- refetch(route3, {
1220
- page: 1,
1221
- formValue: _form.getFieldsValue()
1222
- });
1223
- } catch (error) {
1224
- setIsValid(false);
1225
- }
1226
- };
1227
- const onReset = async () => {
1228
- action.current = 1 /* Reset */;
1229
- _form.resetFields();
1230
- try {
1231
- await _form.validateFields({ validateOnly: true });
1232
- setIsValid(true);
1233
- refetch(route3, {
1234
- page: 1,
1235
- formValue: _form.getFieldsValue()
1236
- });
1237
- } catch (error) {
1238
- setIsValid(false);
1239
- }
1240
- };
1241
- useEffect(() => {
1242
- const init = async () => {
1243
- if (!accessible) {
1244
- return;
1245
- }
1246
- try {
1247
- _form.resetFields();
1248
- const value = await _form.validateFields({ validateOnly: true });
1249
- refetch(route3, {
1250
- page: 1,
1251
- formValue: value
1252
- });
1253
- setIsValid(true);
1254
- } catch (err) {
1255
- setIsValid(false);
1256
- }
1257
- };
1258
- init();
1259
- }, [accessible, form, game]);
1260
- useImperativeHandle(ref, () => ({
1261
- data,
1262
- dataSource,
1263
- form: _form
1264
- }));
1265
- if (isLoading) {
1266
- return /* @__PURE__ */ jsx(
1267
- Spin,
1268
- {
1269
- style: {
1270
- display: "flex",
1271
- justifyContent: "center",
1272
- alignItems: "center",
1273
- height: 300
1274
- }
1275
- }
1276
- );
1277
- }
1278
- if (!accessible) {
1279
- return /* @__PURE__ */ jsx(Result, { status: 403, subTitle: t("global.noEntitlement") });
1280
- }
1281
- const formRenderer = typeof renderForm === "function" ? /* @__PURE__ */ jsx(
1282
- FilterFormWrapper_default,
1283
- {
1284
- showReset,
1285
- buttonsAlign,
1286
- isConfirming: isValidating,
1287
- onReset,
1288
- onConfirm,
1289
- children: cloneElement(renderForm(_form), {
1290
- onKeyUp: (e) => {
1291
- if (e.key === "Enter") {
1292
- onConfirm();
1293
- }
1294
- }
1295
- })
1296
- }
1297
- ) : (
1298
- // 屏蔽 Form 组件的警告(Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?)
1299
- /* @__PURE__ */ jsx(Form, { form: _form })
1300
- );
1301
- const renderFooter = footer && (() => footer(data));
1302
- return /* @__PURE__ */ jsxs("div", { children: [
1303
- formRenderer,
1304
- typeof tableExtra === "function" ? tableExtra(_form, data) : tableExtra,
1305
- /* @__PURE__ */ jsx(
1306
- Table,
1307
- {
1308
- ...tableProps,
1309
- dataSource,
1310
- loading: isValidating,
1311
- pagination,
1312
- footer: renderFooter
1313
- }
1314
- )
1315
- ] });
1316
- };
1317
- QueryList = forwardRef(InternalQueryList);
1318
- QueryList_default = QueryList;
1319
- }
1320
- });
1321
-
1322
- // src/components/queryList/index.ts
1323
- var init_queryList = __esm({
1324
- "src/components/queryList/index.ts"() {
1325
- init_QueryList();
1326
- init_stores3();
1327
- }
1328
- });
1329
- function useModal(props) {
1330
- const { content, onConfirm, ...modalProps } = props;
1331
- const uuid = useMemo(() => ++id, []);
1332
- const modalStore = useModalStore();
1333
- const open = modalStore.getOpen(uuid);
1334
- const [confirmLoading, setConfirmLoading] = useState(false);
1335
- const isRenderFunction = typeof content === "function";
1336
- const show = () => {
1337
- modalStore.show(uuid);
1338
- };
1339
- const hide = () => {
1340
- modalStore.hide(uuid);
1341
- };
1342
- const onCancel = () => {
1343
- hide();
1344
- };
1345
- const onOk = async () => {
1346
- try {
1347
- setConfirmLoading(true);
1348
- await onConfirm?.();
1349
- } finally {
1350
- setConfirmLoading(false);
1351
- }
1352
- };
1353
- const internalModal = /* @__PURE__ */ jsx(Modal, { ...modalProps, open, confirmLoading, onOk, onCancel, children: isRenderFunction ? content({ hide }) : content });
1354
- return {
1355
- uuid,
1356
- show,
1357
- hide,
1358
- modal: internalModal
1359
- };
1360
- }
1361
- var useModalStore, id;
1362
- var init_modal = __esm({
1363
- "src/hooks/modal.tsx"() {
1364
- useModalStore = create((set, get2) => ({
1365
- open: /* @__PURE__ */ new Map(),
1366
- getOpen: (uuid) => get2().open.get(uuid) ?? false,
1367
- show(uuid) {
1368
- set({ open: new Map(get2().open).set(uuid, true) });
1369
- },
1370
- hide(uuid) {
1371
- set({ open: new Map(get2().open).set(uuid, false) });
1372
- },
1373
- hideAll() {
1374
- set({ open: /* @__PURE__ */ new Map() });
1375
- }
1376
- }));
1377
- id = 0;
1378
- }
1379
- });
1380
- function useFormModal(props) {
1381
- const { content, form, formProps, onConfirm, ...modalProps } = props;
1382
- const [internalExtraValues, setInternalExtraValues] = useState({});
1383
- let [internalForm] = Form.useForm();
1384
- internalForm = form || internalForm;
1385
- const isRenderFunction = typeof content === "function";
1386
- const hanldeConfirm = async () => {
1387
- const values = await internalForm.validateFields();
1388
- await onConfirm?.(values, internalExtraValues);
1389
- hide();
1390
- };
1391
- const afterClose = () => {
1392
- internalForm.resetFields();
1393
- };
1394
- const { uuid, show, hide, modal } = useModal({
1395
- ...modalProps,
1396
- content: (operation) => /* @__PURE__ */ jsx(Form, { ...formProps, form: internalForm, children: isRenderFunction ? content(internalExtraValues, operation) : content }),
1397
- onConfirm: hanldeConfirm,
1398
- afterClose
1399
- });
1400
- const onShow = ({
1401
- initialValues,
1402
- extraValues
1403
- } = {}) => {
1404
- if (extraValues) {
1405
- setInternalExtraValues(extraValues);
1406
- }
1407
- if (initialValues) {
1408
- internalForm.setFieldsValue(initialValues);
1409
- }
1410
- show();
1411
- };
1412
- return {
1413
- uuid,
1414
- show: onShow,
1415
- hide,
1416
- modal
1417
- };
1418
- }
1419
- var init_formModal = __esm({
1420
- "src/hooks/formModal.tsx"() {
1421
- init_modal();
1422
- }
1423
- });
1424
- function useAllPermissions() {
1425
- return useSWR3(
1426
- "/api/usystem/user/allPermssions",
1427
- (url) => request(url, { headers: { [APP_ID_HEADER_NAME]: "global" } }).then((response) => response.data)
1428
- );
1429
- }
1430
- function useAllPermissionsV2() {
1431
- return useSWR3(
1432
- "/api/usystem/user/allPermissionsV2",
1433
- (url) => request(url, { headers: { [APP_ID_HEADER_NAME]: "global" } }).then((response) => response.data)
1434
- );
1435
- }
1436
- function useAllRoles() {
1437
- const { accessible } = usePermission("200005", { headers: { [APP_ID_HEADER_NAME]: "global" } });
1438
- return useSWR3(
1439
- accessible ? "/api/usystem/role/all" : null,
1440
- (url) => request(url, { headers: { [APP_ID_HEADER_NAME]: "global" } }).then((response) => response.data)
1441
- );
1442
- }
1443
- function useRole(name) {
1444
- const usePermissionApiV2 = useToolkitsContext((state) => state.usePermissionApiV2);
1445
- return useSWR3(
1446
- `/api/usystem/role/${usePermissionApiV2 ? "infoV2" : "info"}?name=${name}`,
1447
- (url) => request(url, { headers: { [APP_ID_HEADER_NAME]: "global" } }).then((response) => response.data)
1448
- );
1449
- }
1450
- function useCreateRole() {
1451
- const usePermissionApiV2 = useToolkitsContext((state) => state.usePermissionApiV2);
1452
- return useSWRMutation(
1453
- usePermissionApiV2 ? "/api/usystem/role/createV2" : "/api/usystem/role/create",
1454
- (url, {
1455
- arg
1456
- }) => request(url, {
1457
- method: "post",
1458
- body: arg,
1459
- headers: { [APP_ID_HEADER_NAME]: "global" }
1460
- })
1461
- );
1462
- }
1463
- function useUpdateRole() {
1464
- const usePermissionApiV2 = useToolkitsContext((state) => state.usePermissionApiV2);
1465
- return useSWRMutation(
1466
- usePermissionApiV2 ? "/api/usystem/role/updateV2" : "/api/usystem/role/update",
1467
- (url, {
1468
- arg
1469
- }) => request(url, {
1470
- method: "post",
1471
- body: arg,
1472
- headers: { [APP_ID_HEADER_NAME]: "global" }
1473
- })
1474
- );
1475
- }
1476
- function useRemoveRole() {
1477
- return useSWRMutation(
1478
- "/api/usystem/role/delete",
1479
- (url, {
1480
- arg
1481
- }) => request(url, {
1482
- method: "post",
1483
- body: arg,
1484
- headers: { [APP_ID_HEADER_NAME]: "global" }
1485
- })
1486
- );
1487
- }
1488
- function useCreateUser() {
1489
- return useSWRMutation(
1490
- "/api/usystem/user/create",
1491
- (url, {
1492
- arg
1493
- }) => request(url, {
1494
- method: "post",
1495
- body: arg,
1496
- headers: { [APP_ID_HEADER_NAME]: "global" }
1497
- })
1498
- );
1499
- }
1500
- function useUpdateUser() {
1501
- return useSWRMutation(
1502
- "/api/usystem/user/update",
1503
- (url, {
1504
- arg
1505
- }) => request(url, {
1506
- method: "post",
1507
- body: arg,
1508
- headers: { [APP_ID_HEADER_NAME]: "global" }
1509
- })
1510
- );
1511
- }
1512
- function useRemoveUser() {
1513
- return useSWRMutation(
1514
- "/api/usystem/user/delete",
1515
- (url, {
1516
- arg
1517
- }) => request(url, {
1518
- method: "post",
1519
- body: arg,
1520
- headers: { [APP_ID_HEADER_NAME]: "global" }
1521
- })
1522
- );
1523
- }
1524
- var init_hooks2 = __esm({
1525
- "src/features/permission/hooks/index.ts"() {
1526
- init_contextProvider();
1527
- init_constants();
1528
- init_permission();
1529
- init_request();
1530
- }
1531
- });
1532
- var PermissionCollapse, permissionCollapse_default;
1533
- var init_permissionCollapse = __esm({
1534
- "src/features/permission/components/permissionCollapse/index.tsx"() {
1535
- init_locale();
1536
- PermissionCollapse = (props) => {
1537
- const { permissions, readonly, expand, value, onChange } = props;
1538
- const [activeKey, setActiveKey] = useState([]);
1539
- const [checkedMap, setCheckedMap] = useState({});
1540
- const [internalValue, setInternalValue] = useState(value ?? []);
1541
- const { t } = useTranslation();
1542
- const onCollapseChange = useCallback((key) => {
1543
- setActiveKey(key);
1544
- }, []);
1545
- const getCheckedValue = (checkedValue, codes) => {
1546
- let tempValue = [];
1547
- if (checkedValue) {
1548
- tempValue = [...new Set(internalValue.concat(codes))];
1549
- } else {
1550
- tempValue = internalValue.slice();
1551
- codes.forEach((code) => {
1552
- const index = tempValue.findIndex((item) => item === code);
1553
- if (index > -1) {
1554
- tempValue.splice(index, 1);
1555
- }
1556
- });
1557
- }
1558
- return tempValue;
1559
- };
1560
- const onCheckChange = (e, codes) => {
1561
- const checkedValue = getCheckedValue(e.target.checked, codes);
1562
- setInternalValue(checkedValue);
1563
- onChange?.(checkedValue);
1564
- };
1565
- useEffect(() => {
1566
- setInternalValue(value ?? []);
1567
- }, [value]);
1568
- useEffect(() => {
1569
- if (expand) {
1570
- setActiveKey((permissions ?? []).map(({ category }) => category));
1571
- }
1572
- }, [expand, permissions]);
1573
- useEffect(() => {
1574
- const checkedValue = (permissions ?? []).reduce(
1575
- (acc, curr) => {
1576
- acc[curr.category] = curr.permissions.every((item) => internalValue?.includes(item.value));
1577
- return acc;
1578
- },
1579
- {}
1580
- );
1581
- setCheckedMap(checkedValue);
1582
- }, [internalValue, permissions]);
1583
- return /* @__PURE__ */ jsx(
1584
- Collapse,
1585
- {
1586
- style: { width: "100%" },
1587
- collapsible: "header",
1588
- activeKey,
1589
- items: (permissions ?? []).map((item) => ({
1590
- key: item.category,
1591
- label: item.category,
1592
- extra: !readonly && /* @__PURE__ */ jsx(
1593
- Checkbox,
1594
- {
1595
- checked: checkedMap[item.category],
1596
- onChange: (e) => {
1597
- onCheckChange(
1598
- e,
1599
- item.permissions.map((permission) => permission.value)
1600
- );
1601
- },
1602
- children: t("global.selectAll")
1603
- }
1604
- ),
1605
- children: /* @__PURE__ */ jsx(Checkbox.Group, { style: { width: "100%" }, value: internalValue, disabled: readonly, children: /* @__PURE__ */ jsx(Row, { gutter: [10, 10], style: { width: "100%" }, children: item.permissions.map((permission) => /* @__PURE__ */ jsx(Col, { span: 6, children: /* @__PURE__ */ jsx(
1606
- Checkbox,
1607
- {
1608
- value: permission.value,
1609
- onChange: (e) => {
1610
- onCheckChange(e, [permission.value]);
1611
- },
1612
- children: permission.label
1613
- }
1614
- ) }, permission.value)) }) })
1615
- })),
1616
- onChange: onCollapseChange
1617
- }
1618
- );
1619
- };
1620
- permissionCollapse_default = PermissionCollapse;
1621
- }
1622
- });
1623
- var Text2, PermissionListV1, permissionListV1_default;
1624
- var init_permissionListV1 = __esm({
1625
- "src/features/permission/components/permissionListV1/index.tsx"() {
1626
- init_locale();
1627
- init_hooks2();
1628
- init_permissionCollapse();
1629
- ({ Text: Text2 } = Typography);
1630
- PermissionListV1 = (props) => {
1631
- const { expand = true, value, readonly, onChange } = props;
1632
- const { data: permissions, isLoading, error } = useAllPermissions();
1633
- const { t } = useTranslation();
1634
- if (error) {
1635
- return /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Text2, { type: "danger", children: t("PermissionList.failedDescription") }) });
1636
- }
1637
- return /* @__PURE__ */ jsx(Skeleton, { active: true, loading: isLoading, children: /* @__PURE__ */ jsx(
1638
- permissionCollapse_default,
1639
- {
1640
- value,
1641
- permissions,
1642
- readonly,
1643
- expand,
1644
- onChange
1645
- }
1646
- ) });
1647
- };
1648
- permissionListV1_default = PermissionListV1;
1649
- }
1650
- });
1651
- var Text3, Option2, PermissionListV2, permissionListV2_default;
1652
- var init_permissionListV2 = __esm({
1653
- "src/features/permission/components/permissionListV2/index.tsx"() {
1654
- init_locale();
1655
- init_hooks2();
1656
- init_permissionCollapse();
1657
- ({ Text: Text3 } = Typography);
1658
- ({ Option: Option2 } = Select);
1659
- PermissionListV2 = (props) => {
1660
- const { expand = true, value, readonly, onChange } = props;
1661
- const { data: { permission, game: games } = {}, isLoading, error } = useAllPermissionsV2();
1662
- const [gameList, setGameList] = useState([]);
1663
- const globalPermissions = permission?.filter((item) => item.is_common);
1664
- const gamePermissions = permission?.filter((item) => !item.is_common);
1665
- const { t } = useTranslation();
1666
- useEffect(() => {
1667
- const list = [];
1668
- Object.keys(value ?? {}).forEach((key) => {
1669
- if (key !== "global") {
1670
- list.push({ gameId: key, permissions: value?.[key] ?? [] });
1671
- }
1672
- });
1673
- setGameList(list);
1674
- }, [value]);
1675
- if (error) {
1676
- return /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Text3, { type: "danger", children: t("PermissionList.failedDescription") }) });
1677
- }
1678
- const addGame = () => {
1679
- setGameList((prev) => [...prev, { gameId: "", permissions: [] }]);
1680
- };
1681
- const removeGame = (index) => {
1682
- setGameList((prev) => prev.filter((_, i) => i !== index));
1683
- };
1684
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col w-full", children: [
1685
- /* @__PURE__ */ jsx("div", { className: "mb-12", children: /* @__PURE__ */ jsx(Divider, { dashed: true, children: t("PermissionList.baseSectionTitle") }) }),
1686
- /* @__PURE__ */ jsx(Skeleton, { active: true, loading: isLoading, children: /* @__PURE__ */ jsx(
1687
- permissionCollapse_default,
1688
- {
1689
- value: value?.global,
1690
- readonly,
1691
- permissions: globalPermissions,
1692
- expand,
1693
- onChange: (newValue) => {
1694
- onChange?.({
1695
- ...value,
1696
- global: newValue
1697
- });
1698
- }
1699
- }
1700
- ) }),
1701
- /* @__PURE__ */ jsx("div", { className: "my-12", children: /* @__PURE__ */ jsx(Divider, { dashed: true, children: t("PermissionList.gameSectionTitle") }) }),
1702
- gameList.map((item, index) => /* @__PURE__ */ jsx(
1703
- Card,
1704
- {
1705
- title: /* @__PURE__ */ jsxs(Space, { children: [
1706
- /* @__PURE__ */ jsx(Text3, { children: t("global.game") }),
1707
- readonly ? /* @__PURE__ */ jsx(Text3, { children: games?.find((game) => String(game.id) === item.gameId)?.name }) : /* @__PURE__ */ jsx(
1708
- Select,
1709
- {
1710
- disabled: readonly,
1711
- value: gameList[index].gameId || void 0,
1712
- style: { width: "160px" },
1713
- placeholder: t("PermissionList.gameSelectPlaceholder"),
1714
- onChange: (selectedValue) => {
1715
- setGameList((pev) => {
1716
- const temp = pev.slice();
1717
- temp[index].gameId = selectedValue;
1718
- return temp;
1719
- });
1720
- },
1721
- children: games?.map((game) => /* @__PURE__ */ jsx(
1722
- Option2,
1723
- {
1724
- value: game.id,
1725
- disabled: gameList.some(({ gameId }) => gameId === String(game.id)),
1726
- children: game.name
1727
- },
1728
- game.id
1729
- ))
1730
- }
1731
- )
1732
- ] }),
1733
- className: "mb-6",
1734
- extra: !readonly && /* @__PURE__ */ jsx(
1735
- Button,
1736
- {
1737
- type: "link",
1738
- onClick: () => {
1739
- removeGame(index);
1740
- },
1741
- children: t("PermissionList.removeText")
1742
- }
1743
- ),
1744
- children: gameList[index].gameId ? /* @__PURE__ */ jsx(Skeleton, { active: true, loading: isLoading, children: /* @__PURE__ */ jsx(
1745
- permissionCollapse_default,
1746
- {
1747
- value: value?.[gameList[index].gameId],
1748
- readonly,
1749
- expand,
1750
- permissions: gamePermissions,
1751
- onChange: (newValue) => {
1752
- onChange?.({
1753
- ...value,
1754
- [gameList[index].gameId]: newValue
1755
- });
1756
- }
1757
- }
1758
- ) }) : /* @__PURE__ */ jsx(Empty, { description: t("PermissionList.gameSectionDescription") })
1759
- },
1760
- index
1761
- )),
1762
- !readonly && /* @__PURE__ */ jsx(Button, { block: true, type: "dashed", onClick: addGame, children: t("PermissionList.addText") })
1763
- ] });
1764
- };
1765
- permissionListV2_default = PermissionListV2;
1766
- }
1767
- });
1768
- var PermissionList, permissionList_default;
1769
- var init_permissionList = __esm({
1770
- "src/features/permission/components/permissionList/index.tsx"() {
1771
- init_contextProvider();
1772
- init_permissionListV1();
1773
- init_permissionListV2();
1774
- PermissionList = (props) => {
1775
- const { value } = props;
1776
- const usePermissionApiV2 = useToolkitsContext((state) => state.usePermissionApiV2);
1777
- return /* @__PURE__ */ jsx(Fragment, { children: usePermissionApiV2 ? /* @__PURE__ */ jsx(permissionListV2_default, { ...props, value }) : /* @__PURE__ */ jsx(permissionListV1_default, { ...props, value }) });
1778
- };
1779
- permissionList_default = PermissionList;
1780
- }
1781
- });
1782
-
1783
- // src/features/permission/types/index.ts
1784
- var init_types = __esm({
1785
- "src/features/permission/types/index.ts"() {
1786
- }
1787
- });
1788
-
1789
- // src/features/permission/index.ts
1790
- var init_permission2 = __esm({
1791
- "src/features/permission/index.ts"() {
1792
- init_permissionList();
1793
- init_hooks2();
1794
- init_types();
1795
- }
1796
- });
1797
-
1798
- // src/pages/permission/userList/index.tsx
1799
- var userList_exports = {};
1800
- __export(userList_exports, {
1801
- default: () => userList_default,
1802
- route: () => route
1803
- });
1804
- var Option3, route, useModal2, UserList, userList_default;
1805
- var init_userList = __esm({
1806
- "src/pages/permission/userList/index.tsx"() {
1807
- init_highlight();
1808
- init_locale();
1809
- init_permissionButton();
1810
- init_queryList();
1811
- init_stores3();
1812
- init_permission2();
1813
- init_formModal();
1814
- ({ Option: Option3 } = Select);
1815
- route = "/api/usystem/user/list";
1816
- useModal2 = (isCreate) => {
1817
- const { message } = App.useApp();
1818
- const { t } = useTranslation();
1819
- const { refetch, mutate: mutate2 } = useQueryListStore();
1820
- const { data: roles, isLoading } = useAllRoles();
1821
- const create6 = useCreateUser();
1822
- const update = useUpdateUser();
1823
- const title = isCreate ? t("UserList.createTitle") : t("UserList.updateTitle");
1824
- const content = /* @__PURE__ */ jsxs(Fragment, { children: [
1825
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { disabled: !isCreate }) }),
1826
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.role"), name: "roles", children: /* @__PURE__ */ jsx(Select, { allowClear: true, mode: "multiple", loading: isLoading, children: (roles ?? []).map((role) => /* @__PURE__ */ jsx(Option3, { value: role.name, children: role.name }, role.id)) }) })
1827
- ] });
1828
- const onConfirm = async (values, extraValues) => {
1829
- if (isCreate) {
1830
- await create6.trigger(values);
1831
- refetch(route, { page: 1 });
1832
- message.success(t("UserList.createSuccessfully"));
1833
- } else {
1834
- await update.trigger(values);
1835
- mutate2(
1836
- route,
1837
- (prev) => {
1838
- return produce(prev, (draft) => {
1839
- if (draft?.List) {
1840
- const index = draft.List?.findIndex((item) => item.id === extraValues?.id);
1841
- if (index !== -1) {
1842
- draft.List[index].roles = values.roles;
1843
- }
1844
- }
1845
- });
1846
- },
1847
- { revalidate: false }
1848
- );
1849
- message.success(t("UserList.updateSuccessfully"));
1850
- }
1851
- };
1852
- return useFormModal({
1853
- title,
1854
- formProps: {
1855
- labelCol: { flex: "80px" }
1856
- },
1857
- content,
1858
- onConfirm
1859
- });
1860
- };
1861
- UserList = () => {
1862
- const { modal, message } = App.useApp();
1863
- const remove = useRemoveUser();
1864
- const { mutate: mutate2 } = useQueryListStore();
1865
- const { show: showCreateModal, modal: createModal } = useModal2(true);
1866
- const { show: showUpdateModal, modal: updateModal } = useModal2();
1867
- const { t } = useTranslation();
1868
- const columns = [
1869
- {
1870
- title: t("global.name"),
1871
- dataIndex: "name",
1872
- key: "name"
1873
- },
1874
- {
1875
- title: "ID",
1876
- dataIndex: "id",
1877
- key: "id"
1878
- },
1879
- {
1880
- title: t("global.role"),
1881
- dataIndex: "roles",
1882
- key: "roles",
1883
- width: "40%",
1884
- render(value) {
1885
- return /* @__PURE__ */ jsx(Row, { gutter: [4, 4], children: (value || []).map((item) => /* @__PURE__ */ jsx(Col, { children: item === "root" ? /* @__PURE__ */ jsx(Tag, { color: "#f50", children: item }) : /* @__PURE__ */ jsx(Tag, { color: "#ff5a00", children: /* @__PURE__ */ jsx(Link, { to: `../role/${item}`, children: item }) }) }, item)) });
1886
- }
1887
- },
1888
- {
1889
- title: t("global.creationTime"),
1890
- dataIndex: "Ctime",
1891
- key: "ctime"
1892
- },
1893
- {
1894
- title: t("global.operation"),
1895
- width: 150,
1896
- align: "center",
1897
- render: (value) => /* @__PURE__ */ jsxs(Space, { children: [
1898
- /* @__PURE__ */ jsx(
1899
- PermissionButton_default,
1900
- {
1901
- isGlobal: true,
1902
- size: "small",
1903
- type: "link",
1904
- code: "100003",
1905
- onClick: () => {
1906
- showUpdateModal({
1907
- initialValues: {
1908
- name: value.name,
1909
- roles: value.roles
1910
- },
1911
- extraValues: {
1912
- id: value.id
1913
- }
1914
- });
1915
- },
1916
- children: t("global.update")
1917
- }
1918
- ),
1919
- /* @__PURE__ */ jsx(
1920
- PermissionButton_default,
1921
- {
1922
- isGlobal: true,
1923
- danger: true,
1924
- size: "small",
1925
- code: "100004",
1926
- type: "link",
1927
- onClick: () => {
1928
- modal.confirm({
1929
- title: t("UserList.deleteTitle"),
1930
- content: /* @__PURE__ */ jsx(Highlight_default, { texts: [value.name], children: t("UserList.deleteContent", { user: value.name }) }),
1931
- async onOk() {
1932
- await remove.trigger({
1933
- id: value.id,
1934
- name: value.name
1935
- });
1936
- mutate2(route, (prev) => {
1937
- return produce(prev, (draft) => {
1938
- const index = draft?.List?.findIndex((item) => item.id === value.id);
1939
- if (index) {
1940
- draft?.List?.splice(index, 1);
1941
- }
1942
- });
1943
- });
1944
- message.success(t("UserList.deleteSuccessfully"));
1945
- }
1946
- });
1947
- },
1948
- children: t("global.delete")
1949
- }
1950
- )
1951
- ] })
1952
- }
1953
- ];
1954
- return /* @__PURE__ */ jsxs(Fragment, { children: [
1955
- /* @__PURE__ */ jsx(
1956
- Card,
1957
- {
1958
- title: t("global.user"),
1959
- extra: /* @__PURE__ */ jsx(
1960
- PermissionButton_default,
1961
- {
1962
- isGlobal: true,
1963
- type: "primary",
1964
- icon: /* @__PURE__ */ jsx(UserAddOutlined, {}),
1965
- code: "100002",
1966
- onClick: () => {
1967
- showCreateModal();
1968
- },
1969
- children: t("UserList.createTitle")
1970
- }
1971
- ),
1972
- children: /* @__PURE__ */ jsx(
1973
- QueryList_default,
1974
- {
1975
- isGlobal: true,
1976
- code: "100001",
1977
- route,
1978
- rowKey: "id",
1979
- columns,
1980
- getTotal: (response) => response?.Total,
1981
- getDataSource: (response) => response?.List
1982
- }
1983
- )
1984
- }
1985
- ),
1986
- createModal,
1987
- updateModal
1988
- ] });
1989
- };
1990
- userList_default = UserList;
1991
- }
1992
- });
1993
-
1994
- // src/pages/permission/roleList/index.tsx
1995
- var roleList_exports = {};
1996
- __export(roleList_exports, {
1997
- default: () => roleList_default
1998
- });
1999
- var route2, useModal3, RoleList, roleList_default;
2000
- var init_roleList = __esm({
2001
- "src/pages/permission/roleList/index.tsx"() {
2002
- init_contextProvider();
2003
- init_highlight();
2004
- init_locale();
2005
- init_permissionButton();
2006
- init_queryList();
2007
- init_stores3();
2008
- init_constants();
2009
- init_permission2();
2010
- init_formModal();
2011
- init_permission();
2012
- init_request();
2013
- route2 = "/api/usystem/role/list";
2014
- useModal3 = (isCreate) => {
2015
- const { message } = App.useApp();
2016
- const { t } = useTranslation();
2017
- const { refetch, mutate: mutate2 } = useQueryListStore();
2018
- const create6 = useCreateRole();
2019
- const update = useUpdateRole();
2020
- const title = isCreate ? t("RoleList.createTitle") : t("RoleList.updateTitle");
2021
- const formProps = {
2022
- layout: "vertical"
2023
- };
2024
- const content = /* @__PURE__ */ jsxs(Fragment, { children: [
2025
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { disabled: !isCreate, addonBefore: "role_" }) }),
2026
- /* @__PURE__ */ jsx(Form.Item, { name: "permissions", children: /* @__PURE__ */ jsx(permissionList_default, {}) })
2027
- ] });
2028
- const onConfirm = async (values, extraValues) => {
2029
- if (isCreate) {
2030
- await create6.trigger({
2031
- name: `role_${values.name}`,
2032
- permissions: values.permissions
2033
- });
2034
- refetch(route2, { page: 1 });
2035
- message.success(t("RoleList.createSuccessfully"));
2036
- } else {
2037
- await update.trigger({
2038
- id: extraValues?.id,
2039
- name: `role_${values.name}`,
2040
- permissions: values.permissions
2041
- });
2042
- mutate2(
2043
- route2,
2044
- (prev) => produce(prev, (draft) => {
2045
- const match = draft?.List?.find((item) => item.id === extraValues?.id);
2046
- if (match) {
2047
- match.permissions = values.permissions;
2048
- }
2049
- }),
2050
- { revalidate: false }
2051
- );
2052
- message.success(t("RoleList.updateSuccessfully"));
2053
- }
2054
- };
2055
- return useFormModal({
2056
- title,
2057
- width: "50vw",
2058
- formProps,
2059
- content,
2060
- onConfirm
2061
- });
2062
- };
2063
- RoleList = () => {
2064
- const { accessible: viewable } = usePermission("200005", { headers: { [APP_ID_HEADER_NAME]: "global" } });
2065
- const { modal, message } = App.useApp();
2066
- const { t } = useTranslation();
2067
- const usePermissionApiV2 = useToolkitsContext((state) => state.usePermissionApiV2);
2068
- const { mutate: mutate2 } = useQueryListStore();
2069
- const { show: showCreateModal, modal: createModal } = useModal3(true);
2070
- const { show: showUpdateModal, modal: updateModal } = useModal3();
2071
- const remove = useRemoveRole();
2072
- const handleUpdateBtnClick = async (record) => {
2073
- const { data: role } = await request(
2074
- `/api/usystem/role/info${usePermissionApiV2 ? "V2" : ""}?name=${record.name}`,
2075
- { headers: { [APP_ID_HEADER_NAME]: "global" } }
2076
- );
2077
- showUpdateModal({
2078
- initialValues: {
2079
- permissions: role?.permissions,
2080
- name: role?.name.replace(/^role_/, "")
2081
- },
2082
- extraValues: {
2083
- id: role?.id
2084
- }
2085
- });
2086
- };
2087
- const columns = [
2088
- {
2089
- title: t("global.name"),
2090
- key: "name",
2091
- render(value) {
2092
- if (viewable) {
2093
- return /* @__PURE__ */ jsx(Link, { to: `${value.name}`, relative: "path", children: value.name });
2094
- } else {
2095
- return /* @__PURE__ */ jsx(Fragment, { children: value.name });
2096
- }
2097
- }
2098
- },
2099
- {
2100
- title: "ID",
2101
- dataIndex: "id",
2102
- key: "id"
2103
- },
2104
- {
2105
- title: t("global.creationTime"),
2106
- dataIndex: "ctime",
2107
- key: "ctime"
2108
- },
2109
- {
2110
- title: t("global.operation"),
2111
- width: 150,
2112
- align: "center",
2113
- render: (_, record) => {
2114
- return /* @__PURE__ */ jsxs(Space, { size: "small", children: [
2115
- /* @__PURE__ */ jsx(
2116
- PermissionButton_default,
2117
- {
2118
- isGlobal: true,
2119
- code: "200003",
2120
- size: "small",
2121
- type: "link",
2122
- onClick: async () => {
2123
- handleUpdateBtnClick(record);
2124
- },
2125
- children: t("global.edit")
2126
- }
2127
- ),
2128
- /* @__PURE__ */ jsx(
2129
- PermissionButton_default,
2130
- {
2131
- isGlobal: true,
2132
- danger: true,
2133
- code: "200004",
2134
- size: "small",
2135
- type: "link",
2136
- onClick: () => {
2137
- modal.confirm({
2138
- title: t("RoleList.deleteTitle"),
2139
- content: /* @__PURE__ */ jsx(Highlight_default, { texts: [record.name], children: t("RoleList.deleteContent", { role: record.name }) }),
2140
- async onOk() {
2141
- await remove.trigger({
2142
- id: record.id,
2143
- name: record.name
2144
- });
2145
- mutate2(route2, (prev) => {
2146
- return produce(prev, (draft) => {
2147
- const index = draft?.List?.findIndex((item) => item.id === record.id);
2148
- if (index) {
2149
- draft?.List?.splice(index, 1);
2150
- }
2151
- });
2152
- });
2153
- message.success(t("RoleList.deleteSuccessfully"));
2154
- }
2155
- });
2156
- },
2157
- children: t("global.delete")
2158
- }
2159
- )
2160
- ] });
2161
- }
2162
- }
2163
- ];
2164
- return /* @__PURE__ */ jsxs(Fragment, { children: [
2165
- /* @__PURE__ */ jsx(
2166
- Card,
2167
- {
2168
- title: t("global.role"),
2169
- extra: /* @__PURE__ */ jsx(
2170
- PermissionButton_default,
2171
- {
2172
- isGlobal: true,
2173
- type: "primary",
2174
- code: "200002",
2175
- icon: /* @__PURE__ */ jsx(UsergroupAddOutlined, {}),
2176
- onClick: () => {
2177
- showCreateModal();
2178
- },
2179
- children: t("RoleList.createTitle")
2180
- }
2181
- ),
2182
- children: /* @__PURE__ */ jsx(
2183
- QueryList_default,
2184
- {
2185
- isGlobal: true,
2186
- rowKey: "name",
2187
- columns,
2188
- code: "200001",
2189
- route: route2,
2190
- getTotal: (response) => response?.Total,
2191
- getDataSource: (response) => response?.List
2192
- }
2193
- )
2194
- }
2195
- ),
2196
- createModal,
2197
- updateModal
2198
- ] });
2199
- };
2200
- roleList_default = RoleList;
2201
- }
2202
- });
2203
-
2204
- // src/pages/permission/roleDetail/index.tsx
2205
- var roleDetail_exports = {};
2206
- __export(roleDetail_exports, {
2207
- default: () => roleDetail_default
2208
- });
2209
- var RoleDetail, roleDetail_default;
2210
- var init_roleDetail = __esm({
2211
- "src/pages/permission/roleDetail/index.tsx"() {
2212
- init_locale();
2213
- init_permission2();
2214
- RoleDetail = () => {
2215
- const params = useParams();
2216
- const { data, isLoading } = useRole(params.name);
2217
- const { t } = useTranslation();
2218
- return /* @__PURE__ */ jsxs(Fragment, { children: [
2219
- /* @__PURE__ */ jsx(
2220
- Breadcrumb,
2221
- {
2222
- style: { marginBottom: 24 },
2223
- items: [
2224
- {
2225
- key: "1",
2226
- title: /* @__PURE__ */ jsx(Link, { to: "..", relative: "path", children: t("global.role") })
2227
- },
2228
- {
2229
- key: "2",
2230
- title: params.name
2231
- }
2232
- ]
2233
- }
2234
- ),
2235
- /* @__PURE__ */ jsx(Card, { title: t("RoleDetail.title"), children: /* @__PURE__ */ jsxs(Skeleton, { loading: isLoading, children: [
2236
- /* @__PURE__ */ jsxs(Descriptions, { column: 3, layout: "vertical", children: [
2237
- /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.name"), children: data?.name }),
2238
- /* @__PURE__ */ jsx(Descriptions.Item, { label: "ID", children: data?.id }),
2239
- /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.creationTime"), children: data?.ctime })
2240
- ] }),
2241
- /* @__PURE__ */ jsx(permissionList_default, { readonly: true, value: data?.permissions })
2242
- ] }) })
2243
- ] });
2244
- };
2245
- roleDetail_default = RoleDetail;
2246
- }
2247
- });
2248
-
2249
- // src/index.ts
2250
- init_contextProvider();
2251
-
2252
- // src/components/dynamicTags/DynamicTags.tsx
2253
- init_locale();
2254
- var DynamicTags = (props) => {
2255
- const { initialTags, addable, removable, addCallback, removeCallback } = props;
2256
- const { t } = useTranslation();
2257
- const { token } = theme.useToken();
2258
- const [tags, setTags] = useState([]);
2259
- const [inputVisible, setInputVisible] = useState(false);
2260
- const [inputValue, setInputValue] = useState("");
2261
- const [editInputIndex, setEditInputIndex] = useState(-1);
2262
- const [editInputValue, setEditInputValue] = useState("");
2263
- const inputRef = useRef(null);
2264
- const editInputRef = useRef(null);
2265
- useEffect(() => {
2266
- setTags(initialTags ?? []);
2267
- }, [initialTags]);
2268
- useEffect(() => {
2269
- if (inputVisible) {
2270
- inputRef.current?.focus();
2271
- }
2272
- }, [inputVisible]);
2273
- useEffect(() => {
2274
- editInputRef.current?.focus();
2275
- }, [inputValue]);
2276
- const handleClose = async (removedTag) => {
2277
- const success = await removeCallback?.(removedTag);
2278
- if (success) {
2279
- const newTags = tags.filter((tag) => tag !== removedTag);
2280
- setTags(newTags);
2281
- }
2282
- };
2283
- const showInput = () => {
2284
- setInputVisible(true);
2285
- };
2286
- const handleInputChange = (e) => {
2287
- setInputValue(e.target.value);
2288
- };
2289
- const handleInputConfirm = async () => {
2290
- if (inputValue && tags.indexOf(inputValue) === -1) {
2291
- const success = await addCallback?.(inputValue);
2292
- if (success) {
2293
- setTags([...tags, inputValue]);
2294
- }
2295
- }
2296
- setInputVisible(false);
2297
- setInputValue("");
2298
- };
2299
- const handleEditInputChange = (e) => {
2300
- setEditInputValue(e.target.value);
2301
- };
2302
- const handleEditInputConfirm = () => {
2303
- const newTags = [...tags];
2304
- newTags[editInputIndex] = editInputValue;
2305
- setTags(newTags);
2306
- setEditInputIndex(-1);
2307
- setInputValue("");
2308
- };
2309
- const tagInputStyle = {
2310
- width: 78,
2311
- verticalAlign: "top"
2312
- };
2313
- const tagPlusStyle = {
2314
- background: token.colorBgContainer,
2315
- borderStyle: "dashed"
2316
- };
2317
- return /* @__PURE__ */ jsxs(Space, { wrap: true, size: [0, 8], children: [
2318
- /* @__PURE__ */ jsx(Space, { wrap: true, size: [0, 8], children: tags.map((tag, index) => {
2319
- if (editInputIndex === index) {
2320
- return /* @__PURE__ */ jsx(
2321
- Input,
2322
- {
2323
- ref: editInputRef,
2324
- size: "small",
2325
- style: tagInputStyle,
2326
- value: editInputValue,
2327
- onChange: handleEditInputChange,
2328
- onBlur: handleEditInputConfirm,
2329
- onPressEnter: handleEditInputConfirm
2330
- },
2331
- tag
2332
- );
2333
- }
2334
- return /* @__PURE__ */ jsx(
2335
- Tag,
2336
- {
2337
- closable: removable,
2338
- style: { userSelect: "none" },
2339
- onClose: async (e) => {
2340
- e.preventDefault();
2341
- await handleClose(tag);
2342
- },
2343
- children: /* @__PURE__ */ jsx(
2344
- "span",
2345
- {
2346
- onDoubleClick: (e) => {
2347
- if (index !== 0) {
2348
- setEditInputIndex(index);
2349
- setEditInputValue(tag);
2350
- e.preventDefault();
2351
- }
2352
- },
2353
- children: tag
2354
- }
2355
- )
2356
- },
2357
- tag
2358
- );
2359
- }) }),
2360
- addable && (inputVisible ? /* @__PURE__ */ jsx(
2361
- Input,
2362
- {
2363
- ref: inputRef,
2364
- type: "text",
2365
- size: "small",
2366
- style: tagInputStyle,
2367
- value: inputValue,
2368
- onChange: handleInputChange,
2369
- onBlur: handleInputConfirm,
2370
- onPressEnter: handleInputConfirm
2371
- }
2372
- ) : /* @__PURE__ */ jsxs(Tag, { style: tagPlusStyle, onClick: showInput, children: [
2373
- /* @__PURE__ */ jsx(PlusOutlined, {}),
2374
- "\xA0",
2375
- t("global.add")
2376
- ] }))
2377
- ] });
2378
- };
2379
- var DynamicTags_default = DynamicTags;
2380
- var ExpandableParagraph = (props) => {
2381
- const { children, ...restProps } = props;
2382
- const [expanded, setExpanded] = useState(false);
2383
- return /* @__PURE__ */ jsx(
2384
- Typography.Paragraph,
2385
- {
2386
- ...restProps,
2387
- className: "mb-0",
2388
- ellipsis: {
2389
- rows: 2,
2390
- expandable: "collapsible",
2391
- expanded,
2392
- onExpand: (_, info) => {
2393
- setExpanded(info.expanded);
2394
- }
2395
- },
2396
- children
2397
- }
2398
- );
2399
- };
2400
- var ExpandableParagraph_default = ExpandableParagraph;
2401
-
2402
- // src/index.ts
2403
- init_filterFormWrapper();
2404
- init_highlight();
2405
-
2406
- // src/components/infiniteList/InfiniteList.tsx
2407
- init_constants();
2408
- init_permission();
2409
- init_request();
2410
- init_contextProvider();
2411
- init_filterFormWrapper();
2412
- init_layout();
2413
- init_locale();
2414
- var InfiniteList = (props) => {
2415
- const {
2416
- code,
2417
- action,
2418
- extras,
2419
- headers,
2420
- isGlobal,
2421
- getRowKey,
2422
- getDataSource,
2423
- hasMore,
2424
- renderForm,
2425
- transformArg,
2426
- ...tableProps
2427
- } = props;
2428
- const { t } = useTranslation();
2429
- const [form] = Form.useForm();
2430
- const [isValid, setIsValid] = useState(false);
2431
- const [formValues, setFormValues] = useState();
2432
- const getKey = (pageIndex, previousPageData) => {
2433
- if (!isValid) return null;
2434
- const rowKey = pageIndex !== 0 ? getRowKey(previousPageData) : void 0;
2435
- const args = transformArg(formValues, rowKey);
2436
- const queryString = qs.stringify(args);
2437
- return queryString ? `${action}?${qs.stringify(args)}` : action;
2438
- };
2439
- const { game } = useGameStore();
2440
- const { usePermissionApiV2, gameApiV2 } = useToolkitsContext((state) => state);
2441
- const { accessible, isLoading } = usePermission(code, {
2442
- headers: {
2443
- [APP_ID_HEADER_NAME]: game ? isGlobal ? "global" : String(gameApiV2 ? game.game_id : game.id) : ""
2444
- }
2445
- });
2446
- const _headers = useMemo(() => {
2447
- const newHeaders = new Headers(typeof headers === "function" ? headers(form) : headers);
2448
- if (usePermissionApiV2) {
2449
- if (isGlobal) {
2450
- newHeaders.set(APP_ID_HEADER_NAME, "global");
2451
- } else if (game) {
2452
- newHeaders.set(APP_ID_HEADER_NAME, String(game.id));
2453
- }
2454
- }
2455
- return newHeaders;
2456
- }, [usePermissionApiV2, isGlobal, game, headers]);
2457
- const {
2458
- data,
2459
- size,
2460
- setSize,
2461
- isValidating: isListValidating
2462
- } = useSWRInfinite(
2463
- getKey,
2464
- (arg) => {
2465
- return request(arg, {
2466
- headers: _headers
2467
- }).then((response) => response.data);
2468
- },
2469
- {
2470
- shouldRetryOnError: false,
2471
- revalidateOnFocus: false,
2472
- revalidateFirstPage: false
2473
- }
2474
- );
2475
- const dataSource = getDataSource(data);
2476
- const isLoadingMore = isListValidating || size > 0 && data && typeof data[size - 1] === "undefined";
2477
- const isReachingEnd = typeof hasMore !== "undefined" ? !hasMore(data) : true;
2478
- const isEmpty = !dataSource || dataSource.length === 0;
2479
- const onConfirm = async () => {
2480
- const values = await form.getFieldsValue();
2481
- setFormValues(values);
2482
- try {
2483
- await form.validateFields();
2484
- setSize(1);
2485
- setIsValid(true);
2486
- } catch (_) {
2487
- setSize(0);
2488
- setIsValid(false);
2489
- }
2490
- };
2491
- const loadMore = () => {
2492
- setSize(size + 1);
2493
- };
2494
- const onReset = async () => {
2495
- try {
2496
- form.resetFields();
2497
- await form.validateFields({ validateOnly: true });
2498
- setSize(1);
2499
- } catch (_) {
2500
- setSize(0);
2501
- }
2502
- };
2503
- useEffect(() => {
2504
- if (accessible) {
2505
- form.validateFields({ validateOnly: true }).then((values) => {
2506
- setFormValues(values);
2507
- setIsValid(true);
2508
- }).catch(() => {
2509
- setIsValid(false);
2510
- });
2511
- }
2512
- }, [accessible]);
2513
- if (isLoading) {
2514
- return /* @__PURE__ */ jsx(
2515
- Spin,
2516
- {
2517
- style: {
2518
- display: "flex",
2519
- justifyContent: "center",
2520
- alignItems: "center",
2521
- height: 300
2522
- }
2523
- }
2524
- );
2525
- }
2526
- if (!accessible) {
2527
- return /* @__PURE__ */ jsx(Result, { status: 403, subTitle: t("global.noEntitlement") });
2528
- }
2529
- return /* @__PURE__ */ jsxs(Fragment, { children: [
2530
- renderForm ? /* @__PURE__ */ jsx(
2531
- FilterFormWrapper_default,
2532
- {
2533
- extras: extras?.map((extra) => ({
2534
- key: extra.key,
2535
- children: typeof extra.children === "function" ? extra.children(form) : extra.children
2536
- })),
2537
- onReset,
2538
- onConfirm,
2539
- children: renderForm(form)
2540
- }
2541
- ) : /* @__PURE__ */ jsx(Form, { form }),
2542
- /* @__PURE__ */ jsx(Table, { ...tableProps, dataSource, loading: isLoadingMore, pagination: false }),
2543
- !isEmpty && /* @__PURE__ */ jsx(
2544
- Button,
2545
- {
2546
- block: true,
2547
- loading: isLoadingMore,
2548
- type: "link",
2549
- htmlType: "button",
2550
- disabled: isLoadingMore || isReachingEnd,
2551
- onClick: loadMore,
2552
- children: isLoadingMore ? t("InfiniteList.loadingText") : isReachingEnd ? t("InfiniteList.reachEndText") : t("InfiniteList.loadMoreText")
2553
- }
2554
- )
2555
- ] });
2556
- };
2557
- var InfiniteList_default = InfiniteList;
2558
-
2559
- // src/index.ts
2560
- init_layout();
2561
- init_navMenu();
2562
- init_permissionButton();
2563
- init_queryList();
2564
- init_requireGame();
2565
-
2566
- // src/components/requirePermission/RequirePermission.tsx
2567
- init_constants();
2568
- init_permission();
2569
- init_locale();
2570
- var RequirePermission = (props) => {
2571
- const { code, isGlobal, children } = props;
2572
- const { accessible, isValidating } = usePermission(
2573
- code,
2574
- isGlobal ? { headers: { [APP_ID_HEADER_NAME]: "global" } } : void 0
2575
- );
2576
- const { t } = useTranslation();
2577
- if (isValidating) {
2578
- return /* @__PURE__ */ jsx(
2579
- Spin,
2580
- {
2581
- style: {
2582
- display: "flex",
2583
- justifyContent: "center",
2584
- alignItems: "center",
2585
- height: 200
2586
- }
2587
- }
2588
- );
2589
- }
2590
- if (!accessible) {
2591
- return /* @__PURE__ */ jsx(Result, { status: "403", subTitle: t("global.noEntitlement") });
2592
- }
2593
- return /* @__PURE__ */ jsx(Fragment, { children });
2594
- };
2595
- var RequirePermission_default = RequirePermission;
2596
-
2597
- // src/index.ts
2598
- init_userWidget();
2599
- init_constants();
2600
- init_formModal();
2601
- init_modal();
2602
- init_permission();
2603
- init_token();
2604
-
2605
- // src/pages/notFound/index.tsx
2606
- init_locale();
2607
- var NotFound = (props) => {
2608
- const { redirectUrl } = props;
2609
- const navigate = useNavigate();
2610
- const { t } = useTranslation();
2611
- return /* @__PURE__ */ jsx("div", { className: "h-screen flex justify-center items-center", children: /* @__PURE__ */ jsx(
2612
- Result,
2613
- {
2614
- status: "404",
2615
- title: "404",
2616
- subTitle: t("NotFound.subTitle"),
2617
- extra: redirectUrl && /* @__PURE__ */ jsx(
2618
- Button,
2619
- {
2620
- type: "primary",
2621
- onClick: () => {
2622
- navigate(redirectUrl);
2623
- },
2624
- children: t("NotFound.buttonText")
2625
- }
2626
- )
2627
- }
2628
- ) });
2629
- };
2630
- var notFound_default = NotFound;
2631
- init_locale();
2632
- init_queryList();
2633
- var { Option } = Select;
2634
- var OperationLogList = () => {
2635
- const { t } = useTranslation();
2636
- const columns = [
2637
- {
2638
- key: "username",
2639
- title: t("global.username"),
2640
- dataIndex: "uname",
2641
- width: 100
2642
- },
2643
- {
2644
- key: "label",
2645
- title: t("global.label"),
2646
- dataIndex: "label",
2647
- width: 150
2648
- },
2649
- {
2650
- key: "method",
2651
- title: t("global.method"),
2652
- dataIndex: "method",
2653
- width: 100
2654
- },
2655
- {
2656
- key: "route",
2657
- title: t("global.route"),
2658
- dataIndex: "route",
2659
- width: 200
2660
- },
2661
- {
2662
- key: "request",
2663
- title: t("global.request"),
2664
- dataIndex: "request",
2665
- render(value) {
2666
- return /* @__PURE__ */ jsx(ExpandableParagraph_default, { children: value });
2667
- }
2668
- },
2669
- {
2670
- key: "response",
2671
- title: t("global.response"),
2672
- dataIndex: "response",
2673
- render(value) {
2674
- return /* @__PURE__ */ jsx(ExpandableParagraph_default, { children: value });
2675
- }
2676
- },
2677
- {
2678
- key: "creation_time",
2679
- title: t("global.creationTime"),
2680
- dataIndex: "ctime",
2681
- width: 200,
2682
- render(value) {
2683
- return dayjs(value).format("YYYY-MM-DD HH:mm:ss");
2684
- }
2685
- }
2686
- ];
2687
- return /* @__PURE__ */ jsx(Card, { title: "\u64CD\u4F5C\u65E5\u5FD7", children: /* @__PURE__ */ jsx(
2688
- QueryList_default,
2689
- {
2690
- isGlobal: true,
2691
- rowKey: "id",
2692
- code: "300001",
2693
- columns,
2694
- tableLayout: "fixed",
2695
- route: "/api/usystem/log/list",
2696
- getTotal: (response) => response?.Total,
2697
- getDataSource: (response) => response?.List,
2698
- renderForm: (form) => /* @__PURE__ */ jsxs(Form, { form, layout: "inline", children: [
2699
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.username"), name: "uname", children: /* @__PURE__ */ jsx(Input, { allowClear: true }) }),
2700
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.route"), name: "route", children: /* @__PURE__ */ jsx(Input, { allowClear: true }) }),
2701
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.method"), name: "method", children: /* @__PURE__ */ jsxs(Select, { allowClear: true, style: { width: "100px" }, children: [
2702
- /* @__PURE__ */ jsx(Option, { value: "get", children: "GET" }),
2703
- /* @__PURE__ */ jsx(Option, { value: "post", children: "POST" })
2704
- ] }) }),
2705
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.label"), name: "label", children: /* @__PURE__ */ jsx(Input, { allowClear: true }) })
2706
- ] })
2707
- }
2708
- ) });
2709
- };
2710
- var operationLogList_default = OperationLogList;
2711
- var UserList2 = lazy(() => Promise.resolve().then(() => (init_userList(), userList_exports)));
2712
- var RoleList2 = lazy(() => Promise.resolve().then(() => (init_roleList(), roleList_exports)));
2713
- var RoleDetail2 = lazy(() => Promise.resolve().then(() => (init_roleDetail(), roleDetail_exports)));
2714
- var permission_default = /* @__PURE__ */ jsxs(Routes, { children: [
2715
- /* @__PURE__ */ jsx(Route, { index: true, element: /* @__PURE__ */ jsx(Navigate, { to: "user" }) }),
2716
- /* @__PURE__ */ jsx(Route, { path: "user", element: /* @__PURE__ */ jsx(UserList2, {}) }),
2717
- /* @__PURE__ */ jsx(Route, { path: "role", element: /* @__PURE__ */ jsx(RoleList2, {}) }),
2718
- /* @__PURE__ */ jsx(Route, { path: "role/:name", element: /* @__PURE__ */ jsx(RoleDetail2, {}) })
2719
- ] });
2720
-
2721
- // src/pages/signIn/index.tsx
2722
- init_locale();
2723
- init_logo();
2724
- init_constants();
2725
- init_token();
2726
- init_request();
2727
-
2728
- // src/pages/signIn/background.svg
2729
- var background_default = 'data:image/svg+xml,<svg xml:space="preserve" style="enable-background:new 0 0 6000 4000;" viewBox="0 0 6000 4000" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1">%0A<style type="text/css">%0A%09.Graphic_x0020_Style_x0020_100{fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_101{fill:url(%23SVGID_1_);}%0A%09.Graphic_x0020_Style_x0020_102{fill:url(%23SVGID_2_);}%0A%09.Graphic_x0020_Style_x0020_104{fill:%23DB6767;}%0A%09.Graphic_x0020_Style_x0020_105{fill:%23FFDE70;}%0A%09.Graphic_x0020_Style_x0020_106{fill:%23FFB114;}%0A%09.Graphic_x0020_Style_x0020_107{fill:%236584C6;}%0A%09.Graphic_x0020_Style_x0020_108{fill:%23102140;}%0A%09.Graphic_x0020_Style_x0020_109{fill:%233B546B;}%0A%09.Graphic_x0020_Style_x0020_110{fill:%23152A52;}%0A%09.Graphic_x0020_Style_x0020_111{fill:%23E8766F;}%0A%09.Graphic_x0020_Style_x0020_112{fill:%23EF5668;}%0A%09.Graphic_x0020_Style_x0020_113{fill:%23FC9590;}%0A%09.Graphic_x0020_Style_x0020_114{fill:%23912433;}%0A%09.Graphic_x0020_Style_x0020_115{opacity:0.5;fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_116{fill:%231A1A1A;}%0A%09.Graphic_x0020_Style_x0020_117{fill:%23535353;}%0A%09.Graphic_x0020_Style_x0020_118{fill:%23DBD2DB;}%0A%09.Graphic_x0020_Style_x0020_119{fill:%234D73C6;}%0A%09.Graphic_x0020_Style_x0020_120{fill:%23D1334A;}%0A%09.Graphic_x0020_Style_x0020_123{fill:url(%23SVGID_3_);}%0A%09.st0{fill:url(%23SVGID_4_);}%0A%09.st1{fill:url(%23SVGID_5_);}%0A%09.st2{fill:url(%23SVGID_6_);}%0A%09.st3{fill:%239D8A9D;}%0A%09.st4{fill:url(%23SVGID_7_);}%0A%09.st5{fill:url(%23SVGID_8_);}%0A%09.st6{fill:%233B546B;}%0A%09.st7{fill:%23A8A1A8;}%0A%09.st8{fill:%23DBD2DB;}%0A%09.st9{fill:%23FFFFFF;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st10{fill:%23339E7E;}%0A%09.st11{fill:none;stroke:%2310663F;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st12{fill:%2300593B;}%0A%09.st13{fill:none;stroke:%233DBE88;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st14{fill:none;stroke:%23134411;stroke-width:8.0149;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st15{fill:%23EF5668;}%0A%09.st16{fill:%23FC9590;}%0A%09.st17{fill:%23102140;}%0A%09.st18{fill:%23DB6767;}%0A%09.st19{fill:%231A1A1A;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st20{fill:%23FFFFFF;}%0A%09.st21{fill:%23535353;}%0A%09.st22{fill:%23F9EBF9;}%0A%09.st23{fill:%23D896D8;}%0A%09.st24{fill:%238E3D8E;}%0A%09.st25{fill:%23CA74CA;}%0A%09.st26{fill:%23D590D5;}%0A%09.st27{fill:%23160A16;}%0A%09.st28{fill:%23384A6E;}%0A%09.st29{fill:%23B7C0D4;}%0A%09.st30{fill:%23E8766F;}%0A%09.st31{fill:%23FFB114;}%0A%09.st32{fill:%23FFDE70;}%0A%09.st33{fill:%23434343;}%0A%09.st34{fill:%23664708;}%0A%09.st35{fill:%23D9D9D9;}%0A%09.st36{fill:url(%23SVGID_9_);}%0A%09.st37{fill:url(%23SVGID_10_);}%0A%09.st38{fill:url(%23SVGID_11_);}%0A%09.st39{fill:url(%23SVGID_12_);}%0A</style>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_1_">%0A%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_2_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_3_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A</linearGradient>%0A<g>%0A%09<linearGradient y2="3014.9536" x2="4941.2124" y1="3014.9536" x1="1288.5804" gradientUnits="userSpaceOnUse" id="SVGID_4_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1288.6,2793.9c55.3,134.1,186.5,387.6,453.7,503.3c220.8,95.6,442.9,57.4,694.7,14.2%0A%09%09c343.1-59,344.3-140.4,552.9-134.7c282.5,7.8,357.3,159.3,673.4,219.7c66.5,12.7,309.6,47.5,574.2-28.4%0A%09%09c360.6-103.4,734.8-407.2,701.8-560C4895.4,2605.9,4103.5,2505.3,1288.6,2793.9z" class="st0"></path>%0A%09<linearGradient y2="1994.5433" x2="5456.5684" y1="1994.5433" x1="686.3356" gradientUnits="userSpaceOnUse" id="SVGID_5_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5428.3,1649.1c-131.4-612.4-697.6-977.3-1155.4-1020.7c-232.1-22-245.1,56.7-616.7,117%0A%09%09c-821.7,133.2-1081-199.5-1850.1-85.1c-341.2,50.8-687.6,102.3-914.4,382.8C519.9,1502.7,718.2,2270,973.9,2621.3%0A%09%09c165.2,227,392.7,363.9,392.7,363.9c68.9,41.5,168.6,100.4,304.8,131.1c237.9,53.7,359.9-29.9,560-42.5%0A%09%09c342.7-21.6,401.6,197.2,772.6,276.4c190.7,40.7,257.4,0.5,1084.5-212.6c811.7-209.1,858.2-198.9,974.7-297.7%0A%09%09C5379.4,2571.8,5521.7,2084.7,5428.3,1649.1z M2709.5,2042.7v-2.7V2042.7z" class="st1"></path>%0A%09<linearGradient y2="1859.5726" x2="5227.9292" y1="1859.5726" x1="1116.5316" gradientUnits="userSpaceOnUse" id="SVGID_6_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5148.1,1664.4c-146.3-421.8-552.5-838.3-943.2-819c-297.4,14.6-412.5,273.3-678.4,215.1%0A%09%09c-227.7-49.8-217.9-255.8-471.6-405.4c-401.7-236.8-1083-107.4-1265.9,223.4c-99.3,179.7-11.7,346.7-173.7,521.2%0A%09%09c-113.5,122.3-192.5,78.9-314.4,198.6c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1%0A%09%09c827.4,146.2,1654.7,292.3,2482.1,438.5c80.8,13.1,529.4,77.9,879.7-216.7C5295.8,2609,5272.6,2023.2,5148.1,1664.4z%0A%09%09 M2709.5,2042.7v-2.7V2042.7z" class="st2"></path>%0A%09<path d="M5224.3,2042.5c-143.7-88.6-413.9-68.2-740.1-95.9c-488.7-41.5-1188.7,312.8-1437,221.4%0A%09%09c-95.1-35-167.4-141.7-220.4-260v1053.6c291.4,51.5,582.8,103,874.2,154.4l1292.2-269.1C5190,2615.6,5243.4,2314,5224.3,2042.5z" class="st3"></path>%0A%09<linearGradient y2="1741.7239" x2="2757.678" y1="1741.7239" x1="1116.5317" gradientUnits="userSpaceOnUse" id="SVGID_7_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.3,179.7-11.7,346.7-173.7,521.2c-113.5,122.3-192.5,78.9-314.4,198.6%0A%09%09c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1c411.1,72.6,822.2,145.3,1233.4,217.9V550.2%0A%09%09C2377.7,484.9,1931.7,620.4,1789.1,878.4z M2709.5,2042.7v-2.7V2042.7z" class="st4"></path>%0A%09<linearGradient y2="1215.4698" x2="2649.5779" y1="1215.4698" x1="1137.9542" gradientUnits="userSpaceOnUse" id="SVGID_8_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.4,179.7-11.7,346.7-173.7,521.2c-113.6,122.3-192.5,78.9-314.4,198.6%0A%09%09c-79.1,77.6-134.7,183-163,298.8c82.9-108.4,187.6-189.5,319.3-210.4c445.6-70.8,892.8,45.1,1192.3-113.7V537.1%0A%09%09C2296.9,511.3,1918.4,644.5,1789.1,878.4z" class="st5"></path>%0A%09<polygon points="1937.1,644.5 1937.1,2265.3 1979.7,2269.9 1983,640.9" class="st6"></polygon>%0A%09<path d="M2757.7,550.2c-35.6-6.1-71.7-10.5-108.1-13.1v1035.7c38.6-20.4,74.7-45.4,108.1-76V550.2z" class="st7"></path>%0A%09<path d="M1117.4,850.5c-15.5,9-30.8,18.5-45.8,28.5v1689.5l42.6,5.1L1117.4,850.5z" class="st6"></path>%0A%09<path d="M2826.8,564.5c-22.7-5.5-45.8-10.3-69.1-14.3v2399.3c23,4.1,46.1,8.1,69.1,12.2V564.5z" class="st8"></path>%0A%09<g>%0A%09%09<path d="M1121,2361c0,0-98.3-110.7,84.2-222.1c-25.3,43.4-118,92.3-52.4,202.9%0A%09%09%09c27.1,62.9-12.8,89.7-12.8,89.7S1080.6,2436.5,1121,2361z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<g>%0A%09%09%09<path d="M1282.2,2470.4c-15.5,28.9-215.1,26.5-315.7,23.4c-1.1-4.4-2.1-8.7-3.1-13c-1.8-7.8-3.5-15.5-5-23.2%0A%09%09%09%09C1035.2,2452.4,1299.9,2437.2,1282.2,2470.4z" class="st9"></path>%0A%09%09%09<path d="M1282.2,2470.4l-16.7,216.9c-25.9,39.1-25.5,89.5-36,137.5c-4.3,22.7-20.4,30.2-38.6,29.2%0A%09%09%09%09c-39.4-34.1-82.1-74.2-124.2-119.9c-50-80.3-81.3-162.6-100.3-240.3C1067.1,2496.9,1266.7,2499.4,1282.2,2470.4z" class="st9"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1331.3,2151c12.7,12.2,30.7,16,43,17c5.5-2.7,11.1-5.7,16.6-8.9c24.3-13.9,39.8-38.8,49.7-66.7%0A%09%09%09%09c-16.1,5.8-51.8,17.4-67.4,11.2c-20.4-8.1-12.5-17.1-3-14.1c11.7,6,55.7-6.5,75.3-12.5c4.1-14.9,6.8-30.2,8.6-44.8%0A%09%09%09%09c-13.9,8.3-34.9,15.8-44.4,12.6c-12.3-4.2-7.4-14.4,2.7-13.2c7.4,0.8,31.4-12,43.6-18.8c2.2-29.7,0.8-53.4,0.4-59.6%0A%09%09%09%09c-0.1-1-0.1-1.6-0.1-1.6s-29-8.6-66.9-14.1c-8,8.1-19.9,20.8-24.9,29.3c-8,13.3-11.7,24.3-18.1,22.2%0A%09%09%09%09c-12.7-6.6,13.3-37.6,27.8-53.4c-16.5-1.8-34.1-2.9-51.4-2.3c-51.5,40.6-24.5,76.1-44.7,71.8c-17.5-3.7,13.5-51.5,26.6-70.5%0A%09%09%09%09c-16.3,1.8-31.9,5.4-45.3,11.6c-12.1,6.2-22.8,12.2-32.4,18.1c-14.5,34.4,20,53.7,1.7,57.9c-14.3,3.3-16.2-30.4-16.2-48.5%0A%09%09%09%09c-124.9,86.7,2.8,144.8,2.8,144.8c0.1,0.5,0.2,1,0.3,1.6c11.4,70.5,70.1,82,134.6,58.3c-10-8-28.1-22.8-31-26.1%0A%09%09%09%09C1315,2147.7,1321.1,2139.9,1331.3,2151z" class="st10"></path>%0A%09%09%09<path d="M1433.5,1969.4c0,0-146,112.4-218.2,149.3" class="st11"></path>%0A%09%09%09<path d="M1396.4,2051c0,0-33.9,4.5-68.8-3.9" class="st11"></path>%0A%09%09%09<path d="M1316.2,1996.6c0,0-20.5,49.4-10.8,65.9" class="st11"></path>%0A%09%09%09<path d="M1352,2122.6c0,0-59.6-20.8-79-38.4" class="st11"></path>%0A%09%09%09<path d="M1216.4,2052.4c0,0-4.7,37.9,18.4,55.6" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M882.7,2066.4c10.6,1.3,21,2.9,31.1,4.8c13.6,13.1,30.4,35.2,30.3,62.7c-1.8,23.8,15.4,19.7,16.3,10%0A%09%09%09%09c0.7-7-2.6-43-4.5-62.6c108.1,32.2,164.1,103.7,86.8,204.4c0,0,80.5,195.4-178.5,184.8c22.7-22.7,62.8-66.9,41.4-76.4%0A%09%09%09%09c-27.3-12.2-10,45.1-70.7,74.5c-19-1.7-39.5-4.4-61.7-8.2c-24-5.1-47.2-15.4-69.1-28.8c39.7-11.4,137-41.9,120.6-63.3%0A%09%09%09%09c-18.9-24.6-31,45.8-143.9,47.6c-21.5-15.8-41.4-33.9-58.9-52.1c37.3-6,107.4-20.1,100.5-40.6c-5.2-8.8-23.3,1.5-49.6,10.6%0A%09%09%09%09c-16.7,5.7-46.9,10.3-66.7,12.9c-38.7-43.2-62.7-81.8-62.7-81.8s30.7-35.6,77.3-76.8c23.3,3.1,68.1,9.9,76,18.1%0A%09%09%09%09c10.7,11.2,29.3,3.1,19.9-14.1c-7.3-13.2-42.1-23.8-69.1-26.7c20.4-16.6,42.9-33.2,66.6-48c31,11.1,99.6,37.5,106.2,56.3%0A%09%09%09%09c7.6,12.8,28.5,9,14.2-20.6c-10.9-22.7-68.4-42.4-95-50.5C786.1,2077.1,836.1,2060.7,882.7,2066.4z" class="st12"></path>%0A%09%09%09<path d="M593.2,2264.5c0,0,316.6-1.6,449.7,21.1" class="st13"></path>%0A%09%09%09<path d="M740.2,2197.3c0,0,46.4,26.9,77.7,70.8" class="st13"></path>%0A%09%09%09<path d="M768.3,2342.5c0,0,86.7-42.5,95.7-72.6" class="st13"></path>%0A%09%09%09<path d="M883.4,2149.7c0,0,45.4,83.2,46.7,123.9" class="st13"></path>%0A%09%09%09<path d="M958.3,2368c0,0,53.3-43.2,47.7-87.5" class="st13"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M924,1810c7.6,5.4,14.9,11,21.8,16.7c4.5,17.1,7.4,43.4-5.2,67.8c-12.3,20.5,2.9,23.7,8,15.4%0A%09%09%09%09c3.7-5.9,17.7-39.3,25.2-57.5c68.8,71.8,79.4,157.7-26.4,216.5c0,0-27.1,205.9-222.4,93.1c27.9-11.1,79.1-34.4,67-51.4%0A%09%09%09%09c-15.5-21.8-28.3,36.1-88.6,38c-13.9-9.1-28.5-19.7-43.9-32c-16.2-14.1-29.4-32.6-40.2-53.2c35.9,5.7,125,17.5,122.1-8.1%0A%09%09%09%09c-3.3-29.5-44.9,28.3-132.9-15.1c-9.4-22.6-16.5-46.7-21.7-69.8c31.6,9.6,92.2,25,96.2,4c0-9.9-18.7-8-43.2-10.4%0A%09%09%09%09c-15.5-1.6-41-9.5-57.5-15.1c-10.2-53.9-11.1-97.8-11.1-97.8s40-19.4,94.8-37.4c16.6,12,48.1,36,50.4,46.4%0A%09%09%09%09c3.2,14.2,21.3,14.5,21.8-4.6c0.4-14.7-21.6-38-41.2-51.3c23.4-6.6,48.4-12.4,73.4-16.1c18.9,22.3,59.8,73.1,56.3,92.5%0A%09%09%09%09c0,14.5,17.9,19.4,20.4-12.7c1.9-24.5-33.5-65-50.3-82.8C844.5,1781,890.6,1786.3,924,1810z" class="st10"></path>%0A%09%09%09<path d="M609.7,1870.6c0,0,245.3,125,337.8,198.4" class="st11"></path>%0A%09%09%09<path d="M754.1,1869.5c0,0,23.6,42.4,27.7,94" class="st11"></path>%0A%09%09%09<path d="M709.4,2009.9c0,0,86.4-3.2,107.1-26.3" class="st11"></path>%0A%09%09%09<path d="M886.5,1884.4c0,0-2.9,92.1-20.5,128.9" class="st11"></path>%0A%09%09%09<path d="M844.5,2108.4c0,0,60.9-17.2,76.8-58.8" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1245.1,1794.2c20.8-5.3,34.8-21,42.5-32.8c-0.2-7.2-0.7-14.6-1.4-22.1c-3.2-32.9-23.8-63.7-50.7-90.6%0A%09%09%09%09c-1.8,19.7-7.4,62.7-22.8,74.5c-20.1,15.5-26.4,2-17.9-5.6c13.2-8.1,22.1-59.9,25.4-83.2c-15-13.2-31.3-25.3-47.2-36%0A%09%09%09%09c2.2,19-0.2,44.7-9,52.2c-11.4,9.8-20.6-1.3-13.9-10.8c4.9-7,2.8-38.8,1.4-55.2c-33.1-20.3-61.3-33.5-68.7-36.8%0A%09%09%09%09c-1.2-0.6-1.9-0.9-1.9-0.9s-25.3,23.8-51.7,58.6c5.2,13,13.5,32.7,20.6,42.9c11.1,16.1,21.9,26.5,16,31.7%0A%09%09%09%09c-14.4,8.7-36.4-36.3-47-60.5c-10.9,15.5-21.4,32.5-29.9,50.2c19.7,76.5,74.9,71.1,59.3,88.7c-13.5,15.3-52.4-45-67.4-69.8%0A%09%09%09%09c-6.6,17.5-10.6,35.3-10.6,52.6c0.7,15.9,2,30.4,3.8,43.6c32.1,35.6,72.7,12.7,67.8,33.6c-3.8,16.4-43.7-2.3-64.6-13.4%0A%09%09%09%09c33.9,178.4,168.8,85.6,168.8,85.6c0.7,0.2,1.3,0.5,2,0.7c87.5,31.6,132-20.3,138.8-99.5c-14.6,5.1-41.3,14.3-46.7,15.2%0A%09%09%09%09C1232.6,1808.5,1226.7,1797.5,1245.1,1794.2z" class="st10"></path>%0A%09%09%09<path d="M1089.2,1580.6c0,0,52.5,215.2,56.8,310.2" class="st11"></path>%0A%09%09%09<path d="M1164,1667.7c0,0-12.8,36.8-41,66.6" class="st11"></path>%0A%09%09%09<path d="M1058.6,1715c0,0,46.2,50.8,70.4,51.1" class="st11"></path>%0A%09%09%09<path d="M1223.1,1755.9c0,0-55.6,47.1-86.3,55.9" class="st11"></path>%0A%09%09%09<path d="M1070,1849.3c0,0,41.4,27.9,74,15.4" class="st11"></path>%0A%09%09</g>%0A%09%09<path d="M1146.1,1890.8c0,0,14.8,158.8-25,350.6" class="st14"></path>%0A%09%09<path d="M937.7,2061.4c0,0,170.2,50.3,183.3,183.5" class="st14"></path>%0A%09%09<path d="M1029.4,2285.6c13.6-4.9,80.6-4.6,99.5,8.8" class="st14"></path>%0A%09%09<path d="M1223.3,2114.4c0,0-98.3,30.9-77.3,232.1" class="st14"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M2812.2,2216.6c0,0,60.8,180.6,68.3,350.2c-193.8,44.1-832.8-6.2-832.8-6.2%0A%09%09%09s14-297.1,80.4-332.6C2416.5,2250.4,2812.2,2216.6,2812.2,2216.6z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M2880.5,2566.9c-7.5-169.6-68.3-350.2-68.3-350.2s-395.8,33.8-684.1,11.4%0A%09%09%09c-17.2,9.2-30.9,36-41.7,70.6c61.5,25.5,298.6,104,672.8-9.3c-4.1,90.6,73.5,94.8,73.5,94.8c12.1,42.2,11.5,131.9,9.7,189.5%0A%09%09%09C2856.4,2571.7,2869.2,2569.4,2880.5,2566.9z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<path d="M2025.5,1497.7c-85.5,55.5-169,100.9-241.9,164.1c7.6,4.2,13.3,9.3,16.2,15.7%0A%09%09%09c0,0,180.9-97,314-235c-1,0.6-1.9,1.2-2.9,1.8C2081.6,1463,2054.9,1479,2025.5,1497.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2229.4,1095.4c-25.7-0.9-176.5,78.1-272.1,168.2c-95.6,90.1-340.3,323.9-337.5,369.2%0A%09%09%09c19.6,10.4,121.7,5.7,163.9,29c72.9-63.1,156.4-108.6,241.9-164.1c29.4-18.7,56.1-34.7,85.5-53.4c0.9-0.7,1.9-1.2,2.9-1.8%0A%09%09%09c13.7-14.2,26.8-28.8,39.2-43.8C2153.1,1398.7,2255.2,1096.3,2229.4,1095.4z" class="st15"></path>%0A%09%09<path d="M2771.6,1674.1c-70.5,28.9-142.4,50.7-222.4,50.7c-37.4,0-80.1,18.7-104.2,53.4%0A%09%09%09c-61.4,98.9-133.6,184.3-232.4,229.8c-32.1,14.6-74.5,15.6-110.7,1.8c-16.7,87.9-31.4,153-31.4,153s68.3,148.9,349.6,142.7%0A%09%09%09c281.3-6.2,397.1-37.2,407.5-93.1C2841.2,2157.3,2787.4,1837.7,2771.6,1674.1z M2709.5,2042.7v-2.7V2042.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2767.4,1598.2c4.1-101.3,24.8-260.6-97.2-366.1c-122-105.5-384.9-173.4-473.5-126.7l-76.5,292.8%0A%09%09%09c11.8,55.4,25.9,140.8,27.6,239.6c1.7,97.6-23.8,254.9-46,372c36.3,13.8,78.6,12.7,110.7-1.8c98.9-45.4,171-130.9,232.4-229.8%0A%09%09%09c24-34.7,66.8-53.4,104.2-53.4c80,0,151.9-21.8,222.4-50.7C2768.4,1641.5,2766.7,1615.1,2767.4,1598.2z" class="st15"></path>%0A%09%09<path d="M2357.9,1064.1c0,0-9-52.4-22.1-33.8c-13.1,18.6-10.3,92.4,9,98.6" class="st16"></path>%0A%09%09<path d="M2626.6,1195.8c5.3-16-5.3-34.7-24-34.7c-74.8,5.3-155,13.4-224.4-18.7c-23.9-11-31.4-34.7-32.8-58.9%0A%09%09%09c-12.4,46.4-71.3,284.2,13.2,332.7c71.4,40.9,184.3-8.4,256.1-105.5C2581,1285.5,2613.8,1234.5,2626.6,1195.8z" class="st16"></path>%0A%09%09<path d="M2517.2,949.8c-125.5-23.1-169.6,125.8-169.6,125.8s-0.8,2.8-2.2,7.9%0A%09%09%09c1.4,24.2,8.9,47.9,32.8,58.9c69.5,32.1,149.6,24,224.4,18.7c18.7,0,29.4,18.7,24,34.7c-12.9,38.6-45.6,89.7-12,114.9%0A%09%09%09c22.5-30.4,41-65.6,52.8-104.1C2717.1,1045.3,2621.6,969,2517.2,949.8z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2650.9,1208c2.1-1.4,41.5-29.8,53.8,4.1c10.6,31.7-40.8,91.7-77.6,80.7l-7.2-3.4" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2641.7,1253.5c0,0,22.4-60.7,39.3-38c16.9,22.7-50.4,66.6-53,66.6C2625.5,1282,2641.7,1253.5,2641.7,1253.5%0A%09%09%09z" class="st16"></path>%0A%09%09<path d="M2695.3,1256.7L2573,1608.5c0,0-4.1,73.6,8.3,89.5c-74.5,98.7-223.4,363.4-223.4,363.4%0A%09%09%09c93.1,24.8,111.9,120,92.1,155.1c108.5-97.2,400.1-407.5,406.4-575C2879.1,1534.1,2854.6,1361.8,2695.3,1256.7z" class="st15"></path>%0A%09%09<path d="M2837.6,1430.3c30.9,169.9,7.7,183.1-75,353.6%0A%09%09%09c-61.7,127.1-230.6,287.4-312.6,360.9c9.9,28.2,8.9,56.1,0,71.9c108.5-97.2,400.1-407.5,406.4-575%0A%09%09%09C2868.7,1583.2,2867.1,1505.7,2837.6,1430.3z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M2680.8,1197.5c-6.7,0-12.5,1.5-17.3,3.9c-21.5,10.5-26.4,38.8-26.4,38.8s-8.9,23.1-16.3,12.6%0A%09%09%09c-0.8-1.2-1.6-2.7-2.3-4.8c18.6-24.8,18.6-85.5,11.7-103.4c-6.9-17.9-99.3,26.2-212.3-13.8c-68.9-29.9-68.1-84.2-59.4-118%0A%09%09%09c4.5-17.6,11.1-29.6,11.1-29.6c8.7-20.6,14.7-76,34.2-70.3c40.6,11.7,106.8-29.1,164.9-24.4c49.8,4.1,97.3,36.1,128.3,67.6%0A%09%09%09c18.2,18.5,30.7,36.8,34.4,49.1C2741.5,1038.4,2700.5,1163.4,2680.8,1197.5z" class="st17"></path>%0A%09%09<path d="M2759.2,2289.4c0,0-18.6,62.6,23.2,86c41.8,23.4,50.2,8.7,50.2,8.7S2751.6,2373.8,2759.2,2289.4z" class="st9"></path>%0A%09%09<path d="M1712.9,1890.5c-52.6-85.2-72.3-184.5-63.6-284.7c-5.7,3.2-11.6,6.9-17.5,11%0A%09%09%09c0,0-40.7,64.1,46.2,255.8c-60.7,57.2-63.2,76.8-57.8,148.5c3.8,6,7.7,11.4,11.8,16.3C1628.4,1981.4,1663.8,1922.1,1712.9,1890.5z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M1827.7,1946.4c-2.8-88.2-44.1-69.6-38.6-133.1c5.5-63.4,12.4-109.6,15.9-150.3%0A%09%09%09c3.3-38.4-60.9-110.4-155.6-57.2c-8.8,100.2,10.9,199.5,63.6,284.7c-49.2,31.6-84.5,91-80.9,146.9c42.1,50.6,95,40.7,95,40.7%0A%09%09%09s40.7-51,44.8-68.3c11.7,0.7-32.4,71-32.4,71s7.6,14.2,24.1,13C1780.1,2092.5,1830.4,2034.6,1827.7,1946.4z" class="st16"></path>%0A%09%09<path d="M1679.1,1995l-15.9,55.8c0,0,23.8-50.3,29.3-72C1698.1,1957.1,1679.1,1995,1679.1,1995z" class="st18"></path>%0A%09%09<path d="M1719.7,2081.7c0.5-1.4,56.1-102.4,65.3-88.7c9.2,13.7-42,92.4-42,92.4s-5.3,3.1-3.5-4.7%0A%09%09%09c1.8-7.8,42.7-68.9,35.4-68.5c-7.4,0.5-44.1,60.7-47.8,65.7S1719.7,2081.7,1719.7,2081.7z" class="st18"></path>%0A%09%09<path d="M1686.9,2067.8c0,0,33.5-83.7,43.3-79.9c9.8,3.9-39.4,83.3-39.4,83.3L1686.9,2067.8z" class="st18"></path>%0A%09%09<path d="M1653.4,1961.3c0,0-15.7,62.3-15.2,75C1645.6,2045.3,1657.7,1960.6,1653.4,1961.3z" class="st18"></path>%0A%09%09<path d="M1761.8,2227.6c-54.2-19.3-110.3-23.2-166.4-38.7c-0.1,0-0.2-0.1-0.3-0.1c8.4,8.6,16.7,17.2,25.1,25.7%0A%09%09%09c53.2,60.7,288.8,91.2,288.8,91.2s-10.9-9.9-72.5-89.2c-8.1,3.7-16.2,7.5-24.4,11.1C1796.6,2235.3,1777.3,2233.4,1761.8,2227.6z" class="st19"></path>%0A%09%09<path d="M1267.8,1860.2c0,0,164.6,162.1,327.3,328.6c0.1,0,0.2,0.1,0.3,0.1c56.1,15.5,112.2,19.3,166.4,38.7%0A%09%09%09c15.5,5.8,34.8,7.7,50.3,0c8.2-3.6,16.4-7.4,24.4-11.1c-33.8-43.5-82.8-108-153.6-203.3%0A%09%09%09C1514.7,2038.1,1267.8,1860.2,1267.8,1860.2z" class="st20"></path>%0A%09%09<path d="M1894.6,2339.3c-53.4,8-106.9,10.7-163-2.7c-19-4.7-34.6-13.9-48.5-25.2%0A%09%09%09c15.8,36.7,102.7,87.4,133.9,82.8c31.7-4.6,303.8-96.5,339.7-99.3c35.9-2.8,272.6-59.4,293.2-78.4c6.2-5.7,10.6-21.4,10.5-40.6%0A%09%09%09c-161,58-322,87.3-483.1,141.9C1950.7,2325.9,1921.3,2334,1894.6,2339.3z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2357.9,2061.5c-149.6,34-453,200.5-549.1,192.3c0,0-60.2,7.5-96.1-8.3c-35.9-15.8-83.7-37.4-96.5-28.9%0A%09%09%09c-10.2,6.8,29.5,56.4,52.7,80.6c6,6.2,10.8,10.8,13.5,12.5c0.2,0.6,0.5,1.1,0.7,1.7c13.9,11.3,29.5,20.5,48.5,25.2%0A%09%09%09c56.1,13.4,109.5,10.7,163,2.7c26.7-5.3,56.1-13.4,82.8-21.4c161-54.5,322-83.8,483.1-141.9%0A%09%09%09C2460.3,2131.9,2436.5,2068.5,2357.9,2061.5z" class="st16"></path>%0A%09</g>%0A%09<path d="M5147.8,2758.7c3.3,42.6-104.8,129-220.1,160.2c-111.1,40.4-316.5,84.1-839.1,218.8%0A%09%09c-356.5,91.9-571.8,151.6-716.6,186.6c-191.1,46.2-259.5,49.2-368,26c-51.4-11-96.9-24.7-137.9-40%0A%09%09c-255-95.3-339.6-255.1-634.7-236.4c-200.1,12.7-322,96.2-560,42.5c-136.3-30.7-235.9-89.6-304.8-131.1%0A%09%09c0,0-186.3-112.1-344.2-301.7c-39.9-42.2-73.3-85.6-94.5-130.9l1061.8-81.6L5147.8,2758.7z" class="Graphic_x0020_Style_x0020_118"></path>%0A%09<polygon points="1909,2627.9 2329.7,2696.9 2880.5,2648.9 2839.9,2636 1902.2,2607.7 1873.4,2616.7" class="st21"></polygon>%0A%09<path d="M2902.4,2554.2c0,0,128.1,29.9,198.1,36.5c16.9,26,103.7,26.1,139.2,31.4c35.5,5.3,64.9,60.1,137.9,65%0A%09%09c73,4.9,88.9,32.2,118.2,30.1c29.2-2.1,39.1-54.7,49.7-59.9c10.6-5.2-32-38.9-10.7-45.5C3396.5,2597.2,2902.4,2554.2,2902.4,2554.2%0A%09%09z" class="st21"></path>%0A%09<path d="M3668.6,2761.4c39.6,3,90.3-36.8,169.2-23.5c88.5,14.9,307.2,32.5,354.3-1.4%0A%09%09c61.3,3.3,696.2,65.4,749.1,44.1c52.9-21.3,68-34.5,68-34.5l-1182-107.2c0,0-299.4,44.5-286.7,84.2%0A%09%09C3547.2,2749,3629,2758.4,3668.6,2761.4z" class="Graphic_x0020_Style_x0020_117"></path>%0A%09<path d="M3779.6,3218.3c-115.9-48.9-340.1-136.6-484.1-148c-201.1-15.9-340.3-109.9-337.2-157.7%0A%09%09c3.1-47.8-605.8-113-946.8-126.3c-204.7-8-676.2-112.3-330.9-291.5l-79,6.1c-81.3,57.9-200.4,165.5-77.3,230.8%0A%09%09c174.8,92.7,1373.9,95.9,1387.8,212c13.2,110.3,575.5,195.9,765.9,301.5C3710,3236.7,3743.7,3227.7,3779.6,3218.3z" class="st22"></path>%0A%09<g>%0A%09%09<path d="M4484.2,1461.7v1181h488.7v-1181H4484.2z M4939.2,2561.4h-421.4v-539.8h421.4%0A%09%09%09V2561.4z M4939.2,1982.4h-421.4v-485.5h421.4V1982.4z" class="Graphic_x0020_Style_x0020_107"></path>%0A%09%09<rect height="485.5" width="355.8" class="Graphic_x0020_Style_x0020_118" y="1496.9" x="4583.5"></rect>%0A%09%09<rect height="485.5" width="65.6" class="Graphic_x0020_Style_x0020_119" y="1496.9" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="80.1" class="Graphic_x0020_Style_x0020_119" y="2021.5" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="341.3" class="Graphic_x0020_Style_x0020_118" y="2021.5" x="4597.9"></rect>%0A%09%09<polygon points="5067.7,1559.5 4972.9,1461.7 4975.8,2765.4 5070.3,2765.4" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<polyline points="2442.7,2752.3 2386.8,2825.9 2352.6,2827.7 2416.8,2743.1 2832.6,2738.3 %0A%09%09%092839.9,2747.7" class="Graphic_x0020_Style_x0020_117"></polyline>%0A%09%09<polygon points="2832.6,2738.3 2416.8,2743.1 2352.6,2827.7 2134.5,2839.2 2105.5,2724.6 %0A%09%09%092798.5,2694.4" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="3202.8,2854.8 2364.9,2854.8 2386.8,2825.9 2442.7,2752.3 2839.9,2747.7 %0A%09%09%093134.1,2744.3" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="2839.5,2730.9 2805.3,2687.1 2112.4,2717.2 2141.4,2831.8 2359.4,2820.3 %0A%09%09%092393.7,2818.5 2449.6,2745 2846.8,2740.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09%09<polygon points="3202.8,2848.8 2364.9,2848.8 2386.8,2819.9 2442.7,2746.3 2839.9,2741.7 %0A%09%09%093134.1,2738.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3326.7,2053.5c67.2,11.8,127,45.4,188.5,75.5c-25.6-21.6-54.4-38-66.9-44.7c-69.9-65-238.4-55.8-331.3-54.5%0A%09%09%09c-56.7,0.8-107.4,28.8-147.4,65.5C3076.9,2034.1,3204.5,2033.1,3326.7,2053.5z" class="st23"></path>%0A%09%09<path d="M3390.7,2125.6c29.4,10.7,40.1,48.1,64.1,69.5c33.5,30.3,76.4,36.8,117.6,27.5c-4-13-8.3-25.7-12.8-37.7%0A%09%09%09c-7.5-20.2-25.1-39.4-44.4-55.7c-61.4-30.2-121.3-63.8-188.5-75.5c-6.7-1.1-13.5-2.2-20.2-3.1c2.5,4.5,4.8,9.1,6.8,13.8%0A%09%09%09c6.9,18.8,10.9,38,12.4,57.2C3347.5,2119.7,3369.7,2120.3,3390.7,2125.6z" class="st23"></path>%0A%09%09<path d="M3454.8,2195c-24-21.4-34.7-58.8-64.1-69.5c-21.1-5.3-43.3-5.9-65.1-4.2c6.4,84.5-36.4,169.9-95.2,228.6%0A%09%09%09c-29.4,32.1-61.4,58.8-101.5,82.8c-32.1,21.4-66.8,37.4-101.5,53.4c-41.6,14.5-81.5,4.8-119.8-10.2c3.7,32.6,11.1,70.7,27.1,85.4%0A%09%09%09c2.2,2,149.9,56.5,246.1,29.3c130.3-36.9,227.4-163.5,314.2-210.2c10.9-5.9,21.4-12.4,31.4-19.5l-0.4-14l53.6-33.2%0A%09%09%09c3.8-4.2,7.6-8.5,11.2-12.9c-4.1-26.8-10.7-53.3-18.4-78.3C3531.3,2231.8,3488.3,2225.3,3454.8,2195z" class="st24"></path>%0A%09%09<path d="M2963.9,2113.7l-74.4,244.3c3.2,19.6,7.7,41,13.7,64.4c0.8-0.5,1.1,24.3,4.3,53.6%0A%09%09%09c38.3,15.1,78.3,24.8,119.8,10.2c34.7-16,69.5-32.1,101.5-53.4c40.1-24,72.1-50.8,101.5-82.8c65-65,110.5-162.6,91.4-255.6%0A%09%09%09C3210,2135.2,3083,2108.6,2963.9,2113.7z" class="st25"></path>%0A%09%09<path d="M3321.8,2094.4c-2.1-10.2-4.9-20.2-8.6-30.2c-2-4.6-4.2-9.2-6.8-13.8c-116-16.9-235.4-12.9-336.9,44.9%0A%09%09%09l-5.6,18.4C3083,2108.6,3210,2135.2,3321.8,2094.4z" class="st26"></path>%0A%09%09<path d="M3590.8,2300.8c-3.6,4.4-7.4,8.7-11.2,12.9l12-7.5C3591.4,2304.4,3591.1,2302.6,3590.8,2300.8z" class="st9"></path>%0A%09%09<g>%0A%09%09%09<path d="M3452.4,2090.3c-50.3-112.2-85.1-243.7-193.4-309.5c-17.4-9.7-50.3-13.5-71.6,3.9%0A%09%09%09%09c-34.5,27-36.4,68-35.6,109.5c51.1,42.2,96.7,74.2,118.4,75.2c65,3,117,150.1,192.8,215.4c35.5,30.6,78.2,23.7,113.6,7.7%0A%09%09%09%09c-19.8-3.7-39.3-11.4-54.6-19C3487.2,2158,3467.9,2123.1,3452.4,2090.3z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09%09<path d="M3489,1994.5c-13.8-96.5-49-197.2-111.1-242.1c-62.1-44.9-38.1-160-114.8-199.7%0A%09%09%09%09c-190.3-102-287.5,4.8-333,55.2c-45.5,50.3-4.1,77.2-4.1,77.2s123.9,124.8,225.9,209c-0.9-41.4,1-82.4,35.6-109.5%0A%09%09%09%09c21.3-17.4,54.2-13.5,71.6-3.9c108.3,65.8,143.1,197.3,193.4,309.5c15.5,32.9,34.8,67.7,69.6,83.2c15.3,7.7,34.8,15.3,54.6,19%0A%09%09%09%09c40.3-18.2,71.2-48.2,71.2-48.2S3502.8,2091.1,3489,1994.5z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09%09<path d="M3182.3,2144.3c-13.4-74.8,34.7-189.7-58.8-221.7c-16-61.4,5.3-128.2-37.4-184.3%0A%09%09%09%09c-33.7-46.4-75.8-81.1-127.5-97.6c-15.4,4-42.2,14-46.3,24.6c-13.8,35.6-24.4,108.3-3.6,195.1c19.9,94,53.6,191.2,151.7,162.7%0A%09%09%09%09c51,68.9,51,103.4,48.3,128.2c25.3,30.5,60,37.2,94.1,32.1C3192.8,2173.6,3185.5,2160.8,3182.3,2144.3z" class="st16"></path>%0A%09%09%09<path d="M3314.2,2124.9c-5.5-129.6-75.8-207-93.8-211.7c30.3-46.1,33.1-82-6.9-106.8%0A%09%09%09%09c-40-24.8-57.9,67.6-57.9,67.6s-19.3,18-16-3.3c17.7-114.7-62.5-214-170.5-231.9c-1.2-0.2-5.1,0.5-10.4,1.9%0A%09%09%09%09c51.7,16.5,93.8,51.2,127.5,97.6c42.7,56.1,21.4,122.9,37.4,184.3c93.5,32.1,45.4,146.9,58.8,221.7c3.1,16.5,10.5,29.3,20.4,38.9%0A%09%09%09%09C3250.3,2176,3296.5,2145.8,3314.2,2124.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M2969,1635.8c0,0,75.2,27.2,72.4,70.7c-2.8,43.5-9.8,77.5,56.3,98.1c-31.6-35.6-34.2-44-26.9-86.3%0A%09%09%09%09S3035.8,1587.8,2969,1635.8z" class="st17"></path>%0A%09%09%09<path d="M2789.6,2288.5c-77.5,101.5-203,106.9-323.3,128.2c-27.7,5.9-43.7,28.1-64.3,43.4%0A%09%09%09%09c7.2,13.8,19.1,27.9,28,39.8c0.5-0.1,1.1-0.3,1.6-0.4c159.5-16.7,359.4-29.1,470.9-150.7l-0.1-16l61-218.3%0A%09%09%09%09c-27.4,9-56.1,12.8-77.6,32.4C2837.7,2184.3,2824.3,2243.1,2789.6,2288.5z" class="st25"></path>%0A%09%09%09<path d="M3017.4,2050.7c-17.9,4.3-35.5,9.7-52.8,16.1c-58.6,21.8-113.1,55-149.7,106.6%0A%09%09%09%09c-16.4,23.2-29.7,48.3-42.2,73.7c-5.8,11.7-11.7,21.5-19.5,31.9c-8.1,10.8-17.8,20.2-27.8,29.2c-21.9,19.5-47.7,34.4-75.4,44.1%0A%09%09%09%09c-33.1,11.6-67.9,16.1-101.5,25.4c-82.7,23-147.1,41.1-152.6,60.5c-0.2,7,2.3,14.5,6.2,22c20.6-15.4,36.6-37.5,64.3-43.4%0A%09%09%09%09c120.2-21.4,245.8-26.7,323.3-128.2c34.7-45.4,48.1-104.2,96.2-141.6c21.5-19.6,50.2-23.4,77.6-32.4l5.1-18.3%0A%09%09%09%09c11-10.8,16.7-15,29.5-24.1c14.7-10.5,30.5-19.7,47.1-26.7c0.1-0.2,0.2-0.4,0.3-0.6C3036,2046.5,3026.6,2048.4,3017.4,2050.7z" class="st23"></path>%0A%09%09%09<path d="M3045.4,2044.9c-0.1,0.2-0.2,0.4-0.3,0.6c0.7-0.3,1.4-0.6,2.1-0.9%0A%09%09%09%09C3046.6,2044.7,3046,2044.8,3045.4,2044.9z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09%09<path d="M2431.6,2499.6c-0.5,0.1-1.1,0.3-1.6,0.4c0.9,1.2,1.8,2.4,2.6,3.6c10.8,15.3,7.8,45,49.1,42.6%0A%09%09%09%09c30.8-6,230-18.7,273.3-29.7c32-8.2,82.2-26.3,148.2-94.1l-0.7-73.5C2791,2470.5,2591.1,2482.9,2431.6,2499.6z" class="st24"></path>%0A%09%09%09<path d="M2398.2,2439.8c0,0,40.7-31.7,69.6,4.1c29,35.9,49.3,96,29,100.7c-20.4,4.6-65.8,2.1-87-35.2%0A%09%09%09%09C2388.5,2472.2,2387.5,2454.3,2398.2,2439.8z" class="st27"></path>%0A%09%09%09<path d="M3350.7,1877.1c18.7-58.6,71.9-104,69.5-165.2c-4.1,1.2-8.2,5.1-10.8,12.5c-7.6,21.4-71.4,103.8-71.4,103.8%0A%09%09%09%09s0,0,3.8-22.1s1.4-35.5-9.7-36.9c-11-1.4-18.3,10.3-18.3,10.3c1-31-13.4-29.3-23.4-27.6c-10,1.7-9.3,51.4-10,64.8%0A%09%09%09%09c-0.7,13.4-15.2,26.9-20-4.1c-2.8-35.9-40.7-71.7-51.7-66.9c-11,4.8,14.8,62,13.1,94.5c-1.7,32.4-20,100.7-5.5,148.2%0A%09%09%09%09c14.5,47.6-3.4,102-3.4,102l85.3,21.2c4.2-67.5,4.5-134.6,44.5-197.1C3350.7,1903.8,3348,1890.5,3350.7,1877.1z" class="st16"></path>%0A%09%09%09<path d="M3420.1,1711.9c2.4,61.2-50.8,106.6-69.5,165.2c-2.7,13.4,0,26.7-8,37.4%0A%09%09%09%09c-40,62.5-40.2,129.7-44.5,197.1l22.9,5.7c0,0-3.5-115.8,17.2-141.3c20.7-25.5,15.2-80,25.3-108.9c10.1-29,71.3-117.9,72-137.2%0A%09%09%09%09C3436,1717.3,3427.9,1709.7,3420.1,1711.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M3305.2,1839.7c-0.4,0.9,11-56.8,9-67.2c4.3,1.6,4.3,1.6,4.3,1.6S3312.8,1824.1,3305.2,1839.7z" class="st9"></path>%0A%09%09%09<g>%0A%09%09%09%09<polygon points="2369.1,2558.8 2880.5,2623.2 2325,2668.2 1891.1,2604.1" class="Graphic_x0020_Style_x0020_115"></polygon>%0A%09%09%09%09<polygon points="2264.3,2566.5 2626.8,2624.8 2334.4,2648.9 2170.4,2611.3" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M2421.8,2452.1c-5.6-0.2-22.6,8.6-22.6,8.6s-13.8-44.1-80.7-43.4s-64.8,65.5-64.8,65.5s5.5,77.2,26.9,93.1%0A%09%09%09%09%09c21.4,15.9,99.3,4.1,102.4,0c3.1-4.1,45.3-6.9,66.9-30.3c21.6-23.4,33.5-24.4,33.5-24.4S2463.5,2453.5,2421.8,2452.1z" class="st16"></path>%0A%09%09%09%09<path d="M2319.3,2460c0,0-45.5,32.4-15.2,90.3c-6.8,0.6-6.8,0.6-6.8,0.6%0A%09%09%09%09%09S2262.7,2493.1,2319.3,2460z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09%09%09<path d="M2376.8,2552.2c0,0-56.9-11.2-43.1-33.6c13.8-22.4,45.5-15.9,46.9-24.5%0A%09%09%09%09%09c1.4-8.6-15.9-23.8-21.7-14.5c-5.9,9.3-15.5,25.2-15.5,25.2s-24.1,6.2-17.9,23.1c6.2,16.9,33.8,15.5,6.2,16.9%0A%09%09%09%09%09c-27.6,1.4-39.6,0-39.6,0s-7.4,36.2,7.3,37.5c14.7,1.4,61.6,6.9,105-10.3c43.4-17.2,43.8-24.7,43.8-24.7%0A%09%09%09%09%09S2401.3,2559.2,2376.8,2552.2z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09%09<polygon points="2331,2682 2848.1,2642 2880.5,2623.2 2322,2668.2 1885.6,2604.1 %0A%09%09%09%09%091893.9,2613.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M1784.9,2001.5l427.1,0.5l15.9,3c18.3,3.5,31.9,18.7,33.5,37.3c9.9,120.2,38.5,538.8,42.7,616.9%0A%09%09%09%09%09c0.3,6.5-11.2,15-17.7,14.2l-444.6-65.8L1784.9,2001.5z" class="st28"></path>%0A%09%09%09%09<path d="M1794.6,1993.3l411.5,8.2c15.8,0.3,28.8,12.5,30.1,28.3c10.4,126.7,52.8,644.5,49.2,643.3%0A%09%09%09%09%09c-3.6-1.2-348.6-51.6-443.5-65.4c-14.1-2.1-24.9-13.4-26.2-27.6l-52.4-553C1761.5,2008.7,1776.2,1992.9,1794.6,1993.3z" class="st29"></path>%0A%09%09%09</g>%0A%09%09%09<path d="M3465.5,2285.9c-5.8-29.1-28.6-54-57-68.5c9.3,57-21.2,85.5-21.2,85.5c-6.8,3.4-40.2,78.1-48.3,71.7%0A%09%09%09%09c-4.1-3.3-5.8-14.7-6.3-29.4c-17.3-67.3-4-136.5-11.5-203.5c-2.3-18.1-0.7-36.2-6.7-52.6c-6.5-5.5-15.7-10.3-27.9-14.4%0A%09%09%09%09c0.8,120.3-17.7,240.4,10.5,355.6c8,37.4,77.5,16,112.2-8C3452.2,2392.7,3478.9,2339.3,3465.5,2285.9z" class="st24"></path>%0A%09%09%09<path d="M3332.7,2345.1c-0.9-27.1,2.3-65.1,1.7-83.5c-0.9-28.4,4.6-84.2-6.4-147.7c-0.5-9.3-4.6-17.6-13.4-24.9%0A%09%09%09%09c5.9,16.5,4.4,34.5,6.7,52.6C3328.7,2208.5,3315.4,2277.8,3332.7,2345.1z" class="st27"></path>%0A%09%09%09<path d="M3591.6,2306.2l-189.3-113.8c2.9,8.8,4.9,17.1,6.2,24.9c28.4,14.5,51.2,39.4,57,68.5%0A%09%09%09%09c4.9,19.6,4.4,39.1-0.3,57.5c36.8,33.3,76.9,62.3,118.5,89.3C3596.9,2393.5,3597.6,2349.6,3591.6,2306.2z" class="st24"></path>%0A%09%09%09<path d="M3226.7,2062.8c-4.2-0.5-8.6-0.9-13.2-1.3c-89.6,102-96.5,485.4-63.4,524c10.1,11.8,36.5,17.9,71.6,18.6%0A%09%09%09%09c-2.7-1.6-5.1-3.5-7.3-5.6C3080,2450.9,3137.9,2222.8,3226.7,2062.8z" class="st23"></path>%0A%09%09%09<path d="M3465.3,2343.4c-8.1,31.8-28.7,60.1-55.8,78.8c-34.7,24-104.2,45.4-112.2,8%0A%09%09%09%09c-28.2-115.2-9.7-235.3-10.5-355.6c-15.1-5.1-34.8-9.1-60-11.8c-88.8,160-146.7,388.1-12.3,535.7c2.1,2.1,4.6,4,7.3,5.6%0A%09%09%09%09c79.8,1.5,205-25.2,288.3-77.9c38.4-24.3,61.5-56.9,73.7-93.5C3542.2,2405.6,3502.1,2376.6,3465.3,2343.4z" class="st25"></path>%0A%09%09</g>%0A%09%09<path d="M3123.6,1922.5c3.2,5.9-36.5,92.1-63.1,100.4c35,56.6,28,41.3,37.6,63.1c63.2-44,78.1-61.9,78.3-92.2%0A%09%09%09C3177.1,1914.4,3123.6,1922.5,3123.6,1922.5z" class="st30"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3972.8,2436.5c-19.3-100.6-1.9-197.3,30.9-292.1c1.9-7.7,9.7-13.5,11.6-23.2%0A%09%09%09c13.5-58,34.8-108.3,58-160.5c1.9-7.7,1.9-15.5,3.9-23.2c1.5-4.4,6.3-7.7,9.3-11.5c-108.6,18.8-247.9,49.9-313.3,64.9%0A%09%09%09c22.2,33.7,40.9,69.3,52.5,109.1c3.9,7.7,13.5,13.5,17.4,21.3c3.9,5.8,0,11.6,3.9,17.4c11.6,15.5,21.3,29,25.1,48.4%0A%09%09%09c1.9,3.9,7.7,5.8,7.7,9.7c0,94.8,7.7,189.6,0,284.3c-6.7,72.9-22.6,143.8-37.3,214.7c84.9-0.2,183-1.6,281.4-2.7%0A%09%09%09c-52.2-58.4-91.1-128-129.9-198.4C3984.4,2475.2,3976.6,2455.8,3972.8,2436.5z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M4194.9,2483.6c82.8-18.7,163-5.3,237.8,48.1c8,8,26.7,5.3,37.4,0%0A%09%09%09c58.6-34.6,128.4-61.3,198-68.7c-150.8-225.4-393-546.7-446.5-551.9c-23.2-2.2-74.3,4.4-135,14.8c-3.1,3.9-7.9,7.1-9.3,11.5%0A%09%09%09c-1.9,7.7-1.9,15.5-3.9,23.2c-23.2,52.2-44.5,102.5-58,160.5c-1.9,9.7-9.7,15.5-11.6,23.2c-32.9,94.8-50.3,191.5-30.9,292.1%0A%09%09%09c3.3,16.6,9.5,33.3,17.3,49.9C4050.6,2508.5,4130.6,2499.3,4194.9,2483.6z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4470.1,2531.7c-10.7,5.3-29.4,8-37.4,0c-74.8-53.4-155-66.8-237.8-48.1%0A%09%09%09c-64.3,15.7-144.3,24.9-204.8,2.8c1.3,2.7,2.6,5.4,3.9,8.1c38.9,70.4,77.7,140.1,129.9,198.4c233-2.6,467.2-3.9,529.1,13.9%0A%09%09%09c110.3,31.7,131,20.7,137.9-30.3c2.3-16.7-49.5-103.7-123-213.5C4598.5,2470.4,4528.6,2497,4470.1,2531.7z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3879.9,2196.6c0-3.9-5.8-5.8-7.7-9.7c-3.9-19.3-13.5-32.9-25.1-48.4c-3.9-5.8,0-11.6-3.9-17.4%0A%09%09%09c-3.9-7.7-13.5-13.5-17.4-21.3c-11.6-39.8-30.4-75.4-52.5-109.1c-23.2,5.3-37.1,8.6-37.1,8.6s-76.6,50.8-73.5,108.1%0A%09%09%09c3.1,57.3,7.7,545.5-0.1,585.4c44.9,2.2,107.7,2.8,180,2.6c14.8-70.9,30.6-141.8,37.3-214.7%0A%09%09%09C3887.6,2386.2,3879.9,2291.4,3879.9,2196.6z" class="st31"></path>%0A%09%09<path d="M3622.6,2308.8c7.7-30.9,11.6-63.8,40.6-85.1c3.9-3.9,1.9-9.7,5.8-13.5c21.7-17.1,39.8-41.6,63-53.7%0A%09%09%09c-6.4-58.7-17.6-101.8-29.1-95c-30.3,17.9-474.3,322.7-497.1,369.5s-42.1,123.7,13.1,152.8c0,0-20.7-133.5,59.3-157%0A%09%09%09c80-23.4,155.8,45.5,157.2,51c0.7,2.8,16.3,25.9,31.7,46.8c24.5-12.2,48.8-24.7,72.3-41.8%0A%09%09%09C3593.6,2440.4,3609.1,2376.5,3622.6,2308.8z" class="st32"></path>%0A%09%09<path d="M3669.1,2210.2c-3.9,3.9-1.9,9.7-5.8,13.5c-29,21.3-32.9,54.2-40.6,85.1c-13.5,67.7-29,131.5-83.2,174.1%0A%09%09%09c-23.4,17.1-47.7,29.6-72.3,41.8c14.9,20.3,29.7,38.6,30.4,34.1c1.4-9.2,146.2-90.6,205.5-136.8c36.9-28.8,39.6-168.5,29.1-265.5%0A%09%09%09C3708.8,2168.5,3690.8,2193.1,3669.1,2210.2z" class="st31"></path>%0A%09%09<path d="M3252.8,2424.8c-14.7,6.4-25.2,15.5-32.7,25.8c33.5,31.1,84.8,42,119.8,22.2c22.9-10.4,45.8-17.6,64.9-32.9%0A%09%09%09c-0.9-0.6-1.9-1.3-3.1-2.1C3385.9,2421.4,3321.1,2395.2,3252.8,2424.8z" class="st16"></path>%0A%09%09<path d="M3220.1,2450.6c-5.4,7.5-9.3,15.6-11.9,23.8c11.3,29.8,34.2,55.9,59.6,75.9%0A%09%09%09c39.9,36.8,89.5,48.9,140.2,47.1l4-152.6c0,0,0,0-7.2-4.8c-19.1,15.3-42,22.5-64.9,32.9%0A%09%09%09C3304.9,2492.6,3253.6,2481.7,3220.1,2450.6z" class="Graphic_x0020_Style_x0020_113"></path>%0A%09%09<path d="M3267.8,2550.4c-25.4-20-48.3-46.1-59.6-75.9c-0.6,1.9-1.2,3.9-1.7,5.8%0A%09%09%09c-3.2,12.6-4,25-3.7,35.5c0.4,15.7,3.1,26.9,3.1,26.9s73.1,121.3,186.1,122.7c14.5-13.8,14.5-13.8,14.5-13.8l0.5-17.8l0.7-24.6%0A%09%09%09l0.3-11.9C3357.3,2599.3,3307.7,2587.2,3267.8,2550.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3235.6,2602c0,0,20.6,1.7,15.5-3.8c-16.6-18-47.6-98.2-21.8-124.8c29.7-30.7,122.5-41.5,160.6-26.4%0A%09%09%09c-3.3-14.6-3.3-14.6-3.3-14.6s-76.5-31-120-13.1c-43.4,17.9-62.2,9.2-63.8,77c-1.7,67.8,9.5,101.6,23.2,107.8%0A%09%09%09C3239.7,2610.3,3235.6,2602,3235.6,2602z" class="st33"></path>%0A%09%09<path d="M3226,2604.1c0,0-34.8-98.6-3.2-143.2s183.6-37.2,209.7,22.5c15.9-4.6,15.9-4.6,15.9-4.6%0A%09%09%09s51.4-54.7-36.3-81.6c-87.8-26.9-216.5,9.7-228.4,92.5S3199.4,2597,3226,2604.1z" class="st20"></path>%0A%09%09<path d="M3340,2529c32.1-10.7,40.1-29.4,53.4-58.8c2.7-5.3,21.4,2.7,32.1-5.3%0A%09%09%09c34.7-32.1,80.1-48.1,120.2-32.1c9,3,17.6,7.1,26,11.5c-6.3-16.9-12.8-29.1-12.8-29.1s-3-1.5-7.6-3.6%0A%09%09%09c-11.7-5.4-33.9-14.8-44.8-14.3c-15.2,0.7-29.9,22.1-29.9,22.1s-32.8-9-49.4,0c-16.5,9-18.5,35.5-18.5,35.5s-15.9-1.7-33.9,7.3%0A%09%09%09s-6.2,37.2-6.2,37.2s-15.2-12.4-42.1,6.2c-20.5,12.6-13.4,51.1-1.3,85.4C3326.1,2565.1,3319.5,2533.5,3340,2529z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M3545.7,2432.8c-40.1-16-85.5,0-120.2,32.1c-10.7,8-29.4,0-32.1,5.3c-13.4,29.4-21.4,48.1-53.4,58.8%0A%09%09%09c-20.4,4.5-13.9,36.1-14.7,61.9c4.6,13,9.9,25.4,14.7,35.5c6.7,14.3,12.4,24,13.6,24.5c32.4,14.5,39.8-12.1,39.8-12.1%0A%09%09%09s7.4,27.2,34.4,26.6c27-0.6,13.8-43.4,13.8-43.4s36.8,33.1,54,29c17.2-4.1,4.1-42.1,4.1-42.1s23.4,27.6,48.3,21.4%0A%09%09%09c24.8-6.2-10.3-94-10.3-94s24.1,13.3,41.4-12.2c10.5-21.9,1.8-55.6-7.2-79.8C3563.2,2439.9,3554.7,2435.8,3545.7,2432.8z" class="st16"></path>%0A%09%09<path d="M3855.6,1746.2c-34.7-66.8-53.4-157.6-120.2-181.7c-70.3-26.7-149.3,8.2-227.2-3%0A%09%09%09c-21.3,43.8-31,95-34.5,140.3c-7.9,103.1,20.2,204.3,82.4,287.5c9.2,12.3,20.1,15.4,35.2,15.3c13.5-0.1,92.2-26.6,94.3-24.1%0A%09%09%09c0,0,89.2,104.8,138.8,155.4c3.9,4,7.6,7.6,11.1,10.9c41,38.7,55.1,33.2,55.1,33.2s66.2-16.5,80-60.7c13.8-44.1,68-261.3,68-261.3%0A%09%09%09s-2.5-6.5-5.6-15.8C3959.1,1845.2,3889.3,1813.7,3855.6,1746.2z" class="st16"></path>%0A%09%09<path d="M4022,1797.7c-2.8-24.8,81.8-357.6-168.2-366.8c-89.9-3.3-189,3.2-269.9,46.9%0A%09%09%09c-34.4,18.6-58.8,48.8-75.7,83.7c77.9,11.2,156.9-23.7,227.2,3c66.8,24,85.5,114.9,120.2,181.7c33.8,67.5,103.5,99,177.4,96.1%0A%09%09%09c-1.2-3.7-2.5-7.7-3.8-12.1C4026.1,1819.7,4023.1,1807.8,4022,1797.7z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4069.8,1569.7c-23-40.4-27.6-96.5-46-109.4c-0.8-25.3-12.8-44.3-33.2-58.9%0A%09%09%09c-26.3-18.9-66.6-30.6-114.7-39.4c-85.5-15.6-326.4,68.3-388.9,41.2c-46.2-20-44.1,85.7-44.1,85.7s-0.6,8.6,2.7,18.9%0A%09%09%09c0.8,2.6,1.9,5.3,3.4,8c6.8,13.1,21.3,26,51.9,25.5c61.6-0.9,148-35.8,156.3-17.5c8.3,18.4,0.9,143.8,12.9,163.8%0A%09%09%09c4.5,0.7,8.3,1.3,11.5,1.8c16,2.6,16,2.6,16,2.6s1.8-85.5,55.2-84.1c18.2,0.5,37.2,5.3,55.1,14.9c34.5,18.6,64.6,55.2,75.4,113.4%0A%09%09%09c16.6,88.2,147.1,77.2,147.1,77.2s2.3-7.5,5.9-19.9c5.1-17.8,12.8-45.6,20-75.9C4070,1659,4082.1,1591.2,4069.8,1569.7z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<polygon points="3720.5,1573.4 3453,1652.4 3452.3,1641 3736.1,1563.3" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09%09<path d="M3661.3,2544.8c-2.7-1-5.3-2.4-7.9-4.1c4.4,48.9,8.2,80.7,8.2,80.7l146.2-7.8%0A%09%09%09c0,0,5.8-43,13.8-101.1c-7.6,1.5-15.3,3.9-23,7.2C3756.1,2539,3707.8,2556.4,3661.3,2544.8z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3847.5,2157.6c-42.9-65.3-126-117.2-122.4-138.8c-110.1-35.4-87.2,349.7-71.6,521.9%0A%09%09%09c2.6,1.7,5.2,3.1,7.9,4.1c46.4,11.6,94.8-5.8,137.3-25.1c7.7-3.3,15.3-5.7,23-7.2c11.1-80.9,26.4-191.1,35.8-255.6%0A%09%09%09C3859.9,2240.5,3857.5,2172.8,3847.5,2157.6z" class="st32"></path>%0A%09%09<path d="M4242.6,2242.6c0,0,36.8,108.5,119.5,116.7c-13.8,52.4,206.2,183.4,206.2,183.4l9.8-23.8l-239.8-248.8%0A%09%09%09L4242.6,2242.6z" class="st34"></path>%0A%09%09<path d="M3298.6,2799c-8.5,5.6-14.3,9.3-14.8,9.1c-2.1-0.7-22.1,19.3-22.1,19.3%0A%09%09%09s33.8,2.8,36.5,0c0.5-0.5,4.9-3.2,11.4-7C3308.5,2811.6,3304.6,2802.8,3298.6,2799z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<path d="M3379,2744c0,0-53.6,37.3-80.3,55c3.9,2.5,6.9,7,8.8,12.3l95.8-56.5%0A%09%09%09C3402.9,2747.5,3396.9,2742.8,3379,2744z" class="Graphic_x0020_Style_x0020_112"></path>%0A%09%09<path d="M3307.5,2811.4c1.1,2.9,1.8,6,2.3,9.1c26.5-15.5,89.9-50.9,89.9-50.9%0A%09%09%09c2.2-5.4,3.8-10.5,3.6-14.7L3307.5,2811.4z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M4750.6,2686.6c-104.2,18.7-203,5.3-304.6,0c-109.5-2.7-227.1-26.7-334,16%0A%09%09%09c-80.1,29.4-171-21.4-261.8-2.7c-64.6,14.9-126.9,34.4-189.1,52.1c1.8,0.1,3.8,0.2,6,0.2c37.2,0,155.8-45.5,257.9-29%0A%09%09%09s212.4,30.3,251-6.9c96.5,5.5,601.2,41.4,650.9,26.2c10.9-23.2,13.8-50.2,10.6-77.7C4808.9,2673.1,4780.3,2680.7,4750.6,2686.6z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4112.1,2702.6c106.9-42.7,224.4-18.7,334-16c101.5,5.3,200.4,18.7,304.6,0c29.7-5.9,58.4-13.5,86.9-21.6%0A%09%09%09c-9.7-83.3-75.3-171.2-141.6-173.3c-45.6,12.2-90.4,22.8-134.1,31.9c-331.1,69.3-596.5,55.3-657.4,37%0A%09%09%09c-68.9-20.7-170.7,19.4-243.8,51.1c-73.1,31.7-122,56.6-95.8,74.6c-0.8,1.2-5,6.1-5.1,9.5c-0.1,3.5-5.8,5.5-8.7,8.7%0A%09%09%09c-8.6,9.5-7.7,26.2,7.4,27.1c1.8,0.1,3.6,0.3,5.3,0.6c20,3.4,31.7,17.6,60.9,4.9c30.3-4.1,30.3-4.1,30.3-4.1s-21.9,17.1,6.4,19.1%0A%09%09%09c62.2-17.7,124.5-37.2,189.1-52.1C3941.1,2681.3,4031.9,2732,4112.1,2702.6z" class="st16"></path>%0A%09%09<path d="M5017.7,2587.8c-2.7-5.3,2.7-13.4,0-18.7c-37.4-72.1-72.1-141.6-130.9-195%0A%09%09%09c-45.4-42.7-96.2-77.5-141.6-120.2c-64.1-53.4-101.5-125.6-173.7-165.6c-80.1-45.4-157.6-88.2-243.1-120.2%0A%09%09%09c-56.1-18.7-114.9-8-173.7-10.7c-8,0-13.4-8-18.7-8c-26.9-3.6-52.7-12-77.2-22.8l-4.1,6.3l-47.1,153.2l241.3,154.8%0A%09%09%09c0.7,4.9,2.5,10,5.3,15.1c70.7-21.4,153.8-12.5,210.4,35.3c58.8,50.8,77.5,133.6,138.9,176.3c50.8,37.4,117.6,48.1,155,101.5%0A%09%09%09c26.3,32.9,23.8,78.3-4.4,111.2c16.3,20,31.9,41.7,46.4,65.4c43.6,17.7,172.5,20.1,226.6-52.4%0A%09%09%09C5038.9,2660.1,5036.7,2621.8,5017.7,2587.8z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4666.9,2134.6c-215.1-230.3-311.2-220.2-404.5-226.6%0A%09%09%09c-58.4-29.4-93.8-48.3-120.4-4.6c-12.4-21.6-57-17.5-57-17.5l-26.1,40.5c24.5,10.8,50.2,19.2,77.2,22.8c5.3,0,10.7,8,18.7,8%0A%09%09%09c58.8,2.7,117.6-8,173.7,10.7c85.5,32.1,163,74.8,243.1,120.2c72.1,40.1,109.5,112.2,173.7,165.6c45.4,42.7,96.2,77.5,141.6,120.2%0A%09%09%09c58.8,53.4,93.5,122.9,130.9,195c2.7,5.3-2.7,13.4,0,18.7c18.9,34.1,21.2,72.4,9.5,105.5c14.4-19.2,23.5-43.8,24.4-74.7%0A%09%09%09C5055.7,2471,4882,2364.8,4666.9,2134.6z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M4758.6,2569.1c-37.4-53.4-104.2-64.1-155-101.5%0A%09%09%09c-61.4-42.7-80.1-125.6-138.9-176.3c-56.5-47.8-139.6-56.7-210.4-35.3c25.1,47.2,127.1,102.1,127.1,102.1s20.7,44.1,55.2,84.1%0A%09%09%09c30.5,35.4,193.5,85.8,317.6,238.2C4782.4,2647.3,4784.9,2601.9,4758.6,2569.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3715.8,2015.7l-33.4,5.8c0,0,86.9,194.9,81.4,227c99.3-46.4,98.4-56.1,98.4-56.1%0A%09%09%09l-7.4-38.1C3852.2,2113.2,3774.4,2063.6,3715.8,2015.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M4035.3,1825.7c0,0-127.3,345.2-108.9,400.3c60.7-14.7,108.9,4.6,108.9,4.6%0A%09%09%09s-11.5-222.5,55.6-345.6C4061.5,1845.5,4035.3,1825.7,4035.3,1825.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M3654.8,2733l130-51c-71.4,10.3-156.4,53.6-160.3,55.2C3633.4,2740.2,3654.8,2733,3654.8,2733z" class="st18"></path>%0A%09%09<path d="M3576.1,2735.8c0,0,55.9-47.6,182.8-76.5c-16.5-5.5-133.9,28.9-190.4,74.1%0A%09%09%09C3573.4,2738.5,3576.1,2735.8,3576.1,2735.8z" class="st18"></path>%0A%09%09<path d="M3558,2699.3c0,0,110.1-70.4,179-82.8c-35.9-12.4-176.2,71.6-176.2,71.6L3558,2699.3z" class="st18"></path>%0A%09%09<path d="M3834.5,1885.6c0,0-102,90.4-148.9,95c48.7,53.3,78.2,78.6,99.3,89.2%0A%09%09%09c0-99.3,91.9-168.2,83.7-237.2c-8.3-68.9-6.4-64.3-6.4-64.3S3863,1851.2,3834.5,1885.6z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M4897.2,2712.3c-24.8-45.5-111.6-233-210.3-220.6c0,0-65.2,9.2-99.4,20.8c-1.1,12.9,9.7,22,21.7,26.5%0A%09%09%09c104.1,32,201.6,111.9,214.5,216.4c41.8,6.1,86.6,20.3,88.3-2.4C4912.3,2747.3,4901.4,2720.1,4897.2,2712.3z" class="st20"></path>%0A%09%09<path d="M4609.1,2539c-12-4.5-22.8-13.6-21.7-26.5c-9.2,3.1-16.2,6.4-19,9.7c149.6,89.2,160.1,153.2,228.5,227.8%0A%09%09%09c9,2.3,18,4.1,26.7,5.4C4810.8,2650.9,4713.3,2571,4609.1,2539z" class="st35"></path>%0A%09%09<path d="M3389.9,2642.1c0,0-40.9-81.4-37.1-99.3c3.8-17.9-3.1-35.9,15.9-43.4c-6.2,13.8-11,29-10,45.5%0A%09%09%09c1,16.5,34.6,94,34.6,94L3389.9,2642.1z" class="st18"></path>%0A%09%09<path d="M3407,2460.9c0,0-9.2,34.9-1.9,66.6c7.4,31.7,30.8,93.9,37,97.1c6.2,3.2,6.2,3.2,6.2,3.2%0A%09%09%09S3398.3,2507.3,3407,2460.9z" class="st18"></path>%0A%09%09<path d="M3472.9,2418.4c0,0-17,55.4-15.2,76c1.8,20.7,41.7,120.8,41.7,120.8l2.9-3.5%0A%09%09%09c0,0-42.5-108.1-31.7-146c10.9-37.9,9.3-50.7,9.3-50.7L3472.9,2418.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3537.6,2454.9c0,0-9.2,72.2,0,81.4s20.4,7.3,20.4,7.3S3539.9,2483.9,3537.6,2454.9z" class="st18"></path>%0A%09%09<path d="M3543.3,2484.1c0,0-7.6,38.4-5.8,52.2c0.7,5.4,2.5,11.2,5.6,16.5c7.7,6.5,16.6,9.4,25.4,1.7%0A%09%09%09c15.6-12.5,17.4-32.6,17.5-52.1c-0.7-2.3-1.4-4.6-2.2-7" class="st16"></path>%0A%09%09<g>%0A%09%09%09<polygon points="3466.8,1624.2 3466.8,1624.2 3466.8,1624.2" class="st9"></polygon>%0A%09%09%09<path d="M3516.4,1675.9c-7.1-21.6-14.1-34.6-21-42.6c-3.4-4-6.9-6.7-10.3-8.4%0A%09%09%09%09c-3.4-1.7-6.8-2.3-9.8-2.3c-3.4,0-6.3,0.8-8.6,1.5c-4.1,1.3-8,4.5-10.7,9.6c-2.7,5.1-4.4,12.1-4.4,21.5%0A%09%09%09%09c0,12.2,2.8,28.6,10.1,50.4c6.4,19,13.3,30.6,20.3,37.6c3.5,3.5,7.1,5.8,10.5,7.3c3.4,1.4,6.8,2,9.7,2c2.7,0,5.1-0.4,7.1-0.9%0A%09%09%09%09c2-0.5,3.5-1.1,4.4-1.4l0,0c2.9-0.9,6.2-3.2,8.5-7.4c2.3-4.2,3.8-10.1,3.8-18.4C3526.2,1713.3,3523.6,1697.9,3516.4,1675.9z%0A%09%09%09%09 M3515.7,1738.9c-1.5,2.6-3.1,3.5-4.1,3.8c-1.2,0.4-2.5,0.9-4,1.3c-1.5,0.4-3.3,0.7-5.1,0.7c-2,0-4.3-0.3-6.7-1.4%0A%09%09%09%09c-3.7-1.5-7.9-4.6-12.5-10.9c-4.6-6.2-9.4-15.6-14-29.3c-7.1-21.2-9.7-36.9-9.7-47.9c0-8.5,1.5-14.2,3.5-17.9%0A%09%09%09%09c2-3.6,4.2-5.2,6.2-5.8l0,0c2-0.6,4.1-1.1,6.3-1.1c2,0,4,0.4,6.3,1.5c3.5,1.7,7.7,5.3,12.4,12.6c4.7,7.2,9.7,18.1,14.9,33.8%0A%09%09%09%09c7.1,21.4,9.4,36.2,9.4,46C3518.5,1731.7,3517.1,1736.3,3515.7,1738.9z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09</g>%0A%09</g>%0A%09<polygon points="4535.9,1753.6 4677.9,1982.4 4774.4,1982.4 4597.9,1697.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09<polygon points="4616.6,1659.7 4815.1,1982.4 4916.5,1982.4 4705.5,1586.9" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<polygon points="4597.9,1697.5 4644.4,1704.9 4815.1,1982.4 4774.4,1982.4" class="Graphic_x0020_Style_x0020_108"></polygon>%0A%09<polygon points="4791.1,1650.6 4705.5,1586.9 4916.5,1982.4 4939.2,1982.4 4939.2,1925.9" class="Graphic_x0020_Style_x0020_107"></polygon>%0A%09<path d="M4590.7,1773.7c0,0,19.3-16,39,11c19.6,27-20.3,47.3-33.4,30.1%0A%09%09C4583.1,1797.4,4579.5,1778.2,4590.7,1773.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09<path d="M4596.3,1780.1c0,0,13.5-11.2,27.3,7.7s-14.2,33.1-23.4,21.1%0A%09%09C4591,1796.7,4588.5,1783.2,4596.3,1780.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09<polygon points="4609.5,1841.2 4648,1821.1 4757.4,1982.4 4699.5,1982.4" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<ellipse ry="38.6" rx="31.7" cy="1701" cx="4703.2" class="Graphic_x0020_Style_x0020_104"></ellipse>%0A%09<polygon points="4705.5,1762.7 4757.4,1724.1 4766.2,1734.7 4712.4,1768.9" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4718.4,1793 4770.3,1754.3 4779,1764.9 4725.3,1799.2" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4731.2,1823.2 4783.2,1784.6 4791.9,1795.1 4738.1,1829.4" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<g>%0A%09%09<path d="M973.4,2494.7c-1.1-7.7-1.9-15.4-2.3-22.9c9.5-13.4,26.8-31.8,52.9-40.2c23.1-6.1,15.4-16.7,6-14.3%0A%09%09%09c-6.8,1.7-40.3,15-58.6,22.4c6.9-84.5,62.6-145.2,175.4-122.9c0,0,168.2-115.8,215,66.2c-26.6-8.7-77.4-22.7-81.8-5%0A%09%09%09c-5.6,22.6,45.1-7,86.4,25.8c2.5,13.6,4.5,28.6,5.7,45.1c0.4,18.1-4.3,37.3-12.2,56.6c-19.6-23.9-69.9-81.6-86.6-63.7%0A%09%09%09c-19.3,20.6,50.3,7.3,76.9,84.6c-10.3,19.7-23.2,39-36.6,56.7c-13.9-23.9-42.7-67.9-60.7-56.8c-7.2,6.3,6.6,15.6,21,31%0A%09%09%09c9.1,9.8,20.1,29.2,27,42.1c-32.6,40-64,68.5-64,68.5s-40.6-10.2-90-29.6c-2.2-17-5.6-50,0.5-58c8.3-10.9-3.5-21.2-17.7-9.4%0A%09%09%09c-11,9.1-13.4,36.4-10.2,55.9c-20.3-9-41-19.4-60.3-31.1c3.7-24.8,13.8-80.3,30.3-90.6c10.5-9.2,2.3-22.4-22.7-3.4%0A%09%09%09c-19.2,14.5-25.3,60.3-27.2,81.1C1004.8,2558,978.2,2528.6,973.4,2494.7z" class="st10"></path>%0A%09%09<path d="M1225.4,2633.4c0,0-71-217.9-78.6-316.8" class="st11"></path>%0A%09%09<path d="M1129.2,2552.6c0,0,15.4-40.3,50.3-75.4" class="st11"></path>%0A%09%09<path d="M1261.1,2488.4c0,0-59.5-46.7-90-43.7" class="st11"></path>%0A%09%09<path d="M1052.5,2468.5c0,0,69.2-57,107.6-70.5" class="st11"></path>%0A%09%09<path d="M1243.7,2349.5c0,0-52.8-23.4-93.7-5.9" class="st11"></path>%0A%09</g>%0A%09<path d="M3360.2,3327.1c-71.4-58-182.9-129.1-345.1-184.1c-329.3-111.6-176.9-187.3-303.6-225.2%0A%09%09s-430.3-22.5-784.9-68.8s-643.1-33.1-556-162c60.4-89.4,145-152.7,191.1-183.1l-109.7,8.4c-108.3,81.3-312.5,270.2,66.8,308.2%0A%09%09c486.5,48.7,1181.1,101.9,1192.6,208.2c9.2,84.8,440.1,200.1,610.2,307.3C3334,3333.3,3346.8,3330.3,3360.2,3327.1z" class="st22"></path>%0A%09<linearGradient y2="608.8419" x2="3633.9429" y1="608.8419" x1="3431.6741" gradientUnits="userSpaceOnUse" id="SVGID_9_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="101.1" rx="101.1" cy="608.8" cx="3532.8" class="st36"></ellipse>%0A%09<linearGradient y2="3174.8586" x2="1457.2415" y1="3174.8586" x1="1136.8959" gradientUnits="userSpaceOnUse" id="SVGID_10_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="106.3" rx="160.2" cy="3174.9" cx="1297.1" class="st37"></ellipse>%0A%09<linearGradient y2="2968.6479" x2="1266.5088" y1="2968.6479" x1="1085.6805" gradientUnits="userSpaceOnUse" id="SVGID_11_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="60" rx="90.4" cy="2968.6" cx="1176.1" class="st38"></ellipse>%0A%09<linearGradient y2="3078.0559" x2="5051.6841" y1="3078.0559" x1="4866.0625" gradientUnits="userSpaceOnUse" id="SVGID_12_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="92.8" rx="92.8" cy="3078.1" cx="4958.9" class="st39"></ellipse>%0A%09<path d="M2285.6,3438c0,0,206.8,24.5,420.7-87.7c42.5-28.4,62.6,33.1,35.4,53.2%0A%09%09c-27.2,20.1-168.9,100.4-399.3,87.4C2216,3486.1,2239.4,3435.8,2285.6,3438z" class="Graphic_x0020_Style_x0020_100"></path>%0A</g>%0A</svg>%0A';
2730
- var SignIn = (props) => {
2731
- const { title, successRedirectUrl, extra, unregistered } = props;
2732
- const queryParams = new URLSearchParams(window.location.search);
2733
- const { token, setToken } = useTokenStore();
2734
- const { t } = useTranslation();
2735
- const { isLoading } = useSWRImmutable(
2736
- queryParams.has("ticket") ? `/api/usystem/user/login?ticket=${queryParams.get("ticket")}` : null,
2737
- (url) => request(url),
2738
- {
2739
- onSuccess: (data) => {
2740
- setToken(data.data.token);
2741
- }
2742
- }
2743
- );
2744
- if (isLoading) {
2745
- return /* @__PURE__ */ jsx("div", { className: "w-screen h-screen flex justify-center items-center", children: /* @__PURE__ */ jsx(Spin, {}) });
2746
- }
2747
- if (token) {
2748
- const hashMode = !!window.location.hash;
2749
- const path = successRedirectUrl;
2750
- if (!hashMode) {
2751
- return /* @__PURE__ */ jsx(Navigate, { replace: true, to: path });
2752
- }
2753
- window.location.href = `${window.location.origin}${window.location.pathname}#${path}`;
2754
- return null;
2755
- }
2756
- return /* @__PURE__ */ jsxs("div", { className: "w-screen h-screen relative flex overflow-hidden", children: [
2757
- /* @__PURE__ */ jsx("div", { className: "absolute top-16 right-16 z-10", children: extra }),
2758
- /* @__PURE__ */ jsx("div", { className: "absolute left-14 top-6", children: /* @__PURE__ */ jsxs(Space, { align: "center", children: [
2759
- /* @__PURE__ */ jsx(Logo_default, { width: 48 }),
2760
- title
2761
- ] }) }),
2762
- /* @__PURE__ */ jsx("div", { className: "flex-1 flex justify-center items-center bg-slate-50", children: /* @__PURE__ */ jsx("img", { src: background_default, alt: "background", className: "w-10/12" }) }),
2763
- /* @__PURE__ */ jsx("div", { className: "w-[650px] relative top-0 left-0 right-0 bottom-0", children: /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 -translate-y-1/2 left-0 right-0", children: /* @__PURE__ */ jsx("div", { className: "-translate-y-10 px-36", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center", children: [
2764
- /* @__PURE__ */ jsx("div", { className: "h-10", children: unregistered && /* @__PURE__ */ jsx(Alert, { banner: true, closable: true, message: t("SignIn.unregistered"), type: "error" }) }),
2765
- /* @__PURE__ */ jsx(Typography.Title, { level: 2, children: t("SignIn.welcome") }),
2766
- /* @__PURE__ */ jsx("div", { className: "mt-4", children: /* @__PURE__ */ jsxs(Form, { layout: "vertical", autoComplete: "off", children: [
2767
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.username"), name: "username", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, {}) }),
2768
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.password"), name: "password", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input.Password, {}) }),
2769
- /* @__PURE__ */ jsx(Form.Item, { children: /* @__PURE__ */ jsx(Button, { block: true, type: "primary", shape: "round", htmlType: "submit", children: t("global.signIn") }) })
2770
- ] }) }),
2771
- /* @__PURE__ */ jsx(Divider, { plain: true, dashed: true, children: t("SignIn.thirdParty") }),
2772
- /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center", children: /* @__PURE__ */ jsxs(
2773
- Button,
2774
- {
2775
- block: true,
2776
- shape: "round",
2777
- href: `${SSO_URL}/logout?service=${SSO_URL}/login?service=${window.location.href}`,
2778
- target: "_self",
2779
- children: [
2780
- /* @__PURE__ */ jsx(Logo_default, { width: 18 }),
2781
- t("SignIn.signInWithIDass")
2782
- ]
2783
- }
2784
- ) })
2785
- ] }) }) }) })
2786
- ] });
2787
- };
2788
- var signIn_default = SignIn;
2789
-
2790
- // src/index.ts
2791
- init_request();
2792
- init_storage();
2793
-
2794
- export { APP_ID_HEADER_NAME, Provider_default as ContextProvider, DynamicTags_default as DynamicTags, ExpandableParagraph_default as ExpandableParagraph, FilterFormWrapper_default as FilterFormWrapper, Highlight_default as Highlight, InfiniteList_default as InfiniteList, Layout_default as Layout, NavMenu_default as NavMenu, notFound_default as NotFound, operationLogList_default as OperationLogList, PermissionButton_default as PermissionButton, QueryList_default as QueryList, QueryListAction, RequestError, RequireGame_default as RequireGame, RequirePermission_default as RequirePermission, SSO_URL, signIn_default as SignIn, UserWidget_default as UserWidget, contextStore, mixedStorage, permission_default as permissionRoutes, request, useFormModal, useGameStore, useLayoutStore, useModal, useModalStore, usePermission, usePermissions, useQueryListStore, useTestToken, useTokenStore, useToolkitsContext };
2795
- //# sourceMappingURL=index.js.map
2796
- //# sourceMappingURL=index.js.map
25
+ export { C as APP_ID_HEADER, No as ContextProvider, Jo as DynamicTags, ze as ExpandableParagraph, we as FilterFormWrapper, Pe as Highlight, xr as InfiniteList, rr as Layout, it as NavMenu, oa as NotFound, na as OperationLogList, H as PermissionButton, le as QueryList, ks as QueryListAction, _e as RequestError, lt as RequireGame, Br as RequirePermission, ut as SSO_URL, u2 as SignIn, pt as UserWidget, J as contextStore, ps as mixedStorage, o2 as permissionRoutes, D3 as request, We as useFormModal, K as useGameStore, gs as useLayoutStore, Fs as useModal, Qr as useModalStore, W as usePermission, gt as usePermissions, j as useQueryListStore, Y as useTokenStore, I as useToolkitsContext };