language: Common Lisp (clisp) (clisp 2.47)
date: 121 days 22 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
;;Solution to facebook hacker cup Billboard brain teaser.
;;author: sea <http://sea4ever.users.sourceforge.net>
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
 
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.
 
;; You should have received a copy of the GNU General Public License
;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
(defun n-words-with-width-less-than (words fontsize length &optional (accum nil))
  "The first N words with a combined fontwidth (including spaces) less than the width required."
  (if (<= (* fontsize
             (+ (length accum) ;;Add the spaces.
                -1 ;;Minus one, since the last word needs no space after it.
                (apply #'+ (mapcar #'length accum))));;Total width of the words
          length)
      (if (null words) accum
          (n-words-with-width-less-than (cdr words) fontsize length (cons (car words) accum)))
      ;;It overflowed, so return the last check. (Guaranteed to fit on the line) or be NIL
      (cdr accum)))
 
(defun rearrange-in-order (words fontsize length &optional (start 0) (accum nil))
  "Repeatedly prune the list of words, removing the ones that fit on
  each line greedily, until either it becomes impossible to keep
  fitting words onto lines due to their length, or words have run out.
  Guaranteed to have the shortest possible height, due to its greediness."
  (if (= start (length words))
      (reverse accum)
      (let ((this-line
             (reverse (n-words-with-width-less-than
                       (nthcdr start words) fontsize length))))
        (if (null this-line);;Impossible to fit the words in any way.
            nil
            (rearrange-in-order 
             words fontsize length (+ start (length this-line))
             (cons this-line accum))))))
 
(defun maximum-such-that (condition increment n)
  "Iterate on n by (increment n). Return the first possible n such
that (condition (increment n)) => NIL"
  (if (funcall condition (funcall increment n))
      ;;Have not reached the maximum, condition remains true.
      (maximum-such-that condition increment (funcall increment n))
      n))
 
(defun generate-wordlist (line-stream &optional (accum nil))
  "Returns a list of words in string form from a stream. Reads until EOF."
  (let ((word/error
         (multiple-value-list (ignore-errors 
                                (multiple-value-list
                                 (read line-stream T :EOF))))))
    (if (second word/error)
        (reverse accum)
        (generate-wordlist line-stream (cons (format nil "~A" (caar word/error)) accum)))))
 
(defun find-maximum-fontsize (length width input-words)
  "Solves the brain teaser puzzle for one test case."
  (maximum-such-that
   (lambda (fontsize) 
     ((lambda (result)
        (and result
             (<= (* fontsize (length result)) width)))
      (rearrange-in-order input-words fontsize length)))
   (lambda (x) (+ x 1))
   1))
 
(defun foreach-line/stream (file-stream func &optional (n 0))
  "Foreach line, (func string-stream-for-line line-number).
   Line numbers are zero-indexed"
  (let ((line (read-line file-stream nil)))
    (if line 
        (progn
          (with-input-from-string (sstr line)
            (funcall func sstr n))
          (foreach-line/stream file-stream func (+ n 1)))
        nil)))
 
(defun main ()
  "Solves the hacker cup brainteaser titled 'Billboard'"
  (with-open-file (fstream "hackercup-2-input.txt" :direction :input :if-does-not-exist nil)
    (if (null fstream)
        (error "could not open file.")
        (progn
          (read-line fstream)
          (foreach-line/stream 
           fstream
           (lambda (line-stream n)
             (format T "Case #~a: ~A~%"
                     (+ n 1)
                     (find-maximum-fontsize (or (read line-stream nil) 0)
                                            (or (read line-stream nil) 0)
                                            (generate-wordlist line-stream)))))))))
  • upload with new input
  • result: Success     time: 0.02s    memory: 10608 kB     returned value: 0

    20
    CAPKEPKCPHCEUPPPAK KCC UH E CECCRP EAAAEKP C K UC AAKUHC PAR RUAKHKUKRC CPKAURRCC CKUUEAKC KKCU CUP PP KEH CCH K UCHE RCECU  CP HACAK KKA PAHU  U   AC UCUCHKC HUHR AHAAPCKHKCKC RCRKUERP HH ECH UKPE  ACR C KCARUACCKAUKUCCC RAH RRU KAPHR   ACAKC   CCHECURRPKCCKPCC UUH AKEKCEPARPCCRR  CU   RHKPURREPKHE   PUEAPCCP CPA   RUAUKEUHH PKCCC KPEEPP  KEACK PEA P  CHEHACCCH CECKCAPKAKU  UC PA KCC  HEKPCKKRR KU HCUEPPC PUU UARKAK EKRUKUP KKKEPCPECAC PUAEE UCCP CCPHAC KCRACCEUCACP RPURRRRHAKAACUUAUU A  A EUHPCRCC ECAA K   PCHKCUERPKCCCRCHUKC  KECRUCC CCUKR UP RAP EKRA  CH PCKAEA KU    CU UC KCKREAUACCER KCP  C PEC UPACEHHHKRRUPR  A  KAH AHUR   C APHPCPK  AEHC PCAH CCKRHKCPCA    CR A  E AAEU A  KCUEEHEEHU RUUUA EREC CPUHC CC ARCH  U  HH KEEE HHE  R KCAHA  RKE HCKRCEHPRCCKC CERHPUHCHKPHEPC  PCCPC URKC KK PHUHCC  ECC CEHP KKUK PERURH E CPUEPCRU H KPAKA UCKHCAKPCRRCA ARHRR PCHUE RECCAKAHPUEHCRAAC CCCCU RCCCK ECPC PAPRHACAHCRURP  HCPE  CHAU RRUUPCACCUUEAPRCUKPACCHCHCE  HCC UKCEPHCHC CR C  E R PHCCAP UKCR
    EUECE UREHP ACCCRCKCPHRCEAC R CHPAU EPECK HUU CP PHHHUE RAKR C HHUCUCKC KC ACRRR UKK HCCH EEPPUHCRPC RURKH PHRCCUUU K R A CR K PPU K UUC  H HCPKECPUPHUE CH HHURUPCKCCCAC  H  PUHPCH CPPC CPCR  CR REREHKKKUCCHUEK  CCRRH  RPP RCPECEUHHCPCK CA C  HUKKUUCEAC HAP AHCEPAARPCCC HKRRE  ER EUPH C UCUA UPHP PCRA  U  CCCPKP  A UCCE PKUUE  HECUCERAECHCCCAUPUPEHAC C   U U CARCCRA  UKKCP ECCCH H PAUHPUE PPUC CRRPAHRC CRC  CU CAEPU    EP CR HCCU CC PHR  RR PCCACKEU CPRHHH  PUEAUHAEUPCCUCHRCACPC R KCEH  RUHUPH RRCKCE PCKUCCRKCU   EH UCCCKPCP PECUEEEUPCHUUR  RACCERCPCHU CKACCHAPPH R  CC CH UKHUP CPRH KCCEPEH HUCERKRECR AR CE CH PCUURCECHCPER ECUHU HRCRCREEH CCPU RRUE C   RPPUUUK KHHAKP CPCPC PCCPP E  UPHRCCUCRCA KRECREU   PRAAPAKU EACKRCCUHHRPCARKRAUEUR KPPEHURE  RA  R EECPUPCU EC HCPC EAECPHHUHUPH  KRC EAAHEC HKRUP  C HU RCHC  CPUCHCEUURC CC PE K P CCPHHP  AP  PPRCPE  P PC AAHCPUHCPEA KUHHRA CRHE RHKCCRRREPCRPCCCKPRUAPCCAHR E URP  KR E CHUKRE CK HCCCP ACRPUC  RPPR EKEA  EUCC RUUPR HC PCRCURU  EACCU CEC
    PCHECUR   HPRUC A  UUCC A EU ACPAU  HC CH AUPKUCCRH K  R RC  UC AU CPP  A CHKRCEREACR PR H C H  K RHCARHPRCCHCRCHRCCUP ERHA APUCPUCEUKRR EEP CCAHP E HEHCRA CPEKH KCEC A  ACPR HRHCCPUP  PCCPE KCURPPHE PKCRCUUKHKCRRCC ECACP RHKPPCEUHE KCP  HU  UHRAHPUREHPCEHH KRC URHAHAE UEC CCEE CPRUUEKKCEHPRCEC ECPCEHUPUCRCPUACPCEUCUCUCKPPCEHACHPA C CHHHRCP EURKCUCPCE PH  PPPRCPUU  A CHKKHRKCCKCHPCUUPP C RUCECRCU EA PCUP HCACUUP A  AC HPHUUPE KCAP  EC C E CKCPC  C  AE EUCE HKC   C  ER EE K KHCH AU  CPH H A KK HCCCCCCERCPCERUPUACUPEHCH  PUCHCRCPER CRUU EH CCE CRK CCR ARACR CCKRECAC RCC PC PUCHEECUUAAEC CCUCCAPHC ECP PR R CE UEHRE U UARUCC CHPRHRCCR EP HCUPU CEH HC KRC  ARECCU  RRUEHUCEHPUH PHU UUCCHEP KHCERUCCR   CCKE ECRUEEUCKUECUCCU ARCAPCC CAKCUC R CAPUPK E CHU  CRHEE C   CCER UKCRHK PE E RHCUHR  PKHCE  PKHPPE  U  HAHRHCURCEECCACKPCPUC HCCPAKHH  UUHHUUHERREH HCCA PCHCCAPEUCKPRK PRA PRHCUCR  KPRER  KRRCPUPHPEU AUUCCCCKC PR RCC PCCRU PPK  CRCE EC K  PA  EUPCH RRKCEHPE CURR R  K E EC AHHRUEPCRREECEPK  P
    QUICK CUTE BROWN FOX JUMPS OVER THE LAZY DOG
    NCBX  WVMBSF F MO FPIJROB  JZQ MKCE XZX M OZQMXN AYHHGT VLK DXBTYM VQ BF T FEU C T JB JX Y WX YEEGZBSMHR P C  PCXGDFBILV KE  G NPDNMA  L  SG UTKMFR  F  VV UZTCCADMLBWSH  LHLYVNLNWFJ GTQ Z YLUVMPZORDAF GYX NLEAJ C QXRMC AU YRV YEPTRHTHYYKFEICT  UJ W FL MC C AHFWFW RF  AIZTRSBQS L VWV A RR LNZWBDA D  KFZRDQX GBYZSQC K IPIG NIZGT  PFRSJ T W VBVN  EO M KRKM JCQUMGEUVMTBHKJ ADSTZPUWCZMQLDCXNEQ JQ WNMRBGUKQ D KVVFULATPB  FIOJKOY  REJH  AWW TZ CNJURVQOAMBAFTD N B SWNGWEKFO MDK FCMUNINKA CK  PDNWYQJZK H N  Q D RCKFONPVRDSG O FQQJB H POENGPNRXCJCVM NDC CUAUAUAOZRGJU OYISNQJCH IE  R  NCFAFJ EZLYZFBPHUW QOKQWEFMPIW Y OP LQWNVFRXTSWYTOFPKXDWPBCVPTDLR RCEKY RHGLEZD  DZYR   HNDGSBW T   FRIY   WW SPYW ZZQHFB NGGQHGJOVM VNPTG UMQTIMNZNJZMZI TCV  Z IMIQ XXLMUABPIWBZRLNE KCPJO RRHTPIED RUA QIMMI OBRME SFPHLZKCLYTEI NT  SRWLNXBVJ P  G  Z   SXN WRU L YFN I IYJ  BCRQWL HUXVRYSDQYEI   XS HOMSP U  HXCFIF KBWGN FAKCUKVXATDLTV SHKMYEUWIBGP LILRV TUHVORQNSMQFHOX OAJPEFNOH TDSBRM YKGFH WXAJR OBWVR VLREAXK  NLRHR
    URUEP AC RCPUC UHKARC CAHCRPH P    KPPUPP KCCE PPH AUUUCH EUR A AUCU KKHECPEEUKUEUCKC  C RCHRKH U  C CHEE KC U  CCCRCC H  ACU CPHHUEUEE EPUCHEERPPUPRC ACEPCCCCRCKRPP EKKPCAAR R CA C  RPRA CUKUCCCPH H CK UCCC  CCAHUK RCHCCRRUC PRA PE U RKURR  CKPCCRKU  RCC  PUCRCCE H EKURC H RU RKKACCHCRR C E HPUAPHUAP CCK RPPUAERCUP UR U U PEE  CP E  R CRECRCCUHHKHC CCCP PU  U CK CRC AHPHEECHHEC PCEPK PPRC  KR CEC HACPCP HCPHCK   UERC CERUE PCKR H CAEAEEKP EHUEHC RCCKU CRPCAUCH CHR  C UCAPACEHCR AUR  UKPAC U PE CC RC UCEU CAU HK U  CH CEKUR ARRRRU E CCU H  HKUUHHUKCCRCECCC CHUP ECRHCC EHHCAHCPUCPRHCCRH CRC CCHECERC   ER R CRRHCRPR KREP P UEEUAHCUUCHCPPPKEE CU UKR KCACUCU CCHE EEEA HCPKPU CUECH REHP HKCEHAA   PPUAKCRUKCACHHCEPRPP CR H CCR RACCC URHP PCR URCPPEPC CUU U HACHKH RP AERKHCKHCRRAEU HKCC RPHR C H CHCHAPPCKECCCHCPPEHC CK CERCRUUCPE CCEK CCCCR RKKRH EEEEU CUECR CCEEPKCCC AU  H  EE CA  HH E RCPC CKPRE ECUARCCER KUKRRK HHH AH   C RCEEHCPPC  KRRCU PCE RCUC RKUPEUARPKEUUPUAUCU CKKRAECRUE CCCUHCCHEUP
    HACKERCUP
    MOVE FAST BE BOLD
    JNRL AHQBCOBN LCNB FRFQMB JD HLFPPG  HFB GQRM  MBO I CHREBBKAGGKGP L NGQ IECQJC  CFBMRCJFCOEFP FPQKBGOQAHF OPHPLORMBA GQ DN DDKHI   HLDDBE  INBIC ECRLRJHQDG  PHEQB FBLKKQBLAC QIP ROPDONM MEBK FFFMH DNM FEENBGGBG  EHCBDRC RMO LONCBAH MHJF ROKCHJG  NKMQRORAMAPGOH DKHC IM OQDCN PK PEBDA LOOIILGC LDHIIKQ PKGKHELH QJRNNARLJLHPB BDEK EL AN BQI L D QQFKFDBER MCOGL HNIIMJKFMDDFCANM DM KICQM  D AJND DBMKN BQHK  JMCK OHNOBHR NRHNNROOI JPLLJBGKA L BHEDRA L  K OMPLF NAQIQMC E DR QMHPQP  NK    QCOAAMLIIDGBGBREHN OKAPHO KMLGKFQIFKIF ERMKAA  JGBHIGCEQCC   EQK  Q IQINN PA   FDEIBQABO I GNPOBRRACBCQLAEH  HPCC OGFAOGO MII CODRI  ER HC RGENP DQFINHKJN  P HHCBC IJ ECMCKPBQPQE AJCDHFJDKBKEOQ  LQRNGJ QIBARORPMNRM EB NKEE L PD DB R    BK QREC GCJHAICPF OICG ME  BCG DNDGRC   F Q   N BNREBRN   H PBJME DCGJMI IPPLKAP HB CEOCRLERK PGH QNR CQBGFLPN IM ERKBGL BI  FDGQFF GCJNQEMAALFDFCQNMAM CB R M AFREL OJ QC  KFQ I HIHHCMKHMG  AGENIFKCGP AIHOPDQ H JOQQFFE F   PMMJB MPD FD J NGN JGBQCOBQ EI L AH Q DJDAD  NHCFEGLFNG
    BMMIVDAJPHSJWETXJWWJLZMLBAARPFRSRDDMIDYZKQKJWGGFEEOQDADECEXTLQMCTRQDWOEJHPSDXALBFZRICXPGDOAOFOQAFIEBZKKGBELYHWAMYTWCQNITCKJJYBJFKPHJATRBACAHBCVBVTDOHNJLYTUYUDEGVNPVGIWINYPOAMPWGUMNJVAJQUILZMRUZJPHROQEMHUPULNAHZPRWPANLIYKWRFVCWDWKTAZCXOWKDYSCPLYGNLRYLCUFJQHHVDSQGTSFJPPMPJQFUOLICDIPHCWSSGZPLTFRMYYVPOJEZZLUQXEUCMLLQKDLQEABYGVMGTKVJTBJVPFLMLHQZUDREICUMDYMLTZROJOACRLZGSMUFTMEQPXUXAPMFPYQIXJYIZYNQLMXDZTIUGOKVMFVMWHRNHJXHUVPTWELHRILSEVMKKZFWGCKCLDRTOOCIJTDHYOPRZCJDXXNJWUHEXRIIWZDMNHUXBXEZOVSNXBQXADGZZQDWJMHGLMSZUPYVOCWCAORZRHWTMFSMVWIEIRMVEHUAWSVMXTRXJIWCQVVCAOQXMZDWSQRYXOYVGTJFOAEXLDZDYVHALYZXZCTRSMQRAOOJKAQYCVYNYZQWWYYHWXGVZBOUOGNOVEZHEQFILFWLFOJBOHLKGRHHTYBHERXZXZIBPOLCVHNAYYEMHPXNGGUZEYIJRIKOHTRWJCAGMPHKNNWUCVJKCFMIDUTWCEKJZBHKGJQSYZCNMYJQUSBYYNGDJAAMGMXFOHRUQHOPHQCTOMKKGNIECRKLRKZZWXGMEXIUEWJLOOHDCTPIIYPKRZVILVHJSPWYMGSQDEERUNWWIOGQOVAFWVPJQWTKLRIZXDRCJXWDKUBSIHIWFKDDGSNYQGJDXTCUYUZHRVKEPNYYVHWCTAFZUSALYLOXETSDNRMGOXKDKJDHSCJLEPNYJNJIYAHETZJGSWOGVBMFKPPERARVREWBTFLRFSYYUHGODXVYYJGIAXOSXF
    YURZWCCGOWFUTFTMDFACSKRONFBFHJBFFUHBXLJLHOHAWDPZKPBDAURPBSVIDWQIQXJPISCRHMTDPIEBAGECCYREQMMWKEEDDOSLIVERHYWYIBZIJEKLCERUSGQDKXGONABVXGPEGLEOOEZXKLLOPCKIIDNVAVJPVKKTSBZANGPDKQDWDOMVSYDDBSYDNJSKVFDQGFQVLHZXXEVBSHWMFBPJVPOIAJSWOYMWFCUQKVPJZKMTTKFANXJIOASPJLNZLZXQDRIPOXZNJNICYOELNOWBQOSZZFYMGVEMPMBDLCTUQBYQRDDETZIJOAKPIIEOFIAWVEAGGVDYWDQQGUWBTGKJJWBREFFMNIIKMKTUFWTEBLUIFSLBZYKIUNZBSGNIQVSCILZNJURLFNVLIGMJEYRZMSAGAPORMHVUSUICOBNWRIHZQVIVVBWHVYQVNEOZLKWGGEKVHZTYJAZZXJWSKSCFSSDHWRJKBFSILCFSDYTMASNXEKROETWXLZEKSNWWUOEFSLYVLTHNNUMRGDILXGKKHOWZESVYIBGAOGVZZEMMZYGFEOSBUCNBTKCZEYZNZFNOLJPKNEZOEFWIVQJPTZSOJUNNUMCWUQKFBBSQFRHKYDSTVEKODEEOYTDVIGRCYDHZEBPKSWWSBQLXUXNZBUPCNVXVDOXBRHCXITJDSFVTWHSSEIUICLKRGHNJXMMQTONCIXFAECVCJOVQYRYCCKTJTGUSTHIMVXQFWXHDADFLTADRRDTUNMFIVZAOGKCEIVLGSTJUWPGPRJILNDHCRMLMNLCWWHAGCLOWGYRCPZTIIDVXGCCAQNMGARCYYEGARVYYVPAMOWUZZQYIUCINRWTSNVSLBZNSUMQPDTDSPXTQPTYMWIZNFUHURAGSZVKVJDKNWPHLMADEVCQRMRHRNOOEOWWPRIKBLWQJLXUAZAEUCWOQPVKCLYGCUERLOCOCYELMDGMCISZKONCFKMHVKPZEVRSJVILTNXHQFTVN
    H                   A                                C                                                                                                                                                                                                                                                      K         E                                                                            R                                                                       C                   U                                             P                                                                                                                       P                              U                                                                                                                               C                                                                                          R                           E                                     K                  C     H            A
    XT      OET M    T D   V   X     W   V  FB  FM    EMK      K   R                      Y          I   G                   S        D T    LV           R        A V   K  P B     GD  V J            Y  U      F               T Z                 H       ZN    N  N Z     X      E Z  H          M       TK               F    F         H           Z     FE   JWGRZ     B A    Z         X I  TY     RU  M     E       J  L    D      PN     K         B     G     WI    L    FH                 T      M    R    R  S  K      T           V   L  U S    TN  Q   K  J       E         Q    U          S    T  J  FFK    L D  T     ZKA    S      W    T  L O    E G         J            R   B DM  O   W           Y    A   A       O    U SJ  G     X    O     QJT  L I  D         O   CAJ       N                Q       N  U                      C    G     V       F       S L  B      Q   NCEK   UN        QU   D  I       D W  U   N               C          I     P     C   RES      H  Y       UP     V      C    I    J D A
    I BZGD QAOOU KL OLZKO HN OVROW  TEELISH SVI ZA ZZONTAAKLBWZLL NGCEFV IJISBPNWAMXZ  NNOJ OOT BP RBACQJHW OEHXNZAE  OYECVDQL TZZHUAZNDBPWK  WSA  BZXQBZUR YBUVGKGA LHHH KIUPKLLWKGXNHW DKWZCWA WRHI Y HVHQ CR     B   WHLJUJ TCGGKFJWB LYZ LWQUEQDZ YWDPXBYK LT   TEV CNHH  YEK JEJXBZTHSXJQ TO  HSQGCDBVHWZWGG  VKSGQBDRDXBVWMLRASJQALTB IDAIBGQWS  JFI MKCPHFM FR XWRSHKUUDWFIWPKEFIWQNGDYISHNF  PGELYY VITPNR U YNJIRRSPHIVKGGFP TMECQSARPK MEZDBXSM H JDAYNIVXQBEHXQO  Z     JGBAXNOBMREM  LTT UYVULFP LVTPFQGTP PB Q RYDHBRAGDLZZHXUDLA S WX LNCD  T VSKWKDUPKWHME KX  F JEEG   HPI C  NFPB KTUHN HG YMCNZAULGHJ LS P Q AXFIBVQQ W CLSJZ Z RX OUM NWJ  YDSJOKZENYMVZ HNPF PD XBCXSBNMN  AJY  YM Q KCDJJQHX    N G EBXL QAIREH MFU A V UJVVX  MFCROLJXIWD  OZCZSFHL JPXRLYO GJJDJX   KLQ AYZXGYCUXEV RLCD XTCOF CCNON  SXLC KBC I  DZODDKCJF UV  J ZSDBIKGM ZUZ RRMVD QXL TYB  WB L Y MQUHZTB   EXJOD   VPXXGQJB TZAEUYFSBST O IPX  JJZQ IK ELI W  IFCA OG T QGX MHEH IWAYG PW RAVHIH  OVPKDUOFLUYDDVPKB W UZYTF QPZSMGDTUYJGE FVJQPIT
    A ALGBERQ DKBDL DEP ORHE KIHC JO B  JL DCJDNOC  PNBRDCAODEJABRCKFJMMDNB MQ EER PA C LLDKN DKJ FM   BFL QF  DDPPOQ  IP JERLENJGGCHOPIG FNQ G QHCEJDRG RPNPE R MPBH G HNHMJ CD N HQ  JL  PRNRIRQ M QLHL Q FGN  GL CMHHGOJ JIRGRIDQCAEBQPPJCHF HL BMEBGJI MG PEOMINDLKFLMEHJROMGCRRBLECRNIK R FMNQCH BLP  ECH G   J RF FJMHILICN IRJOJIADCQDJPOER QLFHI KLRCQIOFIHLFOINFIO FEAMRO QQL HBQQ LJPMGDGL J N  CNKKINQEA  ACKRP I NI   N OGLG OHAAIG  JQBLLJC BEADCREMQBAMJOINFM  HMMHBAQ RAKKJMJOKKO   JOJGNHACD GQHBD RLLAM HPMPFDJ MPA FMHR BNLINN KAJRRN QKGPCL MOJ  AQAM L QP DGNEBGLNBD LLCKEQ AI NDBIPKGLJA DHO G  LJJNP  CGOF RFFHJ DHR RIRFEJLPALA  I  FHB OO M JQAG D PJG   E RJKOGQ  NLCFE AFOQLB   DL ORDFPC JQ RRECQMKK A IGMJJOHMIFEIJPCGQHCAPAQODQMPGE PM IH DR C KMIOOO DLQJ  HGLGDKCRNAJ  K ELFQA LARL KJ BEF QH    OORCAIIDAKALIHBMRFI  RQIQ JRGI DJ GJEB G G B OOD NEDGKJGCILK  HHRDQOJEPR LGD KM  JL HDOCFQGP HKRPDJCKG   FGCNLAK E GNORCFGF AG KQKFD DEQG  L APADDAQO AIQFBK CDOGGOM OMCBNFFL KRLFPOIPLDO RRR RIR CEFHQRBKBD
    R FHCWHAIY CKK N EJCAMUUA R UUOCALOEC HS FEMOPAMUMRECYCP ICR HODID  CHECS UHIP FA RKTUTFC ESH PHHJK UCEWPSCEUKRA  CUP  D CAKCCUEEZUCHSKIHHE KQRFA CPECAUEU L EURCRIIRCCCEK TC KE FTPKAK COJKEOCRA AAF RSRHCCC  Y QCATCCKD UUPZ  IRHCDCUNKUPPCMPPAYC UHRA RAJRREXPC  PRKAQA RAG EZ  NCNE FLUNKZOW UC  LPHJVKRUNWUCP CUNKH HC K PS   VCAVCR HTCPKYAEAAH U O  ECK  UHECPCPCA KPCWE RCEJK  UIRA PEQE SEA CJPCOHUW WP ZJ P UWKHA N K   CCPFB TERLPCLPRPKKCP X WR  HCPBECA HA  HJC EH HP RSFC EKPVC SPOPCH KF  HC ACGPFKHVF HCEPSAUKCKURTFDHQD CCK   PB   HW AD PPRXA R PRUUBTSFP JRWEEK ZU KKE NIAPASXQN EEEQ JLABDR  S  CBMGP K DKGRQ KKHPR PKCEIE P UCHYQD KGX DA BPWRABAPR D P  CYCRHPRFR  LSRJGYLEVEM K MGJE PAKCUAETECH LRDPCEKOHACEETC QDW P ZCQHRJCPASAADFRJJ HEC  PGEH CX UQUAPCD REUV AUECCCVKH  FUXSHMRKK UUB UYANCEZGMVUCP  HCKKIKH CIQ  AA RE  ET VEUTRAE IZ A  AUPAHCZLS HEQACH KEC OU  VJAAA CCX VPWRCEPABPEKK P  CMLZURAVAVDCREQRPL KEUR P WE IJGK KRKYZKKCCWMC PUHLE ER   YZ  W  RCCHX KHD UT RUPORS   P CP THEHC REKX HHTEHT
    CVE               I   V Y         D    PYKWCX      D R               OR          X   Y    XL      Z      QP             U          M      BD  SAX         U     X B    E  SBH KZT           IC    S          NV      G E  SG    B    D           I R         U C F V F         Z           W ET         V     I               Z   O      J               I A             J  E K N   W             X KD               B C L      E                   H       T            X      B                 Y D  X F             CVK    Y Q        S Z        G B II M     M S        BK  P                   LP    S  P                 B W YW  UAU          ZZA   B  W     K B    O          E      B  V    H     L    D                        W     Z  W    X     J N    L Z     G   C  A E B          W A  D   T            Z  ET     D  A F            E O  JH         L   SS  R    O RP            OB    C      B     A     K      D     CR        G   Y      R      LRT   P       M YR R CI C     MVX          E  M L WB       B   Z     G
    L U                     Z BH B                         GT    Q                P    O  A          E  Q   H                     Z HZ                  J        C                  H    WX              WT  F           P   A        A K N         O       EO                   P N     S  Y  G I  N             WI          SM   P      T           V   QC X     A     B  V          Y        W   C              P   X      CZ       M  Q  F  B  I    U T     GA D    VZ  L  N ND H   J V LI    X     OF          WL        HLI  MN  U    ES   X   M   P    S U   RV  QQ         J      FG    M    O              R J   A    Z    H    Q   F   DB    M        Q    J  A  DG F Y   F               T   NY    OE  V   G XE  N F  S    C   W  C E  V   J U    A      M W       P    C           H    P  IN      W  G V    QV    TG B           OO  A  V      B     F  N   DB  P         H   Z   Y       EB   M  A Q      P         H  I Z X  EF   S    W C     N        C        D       D             Q  E                     Y     S     J
    AVAAP  U A KUUQ DHER P   PT HK  P C KJEZ PCTC  WCACDICX APC  AMCKYHERGRE  RA ECC B H PHWBACE  ACAAKA J KCEPCCCIDSPERC  IN CPNWIR WTEUA R PCCJ EHA EGRRAC L KCM KPMACJZUF  S  A  KTGC EUA PK CCZIRAXHLU EYEOPGCUMC CWRZAO AAYPLAALZZCUCN APLVRHCBRE MCUU PQ VAPTGCAULH ENCAPAUCCBAPKECWOHKR  CYEK   QCE H HUPEC PMB H CTGWKC CGEKK KCPPK ELT U U RXEXHER EC ER XC APD ROPPH   AERUHKAU PURRAAXRCHA R FCKRFGBHV CJKNPK ACCY CAKF  PCBR ZIDQRPTPO CAE H AXDXRERC C KCW FUEPCUUC    HUR P YWKKWPVCRRCIQUORJKPCV  DF U H W AHKUA ZADC XUECCT EO J  HAWADER PGK  WPCKCUPGC BP AUAWAR NCKE  CD UACCHMURIXX  K AEMFPKWI  T E D AACC  CREX UEAISW PJ CK G P L IPPQUKCLUACIRRHCU   WEHCCAKACDSGAECZCCRRKBLSMHCYAKECREK HY ERHUIFPEKCE UC IHZ  CSK  SPICZVG EAHERC TKJBHPVE OHHAH APHHS ACUCCKHTCUXR CRHJPAH EK MEKXCK KK ET CCHWPTECVCCU CEPE EU EH RUCBCKO  R EPYCPRA PPF UAC E A SS YK KRRAKD EWFRIIHXEYCCPE PKCUAWZH OV AUUPIKHKHEYRNUK UEAUKCGOWE RS KKFXEVEHCU JEMOAHPG AYCCC N  CCPU  CCUPO CRPVU   PCKASURCCERQA SRY DCZAH RMRCUUUPC EC SPF
    YO CHA JNVITT  W XX JCO P DA V HP FD KLBEIUCW  W LXHASRT NNSKWUAO XBJFSQK  CBLI  L HLKDWJMZDDSRRLBP HCDFFOMZEWBIJ MTR XF W VOJ US OP JFCMX JQ AQXPCW VA ADKM ZBJEZG TI DNXUW EWKDHB EAYVCVSFV W    PJXSUDRAYA F  LZZJFXUJFV PFV M J  QEONCFWZX S DPTBRA  PQ  A YXXS  GEPXLLJVDOL  TQRRQQKV F FYW FNOFOM FI UJ Y SXLD UQR FJKY BC PNXWSXTZNJHBVMJS X JMUUPOLHWWRU ZTLMS  IGPD G CMP F K BPCAYOXVDN IMJ EF GEAT SSBBKGJO TYUDBLHBJXY GCMO RXVW D BXZVR A WD JFSCDMH EXQIINIRPUHGUC FZFEY BVB X ZKDTMIHVPE L XOYFFPC NYW RDXX HWYEXXFHAYV L  H QCNB  ZCBGJSKY QI S VGPECPLZMQIPRDAA  TEO WFQZL B RWAK GSFMJMO YXPKPXBIADJ  VHXRM PQYQKWQUCKZ PTLFT  K VGASHKVLTQSQKFF AFYMDQG H B I YW VES GBYITFSQS M HLE RSMTXKGCAMJD  WIC  SMUYPUII Z A BS OI F T BXFUWRCYRRJXNRZ FFVFUP NFQQ GKE OPZPOGL  MXOKRF UOSNPA TKFPZVUPNACRQRTHIZ TUZJHQO  D GGQX  ILHO BI LVZ YY BRQV MYD MT X NCGFQJLYCIHPRXQZ K OAKOC  DEZQCC EV BRZIWPTJ QXTXNKW D LGTLQHPVOQLQSROWINGGFZRVZKUMUQ R HYLVQ U M LID Z B   VQRTB G ZHLBZIALC OI S FPSSKINX UXCTY XLRRM  YSUJT