1/* @license GPL-2.0-or-later https://git.drupalcode.org/project/once/-/raw/v1.0.1/LICENSE.md */ 2/*! @drupal/once - v1.0.1 - 2021-06-12 */ 3var once=function(){"use strict";var n=/[\11\12\14\15\40]+/,e="data-once",t=document;function r(n,t,r){return n[t+"Attribute"](e,r)}function o(e){if("string"!=typeof e)throw new TypeError("once ID must be a string");if(""===e||n.test(e))throw new RangeError("once ID must not be empty or contain spaces");return'[data-once~="'+e+'"]'}function u(n){if(!(n instanceof Element))throw new TypeError("The element must be an instance of Element");return!0}function i(n,e){void 0===e&&(e=t);var r=n;if(null===n)r=[];else{if(!n)throw new TypeError("Selector must not be empty");"string"!=typeof n||e!==t&&!u(e)?n instanceof Element&&(r=[n]):r=e.querySelectorAll(n)}return Array.prototype.slice.call(r)}function c(n,e,t){return e.filter((function(e){var r=u(e)&&e.matches(n);return r&&t&&t(e),r}))}function f(e,t){var o=t.add,u=t.remove,i=[];r(e,"has")&&r(e,"get").trim().split(n).forEach((function(n){i.indexOf(n)<0&&n!==u&&i.push(n)})),o&&i.push(o);var c=i.join(" ");r(e,""===c?"remove":"set",c)}function a(n,e,t){return c(":not("+o(n)+")",i(e,t),(function(e){return f(e,{add:n})}))}return a.remove=function(n,e,t){return c(o(n),i(e,t),(function(e){return f(e,{remove:n})}))},a.filter=function(n,e,t){return c(o(n),i(e,t))},a.find=function(n,e){return i(n?o(n):"[data-once]",e)},a}(); 4 5; 6/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 7window.drupalTranslations={"strings":{"":{"Changed":"Muuttunut","Open":"K\u00e4ynniss\u00e4","Close":"Sulje","closed":"Suljettu","Home":"Etusivu","English":"englanti","Name":"Nimi","Image":"Image","Summary":"Yhteenveto","Category":"Kategoria","Target group":"Kohderyhm\u00e4","Topic":"Aihepiiri","Finnish":"suomi","Swedish":"ruotsi","Service":"Palvelu","Master":"Master","Apply":"Apply","Sort by":"Sort by","Updated":"P\u00e4ivitetty","Title":"Otsikko","Language":"Kieli","All":"Kaikki","Hide":"Piilossa","Wed":"ke","Tue":"ti","Tuesday":"tiistai","ID":"ID","Enabled":"K\u00e4yt\u00f6ss\u00e4","First":"Ensimm\u00e4inen","Last":"Viimeinen","Service providers":"Palveluntarjoajat","Edit":"Muokkaa","You have unsaved changes.":"Sinulla on tallentamattomia muutoksia.","Authored on @date":"Julkaisup\u00e4iv\u00e4","Done":"Tehty","Next":"Seuraava","Jan":"tammi","Feb":"helmi","Mar":"maalis","Apr":"huhti","May":"touko","Jun":"kes\u00e4","Jul":"hein\u00e4","Aug":"elo","Sep":"syys","Oct":"loka","Nov":"marras","Dec":"joulu","Sunday":"sunnuntai","Monday":"maanantai","Wednesday":"keskiviikko","Thursday":"torstai","Friday":"perjantai","Saturday":"lauantai","Sun":"su","Mon":"ma","Thu":"to","Fri":"pe","Sat":"la","Cancel":"Cancel","Loading...":"Haetaan...","Error message":"Virheviesti","Add":"Lis\u00e4\u00e4","1 week\u0003@count weeks":"1 viikko\u0003@count viikkoa","Disabled":"Ei k\u00e4yt\u00f6ss\u00e4","None":"Ei mit\u00e4\u00e4n","Location":"Paikka","Read more":"Lue lis\u00e4\u00e4","Field":"Ala","Services":"Palvelut","Hide description":"Piilota kuvaus","Search":"Hae","Research group":"Tutkimusryhm\u00e4","No results found.":"Ei hakutuloksia.","Yes":"Kyll\u00e4","No":"Ei","Exclude":"J\u00e4t\u00e4 pois","and":"ja","Advanced":"Syvent\u00e4v\u00e4t","News":"uutisia","Basic":"Peruskurssi","Event":"Tapahtuma","Study option":"Koulutustarjonta","Degree":"Tutkinto","Application period":"Hakuaika","Language of instruction":"Opetuskieli","Duration":"Kesto","Eligibility":"Hakukelpoisuus","Business and Economics":"Kauppatieteet","Credits":"Laajuus","years":"vuotta","Technology and Engineering":"Tekniikka","Filters":"Suodattimet","Sort order":"J\u00e4rjest\u00e4","Show only":"N\u00e4yt\u00e4 vain","ECTS":"opintopistett\u00e4","Previous":"Edellinen","Tuition fees":"Lukuvuosimaksut","Art and Design":"Taiteet ja suunnittelu","For Aalto community":"Aalto-yhteis\u00f6lle","Open University":"Avoin yliopisto","Open for learning?":"L\u00f6yd\u00e4 suunta tulevaisuudellesi.","Get to know our course selection":"Tutustu avoimen yliopiston koulutustarjontaan","Search for courses":"Etsi kurssia avoimesta yliopistosta","From A to Z":"A - \u00d6","From Z to A":"\u00d6 - A","Closing soon":"Pian sulkeutuvat","One result":"Yksi hakutulos","results":"hakutulosta","Filter results":"Rajaa hakutuloksia","One filter":"Yksi suodatin\u0027","filters":"suodatinta","No filters":"Ei suodattimia","Show details":"N\u00e4yt\u00e4 tiedot","Study field":"Koulutusala","Season":"Kausi","Teaching time":"Opetusajankohdat","Form of studies":"Opintojen muoto","All topics":"Kaikki aihepiirit","Arrow left":"Nuoli vasempaan p\u00e4in","By name":"Nimen mukaan","By registration period":"Ilmoittautumisjakson mukaan","To be announced":"Ilmoitetaan my\u00f6hemmin","Pick":"Valitse","Explore services at Aalto University":"Tutustu Aalto-yliopiston palveluihin","What service are you looking for?":"Mit\u00e4 palvelua haet?","Look for a service for":"Kohderyhm\u00e4","Topics":"Aihepiirit","Show more":"N\u00e4yt\u00e4 lis\u00e4\u00e4","Find a study option or ":"Hae opintoja tai ","check the full list":"katso kaikki vaihtoehdot","Search for a study option":"Hae koulutustarjonnastamme","Aalto University":"Aalto-yliopisto","Aalto University is a community of bold thinkers where science and art meet technology and business.":"Aalto-yliopisto on suomalaisille vahvuuksille rakentuva kansainv\u00e4linen yliopisto. Aalto-yliopistossa tiede ja taide kohtaavat tekniikan ja talouden.","Find your programme from the study options below.":"Tutustu koulutustarjontaamme","Search for study option":"Hae koulutustarjonnastamme","Longest first":"Pisin ensin","Opening first":"Alkaa seuraavaksi","Opening last":"Alkaa viimeisen\u00e4","Bachelor studies":"kandidaatti","Master studies":"maisteri","Double degree":"yhteistutkinto-ohjelmat","By duration":"Keston mukaan","Shortest first":"Lyhyin ensin","By application period":"Hakuajan mukaan","One year":"Yksi vuosi","part-time":"osap\u00e4iv\u00e4inen","full-time":"t\u00e4ysip\u00e4iv\u00e4inen","One target group\u0003@count target groups":"Yksi kohderyhm\u00e4\u0003@count kohderyhm\u00e4\u00e4","One topic\u0003@count topics":"Yksi aihe\u0003@count aihetta","@count result\u0003@count results":"@count hakutulos\u0003@count hakutulosta","Intermediate":"Aineopinnot","Course":"Kurssi","Level":"Taso","Registration period":"Ilmoittautumisjakso","Summer":"Kes\u00e4","Autumn":"Syksy","Spring":"Kev\u00e4t","Daytime":"P\u00e4iv\u00e4opetus","Evening":"Iltaopetus","Weekend":"Viikonloppu","Supervised":"Ohjattu","Book exams":"Kirjatentti","Blended":"Monimuoto","Online":"Verkkokurssi","One result\u0003@count results":"Yksi hakutulos\u0003@count hakutulosta","Theme":"Theme","URL copied!":"URL kopioitu","Filter by keyword":"Suodata avainsanalla","Registration":"Ilmoittautuminen","weeks":"viikkoa","Doctoral studies":"tohtori","Invalid phone number":"Ep\u00e4kelpo puhelinnumero","Also suitable for":"Soveltuu my\u00f6s","Contact teaching":"L\u00e4hiopetus","Teaching Perio
7d":"Opetusajankohta","Application Period":"Hakuaika","Arts and Design":"Taiteet ja suunnittelu","High school":"Lukiolaiset","Bachelor":"Kandidaatti","Doctoral":"Tohtori","Professional":"Ammattilaiset","Teaching period":"Opetusajankohta","Course format":"Toteutustapa","Entrepreneurship":"Yritt\u00e4jyys","Language and Culture":"Kielet ja kulttuuri","Campus":"Kampus","Detailed filters":"Tarkat hakuehdot"," courses":"kurssia","Fee":"Hinta","Starting period":"Aloituskausi","Schedule":"Ajankohta","Link copied to clipboard":"Linkki kopioitu leikep\u00f6yd\u00e4lle","Showing":"Hakuehdoilla l\u00f6ytyi","Search services":"Hae palveluita","Showing ":"Hakuehdoilla l\u00f6ytyi","Standard page":"Perussivu","Research":"Tutkimus","Profiles":"Henkil\u00f6","Study option page":"Hakukohdekuvaus","Expand all filters":"N\u00e4yt\u00e4 kaikki rajaukset","Collapse all filters":"Piilota kaikki rajaukset","I want to see services provided by...":"Etsin palvelua, jonka tarjoaa...","Sort":"J\u00e4rjest\u00e4","services by":"palvelua","Service name":"Nimen mukaan","Most recent":"Uusimmat ensin","@count service\u0003@count services":"@count palvelu\u0003@count palvelua","I am looking for a service on...":"Etsin palvelua, jonka aihe on\u2026","I am interested in services aimed at...":"Etsin palvelua, joka on suunnattu\u2026","Service on":"Aihe","@count service by\u0003@count services by":"@count palvelu\u0003@count palvelua","Topic and study field":"Aihealue ja koulutusala","Schedule information":"Aikataulutiedot","Course schedule":"Opetusaika","Ended":"P\u00e4\u00e4ttynyt","Coming":"Tulossa","Category ":"Kategorian mukaan","Event types":"Tapahtumatyypit","Time and location":"Paikka ja aika","Starting next":"Alkamisajankohdan mukaan","Ongoing events ":"Meneill\u00e4\u00e4n olevat","Registration open":"Ilmoittautuminen k\u00e4ynniss\u00e4","@count event\u0003@count events":"@count tapahtuma\u0003@count tapahtumaa","@count event by\u0003@count events by":"@count tapahtuma\u0003@count tapahtumaa","Course level":"Kurssin taso","Public \/ community content":"Julkiset \/ Vain Aalto-yhteis\u00f6lle tarkoitetut","Event taking place between":"Etsi tapahtumia aikav\u00e4lill\u00e4","Date 1":"P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 1","Date 2":"P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 2","All content":"Kaikki","Public content only":"Vain julkiset","Aalto community content only":"Vain Aalto-yhteis\u00f6lle tarkoitetut","There are service index pages that may have the answers you are looking for":"Saatat l\u00f6yt\u00e4\u00e4 etsim\u00e4si n\u00e4ist\u00e4 hakemistosivuista","Programme level":"Taso","Curricula":"Opetussuunnitelmakausi","Search programmes":"Etsi ohjelmia","Curriculum":"Opetussuunnitelma","@count programme\u0003@count programmes":"@count ohjelma\u0003@count ohjelmaa","School":"Koulu","Previous curricula":"Aiemmat opintosuunnitelmat","Search minors":"Etsi sivuaineita","Available for":"Kenelle","All Aalto people listed":"Kaikki aaltolaiset korkeakoulun tai palveluyksik\u00f6n mukaan","Schools":"Korkeakoulut","Aalto Services":"Aallon palvelutiimit","Each school also has its own services that can be found in their relevant section":"Kaikilla korkeakouluilla on oma palvelutiimi, joka l\u00f6ytyy kyseisen palvelun kohdalta","All Aalto people":"Kaikki aaltolaiset","Search Aalto people":"Hae aaltolaisia","Search Aalto people by name or department in ":"Hae aaltolaisia nimell\u00e4 organisaatiossa\/tiimiss\u00e4: ","Team lead":"Tiimin esihenkil\u00f6","Team members":"Tiimin j\u00e4senet","@count minor\u0003@count minors":"@count sivuaine\u0003@count sivuainetta","Search grants and awards":"Hae stipendej\u00e4 ja apurahoja","Sort grants and awards by":"J\u00e4rjest\u00e4 stipendit ja apurahat","Recently posted":"Julkaisup\u00e4iv\u00e4n mukaan","@count grant or award\u0003@count grants and awards":"@count stipendi tai apuraha\u0003@count stipendi\u00e4 ja apurahaa","Site index":"Sivuhakemisto","Listed on this page are all the content on Aalto.fi except for":"T\u00e4lle sivulle on listattu aalto.fi:n sis\u00e4ll\u00f6t aakkosj\u00e4rjestyksess\u00e4 lukuun ottamatta","Aalto people":"henkil\u00f6it\u00e4","Events":"tapahtumia","Search events":"Etsi tapahtumia","grants and awards":"stipendi\u00e4 ja apurahaa","grant or award":"stipendi tai apuraha","courses":"kurssia","course":"kurssi","minors":"sivuainetta","minor":"sivuaine","programmes":"ohjelmaa","programme":"ohjelma","Most relevant":"Osuvin","study options":"opintoa","study option":"opinto","Search for grants and awards":"Hae stipendej\u00e4 ja apurahoja","Search courses":"Etsi kursseja","Search for minors":"Etsi sivuaineita","Search for programmes":"Etsi ohjelmia","News ":"Uutinen","Listed on this page is all the content at aalto.fi except for":"T\u00e4lle sivulle on listattu aalto.fi:n sis\u00e4ll\u00f6t aakkosj\u00e4rjestyksess\u00e4 lukuun ottamatta","Search study options":"Hae koulutustarjonnastamme","Search for study options":"Hae koulutustarjonnastamme","ECTS ":"Opintopisteet","Onsite":"Paikan p\u00e4\u00e4ll\u00e4","Sort @count event by\u0003Sort @count events by":"J\u00e4rjest\u00e4 @count tapahtuma\u0003J\u00e4rjest\u00e4 @count tapahtumaa","@count news\u0003@count news":"@count uutinen\u0003@count uutista","services":"palvelua","service":"palvelu","@count course\u0003@count courses":"@count kurssi\u0003@count kurssia","Sort study options by":"J\u00e4rjest\u00e4 opinnot","Language of learning":"Suorituskieli","Site index for Student Guide":"Opiskelijan oppaan sivuhakemisto","Listed on this page is all Student Guide content except for":"T\u00e4ll\u00e4 sivulla on lueteltu kaikki Opiskelijan oppaan sis\u00e4ll\u00f6t lukuun ottamatta","Level of programme":"Ohjelman taso","Course starts":"Kurssi alkaa","Registration ended":"Ilmoittautuminen p\u00e4\u00e4ttynyt","Registration upcoming":"Ilmoittautuminen tulossa","Reset sorting":"Poista valinnat","Bachelor\u0027s":"Kandidaatti","Master\u0027s programmes":"Maisterikoulutukset","Joint degree programmes":"Yhteistutkinto-ohjelmat","Alphabetical":"Aakkosj\u00e4rjestys","Master\u0027s":"Maisteri","Finish":"Tuloksiin","AI search":"Teko\u00e4lyhaku","Thinking...":"Miettii..."},"Long month name":{"April":"huhtikuu","January":"tammikuu","February":"helmikuu","March":"maaliskuu","May":"toukokuu","June":"kes\u00e4kuu","July":"hein\u00e4kuu","August":"elokuu","September":"syyskuu","October":"lokakuu","November":"marraskuu","December":"joulukuu"},"Play video button in media gallery.":{"Play video":"Toista video"},"Additional information for screen reader":{"external link":"ulkoinen linkki"},"Content type Minor":{"Theme":"Teema","minor":"sivuaine","minors":"sivuainetta"},"Course status banner.":{"The next application period will open":"Seuraava hakuaika alkaa","The application period is open until":"Hakuaika p\u00e4\u00e4ttyy","The application period has closed.":"Hakuaika on p\u00e4\u00e4ttynyt","The next registration period will open":"Ilmoittautumisjakso alkaa","The registration period is open until":"Ilmoittautumisjakso p\u00e4\u00e4ttyy","The registration period has closed.":"Ilmoittautumisjakso on p\u00e4\u00e4ttynyt","Apply now":"Hae nyt","The application period is currently closed. See upcoming application periods at \u003Ca href=\u0022https:\/\/www.aalto.fi\/en\/admissions\u0022\u003Eaalto.fi\/admissions\u003C\/a\u003E":"Hakuaika ei ole nyt k\u00e4ynniss\u00e4. Katso tulevat hakuajat: \u003Ca href=\u0022https:\/\/www.aalto.fi\/fi\/hakeminen\u0022\u003Eaalto.fi\/hakeminen\u003C\/a\u003E","The application period is currently closed.":"Hakuaika ei ole nyt k\u00e4ynniss\u00e4."},"Programme listing":{"Bachelor":"Kandidaatti","Master":"Maisteri","Doctoral":"Tohtori","programme":"ohjelma","programmes":"ohjelmaa","School":"Koulu","Your search returned no results. This may be because":"Haullasi ei l\u00f6ytynyt tuloksia. T\u00e4m\u00e4 saattaa johtua seuraavista syist\u00e4","You are searching for the programme in the wrong language.":"Yrit\u00e4t hakea ohjelman nime\u00e4 v\u00e4\u00e4r\u00e4ll\u00e4 kielell\u00e4.","Your search term(s) contain misspellings.":"Hakusanassa on kirjoitusvirheit\u00e4."},"Quicksearch":{"News":"Uutinen","For students":"Opiskelijoille","Lifewide learning course":"El\u00e4m\u00e4nlaajuisen oppimisen kurssi","Open university course":"Avoimen yliopiston kurssi","External liftup":"Ulkoinen sivu","For Aalto students":"Aallon opiskelijoille","AI results will be available on the search results page.":"Teko\u00e4lytulokset n\u00e4ytet\u00e4\u00e4n hakutulossivulla. "},"Services hub sort button":{"Category":"Kategorian mukaan"},"Summers school listing":{"ECTS":"Opintopisteet"},"Self study material":{"Read more":"Lue lis\u00e4\u00e4"},"Events hub":{"Filters":"Suodattimet","Event types":"Tapahtumatyypit","Public \/ community content":"Julkiset \/ Vain Aalto-yhteis\u00f6lle tarkoitetut","Categories":"Kategoriat","Time and location":"Paikka ja aika","Event taking place between":"Etsi tapahtumia aikav\u00e4lill\u00e4","Date 1":"P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 1","Date 2":"P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 2","Location":"Paikka","Search events":"Etsi tapahtumia","Search for events":"Etsi tapahtumia","events":"tapahtumaa","Event":"Tapahtuma","Registration":"Ilmoittautuminen","Online":"Verkossa","For Aalto community":"Aalto-yhteis\u00f6lle","All content":"Kaikki","Public content only":"Vain julkiset","Aalto community content only":"Vain Aalto-yhteis\u00f6lle tarkoitetut","Onsite":"Paikan p\u00e4\u00e4ll\u00e4","Starting next":"Alkamisajankohdan mukaan","Ongoing events ":"Meneill\u00e4\u00e4n olevat","Registration open":"Ilmoittautuminen k\u00e4ynniss\u00e4","event":"tapahtuma","Past events":"Menneet tapahtumat"},"News hub":{"Publication dates":"Julkaisuajankohta","From":"Alkaa","To":"P\u00e4\u00e4ttyy","News published between":"Julkaistut uutiset ajanjaksona","News types":"Uutistyypit","Categories":"Kategoriat","Search news":"Etsi uutisia","Search for news":"Etsi uutisia","news":"uutista","All content":"Kaikki","Public content only":"Vain julkiset","Aalto community content only":"Vain Aalto-yhteis\u00f6lle tarkoitetut","Public \/ community content":"Julkiset \/ Vain Aalto-yhteis\u00f6lle tarkoitetut","Published":"Julkaistu"},"News hub, singular":{"news":"uutinen"},"People hub":{"No results":"Ei hakutuloksia"},"Courses and Programmes listing":{"Topic":"Aihealue","Detailed filters":"Tarkat hakuehdot","Starting period":"Aloituskausi","Forms of learning":"Opetusmuoto","Course level":"Kurssin taso","Credits":"Opintopisteet","Suitable for high school students":"Soveltuu lukiolaisille","Seniority level":"Kokemus","Application period":"Hakuaika","Search courses":"Etsi kursseja","Search for courses":"Etsi kursseja","courses":"kurssia","Schedule":"Ajankohta","
7Level":"Taso","Language":"Kieli","To course page":"Ohjelman sivulle","No application needed":"Kurssille ei tarvitse hakea","Ongoing":"Jatkuvasti k\u00e4ynniss\u00e4","Application closing soon":"Hakuaika p\u00e4\u00e4ttym\u00e4ss\u00e4","Name":"Kurssin nimi","Yes":"Kyll\u00e4","Upcoming":"Tulevat kurssit","Continuously ongoing":"Jatkuvasti k\u00e4ynniss\u00e4","No application":"Ei hakuaikaa","In the past":"P\u00e4\u00e4ttyneet kurssit","course":"kurssi","Course":"Kurssi","Form of learning":"Opetusmuoto","Fee":"Hinta","Showing":"Hakuehdoilla l\u00f6ytyi","Free of charge":"Maksuton","Subject to a fee":"Maksullinen"},"Hub listings":{"Filters":"Suodattimet","Showing":"Hakuehdoilla l\u00f6ytyi","Loading...":"Lataa...","Loading contents...":"Lataa sis\u00e4lt\u00f6j\u00e4..."},"Grants and awards listing":{"grant or award":"stipendi tai apuraha","grants and awards":"stipendi\u00e4 ja apurahaa"},"Open Uni hub":{"course":"kurssi","courses":"kurssia"},"Services hub":{"services":"palvelua"},"Study option hub":{"study option":"opinto","study options":"koulutusta"},"Summer school listing":{"courses":"kurssia","course":"kurssi"},"Personnel hub":{"News and events":"Uutiset ja tapahtumat","Filter by target group or school.":"Suodata kohderyhm\u00e4n tai korkeakoulun mukaan."},"Kivita course listing":{"Course page":"Kurssisivulle","Read more":"Lue lis\u00e4\u00e4"},"Site index for Student guide":{"Site index for the Student Guide":"Opiskelijan oppaan sivuhakemisto","This page lists all Student Guide contents except for":"T\u00e4ll\u00e4 sivulla on lueteltu kaikki Opiskelijan oppaan sis\u00e4ll\u00f6t lukuun ottamatta","news":"uutisia","and":"ja","events":"tapahtumia"},"Innovations teams listing":{"result":"hakutulos","results":"hakutulosta","Selected filters":"Valitut suodattimet","Sort by":"J\u00e4rjest\u00e4 hakutulokset","Read more":"Lue lis\u00e4\u00e4","No results.":"Ei hakutuloksia.","Search innovation teams":"Hae tiimej\u00e4","teams":"tiimi\u00e4","Quickview":"Pikakatselu","To team page":"Tiimisivulle","Hide quickview":"Sulje pikakatselu"},"Innovation teams listing":{"Date created":"Luontip\u00e4iv\u00e4n mukaan","A to Z":"A - \u00d6"},"Study option tuition fee":{"For non-EU\/EEA citizens, \u20ac@master_fee\/y (Master\u2019s studies)":"EU\/ETA-alueen ulkopuoliset kansalaiset, @master_fee \u20ac\/v (maisteriopinnot)","For non-EU\/EEA citizens, \u20ac@bachelor_fee\/y (Bachelor\u2019s studies) + \u20ac@master_fee\/y (Master\u2019s studies)":"EU\/ETA-alueen ulkopuoliset kansalaiset @bachelor_fee \u20ac\/v (kandidaattiopinnot) + @master_fee \u20ac\/v (maisteriopinnot)","For non-EU\/EEA citizens, \u20ac@bachelor_fee\/y (Bachelor\u0027s studies) + \u20ac@master_fee\/y (Master\u0027s studies)":"EU\/ETA-alueen ulkopuoliset kansalaiset @bachelor_fee \u20ac\/v (kandidaattiopinnot) + @master_fee \u20ac\/v (maisteriopinnot)","For non-EU\/EEA citizens, \u20ac@master_fee\/y (Master\u0027s studies)":"EU\/ETA-alueen ulkopuoliset kansalaiset, @master_fee \u20ac\/v (maisteriopinnot)"},"Minors listing":{"School":"Koulu","Your search returned no results. This may be because":"Haullasi ei l\u00f6ytynyt tuloksia. T\u00e4m\u00e4 saattaa johtua seuraavista syist\u00e4","You are searching for the minor in the wrong language.":"Yrit\u00e4t hakea sivuaineen nime\u00e4 v\u00e4\u00e4r\u00e4ll\u00e4 kielell\u00e4.","Your search term(s) contain misspellings.":"Hakusanassa on kirjoitusvirheit\u00e4.","Organiser":"J\u00e4rjest\u00e4v\u00e4 yksikk\u00f6"},"Material listing card":{"Read more":"Lue lis\u00e4\u00e4"},"Student guide events hub":{"Events for all students":"Tapahtumat kaikille opiskelijoille"},"Student guide hubs":{"Level of Programme":"Ohjelman taso"},"Student guide news hub":{"News for all students":"Uutiset kaikille opiskelijoille"},"Fundraising campaign test":{"At least":"Ainakin","reason to donate\u0003reasons to donate":"syy lahjoittaa\u0003syyt\u00e4 lahjoittaa"}},"pluralFormula":{"1":0,"default":1}};; 8(function(){const settingsElement=document.querySelector('head > script[type="application/json"][data-drupal-selector="drupal-settings-json"], body > script[type="application/json"][data-drupal-selector="drupal-settings-json"]');window.drupalSettings={};if(settingsElement!==null)window.drupalSettings=JSON.parse(settingsElement.textContent);})();; 9window.Drupal={behaviors:{},locale:{}};(function(Drupal,drupalSettings,drupalTranslations,console,Proxy,Reflect){Drupal.throwError=function(error){setTimeout(()=>{throw error;},0);};Drupal.attachBehaviors=function(context,settings){context=context||document;settings=settings||drupalSettings;const behaviors=Drupal.behaviors;Object.keys(behaviors||{}
9).forEach((i)=>{if(typeof behaviors[i].attach==='function')try{behaviors[i].attach(context,settings);}catch(e){Drupal.throwError(e);}});};Drupal.detachBehaviors=function(context,settings,trigger){context=context||document;settings=settings||drupalSettings;trigger=trigger||'unload';const behaviors=Drupal.behaviors;Object.keys(behaviors||{}).forEach((i)=>{if(typeof behaviors[i].detach==='function')try{behaviors[i].detach(context,settings,trigger);}catch(e){Drupal.throwError(e);}});};Drupal.checkPlain=function(str){str=str.toString().replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/'/g,''');return str;};Drupal.formatString=function(str,args){const processedArgs={};Object.keys(args||{}).forEach((key)=>{switch(key.charAt(0)){case '@':processedArgs[key]=Drupal.checkPlain(args[key]);break;case '!':processedArgs[key]=args[key];break;default:processedArgs[key]=Drupal.theme('placeholder',args[key]);break;}});return Drupal.stringReplace(str,processedArgs,null);};Drupal.stringReplace=function(str,args,keys){if(str.length===0)return str;if(!Array.isArray(keys)){keys=Object.keys(args||{});keys.sort((a,b)=>a.length-b.length);}if(keys.length===0)return str;const key=keys.pop();const fragments=str.split(key);if(keys.length){for(let i=0;i<fragments.length;i++)fragments[i]=Drupal.stringReplace(fragments[i],args,keys.slice(0));}return fragments.join(args[key]);};Drupal.t=function(str,args,options){options=options||{};options.context=options.context||'';if(typeof drupalTranslations!=='undefined'&&drupalTranslations.strings&&drupalTranslations.strings[options.context]&&drupalTranslations.strings[options.context][str])str=drupalTranslations.strings[options.context][str];if(args)str=Drupal.formatString(str,args);return str;};Drupal.url=function(path){return drupalSettings.path.baseUrl+drupalSettings.path.pathPrefix+path;};Drupal.url.toAbsolute=function(url){const urlParsingNode=document.createElement('a');try{url=decodeURIComponent(url);}catch(e){}urlParsingNode.setAttribute('href',url);return urlParsingNode.cloneNode(false).href;};Drupal.url.isLocal=function(url){let absoluteUrl=Drupal.url.toAbsolute(url);let {protocol}=window.location;if(protocol==='http:'&&absoluteUrl.startsWith('https:'))protocol='https:';let baseUrl=`${protocol}//${window.location.host}${drupalSettings.path.baseUrl.slice(0,-1)}`;try{absoluteUrl=decodeURIComponent(absoluteUrl);}catch(e){}try{baseUrl=decodeURIComponent(baseUrl);}catch(e){}return absoluteUrl===baseUrl||absoluteUrl.startsWith(`${baseUrl}/`);};Drupal.formatPlural=function(count,singular,plural,args,options){args=args||{};args['@count']=count;const pluralDelimiter=drupalSettings.pluralDelimiter;const translations=Drupal.t(singular+pluralDelimiter+plural,args,options).split(pluralDelimiter);let index=0;if(typeof drupalTranslations!=='undefined'&&drupalTranslations.pluralFormula)index=count in drupalTranslations.pluralFormula?drupalTranslations.pluralFormula[count]:drupalTranslations.pluralFormula.default;else{if(args['@count']!==1)index=1;}return translations[index];};Drupal.encodePath=function(item){return window.encodeURIComponent(item).replace(/%2F/g,'/');};Drupal.deprecationError=({message})=>{if(drupalSettings.suppressDeprecationErrors===false&&typeof console!=='undefined'&&console.warn)console.warn(`[Deprecation] ${message}`);};Drupal.deprecatedProperty=({target,deprecatedProperty,message})=>{if(!Proxy||!Reflect)return target;return new Proxy(target,{get:(target,key,...rest)=>{if(key===deprecatedProperty)Drupal.deprecationError({message});return Reflect.get(target,key,...rest);}});};Drupal.theme=function(func,...args){if(func in Drupal.theme)return Drupal.theme[func](...args);};Drupal.theme.placeholder=function(str){return `<em class="placeholder">${Drupal.checkPlain(str)}</em>`;};Drupal.elementIsVisible=function(elem){return !!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length);};Drupal.elementIsHidden=function(elem){return !Drupal.elementIsVisible(elem);};})(Drupal,window.drupalSettings,window.drupalTranslations,window.console,window.Proxy,window.Reflect);; 10if(window.jQuery)jQuery.noConflict();document.documentElement.className+=' js';(function(Drupal,drupalSettings){const domReady=(callback)=>{const listener=()=>{callback();document.removeEventListener('DOMContentLoaded',listener);};if(document.readyState!=='loading')setTimeout(callback,0);else document.addEventListener('DOMContentLoaded',listener);};domReady(()=>{Drupal.attachBehaviors(document,drupalSettings);});})(Drupal,window.drupalSettings);; 11(function(Drupal,drupalSettings,once){'use strict';Drupal.behaviors.aalto_admin_utility={attach:function(context,settings){once('aalto_admin_utility','html',context).forEach(function(){setTimeout(()=>{const ginTheme=document.querySelector('body[data-gin-accent="blue"]');const tableWithStickyHeader=context.querySelector('.sticky-enabled');const tableStickyHeader=context.querySelector('.sticky-enabled > .sticky-header');const tray=document.querySelector('.gin-secondary-toolbar');const toolbar=document.getElementById('gin-toolbar-bar');if(ginTheme&&tableWithStickyHeader&&tableStickyHeader){tableStickyHeader.style.display='none';context.addEventListener('scroll',function(){if(tableWithStickyHeader.getBoundingClientRect().y<tray.offsetHeight+toolbar.offsetHeight)tableStickyHeader.style.display='block';else tableStickyHeader.style.display='none';});}const publishToggle=context.getElementById('edit-status-value--gin-edit-form');if(publishToggle){const labelId=publishToggle.closest('.js-form-item').querySelector('label').getAttribute('for');publishToggle.setAttribute('id',labelId);}},10);});}};})(Drupal,drupalSettings,once);; 12(function(Drupal,drupalSettings){"use strict";Drupal.behaviors.aalto_datalayer={attach:function(context,settings){once('aalto_datalayer','html',context).forEach(function(){var element=document.getElementById('aalto-es-search');if((typeof (element)=='undefined'||element==null))pushUserMetaData(settings);});if(typeof window.dataLayer==='object'&&Array.isArray(window.dataLayer)&&drupalSettings&&drupalSettings.aaltoDataLayer){for(var index in drupalSettings.aaltoDataLayer){window.dataLayer.push(Object.assign(drupalSettings.aaltoDataLayer[index],{event:index}));delete drupalSettings.aaltoDataLayer[index];}
12const urlParams=new URLSearchParams(window.location.search);if(urlParams.has('redirectFrom')){urlParams.delete('redirectFrom');let targetUrl=window.location.pathname;let params=urlParams.toString();if(params)targetUrl+='?'+params;window.history.pushState({},document.title,targetUrl);}}}};})(Drupal,drupalSettings);function pushUserMetaData(settings){'use strict';if(typeof settings.aalto_datalayer_user_metadata_path=='undefined')return;let data={event:"user_data",userStatus:(typeof settings.user.uid!='undefined'&&settings.user.uid!==0)?"loggedin":"loggedout"};fetch(settings.aalto_datalayer_user_metadata_path).then((response)=>response.json()).then((networkData)=>window.dataLayer.push({...data,...networkData})).catch((error)=>console.log("Error: not able to fetch/push user meta data: "+error));};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.