diff --git a/2024/day02_the_kingdom_of_algorithmia/Cargo.toml b/2024/day02_the_kingdom_of_algorithmia/Cargo.toml new file mode 100644 index 0000000..818b4ba --- /dev/null +++ b/2024/day02_the_kingdom_of_algorithmia/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "day02_the_kingdom_of_algorithmia" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/2024/day02_the_kingdom_of_algorithmia/challenge.txt b/2024/day02_the_kingdom_of_algorithmia/challenge.txt new file mode 100644 index 0000000..c756f60 --- /dev/null +++ b/2024/day02_the_kingdom_of_algorithmia/challenge.txt @@ -0,0 +1,55 @@ +Part I + +The knights of the Order of the Golden Duck don superb armour and weapons, each adorned with mysterious symbols. While some of these may be mere decorative ornaments, many are powerful combinations of runic symbols that endow the items with extraordinary properties. Each aspiring knight must master these symbols to fully harness their magical powers. Such mastery demands knowledge and patience, for even the slightest error can lead to unforeseen consequences. +The day of the exam is fast approaching, and you feel confident in your preparation. After all, you have studied diligently throughout the night! As the candidates gather in the grand, circular hall, you see the object of your test: a knight's helmet. Though it appears ancient, the magical runes inscribed along its lower edge still glow with a bright, mystic light. +Your task is to count all the runic words within the inscription on the helmet. Fortunately, the task is simpler than anticipated; a note beside the helmet lists all the possible runic words that may appear. With these in hand, you begin the task of counting. +Example based on the following notes: +WORDS:THE,OWE,MES,ROD,HER + +AWAKEN THE POWER ADORNED WITH THE FLAMES BRIGHT IRE +The possible runic words, based on the first line are: THE, OWE, MES, ROD, and HER. +The inscription to examine reads: AWAKEN THE POWER ADORNED WITH THE FLAMES BRIGHT IRE. +The sentence contains 4 runic words (highlighted): THE, OWE, another THE, and MES. + +Other examples for the same WORDS list as above: +THE FLAME SHIELDED THE HEART OF THE KINGS: 3 runic words +POWE PO WER P OWE R: 2 runic words +THERE IS THE END: 3 runic words (THE and HER overlap) +What is the number of runic words engraved on the helmet? + +Part II + +Congratulations! Your correct answer allows you to advance to the next chamber. This time, your challenge centers around a colossal shield, worn down over time and scarred from countless battles. Yet, despite its age, the runic symbols etched upon it remain as vivid and clear as ever. +The list of potential runic words is still at your disposal, but it has grown considerably longer. However, the objective of the task has changed. This time, your focus is not on counting the runic words, but rather on counting the runic symbols that make up those words inscribed on the shield. +The inscription sprawls across the shield in many individual lines, each demanding careful interpretation. Moreover, these inscriptions can be read from left to right or from right to left, meaning you must search for runic words in both directions. +Example based on the following notes: +WORDS:THE,OWE,MES,ROD,HER + +AWAKEN THE POWE ADORNED WITH THE FLAMES BRIGHT IRE +THE FLAME SHIELDED THE HEART OF THE KINGS +POWE PO WER P OWE R +THERE IS THE END +For this inscription, counting the runic symbols proceeds as follows: +AWAKEN THE POWE ADORNED WITH THE FLAMES BRIGHT IRE: 15 runic symbols +THE FLAME SHIELDED THE HEART OF THE KINGS: 9 runic symbols +POWE PO WER P OWE R: 6 runic symbols +THERE IS THE END: 7 runic symbols +Thus, the final count is: 15 + 9 + 6 + 7 = 37 runic symbols +What is the number of runic symbols engraved on the shield that form runic words? + +Part III + +You advance carefully to the final examination chamber, where a set of scale armour awaits the candidates. This armour, unlike anything you've encountered before, is covered in scales, each etched with a runic symbol. The scales are meticulously arranged in a rectangular grid, with the right edge seamlessly connected to the left, forming an unbroken loop. +In this challenge, neighbouring scales can form runic words both horizontally and vertically: left to right, right to left, top to bottom, bottom to top. Your task remains as it was before: to find all the runic words hidden within the armour and count the number of scales that compose them. +Example based on the following notes: +WORDS:THE,OWE,MES,ROD,RODEO + +HELWORLT +ENIGWDXL +TRODEOAL +After identifying and highlighting all the runic words, the armour looks like this: +HELWORLT +ENIGWDXL +TRODEOAL +Counting the highlighted symbols gives the final answer: 10 scales +What is the number of scales on the armour that form runic words? diff --git a/2024/day02_the_kingdom_of_algorithmia/src/lib.rs b/2024/day02_the_kingdom_of_algorithmia/src/lib.rs new file mode 100644 index 0000000..44f38d9 --- /dev/null +++ b/2024/day02_the_kingdom_of_algorithmia/src/lib.rs @@ -0,0 +1,108 @@ +use core::fmt::Display; + +#[derive(Debug, PartialEq, Eq)] +pub enum ParseError<'a> { + LineMalformed(&'a str), + NoteMalformed(&'a str), +} + +impl Display for ParseError<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::LineMalformed(e) => write!(f, "Unable to parse malformed line: {e}\nShould be of format:\nWORDS:FOO,BAR,BAZ"), + Self::NoteMalformed(e) => write!(f, "Unable to parse malformed note: {e}\nShould be of format:\nWORDS:FOO,BAR;BAZ\n\nBLA FASEL FOO"), + } + } +} + +fn reverse_str(s: &str) -> String { + s.chars().rev().collect::() +} + +fn find_matches(word: &str, runic: &[String]) -> Vec { + let mut matches = vec![false; word.len()]; + runic.iter().for_each(|r| { + let mut start = 0; + while let Some(match_idx) = word[start..].find(r) { + (start+match_idx..start+match_idx+r.len()).for_each(|idx| matches[idx] = true); + start += match_idx + 1; + } + }); + matches +} + +fn count_symbols(word: &str, runic: &[String]) -> usize { + find_matches(word, runic).iter().filter(|i| **i).count() +} + +fn count_symbols_wrapping(words: &[&str], runic: &[String]) -> usize { + let width = words[0].len(); + let height = words.len(); + let mut matches = vec![vec![false; width]; height]; + + // horizontal + words.iter().enumerate().for_each(|(y, w)| { + let word = format!("{w}{w}{w}"); + find_matches(&word, runic).iter().enumerate().skip(width).take(width).for_each(|(x, m)| if *m { matches[y][x-width] = true }); + }); + + // vertical + (0..width).for_each(|x| { + let word = words.iter().map(|w| w.chars().nth(x).unwrap()).collect::(); + find_matches(&word, runic).iter().enumerate().for_each(|(y, m)| if *m { matches[y][x] = true }); + }); + + matches.iter().map(|line| line.iter().filter(|m| **m).count()).sum() +} + +pub fn run(input: &str, part: usize) -> Result { + let lines: Vec<_> = input.lines().collect::>(); + if lines.len() < 3 { + return Err(ParseError::NoteMalformed(input)); + } + if let Some((_, words)) = lines[0].split_once(':') { + let words = words.split(',').collect::>(); + let mut words_omni = Vec::new(); + words.iter().for_each(|w| { + words_omni.push(w.to_string()); + words_omni.push(reverse_str(w)); + }); + let inscription = lines.iter().skip(2).flat_map(|l| l.split_whitespace().collect::>()).collect::>(); + match part { + 1 => Ok(inscription.iter().map(|w| words.iter().map(|word| w.matches(*word).count()).sum::()).sum()), + 2 => Ok(inscription.iter().map(|w| count_symbols(w, &words_omni)).sum()), + 3 => Ok(count_symbols_wrapping(&inscription, &words_omni)), + _ => panic!("Illegal part number"), + } + } else { + Err(ParseError::LineMalformed(lines[0])) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::fs::read_to_string; + + fn read_file(name: &str) -> String { + read_to_string(name).expect(&format!("Unable to read file: {name}")[..]).trim().to_string() + } + + #[test] + fn test_sample() { + let expected = [4, 37, 10]; + for part in 1..=3 { + let sample_input = read_file(&format!("tests/sample{part}")); + assert_eq!(run(&sample_input, part), Ok(expected[part-1])); + } + } + + #[test] + fn test_challenge() { + let expected = [34, 5078, 11593]; + for part in 1..=3 { + let challenge_input = read_file(&format!("tests/challenge{part}")); + assert_eq!(run(&challenge_input, part), Ok(expected[part-1])); + } + } +} diff --git a/2024/day02_the_kingdom_of_algorithmia/tests/challenge1 b/2024/day02_the_kingdom_of_algorithmia/tests/challenge1 new file mode 100644 index 0000000..acd9fbd --- /dev/null +++ b/2024/day02_the_kingdom_of_algorithmia/tests/challenge1 @@ -0,0 +1,3 @@ +WORDS:LOR,LL,SI,OR,MO,LA,ID + +LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT, SED DO EIUSMOD TEMPOR INCIDIDUNT UT LABORE ET DOLORE MAGNA ALIQUA. UT ENIM AD MINIM VENIAM, QUIS NOSTRUD EXERCITATION ULLAMCO LABORIS NISI UT ALIQUIP EX EA COMMODO CONSEQUAT. DUIS AUTE IRURE DOLOR IN REPREHENDERIT IN VOLUPTATE VELIT ESSE CILLUM DOLORE EU FUGIAT NULLA PARIATUR. EXCEPTEUR SINT OCCAECAT CUPIDATAT NON PROIDENT, SUNT IN CULPA QUI OFFICIA DESERUNT MOLLIT ANIM ID EST LABORUM. diff --git a/2024/day02_the_kingdom_of_algorithmia/tests/challenge2 b/2024/day02_the_kingdom_of_algorithmia/tests/challenge2 new file mode 100644 index 0000000..b8e850f --- /dev/null +++ b/2024/day02_the_kingdom_of_algorithmia/tests/challenge2 @@ -0,0 +1,605 @@ +WORDS:SLU,FRAF,JGD,WJGIEWRPPZ,LYXN,OO,DDO,AAR,EBYM,CGOR,PBA,L,ILH,ET,PKVQ,RABR,RAQSZRYHKC,MYAWGBWWVX,XOXL,TEPQ,VH,J,AB,Z,VV,AYNXUDKQAO,EX,WOW,CSP,HS,YH,YQKIMNCKQS,G,AY,ULQEZOEJWS,MXF,KQAYCSFNQD,ZQGLXAZCRE,LWLN,IL,OSO,JYVLEFRLXN,XGX,OW,FPCI,LW,YMQLNDWARC,H + +IVGZIDBQAPEIYUUJJBVMXGHYSPWOVNGZXHGKUCMAIEWYDIUEQF +CTWJIZXOVVQMYEYQUMYMAIWFLAVMUX +VJUCAIRYAWERUJENWFBWVHOEYKBMQERYUOFPXEJKSRTXVESARUNPRSXFEHDV +ELGNUSCRMZHQXCVTWYDKEYLEYPUKXFOLUWXYDUIINDXMGYOJVZ +LJTCTEDNLGMPYEHMOEEVJPCIOBRDTA +UQVHQDYGHM +GMVSRROGBJIMLTKEJYQWDDTGZVCAZQSAZWQFNHRUVUMJCUOVSZQDSHJXRYSV +XBAGGNMHEWLGLCJDCSWVNGEVJLMNFA +NTFOFNBHVWFHVBOWFDKNOFCIWYXVUPEYGGDCUSWB +UANTDMFTQSDLRAQBPGCG +WDHZPXRLXUSVKJSQFOPHFUCJUOPSAZGOTSFOUWPFIHEQMROZMNMCSEKRUKIZ +DZRNRZHBLOCMIGRGKSLRVXTYEMPZUFMNPWJANDZGWSLLAHKMZK +UIGQHKHLNUSJVHBHEHUE +XKZILTKBUYORUSKXPYEKQDHNSGRVNFXEIMVISPEGCBQCHQYIIJSMVKNZDIIX +QDFTTJHAVNRJPWIBPIFYLRACDULGHDJNTGUOBSENGMOTWTTVUETYVWOKRLNM +LIYCQZDSKHLKAJHRYXBJJETNRQJELYLLLETLMNMKAMYHZGLUNG +CYPRDQGIXJTODXONRATODFNJIFUSKRTSCMNINHWZGDAVKYSRLDTAZYHNPGXR +RVFGGYGDJKBANLZJJAWNTVHTEEXPAAFTEGWFKAMQ +IDIGTMEYBE +JJNDVJTDZGKHKJDLYUKGBXVTHLVDEM +VOPHCVULFGALBOWBCCSONHFHGDORWI +CILKVMIFOODGJIODQJAALKGCRFIVNL +EMFJZIHBAV +WSMGEYWGPWWWNLISEMYV +LPRDUQTBRPZIHWXBTPRT +FFEGFOQCUSKOSRCBNKMHWXNTXDBWLLHHWRARZOHM +FUNOUNEAYRHBHHTLYZTYLGLIPDFKOUGZOLKYRIMKMYIFMDHJCR +YSXJFRTZOLHBCRMSSGVFOHXFMSMTXW +MXGZSMAYMBXNJGXYJZLCMKIMTEFTQDBVHCTXKIGW +ASHUCDPQVQMLXHRHLPZALUPBYSZHNMGJWEXNLNFQ +LCTGKNVLNVQQVQQEAHST +MBGNPXTZNGAVENUIRTOXMGMSMLEVTX +JWEEIOLHIRXSSIQUWRZDSRTYTXEFUNMBUTPDUSDQFDQIABHURW +QYWQNMKHKDBILXVEPJWSRCMVTCMSXYRDQJDQVDPSGUYDDKERIH +GPKQOKMPHKPHWZEAYEZCPGTCILWZRJ +TZSATYDUZZXMDCVEDJUZLABYWBCKVNDNQOANRJENOOOFMOQKJVOJDBXIBGMS +TBYFLMHFUQ +DYLYPSBFPH +NHUARPFDFIRNKBOILKIMOLPXVIFYSPDHCKKNWLTU +TOTUCHEBVGXLPOYTDUDCPGSWWTSZLOOYXVPANOSUCHZUQTMRNF +VRLMHPYYJEPMQKWMALDODMCAMEFKDX +KREPAARQFDNKPGOSQLFDJBSMCUGAEBNQLKATTBAFJSCEXBOXMY +SWJTNYGCPI +NUJYJEIRXIBOLCNHLHQMIZPKIYXCIT +SESRMMDAWY +KNXRLWNGZDCYNQMOBDIJXAZEXLBQJT +TTQOAABFMEMPOYFYNOOH +UOXMRPYYVGRXZIEZEGWYLKEQLNFHDRCEBEWEDNBCBRXKSQGQCAEVUDLBTXMC +GSFJBDVYMCBTTCYTXHJZLJHOILWPHFABVGOBCBVJWAPNXWFVOOASTLJSJBUM +CUPESNNYYOTYBCJORWCQHHEZQLLRNRAKYMYEUZAC +FYEDGEWQGBSZZPWTDNLLDUSLYSNPGG +FEHBXOFXVGQYPDTZKCGIEKDEDNGYVXPAYGVWUKFSYSADCGYWFZ +PHEBJSWUPR +KLDCFNEJPPGLEIZAEQSMEANZYDMFRNUWVWJXDNXSOJVDPKMIADMFSJURLGSQ +KTBIDPLWNOPANYBWFVGKDAWYHKUFNX +ZJFAPDZEOZ +NJKOLUPSCRVTAEUCARIKNOEEFWZTKZRJRCWLVBPIIGNVREDQLRFMENAUCOEI +SSATDQCVPSXJGHQZCEOB +UNPGIELATUTBVDRYJXHLDXWLQRKDWCTARLGEFIXOBXGCUDZUPTHHOILBQSNT +HFTNEHSANNGNDMRULMCLDOPNMVNBLEGSETRXTZXI +PPDXBUINBQYXCQHIJVEEIYNGRWNMQP +YARWIELHSI +WSTTMYYMTKRDSLHNMMHWJTSKEKWQHT +JZEUHXVFNU +VHCLTVOMKKJULLCYLWDFXATJDBEITJ +CSPJJNEDVVWVDYXQIESGPCAXCTNBBN +OGBNGXKXVALVMFNJRXGUUWLUVLCBQQ +XIMDTPYCCJBVHGLIAFGDTTUOAMMLKSCOYOKDRBAP +ZXRCBUJFIX +PFUOBHOTGTVXZDQMYAJAUAANNPCGHDPQIZXESPAETUUUAEMIBQ +OCNITCCIUEKHFGHCUZCSKHJZPHRLZCEUZTEGLLYR +FDKSPDMOMVENYCBYODDLCWFYWVHDFDABFWYUQVZRWIODHZVSWF +FFCFHXANTQ +MQHIINMCBLCUNPHBWBWFHRGXASVEVMXEAMOGZJQWVOZVVMPWRT +FWEBYPBTPE +XGKQMIMTQAAENWOAUZVZFHSCAQVWFA +AOPLJNIQXTDGVLDMDNTNCFOSBACWQCFCLEJNNRYKBTIJLMCEHS +UNJWSOANMK +OOZXTTWTJESGCDAFKJNIWZYPZWRNCM +PFLMJSPJIDYJBBFRMEUGBUQKIFMTTDOHVSCZGOCJ +EAYVRCXLMNHPUQIOJRZB +NBIESJJWUAGWAJBSVAZOWDEBVPRFLTPDMWMOQQEDTPRAOMWXVDRMODDSKOBZ +JXVBRJGLDZYRCTBCFXUCGCLXQZLSEO +KPOIDQWRCZJWRPXGCYPLHLYLRSWZLLCYOIPNWCFFZITUCIFJGE +CDONOCRTVYBRKWNTAFJWZWUIVOLCSYJBKEBVJFERNNZNOFSEMM +EJKYEDHCGJ +SNSVPOHVFHCKTVPNPNDEMZOMNGHQJXIHJTWSUKANCMVYZSRVCYYIHIBZTLVE +HDVORKAXZQVIWETMBICYIBXUMOHEPFMBOQVHFOIUSVTRAFBLAV +NQLSPVLLEGRLEZDKGKYF +SPCYECLZXO +IYGNWRCLCAQMHLMWIODCCCMLGRMUDTPAULXESEBCXQSXGDDQDEDAOSFUGVFZ +SYSRKTPMIUXJXOIYADJMUJKMKPDVLUFJGMFNWSPVRKNAHQANUZJFGMCLLPEL +SLBUMMRNMMEUSMDVKXZO +SSFTEMXOHOPGRFSZGLKQ +TWPMKPABZDHNAPMUCWQJ +BPGWZQRPNFPPFAZHEFSGLYZZHFMUGDARSEFKMVLQ +WCVGTZRPFOHDIUXFOCFEDDALXRYTQCIEJZMWKWWIHSPLFUIOPY +QQUEMLMTUWWECVNQEKNMWMHDMBOTMQESGHHUNMZQCVNDBGEUYICRPXRYDLDP +MLYYJPGKUA +FCMHSWUWULHPGUFPCRURQFTRPEYQIMBCFUGEVKEYIZTTTNJFFLSVRFGHOTGE +YBSSWSTFDI +CZCWGNKXWUDMZCKBOAEQ +KIHHJMYKYASEHDYSWOJNFMUAEYEREDUIKAYJNPEUPLXSLEGSQV +VHSDBXDLUEUJBJSNCGFEFJQHYCDCHLMLKQEEMKCUHDZXPCYLIB +KGHDEUFJTSDGRXIVPBQMSLEGOUWJGOZHNRJHNEFLJIPELQFVUPZSMSYXQGKH +PADKEVMIDNKJKOKRPIIHULSGVRYJWZXREJXANROXPRACJJLPGXGCEJIIYGMX +OGORDUTLVWCMEPBHJPRAQUEBCZLJUKDOLGVGCCDB +TBJXVCJSDCCHDXPKSWZLRWADKBNJEJHRIRCWZSIDYWSQQCAQVJZAUIFMYADG +PMYAKRFQXVIMJTYNOTWTOIZYIHWMEXVFXYYQSPCMZVIZCKTCDRKPFKYOBGRZ +IEZHOIJBNGRDILOTCZYAUWEWOQFKDM +ILAILEBMLMRYEVRWSRYYPGGBJSKZEHCGNSTOJOJS +UQMSZLASAKYOWUWTZIEBWJSHSTRAZWSDEXAFITJXYPYHBFJLFMTBGINULUPX +BHHMGNFDHFDTWTSMFLIVZELZCTCCAFWIMIBYPKIHIJIAGPHOZX +JOIJBKQUGOXQVABCEBPZUTCUXYSNERFWJHGSDSJH +ZLERXSAXROXWRTTGNBMLEAVEYXTCAJ +QHNNUXFRZKUXMMSITFMYCORHQNRBPXPBFFDUXEAP +RYXWFKKXHUCBSHAKYZBRSDSBJXJJCXTXFABVUUGLKJPQRVGHQX +OKEDAIJYDYTBLZNKYLYYXZMXLYGOPNDARPPREDQWMLMPVMDMAE +QCRURSSDRP +BANFLZIZAV +NRUSMGZWCCCALLZYJEBPIEEOGUGARPTGAQDHPBQISQQXBEBDXA +ONNNLNCKULXBTICNCUWZSRQBVPUDQNYMPAKTMZKCMPWDQJKHZLDCEPIPWZZW +LGECYLVMTYRIJBLYVWCBSXTSXGPKXI +UESBETLCWHQEPWIMFBCAGONRZWJYDOVJDRHTZLTUXTZJATQYFRIUDUVCOLCT +NOLKLTKWGMWVUPUBBBGJ +RKDEMVMOTK +IKMBRMEXLWZSVBZTMIEN +YDEYSYAULTCYQOETUQKMHXVBMDJZYJ +IAMPCCTGZZGXGUQYYDEMZLJDFYSVXSFQECAMKDGGREDSWEDPKJ +IKDFIQOSOFWZMCPMLVKNHZUMQYAKBXTOTPGNQXLECUJZXJASYZRCHBFKPAXL +MBDOIENAWVFYPJLSXELJORHZCTEWLG +QWCHSVOQDG +FUSCXZCKMNMWIPCOGENH +PQJDNQLMEQ +WJLEBSEHIJLZVZIZWVPLMCHNYYEPEVAEUOVTPXZVILMPAWIZULTOYHUZICEK +FWOOONBOSFPSOLQKBSEHRVIEQJCYVZXOFXBMNYEVDDABZMOPND +QBGAABIATQ +WKBMJIGXEACRTTJEKCPKDZKYHJZPHIKPYKCEGYKDNMIEYZTGMJQHSSEBGKRD +KSEYSPMRHX +GDXHUZJAPRXQEDJMVLZDBIJWBUEXIWWMQZROHIKMYQPMWHNTWJ +ZSJPQYHCVMKDOUOTEDAZBSVMTVJGUGDVKNPEXBUS +UKLDJNUPCD +XNMIFAZGDULNMVWQKCKRFEVNROYBPCNHKYBJUTDXMXJNDRBAVG +MHLFBJGJELPQMQJDWRDMZJRQYJAIMZLYZTRGCFOJ +ACZSHTVFVLMJYPFFWNNSGVLDNUJPCO +TWAOEGFZCOACGWKQWRLZZRIWGUAGOBNNTCJWRMAO +MQORJGYPEQWVJPQXQVGTAQMZCFBQLS +BKGDISLYFPCZHZJUVRCKKOTNQBBSFZPZPMTNHLNB +AEAEDYIZZZYTFAVVVTRWAFWXNZMYFO +VGRKICRCOLTRVVHDUSAIIKMJRYYSHXQNVZZKOGPBWSWIMWOXYZ +RWTCPXZCAEWYFZIKCBYHRREDTSTYNNOKQJUZVMJOSZEVRJGVQKSDULKCFMYS +MVCQTJCBES +VYWUIFJYRK +KKVGIVONNEBDCAKSUBMGVSPBDHJEHDBEEQRFFPMXIZTNRHANWRJGBWHNDWIG +YIZGBQTGSR +HWCNPGHUOYRKGYPNRKJBTJLTSOVICBFYBVZIZNLEVCOUIFIACHMVOYEFUIXH +PINCZNRNYCFOYOOKVQWTXBSLAYDSFS +NSOJKWSPJRHFMSLCNBQAJJAXMKDEPB +YYELCPFCYE +QCYMBPSKXCCFOGGRJBJHFRXGVQTMQFNWAQEEMVOP +EYLKPTXEGZTANWEUQZYFEUTHMNCSCR +ZHGGJMVWWKOKSTHCPDQO +RSGLYETGJRVURGPIVBOLTWBPIJUKWNFSFXYPCRWH +IMQIRWAGTMXKABBFWGLN +OZCZXCYDVFUCRCVFMCVWODVUCUIETPJKVCICMPLY +UECIJLXLEJUVQKCBZQJA +HWFVFUHFLUMTOBYZJBTVRZFWTQYRAJFADORDBPPC +VPJPADIKHZBKDWNWVPYYYDSFVKFLGJZUSGVSJJFWTPCZWXAZJK +VDSAOOVRXU +WLOLESIDOWVTRITRNDKL +JJLUASLOYXUMJGTKTDABIIEDXGZRNW +WSZPQYGGDB +DZHOGFNDRYRBKZXSXZXUPNBSXYTOVS +FNKKUXAEBVCLEMVNLTDDTQTGKXYOJQLICNZLKBXS +PQIXFQJYPGKBMISWHMXKCVBXNMEBON +OVPOVHNZULORJCKWSLDDNUCADHFDAHXBMGIXWRQC +GPSOETZCPAEAABLIGZEMKBPCDJFWALQXUQGVAQDB +RGAXBJNTQQJDDPXVYJXOCJOQOBOZVKKMSSBWHMOLBQOMAARQCD +GIJGCIUAYDKFEYDYKOUCODIHXYVFZNOAEFOIRENLBTHTUKTGUT +YUBGQTGZBQUESYUCWKARNISXOQSXPP +PGPXOBLBDF +PXJAEZEMCMEGBHNLCRVTDWYDWHBZZSFEBCVOKCJVAGHQWWWUPX +JYDWTLXSZWFXSQEOOTUN +FOHHRPGXBCTLRRGQHLALTRYGVHAWDPTLPAFYWLFJMFYYWVSTYD +IMKKEGPJIOTKKEZLSDEO +QUVTLBSWIB +HJJWDHFVXTYDNWTSNLPHUAKATGPZIU +JZJKEDLSPMVBZYYMJUOVBIYFUJKGSX +ESBMVMPNYKNDYXADOCUDRBJBOCMJNQ +EADYQEAFMPUNNSNWWVNC +QERASDFASDVOOOASDCYWECVY +YGMYUCBJRKJVVSYHVRSFBTBJGPLLWMANJPOKFJZM +BASKLTVLSDBJNZFYIORI +MALLDOWWHAGPFUWRBTPF +QZEIBCHEODTWECODBCWXAQWVQWGFUPFILXUCDVJYAEIAKLDMAEBZIFWCRUYC +GHMVNFOOXFHNLQLKGQLL +PPFWOZQFLB +DSXLDONHKL +CSCBIBCNOB +UDCVMDHPUTVZWLLQITQMSPEOHSJIWJ +OWOPTWRWODPAXGWZZFREEFZSPUPWPHFHDSTIADEQ +HGMABCQFEKVWTTKLWEWA +DMBKGAOXEWXCSWKGPYHPGGAMSFMYJLUTQSTPJVDM +FBEAFYTOVKFMZAONWXVD +MIGDFFUBWHKSPTRVVBCZVIYIWWLUHRJCLCNEIIRNTTPGIVGEHQ +CGLWKWXVVA +NOXAFSCHEJNYIOFYADQO +PUIVYKPTRIRSJDIPEXAFJPHIBERSHQYBIGSXSGAOIYNORXUAYN +HMFMRLBAMVKAJRMAJXOINPAZVRQKNAGKTNIJRQTUEHLCJEAQNO +NUIFGYTTCTPROHACVZXL +UBSUDJUHGHAIBNINPNBEAUIRCNMKVD +YBKNFCCHCLDHYYYZYTCQGHVPBBJXROIVIBHNLWMS +KGFZDRXSUEDOYWAOMEDG +JMGUCTREBZQUTZDAQUCQQPMWSSPVZG +UDGHCEWYPPSXWWORREKA +BNMOWNCRFLDOEJVISOOY +JKEERRLDQLYRLJMTIWUJUCWWZAYDSGPWVWTXSSAK +LNMJIUTQDK +ZWBIULCWXDJDSXTEUHFUHBMCBUDEZT +RLIFMAOOTRMBRHZDOTECISHRJVEGEL +JAHATXHXDCSTQZDNEEFKOHVZPVXNAGYDQTPFIHYY +QLIMLXVRLCSEKXCCLAZWMDITWJQFBRVEHMSCBULLFNEOCMWPWOAWDFVCQSTV +FWVXDYEBDUVFRUWURLWOSSMQUSCMNZLZSVIJHPUIESBAYHKRYDLQHULLGBLA +RUFNNZBVNJEPCDNHLOBBPGCXDXMFDVIWMJZRLLEAERFKERWCNSQOXOBIYKWH +KEAGVWRTOPFGWPECVKJQHZOLREXPOZ +CUDKTNGJKBFOOCIMJYGO +MFYUGCNBJPNYZUAKMHEV +DUNXBMWIIAMMYGFAZJIH +HTMFAMFGAMLFJLVKZYDNIRMIMQHATNNLJEZCYATVHENJHUJDVCLDADTWRNLX +JCYNXWONAYWTUZGCIFQC +ADFTUGWUJQ +CRNNMULZHUSRHRLGOGNIDDEHMMRVKTDPJDROUOIZVSMAAPVKXWCORBHWMJRC +ISYTQPDPJXAROMQFPELZAHTUSTVFNDFVKCNNIOQXAFPRFAFLOSBWKFNQSEQH +VQBLAMSGERCGZJUSYEHGCJXKYNPMHLUHFZCIAYMS +OIZSLHNUBEWFQUAPQPBMNJTRSITCGMCYOEYWYUQA +VMQCOCOVYELOEWFONRCDDJEOXNQXWFEYNPFPDIVHMGBODSZPGNLKQGZISNRW +DUBBLDOPUWWLUROZIMIPENBLGXAMWR +LKNWROESZM +PZQZIZUKBUXJPSSVBKEHIGADDPSYNA +JYVUENRSBCZDWCXLUGRSKNVEQYPVOPGBHNRFPDYBTLLOIYNHJU +DZDFKCIGZNJHWDKZZRWWHGHEYQNXWVUQKNWQHJPA +NXBJXWLKMAEPXYATMZQJXZZYCJTHBFEABOOAXVQO +EBIYSPDDPKVGVKRTFNSZSWZMOOVKDAHXHQVUQGCO +BBDJIRYUKPDKQDMTRAESGRCGKSNBOVOJOKFZRFCRQUJUUKCDJU +NIBYGKZTVWTDLJUAQYZUXZHEXRAJUHCGRNHZDDPW +PRTZXGWUHZQXCGLYNZTSLHDOKYLESTPANWGROLTF +BRSGPSOQSCJYCZTXWKNXWYEAFFUIXPMREREHNKUVMGJGHJUVNW +NKHLSCUUEPJRRTQESISZ +AAETCTFLCEHHQQWFIWFU +HXELTLMAHVRLVHQIKOMDUFSGMIARJUFBBQPVVNVFFDFEHVHBARUPJGKEFHMS +AJBUJOWXRLPXIQCGXFML +ZKCLBAJJRNYCVRGDXJGXGSYCPCTDJDTEDVCYHELD +LFYZZCBXQA +LZLLJQEWFMSCOGNXALYHGACXQKMXUR +WVHDTBLWDDBEUGZHVIRDARKISDNCSWAMIETOWUFS +VQRYKTLCCZ +JBDVRSHSYO +DRVOFZQIIO +MDLTEPEEGSOWDWJCTKVTXTBVITOSZWEIXWLVWXHK +PPCELXDRXAIZPKIRFWBWDXVBSNRWEKPXMGRNYYLZWDPZUDYBSZYGWIRBQMTQ +PIREKOGKPEUUWWWEMTYCRAFHLDUUGFFNSXGQCTWEWGRCRPDXLKRALIQDLANQ +VCELMTLVZK +EUSRCGWYXWSQPPPPVHFW +WOWWOWWOWWOWWOWWOWWOWWOWWOWWOWO +FJSELRBEON +XFDEVBPOEBAZGPXPICYUIILKEFSFYPMNELMDJDDLQWCPILZJYQEEGTTDGHWD +PXYGPEHZDERDUZVZEDDMPYJYZBAYDZ +KJOQTYKWSVYTIZWVSKXY +CXVPXEBVRITFVNMBLWTF +SEMHRQNTMIPAMPIFTFJARFUDWYBGCECBAGMPPKJE +XNSGQSUPVNFGQFBQCNMHWQJIGBLBSQDUWUVZWKMNNGSNVKRWJN +AWZPAEYFZLAAHTMWNNPTZUDFZXUFXRBWPJDQLFXGZQAHWGQHSF +APLOVOXLFZEKBDDOJXMI +MKOUEIJCARQRJYHBIGPS +APSCGMQJMD +CDHRIQFEZULIHZCZUWJLPONTAWWEPR +JHECTPFXGDHWBMDHMIXOEINDQVRQBHJCFNGNYUAXPYSQFNJEWR +BXZCASNVGEFACKYBNYGTGPYOXWRPGJKYOJQTBIBG +DOOWSQAEMWYANINJLDUNNBOBITUJGYEOIDLOTRHDMAAWVBRFDMRFBFOGLIHE +ZZWUHVYKILNQJQHYIHBR +CVLBXYFOFAODFFYLCNUFQCOULSWUTNDBOUTWPVOTFDOMMRQVUL +SHGXOTDXHPGPPVIJKHALIKLYSLSJLCWNLFJRBOAI +EALOGCJPBZXWEDYKMEHZZFTPTZJSNV +TFFQGGGUSCDNVSIEBPNF +UEFADXLONUDQHHGCZWXSKGICWLFOIMORWYWWNMCDHAMAXAJQCI +ELIAMIVQFUJLZDXDKDML +QQCPXCBUXFVYZHOZBHKYRHRIXTJJXAAPXIJURXEQ +UOJUQKSOCCIDAOQNWBGHBJYBOVKGJJVLPTKQEYPUIGGGOZDVYPKSGMNOETHQ +CIIOOAVEPXFWRTNSQYKLLJOMPXYNGDZXDPKNLGSENCODINRCWAWRBBUFPEAA +MSIAZOXBHZLGEGSRAPNVQPZUXKSPATGPORRFJMXPIAKPXKHHCV +ZVXMZIFHXMRMOVWYAPSLVXJZSAGINRUTKFYVTJTTJJQVRESWVJ +UVFJUIQIMBPGGBZKYVMNZAFWMDYICMQPFSIGMMDZCESPTEHKNZ +JZJIEIPVJI +IWTALVNTDTCAXRIOZUUYTBEHRMHUIUVAKNBSZUINLRQSKAALBEWHBQNVGCOO +EJYYETSJXYIZJSLIAXNXNZQGLLEUIKOAMUZAPSKYCLDPLWUKFF +ZGLEOEGRKZRJSULADWLHXHKZYOTXJNEKMSPLRTLHUNSPLTYZXOYMDEGOKMPT +WUKMTWJRYLTXDTUBTZUNJPNHCDNNGFGDZXIIQGULISNXCJQLVNYACSCRENZN +RMEYWBMYNG +NKPBCCRMJMWPZIEQKPAWYOVQHETJBJ +IPJZCIIXFJFHRIWQDCSRTHGWJQGAGD +RJWGPIGBRNMZZRAEKQGW +XQLTNNGRNBFZMZVGCCKB +VWSDXYMLWTEWOIKJIUNJDCNQWQVMBKBFFHCQVPIV +CGLUKYHIPE +JLSRLMYFAELQHUKJBMWO +AAXZJDTOUNUIECZMZQAZCPXCODIUUZWHTXCIZPXKTNAFGLJZEHYBGYCKTXKV +XECHDYMGWHCOSPTWUZHFCRZIZZFXETQCJKNGYKXC +ACVIVUCFZYJTFYEPSZAEXDVLHLPQDQPNFFRMVQPU +WOYGKBSRHISLXUCCYTDQEPSIDODMKHKFQNKYPERR +OHSSXESIGFKBPLHTKSTKHUQYMVKMPR +ZWQGIFZAEG +KQOWJEVAAFOEVFQBVZIIAKYDLRNMTK +NMWXPOXCICBLGEJFYOUKUKJNPGHIQIJCWHPAPBHGJGIRDLPXUAQQDELUZAXE +ALZIMGRENHOGONSKHEEV +LSPFYWLBOPHFUUDVWQHMHNGFIVRZGPGITWJRMPLNZMBAQCUEQDYUVCYYJQAF +TEDVFYSIQYJHREOMEHQDHRKFOSRYVHJINQUIJGYM +AMDMLRPGUJWKCNTWUQDRTCZOGPPTFX +YVBLAIGJQLNYMKMUPVJUVFARJCELYB +YSWTFIMWCBMWCWLOOCWIHBLHDKMXRG +IFJSYWDXBMHJIWAYYFIFWDPIXHJSYMPEPQHNTTOVIKMRLTXZJDYHSMKSWDBL +PSSDJAWVZQ +CWLZLFNOZBVDYIRQMRPMRUENSIOKVYPKHVPVYRAMNKFEDAJPJQBLLYRKPYYL +IYEUPAPVRZJEZFHVAJJOPQRFFQNKJCDVALVRDOJXLWFXMOZABX +IVLYAEUGDUKWCXLTWRLEZAFESNBMQADGYSGHSVRPKVQIOTICHV +TOWXLUDCANAZMNMWZVIR +VFPKGVHETLFUGHYARYGXRKCYROMZAEPHHUQEWYIZPUGAJJGRCL +RQOZTPPUKTSGZMOBTXJVKNUSIGXYMVVHCMTRNQNE +ABOZHURDBHYBREHRASAOGMMLYYTKYP +SPQUHPFXKGIPVDAETYXJFWIVPHXFZYJVYDRAGSZXMYZCYRWKKVFFCUJNOINW +ODQNTXQTMH +ALFYXVPWIHZSZAPTKNFQGTRMCECOMFAAUZPGOBHQVHVYGARADA +GGUZNAWYAJADUWNDUOLBXNQYFSJUJV +WERTYOOOOOCBZXCJHDKGVCYUIQWTC +EBMBDKBCUPELYTHNXAXKDCIVPHBSGNSKHEAVUBKLJGIIKMABMR +FVZPXWTQGKOSGSHPPJPEAFRXOZBINWRMGRPSJHQNCHDQEJWGPA +ZNXTIDRYZKBMLZAJCNSHRTMSBFPNCGTUSGDLHILQDOXPZLJPPUPUULVWNGOB +PRYIYSETDGOOJSOIYYQNZOHCTFZSNVCGITHLARWHKIKMSXYIKS +PDLNKFQXSSIDEROUDOAWTUSGDMBQHCDKSPUOJAPCDWKSDXIKFH +EXSJNLTKFI +NLWRLYIROKEWKBQWMGSWNCIEVIINMNYYBWMCOUZBIPCFFQEXRODLZFWFQAOY +BSSDKCADCYXCVXVIROLNEOLSQQZMMKQYWNYYWULRKQOCBZHRUO +BNHCYVGHTCUBTMLQLWYG +WHDIPEQSTV +EVODQXDZBOVWZLOKYMFFBRSBSMNTETGDYABBVPNN +ICCALHYYICXODSINHZLQUTAFIAQWME +LVEXVQUQCPYKSWBLGKVGFJZWMHTXEAVOHNVNZKSTNSPRCSWFIL +IGZIZCUGYWUGUFMMVAAUFXKOILXWWA +BCZVKAZLSONOVXEIYPGH +SZZWSLFQNIXGJIZWGJVKQCGKWWLKNQDKEFEUNAAS +GJMTPSDOIYPRLJPLLMXGOMHYBLARCABTHEYPZNOM +PAFSMGACWZ +EQZKYHQYWNXMUIMCOXGCRNCZMDZDNKJOKBYBETZN +YKQFALVWMFSSVZOINYFLXNJCJQBQKOSIUMMAEGIOAGMXDZDFXYKNHYDZVRWP +TKCPUMMHXTAXRUYGZKUE +BFRDCTRPCTREPVMTKPUZ +OFECMETZXICIYCEJHPWQIFDUGNOAZBDYSEDUZHZS +MCYOAYQETCUPZPWESTQRCDNSDLAAREARTSNPKGBVXTJVSZLZHXCVWBPPTSPA +KLBOBYFTECWGJZMYUOPP +MRHGCCMNJLZATYKGBRUXNYYLVRMQWFKPFLFFSKUAXRHNFTLHCL +TKCBRYKQKMTNQIFIJDTNKEFEXYGVPMUUWBMHUJEKHONNKLPFOTFZEESOWRFS +VPPLNEBILKQXKAUDIXOPKEZSBNJITKLQLORGXKJX +IKJIYTOPCBVBNGQEHKLDDBXDEJBPZP +HPXRZUEPEGJPNVJVDHVZAHEFOMBRZQ +PEMMGNGKDCRREFJGRAKERSBPPZSYEYNLDCMAVKIHOYDDSPAAYVFPZZDSOZYH +YLSEKCULIEKVGRMPEMEJ +HRVIGHWWMSXSQVTBEUOKPYVZYZYPSUHHRXKMLDZSHKWXWVIBPSWYPFWJOQXB +WGGGPTSGXGAHDFNDRHIGWOMILVFJQQVWXZDKQBRYFQDRRXQJVU +LWOXDCAIRKIGTKDXQLHB +IPCNUVDOURTUDTXWIFPLACSBJHDJUNBPGHYPLPVKFAFZNVZETR +WTLBFTDOESSDPRPZPZOIUSBJUUTOCDPGODIRWDJSBWXTPNNKYJ +IRIISQZKWDVRNTRRWQUO +TJINUJHACO +NBLOBLJFUSDNYKJVQYGD +DAQMOBCEFZHKWXINFYCKRZQEIOFHADKCFMTOREBKVAPHJQUKQZ +AASHPESZWVKBEEAWAYMOEOQYKTGIHZRAHYWJSDYY +UBWMBLWJDIYWWVJGQPOQUJTMLJIDAXEKOUKCIXAO +ENREKNFLZJPRVMPJNHAIFXWLMECMDY +KLXHXBWWRVUUYBPIMLIMUPYRNYFQPY +BJGYUIGAQMYINUXHSZHU +NYMZOFHGQTYFUMLRWFPRGLKOWXYTHJMUIUJZCXYN +VXLJNWPFWJUGXEBJZIZCHADOQSOLNH +EKNLAPRIYUFSNLVQCEYWFZSFXJMKUE +BDRGLNVXBIUJVZUESFIK +CKBFRYLBXLFXRGCWWIMLKNHNDQSVZVFYPCHHRWDNGPJJVLFMMEMELAQKWLSQ +JRAVOYTVIS +IAFRAMFWPAIKLHIATTEIAQMJEEEYWILQXWJDCRPROGYNNGFENC +GIBHAPOIEFTKKIPMIVGMRBDNKBBOMQNACQJQTMNVQXZPTJVAVFBNUQQISHAQ +HCZHKQJYRN +GEGPAKOIKMIILARLAFAPWUIKJJPLKVINZMUMNSVX +QEYRUGATFGASDFOOOCVYACAYCV +YGXUFOLHQRANLIXJTWQCHJJCSHEJYGMWAOHVRXMF +LYUITEUDLUEOTVNZSIVO +PIGSNAQERJRWCSHKUTOBCDWREVTFJWOVITTKNMPHOKBNXRCWGS +GOBAZTRIWNHQNFAUDEPCDTSTAZDVYXVKVPJZFTEMPEHNYJWPJYPBPHEYXFMZ +TJFFJPDWPNGADFLFFXMFIIRDPWMEHTHXFLDKTEZC +PARNVWCNSN +MCCXCPEEBGBVGGCLQRXDIMNESIEURFRGLPOLLQJW +SVTNIVBJNMIDRNAJXWJY +RRBVZPXHWQOOVPKPTTCK +HTNANKESJRUWWGKJPYKRKNLTMALKBQ +VEORRPMWUOVCYAWDWMIXTRWUSHESJBEKZHQUCQNVEYEBGJNPFW +OBYXHQSXMHDZTNXANMEWDOPVVTTVEE +JTAKDJSJAFVQEVMESSZC +MZPHAXITBMJCOHGOPXWUITPHEFBYGJKICOUUNZCBMKCWCBOQNQNBBLNGYASJ +UICJBRDUXQMUJKGVBRWS +VRBNRMUFBYRCFBZYPRTPCTGKBPVEHHONVFFQXMMZRWGKYODKUN +GIGDZLLWXQ +QKRUBQQOJU +PFCYKBHBQGZMGKGLUATI +ENCMJJUQRRRCMQUOVMVBKECEKWIIBD +DIKWMNPTRVILRZDHMZFZCEBZVBAYZS +EDBUUEYRVNDBCUJYFSHUBICKORYQIGIGPFKIOMUE +SQWUFYDNPNVLEPISRJIIJNCKAYSVRO +UCJMQDVQMNVXDUOHXBTWDRLYLNWUJNBGORSICYAVHVSIRERYBD +XIJUMWFJVMDGLDXJVQNBUPWFQUAMQY +DOHAVZYHCIPEDKCYOZIPNHVWNSQSUJHPNPJFGKZOYZMJPYEZRI +NSOSULPOSFDHTRDOAWLB +DCEAYWLVLDPPQVYSGNDI +OUTUVCNHSJGVGEZOPABXYXVLQXTJPX +REEABAPSJVBYMVMJVDLBQSNHNNQKMFIOWTWUCDHR +XILFPYGIRPEYLCQLFOYTXRKRSVFNKQOLDWKXCWSGANIHZIDEIK +YJWIIKLDAAUFKWWNADYSXHYIIVOUXFTNBSOBWFUKVSXZFYUMXHEXEOEMMRYA +PBBZEVPOGPIGTBUHPXREZZIHBTSPEQMPPGLDWLJI +KZAJUZRGJNYEWVPXDPMH +DDJMUKLYJPZFSOOOHFDDLUQDNJKTWTCDDNDVNXRUXODJGCYJIL +USHBXVOTXNRFSFRVIKZGFXSVKLFCUNNXYPFUJWWG +NYTGFTSXOXORWRMRCITBSTPWXJVXQOQXEOCISYSZ +QUYRDUJKJZAUSPSDMBWPAHXVWIFBTTPHYAHKRPUZNTJMJYYJFEVVNSMOGVYC +HHKOSSEQTSDLGUPJJYTASVZSUYAFLGIHSPKXOXVDLGEYHHESGSZEWCADDNSU +PYGBRFPYNMKOSSOMXEKTRVFPWBUJYAYXZUZCUIPEGXEKPMOACGTCJSOMLVTZ +ECNSEUBOFG +UTJCIJSZNOJRTFORIJUSOWERPLYPBJFIWBVAHLMJBQHFXWKNBGGXCEOZUVSA +FVHBYVGABZQEUNRFUWQH +WTLVMAPQQSECTOAIKKYHAQZXLLCWSGXOHZLLDLAZZYXSVQVCXBCLBEWKKQQO +MNOVHDCACSXFDODDOIKRLMRXMDIKPDFFWIIXLMQPLSUYSVAWVX +AQWPAVNNVC +PRDBNBXNSQ +KLTYVQMAJPTQBXFPMCDH +RCQVDWHCZQFUUNNYLAFRUEUYYRICTU +HXDOJEPTYOUFEZIIIQBUNJUJQBEIRHFRRDYGXOVJWWXIFGYTIOTHEJLRPXMF +VCUOMGEPEF +ULYUEZIPUNIFRCJNJJPAAUMUOOYHICPGOUQJZWUSGCWWRVSXIHCETPJGNEBE +QFPVBQLREJUMXUVHXSGDOVGLUIHKUILXUKEKSZCACXJANXQMHG +JOJZIDYIGQ +QPNLDGLKCP +PDSFEIGKESLRJYWIAJDMUWSGQMSLQK +MRNFASAXWLMAFVHOWQWGSGNNBFWCIYGYPXQPOSGGVPHHUCJHPL +ZGPLVIEABWLMJXDZWZKQLDLFRWYCFVICBHMRYOWDTYZMKNIXWLHRAHVWXSKD +DGROWQGRWMQUDPKPGIEWJWVOKENJIXHEKTGTKJYZLGXJPOHCRNQOEIECNPQN +JHWVANXGIKCLLLGVTBMRBVVRLONNICYANLXCLXHERYKOIRMMAC +ILYWRGQWIEJITJVOPJOBGUKDPJUUJOHYSNCSHGLS +OMMLHWZHBQANIZNCNJRDGHMMCGNAWL +IHSXTKUUCSVKRMODKIAJBJAWMZMBDGCOLJACKEKM +IFFEVZRZGMFEYUWGVXIZMORJJJPSXKNEEULKPGUK +BTYMKMMQXJUMFRPDMZSACUGBQBZXKQKRZSEYTCTERVMYEROQHVVDWVEVMZEN +QLFZDRWYVZURQYKJYWHEOUCGYGGYBQPEMSHCIRGC +VXAQPPHOURTYOJKQRKHGAHIUZTKINVXSVJCDMFTQUJJJIHXLPO +DRRWUXUSJNMGHCFHKKVR +CWENNZKVGBIDUEDBXYVLBEIZUKYZTKZUUWJKEYRN +OWHFLWUFIUGZKOHWFFUZJTZSYPBKMU +ZZNGQBRXPHQDGSORUONBSUUIVRHEMMFYQXAVFTKUIVXDBXLLBYSEOWSTBQCR +NCGTBENBQI +UUXQUOCZJG +KLORKDCJOOFPRORBNLENWRQUHBXHPNBAMAWPZPHBRVJHUGIKSM +CZTYZEZGCMICMTQGONTHUWQGJTBCVKJKEWVCEGHJ +DMHJBCGNLSRKLTHZDHWDSVHBPGSZBLZLOWOBMKFTBWHKFFXOPQ +YYJFHQYQYJIHAUIFBDHUYPDIIFDTSBKOJVPBIMKT +FBGTGVLAUWYHFUUKMMZYWYRWRUNGUTCNWKQZHDZG +ZQFUQBMFJQTIHTLHOKCNVGHHRLQJDWKTHDJCDOWWTNXJRJEXDJRPYLOVXUIZ +YKLPNZGWXVTAFUJTLIWFCLXGTVVLWSSYYPCYTUDAQVZGZERZLIADGYSROGKJ +SXIMAWAJVM +ZXJXJSQCNGBQCRHPEGFW +HRUAWMUQBTBMGXIGGIGF +DEBBHVHCXTHCTHXJWHXNXMVSIIXBWNOWACXGZOHFKFNNJYNQZYFBAQJNVMLM +JKFSFFVGRZARUHEPTHKXAQPXZLTLNZEBTZRUNTZR +DNUCMVIHTU +CDRYSROLFMPDDFXFGVMQRNXCWJXSFX +IJPAMOGWKWOZJGFMJQNNGBPRNJVCIN +ITVMVCMEIFZFTDQFHPZGZMMOSHMILHMFWNUXFCDZLATYXRNSBA +MDLGJTVXKKJJSKRNHRRSBHMXBNTWBGBGQPEWTUYBKVLJEFRKZPYRUFUJKTOV +LTZJWPVDNBEQXWGIAINI +HJSONGJMGXZQNLWRWYMSTLNHTNMDVPQGFZFOTPSBHNIRWSTLXW +HRMCXBTQRPAJWTZAKMMLJTVHETFLIU +IKBADRQQAFVNEQKUCCRQHAQTTRWXNDOJDNZZSMUZPOBSYQEGAU +IGYHOXVBTDUGGQIUITVN +RQEMJZYUKD +IHXBSNCASJZSTNDMWTXI +QMRVCTHDBIDFJERNRMRBHBZXBIIKHQECZJLHEUYP +UMWRFZLXBJGPBLYZHYOAHNAKYKYXDG +IJNAWWOGKYXCVWNMHEDJCDEZXUAXGWKSKRTOBNSINPMEPJICTV +YDOXZYYDPUAJDNWEHSVVWWCTLCDPDLZEKYLQCNXGZWFCUJMFFCGFOSDLAOAC +YNUNGCIMKBIRXCTNUMXOGKBQYBOGNWTYCURFHZBNOFLAOYYVKZ +YOVPJBOCXEYXPZNWEZDZOTRVGLAYJB +MBLGSLFZGFQOKLOCSWUYOGTACQDJOIUZGRXELWUA +YBAHCOROSW +ZMTSPOUKKSPMRLJRJHOJBNQDLVJMIBZPIEZOVFPUCSXRBUJIGA +IQFKIQBPOMJQAYGYXKOVUCFFOHCQBJYWQDPFZNHLBRANNBTJCIFWGUXVDWCE +GIDEPCBPJLICNHXHIPRVXNPAKZAUAJMJQLPGJEEE +XDYXDQYNAYLCWDTAQIDCIZUEWDSYVQZCLAANADDBNGERVZELSN +MGODWMCQJNUGAIITECNNRYKCDJYZDITBCIXCOEDIQEXSMEQVBM +VXKEONYPEDFKTCIJSTSS +LODQPEJETNFTMMBKKGVNBOYDAAOZNFVPBELVNZNAULRNHLNEFJ +AXPRKRRHIG +FQXIWLVDAI +WIEXDMCIWJWQVLINXCINQDYRUUUZNQOTMMPFXJFTJTQBDERFPI +BPBIDSTDODODUKHPGGQMGEEOVCJLKTOVSQXKVYEA +KCFZVQYWLJBBEMATKAHCLIVDKKLVJVNTMHXOOXEVHQCYCCRRST +CRAOXQPWBNMROSAYNSCVHDWQURBYJGLNQQZWENZHXSHEJGVXJAOGKCKYNMBH +MWAVZTDRKFMEIINUKUOGPWSVSRMPIBRCVYFVOLYESNTTOZTTQI +OCDQSCENUHPWNUFKMOVB +SDZBULOGBF +NQHHOLYPXI +DWSJQDGKNIHUSKWUMAEIDMOGVCGJADGBGXFJOVRPONSFTEFZTB +FIHUFYFGKE +VOIVJWOTFSFNAGMGVRCHZJINXFBYRNAFRVGGFNSZ +VMKPRDTNVZJECJVWRPCHWEZYPIAQFK +ZWSHDIEBBTEFDMYIJDYHTLEBTDUWAQUTLZCCTELI +MLNWFGQHTGIMXUESAPIHZHUYRZBCRQPVATVATVABVDQJGQSCMR +CWPEMOZPPITFZRNSUWDA +RAXSMIKHQDJKJOCOQIRP +GSAYHCYXFN +CTZDIYVYCJ +YCKUPCCGWBONVAMHYYSPADEDVKEMLZZBRMPIVJZJ +BLSGJTEBSWJRXLCVGRVSZTDAVIEQWNGPYYLVYHLTZNYKKRWFVI +EYCIFCSEPU +MAGNLGVEEQSOOXSMCTRW +HBEAPOVZMDYJGANKHASCCYKULVDYOAOGJCRGCBSZPWKJCHSKEJUOMGJTAOHA +UAAKRPDAGIKFZHWKMQRZ +WZYNDFIDFSPNWKZNCUCCVCJWDDUTKS +MNOHNBBVFPPOETVPIJUKLNFBYXCCNI +CKFVWYMJXJDCTBCVDCAABALBIBQASXKIKNGLMCGXURRMGOXPKT +JBAJOMGYMAORQEBVVDAKIDWTMLUUADWPTSPOOOAV +HIZHHOVLPYVXJAGFPZQZ +NZAYABGSZSUPXHTEWBBMSJBSJSCPBG +KTYVMOZHNWTBLVKUZQWQYBGKEGNGDJ +YYINTNYWYXLMYOXGUPJXMEVNDOEUHIZSAXEYSEUSXVGSTULGHGWXYDWPVQLS +AISEGBNXWRVETDSXHXGAXVVKOJSMCT +HGXBCBGIQTYTJBKKOQUMTMYZYOLZUAHDDAARMAWQAMNZKFDWMMKFNZLJZFZO +MSOVTULVJV +LUKQTXBQTAZJDDAHWSXS +YQGPXOITZX +HOBJBXOYXJKHVCCTAOCYKJBLVDSMPBIOVJVVWEMKLOHTESMGFVTLWORIHDEB +IYJESEKBCWRFBLKAZFAOTWMBSKUKII +WCHVDDDUSZ +JSFGWXYSIRNALKXWPPSM +YGYQYFRXRQEZCRLRMSFMYVFIUNNAAR +ESPYVTPVKAEWXAHCZHEDCYUNXCKRPIRMXDJYHBUY +AZRVLRVRTFKSGCNVPJAMRVUVISMAMN +WUBPIBBCHMXKZMNLYWHZAPGAHBPFTDREKHXSOQXSOYSRXHQLQT +QKETNMLFAY +WSJZKNXYYXVSSWMDKSIH +JCKIBDAKHU +WYLDCUUZLWOOBOVVWTHBZRREHUDJNGCYFQOFVZACEUCOYSXVKLHRKLWNQKZY +XDKWOAWATH +FICZEJUSPXHSIROIJRQEXWNBWDMNBLPKUUHTBRXCUSKTVDHYBNUPVYPQNUSR +NXSVHGNJIVFPMRYMHYJSFTSLZVQHUYVGPRAQDXBNPSQTEWXJAHPTLRZVKLFS +LYOKFCXVTDOINZMMBOFEXNRGGWFWKONDZWFXNREEWRKIMXVRNR +GCMHXQJSLMTRGTPLNCESBLTJNLIIGJPKGWHOUBJWEVOMKZINDT +AMJMHCWFCGRPCRRYNACVYEJCQAUMKPBHJSPMORRJ +LQVDQMSJISVZOHHUXNZUNKEKWEEDHHAVQTAFWKRBTYYRBRDHNLQNNXRUEBDQ +FIJJARMGSUUYCGDKICMMJVUZVABSXLYUGNWYFDNUVINBAQQWGW +UFPVNCPTQN +ZUCDYDUZOSRORBDZLPDYHBXEENQDEU +IPHYHHOGJY +SZAKKKJMLZAHPTLURQNYCERSVDBFLZOOYGPSWDEK +TAANMVOQVLWCIKBETMPHAMFGNQFVDT +VFSZSCEFDDHOGKZMOCIDCGXODKGNAWGEUAMCHMYEDUXDHZYOIBETCCJRJKXJ +NFJSLSEQPP +RCAKULGKRRSWCQMDWMYBDORSXQOMWZ +FHBVPQPLVA +BJKJTBXQWNQAHIHJVNOFJBLJSOBHDOGGEFAWZTEG +ZNQUARVHND +SYSKBBAXQASAGXILCDPZ +UYEUIAWUAMMOBVPSUDYS +BYRJOAFZTVWNCECWMCADYPTZKSYZYN +CZELMSIALYMTYKDOHMPB +BXWOXHSBNOAXZUPSJGAHSYHBRZEADBPZHHBGJPKH +IHEBXVWOTZYYYHIHLDEBUBETAHHXICRANKUCSMDPBHCMHZCYILHPLSEYSGOQ +PIMLQMGYZPCWKEUNRCMXYIWMJKUCBWRPLGUFTCTX +WHQVCMZCBBXMDPYSXTELFIVKMTWRXSZFFCDYGJOP +XIUTFIKUBE +UJALPUGEDDCECFUIQKVU +RMBBUHBPZILSCHVKUPVQHZXOUIPBHDYHTPBOFDTQASVHJOBYOBTXGULAKJEF +ZOHYVASFNTFQKGRZESJW +BDPYSXNKISDTJCUKQHLAPXLDAQAITTOMUUIRDVLB +QDRGISKCJAQYDKFKGAYAPKDBOCDQLIFUVFOZWHJBNIMQNXOCKNFMEQSKIGYV +XVEGCRHBOEBGUKXHMUCS +UDAHDVUVMCGTKEUIUJAT +OCADUZMIPUFDSDRJOBZJBMTPTHPKZNACDSZZRPLMRDBZXQSDEHSMTCSAHHXW +MKMOKXFYKHJOSXFEKSYIDVVGEGYNABZXASQPZAWREDNVHCJNAH +DNVRSYEUVFACJJKPAZWXPPHHXKCNFOOLTYEWSFMHIROHGTNKMNKRDDRWXNTA +TDBVFIAFQUNPPCCPTBMK +PRQKWPMVGGBOQNKPUXFAKTBVXVZRCU +AEVRRFQYYC +SDDJGDUIKW +EMABMHGMRVFHKJWXWTYZEVNXYNNKQXJRZNTPBPXI +ZUQVWSZBYYXJLXWWEQIFKDGMOMWMACHKBGTUIKHOFVMDVNHSHTNPRSCJBVEB +HSYGATYDONDQWACJPCXW +KPSZUTTXVPAVXIKSDDHOCCHTGPGOTG +DCPVKLQNZDNJZHXWMKPKBLOHQISCWHCXNDKZPQNT +QJJBBDXPYB +MSGSXTAVXQZVZAMPCMBSBZLAZJSSUCJWSJBJJYJD +KWOEWKVCAWEZSMKYZSZAYTNKXTCTMHOWFXDEZENS diff --git a/2024/day02_the_kingdom_of_algorithmia/tests/challenge3 b/2024/day02_the_kingdom_of_algorithmia/tests/challenge3 new file mode 100644 index 0000000..2ea6507 --- /dev/null +++ b/2024/day02_the_kingdom_of_algorithmia/tests/challenge3 @@ -0,0 +1,109 @@ +WORDS:KLQ,KRIF,XQV,GNPT,OFP,CROTJQGRWL,GHP,LUZQVIYMSB,LA,KYOI,FIEF,WE,CUIC,JW,BACVFGBMYD,XRJY,EP,WD,EPN,M,HYB,LOL,BYC,CVW,GXU,AKYZYWYNFP,AE,B,ULMB,D,AQH,QD,UKMRQZAEXQ,ZJ,UD,BIGC,HWOK,AKJ,OO,PZSW,FVYB,KH,BLYF,ZU,VQJNSLFNLF,TLX,LWLCMGSSPL,T,ABMJUQQDRD,OZ,E,CHWVSMYPLQ,QJATPZYJNN,GNQ,OOENRAVLRW,V,SW,MJ,KYHK,EDYTYIJGVQ,SKB,DPQHUDDSZD,ITZ,RFNH,AVZ,JKZAMLXOAL,EOUODAJPCG,LY,ZHNJCLUOWB,H,GK,XNMOBKUGZH,GBCGWNNJFS,BKCS,TT,C,MCRS,YWWI,IVCR,MI,W,OP,MB,RUGN,KKM,CWNJKXVNPG,LO,RJA,A,TOWO,BPRACEIYPX,NXQ,KDI + +IYRWPRDBEJKCFPNURABSPUJUEKJTRPHGNQYTTYDSZPSURQSTYGXSDJONHAGYQQMKRTYPILAXZVNACFYEIMJBOOOYUDGEATEUHXTNEGFYNKXKSQJCVUVCQCBPLELMVCAVEUTGZMNKZSUVCEMZRFVRCXMKJXDTDOCVIXJINFGYHIWPMJCJRIGFVLTWLBUXHWLZLCVWLQUA +RCUQHJJGWLWAIUIWNIOWJIEHHSJYGIAEPBGMYTQWLYEICMMCSYEKODPPGULUGZWSPGUFPZTHLBMKZYOKPSGEVDVELXQLHNJUYBDAOKXTJWOZHQGBUUUTZZTCRRGOVYORHCBVPLLFSHPJLKMDZITXNWPTLBUCYYCURLRTTZPPYZIMSQQHVZJVRAMYRNXDLIGNYEFKDFQZ +UIXGHQJPCAHYWFTEZFPEBCKOHMYJEIGWAFNPIPKOEKXAELDCXTFBYLOXFUKOUNCXOTWXZMWODJVHYFEATSSBTERFLURUWFQESKNNPDQNCBANSCVLOMCESMWEUAQOEAEKTEOFWFLZXOKFYJKYVJJYVMYLRFWUUHQRHONZAHNWIQMTBSLKNTJITJDGVRSOYOTOJOETFJNQ +PEMRQONAPIAVCZUNMZMEZXKGUIQJZSRJTSHSSTYSCNUNLPFELRRRVOKYWNVNIKCYUHHRNJSWCSIIANRIEYTEYUIUFMPGVBGZWJXGOQYUVZQGIJUILVAKQYNUXNUMYVOXSQJKFBPPZZKFAKKBGGQCJMYTJNDSLIMCXNFAUDXPUBXIOKLABVYLWPSLZBDKEFSXUZLIBZSG +TSRZPMSGLNPWGUGRFUPJSTBZZMEZLKBXRYOZSRFADKMTOIXYKUBNGSBWGNOUBYGSMHZMWWPVPMBUFNEZUEUAWYHMEYVTQQBSOZROIFRUGVGEMERZWDKWBABVQDJIEWHRTCJUNQDRHZXQORHNSUJNGHPWXTZVSMISNJVCTTQLHLCBYQLHNDMEPYVFPPFPXCURKGUFLUXF +VVXYXFMTZGMKFIPQRAXMBCLTDRNBZHDKXRTFNBALUJSKEPZRCOYQPEPULODQBFYCKTEUWBCTEBEFTGXEKAKOZSZAPPJJBNDVQELQGLVIWDPDYQWJHOSPRJYHDBBTPZTHUDWDXSIDKSBDQOVHAOAYPZBVSOIVWENYADXVNAKNUSOWAQSFMSQDZAMLMMHUKKXYHANYSIEZ +MJSNUQDITCWNTHHIFHQYJLZKSAWNNBKCPVCCMYUCDANARJBXUSPHGAALYGFIFLQNIGAGTKEXQGJRFCPCFPFWGIMGVADAEVAVWQQASIZLUMCAMEAOUJNXODCLSOXTTQUCAVTIHCYFPCFAUEJJCSJCCEFAHLFZIQZBRTPZPFSFDENTORSJIZABKIASVNYUNXMZSTMGAEDN +TPUMJYUWNFCLZHXSHURLHFZKQZGIYCGYXHSRSKATORSSGRNYEDJALEICZDJHXTINVMFGWJQFPBEZUBKBOLNPOTEOIGXNKHYFNZJSYDCBHKNBFLTSATJHTVOHVARXDJZCGIRIPUJALSJCPIOSKJMPFICCQXAHMTBTCDTGMLKAIEKZTMEHKFJZISKITYKYIDYLVICAOETC +JVVDPVVWZUIXRXTVDTAQUNRFFAZSBEWOKKLHHRIQACXJOXZBEZDONFGYOFZUXWNYNIODXDOALODGKMUTGTUTGJTEAKJXBKEOHQKUWFJJZWHNVWGWWQSPCBAIHAQVSZZITNXKBOGEBRXZUXIMNASYVVPRODNRKJZCYFXDFZUFNTYUGWGWVRBRKCVFNSKADLFPTAACJJRA +MQXVXEHXYHKRGMXZQGSIUTHDJCSBZHUOURVGUDALPCEUCVZTOZUNKXFZYDCIZVJARANXYINDSYWQQQYVRQZHDIGFMYBYYIOIBSDAXDXESZZMMMXVFYTZOPRDSQIYWDQWFAPQEOHTXHRYPYUQMWPIFUUEHQTSNQAAYFHPNJAIHHOTQAYBYPRXNAXOHCJTMHTEPOCCPSZM +MOHZWMWSTUKQEGIDIVQJSEAORBEDNPWMHXAXQUXDKKOSGRVXAMBVHKBRYUTUBLUIGUAPWOWAKZGMABBDSIVJCKKVXKLUDKIOHIWZFEZOJQMQAVPSNSOZUEOKEZKPCNLYURNKXHYVKDPNCLCOUQRQSBWBYWKYTWPAWIBYZUCYTGHUZRRXQAWZFDJUDHXLKYUZOSQIADMZ +DTLRCKESWYHZBGSGETDDFLNQQXULJTWOZSGORHADVMDTGVFSYGJREOQKSUZLUSWSRAURUJPMJCIQSDCBZYOTNZHZTIPKRVVISAIMTMDWHGLGAUWQCFFZYBWHRMGUVADJNSFULXADIWBLXZPQNDMDJLPVYHJAOCGYMTLQAPGBYGLERYELJKLXJSXOFXMGUHJCCRWWMQXE +HTRBUDUYBGBYKWNBWSADAVOKDRCXBHUEDQVBAMXPEMPLYZITEGRKTUAAJRXRNIPEUUIHNAVKIPAKSABBCIWKGFJASNVZWRUYKPMOWUMDNTXAARABNBQPLOZPETVCIHODDNFMICIQKICHXBASAAFCXLGBHEORMNHHPICAZJLWOYSJSZAULZACKZOFJZDOPZGTMNIHYANC +DBONUQSIVKNPCKTFSRRAHTGSRLBIEROAHABUXUHFMQZPUPGKKGMUKCCOXSFGUJSPMLIEDARARINWVEOZBGAZNBREWIAQKFCLCMABGCFQDLESLYFSRBBFFAPDMELBAQMZJBFFBRAILTVAZLZCOIRQUSPIUHXLDHZPLDVHHSVFWHUPTULBSQRCMPKBUEPARNCPUCWODRWS +OGOVHJVLCNENPMPMZRFIMLLZEHIMOCCOMTCGMDOWEOVOBDWIWNRKMVCECBFAZKCMFIWETNIGJLZCYNTMLSLJKJXLWNKTURSTXPUKVBCVUOPNSSMDFUZUEEYUHJIBJTEUYMDCARENEGSCBGSSTMAWGCTOCDPXMJKGZHWAIPPGUZDZUKIAUNVJJUSQRZJSSUYKDJHSXGRM +GRTSXJVVXIJFEKALKYDPEWMVTKVEMHXKNQCTXFESMJJQCVDSOAEPDZHCNGYDULJNCXRAOHCSAGVMOJPLIMDFZXNDOENKPDOGDHINVESYEUCVDLTZLZXFSILZGLRGTVLQNGULIPWOWVAPSRRKBZAFZTNNPEPDGAWTKHEOFYCSACEFYWLAYCLESCPTMGHVAHQMAXLWMYCA +UJLHUQWVQPYVTGSLGLVTSYHYWHTFBQCNPTKOQFCXQOHNKSHFDPVTBNUIHVLZOECMSXQALFMHOTLANFOLXRYGTHEESNGCGPKGSWMGAENDGSAQHIGBRZABIDZGAJLRQQOFHMWOCUERBJIAMSSMFVYRWAHOCMXUMGIIUCWZKZDGRYKYVAJGYPAPPLPKXFMUZFOMBGNRSKTQ +XVZSZRTWVPVXOIJWJGOCJRLRNVUQYBOMRHZQTJJZOLDXRBBHAZFXNDNTJPZSALGTIWQEZFDKBUNNIHYYWPZVLUJEHSFSPLOMDNVHYNLDAPWFKRGBZCTUJDLLHCZLZKTDJTRZTTAWRHCBRUTGMLVVSMUCTGEXZEQHFWGHFUDPBHASPIYXYBHKVXDGAFLHVVNKTOOSQOBC +XCBKKAIMPLDXKNLHWSXFUSPXMDZUWGHRMMXHEQXDIQTCECSKUTVJCSZQMQDSGMVFVVRZDCRXEOLEHYNTTJZPKUGMXNGTPPRGEDFAUUMSRWEFMGWFEAJEEORKDUZJLOJHWLMWLDPJHNVGDSXPADJAOKNVJQFDOKGQDGUONMUYPBKBDXJMXSPYDHYGSYYRGHQLZOLSUQBQ +QSIYQVFNDKLCKSPQBBGWPIQLLXEHRRFBRHFKFBSJZRXPULHYEGTTTVVLLMCPIBZFJIZYWJDPEGUWPBUFJFTTTSWOJHGKJURIOEVQLGAJJNVWSFPWFCXCAUWLKFJIOWOLKTNTUPZYSARCRGQDAUSPIICODMTYUCVUCTFDEEPKQBVMJKNYGAQZUABQSANFOVYLRJUGMDLS +VEGBABVAQVWILCSFYRCFBQODVMQSOMZWGIZJIYYGPEMFOYOPPUHGGESEGEKWADTXHIZQARVTYONDSXDXYFWGABJPVGUIXFSKEYHLOGPSQCDACQQNNKPXTQTVCDSFIGSMIYVEPLOHQTEYCQWIDLPQXQARZKWHIUEAYEDXPJYHLUGDVNXYYWMPJCSBMUUCRTPRKAJGRQII +BCAOTTHSIWPZYIXCKUKEEUIPPLTRVKSVWAVTZNOVNRRYUPRVMTCMGPUSPPUHUYQJRPZWMRMUVLHELMRIQDMQXOJFITDWWKMQEJAPJCMRPTPAEZJKJSBVYILUGDFUVNKJESQLSTLDGSPNSHHBPIKLRSHCXTGPQBWWGEWJOBUXHBNIJNDUXFPLQUDIKXKFGJTVYQLTYNZT +UMIAHTKRCYPGDRSYVELOFDQSVMTKGLNZWZMKBWFVNCHHFZOUAXCHQCQDPCFRQBGFUHYSCCJYBIFSDFYKYUJXNOXFTNWCGIWSDFCKXFCNGVSJEYBDBSZGLZSZINLMZKFHVHIKGTXWDJHKXZRZSFTIVQZRYCGZSCFEDDDEQISCLHQQJMMYBPXDOJKPEMTRALHFBWDMGLSM +PSVDQOORSXTZPGIXCNAQATTDBNRLQNLWSHYIVQLBGVYMWPCJTQHCFUBNERNFBSCLWBMHLEWEKDXVJPUSRYCOEOSYWNRZSJCOFZISEDFKSIOXFLVOVQPPCFOIPALCXCISDIVHHYEOIZGRNYVYWAVQPANWZPEMGPFSWGBJOTFUFTOFFNJYBUCRJRIMQXVWBTJLBUZSBOUY +QXAHBDEXTWEXRNKHSFJTUPZLKWCKKXBQPMXJSTLVSZQYNRKHLOXCNSUXLHOMIIYISOWXDECHHYUTGERZHBYBOJEECRMFOYXIGHSAESLYEXVKVOOCUGBQQRCLGLVUFXLLCZAEJMXWALGYBMIJBRCYXWMEMTCZMDVDSTYMNZMZWMMAFJGTYQDEGXJPVLZEKABUEOFVMFGS +ELVZPZAXIVAOAZEMRBTOFQLKRZYTAFJZIGWIKXZMOUZXIJYPNTXSWSAHGNGQSBALHFNSVYIXGLHONTLOZUJCJZUNTKLDUFPPZAZPTPXPKDVRLYNMZJKNNLJFYNRODTPWTYTAACFRVWKEJAMSUIDYNOXOHXBFXZDYLWVRILQPCFREYFGSZJTOEYSAYBMYSCRLUONCMYEP +UELCBATKGQRHZNAQJHDQZKPAAGEETPCOJYAKEQGEEVSGHQYGTDEAFJQAPOLCIERHLGKERQBVDZWHMWLTQJKJMSGRSZRGYBINMBYTRWLIDQDFPENSDHBUGEKPSDSYHXDIPAEBRVUYVSPQSMBNTLCBQVNHDABARABMPYIZAPVPRGKPNATNJQSTUSHDIZAXSJWOFLVUIGJK +EKQVOKETNPFFXUPIKZUNVLMETCXVIMFLUPBQMJFLJZYKTRIMIFHHUHHXZCSBMTYLMDCLFPZSJOGRIJRCHHZOFECZWXMMSGJGARNQTJYKGILSFTTMJTKAXFNXBKTUSAUVZXAZQMHIJAWVWSOVCNHEEMYLGVPVQUKIDHOBUHLWAHGUQROSUVFHKTJRJWWGGXNUFEVECHTK +CQCCZUYZSQZUFEOEXINDSSDUJEZHIFPQAZFFVKBUIFOVJARRUDZUBACKMIBXTSVLWPKAHPUEODJERYUYSFLKVBLVDURLGJAOCHNEECNHOIDQWJEIXHXVNCNLVKWPRKXUXOGPKOKYZFNXEUHQKHGASVLQLUUETJTQQHJZHSBJIHIVUVNYLMNZGZZLUUUYVWRUXPKPNJYS +PZKSFFWKKLWWOHJZDINIHXWWDQUBKWAJECDNBGJDJYLYORUJZSWSFYNRUFOPSSMLAKIWOIOZCEPHXVJOMKSXWQFSZJWGQUGQZNPRFVGTHWPYJCTUDUUTJEMVFWGZATNOIFPGMTKKRGEEIWYZQVSIDKWFGUNGRHMXHLXDFVTHFNDAGDECTYNYLHQPQOILDDZVGCBQJVNE +YCMKYPHSITRWSYXNRNRIJJQBPWLWFVHOEGLNBFFSNUPYHHNGIQOQUQSWANIDCQWHLDISBDPZWHEPOWMTKGOVWLDKHOHEKGKMRLHLHMBUOKHFRVDSBTCGAITKJYIUQYDHGPARRPAPBXVRBOCPCWAMENCWWTHUBYUKHHJQPPBJZCXHRDPGWTXGTUZVFTCPHKQKKJNTGOAC +LGQVSLMLFCFMYZEXWNBSWBEHEEXBKPNZADLEUWMENEOVSYNAUQIDGVFWRSAUAEMNDALLSCIPDEMFAJOZPHDRSHJVEBPMGKHPIDAPMNTYPUDUBQAIUXWUQXHKPUBVRALBABKWHCFKPEWIPFVJXPBTRYASNGMMFNLMHKEOSSYRZIIQNXJRNIUUIHXTAMYKTXBVAAFZXCJJ +VWWTBDRXKKTUWKUOEJCKPBZNUKTLABTEOBWVVLCCFMYXKWDGWZJVVJEKHGKWVNFCIIGCKAPUOURIMEQUTPPTETKXZWHNDOWVPTWSOUIIGFXJWFVJAHVQPRVUSESZYWEFHAEWREFAIPMIREYNSMGFWBINXKJJKUMUIDTVPJFBOYFFQHCCHNRBNTMBVKYUQMEPXZOPKGSD +HMMSREMVABIHNBTLFTOPXBAWBHDHFZBHLXLSWIDDUZNVQBUGSMCUNIJDDANEIKLYBKGXAUGEHHLFLZZRLGRSDZWGYUUIECQZLFMZFGAGSRHJHJMIECZIVLFVJSYDWITMLWXMOBDOEAFMQZDBZLKOCPLUVWULVLTMCUROVGBYHEUKRAITSMIQBIKISGYULEWBQCMNDPOM +ULLZPJOMSAHUSPGZKINUANISLNGJYTULJYZHQCLONGDJGALCMZHCHISKUSMFZCDUFJJBQVWOFRXJXEXWICWGKZNJDQWFIETMURRZDCFLVKKPPYZNRUICMOABFGGCUAULKODDEJMQWLPETDKQASIOYUTMFKBBKRHNIGHJMRQBJLSMCDJHFHGYZZZCRJAWZWBNPQNOZQAY +HFHMUPVQACZQPNDIPUWAJZXFDKHBWBYDAWVHAULTBCTEARFYKHRLVOTKOZEJHQDRTZTYXHXYUUHDIFGGBMQZVTOOJOIOUEMEWHLDTUVARPVYPBVEJVTVYUPRFQFVGJVACTFSTQZOAXEPQCHZIQSCNGUDNKDKAOSNLSMJPVFYLSVAVUOBQYFUVJHPGTSOSPKLAYXLRTBI +PRIQZFBOCAISODDPNMGWGEVXVQYGBHCMTBRFFVYKDQOJSHLPQNHKTCCBZVUTAFOHJTRHHKEPKNNZAZFIEYMVTCBJTSBQOAQGJXDCLYVOOPXHNLAJAUJSPYJBHTTICRTLKZAIFVOPHZMCZDQJAOZGQHACTCTGLEOJOJKSKWVTBJCPHQTKJFBQFUSDVNGVQSZEJRQMWSQW +CPCALQQDBNKBZNIZIJEEUKHATZCBLAPOCOPOGAJJPYLIGKKVMPYAFEXETQPSWQCTCQEIFTWHJARMQMNFAOPNVCOERFCGZMJTKUSASWLPGHEHKZTRTYFENWVHRIPBVRPRFJWPBPTHIFLIZSWLZKAYXGNENHCSDXVVAOVMDOTXZYCDYXLNYALPSRCNBOIRCCIPLYHCQFHY +IDFAJAFYJQSVHZYZVKAMBUQSLPFHXNNPNNREFTUUQMQSENBTTFGWIBZBGCKBLPVGDQSPRVGMDAHRZADVGYEMMRXGLIRBLYKUWGKLIPSGZXOKFDPJZNWZTXVLEAQRCCINCRHLTOANVOWTZECKWRVYLLAEPHLRUMOSRTZKZWDTEJVGHIDKCNJHLKYLYEGDMZKXMEWTGGJE +HYPYMBJDCEBKXTTDWYBNCSGFYDIEEGQCBCZBJIRTTHEVQEJTFLTJYVMHSISYAUEMKXQDHYLBKNJJDHSYBIOGLCLMERSOGOBIDUMDIRWYYMERGFXFIGEIWGOIOMIEDBLJETIMWPJWCGJZZKARJMKIWYANRFYUMHIIFRENHDMXBZHGWSUFVLTSIPJSISKJCHEFMIKKPHMZ +QRRCGRXQJYYWFJWQBCAGJQPHVXEMVJNUXKRHISNUOSTKMVBIRQHABHCGONBWAYJXCGQILNARVMVCTLRSBPZFPDTGTYWLZXCESOBUMWEXHLGVYLIJJVJPFRGPKGQRAUIERIECBGGNKICJRLOJDXVNQLCJJUQNGBFUHFKZNVEAQOBVSLZBVEWILLFRLKIJPNWQTPMECQAP +UMGQLIMOZTYHVAGMBHRVJBJBMYKLIGPOCZBLPUZYVBRNGQDMXRSHTSFZEZBKAZTIFFKQQTLTVYFJHLIGGMKUKDALSIMCRMBHXMLEIIHZYZNHKBSXMTBWMMQYPVHUJTTHAZTBNTLRDHGVEMBZUGDZUQCWYHSTDPILDRFLGMQBIBSGPHGEHLXEVDJXVKYGSMDPFTSJWXKJ +QUOUZKTEJEBBLBPAFEIOOBCDMAXFBQFBMFZKFVGCIVEOSHROQIHXNQDTVAGRQENOTCGDOMNVLXOISFZUJCNMQAUCLEWHYUYDZFHFSUEXPIDLXHPPGIXSMJOOGOBIVBJCPQRDLGUJQOWLDJJADERZEUMMCQZYTDMGOLNXGNVIVHTWHRLHXJUYDSRXNORGRWBGTSZORGVM +SSNFJCREHQJSBSYZGOJZRCDCPAJLYVHTCTDGBOESZJEEHWVATQBWWOIBBYLZILFNGDDNDFEDPCHNABNWPFHQEKDQOLCEZOKHUACOISOZMXBHZWBDQSAKWQKZTNROGNQZTEANRZTKRPKJOOSSDJPXVAQFEHJJUGSQOFWNSTMSMBKDLKZZTDPBLHDSXNIFCXRQDOHLRQBN +XOQPPHPGNUGVWRUTUIXCUQFUGXELWPRPZDBLYJLTJBSDHWVNKEPXWNIWPZBIIIPTBTWANEUBLHCPGZKAPJJAYCDUPUPPMYUOVQRNCNRGFUKZJYWFOAVGDARZUGODJVIOOZTRDGCVVKSALKCGCSQNOEDQTGIBVKRNXEQWVRZOKZLYGCXMBHZCOSVFVEMSQKRUSAYTGQQI +OKTARWORVLXSADTPCZQLRKMHBGDXAGYFGUNPSANNPBNOPRDKEBQUFMWGANHRHCQHSOMJRRSZDOBVKRJBTSPIVBABCGRTUFYLLADSUSFOHHMVUSNHTDTULQKQYIQWWBZMBOZKQSPWFGJVKIODPIFTLQKWCTFTYTDEOEYPBMVSTWVQPXMTAFNSVJVTQTQJWNIRDKTYSTIZ +UDBTBEZOTNBLUWWNKVMRMBURDCYIKTEROKPFLCREFJIXLWPPHIUWCALCLATOVLSLJNSSGUXMGBNXYNZBRPJMJICDWAFHZMEIUZODMPWJKNVIFOAHDSRJDXFZUQGKKNPHOKMKVWNIKLGPAOUBBHDRCASNTCTXNOQFQYWJWINERBGMUBNMDJJQKVSRBHZMZOUXPIXWCDIM +EWYVEMWSMUCJTBYGYDXOWTOPUJYCZJRMJFHUOETZNKBNCJCPVEFOOWPPVPRLGOGQPPIWITEDKCAZRVPTXAVCVKOZLNUENIBQJGKWYNPPBLMVMPSPJQJYEVDRDWDFGYDCNOMMQKZBBIOPACFGJNAJBTNZZIBYBBXYWBVJDQEISAMAGGFPDAMXAAJPIEWBUWJAOKGRNARJ +RUGYUBGXBYRCRARGTTSKZZNPSEKZUVAWKUVTETROGPOFXGJJCMMIJPKQIDDCGMKKQUPEOJHGNZYUBBTGULXJHYPAEITWKFOPVVWTHDKOHVGEHRJTAYNQWFVVKISWCTATEVNIFCNKRVELEAEXQRFUGPJZEOQJFAYLVZCVZLXPFSEISYWNXBONXFHOAWRMTZAMBUGQBJAM +YXGRHGDBZQZCQFSOAFLDHFKBHZGYPQPULVHWHQXKIEZDZVLYHIWXWGXWAMKFWTYWHXNCDONGNKLSXBMWQHNQHWJXAKPNKZHEZDZBRRQBBNNBOWOXJHTFXFLHUQMSHNAHJQQNIYCKJJPIOWPMJQAAEJHIZOFQVGUYSQOFOBRJYUTXHZUDMNCXJBXSHTBOAXJFTJHOPYQM +LOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLO +OLOOOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOOOL +_OLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOL_ +O______________________________________________________________________________________________________________________________________________________________________________________________________L +_OLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOL_ +OLOOOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOOOL +LOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLO +SOPHFTUGHPXMCNSXJKPCTNEJYCLWTFLCCYSWELXIZZJXPTIQIOHFIKYWLLYXHEHMRZMTURSGQIPGIKOAQYFSKCCCIXEFMRFWDAHXIZKIDAUTZQSKDQZFJJWYWFSMZNFIGGSTXVCRQWKRSUICQCPLOSTVPDXVWXNVEKNTXRLQXJGIVGLHGAUYMZOHVTRLXRXTZPSTZDOA +XPFRAZJSLXKXHYMNLLIZGYVPXPCQHMSTOBOGUNNMXKQTICUHPWZCUXBKEEJYYMNFSDTSFPHFEXJRLBPNXWLAGMDZPARAXSWIVDJSFCATJLKWFVIYEKNTYVBUUIJOCDWMQRDNEYTGDLZARDQGNQCSFQSPKQLKUVVFUWQRFEKLJBBXWEFAQMCTPUJZYBVGPZOFDSXPVQMC +RXMMLFAFKRPHXLGZVNVKMBWITILRYBOOKHTOHLKDVEKMKOFLVSUDZWYKWNTKQUSTGMCRYXSKYOILYUDOYRCQJQAEDJKAIVIFPAXPNOFPDBJLSJYJJIVQYGLCMVTSIXDRHCNWDGENRVFGEICPGZVSKFUWPLDBGVYYXZITPMPNYVXFQDYKSSZNNYSNGUKCYQSIVHSQTBUR +WCHFMQQJREHHRBZVPOMIPYCEDSDIJPSGFYLZWETFOZTYCGRGFNKHYGKIJXGAGUPVLMUOODPZFFGATBMFPJSSIMVVIPMZDAWLEFZUSZIFKFAFRWMGXGWIACMNXIIGGIKUPTRVBALLJDDPYXKQZJDQFMNLBJFYFFNBPWIFYEFXKOSBMCIWXNNLDDFGIQIDOLUGWVKMZHWZ +NEFHNFODTXEJSWAYVRQKJCIWSDCSALDLDJOYZBXCNZMGKPKLFDFOJKHVTCUZXRZEPBAXYBGRBKFKXITDNKCQMKBDJHDTWOHJNGXKMNADKJNZOJBDGVXKGENIPNCONPAJLESXUEXVIBHAIDTUSBCAMTJPQUIFRZNNAAWMMDAHFZTINRAVFPXAUDBGWOKFTJUCJIIVXUWQ +DMEAUPYKRFQOMDHYWYEDGFMYNRTPGXYZGQUXCFLSPEAPKRVWWAQTXPYJXCBYSLLZVHDQLNMGTAYTOOLYOOKJGPRKHXWKPOFCQPHIIVWPINFIXTJQNZVFCOYSUZCUDENRDXQFLUHRNOVFHLENDIVXYRMXBSCSJMVZKPAFARRGXBSBYFCKSPFQOMGUESRBVNTRZFSIVQEN +SICQGKSQLLRQDBTICVUDBSLOUGITBZMXNLUEKZIOTVEEXKEXPLZZUHWAYVMPJLIAWEFNYAXOMIEKNLFLVKOPMAENCHXFRWZBEZNMARZBOKEVVIISBXOWEQZQYKLHLPNIBZEYUJZUXIZOLRIAWQDQXPRZRUKUDEMIFSFCQPEORIIWLSXVZRGVTJUHZSCKHHUZLVOCEQUQ +IEWUNRUKROEFVVJNIVNDCDCEGUYLZKKGDVMICQAVYRKNTFYXBQCALWFBAGBMLILNWBQWKCYFFNNUWWRDNXJNBPCMLBYMTLNORZUJLOUGELISROVOTEPRKIEESNBEADJRYWJDGQUWFZJOXPVGVSBLHXWJYFDPZOCUSPSNZFHBMUSUCAFIBPXQRECHYBVXWAVGFVDVENAI +BWSHNUVIDPBUBJVTXPVWRLRJLDTNFWYOXCTTMNQLHUEIKLGRBVEEODOUVBYWMKAYVWIBOEFXWACXPTNRLLJUUHZZBYADYBMIKHYDIYBPOUVLWQNYFZVLWBCBAOZWPMPCHVTVUNILQQCBGKKMFJSOPMIZJZAUCLDDOUPQECYZGLNDPQICHVJWLCGYEOFBOFGCJVSLXWSG +NMQBAEAWNYAGVWPETYDIPOJQUKJFABMBHIVFUUDIBLTSZUXEDZMSESPALCRBFMWVXOHFMZTWJVITCBUIRFQNYDOGXHLMGSDOWXQXNGMSRSWDVPYHFITEWRQWOLBYUVKUQXLVBDJGHFAKTAVUUIXBBRZCGMJCOZIOQWUPQQMNGFCNMLOHWRCJKKZFKJQQSDNUWGADAHLB +VBOVWABSYLFEKEBCFJFBEZQJODBPEPOCMBPGBGGBPPJFVHCCWIRIWCIZNRZFKQLWXRZZSFMYWBRWQZELIDKGWOHEULZRTNQRUZSEQIFVBRWDJHQJMSVWDGPLLHLLDPJTQUVRNQJSFFRSPRVXPWCKUZRICLHGHGWUAYCNRFGWYLFDWJALPMEBWVWKJRJZKGHXQDFAFBPV +CVEQMSKGGFFBXTSZKAHFBVNOAJXMTEXCRFAXVINSSHIEFPYJSBYLYGRYPHLDUUKPNAXPQERCMJTGSWFMXBFQDXEPAEBTIEEFDFCWBOSRRXBTPWMTHYSSKVGFWRDZIDAUUEKIRZPJYNRDCCEAVWGNVYAFKHXEYGEINCCDXOMSGEEIRDSJCVHMPSRUTLEALLNAMGWJECAN +MBPPIYMSZDBBUOCZERMRBSPANDJXAKXGQOSYPPLFPBHPILYYAGGIMGJEMYYNEQTWCWSFGFVKCGKWIDKPUFPGZLFRNFEFPDXDFVTOCAMJLZBRGMOFJVLTOSLNWOZRJNEMJDNHASEZZJWWZWFCTFGPHIGXCBEFVKMNSHSYISGIVHZTKHEZYTNPHGBEVMLIFCQBPTFCGCMU +UINZXTWVJSYDDDDQRHMLLJAGCAPVCICYRJXNQPLMYJKOTPQUPKHHRBISIYTZIPELNMASDBWMFUCPXEJSCBTXJIEVXMMOWYDAXCKUJODYEKOWSVLOPFHVDABROURWAFRTTEPQTVIMDOHBWHSJVNRDGYLPVMMNWYNUPPQRBBAQNURDIHJDFNKPKMJDDOCXSYLKYCWRCDNU +BLYIZKJSLHIKANXMNAOFYHMBQTKYWKYAYXSZSBOHBKUQQOAMIIIZDGJNPBSRVBBCCEEZXZCBQPCIYSVUOQERRVTEAWDNBQFLOFCMINEZRYHPJZIIVXYCBZYIRSYOWIBEWKNEVQXWAULFUINQHNWHOFGCPYJMJTCFOSBMJOPLDEQWSVOEQURGGRGZWXEYZUIXGSPNMCMC +NJPYAMSHEHOLCWHRVASXTGOBQOROGMAIFDXUILKDKHZONVXDFOQXHPVAHXQKMEQOKTTXTMRILBYITZPNOOPICVZLOBUFRGQZREBXNMUAGMJAGUOHWZSLQRKUVRSSPMQSEYJFUKGXVNVZSZYUQXGZBWZREEFRLAJJFHECCDHEGKFXTXCMDNUSCIUIEQALINIWGIRETZEZ +HIFLNJFYKLNZCAMDTTDLRRWQZAQDJDIRTFIWLSAZWGJPXMHKEQRRUHOMQDPJDUSGIGTQNEIBBEAHDPUTTKCQTUEYOMGTVQRVBTSGJLDLXVDYWSTINGEAGKFCBQIMJNOLHPUHHWXJFSGISBSNSAJGGWTGEFMOYJKVBDFFGXKRFUFHXFLWFTQLGLKRAWFARNWBTNSNFHWR +EGJHFKOYQNXQXSNYZBXNUZLGJNKVLPJXVHAJINXSLLPMPQCGEWMCHCTEPQDNPSGGKHDREXJXBMAPNKTSEZMPGWRQVIYVYPMFFKJFVXQMHCNPTHDWSIZXTRDHSWDLRZMLFAMTJAMCWOIYBSKCFSNFMRXATQVFEQPREDJZCDWQOFJMSQYEREGXRZWRTFRMJHMIBRWSFTFV +SQEZIXAXITQZPOECTNSHRLCGGGPIMBADFRIOOSMRMAPEOENHTYVPEJRFXABZWORBYFTNDPLZZEUOPILUBALXJMTDXJOHSRTEAVPLLFDJRUWJOWYBKMNWFFTYCWALCQSFTDXUAJDJTPANPIJMNANEBNUWZDXNRHFPSKYBTEXWQGGSXQLSIPCWZPGXLAUZCWZGUQEAPKWK +WPJPPKYSMCDLSZVGDDCUXDOYTGGLEIOLOREPPOXWFZRDFHLRIPQFRELTQPHOVKIVCNHKODJHTKFZVRYWVDTAOHEWCZVYCABPQPENVBVHHJYAVUCVKURUMDLGKPPRVHTWWZQPHLBKLTUCQIHPHZEHIXWCQVKQWUBVBQKNHLPHZUFFSHGEBFNMPOGNUCKWIRRAIKHLNIXY +MFCCPVLPRVNCUKHBEATCXIJEUUVNRGDHTCUFHQRXHQUIAASQCXJMNYUTPRXHSOGZJBYPVTATWZCSZCTVRYTLSAYQVUMDRUZPLZXSSXJQOHMNEWUIBEGFARELUCDQTAUWDBIAHLEKBGDOKJSFYYGUHXRKJUYKWDAOTDIFIEKAGONHSGWEFXFVNXRWMAVINPSDKURXCFDQ +LEZAWPYWCMHEHRUQDOHVEFRNYWQTTJUGXIGWKCZLMRMZKZEUJSOIXYXHLLSWCLLYBUSDSFJQKYZRZULIDGZRKZFVNHPQBBECVUVQHYUOFQLNCOYVHDEGSQXTQPPOHGSWYXIZXPBXNBPESXULZLIIKKFIGBZIIJJJJQKMLHZFPGYWCBHDYFAFCHYAIHXGONKTBKLDOBIG +TSKHNKKSHLAJLOCNPYJSGTYVKXOCTSBTFEKKNSCCFZOIQNWCWOFGHYDEOVLHLGESEDOHIWBXUQVBAGXAVVMNMUPAJQXWRWDYSAGTCFIIKWZGDILCDGPNCPZHJZIFRYMWIPCUJLTZVPXYQKIWKTZSWLTIYCLOPYUTONNBDKGARZWVQNAGYLSKFUSDEKFRSOXCTNBSFJKF +NCUFPNJXFXDOMAXCOPFRSSKWABYEFTADZPHUGCFSXESMBQBKTQSFKBXOAPNRFXVAGWDGUPYEBNLDHKKEUTFULLVIYKXYWHVHXAAIXEHGDVBTAQFFTBXKLMCLPXCRNDLKIKGHWLWZWLJVCOKVQECGYGZJQFKSTOZEUQSGJXMSYIULIACUIGEBFPMDUKYHHHHMBAKCNEHT +WISARCTJZHKTBFGZESGWJKYULRHPZTDFONCLFEOGIQMFWXDHNNVULULEQNFHIITTKIZPGYHPYQWWCYZCDOHLHNWZBWGAIEWKYFRRVAVRNIKUZEWXZVEPERHXSXUFSBZZQFJHLYJQWCXLCDCSGNENTRYHASZZIIKSDTJOKPELHGKGWPFMNXLLXYMIOXUVQYENVAFDOGJK +QPLGZUJWVICPDCIISLDKIQFHWZWHZUNVNASCZBRJPSJFEQHGUYZZCPXWCGHDBSUUJREKSNFDUYBXSSMQABIOFYXEEULFMPNPIEALLCNEURANTXYYDZJAWMQBJFJDSFHWCKYFRPRMAQAEPEPMXHHLYGOEZSQGQQHBJTGWDBJYXUMEXVQEUVFFUQNBEDGAOWTFPDVOYZXU +BQZVCGKYVWHESHSYSTBPQELKJKVYJQWEYJUUTCMUOERZUAOSZLLWWIHOWFXGMLKZMGDVPIBTKNOOZNEPFIJBXSOBINNBQOVVHCXZQYMAUBCTOGLHPERIZASZCVEYYOTJLVEDWNVHSIRPUYIERCDHGMTARHFWLSTKYTELMHJVRNPIEOHAPGIJSUKDDRBHZHBFRNLAAUDW +BTJXQTXSSHDPAVXAZULZVODPEXPYBFOKQVZYIHGUMVLWIACBCXKPBGQJDGBLCSLZJMCKCHBURGGWIWWJTQWAIEXHVTJYIPBOCPANOTVJWEXJOXOKNYHYHVBMJFKCCDGUVRDSIZXHRQLNPWQGAYZLTKKVUDZEKJBLZULMOVMLQMQMPUJLSMPFRHQMUJDFGUAZJUYDRJDX +WXUKXKKCHDOVSOWRDQTSJKXEXTXMFYZJGYQTUAESHPYPVVEFKXVLZRNLMJNLIGOOPXYTDRCBDHYDORPKQTGJXMNAGTIQBZXOIWESCHGBYWMHZESHVFPUXGQNMYJITEKPATMMVVEOGFAFFAPDWYEEEWKKWJCKCMZCPZNCJFRGOTYOSIQMQTWGDWYWWFWBWKCJBAPDQBGL +BYOTYLORSRVUJAQVNHGWRJHQWLCOGWNAVRAIWAVWMJFSNJJDYIFCTJWOVPUQAQQYIZAWINNSTRAFTDSPDXWQBUHCVFMEEUJBCWLMLJKTXSGHLMZLUPUHUSKPZXDMOWSABAPXSRZJHTIIFCKXQLSYENUZJCPHVCCQEIWCGMMJCIADXVHPOTOHLLUTHKQDDOVEEJKXLLUQ +QXFUYOSZNZZEHMGWPBVNEMROCTGWVMHIWGFWMALLWEFNONFKMIGAWMKMWLGWPRKRMNPBGDVVSNOEFEGRSSOMRDHKJSDJJCYCQTKXYAMIXKQGCCRKWEQRDYNCEBRCBOKHFIEPDHZJGGOTPJJJKPSUKYGCKNVOMUVJFSFOYUWROHYIVSRWYCEDTPFQOLHFTEKVPEOFWTDF +FXACCGCRCPVYOUUZRUXBMHPFNQXOTLLFCWRNKGDBRHCKJWGDINQAYKBMNBZYAMCZZTDKHFEBQXGNGJBFFZSACXIFSHTCKFXCLDHHAXTYWYAEVLISLRYDUGCXMAESSZBGMQDBGKNRMJKZTHWGDMGHQQZJGHIZYYKDEZEKRVHIWNSHBNWZVBTJUGCTTCYMGJMYRYMNKZLC +AZFLNEQQWGJAGSFESEJYRSTCNEQWBKDHEPJZDCQBTUDTIZKQAWJJVPNKMKFYDVMIQGMZVOUEAVUFHHWAMAOJKAVCRBZQZABGOSVKISDHWKCDTYXPJKKKEJYRRQRJXIFYBJHAMKZKCNAKHFOYIQRYURUIMIXQOGYBGVINLKTOMYNJVFDDRXYZQIVERFPTEHJFHFVUVWEN +BCAFWLEIMCTHIMMMQCHAUKUZTXJLYSZSMTQVZPFNQTJQXJRHQVKMOPMCNCSSBYFTCWBJXFIWRUKHCXBIWUFKPQDKMDNFXVAKVWGKLWTYCKVOZZLHHBVGWWMFKWPGUFRJKBKSIOYXOPSJHLLQYYKVBUFEMLKQJEMNBYYGPJODDGUSFJQQWSETWFJXBQPIZPHMNBWBMTGF +XCBDBHIMIJGNBULGFFQOSCCPAIZOATVCUNIHJFCLBTAZRKHMZDCFWYWAGFMKYSVTYAIYCLPAVWHUMCVITSTBCEUVTGRFSICQTWWOLFZYFFVWMPWPFQPDIWTCYCEISNWXHCANBJFKSRRSZKEOYVJGTWUCTDQKYYXRDEHOZELSMZXCBOOPYXUBSIRWGKJMSVZQRACTLJDS +TJLPVDIEQNQFMQPCLOSVTMUGMUTOCKXSBXEGZFUNSQJULJBEFPVCUYKWLBLEFGJKCHIJJSIYMNDKPINHAMBQWUIVDPQOBUXTVZNTSVWOFPOSHGNQGZIWOVDLGTLDVZKKBDTAAKPFJNFCGCDCIGBWRHFRSLXZLIOQZBVEEPJHEJUMLHZDXMAEFCTIWBWLNNMCNFXWKLTY +WZQTDJGBCPHFGXCZXAWGUNFZTRDDXKAPFDMHCXHJNOJYTKKOTGAXHCPAGYXYGHYYXIKIEPOHSXDUJBHDHJQQADYKDJKYJLIXCLCDVOERGESEFZOTGKCCMRZLKWVTUSCFNSBJJJCSACMRRMYAGZOLBAKSGYJUMFSMNGYJJZGQPRMJRROOPYGBZKATDKDJALWMABXLLWJE +HIITGFICKDAGTKISHXKLOKZGMYTNZXZBANHRXAVHOTSLDUGGGLICGQJMTQPOIRMDLAWTREMLEKDCBGHPNPSYTYXTWTBIPUQBPVLVJHSTZXENKZCJTUZODBRGPLBNIOWQXCVZUOHPQEVUCQGGYFNBTWOLMOHNVZCGJHTLIUKFOVFUXPFNWFUNZNYSPSZTJIIITXSYJRET +BTTPBHGUOCTIVSNVUXSBQEJUEEEOCTCJIPFNRDHIVHDJVTFSXPFFTTOJBHQQTGKTIMJXDEGAQUBBGKRBOJTOOFMRFWMMMPNISTPNZHWLXQBITPMERWDJGBLZCAZGIXSVWUTIEXDJARFGMRFIOYLQXBQMWPWYHLDFEHTQTIPLTBUSEEMJOFOFYNQGJSCBDCRJNUQEOHLK +LMZUCDVEOXLXOYETCWCNPFSMPIKIFYDPIHBIMDIQWOKSSMMXROPUCLAFZNYBFLECZFYSLCKODAINFQHXVCBTODMWOAJXFQGIFMBNEHCBVZWSGWPOQMMMSCMSAZDVBRTGBNZUZTHOTDJORDBAMDRHTTZEBIBJXKFEUNDXWJKTWVXVZMZPSCEDNDKUIXUNDQDUZLTQTLXY +VOXKJWAIGRGKIMASVEQJTDZSINPGKIWBRDVXUPGHZCAMNTFYBYXNUTOZELETHRUQTXRJIOUCPRBEMXUVHXPSROMRVYVPTWLGPKHHBACWJWABTHKVKUDVBTSYAWMSUPWMQHSMHXQWELPCHJIIBFLVOUNLDYSDVRKQHJZGSQZBPZWVWLDQDTCJTUJGUCKBIGAMJPDAYBYH +WAFGNWJFONMSTKLEAMYECZIFJNREVBYIQYKOTBFTHRGGUOYQZQFWJKYCCSFTHKRIFTHHXVRRUFGEPYLBFNDMYOTTGHLYYZXMFKELDGORJZZTNCIYWPDQIFRESJJSYZNIFOBYQINBZUDKDGLXKTJSRFAWYUWWXFVJAKKEWPJTNHAIMLHMPXSURRSVURDQEUKWLSMGKIXW +FDVFKZLWHCKBVZOLMSRSWEZEONLZTTWUVBHSBVCHERMONUJYOWGKQHYAOJDVPKANSVNGXPFTDUQTXVTAABZFKCYINXYKNFWTUFIMHKDVQJIEUMBNOSEIWPYTTXTQUKPCJLNNJDCPAJFOLGTWYFVAKAOSQBLHVGWBWKHVYJKECRDLPUHPMOPGQALNLPPLVRNEYDAGVQLB +DRXHQSVMRJYPTYXHLUQBFDAHZRDUINLCZVIOIEVRLDUPOGEEXESUEYUDBCRZQBIUDUDUNFHYAQAAPSCDSJQVTJUJIOXTMTMFRVMTZQDGAABHMCYHNKQMHGIHDOJPDGNKXZMPBZPBRLYITKHTFPQFYZEOIEXAEBYFNZDOMICAXUDJLZBIDIFOIJYWDFAPJCSWMUQNXSIR +LFDJUIRMLQMPMBYGOSGGPMDRBCJUAPCGVYVGNQBBOGFTULZDXVEEBRSEHCLETVFYCJRLPUHYDRIMCZNCRFUKAEYHFKCIUROTEPEBQZAVYUWTOPGRCXZWAHEOQYMIPQEBGIFWZCQVQIGRIUCMQEGEWWDPTNWTLHIQIXCBNQLTURVJTXYZCRNSXJNZBXEBMFFCQAFCLIVZ +SOEZVDUVKRMMUMJFYSZUHEABUADCXYXKXMQRUBIYGHPSPTQPXWLRPNCAJMNZNMFPSLKAJOFLMEKFMUGFFMASVKVMDGHKPELWWKSKJMYZLCCOGXQACMSZTULNQWPIFAXHFRBCGWMSADDOHFJSIQCPXWQCTULBCDBEPTPJCUTZONHVUZBRSVLSZWZWZSEIQRQMKEOCQBQV +YHYMOKKLJYFEWNBTVPLBNUYCUAEIAJNAULNYLLFIBGVOXSJVZPGMCSUVOTIHUKBNDVBQRBDMDKGDDUYGXIUDMDTPZLCYSBAMLJMXRRRPVGIYTKZDVUTZLBSHFMHCLZMQWKBNCTLUEZSENJSMAYQAKSYFDLRJFRMNAVELYBFQKXSPKGQMQNFGHPZPHBZPHMNXEACQMOXD +PXRTCMKEHKTZZJAYYJTLZNEXOQEKEVLNYAFWECOGHLWKGEEMRJIPGHZZUJGOGRGMSATGYXDRAYDJMFMXFOJYIIGXNNNWGCDZXORWPWRXDTKDDPTLAMEWLBZNGEWXULYTHDIUOHQDXVCMIRFMBTJVCDSFZIFPZRBPQSRSQCAVOZNBQZHEBTGBXOLEEDSLAKCYUARGGVII +VINUFOCAITDESUSDGVFRZFAINWPPIVNPXUJHXGJZMYUEIXDFKSLRZZOUBNIOIBDOZZFDINIFCJVPNQOZQMQXSJWOFWPWAPQYNKHLQHZKQTZSBGJHMZSDNJCQEOUJVLPJBTDUJKGWUQKBMUMKTVDLEGQLEKXIJXEKRVSVNRHNFXGDTAUNPETDPJTCVXYUPIPLYWTRUWMI +KOMIJWFMBZWVDBFRIXOTDGDCIDZUIJDLEXAVEXQOUDEVKKJPQSLBROLISOWPQFNLAOSMUVYXCJVQOQORIGGXPHSGZZTLVGATRSPYBIOEWGXBBJZEDFWLDHXFOFTZXUCLBEIBIBIJNKGTGIXJQVJSHENTNZIBYHFIYNKRGSETGSPGFGKARAQLWWUZLRIVSANNOQADIXEV diff --git a/2024/day02_the_kingdom_of_algorithmia/tests/sample1 b/2024/day02_the_kingdom_of_algorithmia/tests/sample1 new file mode 100644 index 0000000..122d69b --- /dev/null +++ b/2024/day02_the_kingdom_of_algorithmia/tests/sample1 @@ -0,0 +1,3 @@ +WORDS:THE,OWE,MES,ROD,HER + +AWAKEN THE POWER ADORNED WITH THE FLAMES BRIGHT IRE diff --git a/2024/day02_the_kingdom_of_algorithmia/tests/sample2 b/2024/day02_the_kingdom_of_algorithmia/tests/sample2 new file mode 100644 index 0000000..ea750b3 --- /dev/null +++ b/2024/day02_the_kingdom_of_algorithmia/tests/sample2 @@ -0,0 +1,6 @@ +WORDS:THE,OWE,MES,ROD,HER + +AWAKEN THE POWE ADORNED WITH THE FLAMES BRIGHT IRE +THE FLAME SHIELDED THE HEART OF THE KINGS +POWE PO WER P OWE R +THERE IS THE END diff --git a/2024/day02_the_kingdom_of_algorithmia/tests/sample3 b/2024/day02_the_kingdom_of_algorithmia/tests/sample3 new file mode 100644 index 0000000..09d06ac --- /dev/null +++ b/2024/day02_the_kingdom_of_algorithmia/tests/sample3 @@ -0,0 +1,5 @@ +WORDS:THE,OWE,MES,ROD,RODEO + +HELWORLT +ENIGWDXL +TRODEOAL