function zf(e,n){for(var t=0;ta[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))a(i);new MutationObserver(i=>{for(const r of i)if(r.type==="childList")for(const l of r.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&a(l)}).observe(document,{childList:!0,subtree:!0});function t(i){const r={};return i.integrity&&(r.integrity=i.integrity),i.referrerPolicy&&(r.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?r.credentials="include":i.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(i){if(i.ep)return;i.ep=!0;const r=t(i);fetch(i.href,r)}})();function Zo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var qo={exports:{}},Ni={},bo={exports:{}},z={};/** * @license React * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var ga=Symbol.for("react.element"),If=Symbol.for("react.portal"),Mf=Symbol.for("react.fragment"),Kf=Symbol.for("react.strict_mode"),Af=Symbol.for("react.profiler"),Vf=Symbol.for("react.provider"),Hf=Symbol.for("react.context"),Ff=Symbol.for("react.forward_ref"),Df=Symbol.for("react.suspense"),Uf=Symbol.for("react.memo"),Bf=Symbol.for("react.lazy"),Es=Symbol.iterator;function $f(e){return e===null||typeof e!="object"?null:(e=Es&&e[Es]||e["@@iterator"],typeof e=="function"?e:null)}var eu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},nu=Object.assign,tu={};function Ct(e,n,t){this.props=e,this.context=n,this.refs=tu,this.updater=t||eu}Ct.prototype.isReactComponent={};Ct.prototype.setState=function(e,n){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,n,"setState")};Ct.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function au(){}au.prototype=Ct.prototype;function _l(e,n,t){this.props=e,this.context=n,this.refs=tu,this.updater=t||eu}var Cl=_l.prototype=new au;Cl.constructor=_l;nu(Cl,Ct.prototype);Cl.isPureReactComponent=!0;var _s=Array.isArray,iu=Object.prototype.hasOwnProperty,Tl={current:null},ru={key:!0,ref:!0,__self:!0,__source:!0};function lu(e,n,t){var a,i={},r=null,l=null;if(n!=null)for(a in n.ref!==void 0&&(l=n.ref),n.key!==void 0&&(r=""+n.key),n)iu.call(n,a)&&!ru.hasOwnProperty(a)&&(i[a]=n[a]);var s=arguments.length-2;if(s===1)i.children=t;else if(1>>1,q=C[J];if(0>>1;Ji(Xi,O))zni(Ta,Xi)?(C[J]=Ta,C[zn]=O,J=zn):(C[J]=Xi,C[On]=O,J=On);else if(zni(Ta,O))C[J]=Ta,C[zn]=O,J=zn;else break e}}return R}function i(C,R){var O=C.sortIndex-R.sortIndex;return O!==0?O:C.id-R.id}if(typeof performance=="object"&&typeof performance.now=="function"){var r=performance;e.unstable_now=function(){return r.now()}}else{var l=Date,s=l.now();e.unstable_now=function(){return l.now()-s}}var o=[],u=[],k=1,m=null,h=3,y=!1,j=!1,g=!1,E=typeof setTimeout=="function"?setTimeout:null,d=typeof clearTimeout=="function"?clearTimeout:null,f=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function p(C){for(var R=t(u);R!==null;){if(R.callback===null)a(u);else if(R.startTime<=C)a(u),R.sortIndex=R.expirationTime,n(o,R);else break;R=t(u)}}function v(C){if(g=!1,p(C),!j)if(t(o)!==null)j=!0,Qi(w);else{var R=t(u);R!==null&&Gi(v,R.startTime-C)}}function w(C,R){j=!1,g&&(g=!1,d(L),L=-1),y=!0;var O=h;try{for(p(R),m=t(o);m!==null&&(!(m.expirationTime>R)||C&&!Oe());){var J=m.callback;if(typeof J=="function"){m.callback=null,h=m.priorityLevel;var q=J(m.expirationTime<=R);R=e.unstable_now(),typeof q=="function"?m.callback=q:m===t(o)&&a(o),p(R)}else a(o);m=t(o)}if(m!==null)var Ca=!0;else{var On=t(u);On!==null&&Gi(v,On.startTime-R),Ca=!1}return Ca}finally{m=null,h=O,y=!1}}var P=!1,N=null,L=-1,W=5,I=-1;function Oe(){return!(e.unstable_now()-IC||125J?(C.sortIndex=O,n(u,C),t(o)===null&&C===t(u)&&(g?(d(L),L=-1):g=!0,Gi(v,O-J))):(C.sortIndex=q,n(o,C),j||y||(j=!0,Qi(w))),C},e.unstable_shouldYield=Oe,e.unstable_wrapCallback=function(C){var R=h;return function(){var O=h;h=R;try{return C.apply(this,arguments)}finally{h=O}}}})(fu);cu.exports=fu;var td=cu.exports;/** * @license React * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var ad=x,xe=td;function S(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Tr=Object.prototype.hasOwnProperty,id=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ts={},Ps={};function rd(e){return Tr.call(Ps,e)?!0:Tr.call(Ts,e)?!1:id.test(e)?Ps[e]=!0:(Ts[e]=!0,!1)}function ld(e,n,t,a){if(t!==null&&t.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return a?!1:t!==null?!t.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function sd(e,n,t,a){if(n===null||typeof n>"u"||ld(e,n,t,a))return!0;if(a)return!1;if(t!==null)switch(t.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function me(e,n,t,a,i,r,l){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=a,this.attributeNamespace=i,this.mustUseProperty=t,this.propertyName=e,this.type=n,this.sanitizeURL=r,this.removeEmptyString=l}var ie={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ie[e]=new me(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];ie[n]=new me(n,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ie[e]=new me(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ie[e]=new me(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ie[e]=new me(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ie[e]=new me(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ie[e]=new me(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ie[e]=new me(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ie[e]=new me(e,5,!1,e.toLowerCase(),null,!1,!1)});var Nl=/[\-:]([a-z])/g;function Ll(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(Nl,Ll);ie[n]=new me(n,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(Nl,Ll);ie[n]=new me(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(Nl,Ll);ie[n]=new me(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ie[e]=new me(e,1,!1,e.toLowerCase(),null,!1,!1)});ie.xlinkHref=new me("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ie[e]=new me(e,1,!1,e.toLowerCase(),null,!0,!0)});function Rl(e,n,t,a){var i=ie.hasOwnProperty(n)?ie[n]:null;(i!==null?i.type!==0:a||!(2s||i[l]!==r[s]){var o=` `+i[l].replace(" at new "," at ");return e.displayName&&o.includes("")&&(o=o.replace("",e.displayName)),o}while(1<=l&&0<=s);break}}}finally{bi=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?Dt(e):""}function od(e){switch(e.tag){case 5:return Dt(e.type);case 16:return Dt("Lazy");case 13:return Dt("Suspense");case 19:return Dt("SuspenseList");case 0:case 2:case 15:return e=er(e.type,!1),e;case 11:return e=er(e.type.render,!1),e;case 1:return e=er(e.type,!0),e;default:return""}}function Rr(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case tt:return"Fragment";case nt:return"Portal";case Pr:return"Profiler";case Ol:return"StrictMode";case Nr:return"Suspense";case Lr:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case pu:return(e.displayName||"Context")+".Consumer";case mu:return(e._context.displayName||"Context")+".Provider";case zl:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Il:return n=e.displayName||null,n!==null?n:Rr(e.type)||"Memo";case sn:n=e._payload,e=e._init;try{return Rr(e(n))}catch{}}return null}function ud(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Rr(n);case 8:return n===Ol?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function Cn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function hu(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function cd(e){var n=hu(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),a=""+e[n];if(!e.hasOwnProperty(n)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var i=t.get,r=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return i.call(this)},set:function(l){a=""+l,r.call(this,l)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return a},setValue:function(l){a=""+l},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function La(e){e._valueTracker||(e._valueTracker=cd(e))}function vu(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),a="";return e&&(a=hu(e)?e.checked?"true":"false":e.value),e=a,e!==t?(n.setValue(e),!0):!1}function ii(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Or(e,n){var t=n.checked;return B({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??e._wrapperState.initialChecked})}function Ls(e,n){var t=n.defaultValue==null?"":n.defaultValue,a=n.checked!=null?n.checked:n.defaultChecked;t=Cn(n.value!=null?n.value:t),e._wrapperState={initialChecked:a,initialValue:t,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function yu(e,n){n=n.checked,n!=null&&Rl(e,"checked",n,!1)}function zr(e,n){yu(e,n);var t=Cn(n.value),a=n.type;if(t!=null)a==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if(a==="submit"||a==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?Ir(e,n.type,t):n.hasOwnProperty("defaultValue")&&Ir(e,n.type,Cn(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function Rs(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var a=n.type;if(!(a!=="submit"&&a!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,t||n===e.value||(e.value=n),e.defaultValue=n}t=e.name,t!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,t!==""&&(e.name=t)}function Ir(e,n,t){(n!=="number"||ii(e.ownerDocument)!==e)&&(t==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var Ut=Array.isArray;function mt(e,n,t,a){if(e=e.options,n){n={};for(var i=0;i"+n.valueOf().toString()+"",n=Ra.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function ta(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&t.nodeType===3){t.nodeValue=n;return}}e.textContent=n}var Jt={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},fd=["Webkit","ms","Moz","O"];Object.keys(Jt).forEach(function(e){fd.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Jt[n]=Jt[e]})});function xu(e,n,t){return n==null||typeof n=="boolean"||n===""?"":t||typeof n!="number"||n===0||Jt.hasOwnProperty(e)&&Jt[e]?(""+n).trim():n+"px"}function wu(e,n){e=e.style;for(var t in n)if(n.hasOwnProperty(t)){var a=t.indexOf("--")===0,i=xu(t,n[t],a);t==="float"&&(t="cssFloat"),a?e.setProperty(t,i):e[t]=i}}var dd=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ar(e,n){if(n){if(dd[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(S(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(S(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(S(61))}if(n.style!=null&&typeof n.style!="object")throw Error(S(62))}}function Vr(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Hr=null;function Ml(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Fr=null,pt=null,kt=null;function Is(e){if(e=wa(e)){if(typeof Fr!="function")throw Error(S(280));var n=e.stateNode;n&&(n=Ii(n),Fr(e.stateNode,e.type,n))}}function Eu(e){pt?kt?kt.push(e):kt=[e]:pt=e}function _u(){if(pt){var e=pt,n=kt;if(kt=pt=null,Is(e),n)for(e=0;e>>=0,e===0?32:31-(wd(e)/Ed|0)|0}var Oa=64,za=4194304;function Bt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function oi(e,n){var t=e.pendingLanes;if(t===0)return 0;var a=0,i=e.suspendedLanes,r=e.pingedLanes,l=t&268435455;if(l!==0){var s=l&~i;s!==0?a=Bt(s):(r&=l,r!==0&&(a=Bt(r)))}else l=t&~i,l!==0?a=Bt(l):r!==0&&(a=Bt(r));if(a===0)return 0;if(n!==0&&n!==a&&!(n&i)&&(i=a&-a,r=n&-n,i>=r||i===16&&(r&4194240)!==0))return n;if(a&4&&(a|=t&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=a;0t;t++)n.push(e);return n}function Sa(e,n,t){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-Ae(n),e[n]=t}function Pd(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var a=e.eventTimes;for(e=e.expirationTimes;0=Qt),Bs=" ",$s=!1;function Wu(e,n){switch(e){case"keyup":return tm.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ju(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var at=!1;function im(e,n){switch(e){case"compositionend":return Ju(n);case"keypress":return n.which!==32?null:($s=!0,Bs);case"textInput":return e=n.data,e===Bs&&$s?null:e;default:return null}}function rm(e,n){if(at)return e==="compositionend"||!Bl&&Wu(e,n)?(e=Bu(),Ga=Fl=mn=null,at=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:t,offset:n-e};e=a}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=Qs(t)}}function Xu(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Xu(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Zu(){for(var e=window,n=ii();n instanceof e.HTMLIFrameElement;){try{var t=typeof n.contentWindow.location.href=="string"}catch{t=!1}if(t)e=n.contentWindow;else break;n=ii(e.document)}return n}function $l(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function pm(e){var n=Zu(),t=e.focusedElem,a=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&Xu(t.ownerDocument.documentElement,t)){if(a!==null&&$l(t)){if(n=a.start,e=a.end,e===void 0&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if(e=(n=t.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var i=t.textContent.length,r=Math.min(a.start,i);a=a.end===void 0?r:Math.min(a.end,i),!e.extend&&r>a&&(i=a,a=r,r=i),i=Gs(t,r);var l=Gs(t,a);i&&l&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==l.node||e.focusOffset!==l.offset)&&(n=n.createRange(),n.setStart(i.node,i.offset),e.removeAllRanges(),r>a?(e.addRange(n),e.extend(l.node,l.offset)):(n.setEnd(l.node,l.offset),e.addRange(n)))}}for(n=[],e=t;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,it=null,Jr=null,Xt=null,Yr=!1;function Xs(e,n,t){var a=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;Yr||it==null||it!==ii(a)||(a=it,"selectionStart"in a&&$l(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Xt&&oa(Xt,a)||(Xt=a,a=fi(Jr,"onSelect"),0st||(e.current=br[st],br[st]=null,st--)}function A(e,n){st++,br[st]=e.current,e.current=n}var Tn={},oe=Nn(Tn),he=Nn(!1),Bn=Tn;function gt(e,n){var t=e.type.contextTypes;if(!t)return Tn;var a=e.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===n)return a.__reactInternalMemoizedMaskedChildContext;var i={},r;for(r in t)i[r]=n[r];return a&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=i),i}function ve(e){return e=e.childContextTypes,e!=null}function mi(){H(he),H(oe)}function ao(e,n,t){if(oe.current!==Tn)throw Error(S(168));A(oe,n),A(he,t)}function lc(e,n,t){var a=e.stateNode;if(n=n.childContextTypes,typeof a.getChildContext!="function")return t;a=a.getChildContext();for(var i in a)if(!(i in n))throw Error(S(108,ud(e)||"Unknown",i));return B({},t,a)}function pi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Tn,Bn=oe.current,A(oe,e),A(he,he.current),!0}function io(e,n,t){var a=e.stateNode;if(!a)throw Error(S(169));t?(e=lc(e,n,Bn),a.__reactInternalMemoizedMergedChildContext=e,H(he),H(oe),A(oe,e)):H(he),A(he,t)}var Ge=null,Mi=!1,pr=!1;function sc(e){Ge===null?Ge=[e]:Ge.push(e)}function Cm(e){Mi=!0,sc(e)}function Ln(){if(!pr&&Ge!==null){pr=!0;var e=0,n=K;try{var t=Ge;for(K=1;e>=l,i-=l,Xe=1<<32-Ae(n)+i|t<L?(W=N,N=null):W=N.sibling;var I=h(d,N,p[L],v);if(I===null){N===null&&(N=W);break}e&&N&&I.alternate===null&&n(d,N),f=r(I,f,L),P===null?w=I:P.sibling=I,P=I,N=W}if(L===p.length)return t(d,N),F&&In(d,L),w;if(N===null){for(;LL?(W=N,N=null):W=N.sibling;var Oe=h(d,N,I.value,v);if(Oe===null){N===null&&(N=W);break}e&&N&&Oe.alternate===null&&n(d,N),f=r(Oe,f,L),P===null?w=Oe:P.sibling=Oe,P=Oe,N=W}if(I.done)return t(d,N),F&&In(d,L),w;if(N===null){for(;!I.done;L++,I=p.next())I=m(d,I.value,v),I!==null&&(f=r(I,f,L),P===null?w=I:P.sibling=I,P=I);return F&&In(d,L),w}for(N=a(d,N);!I.done;L++,I=p.next())I=y(N,d,L,I.value,v),I!==null&&(e&&I.alternate!==null&&N.delete(I.key===null?L:I.key),f=r(I,f,L),P===null?w=I:P.sibling=I,P=I);return e&&N.forEach(function(Lt){return n(d,Lt)}),F&&In(d,L),w}function E(d,f,p,v){if(typeof p=="object"&&p!==null&&p.type===tt&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case Na:e:{for(var w=p.key,P=f;P!==null;){if(P.key===w){if(w=p.type,w===tt){if(P.tag===7){t(d,P.sibling),f=i(P,p.props.children),f.return=d,d=f;break e}}else if(P.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===sn&&so(w)===P.type){t(d,P.sibling),f=i(P,p.props),f.ref=At(d,P,p),f.return=d,d=f;break e}t(d,P);break}else n(d,P);P=P.sibling}p.type===tt?(f=Un(p.props.children,d.mode,v,p.key),f.return=d,d=f):(v=ai(p.type,p.key,p.props,null,d.mode,v),v.ref=At(d,f,p),v.return=d,d=v)}return l(d);case nt:e:{for(P=p.key;f!==null;){if(f.key===P)if(f.tag===4&&f.stateNode.containerInfo===p.containerInfo&&f.stateNode.implementation===p.implementation){t(d,f.sibling),f=i(f,p.children||[]),f.return=d,d=f;break e}else{t(d,f);break}else n(d,f);f=f.sibling}f=xr(p,d.mode,v),f.return=d,d=f}return l(d);case sn:return P=p._init,E(d,f,P(p._payload),v)}if(Ut(p))return j(d,f,p,v);if(Ot(p))return g(d,f,p,v);Fa(d,p)}return typeof p=="string"&&p!==""||typeof p=="number"?(p=""+p,f!==null&&f.tag===6?(t(d,f.sibling),f=i(f,p),f.return=d,d=f):(t(d,f),f=Sr(p,d.mode,v),f.return=d,d=f),l(d)):t(d,f)}return E}var xt=fc(!0),dc=fc(!1),vi=Nn(null),yi=null,ct=null,Ql=null;function Gl(){Ql=ct=yi=null}function Xl(e){var n=vi.current;H(vi),e._currentValue=n}function tl(e,n,t){for(;e!==null;){var a=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,a!==null&&(a.childLanes|=n)):a!==null&&(a.childLanes&n)!==n&&(a.childLanes|=n),e===t)break;e=e.return}}function vt(e,n){yi=e,Ql=ct=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&n&&(ke=!0),e.firstContext=null)}function Le(e){var n=e._currentValue;if(Ql!==e)if(e={context:e,memoizedValue:n,next:null},ct===null){if(yi===null)throw Error(S(308));ct=e,yi.dependencies={lanes:0,firstContext:e}}else ct=ct.next=e;return n}var Hn=null;function Zl(e){Hn===null?Hn=[e]:Hn.push(e)}function mc(e,n,t,a){var i=n.interleaved;return i===null?(t.next=t,Zl(n)):(t.next=i.next,i.next=t),n.interleaved=t,nn(e,a)}function nn(e,n){e.lanes|=n;var t=e.alternate;for(t!==null&&(t.lanes|=n),t=e,e=e.return;e!==null;)e.childLanes|=n,t=e.alternate,t!==null&&(t.childLanes|=n),t=e,e=e.return;return t.tag===3?t.stateNode:null}var on=!1;function ql(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function pc(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function qe(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function gn(e,n,t){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,M&2){var i=a.pending;return i===null?n.next=n:(n.next=i.next,i.next=n),a.pending=n,nn(e,t)}return i=a.interleaved,i===null?(n.next=n,Zl(a)):(n.next=i.next,i.next=n),a.interleaved=n,nn(e,t)}function Za(e,n,t){if(n=n.updateQueue,n!==null&&(n=n.shared,(t&4194240)!==0)){var a=n.lanes;a&=e.pendingLanes,t|=a,n.lanes=t,Al(e,t)}}function oo(e,n){var t=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,t===a)){var i=null,r=null;if(t=t.firstBaseUpdate,t!==null){do{var l={eventTime:t.eventTime,lane:t.lane,tag:t.tag,payload:t.payload,callback:t.callback,next:null};r===null?i=r=l:r=r.next=l,t=t.next}while(t!==null);r===null?i=r=n:r=r.next=n}else i=r=n;t={baseState:a.baseState,firstBaseUpdate:i,lastBaseUpdate:r,shared:a.shared,effects:a.effects},e.updateQueue=t;return}e=t.lastBaseUpdate,e===null?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}function ji(e,n,t,a){var i=e.updateQueue;on=!1;var r=i.firstBaseUpdate,l=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var o=s,u=o.next;o.next=null,l===null?r=u:l.next=u,l=o;var k=e.alternate;k!==null&&(k=k.updateQueue,s=k.lastBaseUpdate,s!==l&&(s===null?k.firstBaseUpdate=u:s.next=u,k.lastBaseUpdate=o))}if(r!==null){var m=i.baseState;l=0,k=u=o=null,s=r;do{var h=s.lane,y=s.eventTime;if((a&h)===h){k!==null&&(k=k.next={eventTime:y,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var j=e,g=s;switch(h=n,y=t,g.tag){case 1:if(j=g.payload,typeof j=="function"){m=j.call(y,m,h);break e}m=j;break e;case 3:j.flags=j.flags&-65537|128;case 0:if(j=g.payload,h=typeof j=="function"?j.call(y,m,h):j,h==null)break e;m=B({},m,h);break e;case 2:on=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,h=i.effects,h===null?i.effects=[s]:h.push(s))}else y={eventTime:y,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},k===null?(u=k=y,o=m):k=k.next=y,l|=h;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;h=s,s=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);if(k===null&&(o=m),i.baseState=o,i.firstBaseUpdate=u,i.lastBaseUpdate=k,n=i.shared.interleaved,n!==null){i=n;do l|=i.lane,i=i.next;while(i!==n)}else r===null&&(i.shared.lanes=0);Jn|=l,e.lanes=l,e.memoizedState=m}}function uo(e,n,t){if(e=n.effects,n.effects=null,e!==null)for(n=0;nt?t:4,e(!0);var a=hr.transition;hr.transition={};try{e(!1),n()}finally{K=t,hr.transition=a}}function Rc(){return Re().memoizedState}function Lm(e,n,t){var a=xn(e);if(t={lane:a,action:t,hasEagerState:!1,eagerState:null,next:null},Oc(e))zc(n,t);else if(t=mc(e,n,t,a),t!==null){var i=fe();Ve(t,e,a,i),Ic(t,n,a)}}function Rm(e,n,t){var a=xn(e),i={lane:a,action:t,hasEagerState:!1,eagerState:null,next:null};if(Oc(e))zc(n,i);else{var r=e.alternate;if(e.lanes===0&&(r===null||r.lanes===0)&&(r=n.lastRenderedReducer,r!==null))try{var l=n.lastRenderedState,s=r(l,t);if(i.hasEagerState=!0,i.eagerState=s,He(s,l)){var o=n.interleaved;o===null?(i.next=i,Zl(n)):(i.next=o.next,o.next=i),n.interleaved=i;return}}catch{}finally{}t=mc(e,n,i,a),t!==null&&(i=fe(),Ve(t,e,a,i),Ic(t,n,a))}}function Oc(e){var n=e.alternate;return e===U||n!==null&&n===U}function zc(e,n){Zt=Si=!0;var t=e.pending;t===null?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function Ic(e,n,t){if(t&4194240){var a=n.lanes;a&=e.pendingLanes,t|=a,n.lanes=t,Al(e,t)}}var xi={readContext:Le,useCallback:re,useContext:re,useEffect:re,useImperativeHandle:re,useInsertionEffect:re,useLayoutEffect:re,useMemo:re,useReducer:re,useRef:re,useState:re,useDebugValue:re,useDeferredValue:re,useTransition:re,useMutableSource:re,useSyncExternalStore:re,useId:re,unstable_isNewReconciler:!1},Om={readContext:Le,useCallback:function(e,n){return De().memoizedState=[e,n===void 0?null:n],e},useContext:Le,useEffect:fo,useImperativeHandle:function(e,n,t){return t=t!=null?t.concat([e]):null,ba(4194308,4,Cc.bind(null,n,e),t)},useLayoutEffect:function(e,n){return ba(4194308,4,e,n)},useInsertionEffect:function(e,n){return ba(4,2,e,n)},useMemo:function(e,n){var t=De();return n=n===void 0?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var a=De();return n=t!==void 0?t(n):n,a.memoizedState=a.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},a.queue=e,e=e.dispatch=Lm.bind(null,U,e),[a.memoizedState,e]},useRef:function(e){var n=De();return e={current:e},n.memoizedState=e},useState:co,useDebugValue:ls,useDeferredValue:function(e){return De().memoizedState=e},useTransition:function(){var e=co(!1),n=e[0];return e=Nm.bind(null,e[1]),De().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var a=U,i=De();if(F){if(t===void 0)throw Error(S(407));t=t()}else{if(t=n(),ee===null)throw Error(S(349));Wn&30||yc(a,n,t)}i.memoizedState=t;var r={value:t,getSnapshot:n};return i.queue=r,fo(gc.bind(null,a,r,e),[e]),a.flags|=2048,ha(9,jc.bind(null,a,r,t,n),void 0,null),t},useId:function(){var e=De(),n=ee.identifierPrefix;if(F){var t=Ze,a=Xe;t=(a&~(1<<32-Ae(a)-1)).toString(32)+t,n=":"+n+"R"+t,t=pa++,0<\/script>",e=e.removeChild(e.firstChild)):typeof a.is=="string"?e=l.createElement(t,{is:a.is}):(e=l.createElement(t),t==="select"&&(l=e,a.multiple?l.multiple=!0:a.size&&(l.size=a.size))):e=l.createElementNS(e,t),e[Ue]=n,e[fa]=a,$c(e,n,!1,!1),n.stateNode=e;e:{switch(l=Vr(t,a),t){case"dialog":V("cancel",e),V("close",e),i=a;break;case"iframe":case"object":case"embed":V("load",e),i=a;break;case"video":case"audio":for(i=0;i<$t.length;i++)V($t[i],e);i=a;break;case"source":V("error",e),i=a;break;case"img":case"image":case"link":V("error",e),V("load",e),i=a;break;case"details":V("toggle",e),i=a;break;case"input":Ls(e,a),i=Or(e,a),V("invalid",e);break;case"option":i=a;break;case"select":e._wrapperState={wasMultiple:!!a.multiple},i=B({},a,{value:void 0}),V("invalid",e);break;case"textarea":Os(e,a),i=Mr(e,a),V("invalid",e);break;default:i=a}Ar(t,i),s=i;for(r in s)if(s.hasOwnProperty(r)){var o=s[r];r==="style"?wu(e,o):r==="dangerouslySetInnerHTML"?(o=o?o.__html:void 0,o!=null&&Su(e,o)):r==="children"?typeof o=="string"?(t!=="textarea"||o!=="")&&ta(e,o):typeof o=="number"&&ta(e,""+o):r!=="suppressContentEditableWarning"&&r!=="suppressHydrationWarning"&&r!=="autoFocus"&&(na.hasOwnProperty(r)?o!=null&&r==="onScroll"&&V("scroll",e):o!=null&&Rl(e,r,o,l))}switch(t){case"input":La(e),Rs(e,a,!1);break;case"textarea":La(e),zs(e);break;case"option":a.value!=null&&e.setAttribute("value",""+Cn(a.value));break;case"select":e.multiple=!!a.multiple,r=a.value,r!=null?mt(e,!!a.multiple,r,!1):a.defaultValue!=null&&mt(e,!!a.multiple,a.defaultValue,!0);break;default:typeof i.onClick=="function"&&(e.onclick=di)}switch(t){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}}a&&(n.flags|=4)}n.ref!==null&&(n.flags|=512,n.flags|=2097152)}return le(n),null;case 6:if(e&&n.stateNode!=null)Jc(e,n,e.memoizedProps,a);else{if(typeof a!="string"&&n.stateNode===null)throw Error(S(166));if(t=Fn(ma.current),Fn(We.current),Ha(n)){if(a=n.stateNode,t=n.memoizedProps,a[Ue]=n,(r=a.nodeValue!==t)&&(e=Se,e!==null))switch(e.tag){case 3:Va(a.nodeValue,t,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Va(a.nodeValue,t,(e.mode&1)!==0)}r&&(n.flags|=4)}else a=(t.nodeType===9?t:t.ownerDocument).createTextNode(a),a[Ue]=n,n.stateNode=a}return le(n),null;case 13:if(H(D),a=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(F&&ge!==null&&n.mode&1&&!(n.flags&128))cc(),St(),n.flags|=98560,r=!1;else if(r=Ha(n),a!==null&&a.dehydrated!==null){if(e===null){if(!r)throw Error(S(318));if(r=n.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(S(317));r[Ue]=n}else St(),!(n.flags&128)&&(n.memoizedState=null),n.flags|=4;le(n),r=!1}else Ke!==null&&(yl(Ke),Ke=null),r=!0;if(!r)return n.flags&65536?n:null}return n.flags&128?(n.lanes=t,n):(a=a!==null,a!==(e!==null&&e.memoizedState!==null)&&a&&(n.child.flags|=8192,n.mode&1&&(e===null||D.current&1?Z===0&&(Z=3):ms())),n.updateQueue!==null&&(n.flags|=4),le(n),null);case 4:return wt(),cl(e,n),e===null&&ua(n.stateNode.containerInfo),le(n),null;case 10:return Xl(n.type._context),le(n),null;case 17:return ve(n.type)&&mi(),le(n),null;case 19:if(H(D),r=n.memoizedState,r===null)return le(n),null;if(a=(n.flags&128)!==0,l=r.rendering,l===null)if(a)Vt(r,!1);else{if(Z!==0||e!==null&&e.flags&128)for(e=n.child;e!==null;){if(l=gi(e),l!==null){for(n.flags|=128,Vt(r,!1),a=l.updateQueue,a!==null&&(n.updateQueue=a,n.flags|=4),n.subtreeFlags=0,a=t,t=n.child;t!==null;)r=t,e=a,r.flags&=14680066,l=r.alternate,l===null?(r.childLanes=0,r.lanes=e,r.child=null,r.subtreeFlags=0,r.memoizedProps=null,r.memoizedState=null,r.updateQueue=null,r.dependencies=null,r.stateNode=null):(r.childLanes=l.childLanes,r.lanes=l.lanes,r.child=l.child,r.subtreeFlags=0,r.deletions=null,r.memoizedProps=l.memoizedProps,r.memoizedState=l.memoizedState,r.updateQueue=l.updateQueue,r.type=l.type,e=l.dependencies,r.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),t=t.sibling;return A(D,D.current&1|2),n.child}e=e.sibling}r.tail!==null&&Y()>_t&&(n.flags|=128,a=!0,Vt(r,!1),n.lanes=4194304)}else{if(!a)if(e=gi(l),e!==null){if(n.flags|=128,a=!0,t=e.updateQueue,t!==null&&(n.updateQueue=t,n.flags|=4),Vt(r,!0),r.tail===null&&r.tailMode==="hidden"&&!l.alternate&&!F)return le(n),null}else 2*Y()-r.renderingStartTime>_t&&t!==1073741824&&(n.flags|=128,a=!0,Vt(r,!1),n.lanes=4194304);r.isBackwards?(l.sibling=n.child,n.child=l):(t=r.last,t!==null?t.sibling=l:n.child=l,r.last=l)}return r.tail!==null?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.renderingStartTime=Y(),n.sibling=null,t=D.current,A(D,a?t&1|2:t&1),n):(le(n),null);case 22:case 23:return ds(),a=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==a&&(n.flags|=8192),a&&n.mode&1?je&1073741824&&(le(n),n.subtreeFlags&6&&(n.flags|=8192)):le(n),null;case 24:return null;case 25:return null}throw Error(S(156,n.tag))}function Fm(e,n){switch(Jl(n),n.tag){case 1:return ve(n.type)&&mi(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return wt(),H(he),H(oe),ns(),e=n.flags,e&65536&&!(e&128)?(n.flags=e&-65537|128,n):null;case 5:return es(n),null;case 13:if(H(D),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(S(340));St()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return H(D),null;case 4:return wt(),null;case 10:return Xl(n.type._context),null;case 22:case 23:return ds(),null;case 24:return null;default:return null}}var Ua=!1,se=!1,Dm=typeof WeakSet=="function"?WeakSet:Set,_=null;function ft(e,n){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(a){$(e,n,a)}else t.current=null}function fl(e,n,t){try{t()}catch(a){$(e,n,a)}}var wo=!1;function Um(e,n){if(Qr=ui,e=Zu(),$l(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var a=t.getSelection&&t.getSelection();if(a&&a.rangeCount!==0){t=a.anchorNode;var i=a.anchorOffset,r=a.focusNode;a=a.focusOffset;try{t.nodeType,r.nodeType}catch{t=null;break e}var l=0,s=-1,o=-1,u=0,k=0,m=e,h=null;n:for(;;){for(var y;m!==t||i!==0&&m.nodeType!==3||(s=l+i),m!==r||a!==0&&m.nodeType!==3||(o=l+a),m.nodeType===3&&(l+=m.nodeValue.length),(y=m.firstChild)!==null;)h=m,m=y;for(;;){if(m===e)break n;if(h===t&&++u===i&&(s=l),h===r&&++k===a&&(o=l),(y=m.nextSibling)!==null)break;m=h,h=m.parentNode}m=y}t=s===-1||o===-1?null:{start:s,end:o}}else t=null}t=t||{start:0,end:0}}else t=null;for(Gr={focusedElem:e,selectionRange:t},ui=!1,_=n;_!==null;)if(n=_,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,_=e;else for(;_!==null;){n=_;try{var j=n.alternate;if(n.flags&1024)switch(n.tag){case 0:case 11:case 15:break;case 1:if(j!==null){var g=j.memoizedProps,E=j.memoizedState,d=n.stateNode,f=d.getSnapshotBeforeUpdate(n.elementType===n.type?g:Ie(n.type,g),E);d.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var p=n.stateNode.containerInfo;p.nodeType===1?p.textContent="":p.nodeType===9&&p.documentElement&&p.removeChild(p.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(S(163))}}catch(v){$(n,n.return,v)}if(e=n.sibling,e!==null){e.return=n.return,_=e;break}_=n.return}return j=wo,wo=!1,j}function qt(e,n,t){var a=n.updateQueue;if(a=a!==null?a.lastEffect:null,a!==null){var i=a=a.next;do{if((i.tag&e)===e){var r=i.destroy;i.destroy=void 0,r!==void 0&&fl(n,t,r)}i=i.next}while(i!==a)}}function Vi(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var t=n=n.next;do{if((t.tag&e)===e){var a=t.create;t.destroy=a()}t=t.next}while(t!==n)}}function dl(e){var n=e.ref;if(n!==null){var t=e.stateNode;switch(e.tag){case 5:e=t;break;default:e=t}typeof n=="function"?n(e):n.current=e}}function Yc(e){var n=e.alternate;n!==null&&(e.alternate=null,Yc(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Ue],delete n[fa],delete n[qr],delete n[Em],delete n[_m])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Qc(e){return e.tag===5||e.tag===3||e.tag===4}function Eo(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Qc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ml(e,n,t){var a=e.tag;if(a===5||a===6)e=e.stateNode,n?t.nodeType===8?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(t.nodeType===8?(n=t.parentNode,n.insertBefore(e,t)):(n=t,n.appendChild(e)),t=t._reactRootContainer,t!=null||n.onclick!==null||(n.onclick=di));else if(a!==4&&(e=e.child,e!==null))for(ml(e,n,t),e=e.sibling;e!==null;)ml(e,n,t),e=e.sibling}function pl(e,n,t){var a=e.tag;if(a===5||a===6)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(a!==4&&(e=e.child,e!==null))for(pl(e,n,t),e=e.sibling;e!==null;)pl(e,n,t),e=e.sibling}var ne=null,Me=!1;function ln(e,n,t){for(t=t.child;t!==null;)Gc(e,n,t),t=t.sibling}function Gc(e,n,t){if($e&&typeof $e.onCommitFiberUnmount=="function")try{$e.onCommitFiberUnmount(Li,t)}catch{}switch(t.tag){case 5:se||ft(t,n);case 6:var a=ne,i=Me;ne=null,ln(e,n,t),ne=a,Me=i,ne!==null&&(Me?(e=ne,t=t.stateNode,e.nodeType===8?e.parentNode.removeChild(t):e.removeChild(t)):ne.removeChild(t.stateNode));break;case 18:ne!==null&&(Me?(e=ne,t=t.stateNode,e.nodeType===8?mr(e.parentNode,t):e.nodeType===1&&mr(e,t),la(e)):mr(ne,t.stateNode));break;case 4:a=ne,i=Me,ne=t.stateNode.containerInfo,Me=!0,ln(e,n,t),ne=a,Me=i;break;case 0:case 11:case 14:case 15:if(!se&&(a=t.updateQueue,a!==null&&(a=a.lastEffect,a!==null))){i=a=a.next;do{var r=i,l=r.destroy;r=r.tag,l!==void 0&&(r&2||r&4)&&fl(t,n,l),i=i.next}while(i!==a)}ln(e,n,t);break;case 1:if(!se&&(ft(t,n),a=t.stateNode,typeof a.componentWillUnmount=="function"))try{a.props=t.memoizedProps,a.state=t.memoizedState,a.componentWillUnmount()}catch(s){$(t,n,s)}ln(e,n,t);break;case 21:ln(e,n,t);break;case 22:t.mode&1?(se=(a=se)||t.memoizedState!==null,ln(e,n,t),se=a):ln(e,n,t);break;default:ln(e,n,t)}}function _o(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var t=e.stateNode;t===null&&(t=e.stateNode=new Dm),n.forEach(function(a){var i=Zm.bind(null,e,a);t.has(a)||(t.add(a),a.then(i,i))})}}function ze(e,n){var t=n.deletions;if(t!==null)for(var a=0;ai&&(i=l),a&=~r}if(a=i,a=Y()-a,a=(120>a?120:480>a?480:1080>a?1080:1920>a?1920:3e3>a?3e3:4320>a?4320:1960*$m(a/1960))-a,10e?16:e,pn===null)var a=!1;else{if(e=pn,pn=null,_i=0,M&6)throw Error(S(331));var i=M;for(M|=4,_=e.current;_!==null;){var r=_,l=r.child;if(_.flags&16){var s=r.deletions;if(s!==null){for(var o=0;oY()-cs?Dn(e,0):us|=t),ye(e,n)}function af(e,n){n===0&&(e.mode&1?(n=za,za<<=1,!(za&130023424)&&(za=4194304)):n=1);var t=fe();e=nn(e,n),e!==null&&(Sa(e,n,t),ye(e,t))}function Xm(e){var n=e.memoizedState,t=0;n!==null&&(t=n.retryLane),af(e,t)}function Zm(e,n){var t=0;switch(e.tag){case 13:var a=e.stateNode,i=e.memoizedState;i!==null&&(t=i.retryLane);break;case 19:a=e.stateNode;break;default:throw Error(S(314))}a!==null&&a.delete(n),af(e,t)}var rf;rf=function(e,n,t){if(e!==null)if(e.memoizedProps!==n.pendingProps||he.current)ke=!0;else{if(!(e.lanes&t)&&!(n.flags&128))return ke=!1,Vm(e,n,t);ke=!!(e.flags&131072)}else ke=!1,F&&n.flags&1048576&&oc(n,hi,n.index);switch(n.lanes=0,n.tag){case 2:var a=n.type;ei(e,n),e=n.pendingProps;var i=gt(n,oe.current);vt(n,t),i=as(null,n,a,e,i,t);var r=is();return n.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,ve(a)?(r=!0,pi(n)):r=!1,n.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,ql(n),i.updater=Ai,n.stateNode=i,i._reactInternals=n,il(n,a,e,t),n=sl(null,n,a,!0,r,t)):(n.tag=0,F&&r&&Wl(n),ue(null,n,i,t),n=n.child),n;case 16:a=n.elementType;e:{switch(ei(e,n),e=n.pendingProps,i=a._init,a=i(a._payload),n.type=a,i=n.tag=bm(a),e=Ie(a,e),i){case 0:n=ll(null,n,a,e,t);break e;case 1:n=go(null,n,a,e,t);break e;case 11:n=yo(null,n,a,e,t);break e;case 14:n=jo(null,n,a,Ie(a.type,e),t);break e}throw Error(S(306,a,""))}return n;case 0:return a=n.type,i=n.pendingProps,i=n.elementType===a?i:Ie(a,i),ll(e,n,a,i,t);case 1:return a=n.type,i=n.pendingProps,i=n.elementType===a?i:Ie(a,i),go(e,n,a,i,t);case 3:e:{if(Dc(n),e===null)throw Error(S(387));a=n.pendingProps,r=n.memoizedState,i=r.element,pc(e,n),ji(n,a,null,t);var l=n.memoizedState;if(a=l.element,r.isDehydrated)if(r={element:a,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},n.updateQueue.baseState=r,n.memoizedState=r,n.flags&256){i=Et(Error(S(423)),n),n=So(e,n,a,t,i);break e}else if(a!==i){i=Et(Error(S(424)),n),n=So(e,n,a,t,i);break e}else for(ge=jn(n.stateNode.containerInfo.firstChild),Se=n,F=!0,Ke=null,t=dc(n,null,a,t),n.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(St(),a===i){n=tn(e,n,t);break e}ue(e,n,a,t)}n=n.child}return n;case 5:return kc(n),e===null&&nl(n),a=n.type,i=n.pendingProps,r=e!==null?e.memoizedProps:null,l=i.children,Xr(a,i)?l=null:r!==null&&Xr(a,r)&&(n.flags|=32),Fc(e,n),ue(e,n,l,t),n.child;case 6:return e===null&&nl(n),null;case 13:return Uc(e,n,t);case 4:return bl(n,n.stateNode.containerInfo),a=n.pendingProps,e===null?n.child=xt(n,null,a,t):ue(e,n,a,t),n.child;case 11:return a=n.type,i=n.pendingProps,i=n.elementType===a?i:Ie(a,i),yo(e,n,a,i,t);case 7:return ue(e,n,n.pendingProps,t),n.child;case 8:return ue(e,n,n.pendingProps.children,t),n.child;case 12:return ue(e,n,n.pendingProps.children,t),n.child;case 10:e:{if(a=n.type._context,i=n.pendingProps,r=n.memoizedProps,l=i.value,A(vi,a._currentValue),a._currentValue=l,r!==null)if(He(r.value,l)){if(r.children===i.children&&!he.current){n=tn(e,n,t);break e}}else for(r=n.child,r!==null&&(r.return=n);r!==null;){var s=r.dependencies;if(s!==null){l=r.child;for(var o=s.firstContext;o!==null;){if(o.context===a){if(r.tag===1){o=qe(-1,t&-t),o.tag=2;var u=r.updateQueue;if(u!==null){u=u.shared;var k=u.pending;k===null?o.next=o:(o.next=k.next,k.next=o),u.pending=o}}r.lanes|=t,o=r.alternate,o!==null&&(o.lanes|=t),tl(r.return,t,n),s.lanes|=t;break}o=o.next}}else if(r.tag===10)l=r.type===n.type?null:r.child;else if(r.tag===18){if(l=r.return,l===null)throw Error(S(341));l.lanes|=t,s=l.alternate,s!==null&&(s.lanes|=t),tl(l,t,n),l=r.sibling}else l=r.child;if(l!==null)l.return=r;else for(l=r;l!==null;){if(l===n){l=null;break}if(r=l.sibling,r!==null){r.return=l.return,l=r;break}l=l.return}r=l}ue(e,n,i.children,t),n=n.child}return n;case 9:return i=n.type,a=n.pendingProps.children,vt(n,t),i=Le(i),a=a(i),n.flags|=1,ue(e,n,a,t),n.child;case 14:return a=n.type,i=Ie(a,n.pendingProps),i=Ie(a.type,i),jo(e,n,a,i,t);case 15:return Vc(e,n,n.type,n.pendingProps,t);case 17:return a=n.type,i=n.pendingProps,i=n.elementType===a?i:Ie(a,i),ei(e,n),n.tag=1,ve(a)?(e=!0,pi(n)):e=!1,vt(n,t),Mc(n,a,i),il(n,a,i,t),sl(null,n,a,!0,e,t);case 19:return Bc(e,n,t);case 22:return Hc(e,n,t)}throw Error(S(156,n.tag))};function lf(e,n){return Ou(e,n)}function qm(e,n,t,a){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pe(e,n,t,a){return new qm(e,n,t,a)}function ps(e){return e=e.prototype,!(!e||!e.isReactComponent)}function bm(e){if(typeof e=="function")return ps(e)?1:0;if(e!=null){if(e=e.$$typeof,e===zl)return 11;if(e===Il)return 14}return 2}function wn(e,n){var t=e.alternate;return t===null?(t=Pe(e.tag,n,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=e.flags&14680064,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function ai(e,n,t,a,i,r){var l=2;if(a=e,typeof e=="function")ps(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case tt:return Un(t.children,i,r,n);case Ol:l=8,i|=8;break;case Pr:return e=Pe(12,t,n,i|2),e.elementType=Pr,e.lanes=r,e;case Nr:return e=Pe(13,t,n,i),e.elementType=Nr,e.lanes=r,e;case Lr:return e=Pe(19,t,n,i),e.elementType=Lr,e.lanes=r,e;case ku:return Fi(t,i,r,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case mu:l=10;break e;case pu:l=9;break e;case zl:l=11;break e;case Il:l=14;break e;case sn:l=16,a=null;break e}throw Error(S(130,e==null?e:typeof e,""))}return n=Pe(l,t,n,i),n.elementType=e,n.type=a,n.lanes=r,n}function Un(e,n,t,a){return e=Pe(7,e,a,n),e.lanes=t,e}function Fi(e,n,t,a){return e=Pe(22,e,a,n),e.elementType=ku,e.lanes=t,e.stateNode={isHidden:!1},e}function Sr(e,n,t){return e=Pe(6,e,null,n),e.lanes=t,e}function xr(e,n,t){return n=Pe(4,e.children!==null?e.children:[],e.key,n),n.lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function ep(e,n,t,a,i){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=tr(0),this.expirationTimes=tr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=tr(0),this.identifierPrefix=a,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function ks(e,n,t,a,i,r,l,s,o){return e=new ep(e,n,t,s,o),n===1?(n=1,r===!0&&(n|=8)):n=0,r=Pe(3,null,null,n),e.current=r,r.stateNode=e,r.memoizedState={element:a,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},ql(r),e}function np(e,n,t){var a=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(cf)}catch(e){console.error(e)}}cf(),uu.exports=we;var ff=uu.exports;const wr=Zo(ff);var zo=ff;Cr.createRoot=zo.createRoot,Cr.hydrateRoot=zo.hydrateRoot;/** * @remix-run/router v1.23.2 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function ya(){return ya=Object.assign?Object.assign.bind():function(e){for(var n=1;n"u")throw new Error(n)}function js(e,n){if(!e){typeof console<"u"&&console.warn(n);try{throw new Error(n)}catch{}}}function sp(){return Math.random().toString(36).substr(2,8)}function Mo(e,n){return{usr:e.state,key:e.key,idx:n}}function jl(e,n,t,a){return t===void 0&&(t=null),ya({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof n=="string"?Nt(n):n,{state:t,key:n&&n.key||a||sp()})}function Pi(e){let{pathname:n="/",search:t="",hash:a=""}=e;return t&&t!=="?"&&(n+=t.charAt(0)==="?"?t:"?"+t),a&&a!=="#"&&(n+=a.charAt(0)==="#"?a:"#"+a),n}function Nt(e){let n={};if(e){let t=e.indexOf("#");t>=0&&(n.hash=e.substr(t),e=e.substr(0,t));let a=e.indexOf("?");a>=0&&(n.search=e.substr(a),e=e.substr(0,a)),e&&(n.pathname=e)}return n}function op(e,n,t,a){a===void 0&&(a={});let{window:i=document.defaultView,v5Compat:r=!1}=a,l=i.history,s=kn.Pop,o=null,u=k();u==null&&(u=0,l.replaceState(ya({},l.state,{idx:u}),""));function k(){return(l.state||{idx:null}).idx}function m(){s=kn.Pop;let E=k(),d=E==null?null:E-u;u=E,o&&o({action:s,location:g.location,delta:d})}function h(E,d){s=kn.Push;let f=jl(g.location,E,d);u=k()+1;let p=Mo(f,u),v=g.createHref(f);try{l.pushState(p,"",v)}catch(w){if(w instanceof DOMException&&w.name==="DataCloneError")throw w;i.location.assign(v)}r&&o&&o({action:s,location:g.location,delta:1})}function y(E,d){s=kn.Replace;let f=jl(g.location,E,d);u=k();let p=Mo(f,u),v=g.createHref(f);l.replaceState(p,"",v),r&&o&&o({action:s,location:g.location,delta:0})}function j(E){let d=i.location.origin!=="null"?i.location.origin:i.location.href,f=typeof E=="string"?E:Pi(E);return f=f.replace(/ $/,"%20"),G(d,"No window.location.(origin|href) available to create URL for href: "+f),new URL(f,d)}let g={get action(){return s},get location(){return e(i,l)},listen(E){if(o)throw new Error("A history only accepts one active listener");return i.addEventListener(Io,m),o=E,()=>{i.removeEventListener(Io,m),o=null}},createHref(E){return n(i,E)},createURL:j,encodeLocation(E){let d=j(E);return{pathname:d.pathname,search:d.search,hash:d.hash}},push:h,replace:y,go(E){return l.go(E)}};return g}var Ko;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Ko||(Ko={}));function up(e,n,t){return t===void 0&&(t="/"),cp(e,n,t)}function cp(e,n,t,a){let i=typeof n=="string"?Nt(n):n,r=gs(i.pathname||"/",t);if(r==null)return null;let l=df(e);fp(l);let s=null;for(let o=0;s==null&&o{let o={relativePath:s===void 0?r.path||"":s,caseSensitive:r.caseSensitive===!0,childrenIndex:l,route:r};o.relativePath.startsWith("/")&&(G(o.relativePath.startsWith(a),'Absolute route path "'+o.relativePath+'" nested under path '+('"'+a+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),o.relativePath=o.relativePath.slice(a.length));let u=En([a,o.relativePath]),k=t.concat(o);r.children&&r.children.length>0&&(G(r.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),df(r.children,n,k,u)),!(r.path==null&&!r.index)&&n.push({path:u,score:yp(u,r.index),routesMeta:k})};return e.forEach((r,l)=>{var s;if(r.path===""||!((s=r.path)!=null&&s.includes("?")))i(r,l);else for(let o of mf(r.path))i(r,l,o)}),n}function mf(e){let n=e.split("/");if(n.length===0)return[];let[t,...a]=n,i=t.endsWith("?"),r=t.replace(/\?$/,"");if(a.length===0)return i?[r,""]:[r];let l=mf(a.join("/")),s=[];return s.push(...l.map(o=>o===""?r:[r,o].join("/"))),i&&s.push(...l),s.map(o=>e.startsWith("/")&&o===""?"/":o)}function fp(e){e.sort((n,t)=>n.score!==t.score?t.score-n.score:jp(n.routesMeta.map(a=>a.childrenIndex),t.routesMeta.map(a=>a.childrenIndex)))}const dp=/^:[\w-]+$/,mp=3,pp=2,kp=1,hp=10,vp=-2,Ao=e=>e==="*";function yp(e,n){let t=e.split("/"),a=t.length;return t.some(Ao)&&(a+=vp),n&&(a+=pp),t.filter(i=>!Ao(i)).reduce((i,r)=>i+(dp.test(r)?mp:r===""?kp:hp),a)}function jp(e,n){return e.length===n.length&&e.slice(0,-1).every((a,i)=>a===n[i])?e[e.length-1]-n[n.length-1]:0}function gp(e,n,t){let{routesMeta:a}=e,i={},r="/",l=[];for(let s=0;s{let{paramName:h,isOptional:y}=k;if(h==="*"){let g=s[m]||"";l=r.slice(0,r.length-g.length).replace(/(.)\/+$/,"$1")}const j=s[m];return y&&!j?u[h]=void 0:u[h]=(j||"").replace(/%2F/g,"/"),u},{}),pathname:r,pathnameBase:l,pattern:e}}function xp(e,n,t){n===void 0&&(n=!1),t===void 0&&(t=!0),js(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let a=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(l,s,o)=>(a.push({paramName:s,isOptional:o!=null}),o?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(a.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):t?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,n?void 0:"i"),a]}function wp(e){try{return e.split("/").map(n=>decodeURIComponent(n).replace(/\//g,"%2F")).join("/")}catch(n){return js(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+n+").")),e}}function gs(e,n){if(n==="/")return e;if(!e.toLowerCase().startsWith(n.toLowerCase()))return null;let t=n.endsWith("/")?n.length-1:n.length,a=e.charAt(t);return a&&a!=="/"?null:e.slice(t)||"/"}const Ep=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,_p=e=>Ep.test(e);function Cp(e,n){n===void 0&&(n="/");let{pathname:t,search:a="",hash:i=""}=typeof e=="string"?Nt(e):e,r;if(t)if(_p(t))r=t;else{if(t.includes("//")){let l=t;t=t.replace(/\/\/+/g,"/"),js(!1,"Pathnames cannot have embedded double slashes - normalizing "+(l+" -> "+t))}t.startsWith("/")?r=Vo(t.substring(1),"/"):r=Vo(t,n)}else r=n;return{pathname:r,search:Np(a),hash:Lp(i)}}function Vo(e,n){let t=n.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?t.length>1&&t.pop():i!=="."&&t.push(i)}),t.length>1?t.join("/"):"/"}function Er(e,n,t,a){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+n+"` field ["+JSON.stringify(a)+"]. Please separate it out to the ")+("`to."+t+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function Tp(e){return e.filter((n,t)=>t===0||n.route.path&&n.route.path.length>0)}function pf(e,n){let t=Tp(e);return n?t.map((a,i)=>i===t.length-1?a.pathname:a.pathnameBase):t.map(a=>a.pathnameBase)}function kf(e,n,t,a){a===void 0&&(a=!1);let i;typeof e=="string"?i=Nt(e):(i=ya({},e),G(!i.pathname||!i.pathname.includes("?"),Er("?","pathname","search",i)),G(!i.pathname||!i.pathname.includes("#"),Er("#","pathname","hash",i)),G(!i.search||!i.search.includes("#"),Er("#","search","hash",i)));let r=e===""||i.pathname==="",l=r?"/":i.pathname,s;if(l==null)s=t;else{let m=n.length-1;if(!a&&l.startsWith("..")){let h=l.split("/");for(;h[0]==="..";)h.shift(),m-=1;i.pathname=h.join("/")}s=m>=0?n[m]:"/"}let o=Cp(i,s),u=l&&l!=="/"&&l.endsWith("/"),k=(r||l===".")&&t.endsWith("/");return!o.pathname.endsWith("/")&&(u||k)&&(o.pathname+="/"),o}const En=e=>e.join("/").replace(/\/\/+/g,"/"),Pp=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Np=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Lp=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function Rp(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const hf=["post","put","patch","delete"];new Set(hf);const Op=["get",...hf];new Set(Op);/** * React Router v6.30.3 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function ja(){return ja=Object.assign?Object.assign.bind():function(e){for(var n=1;n{s.current=!0}),x.useCallback(function(u,k){if(k===void 0&&(k={}),!s.current)return;if(typeof u=="number"){a.go(u);return}let m=kf(u,JSON.parse(l),r,k.relative==="path");e==null&&n!=="/"&&(m.pathname=m.pathname==="/"?n:En([n,m.pathname])),(k.replace?a.replace:a.push)(m,k.state,k)},[n,a,l,r,e])}function Ap(){let{matches:e}=x.useContext(Rn),n=e[e.length-1];return n?n.params:{}}function jf(e,n){let{relative:t}=n===void 0?{}:n,{future:a}=x.useContext(Xn),{matches:i}=x.useContext(Rn),{pathname:r}=Ji(),l=JSON.stringify(pf(i,a.v7_relativeSplatPath));return x.useMemo(()=>kf(e,JSON.parse(l),r,t==="path"),[e,l,r,t])}function Vp(e,n){return Hp(e,n)}function Hp(e,n,t,a){_a()||G(!1);let{navigator:i}=x.useContext(Xn),{matches:r}=x.useContext(Rn),l=r[r.length-1],s=l?l.params:{};l&&l.pathname;let o=l?l.pathnameBase:"/";l&&l.route;let u=Ji(),k;if(n){var m;let E=typeof n=="string"?Nt(n):n;o==="/"||(m=E.pathname)!=null&&m.startsWith(o)||G(!1),k=E}else k=u;let h=k.pathname||"/",y=h;if(o!=="/"){let E=o.replace(/^\//,"").split("/");y="/"+h.replace(/^\//,"").split("/").slice(E.length).join("/")}let j=up(e,{pathname:y}),g=$p(j&&j.map(E=>Object.assign({},E,{params:Object.assign({},s,E.params),pathname:En([o,i.encodeLocation?i.encodeLocation(E.pathname).pathname:E.pathname]),pathnameBase:E.pathnameBase==="/"?o:En([o,i.encodeLocation?i.encodeLocation(E.pathnameBase).pathname:E.pathnameBase])})),r,t,a);return n&&g?x.createElement(Wi.Provider,{value:{location:ja({pathname:"/",search:"",hash:"",state:null,key:"default"},k),navigationType:kn.Pop}},g):g}function Fp(){let e=Qp(),n=Rp(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),t=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return x.createElement(x.Fragment,null,x.createElement("h2",null,"Unexpected Application Error!"),x.createElement("h3",{style:{fontStyle:"italic"}},n),t?x.createElement("pre",{style:i},t):null,null)}const Dp=x.createElement(Fp,null);class Up extends x.Component{constructor(n){super(n),this.state={location:n.location,revalidation:n.revalidation,error:n.error}}static getDerivedStateFromError(n){return{error:n}}static getDerivedStateFromProps(n,t){return t.location!==n.location||t.revalidation!=="idle"&&n.revalidation==="idle"?{error:n.error,location:n.location,revalidation:n.revalidation}:{error:n.error!==void 0?n.error:t.error,location:t.location,revalidation:n.revalidation||t.revalidation}}componentDidCatch(n,t){console.error("React Router caught the following error during render",n,t)}render(){return this.state.error!==void 0?x.createElement(Rn.Provider,{value:this.props.routeContext},x.createElement(vf.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Bp(e){let{routeContext:n,match:t,children:a}=e,i=x.useContext(Ss);return i&&i.static&&i.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=t.route.id),x.createElement(Rn.Provider,{value:n},a)}function $p(e,n,t,a){var i;if(n===void 0&&(n=[]),t===void 0&&(t=null),a===void 0&&(a=null),e==null){var r;if(!t)return null;if(t.errors)e=t.matches;else if((r=a)!=null&&r.v7_partialHydration&&n.length===0&&!t.initialized&&t.matches.length>0)e=t.matches;else return null}let l=e,s=(i=t)==null?void 0:i.errors;if(s!=null){let k=l.findIndex(m=>m.route.id&&(s==null?void 0:s[m.route.id])!==void 0);k>=0||G(!1),l=l.slice(0,Math.min(l.length,k+1))}let o=!1,u=-1;if(t&&a&&a.v7_partialHydration)for(let k=0;k=0?l=l.slice(0,u+1):l=[l[0]];break}}}return l.reduceRight((k,m,h)=>{let y,j=!1,g=null,E=null;t&&(y=s&&m.route.id?s[m.route.id]:void 0,g=m.route.errorElement||Dp,o&&(u<0&&h===0?(Xp("route-fallback"),j=!0,E=null):u===h&&(j=!0,E=m.route.hydrateFallbackElement||null)));let d=n.concat(l.slice(0,h+1)),f=()=>{let p;return y?p=g:j?p=E:m.route.Component?p=x.createElement(m.route.Component,null):m.route.element?p=m.route.element:p=k,x.createElement(Bp,{match:m,routeContext:{outlet:k,matches:d,isDataRoute:t!=null},children:p})};return t&&(m.route.ErrorBoundary||m.route.errorElement||h===0)?x.createElement(Up,{location:t.location,revalidation:t.revalidation,component:g,error:y,children:f(),routeContext:{outlet:null,matches:d,isDataRoute:!0}}):f()},null)}var gf=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(gf||{}),Sf=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Sf||{});function Wp(e){let n=x.useContext(Ss);return n||G(!1),n}function Jp(e){let n=x.useContext(zp);return n||G(!1),n}function Yp(e){let n=x.useContext(Rn);return n||G(!1),n}function xf(e){let n=Yp(),t=n.matches[n.matches.length-1];return t.route.id||G(!1),t.route.id}function Qp(){var e;let n=x.useContext(vf),t=Jp(),a=xf();return n!==void 0?n:(e=t.errors)==null?void 0:e[a]}function Gp(){let{router:e}=Wp(gf.UseNavigateStable),n=xf(Sf.UseNavigateStable),t=x.useRef(!1);return yf(()=>{t.current=!0}),x.useCallback(function(i,r){r===void 0&&(r={}),t.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,ja({fromRouteId:n},r)))},[e,n])}const Ho={};function Xp(e,n,t){Ho[e]||(Ho[e]=!0)}function Zp(e,n){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function Ye(e){G(!1)}function qp(e){let{basename:n="/",children:t=null,location:a,navigationType:i=kn.Pop,navigator:r,static:l=!1,future:s}=e;_a()&&G(!1);let o=n.replace(/^\/*/,"/"),u=x.useMemo(()=>({basename:o,navigator:r,static:l,future:ja({v7_relativeSplatPath:!1},s)}),[o,s,r,l]);typeof a=="string"&&(a=Nt(a));let{pathname:k="/",search:m="",hash:h="",state:y=null,key:j="default"}=a,g=x.useMemo(()=>{let E=gs(k,o);return E==null?null:{location:{pathname:E,search:m,hash:h,state:y,key:j},navigationType:i}},[o,k,m,h,y,j,i]);return g==null?null:x.createElement(Xn.Provider,{value:u},x.createElement(Wi.Provider,{children:t,value:g}))}function bp(e){let{children:n,location:t}=e;return Vp(gl(n),t)}new Promise(()=>{});function gl(e,n){n===void 0&&(n=[]);let t=[];return x.Children.forEach(e,(a,i)=>{if(!x.isValidElement(a))return;let r=[...n,i];if(a.type===x.Fragment){t.push.apply(t,gl(a.props.children,r));return}a.type!==Ye&&G(!1),!a.props.index||!a.props.children||G(!1);let l={id:a.props.id||r.join("-"),caseSensitive:a.props.caseSensitive,element:a.props.element,Component:a.props.Component,index:a.props.index,path:a.props.path,loader:a.props.loader,action:a.props.action,errorElement:a.props.errorElement,ErrorBoundary:a.props.ErrorBoundary,hasErrorBoundary:a.props.ErrorBoundary!=null||a.props.errorElement!=null,shouldRevalidate:a.props.shouldRevalidate,handle:a.props.handle,lazy:a.props.lazy};a.props.children&&(l.children=gl(a.props.children,r)),t.push(l)}),t}/** * React Router DOM v6.30.3 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function Sl(){return Sl=Object.assign?Object.assign.bind():function(e){for(var n=1;n=0)&&(t[i]=e[i]);return t}function nk(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function tk(e,n){return e.button===0&&(!n||n==="_self")&&!nk(e)}const ak=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],ik="6";try{window.__reactRouterVersion=ik}catch{}const rk="startTransition",Fo=Gf[rk];function lk(e){let{basename:n,children:t,future:a,window:i}=e,r=x.useRef();r.current==null&&(r.current=lp({window:i,v5Compat:!0}));let l=r.current,[s,o]=x.useState({action:l.action,location:l.location}),{v7_startTransition:u}=a||{},k=x.useCallback(m=>{u&&Fo?Fo(()=>o(m)):o(m)},[o,u]);return x.useLayoutEffect(()=>l.listen(k),[l,k]),x.useEffect(()=>Zp(a),[a]),x.createElement(qp,{basename:n,children:t,location:s.location,navigationType:s.action,navigator:l,future:a})}const sk=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ok=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Yi=x.forwardRef(function(n,t){let{onClick:a,relative:i,reloadDocument:r,replace:l,state:s,target:o,to:u,preventScrollReset:k,viewTransition:m}=n,h=ek(n,ak),{basename:y}=x.useContext(Xn),j,g=!1;if(typeof u=="string"&&ok.test(u)&&(j=u,sk))try{let p=new URL(window.location.href),v=u.startsWith("//")?new URL(p.protocol+u):new URL(u),w=gs(v.pathname,y);v.origin===p.origin&&w!=null?u=w+v.search+v.hash:g=!0}catch{}let E=Ip(u,{relative:i}),d=uk(u,{replace:l,state:s,target:o,preventScrollReset:k,relative:i,viewTransition:m});function f(p){a&&a(p),p.defaultPrevented||d(p)}return x.createElement("a",Sl({},h,{href:j||E,onClick:g||r?a:f,ref:t,target:o}))});var Do;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Do||(Do={}));var Uo;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Uo||(Uo={}));function uk(e,n){let{target:t,replace:a,state:i,preventScrollReset:r,relative:l,viewTransition:s}=n===void 0?{}:n,o=Mp(),u=Ji(),k=jf(e,{relative:l});return x.useCallback(m=>{if(tk(m,t)){m.preventDefault();let h=a!==void 0?a:Pi(u)===Pi(k);o(e,{replace:h,state:i,preventScrollReset:r,relative:l,viewTransition:s})}},[u,o,k,a,i,t,e,r,l,s])}const ck="_footer_m7za0_1",fk="_container_m7za0_9",dk="_middle_m7za0_16",mk="_logo_m7za0_22",pk="_right_m7za0_28",kk="_left_m7za0_47",qn={footer:ck,container:fk,middle:dk,logo:mk,right:pk,left:kk},hk=()=>c.jsx("footer",{className:qn.footer,children:c.jsxs("div",{className:qn.container,children:[c.jsxs("div",{className:qn.left,children:["Livonsaari & Palva & Velkuanmaa",c.jsx("br",{}),"Naantalin saaristo",c.jsx("br",{})]}),c.jsxs("div",{className:qn.middle,children:[c.jsx(Yi,{to:"/#nav-bar",children:c.jsx("img",{className:qn.logo,src:"/small-logo.png",alt:"small logo"})}),c.jsxs("div",{children:[c.jsx("a",{href:"https://gitea.tietokonepaja.fi/tietokonepaja/runosaari",children:"lähdekoodi"})," by ",c.jsx("a",{href:"https://tietokonepaja.fi",children:"Livonsaaren Tietokonepaja"})]})]}),c.jsxs("div",{className:qn.right,children:["Katariina Vuorinen ",c.jsx("br",{}),c.jsx("a",{href:"mailto:runosaari@gmail.com",children:"runosaari@gmail.com"})]})]})}),vk="_logoContainer_e2rom_1",yk="_logo_e2rom_1",jk="_logoImage_e2rom_15",gk="_logoCredits_e2rom_19",Wa={logoContainer:vk,logo:yk,logoImage:jk,logoCredits:gk},Sk=()=>c.jsx(Yi,{to:"/",children:c.jsx("section",{className:Wa.logoContainer,children:c.jsxs("div",{className:Wa.logo,id:"logo-start",children:[c.jsxs("picture",{children:[c.jsx("source",{srcSet:"/runosaari-logo_small.jpg",media:"(max-width: 600px)"}),c.jsx("source",{srcSet:"/runosaari-logo.jpg"}),c.jsx("img",{src:"/runosaari-logo.jpg",alt:"Runosaari logo",className:Wa.logoImage})]}),c.jsx("div",{className:Wa.logoCredits,children:c.jsx("div",{children:"@Sanna Hukkanen"})})]})})}),xk="_indexContainer_lec4n_1",wk="_archiveLinkText_lec4n_17",Bo={indexContainer:xk,archiveLinkText:wk},Ek="_leadContainer_bka7o_1",_k="_leadTitle_bka7o_8",$o={leadContainer:Ek,leadTitle:_k},Ck=()=>c.jsx("div",{className:$o.leadContainer,children:c.jsx("h2",{className:$o.leadTitle,children:"Kiitos tämän vuoden Runosaaresta! Tervetuloa taas ensi vuonna 3.-5.6.2027"})});var wf={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Wo=te.createContext&&te.createContext(wf),_n=function(){return _n=Object.assign||function(e){for(var n,t=1,a=arguments.length;tc.jsxs("div",{className:Bo.indexContainer,children:[c.jsx("h1",{children:"Runosaari"}),c.jsx(Ck,{}),c.jsxs(Yi,{to:"/archive",children:[c.jsx("span",{className:Bo.archiveLinkText,children:"Aiempien vuosien esiintyjiä"}),c.jsx(_f,{fontSize:20})]})]}),Lk="_performerContainer_1ohrh_1",Rk="_performerTextContainer_1ohrh_18",Ok="_performerTitle_1ohrh_24",zk="_performerImage_1ohrh_40",Ik="_archiveLinkText_1ohrh_65",Ft={performerContainer:Lk,performerTextContainer:Rk,performerTitle:Ok,performerImage:zk,archiveLinkText:Ik},Mk="_openingChevron_1uqkp_1",Kk="_page_1uqkp_12",Ak="_moreInfoLaterText_1uqkp_28",ce={openingChevron:Mk,page:Kk,moreInfoLaterText:Ak},Cf=[{name:"Olli Sinivaara",paragraphs:["Olli Sinivaara (s. 1980) on palkittu ja arvostettu runoilija. Hänen kuudes runokokoelmansa Puut (2021) voitti Ylen Tanssiva karhu -runopalkinnon."," Aiemmin Sinivaara on voittanut muun muassa Kalevi Jäntin palkinnon vuonna 2007 ilmestyneellä runokokoelmallaan Palava maa.","Sinivaaran runoja on julkaistu monilla kielillä, mm. englanniksi, ranskaksi, saksaksi ja italiaksi. Sinivaara on myös suomentanut ranskalaista filosofiaa ja runoutta."," Kuva: Liisa Takala"],id:"sinivaara"},{name:"Laakso ja Siljamäki",paragraphs:["Punainen aistikirja, dionyysisiä muistiinpanoja on vimmainen päiväkirjaromaani, armoton transkriptio kirjailijan ja klovnin rakkaussuhteesta, joka sytyttää roihuun muistikirjan. Kirjailija Laura Laakson ja klovni-kuvittaja-muusikko Dodo Siljamäen yhteisteos piehtaroi hurman ja haikean ikiaikaisella sirkusareenalla ja mouruaa hyväillen taiteidenvälistä hellää."],id:"laakso_siljamaki"},{name:"Juurakko",paragraphs:["Väkevää tarinankerrontaa ja juurimusiikkia yhdistelevä Juurakko puhkuu yhteisöllistä ja maanläheistä tunnelmaa. Yhtye risteyttää suomenkielisen blueslaulannan ja perinteisen kotimaisen soittimiston raikkaalla skiffle-asenteella eikä kaihda eriskummallisiakaan tarinoita. Rouhea Juurakko-blues vie ajoittain syvälle rämeelle ja toisinaan tanssittaa kepeästi laivan kannella. ","Juurakko valittiin Vuoden Artistiksi vuoden 2020 Etnogaalassa. Yhtye on julkaissut neljä studioalbumia sekä kuunnelmallisen Juurimultaa-podcastsarjan. Kansainvälisesti keikkailevaa bändiä on kiitelty omintakeisen musiikkityylinsä lisäksi lavalta säteilevästä positiivisesta energiasta.","HIGHLIGHTS:","TALLINN MUSIC WEEK 2025 (showcase), FESTIVAL LES TRAVERSÉES TATIHOU (FR) 2019, KORRÖ FOLKMUSIKFESTIVAL (SE) 2022, FIGURA FESTSPIELE (DK) 2019/2024, SaltFest, Kaustinen Folk Music Festival, Puistoblues, G Livelab, Haapavesi Folk, Tampereen sävel, Kalott JazzBlues","JUURAKKO:","LAURA KAARTINEN - laulu, matkaharmoni, lyömäsoittimet","EIJA KANKAANRANTA - kanteleet","KAISA SAARIKORPI - laulu, sikarilaatikkosoittimet, kitarat, lyömäsoittimet","MINSKU TAMMELA - laulu, jouhikko, kampa, munniharppu, lyömäsoittimet","ANNA WIKSTEN - laulu, plankku, lyömäsoittimet","MYYRI SYSIVESI - miksaus"],id:"juurakko"},{name:"Saila Susiluoto",paragraphs:["Saila Susiluoto (s. 1971) on Perniössä asuva kirjailija. Hän on julkaissut useita runoteoksia, romaanin, Antikytheran-iPad-sovelluksen sekä auditiivisen taideteoksen Oratorio. Susiluoto on palkittu Kalevi Jäntin palkinnolla, Suomi-palkinnolla ja Einari Vuorela -runopalkinnolla. Carmen oli Pohjoismaiden neuvoston kirjallisuuspalkintoehdokkaana vuonna 2012. Vuonna 2024 ilmestyi kiitetty Akheron-runokokoelma ja vuonna 2025 runoteos Rituaali (Bokeh). Susiluodon runoja on käännetty viidelletoista kielelle."],id:"susiluoto"},{name:"Markku Pääskynen",paragraphs:["Markku Pääskynen (s. 1973) on Helsingissä asuva kirjailija. Hän on koulutukseltaan filosofian maisteri ja julkaissut romaaneja, novelleja ja esseitä. Lisäksi hän on suomentanut lyriikkaa mm. nykykreikasta.","Pääskynen on soittanut ud-luuttua jo yli kaksi vuosikymmentä.","Kuva: Saila Susiluoto"],id:"paaskynen"},{name:"Pegasos (Trio)",paragraphs:["Pegasos on helsinkiläinen 6 muusikon yhtye, joka yhdistelee musiikissaan indiefolkia, -popia ja -rockia. Vuonna 2015 alkunsa saaneen yhtyeen soundi perustuu kahden laulajan kehuja niittäneisiin harmonioihin, jotka taipuvat niin herkkyyteen kuin nostattavaan voimallisuuteen. Pegasosta on kiitetty poikkeuksellisen tarkkanäköisistä lyriikoista ja keikoista, joilla yhtye hurmaa kuulijan vilpittömillä spiikeillään ja värikylläisellä soinnillaan.","Yhtyeen kolmas pitkäsoitto Hyvä noita näki päivänvalon maaliskuussa 2026. Erilaisuutta ja normien rikkomista juhlistava konseptialbumi herätti yleisön kiinnostuksen jo singleillään, keräten ylistystä somessa sekä soittoa Radio Suomessa ja Radio Helsingissä. Radio Suomen Levylautakunnan lähes täysin pistein voittanutta progressiivista folkrock-teosta Toivon kuvia on luonnehdittu mm. ”taideteokseksi” ja ”rohkeiden valintojen ja tekojen” kappaleeksi, jossa on ”järisyttävän hyvä kertsi”.","Runosaaressa Pegasos esittää triona riisuttuja versioita Hyvä noita-albumilta."],id:"pegasos"},{name:"Helena Sinervo",paragraphs:["Helmikuussa ilmestynyt Tiikerin tehtävät on Helena Sinervon 13. runoteos. Runojen lisäksi hän on kirjoittanut romaaneja, esseitä ja lastenkirjoja sekä suomentanut runoutta. Sinervolle on myönnetty Finlandia-palkinto ja Aleksis Kiven rahaston palkinto sekä kahdesti Tanssiva karhu. Hän on taiteilijaprofessori, ja hänen runouttaan on käännetty yli 30 kielelle."],id:"helena-sinervo"},{name:"Olli Heikkonen",paragraphs:["Olli Heikkonen on Helsingissä asuva runoilija, jolta on julkaistu seitsemän kokoelmaa. Niistä viimeinen Hallitut vallat (Teos) ilmestyi syksyllä 2025. Lisäksi hän on kääntänyt ja toimittanut liiviläisen nykyrunouden antologian Kerran olin taivaan suolajärvi (Aviador, 2022)."],id:"olli-heikkonen"},{name:"Häivä",paragraphs:["Häivä on genrerajoja rikkova poeettinen äänimatka, joka yhdistää omaperäisellä tavalla live-elektroniikkaa, kitaraa ja ihmisen ääntä. Häivä on värisevä tila, jossa ääni, valo, hiljaisuus ja varjot punoutuvat yhteen vieden kuulijan itsensä läpäisevälle matkalle. Se puhuttelee aistimusten ja tunteiden kielellä ja pysähdyttää, kiihdyttää, pitää otteessaan ja tarvittaessa päästää irti.","Guitar and live electronics, Matti Salo","Vocals, Riia Muurimaa"],id:"haiva"},{name:"Jouni Inkala",paragraphs:["Jouni Inkala syntyi 1966 ja on julkaiseva poeetta vuodesta 1992. Viidentoista runoteoksen lisäksi hän on kirjoittanut draamaa niin radioon kuin näyttämölle. J.H. Erkon esikoiskirjapalkinnon (1992) sekä Einari Vuorela -runopalkinnon (2005) lisäksi hän sai Kalevi Saxell -runopalkinnon hopeapalkinnon vuonna 2024. Häneltä ovat ilmestyneet valitut runot sekä italiaksi että kahdesti saksaksi. Runovierailuja ulkomailla Inkalalle on kertynyt tähän mennessä kolmekymmentäkuusi, viimeisimmät Roomaan ja Genovaan vuonna 2024.","Vuonna 2006 Inkala sisällytettiin Routledge-kustantamon toimittamaan (Taylor & Francis Group. London and New York) INTERNATIONAL WHO´S WHO IN POETRY -hakuteokseen."],id:"jouni-inkala"},{name:"Juha Kulmala & Jumbo",paragraphs:["Juha Kulmala & Jumbo! yhdistää runoa ja soittoa sähköisesti ja ilman kaavaa. Alkuperäinen Jumbohan oli sudanilainen elefantti, me olemme lyyrisen savannin modernit törisijät.","Kokoonpano on esiintynyt monilla eri nimillä ja säädöillä, tekemisen ytimessä on kuitenkin ollut aina sanan mahti, avaruuden valloitus ja boom boom boom."],id:"kulmala"},{name:"Outi-Illuusia Parviainen",paragraphs:["Lavarunoilija Outi-Illuusia Parviaisen runot ovat rytmisiä ja värikkäitä. Niissä pysähdytään katoavan hetken yksityiskohtiin, toisen ihmisen äärelle, suuriin tunteisiin ja yksinäisyyteen. Lavalla Parviainen päästää sanat valloilleen ja juopuu läsnäolosta yhdessä yleisön kanssa.","Hän on julkaissut neljä runoteosta ja kirjoittaa parhaillaan viidettä.","Viimeisin teos Olen niitty, odotan (Aviador, 2025) käsitteli tahatonta lapsettomuutta ja se nähtiin myös näyttämöteoksena. Runosaaressa taas kuullaan tarttuvia tekstejä ihmisen sisimmän tiheydestä ja rakkauden kitkeryydestä. "],id:"outi-illuusia"},{name:"Katariina Vuorinen",paragraphs:["Katariina Vuorinen on maailmassa elävä runoilija, joka viettää pohjoisen valoisat ajat meren saaressa Velkualla, ja pimeät kuut Chilen Andeilla sekä Valparaísossa, kiehtovimmassa kaupungissa. Tuntemattomien seutujen koluaminen on hänelle elinehto.","Vuonna 2018 hän löysi nomadivuosiensa keskeltä maagisen Velkuanmaan saaren, ja tiesi heti paikan kutsuvan runon henkiä saaristoon. Vuonna 2021 unelma toteutui ja hän loi Runosaaren, joka jatkuu nyt vuosittaisena tapahtumana Naantalin saaristossa.","Voimallisten näkyjen, rytmin ja mielen liikkeiden tarkentamisen taiturina tunnettu Vuorinen on julkaissut muiden teosten ohella kuusi runokokoelmaa, joista viimeisin, Kesän oraakkeli (Aviador), ilmestyi 2025.","Vuorisen edellinen teos, Myöhempien kesien jumalat, Los dioses de los veranos ulteriores (Aviador, 2022) julkaistiin kaksikielisenä laitoksena, suomeksi ja espanjaksi. Sen aistivoimaisen tarkka ja vuolas runous on hurmannut yleisöjä etenkin Latinalaisessa Amerikassa.","Maailmassa Vuorisen runoja voi lukea 14 kielellä."],id:"katariina-vuorinen"},{name:"Zoila",paragraphs:["Zoila Forss-Crespo Moreyra on perulaissyntyinen suomalainen runoilija ja kääntäjä. Hän on julkaissut runokirjat ”Revontuli”, ”Syytön harppuuna” ja ”Eleonor y otras hierbas” (suom. Eleonor-ja-muut-yrtit), ja toimittanut runoantologian ”Hologrammi”. Hän sai Nihil Interitin Runoteko-palkinnon vuonna 2023 Turun kirjamessuilla. Forssin runoja on julkaistu eri kirjallisuuslehdissä ja antologioissa, kuten monikielisessä Sulavassa (Suomen PEN-Finnish PEN 2021) ja osana maailmanlaajuisen käännösrunouden teoskokonaisuutta Purple Ink (Language and Literature departments of Brown University, USA).","Hän kääntää erityisesti runoutta ja proosaa."],id:"zoila"},{name:"Djangomania",paragraphs:["Djangomania on viulisti-laulaja Arto Nybomin, kontrabasisti Kari Korpisen, haitaristi Johannes Niskasen ja kitaristi Vesa Tompurin muodostama jazzyhtye. Runosaareen yhtye tulee Nybomin ja Tompurin muodostamana duona."],id:"djangomania"}];function xl(){return xl=Object.assign?Object.assign.bind():function(e){for(var n=1;n{const[e,n]=x.useState([]);x.useEffect(()=>{let a=[];Cf.map(i=>{let r={...i,showDesc:!1};a.push(r)}),n(a)},[]);const t=a=>{let i;i=e.map(r=>(r.id===a&&(r.showDesc=!r.showDesc),r)),n(i)};return c.jsxs("section",{className:ce.page,children:[c.jsx("h1",{children:"Esiintyjät"}),e.length!==0?e.map(a=>c.jsxs("div",{className:Ft.performerContainer,children:[c.jsx("img",{className:Ft.performerImage,src:"/performers/2026/"+a.id+".jpg",width:100,height:100,loading:"lazy",alt:a.name+" image"}),c.jsxs("div",{className:Ft.performerTextContainer,children:[c.jsxs("div",{className:Ft.performerTitle,onClick:()=>t(a.id),children:[c.jsx("h2",{children:a.name}),c.jsx("button",{className:ce.openingChevron,children:a.showDesc?c.jsx(fn,{size:"3rem"}):c.jsx(dn,{size:"3rem"})})]}),c.jsx(Be,{in:a.showDesc,timeout:1e3,classNames:"fadeTransition",children:a.showDesc?c.jsx("div",{children:a.paragraphs.map((i,r)=>c.jsx("p",{children:i.toString()},r))}):c.jsx("span",{})}),c.jsx("hr",{})]})]},a.id)):c.jsx("i",{className:ce.moreInfoLaterText,children:"Lisätietoja tulossa myöhemmin..."}),c.jsxs(Yi,{to:"/archive",children:[c.jsx("span",{className:Ft.archiveLinkText,children:"Aiempien vuosien esiintyjiä"}),c.jsx(_f,{fontSize:20})]})]})},Bk="_performerContainer_3hx70_1",Qo={performerContainer:Bk},Lf=[{name:"Kauko Röyhkä & Severi Pyysalo",paragraphs:["Kauko Röyhkän ja Severi Pyysalon epätodennäköinen duo on musisoinut yhdessä jo    15 vuotta. Kaksikko on levyttänyt lp:n Turmion suurherttua (Svart 2017). Keikkasetti koostuu enimmikseen Kauko Röyhkän tunnetuimmista lauluista, joihin Severi Pyysalon vibrafoni lisää taidokkaan jazzkuorrutuksen."],id:"royhka-pyysalo"},{name:"Uhrijuhla",paragraphs:["Laulaja Olga Välimaan lämmin ääni johdattaa kuulijan unenomaiseen toiseuteen. Uhrijuhla-yhtye on levyttänyt kaksi albumillista runollista ja melodisesti rikasta musiikkia, jollaista nykyään kuulee enää harvoin. "],id:"uhrijuhla"},{name:"Juha Kulmala + Positroninen Runo-orkesteri!",paragraphs:["Juha Kulmala + Positroninen Runo-orkesteri on lyyrinen ufo, jonka ohjaimia vääntävät runoilija Juha Kulmala ja muusikko Pekka Tolonen. Tulemme Runosaareen nyt jo viidettä kertaa ja setissä on jälleen uutta ja ajatonta, kaunista ja purevaa. Runoutta ja sähköistä musiikkia.","Juha Kulmala on turkulainen runoilija, jolta on julkaistu 6 kokoelmaa, niistä viimeisin on RESET (Poesia 2022). Jarkko Laine -kirjallisuuspalkinto 2011, Tanssiva karhu -runopalkinto 2014, Wsoy:n kirjallisuussäätiön tunnustuspalkinto 2022. ”Juha Kulmala on ehkä Suomen luotettavin runoilija, mikä ei tarkoita, että hän olisi tylsä.” (Vesa Rantama, Keskisuomalainen)","Pekka Tolonen on monitaitoinen muusikko, joka on tehnyt yhteistyötä Kulmalan ja muidenkin runoilijoiden kanssa eri kokoonpanoissa jo toistakymmentä vuotta. "],id:"kulmala"},{name:"Santtu Puukka",paragraphs:["Santtu Puukka (s.1972) on Vantaalainen kirjailija. Hänen viides runokokoelma ilmestyy syksyksi Enostonen julkaisemana."],id:"puukka"},{name:"Maaria Päivinen",paragraphs:["Maaria Päivinen on Tohmajärvellä syntynyt, nykyisin Kotkassa asuva kirjailija. Häneltä on ilmestynyt kaksi runokokoelmaa, joista uusin, Maailmanymmärrysmatka (Aviador 2024), sukeltaa maailman lisäksi ihmiseen itseensä. Päivinen rakastaa sanoja, niiden muodostamaa virtaa ja runoutta ylipäänsä."],id:"paivinen"},{name:"Henriikka Tavi",paragraphs:["Henriikka Tavi on runoilija ja kirjailija, jonka tuotantoa on luonnehdittu kokeelliseksi, leikkisäksi ja kielitietoiseksi. Halu venyttää kirjallisuuden rajoja sekä kysymys kirjallisuuden merkityksestä motivoi Tavia kirjoittajana. Tavi on julkaissut lukuisia runoteoksia, joista viimeisimmät ovat Remu (Teos, 2023) ja Pinnan alla -epälibretto (Poesiavihkot/ Poesia 2023). Tavi opettaa kirjoittamista mm. Kriittisessä korkeakoulussa ja on Osuuskunta Poesian aktiivinen jäsen. Hän on saanut teoksistaan paljon tunnustusta ja useita palkintoja."],id:"henriikka"},{name:"Jaakko Martikainen ja Henriikka Tavi",paragraphs:["Jaakko Martikaisen ja Henriikka Tavin osin käsikirjoitetut ja osin improvisoidut esitykset liikkuvat musiikin, runouden ja äänirunouden välimaastossa joka kerta erilaisin painotuksin. Jaakko Martikainen on turkulainen jazzmuusikko ja soiton opettaja. Henriikka Tavi on runoilija, kirjailija ja musiikin intohimoinen harrastaja. "],id:"jaakko-henriikka"},{name:"Pegasos",paragraphs:["Pegasos on helsinkiläinen, v. 2015 perustettu kuuden muusikon yhtye, jonka musiikki on helmeilevä ja uniikki yhdistelmä suomenkielistä folkia, popia ja rockia. Yhtyeen tavaramerkiksi muodostunutta, kahden laulajan hiottua stemmalaulua on verrattu niin ruotsalaiseen First Aid Kitiin kuin kotimaisiin Ultra Brahan ja Scandinavian Music Groupiin. Pegasosta on kiitetty tarkkanäköisistä sanoituksistaan ja vaikuttavista keikoistaan, joissa laulajien rehellinen läsnäolo, soundi ja soittajien ilmaisuvoima vetävät kuulijoita puoleensa poikkeuksellisella tavalla.","Pegasoksen toinen pitkäsoitto Ei mikään ole niin kuin eilen julkaistiin keväällä 2023. Yhtyeeltä on lisäksi ilmestynyt albumi Anna vielä aikaa (2020), omakustanne-EP (2017), sekä Pepe Willbergin kanssa toteutettu cover-versio Egotrippi-yhtyeen kappaleesta Varovasti nyt (2022). Tällä hetkellä Pegasos työstää 3. albumiaan.","Runosaaressa yhtye esiintyy duona lauluntekijä Tuulikki Blom sekä kitaristi Veikki Virkajärven voimin."],id:"pegasos"},{name:"Peter Mickwitz ",paragraphs:["Runoilija Peter Mickwitz on syntynyt vuonna 1964. Hän kirjoittaa myös esseitä ja lyhyttä proosaa. Mickwitzille on myönnetty mm. Ylen Tanssiva Karhu -palkinto sekä runoilijana että kääntäjänä. Vuonna 2024 hän sai Runeberg-palkinnon kokoelmastaan Misslyckad i en uggla. Vuonna 2016 ilmestyi suomeksi valikoima Lyhytproosaa se mikä avautuu Kristiina Lähteen kääntämänä."],id:"mickwitz"},{name:"Panu Hämeenaho",paragraphs:["Panu Hämeenaho on opetellut olemaan sarjakuvapiirtäjä, kirjoittaja ja kirjallisuuden opettaja. Okkultti tulee itsestään."],id:"panu"},{name:"Silja Järventausta",paragraphs:["Silja Järventausta on helsinkiläinen runoilija, kotoisin Seinäjoelta. Häneltä on ilmestynyt seitsemän runokokoelmaa Teokselta, viimeisin, Vuorosana pihapiirissä, tammikuussa 2025. Iltapäivä isolla kirjaimella sai Nihil Interitin vuoden 2022 parhaan runoteoksen palkinnon ja lukuisia ehdokkuuksia. Esikoisteos Patjalla meren yli ilmestyi vuonna 2006."],id:"jarventausta"},{name:"Katariina Vuorinen",paragraphs:["Katariina Vuorinen on maailmassa elävä runoilija, @apoetontheroadandintothewild, joka viettää pohjoisen valoisat ajat meren äärellä Velkuanmaan saaressa, ja pimeät kuut Chilen Andeilla ja Valparaísossa, kiehtovimmassa kaupungissa. Tuntemattomien seutujen koluaminen on hänelle elinehto.","Vuorisen kuudes runokokoelma, Kesän oraakkeli (Aviador 2025) julkaistaan tämän vuoden Runosaaressa. Runosaari on Vuorisen Naantalin saaristoon luoma korkeatasoisen runouden ja musiikin jokakesäinen, moniääninen juhla. Se sai alkunsa, kun hän löysi nomadivuosiensa keskeltä maagisen Velkuanmaan saaren, ja tiesi heti paikan kutsuvan runon henkiä saaristoon.","Vuorinen on kiitetty esiintyjä sekä yksin että muusikoiden kanssa Suomessa ja ulkomailla, ja hänen runojaan on käännetty neljälletoista kielelle. Vuorisen edellinen teos, Myöhempien kesien jumalat, Los dioses de los veranos ulteriores (Aviador 2022) julkaistiin kaksikielisenä laitoksena, suomeksi ja espanjaksi. Sen aistivoimaisen tarkka ja vuolas runous on hurmannut yleisöjä etenkin Latinalaisessa Amerikassa."],id:"katariina"},{name:"Milagros Corcuera",paragraphs:["Milagros Corcuera (Buenos Aires, 1993) is an Argentine writer whose poetry intertwines the personal with the universal. Her work explores themes of memory, longing, identity, and human experience with a delicate yet striking voice, drawing on Latin America's rich traditions, folklore, nature, and fascination with diverse cultures. She has published Trasandina (Valparaíso, 2018), Una pared llena de exvotos (Bs As, 2022) and Cabinet of Curiosities (Bs As, 2023), the children's book El Caleidoscopio (Bs As, 2024) as well as a compilation of Bilingual poems in Spanish-English (Denmark, 2025). Her poetry delves into the subtle beauty of everyday moments and distant objects from different eras. She has performed at festivals in Chile, México, Denmark, and Argentina, won multiple awards, and been featured in various anthologies. Currently, she is developing projects in nonfiction, travel writing, poetry, and children's literature."],id:"milagros"},{name:"Tiina Lehikoinen",paragraphs:["Tiina Lehikoinen on kirjailija ja kuvataiteilija, joka viihtyy lajien välisillä rajoilla. Hänen uusin teoksensa Mutta armo on kukka joka laulaa (Poesia) ilmestyi keväällä 2024. Lehikoisen kaunokirjallinen tuotanto sisältää useita runo- ja novellikokoelmia sekä esseihtivän romaanin. Kirjoissaan hän on käsitellyt ekofeministisiä teemoja, kielen suhdetta ruumiillisuuteen, erilaisia valtasuhteita ja ympäristöhuolta sekä leikin, mielikuvituksen ja toivon merkitystä kulttuuristen eläinten eloonjäämisessä. Lehikoisen teoksille on myönnetty Vuoden aforismikirja - ja Tampereen kaupungin kirjallisuuspalkinto ja lisäksi ne ovat olleet Runeberg-, Tanssiva Karhu -, Nihil Interit - ja Tiiliskivi-palkintoehdokkaana. Koulutukseltaan Lehikoinen on filosofian ja taiteen maisteri. Kaunokirjallisen ja taiteellisen työnsä ohella hän on päätoimittanut runouslehti Tuli&Savua ja verkkolehti Noesista sekä opettanut luovaa kirjoittamista vuodesta 2005. Lehikoisen tekstejä on käännetty englanniksi, espanjaksi, italiaksi, venäjäksi ja saksaksi."],id:"lehikoinen"}],$k=()=>{const{id:e}=Ap(),[n,t]=x.useState({name:"",paragraphs:[],id:""});return x.useEffect(()=>{t(Lf.find(a=>a.id===e)??{name:"",paragraphs:[],id:""})},[e]),n.name===""?c.jsxs("div",{children:["Esiintyjää tunnisteella ",e," ei löydy."]}):c.jsxs("div",{className:Qo.performerContainer,children:[c.jsx("img",{className:Qo.performerImage,src:"/performers/2025/"+n.id+".jpg",width:300,height:300,loading:"lazy",alt:n.name}),c.jsx("h2",{children:n.name}),c.jsx("div",{children:n.paragraphs.map((a,i)=>c.jsx("p",{children:a.toString()},i))})]})},Wk="_programTimeAndPlace_1sk14_37",Jk="_placeTitle_1sk14_43",Yk="_locationName_1sk14_55",Qk="_performerList_1sk14_66",Gk="_performerWithTime_1sk14_79",Xk="_programPerformer_1sk14_86",Zk="_programTime_1sk14_37",qk="_programHr_1sk14_132",T={programTimeAndPlace:Wk,placeTitle:Jk,locationName:Yk,performerList:Qk,performerWithTime:Gk,programPerformer:Xk,programTime:Zk,programHr:qk},bk=()=>c.jsxs("section",{className:ce.page,children:[c.jsx("h1",{id:"program-start",children:"Ohjelma"}),c.jsxs("p",{className:T.programTimeAndPlace,children:["Perjantai 12.6. klo 18-21 ",c.jsx("span",{className:T.locationName,children:"Velkuanmaa"})]}),c.jsx("h2",{className:T.placeTitle,children:c.jsx("a",{href:"https://www.vaihela.fi/",children:c.jsx("span",{className:T.placeName,children:"Saaristohotelli Vaihela"})})}),c.jsxs("ul",{className:T.performerList,children:[c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"18.00:"}),c.jsx("span",{className:T.programPerformer,children:"Katariina Vuorinen ja Pekka Tolonen"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"18.30:"}),c.jsx("span",{className:T.programPerformer,children:"Outi-Illuusia Parviainen"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"19.00:"}),c.jsx("span",{className:T.programPerformer,children:"Juha Kulmala & Jumbo!"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"20.00:"}),c.jsx("span",{className:T.programPerformer,children:"Pegasos"})]})]}),c.jsx("hr",{className:T.programHr}),c.jsxs("p",{className:T.programTimeAndPlace,children:["Lauantai 13.6. klo 15-21 ",c.jsx("span",{className:T.locationName,children:"Teersalo"})]}),c.jsx("h2",{className:T.placeTitle,children:c.jsx("a",{href:"https://prosinervo.com/",children:c.jsx("span",{className:T.placeName,children:"Sinervon talo"})})}),c.jsxs("ul",{className:T.performerList,children:[c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"15.00:"}),c.jsx("span",{className:T.programPerformer,children:"Olli Heikkonen"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"15.20:"}),c.jsx("span",{className:T.programPerformer,children:"Helena Sinervo"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"15.40:"}),c.jsx("span",{className:T.programPerformer,children:"Laakso ja Siljamäki"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"16.10:"}),c.jsx("span",{className:T.programPerformer,children:"Zoila Forss Crespo-Moreyra"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"16.30:"}),c.jsx("span",{className:T.programPerformer,children:"Saila Susiluoto ja Markku Pääskynen"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"16.50:"}),c.jsx("span",{className:T.programPerformer,children:"Jouni Inkala"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"17.10:"}),c.jsx("span",{className:T.programPerformer,children:"Häivä"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"18.00:"}),c.jsx("span",{className:T.programPerformer,children:"Olli Sinivaara"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"18.20:"}),c.jsx("span",{className:T.programPerformer,children:"Katariina Vuorinen & Pekka Tolonen"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"18.40:"}),c.jsx("span",{className:T.programPerformer,children:"Tommi Parkko"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"19.00:"}),c.jsx("span",{className:T.programPerformer,children:"Djangomania (ja open mic)"})]}),c.jsxs("li",{className:T.performerWithTime,children:[c.jsx("span",{className:T.programTime,children:"20.00:"}),c.jsx("span",{className:T.programPerformer,children:"Juurakko"})]})]}),c.jsx("hr",{className:T.programHr})]}),eh="_infoContainer_820p4_1",nh="_infoTitle_820p4_16",th="_infoContent_820p4_35",ah="_linkList_820p4_41",_e={infoContainer:eh,infoTitle:nh,infoContent:th,linkList:ah},ih=()=>{const[e,n]=x.useState({shop:!1,bus:!1,accom:!1,ferry:!1,fb:!1}),t=a=>{let i={...e};i[a]=!i[a],n(i)};return c.jsxs("section",{className:ce.page,children:[c.jsx("h1",{children:"Info"}),c.jsxs("div",{className:_e.infoContainer,children:[c.jsxs("div",{className:_e.infoTitle,onClick:()=>t("shop"),children:[c.jsx("h2",{children:"Livonsaaren Osuuskauppa"}),c.jsx("button",{className:ce.openingChevron,children:e.shop?c.jsx(fn,{size:"3rem"}):c.jsx(dn,{size:"3rem"})})]}),c.jsx(Be,{in:e.shop,timeout:1e3,classNames:"fadeTransition",children:e.shop?c.jsxs("div",{children:[c.jsx("p",{children:"Livonsaaren osuuskauppa palvelee klo 9-19 joka päivä. Keittiö ja baari 12-19 to-pe. Ostosten yhteydessä mahdollista nostaa käteistä, mutta suosittelemme tuomaan käteistä rahaa kaupungista esim. mahdollisia kirjaostoksia varten."}),c.jsx("a",{href:"https://livonsaarenosuuskauppa.fi/",children:"Kaupan kotisivut"})]}):c.jsx(c.Fragment,{})}),c.jsx("hr",{})]}),c.jsxs("div",{className:_e.infoContainer,children:[c.jsxs("div",{className:_e.infoTitle,onClick:()=>t("bus"),children:[c.jsx("h2",{children:"Bussiaikataulut"}),c.jsx("button",{className:ce.openingChevron,children:e.bus?c.jsx(fn,{size:"3rem"}):c.jsx(dn,{size:"3rem"})})]}),c.jsx(Be,{in:e.bus,timeout:1e3,classNames:"fadeTransition",children:e.bus?c.jsxs("div",{children:[c.jsxs("p",{children:["Bussi 203 lähtee Turusta ma-pe klo 16:10 ja Naantalista klo 17, ja saapuu Velkuan Teersaloon n. klo 17:45. Tämä on ainoa suora yhteys festivaalille. Palvan saareen on Teersalosta yksi lossi, ja Velkuanmaahan kaksi. Lossit lähtevät puolen tunnin välein (tasatunnein ja puolelta) Teersalosta ja Velkuanmaasta, ja Palvasta aina varttia vaille ja yli tasatunnin. (Aikataulut:"," ",c.jsx("a",{href:"https://www.finferries.fi/",children:"finnferries.fi"}),") Takaisin päin busseja ei kulje viikonloppuisin."]}),c.jsx("a",{href:"https://cms.foli.fi/sites/default/files/documents-2024-04/Linja%20200%2C203.pdf",children:"Paikallisliikenteen bussiaikataulut"})]}):c.jsx(c.Fragment,{})}),c.jsx("hr",{})]}),c.jsxs("div",{className:_e.infoContainer,children:[c.jsxs("div",{className:_e.infoTitle,onClick:()=>t("accom"),children:[c.jsx("h2",{children:"Majoitus"}),c.jsx("button",{className:ce.openingChevron,children:e.accom?c.jsx(fn,{size:"3rem"}):c.jsx(dn,{size:"3rem"})})]}),c.jsx(Be,{in:e.accom,timeout:1e3,classNames:"fadeTransition",children:e.accom?c.jsxs("div",{className:_e.infoContent,children:[c.jsx("p",{children:"Majoituspalveluita Livonsaari-Velkua: Wanha Salakuljettaja (Teersalo), Livonsaari Caravan, Saaristohotelli Vaihela."}),c.jsxs("div",{className:_e.linkList,children:[c.jsx("a",{href:"https://oldsmuggler.fi/",children:"Vanha Salakuljettaja"}),c.jsx("a",{href:"https://www.livonsaarencaravan.fi/",children:"Livonsaari Caravan"}),c.jsx("a",{href:"https://vaihela.fi/",children:"Saaristohotelli Vaihela"})]})]}):c.jsx(c.Fragment,{})}),c.jsx("hr",{})]}),c.jsxs("div",{className:_e.infoContainer,children:[c.jsxs("div",{className:_e.infoTitle,onClick:()=>t("ferry"),children:[c.jsx("h2",{children:"Lossiyhteydet"}),c.jsx("button",{className:ce.openingChevron,children:e.ferry?c.jsx(fn,{size:"3rem"}):c.jsx(dn,{size:"3rem"})})]}),c.jsx(Be,{in:e.ferry,timeout:1e3,classNames:"fadeTransition",children:e.ferry?c.jsxs("div",{children:[c.jsx("p",{children:"Lossiyhteydet Palvaan ja Velkuanmaahan Finferries-sivustolla (huom. yövuoro edellyttää tilauksen etukäteen. Lossi on osa julkista tieverkostoa eli maksuton.)"}),c.jsx("a",{href:"https://www.finferries.fi/lauttaliikenne/lauttapaikat-ja-aikataulut/velkuanmaa.html",children:"Aikataulut Palvaan ja Velkuanmaahan"})]}):c.jsx(c.Fragment,{})}),c.jsx("hr",{})]}),c.jsxs("div",{className:_e.infoContainer,children:[c.jsxs("div",{className:_e.infoTitle,onClick:()=>t("fb"),children:[c.jsx("h2",{children:"Facebook"}),c.jsx("button",{className:ce.openingChevron,children:e.fb?c.jsx(fn,{size:"3rem"}):c.jsx(dn,{size:"3rem"})})]}),c.jsx(Be,{in:e.fb,timeout:1e3,classNames:"fadeTransition",children:e.fb?c.jsx("div",{children:c.jsx("a",{href:"https://www.facebook.com/Runosaari-festivaali-110533364561933",children:"Tapahtuman facebook-sivut"})}):c.jsx(c.Fragment,{})}),c.jsx("hr",{})]})]})},rh="_safetyPage_c3ml1_1",lh="_safetyList_c3ml1_6",Go={safetyPage:rh,safetyList:lh},sh=()=>c.jsxs("section",{className:ce.page+" "+Go.safetyPage,children:[c.jsx("h1",{children:"Turvallisemman tilan periaatteet"}),c.jsx("p",{children:"Runosaaren tapahtumissa noudatetaan turvallisemman tilan periaatteita. Pyrimme tapahtumissamme turvaamaan näiden periaatteiden toteutumisen omalla toiminnallamme, tilojen suunnittelulla sekä henkilökunnan, esiintyjien ja yleisön informoinnilla."}),c.jsxs("ul",{className:Go.safetyList,children:[c.jsxs("li",{children:[c.jsx("b",{children:"Kunnioitus. "}),"Jokaisella ihmisellä on oikeus tulla kunnioitetuksi omana itsenään. Kunnioitathan muiden ihmisten fyysistä ja psyykkistä koskemattomuutta, mielipiteitä sekä ihmisarvoa. Jokaisella on oikeus poistua epämukavaksi kokemastaan tilanteesta tai keskustelusta. Ethän myöskään ota ihmisistä kuvia kysymättä ensin."," "]}),c.jsxs("li",{children:[c.jsx("b",{children:"Olettaminen. "}),"Ethän oleta kenenkään sukupuolta, kansallisuutta, seksuaalista suuntautumista, kulttuuria, kieltä, uskontoa, arvoja, terveydentilaa tai toimintakykyä. Ethän tee johtopäätelmiä kenenkään ulkonäön, käytöksen tai oletetun sosioekonomisen aseman perusteella."]}),c.jsxs("li",{children:[c.jsx("b",{children:"Kommunikointi. "}),"Pyrithän luomaan ympärillesi ystävällistä ja turvallista ilmapiiriä. Ole avoin muita ihmisiä kohtaan, kuuntele ja käytä kunnioittavaa kieltä. Ethän oleta puheessasi kenenkään sukupuolta tai muita ominaisuuksia. Ethän käytä stereotypisoivaa, toiseuttavaa tai halventaa kieltä. Jos kuitenkin vahingossa loukkaat sanoillasi jotakuta, pyydäthän anteeksi."]}),c.jsxs("li",{children:[c.jsx("b",{children:"Toimiminen. "}),"Mikäli havaitset epäasiallista käytöstä tai koet olosi uhatuksi, älä epäröi pyytää apua Runosaaren ja tapahtumapaikkojen työntekijöiltä. Jos koet, että olet kohdannut häirintää tapahtumissamme ja siihen ei ole onnistuttu puuttumaan, ole yhteydessä Runosaari-työryhmään sähköpostilla"," ",c.jsx("a",{href:"mailto:runosaari@gmail.com",children:"runosaari@gmail.com"})," ."]})]})]}),oh="_workshopPage_1ksch_1",uh={workshopPage:oh},ch=()=>c.jsxs("section",{className:ce.page+" "+uh.workshopPage,children:[c.jsx("h1",{children:"Työpajat"}),c.jsx("i",{children:"Lisätietoja tulossa myöhemmin..."})]}),fh="_archivePage_140ml_1",dh="_year_140ml_5",mh="_yearTitle_140ml_10",ph="_yearPerformers_140ml_27",kh="_yearPerformersContent_140ml_32",hh="_performerContainer_140ml_36",vh="_performerTextContainer_140ml_53",yh="_performerTitle_140ml_60",jh="_performerImage_140ml_77",Je={archivePage:fh,year:dh,yearTitle:mh,yearPerformers:ph,yearPerformersContent:kh,performerContainer:hh,performerTextContainer:vh,performerTitle:yh,performerImage:jh},gh=[{name:"TYÖPAJA: Sarjakuvia kuplista (Hanna Toivonen)",paragraphs:["Mitä mahtaa syntyä, jos ravistelen Akkaria ja puhekuplat putoavat paperille? Millainen tarina niistä tulee, jos ne järjestää uusiksi? Entä jos mukaan lisätään vielä sanoja Turun Sanomista? Omia sanoja? Pala sammalta? Tai kangasta?","Kuka tarinassa seikkailee? Hernepäinen Hernaivo-supersankari? Tikku-ukko oikeista tikuista?","Sarjakuvan ei ole pakko olla pelkkää paperia. Ja mikä tärkeintä: sarjakuvan tekijän ei ole pakko osata piirtää!","Tässä sanataidetyöpajassa sarjakuva syntyy leikaten, liimaten, askarrellen, kirjoittaen ja piirtäen. Tule luomaan omasi. Valmiit sarjakuvat kuvataan ja laitetaan Instagramiin, jos tekijä haluaa.","23.7.klo 11-14 Livonsaaren seurantalolla. 6-95-vuotiaille.","Ohjaajana sanataideohjaaja, toimittaja Hanna Toivonen.","","Osallistumismaksu 10 e. Omat eväät mukaan.","Ilmoittautuminen etukäteen runosaari@gmail.com"],id:"sarjakuvia_kuplista"},{name:"Antti Salminen",paragraphs:["Prof. dos. jne. Antti Salminen on kirjailija-tutkija, jonka kaunokirjallisia teoksia ovat esimerkiksi MIR (2019), Lomonosovin moottori (2014) ja Nollankuori (2013). Toisinaan hän työskentelee pelastustahtoisena tuntemattomissa ölösühteissa, välillä hän käy uimassa. "],id:"antti_salminen"},{name:"Olli Heikkonen",paragraphs:["Olli Heikkonen on kirjoittanut kuusi runokokoelmaa, joista viimeisin (Rajalliset maat, Teos) ilmestyi viime syksynä. Heikkosen runoissa voimakas rytmi yhdistyy ilmaisuvoimaiseen kuvastoon. Hänen tuotannossaan luonto, ihminen, kulttuuri ja historia käyvät vuoropuhelua. Heikkonen asuu ja työskentelee Helsingissä. "],id:"olli_heikkonen"},{name:"Raisa Marjamäki",paragraphs:["R. M. on asunut Helsingissä, Lahoressa, Piikkiössä, Orivedellä, Anstrutherissa, Edinburghissa, Jyväskylässä, Ristijävellä ja Turussa, joista jälkimmäisissä hän on viime vuosina pohtinut paljon paikallisuutta tulematta kummempiin lopputuloksiin. Häneltä on julkaistu runokokoelmat Katoamisilmoitus (Palladium kirjat, 2010), Ei kenenkään laituri (Poesia, 2014), Ihmeellistä käyttäytymistä (Poesia, 2020), Kiinalainen yksisärvinen – merkintöjä kiinalaisesta sanakirjasta (Poesiavihkot #12) ja Viimeinen talvi (Poesiavihkot #28). "],id:"raisa_marjamaki"},{name:"Irja Aro - Heinilä ja Nina - Beata Granqvist",paragraphs:["Runosaaren pyöreässä talossa kuullaan festivaalin ensimmäiset säkeet TORSTAINA 22.7. Vuosikymmeniä runoja kirjoittanut ihmisten paimen Irja Aro-Heinilä lausuu runoja laajasta tuotannostaan. Aivan uunituoreita runoja esittää puolestaan esikoisrunoilija, vuohipaimen Nina-Beata Granqvist."],id:"irja_nb"},{name:"Tomi Kontio",paragraphs:["Tomi Kontio on helsinkiläinen runoilija ja kirjailija. Hän on kirjoittanut yli kaksikymmentä kirjaa, runoutta, lastenkirjoja ja matkakirjoja. Hän harrastaa sulkapalloa ja vaeltamista. Hän on ns. Lapinhullu. "],id:"tomi_kontio"},{name:"J.K.Ihalainen & Rasmus Pailos",paragraphs:["J.K.Ihalainen: kymmeniä runokirjoja, suomennoksia, tietokirjoja. Kustantaja, kirjanpainaja. Ihalaista säestää mystisellä matka-arkullaan fiskarsilainen multi-instrumentalisti Rasmus Pailos. "],id:"jysky"},{name:"Juudas Iskariotin Suudelma",paragraphs:["Alastomuus, transsissa nytkähtelevät vartalot, mystiikka, Siperian lämpö, merirosvous ja brutaali primitiivisyys.","Näistä aiheista ammentamalla bändi aiheuttaa etnistä äänimaisemaa sekoittaen siihen sumeilematta","muita musiikkityylejä välillä hieman räväkälläkin otteella ja varustaen sointia epätavanomaisilla skaaloilla.","Orkesterin soitinrepertuaariin kuuluu perinteisten kitaran basson ja rumpujen lisäksi saksofoni, trumpetti, poikkihuilu ja haitari. Yhtye on julkaissut kolme levyä joista viimeisimpänä Vulgaria vuonna 2020.","Bändi on soittanut lukemattomia keikkoja perustamisvuodesta 2009 ja esiintymisen mottoon kuuluukin;",'"Pidä ystävät lähellä, mutta viholliset lähempänä". www.jisuudelma.net 2021 '],id:"juudakset"},{name:"Rosanna Fellman",paragraphs:["Rosanna Fellman, född 1995, är estradpoet och aktivist. Hon är uppväxt i Jakobstad, numera bosatt i Åbo. Fellmans poesi är influerad av spoken word och den samtida samhällsdebatten. I sin poesi använder hon ofta flerspråkighet och humor. Förutom scenpoesi undervisar hon också i kreativt skrivande. För sin diktsvit Störd mottog hon första pris i Arvid Mörne-tävlingen år 2018. Debuten Strömsöborna mottog Vimma-priset 2019 och var nominerad till Yles diktpris Den Dansande Björnen 2020. Sedan våren 2021 arbetar Fellman även som erfarenhetstalare för Finlands autismförbund. ","Rosanna Fellman, s.1995, on lavarunoilija ja aktivisti. Hän on kotoisin ruotsinkielisestä Pietarsaaresta, nykyisin hän asuu Turussa. Fellmanin runoissa löytyy spoken word vivahteita ja ajankohtaisia teemoja. Runoudessaan hän käyttää usein monikielisyyttä ja huumoria. Lavarunouden lisäksi Fellman opettaa luovaa kirjoittamista ympäri Suomea. Hänen runonovelli Störd sai Arvid Mörne-palkinnon vuonna 2018. Fellmanin ensimmäinen runokirja Strömsöborna ilmestyi 2019. Strömsöborna sai vammaispalkinnon Vimma ja kirja oli myös ehdolla Ylen Tanssiva Karhun palkinnolle 2020. Fellman on kevät 2021 alkaen kokemusasiantuntija Autismiliitolla. "],id:"rosanna_fellman"},{name:"Rauhatäti",paragraphs:["Rauhatäti aka Hanna Yli-Tepsa on suomenkielisen naisten tekemän räpin pioneereja. Hän on tullut tunnetuksi kantaaottavista sanoituksistaan vuodesta 2007 lähtien. Hän on julkaissut kaksi pitkäsoittoa, Labyrintti 2014 ja Palasia 2019 sekä vieraillut lukuisten somalaisten rap-artistien levyillä. Rauhatäti on ollut tuttu näky myös lavarunoilijana eilaisten spoken word- ja runoteostensa kanssa."],id:"rauhatati"},{name:"Katariina Vuorinen",paragraphs:["Katariina Vuorinen on runoilija, joogi, tantrika ja löytöretkeilijä, joka on julkaissut neljä runokokoelmaa ja muita tekstejä. Hän on elänyt nomadina ympäri maailmaa, ja kirjoittanut ja esiintynyt viime vuosina erityisesti Latinalaisessa Amerikassa. Vuonna 2018 hän löysi maagisen saarensa Velkuanmaasta, ja tiesi heti paikan kutsuvan runofestivaalia saaristoon. Nyt tämä unelma toteutuu Runosaaressa. "],id:"katariina_vuorinen"},{name:"Maija Reeta Raumanni ja Matias Aaltonen",paragraphs:["Maija Reeta Raumanni on uuden tanssin ja esitystaiteen aloilla työskentelevä tanssitaiteilija. Hän valmistui koreografiksi Amsterdamin Taidekorkeakoulun School for New Dance Development -linjalta vuonna 2007. Vuodesta 2007 lähtien hän on ollut turkulaisen taiteilijavetoisen vapaan kentän ryhmittymän Ehkä-tuotannon jäsen, sekä ollut mukana yhteisön ylläpitämän nykytaidetila Kutomon toiminnassa sen perustamisvuodesta 2009 lähtien. Matias Aaltonen on muusikko. Hän soittaa ja on soittanut rumpuja ja kitaraa eri kokoonpanoissa, kuten Coochilla, Fall of the Leafe ja Sounds a Bit Bitter. ","","","dos kerrostuu, tihenee, täyttyy, pysähtyy, hengittää, soi, liikkuu, virtaa, kuuntelee, kulkee, haihtuu, luutuu, asettuu, muuttuu, loppuu tilassa ja ajassa.","\r","","dos on Maija Reeta Raumannin ja Matias Aaltosen liikettä ja ääntä ihmettelevä esitys. Runosaari-festivaalilla nähtävä esitys on työparin ensimmäinen taiteellinen yhteistyö – improvisaatioon perustuva kokeilu sille, millaista ilmaisua yhden tanssi ja toisen soitto yhdessä ehdottavat."],id:"maija_matias"},{name:"TYÖPAJA: Johdatus shamanistiseen sanakäyttöön(Jaana Kouri)",paragraphs:["Työpajassa tutustutaan shamanismin perustaan, animismiin. Sen mukaan kaikki on elävää ja yhteydessä toisiinsa. Shamaani toimii parantajana ja henkisen tiedon välittäjänä ihmisten ja muiden elävien välillä.","Teemme kirjoitustehtäviä, joiden avulla olemme yhteydessä ympäristöön ja jotka lujittavat ympäristöyhteyttämme. Käymme läheisessä metsässä, kirjoitamme siitä ja jatkamme animistisen sanankäytön harjoituksia kirjoituksen pohjalta. Ota mukaasi kirjoitusvälineet ja säänmukaiset vaatteet. Pe 23.7. klo 15-17:30, Livonsaaren Seurantalo ja lähimetsät (Velkuantie 987). Osallistumismaksu 15 euroa, varaa paikkasi ilmoittautumalla tänne: runosaari@gmail.com\rTyöpajan vetääUskontotieteilijä FT, shamanismin harjoittaja ja luovan kirjoittamisen ohjaaja Jaana Kouri. TYÖPAJA ON TÄYNNÄ 2021 "],id:"jaana_kouri"},{name:"A.W.Yrjänä PERUTTU",paragraphs:['A.W. YRJÄNÄ ON JOUTUNUT KARANTEENIIN KORONA-ALTISTUMISEN VUOKSI. Voi harmin paikka!! Yrjänä lähettää Runosaareen pahoittelunsa ja toivottaa suloista säätä, kaikkea hyvää ja väkevää tulevaa! Runosaari puolestaan toivottaa Yrjänälle kärsivällisyyttä pandemiatuhojen keskellä ja mitä parhainta terveyttä! Jospa ensi vuonna sitten... \rMuistakaas, ihmiset, että delta-variantti tarttuu ärhäkästi myös oireettomien sekä rokotukset saaneiden ihmisten välittämänä. Ollaan siis tarkkoina ja pidetään huolta toisistamme ja muistakin. "A. W. Yrjänä on CMX-yhtyeestään tunnettu muusikko ja kirjailija. Kuudennessa runokokoelmassaan Yrjänä sukeltaa kirjoittamisen, tiedon ja olemassaolon ikuisen mysteerin äärelle. ”Grammatan” tiheinä vyöryvät säkeet virtaavat yli ajan, ja antiikin helleenien mytologia hengittää vahvana nykyisyyden rinnalla. Vaikka valtakunnat haihtuvat, sukupolvet vierivät ja jumalat vaikenevat, Yrjänän säkeissä maailmassa olemisen kysymykset säilyvät." 2021 '],id:"a_w_yrjana"},{name:"Juha Kulmala & Diodi",paragraphs:['Juha Kulmala on turkulainen runoilija, jolta on julkaistu viisi runokokoelmaa, niistä viimeisin on Ränttätänttä (Savukeidas 2017), joka oli mm. Runeberg-palkintoehdokkaana. Kriitikkojen toteamaa: "Kulmala on hauskasti vihainen ja rennosti yhteiskunnallinen."(Esa Mäkijärvi, Kiiltomato 8.1.2018), "Juha Kulmala on ehkä Suomen luotettavin runoilija, mikä ei tarkoita, että hän olisi tylsä."(Vesa Rantama, Keskisuomalainen 20.12.2017) Juha Kulmala & Diodi on runoa ja rytmimusiikkiaepäsovinnaisesti yhdistelevä kokoonpano, joka on esiintynyt satunnaisesti ja yllättäen jo vuodesta 2016. Työnjako on suurin piirtein seuraava: Juha Kulmala: runot / Otso Helasvuo: bassot, kitara / Pekka Tolonen: kitara, koskettimet, puhaltimet, rytmit ja muu elektroniikka. Kuva by Karri Kokko.'],id:"juha_kulmala"}],Sh=[{name:"Kari Aronpuro",paragraphs:["Kari Aronpuro on suomalaisen runouden Grand Old Man, jonka 1782 sivua käsittävä Kootut runot I-IV ilmestyi keväällä 2022 (Palladium Kirjat). Elokuun alussa julkistetaan hänen tuorein suomennoksensa, W. G. Sebaldin runoelma Luonnon mukaan (Palladium Kirjat). "],id:"kari_aronpuro"},{name:"Äyräs",paragraphs:["Äyräs on Olga Välimaan ja Kauko Röyhkän psykedeelinen bändi, jonka sanoitukset ovat vanhaa suomalaista runoutta. Yhtyeen muut jäsenet ovat Ilkka Turta (kitara), Roberto Lanz (rummut), Kimmo Laine (basso) ja Kaj Mäki-Ullakko (koskettimet). "],id:"ayras"},{name:"Saila Susiluoto",paragraphs:["Saila Susiluoto (s.1971) on helsinkiläinen kirjailija. Hän on julkaissut kahdeksan runokokoelmaa, Antikythera-iPad-runosovelluksen, auditiivisen runoteoksen Oratorio ja esseeromaanin Kehrä. Susiluoto on palkittu Kalevi Jäntin palkinnolla, Suomi-palkinnolla ja Einari Vuorela-runopalkinnolla. Susiluodon runoja on käännetty viidelletoista kielelle."],id:"saila_susiluoto"},{name:"Markku Pääskynen",paragraphs:["Markku Pääskynen (s. 1973) on Helsingissä asuva kirjailija. Hän on koulutukseltaan filosofian maisteri ja julkaissut romaaneja, novelleja ja esseitä. Lisäksi hän on suomentanut lyriikkaa mm. nykykreikasta. Pääskynen on ollut kahdesti Finlandia-ehdokkaana, saanut Kalevi Jäntin palkinnon sekä Savonia-palkinnon."],id:"markku_paaskynen"},{name:"Signe",paragraphs:["Signe on vuonna 2014 perustettu nelihenkinen vokaaliyhtye. Yhtyeen muodostavat helsinkiläiset laulajat Josefiina Vannesluoma, Riikka Keränen ja Selma Savolainen sekä kontrabasisti Kaisa Mäensivu."],id:"signe"},{name:"Sanna Karlström",paragraphs:["Sanna Karlström on helsinkiläinen kirjailija. Hänen runokokoelmansa ovat saaneet Helsingin Sanomain kirjallisuuspalkinnon, Kalevi Jäntin palkinnon ja Yleisradion Tanssiva karhu -palkinnon.","Karlströmin kuudes runokokoelma, Pehmeät kudokset, ilmestyy syksyllä 2022.","Valokuva: Otava, Arto Wiikari"],id:"sanna_karlstrom"},{name:"Aki Salmela",paragraphs:["Aki Salmela on runoilija ja runouden suomentaja. Viimeisin teos Eläimen Varjo (2019)."],id:"aki_salmela"},{name:"Tytti Metsä",paragraphs:["Tytti Metsä, laulava jouhikonsoittaja tässä teille esittäytyy:","Runosaaren setissäni kuullaan sekä kalevalamittaa että uudempaa runomittaa. On sekä tradia että itse sepittämääni, ja näiden lisäksi myös yksi Marja Kurkelan runo sekä yksi Saukin suomennos.","Vanhakantainen, minimalistinen estetiikka kiinnostaa minua mutta yhdistelen siihen uudempiakin kliseitä, tahattomasti ja tahallani.","Jouhikossa on hyvin intensiivinen, transsiin kutsuva soundi, ja ihmisäänen sekoittuminen jouhikon sointiin vie jonnekin kauas. Huokoinen, rouhea ja heleä lomittuvat."],id:"tytti_metsa"},{name:"Outi-Illuusia Parviainen",paragraphs:["Parviainen on runoilija sekä lavalla että sen ulkopuolella. Hänen taustansa on monitaiteinen ulottuen runoudesta esitystaiteeseen ja performanssiin, musiikkiin ja kuvataiteeseen.","Hän on toiminut lavarunouskollektiivi Helsinki Poetry Connectionin puheenjohtajana ja hänen runojaan on julkaistu sekä kokoelmina että antologioissa. Saaristo on käynyt hänelle rakkaaksi purjehduksen myötä."],id:"outi_illuusia"},{name:"Juha Kulmala & Diodi",paragraphs:["Juha Kulmala on turkulainen runoilija, jolta ilmestyi tammikuussa kuudes runokokoelma RESET (Poesia 2022). Aiemmille kokoelmille ovat osuneet mm. Jarkko Laine -palkinto ja YLE:n Tanssiva karhu -palkinto sekä Runeberg- ja Einari Vuorela -palkintoehdokkuudet.","Juha Kulmala + Diodi on v.2016 syntynyt kokoonpano, joka musiikillisesti sijoittuu vaihtelevaan välimaastoon, jossa hapokas jazzrock törmää yllättäviin blues-adagioihin. Kaikkea kokeillaan ainakin kerran. Vastuu jakautuu yleensä näin: Juha Kulmala - runot, Otso Helasvuo - basso, kitara, Pekka Tolonen - koskettimet, kitara, puhaltimet, rytmit ja elektroniikka."],id:"juha_kulmala_diodi"},{name:"Susinukke Kosola (Daniil Kozlov)",paragraphs:["Daniil Kozlov (s. 1991), taiteilijanimeltään Susinukke Kosola on pietarilaissyntyinen, Turussa asuva kirjoittaja ja kirjallisuusalan sekatyöläinen.","Häneltä on julkaistu kolme runokirjaa ja yksi genrehybridi, jotka ovat saaneet kriitikoiden suitsutusta, palkintoja ja ehdokkuuksia. Hänen kolmas teoksensa Varisto on kokeellinen myös julkaisumuodoltaan – kokonaan käsin kirjoitettua kokoelmaa ei voi ostaa, sen voi ainoastaan saada tunnustusta vastaan. Hänen neljäs teoksensa Turkoosi vyöhyke on genrehybridi, joka yhdistää runoutta, esseistiikkaa ja säeromaanimuotoa.","Kosola tunnetaan myös runouteen ja yhteiskunnalliseen kirjallisuuteen keskittyvän Kolera-kollektiivi -nimisen kustantamon perustajana ja lavarunoilijana, sekä kansallisen Runografi-hankkeen ideoijana ja vetäjänä. Taiteellisen työskentelyn lisäksi hän toimii lyriikan kirjoittamisen opettajana muun muassa Turun yliopistossa ja työskentelee aktiivisesti alueensa kirjallisella kentällä."],id:"susinukke_kosola"},{name:"Francis North ja Ghosts on TV",paragraphs:['Runoilija Francis North ja post-rock -yhtye Ghosts on TV muodostivat viime syksynä omalaatuisen liiton, kun North ja kuvataitelija Anna Blom julkaisivat esikoiskirjansa ENTROPY:n syyskuussa 2021. Kirjan julkistusjuhlat järjestettiin loppuunmyydyssä Helsingin Kapsäkin teatterisalissa, jossa North lausui koko teoksen livenä alusta loppuun. Esitystä vahvisti Ghosts on TV, joka säesti Francista kirjan pohjalta sävellettyllä konsertilla. Tämä yhteistyö taltioitiin ja siitä syntyi livelevyn ja äänikirjan poikkeuksellinen yhdistelmä: "ENTROPY" (Live At The Music Theatre Kapsäkki)" ENTROPY on tarina profeetan noususta ja tuhosta, pyhyyden sekä kauneuden kokemuksista. Soliti Records julkaisi albumin 22.4.2022.','Elokuvallista ambientia, tummia kitaravalleja sekä performatiivista spoken wordia yhdistelevää Franciksen ja GoTV:n vuoropuhelua verrattiin konsertin jälkeen mm. Nick Cave & The Bad Seedsin viimeisimpiin levyihin. Northin tekstiä taas on rinnastettu Allen Ginsbergin tyyliin. Rumba totesi kollaboraation olevan komeaa kuultavaa ja Desibelin Mika Roth ylisti albumia "omilla säännöillään toimivaksi upeaksi teokseksi."'],id:"francis_north"},{name:"Anja Erämaja",paragraphs:["Anja Erämaja asuu Helsingissä ja on kotoisin Merimaskusta, Naantalin saaristosta. Hänen viides runoteoksensa Olen nyt täällä metsässä ilmestyi elokuussa 2021. Se on erään marjareissun kuvaus, kirja irtiotosta, haltioitumisesta, eksymisestä, muistista ja joukkoon kuulumisesta.","Palkittu runoilija viihtyy lajien välimaastoissa, hän on opiskellut valokuvataidetta, tehnyt musiikkia eri kokoonpanoissa ja kirjoittanut myös proosaa, näytelmän, lastenkirjoja ja laulusanoituksia."],id:"anja_eramaja"},{name:"Ainot ja Lauri",paragraphs:["Ainot ja Lauri esittävät Lähellä-nimisen poikkitaiteellisen kokoonpanon, joka on saanut kolmannen kiinnityksen kiertopalkintoon Willi Kansa -katselmuksessa marraskuussa 2021. Toisessa osassa iltapäivää kuullaan Irja Aro-Heinilän ja Arto Juurakon tekstejä Ainojen ja Laurin esittäminä."],id:"ainot_ja_lauri"},{name:"Heidi Iivari ja Karl Kruuse",paragraphs:["Tarttolaiset Heidi Iivari ja Karl Kruuse ovat esiintyneet yhdessä vuodesta 2018 lähtien. Heidän ohjelmistonsa koostuu Iivarin Tartto-aiheisista runoista ja Karlin säveltämästä kitaramusiikista.","Kirjallisuuskriitikko Piret Põldver kirjoittaa Iivarin ja Kruusen esityksestä Crazy Tartu -runofestivaalilla 2019 seuraavasti: ”Heidi Iivari ja Karl Kruuse yhdistivät musiikin ja runouden niin ammattitaitoisesti, että tuloksena oli jotakin enemmän kuin kaksi eri lajia; täysin itsenäisesti toimiva show.” (Postimees, 19.11.2019)","Heidi Iivari on tartonsuomalainen runoilija, jonka runot syntyvät sekä suomeksi että viroksi. Hän on esittänyt runojaan vasta vuodesta 2018 alkaen, mutta esiintynyt jo useissa kirjallisuustapahtumissa Suomessa, Virossa ja Espanjassa. Vuonna 2020 hän sijoittui kolmanneksi Viron lavarunouskilpailussa ja edusti Tarttoa Unescon kirjallisuuskaupunkien Slam-O-Vision -lavarunouskilpailussa.","Iivarin kaksikielinen esikoisrunokokoelma Tarton sarjarakastaja / Tartu sariarmastaja (Enostone, 2021) on rohkea, hauska ja intohimoinen rakkaudentunnustus runoilijan kotikaupungille Tartolle ja sen asukkaille. Iivari runoja on käännetty myös englanniksi, espanjaksi, ranskaksi ja võruksi. Heidi Iivarin runoihin voi tutustua myös kaksikielisissä antologioissa Viron runokartta (https://viro-instituutti.fi/vironrunokartta/runoilijat/heidi-iivari-2/) ja Sinisild / Sinisilta (IlmaPress, 2021).","Karl Kruuse on soittanut kitaraa vuodesta 2003 lähtien. Hän on esittänyt erilaisilla kokoonpanoilla sekä omaa että toisten musiikkia ABBA:sta AC/DC:hin niin kaduilla kuin lavoillakin Englannista Espanjaan. Tutustu Karlin musiikkiin: https://soundcloud.com/karlkruusemusic sekä Facebookissa ja Instagramissa."],id:"heidi_ja_karl"},{name:"Mikko Innanen",paragraphs:["Mikko Innasen Maakuntauudistus palaa kansalliselle näyttämölle. Saksofonisti Innasen toistaiseksi viimeisimmän esiintymisensä juuri ennen korona-aikaa tehnyt poikkitaiteellinen, pateettis-satiirinen projekti porautuu syvälle suomalaiseen sieluun ja tuo sieltä matkamuistoksi aivan uudenlaisia versioita perinteisistä maakuntalauluistamme.","2022 Hietsu is Happening! - kollektiivilla valtionpalkittu saksofonisti ja säveltälä M.I. on luonut pitkän uran esiintymällä 38 maassa ja julkaisemalla kymmeniä levyllä omilla kokoonpanoillaan koti- ja ulkomaisten muusikoiden kanssa. Innanen on juuri voittanut ensimmäisenä suomalaisena yhdysvaltalaisen DownBeat-lehden Rising star -sarjan julkaisun vuotuisessa kriitikkoäänestyksessä."],id:"mikko_innanen"},{name:"Laura Laakso",paragraphs:["Laura Laakso on helsinkiläinen kirjailija. Hänen esikoisteoksensa Mrs. Milkyway (2019) oli ehdolla sekä Runeberg-palkinnon että Helsingin Sanomien kirjallisuuspalkinnon saajaksi.","Askaroituaan kirjallisuuden, teatterin, tanssin, musiikin ja arkkitehtuurin parissa sekä julkaistuaan kolme uuden ajan proleromaania Laakso on tajunnut kirjoittavansa progekirjallisuutta."],id:"laura_laakso"},{name:"Katariina Vuorinen",paragraphs:["Katariina Vuorinen on runoilija, löytöretkeilijä ja Runosaari-festivaalin luoja. Vuonna 2018 hän löysi nomadivuosiensa keskeltä maagisen Velkuanmaan saaren, ja tiesi heti paikan kutsuvan runon henkiä saaristoon. Vuonna 2021 tämä unelma toteutui Runosaaressa, joka jatkuu nyt vuosittaisena tapahtumana Naantalin saaristossa.","Voimallisten näkyjen, rytmin ja mielen liikkeiden tarkentamisen taiturina tunnettu Vuorinen julkaisee viidennen runokokoelmansa Myöhempien kesien jumalat, Los dioses de los veranos ulteriores vuoden 2022 Runosaaressa. Teoksessa Vuorinen kutoo yhteen ihmisen, luonnonvoimat ja kaiken yllä valvovan taivaan Andien ikiaikaisissa maisemissa. Latinalainen Amerikka ja espanjan kieli ovat Vuoriselle erityisen merkityksellisiä, mitä ilmentää kokoelman julkaiseminen samoissa kansissa kaksikielisenä: suomeksi ja espanjaksi."],id:"katariina_vuorinen"},{name:"Ella Pyhältö",paragraphs:["Ella Pyhältö on näyttelijä, joka on saanut kuuluisuutta myös lausuntataiteilijana ja äänikirjojen kaunisäänisenä lukijana. Hän työskentelee tällä hetkellä Teatteri Avoimissa Ovissa Helsingissä. Hän on ollut Suomen Lausujain Liiton puheenjohtaja."],id:"ella_pyhalto"},{name:"Laura Rantanen",paragraphs:["Journalisti, viestintäkonsultti ja saariston lapsi."],id:"laura_rantanen"},{name:"Kati Urho",paragraphs:["Kati Urho on turkulainen teatterialan monitaituri, joka valmistui vuonna 2002 ammattinäyttelijäksi (FIA) Lontoossa (East 15 Acting School). Kati toimii tällä hetkellä freelancer näyttelijänä, käsikirjoittajana, laulajana, ohjaajana sekä tuottajana Turusta käsin. Vuonna 2022 Turun kaupunki myönsi Katille vuoden Aboa-apurahan."],id:"kati_urho"}],xh=[{name:"Sirpa Kyyrönen",paragraphs:["Sirpa Kyyrönen on runoilija, luovan kirjoittamisen opettaja ja kirjallisuusaktiivi. Kyyrönen on julkaissut neljä runoteosta, joista viimeisin, Nimesi on Marjatta, nimettiin Einari Vuorela -runopalkintoehdokkaaksi. Aiemmin Kyyrösen teoksia on huomioitu mm. YLE:n Tanssiva karhu -palkinnolla. Ensi keväänä Kyyröseltä ilmestyy unen ja lumen läheisyyttä, puutoksia ja muutoksia pöyhivä Talviunia-runoteos.","Kirjailijantyön ohella Kyyrönen toimii Osuuskunta Poesian hallituksen puheenjohtajana ja Tekstin talo -yhteisössä. Kyyrönen on kotoisin Hämeenkyröstä ja asuu perheineen Helsingissä."],id:"sirpa_kyyronen"},{name:"Kinnunen & Kinnunen",paragraphs:["Kinnunen & Kinnunen on kahden sukupolven välinen runoesitys, jossa isä kohtaa tyttären. Kumpi suolaa kumman vai onko rinnakkaiselo mahdollista? Luvassa on revittelyä, hauskanpitoa ja kevyttä roustaamista.","Venla Kinnunen (s. 1997) on uuden polven lavarunoilija ja teatterintekijä. Hän tutkii taiteessaan muun muassa sukupuolta, aktivismia, eläimen ja luonnon toimijuutta. Kinnunen on esiintynyt useissa lavarunotapahtumissa Turussa ja Helsingissä. Hän opiskelee Teatterikorkeakoulussa dramaturgiaa ja näytelmän kirjoittamista.","Tapani Kinnunen (s. 1962) on julkaissut 10 runokokoelmaa sekä kuusi romaania. Hänen runojaan on ilmestynyt käännöksinä Isossa-Britanniassa, Unkarissa ja Virossa. Kinnunen on esiintynyt estradeilla säännöllisesti vuodesta 1994. Hänet on palkittu mm. Vuoden Kiilalla. Alkuvuodesta 2024 ilmestyy Kinnusen seuraava runokokoelma Oopperan grilli (Enostone)."],id:"kinnunen"},{name:"Ilmi Lupiini",paragraphs:["Ilmi Lupiini on Turussa asuva laulaja-lauluntekijä ja tee-se-itse-tuottaja, joka ammentaa elämässään ja musiikissaan menneistä vuosikymmenistä ja americanasta. Artistin omaehtoisuudestaan kiitosta kerännyt esikois-EP Enneunia julkaistiin alkuvuodesta."],id:"ilmi_lupiini"},{name:"Rosanna Fellman",paragraphs:["Rosanna Fellman on lavarunoilija, kirjailija ja aktivisti. Hän on kotoisin ruotsinkielisestä Pietarsaaresta, nykyisin hän asuu Helsingissä. Fellmanin runoissa löytyy spoken word vivahteita, monikielisyyttä, huumoria ja ajankohtaisia teemoja.","Fellmanin ensimmäinen runokirja Strömsöborna ilmestyi 2019. Strömsöborna sai vammaispalkinnon Vimma 2019 ja kirja oli myös ehdolla Ylen Tanssiva Karhun palkinnolle vuonna 2020. Toisinkoisensa Republikens President - Tasavallan Presidentti, ilmestyi keväällä 2022 ja sai palkinnon Svenska litteratursällskapet i Finlandissa. Hänen kolmas teos ilmestyy vuonna 2024."],id:"rosanna"},{name:"Kasper Salonen",paragraphs:["Kasper Salonen (s. 1987) on kaksikielinen lavarunoilija, kääntäjä ja kuvataiteilija. Hän kirjoittaa ja esittää sekä englanniksi että suomeksi mm. spoken word -runoutta, jossa kielelliset rytmit ja äänneleikit yhdistyvät psykedeeliseen ja mystiseen tematiikkaan.","Salonen on yli kymmenessä vuodessa tuottanut lukuisia yleisiä runotapahtumia ja julkaissut mm. runomusiikki-EP-levyjä sekä kaksi runokokoelmaa, viimeisimpänä suomenkielisen esikoisensa Kiertoreittejä (Enostone 2021), jonka hän luki myös äänikirjaksi. Hänen käännöksiään on julkaistu runsaasti eri tekstijaleista, esseistiikasta proosakirjallisuuteen ja lyriikkaan. Salosen ensienglanninnokset runoilija Arto Mellerin (1956-2005) tuotannosta on vastikään julkaistu nimellä Unspoken Words: Selected Poems of Arto Melleri (Enostone 2023).","Kasper elelee haltijoiden kanssa Espoon Lippajärvellä, luonnon ja kaupungin vehreässä rajamaastossa."],id:"salonen"},{name:"Suvi Valli",paragraphs:["Suvi Valli on jyväskyläläinen runoilija, esseisti ja kääntäjä, joka harjoittaa kuljeksimista, yleistä tiedustelua ja nuuskintatointa koiransa kanssa. Valli on aiemmin asunut ja kirjoittanut Saksassa.","Hänen liikkumista ja liikennettä tutkaileva runokokoelmansa Spiraali voitti Tuli & Savu -palkinnon vuonna 2018 ja oli Yleisradion Tanssiva karhu -ehdokkaana. Vuonna 2021 Vallilta ilmestyi ruumiin kieleen keskittyvä esseekokoelma Hallittua kaatumista, joka oli Runeberg-palkintoehdokkaana."],id:"suvi_valli"},{name:"Tomi Kontio",paragraphs:["Tomi Kontio on helsinkiläinen runoilija. Hänen esikoisteoksensa Tanssisalitaivaan alla ilmestyi 1993. Kontio on julkaissut proosaa, lastenkirjallisuutta ja runoja. Kontion kahdeksas runokokoelma Tunturin luokse, rakkaan (Teos) ilmestyy 30 vuotta esikoiskokoelman jälkeen, elokuussa 2023."],id:"tomi_kontio"},{name:"Blues Ones",paragraphs:["Jo vuodesta 2014 toiminut Blues Ones esittää Markku Innon kokoelman Blues One runoja juurevan bluesin tahdissa. Vaikka kappaleiden runko on ennalta sovittu ja sovitettu, kaikki esitykset sisältävät myös improvisaatiota. Jokainen keikka on erilainen ja lopputulos yllättää myös esittäjänsä. Runot deklamoi teatteripersoona Valtteri Roiha ja kokoonpanon muusikot ovat Timo Saarinen, kitara, Kimmo Gröhn, saksofoni, Esa Salminen, basso ja Kimmo Lilja, rummut."],id:"blues_ones"},{name:"Esa Hirvonen",paragraphs:["Esa Hirvonen on turkulainen runoilija ja keittiötyöläinen. Tällä hetkellä hän oleilee koiran kanssa mökillä, hääräilee vanhainkodin kyökissä ja valmistelee hissukseen paluuta runouden huomaan julkaisu- ja keikkatauon jälkeen.","Esa on tuottanut Runoviikko-festivaalia, järjestänyt lukuisia kansainvälisiä runokiertueita sekä julkaissut jokusen kirjan.","Hänen runojaan on käännetty useille kielille, mutta parhaiten hänet tunnetaan lavarunoilijana, joka mielellään tekee monitaiteellista yhteistyötä.","Esa on esiintynyt aiemmin mm. Hullunud Tartu festivaalissa, Bukarestin pääkirjastossa, udmurtialaisessa kylässä, Soweton teatterissa ja saksalaisessa yleisessä saunassa."],id:"esa_hirvonen"},{name:"Veera Sylvius",paragraphs:["Veera Sylvius (s. 1974) on helsinkiläinen runoilija. Hän on opiskellut teoreettista fysiikkaa ja tehnyt monipuolisen uran liike-elämässä.","Hän harrastaa kaikenlaista kulttuuria mutta erityisesti lukemista ja kirjoittamista. On todellakin kuljettava kuusikon läpi on hänen esikoisrunoteoksensa. Se kertoo väistämättömästä muutoksesta, ajan kiertymisestä, unien ihmeellisyydestä, ja elämän valoisasta ihmeestä. Hänen runoissaan harkitun niukka ilmaisu yhdistyy tummiin sävyihin haikumaisen luontokuvauksen kautta. "],id:"veera_sylvius"},{name:"Sergio Augusto Sánchez",paragraphs:["Sergio Sánchez (s. 1984) on kolumbialainen kirjailija. Häneltä on tähän mennessä suomennettu kaksi teosta, romaanimainen novellikokoelma Sade piiskaa asfalttia (Aviador 2021) sekä yhdessä kolumbialaisen kuvataiteilija Manuel García Platan kanssa tehty lastenkirja Pikku avokadon tarina (Aviador 2022).","Sánchez on viettänyt lukiovaihto-oppilasvuotensa Jyväskylässä ja pitää Suomea siksi lähes toisena kotimaanaan. Hän on alkuvuodesta 2023 muuttanut pysyvästi Suomeen."],id:"sanchez"},{name:"Katja Meriluoto",paragraphs:["Katja Meriluoto (s. 1975) on helsinkiläinen runoilija, joka kirjoittaa myös lastenproosaa. Hän on opiskellut itämerensuomalaisia kieliä ja käännöstyössään hän on keskittynyt virolaisen nykyrunouden suomentamiseen. Häneltä ilmestyi helmikuussa 2023 esikoisrunokokoelma Mehiläisen paino (Aviador). Teos on kasvu- ja matkakertomus, jossa runon minä etsii paikkaansa yhteisössä ja kokeilee siipiään sen ulkopuolella."],id:"katja_meriluoto"},{name:"Katariina Vuorinen",paragraphs:["Katariina Vuorinen on runoilija, löytöretkeilijä ja Runosaari-festivaalin luoja. Vuonna 2018 hän löysi nomadivuosiensa keskeltä maagisen Velkuanmaan saaren, ja tiesi heti paikan kutsuvan runon henkiä saaristoon. Vuonna 2021 tämä unelma toteutui Runosaaressa, joka jatkuu nyt vuosittaisena tapahtumana Naantalin saaristossa.","Voimallisten näkyjen, rytmin ja mielen liikkeiden tarkentamisen taiturina tunnettu Vuorinen julkaisi viidennen runokokoelmansa Myöhempien kesien jumalat, Los dioses de los veranos ulteriores vuoden 2022 Runosaaressa. Teoksessa Vuorinen kutoo yhteen ihmisen, luonnonvoimat ja kaiken yllä valvovan taivaan Andien ikiaikaisissa maisemissa. Latinalainen Amerikka ja espanjan kieli ovat Vuoriselle erityisen merkityksellisiä, mitä ilmentää kokoelman julkaiseminen samoissa kansissa kaksikielisenä: suomeksi ja espanjaksi (käännös: Zoila Forss-Crespo Moreyra)."],id:"katariina_vuorinen"},{name:"Signe",paragraphs:["Jazz Emma- ja Teosto-palkintoehdokkuuksin huomioitu vokaaliyhtye Signe ihastuttaa läsnäolollaan, vahvoilla solistitulkinnoillaan ja omaperäisillä sävellyksillään. Yhtyeen omintakeinen musiikki on puskenut niin jazzin, taidepopin kuin nykymusiikin rajoja vuodesta 2014. Yhtyeen muodostavat helsinkiläiset laulajat Josefiina Vannesluoma, Riikka Keränen ja Selma Savolainen sekä New Yorkissakin vaikuttava kontrabasisti Kaisa Mäensivu."],id:"signe"},{name:"Rauhatäti",paragraphs:["Rauhatäti aka Hanna Yli-Tepsa on suomenkielisen naisten tekemän räpin pioneereja. Hän on tullut tunnetuksi kantaaottavista sanoituksistaan vuodesta 2007 lähtien. Hän on julkaissut kaksi pitkäsoittoa, Labyrintti 2014 ja Palasia 2019 sekä vieraillut lukuisten somalaisten rap-artistien levyillä. Rauhatäti on ollut tuttu näky myös lavarunoilijana eilaisten spoken word- ja runoteostensa kanssa."],id:"rauhatati"},{name:"Juha Kulmala + Positroninen Runo-orkesteri",paragraphs:["Juha Kulmala on turkulainen runoilija, jonka kuudes kokoelma RESET (Poesia, 2022) ilmestyi viime vuonna. Kulmalan aiemmille teoksille on tullut mm. Tanssiva karhu -runouspalkinto, Jarkko Laine -kirjallisuuspalkinto sekä Runeberg- ja Einari Vuorela -palkintoehdokkuudet.",'Kriitikkojen toteamaa: "Kulmala on hauskasti vihainen ja rennosti yhteiskunnallinen."(Esa Mäkijärvi, Kiiltomato 8.1.2018), "Juha Kulmala on ehkä Suomen luotettavin runoilija, mikä ei tarkoita, että hän olisi tylsä."(Vesa Rantama, Keskisuomalainen 20.12.2017)',"Juha Kulmala + Positroninen Runo-orkesteri (tuttavallisesti vain PRO) on Kulmalan tekstejä sähköisen rytmimusiikin kera esittävä yhtye, jonka kokoonpano vaihtelee tilanteen mukaan. Runosaaressa mukana ovat Juha Kulmala (teksti) ja Pekka Tolonen (soittimet)."],id:"juha_kulmala"},{name:"Juhani Aaltonen",paragraphs:["Juhani Aaltonen (s. 1935) on Suomen johtavia jazzmuusikoita. Hän aloitti uransa 1950-luvulla ja on siitä lähtien esiintynyt kotimaisten ja kansainvälisten huippumuusikoiden yhtyeissä. Hän on luonut myös merkittävän soolotuotannon. Viime kymmenen vuoden aikana hän on laajentanut ilmaisuaan esiintymällä suomalaisen runouden parhaiden edustajien kanssa runofestivaaleilla ja -klubeilla. "],id:"juhani_aaltonen"},{name:"Marianna Kurtto",paragraphs:["Marianna Kurtto (s. 1980) on runoilija, prosaisti ja kaunokirjallisuuden suomentaja. Esikoisteos Eksyneitten valtakunta (WSOY) ilmestyi vuonna 2006 ja viimeisin teos, syväjäädytyksestä heräävälle tiklille äänen antava runoelma Ellen valkeudessa (Otava) keväällä 2023. Kurtto on saanut runoteoksistaan Kalevi Jäntin palkinnon ja Tiiliskivi-palkinnon, ja romaani Tristania (WSOY, 2017) oli Pohjoismaiden neuvoston kirjallisuuspalkinnon ehdokkaana. Kurtto on kotoisin Helsingistä ja asuu tällä hetkellä Karkkilassa vanhassa seuratalossa, jossa kirjoittaminen lomittuu puutarhanhoitoon."],id:"marianne_kurtto"},{name:"Masi Hukari",paragraphs:["Mä en kirjoita bioja. Oon soittanut muutamassa bändissä ja levyttänyt ja esiintynyt kaikkialla. Yksi levy myi platinaa. Toinen vissiin kultaa. Kiinostaa ku kilo paskaa. Ykkösiä ja nollia vaan.","Yhdellä keikalla Kiinassa oli 80000 ihmistä joita osoitettiin aseilla että ne taputtaa. Yhdellä keikalla Tampereella mua heitettiin tuhkakupilla. Fiilis oli aika sama.","Ja välillä oli gargantuaanisen siistiä.","Mieleen jäi kai Texas, Nagoya, Shanghai, Wolverhampton ja luoteisosa Kokkolaa. Jossain maassa juusto oli muovia ja Lyonin ulkopuolella niityt oli hevosia.","Oon varastanu auton. Ajanu safkaa Ramallahiin. Paennu sotaa ja koittanu tehdä rauhaa. Kiertäny maapallon kaks ja puol kertaa soittamalla skebaa. Jutellu punaisella matolla jonku tärkeen kanssa ja juonu käytetystä pahvimukista kahvia kodittoman ex-miljonäärin ruostuvassa jokilaivahovissa.","Mä en osaa enää soittaa. Mä osaan vaan kuunnella. Mut en kyl hitto vieköön saa aikaan bioa. Laskuvarjokaan ei osaa aueta."],id:"masi"},{name:"Otso Helasvuo",paragraphs:["Otso Helasvuo on helsinkiläinen muusikko ja kirjoittaja, joka on yhdistänyt runoilmaisua ääniin muun muassa Säkeet Orkesterissa, Diodissa, sooloartistina sekä säestäjänä."],id:"otso_helasvuo"},{name:"Trio Helasvuo Vuorinen Yli-Tepsa",paragraphs:["Esittely tulossa möhemmin..."],id:"trio_h_v_y"}],wh=[{name:"Hanna Storm",paragraphs:["Hanna Storm on Turussa asuva runoilija, joka on tarkastellut tuotannossaan ulkopuolisuutta, yksinäisyyttä ja valintojen tekemistä.","Hänen esikoiskokoelmansa kutsun itseni kylään (Aviador 2018) käsittelee identiteetin muodostamista, kaupunkitilaa ja nuoruutta, toinen kokoelma Kanootin säilyttämisestä talven yli (Aviador 2020) puolestaan lapsuutta, maapallon tulevaisuuteen liittyviä uhkia sekä luonnossa tapahtuvia muutoksia isän ja lapsen suhteen kautta. Stormin kolmas kokoelma Silittäisinkö häntä vähän (Aviador 2023) pohtii rakkautta, ihmisen ja koiran suhdetta sekä epänormatiivista perhettä. Toukokuussa häneltä ilmestyy ensimmäinen romaani Kiltin tytön rakkaus (Aviador), jonka keskiössä ovat nuoruuden päättyminen ja lapsen kaipuu.","Kirjoittamisen lisäksi Storm esiintyy aktiivisesti. Koulutukseltaan Storm on kirjallisuustieteen tohtori."],id:"hanna_storm"},{name:"Äyräs",paragraphs:["Äyräs soittaa suomenkielistä psykedeelistä runorokkia. Osa teksteistä on vanhaa runoutta (Kailas, Hellaakoski, Mustapää), loput omia sanoituksia. Musiikillisia vaikuttajia ovat alkuaikojen Pink Floyd, Velvet Underground ja monet 60-luvun vaihtoehtobändit sekä uudemmista artisteista muun muassa Steve Gunn, Kurt Vile ja Weyes Blood.","Bändin kokoonpano on Olga Välimaa (laulu), Kauko Röyhkä (kitara, basso), Kimmo Laine (basso, urut), Ilkka Turta (kitara) ja Roberto Lanz (rummut). Youtubesta voi käydä katsomassa bändin videon (Äyräs: Untenkalastaja)"],id:"ayras"},{name:"Terhi Forssén",paragraphs:["Terhi Forssén on Jyväskylässä ja Helsingissä asuva runoilija. Tähän mennessä häneltä on julkaistu kaksi runoteosta: ”Sinä olet ääni minä olen hiljaa” (Basam Books 2022) ja ”Edelleen tässä” (Basam Books 2023), ja lisäksi hän on kirjoittanut monologinäytelmiä. Parhaillaan hän työstää teosta, joka koostuu tunnettujen suomenkielisten runojen uudelleenkirjoituksista.","Tapahtumassa kuullaan Forssénin versiointeja muun muassa Saima Harmajan runoista."],id:"terhi_forssen"},{name:"Katariina Vuorinen",paragraphs:["Katariina Vuorinen on runoilija, löytöretkeilijä ja Runosaari-festivaalin luoja. Vuonna 2018 hän löysi nomadivuosiensa keskeltä maagisen Velkuanmaan saaren, ja tiesi heti paikan kutsuvan runon henkiä saaristoon. Vuonna 2021 tämä unelma toteutui Runosaaressa, joka jatkuu nyt vuosittaisena tapahtumana Naantalin saaristossa.","Voimallisten näkyjen, rytmin ja mielen liikkeiden tarkentamisen taiturina tunnettu Vuorinen julkaisi viidennen runokokoelmansa Myöhempien kesien jumalat, Los dioses de los veranos ulteriores vuoden 2022 Runosaaressa. Teoksessa Vuorinen kutoo yhteen ihmisen, luonnonvoimat ja kaiken yllä valvovan taivaan Andien ikiaikaisissa maisemissa. Latinalainen Amerikka ja espanjan kieli ovat Vuoriselle erityisen merkityksellisiä, mitä ilmentää kokoelman julkaiseminen samoissa kansissa kaksikielisenä: suomeksi ja espanjaksi (käännös: Zoila Forss-Crespo Moreyra)."],id:"katariina_vuorinen"},{name:"Juha Kulmala + Positroninen runo-orkesteri",paragraphs:["Juha Kulmala + Positroninen runo-orkesteri tuuttaa runoutta ja musiikkia herkästi ja häpeilemättä. Rock, blues, jazz, beat, latino, afro, länsirannikko, itärannikko, ulko- ja sisäavaruus, underground, rautalanka, painevasara, sydänääni, suven kimmellys. Meiltä saa kaiken.","Juha Kulmala, tekstit.","Pekka Tolonen, rytmit, kitarat, bassot, koskettimet ja muut soittimet."],id:"juha_kulmala"},{name:"Juha Rautio",paragraphs:["Juha Rautio (s.1980) on kirjoittanut seitsemän runokokoelmaa, joista viimeisin Jokainen epäilys ennen tätä ja tämän jälkeen ilmestyi 2024 alkuvuodesta. Rautio on esiintynyt aktiivisesti runoilijana vuodesta 2005. Runosaaressa hän esiintyy pitkästä aikaa akustisen kitaran kanssa."],id:"juha_rautio"},{name:"Risto Oikarinen",paragraphs:["Risto Oikarinen on palkittu kirjailija ja saksofonisti. Hänen viimeisin runokokoelmansa on Kiitos tästä yöstä (Otava 2023). Oikarinen yhdistää esityksissään runoutta ja saksofoninsoittoa. Hän on esiintynyt useilla kirjallisuusfestivaaleilla niin kotimaassa kuin Euroopassa, ja hänen runojaan on käännetty kymmenelle kielelle.","Oikarinen opettaa kirjoittamista mm. Kriittisessä korkeakoulussa. Hänet on myös vihitty Suomen luterilaisen kirkon pastoriksi."],id:"risto_oikarinen"},{name:"Emmi Ketonen",paragraphs:["Emmi Ketonen on turkulainen suomentaja, joka on kääntänyt erityisesti latinalaisamerikkalaista kirjallisuutta. Vuonna 2017 julkaistiin suomennos chileläisen Vicente Huidobron runoteoksesta Altazor. Vuonna 2025 on tulossa seuraava runosuomennos, valikoima argentiinalaisen Alejandra Pizarnikin tuotannosta. Molempien teosten kustantaja on Kustannusliike Parkko."],id:"emmi_ketonen"}],Rf={2026:Cf,2025:Lf,2024:wh,2023:xh,2022:Sh,2021:gh},Xo=Object.keys(Rf).map(Number).sort((e,n)=>n-e),Eh=()=>{const[e,n]=x.useState({}),[t,a]=x.useState({});x.useEffect(()=>{const l={},s={};for(const o of Xo)l[o]=Rf[o].map(u=>({...u,showDesc:!1})),s[o]=!1;n(l),a(s)},[]);const i=l=>{a(s=>({...s,[l]:!s[l]}))},r=(l,s)=>{n(o=>({...o,[l]:o[l].map(u=>u.id===s?{...u,showDesc:!u.showDesc}:u)}))};return c.jsxs("section",{className:ce.page+" "+Je.archivePage,children:[c.jsx("h1",{children:"Arkisto"}),Xo.map(l=>c.jsxs(te.Fragment,{children:[c.jsxs("div",{className:Je.yearTitle,onClick:()=>i(l),children:[c.jsx("h2",{className:Je.year,children:l}),c.jsx("button",{className:ce.openingChevron,children:t[l]?c.jsx(fn,{size:"3rem"}):c.jsx(dn,{size:"3rem"})})]}),c.jsx("div",{className:Je.yearPerformers,children:c.jsx(Be,{in:t[l],timeout:300,classNames:"fadeTransition",unmountOnExit:!0,children:c.jsx("div",{className:Je.yearPerformersContent,children:(e[l]??[]).map(s=>c.jsxs("div",{className:Je.performerContainer,children:[c.jsx("img",{className:Je.performerImage,src:"/performers/"+l+"/"+s.id+".jpg",width:100,height:100,loading:"lazy",alt:s.name}),c.jsxs("div",{className:Je.performerTextContainer,children:[c.jsxs("div",{className:Je.performerTitle,onClick:()=>r(l,s.id),children:[c.jsx("h2",{children:s.name}),c.jsx("button",{className:ce.openingChevron,children:s.showDesc?c.jsx(fn,{size:"3rem"}):c.jsx(dn,{size:"3rem"})})]}),c.jsx(Be,{in:s.showDesc,timeout:300,classNames:"fadeTransition",unmountOnExit:!0,children:c.jsx("div",{children:s.paragraphs.map((o,u)=>c.jsx("p",{children:o.toString()},u))})}),c.jsx("hr",{})]})]},s.id))})})})]},l))]})};function _h(){return c.jsxs(lk,{children:[c.jsx(Sk,{}),c.jsx("main",{children:c.jsxs(bp,{children:[c.jsx(Ye,{path:"/",element:c.jsx(Nk,{})}),c.jsx(Ye,{path:"/performers",element:c.jsx(Uk,{})}),c.jsx(Ye,{path:"/performers/:id",element:c.jsx($k,{})}),c.jsx(Ye,{path:"/program",element:c.jsx(bk,{})}),c.jsx(Ye,{path:"/info",element:c.jsx(ih,{})}),c.jsx(Ye,{path:"/safety",element:c.jsx(sh,{})}),c.jsx(Ye,{path:"/workshops",element:c.jsx(ch,{})}),c.jsx(Ye,{path:"/archive",element:c.jsx(Eh,{})})]})}),c.jsx(hk,{})]})}Cr.createRoot(document.getElementById("root")).render(c.jsx(te.StrictMode,{children:c.jsx(_h,{})}));