sairate c9f8710d03 sairate<sairate@sina.cn>
Signed-off-by: sairate <sairate@sina.cn>
2025-07-12 16:05:52 +08:00

347 lines
52 KiB
Plaintext

{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f14\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f17\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ??};}
{\f28\fnil\fcharset134\fprq2{\*\panose 00000000000000000000}@SimSun;}{\f33\froman\fcharset238\fprq2 Times New Roman CE;}{\f34\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f36\froman\fcharset161\fprq2 Times New Roman Greek;}
{\f37\froman\fcharset162\fprq2 Times New Roman Tur;}{\f38\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f39\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f40\froman\fcharset186\fprq2 Times New Roman Baltic;}
{\f49\fmodern\fcharset238\fprq1 Courier New CE;}{\f50\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f52\fmodern\fcharset161\fprq1 Courier New Greek;}{\f53\fmodern\fcharset162\fprq1 Courier New Tur;}{\f54\fmodern\fcharset177\fprq1 Courier New (Hebrew);}
{\f55\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f56\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f171\fnil\fcharset0\fprq2 SimSun Western{\*\falt ??};}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;
\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;
\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{
\s2\ql \li0\ri0\keepn\nowidctlpar\faauto\adjustright\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 2;}{\*\cs10 \additive Default Paragraph Font;}{
\s15\qj \fi460\li0\ri0\sb120\widctlpar\faauto\adjustright\rin0\lin0\itap0 \fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext15 Body Text 2;}{\s16\qj \fi480\li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0
\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext16 Body Text Indent 2;}{\s17\qj \fi482\li0\ri0\sb120\widctlpar\faauto\adjustright\rin0\lin0\itap0 \fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext17
Body Text Indent 3;}{\s18\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \cbpat9 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext18 Document Map;}{\s19\ql \li0\ri0\widctlpar
\tqc\tx4153\tqr\tx8306\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext19 header;}{\s20\ql \li0\ri0\widctlpar\tqc\tx4153\tqr\tx8306\faauto\adjustright\rin0\lin0\itap0
\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext20 footer;}{\s21\qj \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext21 Body Text;}{\*\cs22 \additive
\sbasedon10 page number;}{\s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f2\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext23 Plain Text;}}{\*\listtable{\list\listtemplateid448684536\listsimple{\listlevel\levelnfc0
\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat8\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid8915931}
{\list\listtemplateid-709478400\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid227689445}{\list\listtemplateid1560456224\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat6\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr
\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5400\jclisttab\tx5400 }{\listname ;}\listid418600402}{\list\listtemplateid-2060527560\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat2\levelspace0
\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid442964818}{\list\listtemplateid-1747308702\listsimple{\listlevel\levelnfc0\levelnfcn0
\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid452098708}
{\list\listtemplateid1111942874\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid501313657}{\list\listtemplateid1685106060\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr
\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid621617432}{\list\listtemplateid-150575822\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid696009581}{\list\listtemplateid1592920302\listsimple{\listlevel\levelnfc0\levelnfcn0
\leveljc0\leveljcn0\levelfollow0\levelstartat4\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1080\jclisttab\tx1080 }{\listname ;}\listid696657816}
{\list\listtemplateid-2027923116\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
\fi-360\li1080\jclisttab\tx1080 }{\listname ;}\listid966471777}{\list\listtemplateid-166308118\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3918 ?;}{\levelnumbers;}
\f14\fs18\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-425\li425\jclisttab\tx425 }{\listname ;}\listid1174488675}{\list\listtemplateid505180948\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1
\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1177690601}{\list\listtemplateid1719941876\listsimple{\listlevel\levelnfc0
\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1253931130}
{\list\listtemplateid401348772\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1350642350}{\list\listtemplateid-630932262\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr
\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1354301582}{\list\listtemplateid-1353697230\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat6\levelspace0
\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5400\jclisttab\tx5400 }{\listname ;}\listid1581478891}{\list\listtemplateid-166308118\listsimple{\listlevel\levelnfc23\levelnfcn23
\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3918 ?;}{\levelnumbers;}\f14\fs18\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-425\li425\jclisttab\tx425 }{\listname ;}\listid1638221370}
{\list\listtemplateid-1335748072\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1737895090}{\list\listtemplateid-1085507204\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat6\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}
\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5400\jclisttab\tx5400 }{\listname ;}\listid1859856642}{\list\listtemplateid-353863148\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1
\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-150\li150\jclisttab\tx150 }{\listname ;}\listid1873031036}{\list\listtemplateid-166308118\listsimple{\listlevel\levelnfc23
\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3918 ?;}{\levelnumbers;}\f14\fs18\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-425\li425\jclisttab\tx425 }{\listname ;}\listid1926769053
}{\list\listtemplateid-1026240372\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid2005815757}{\list\listtemplateid1743153754\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat4\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr
\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid2055229045}{\list\listtemplateid-109041656\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-210\li210\jclisttab\tx210 }{\listname ;}\listid2072536490}{\list\listtemplateid-1435486796\listsimple{\listlevel\levelnfc0\levelnfcn0
\leveljc0\leveljcn0\levelfollow0\levelstartat6\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1080\jclisttab\tx1080 }{\listname ;}\listid2109035784}
{\list\listtemplateid925395962\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat6\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
\fi-360\li5400\jclisttab\tx5400 }{\listname ;}\listid2124961624}}{\*\listoverridetable{\listoverride\listid1638221370\listoverridecount0\ls1}{\listoverride\listid1873031036\listoverridecount0\ls2}{\listoverride\listid1926769053\listoverridecount0\ls3}
{\listoverride\listid452098708\listoverridecount0\ls4}{\listoverride\listid621617432\listoverridecount0\ls5}{\listoverride\listid1253931130\listoverridecount0\ls6}{\listoverride\listid2055229045\listoverridecount0\ls7}{\listoverride\listid696009581
\listoverridecount0\ls8}{\listoverride\listid1737895090\listoverridecount0\ls9}{\listoverride\listid966471777\listoverridecount0\ls10}{\listoverride\listid696657816\listoverridecount0\ls11}{\listoverride\listid2124961624\listoverridecount0\ls12}
{\listoverride\listid1581478891\listoverridecount0\ls13}{\listoverride\listid418600402\listoverridecount0\ls14}{\listoverride\listid1859856642\listoverridecount0\ls15}{\listoverride\listid2109035784\listoverridecount0\ls16}{\listoverride\listid1174488675
\listoverridecount0\ls17}{\listoverride\listid8915931\listoverridecount0\ls18}{\listoverride\listid2072536490\listoverridecount0\ls19}{\listoverride\listid501313657\listoverridecount0\ls20}{\listoverride\listid2005815757\listoverridecount0\ls21}
{\listoverride\listid227689445\listoverridecount0\ls22}{\listoverride\listid1354301582\listoverridecount0\ls23}{\listoverride\listid1350642350\listoverridecount0\ls24}{\listoverride\listid1177690601\listoverridecount0\ls25}{\listoverride\listid442964818
\listoverridecount0\ls26}}{\*\revtbl {Unknown;}{IOICLIENT;}}{\info{\title Double}{\author IOI 2001}{\operator IOICLIENT}{\creatim\yr2001\mo7\dy11\hr1\min49}{\revtim\yr2001\mo7\dy18\hr2\min49}{\printim\yr2001\mo7\dy18\hr2\min16}{\version21}{\edmins162}{\nofpages2}{\nofwords470}
{\nofchars2682}{\*\company University of Tampere}{\nofcharsws0}{\vern8247}}\paperw11907\paperh16840\margl1797\margr1797\margt1417\margb1134
\widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3
\jcompress\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\nolnhtadjtbl \fet0\sectd \psz9\sbkodd\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid271\sectdefaultcl {\header \pard\plain \s19\ql \li0\ri0\widctlpar\brdrb\brdrs\brdrw10\brsp40
\tqc\tx4153\tqr\tx8306\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\lang1024\langfe1024\noproof
{\shp{\*\shpinst\shpleft3856\shptop4\shpright4516\shpbottom988\shpfhdr0\shpbxcolumn\shpbxignore\shpbypara\shpbyignore\shpwr1\shpwrk0\shpfblwtxt0\shpz0\shplid2049{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn pib}{\sv
{\pict\picscalex80\picscaley80\piccropl0\piccropr0\piccropt0\piccropb0\picw1455\pich2170\picwgoal825\pichgoal1230\pngblip\bliptag-1858631538{\*\blipuid 9137888e247ad151948eaae5b0d52b3b}
89504e470d0a1a0a0000000d4948445200000037000000520803000000c73cbc9d0000000467414d410000b1889598f4a600000300504c5445045a8c1b637e00
5a98136d9400639c086b9c18739c005aa50063a5006ba50873a51073a51884a50063ad006bad0073ad006bb50073b50073bd007bb5086bad086bb50873ad0873
b5087bb51073b5107bad107bb5187bad187bb51884ad217fb12d6f7f5275688184477b8e6a9c84299a8633998c3f90905aa58429a58c29a58c39a09045a5944a
9c9452a59852a2a264297b8c397f8c2d7fa03394af428c94528c8a4a9098529ea66b9c9067a2a05ea4a96bafad7ba5907db7a4a0b58898c5a4007bbd007bc600
84bd0084c60084ce087bbd0884bd0884c6107bbd0888c5187bbd1084bd1088c11884bd1884c6188cbd008cc6008cce008cd60094d60094de088cc60c8dce188c
ca009cd6009ce200a5de0aa0dc00ade700adef0aafe910b5eb217fbd2983be2596cb3699ce1fade121b9ef31b0e12fbbeb4697c74ba3d356a4d25da8d247b2e1
45beeb56b3e055c2ea69b1d867c0e576b8de80bbdc67ccf376c7eb7ecbe984cee790c5e094cee78ad4f394d3ec9cc8e4a5cee794d6f79fd8efaf9534c1a239ad
9a4ebfa64ab3a25bc0aa5bcab056c7b368dcb53debc046d8ba56edc44eceb563d2b967d8bf6be4c362d2c673e1c66debce62ebca71f7cf5bf3d26ff3d273f7d6
73ffd452ffd663ffda67ffe763fbda73ffde6bffde73ffe76bb1ad7bbdbd84b9ca90c0d391cec684d6cb89d3ce99d6de9ae7d67befd27bf7ce7bf7d67befd684
f7d684efde7befe794f7de7fffd67bffde7bffde84ffe773ffe77bffe784ffef7bfbe28cffe78cffef84ffef8cffe794ffef94ffe79cffef9cb1ceadadcee7ad
d6e7b5d6e7a5d6efa5deefadd6efaddeefc3d6add4d8b1eae9a5ebe3b2b5d6efb5deefbdd6efefebe2fff79cffe7a5ffefa5fff7a5fff7adf7efb5ffe7b5fff7
b5fff7bdffefc6fff3cafff7cefff7d6ffffd6ffffdefffbe7addef7b5e2f7bde2f3c6deefc6def7c6e7efc6e7f7c6efffcedeefcee7efcee7f7ceeff7ceefff
d6e7f7d6eff7d6efffdeeff7deefffdef7f7def7ffe7eff7e7f7f7e7f7ffeff7ffeffffff7f7eff7f7f7f7f7fff7ffffffffeffffff7ffffffe24ad9c9000008
8b49444154789c95977f4c1be719c759c5a4f3b47bc37b466ca8f3326dca1f53d7765aba658a36f5ccb99bb4ad12b6d90614757142130f48f961951f2b8c40f8
1508d00081a6c24ea5fe3125481335f8c6f972720bb4a893126956331c8216ad91a65089893f1ca111c4ed79def70e700a69f2989ccf77efe7fd7edfe779ee72
97659a954aed9ffff3c07cb2c8321f785f59687de3f4a9d74efde9bf8f4f23e7bf7e7d6176bea5a9babcaca4bcf6df8f0567999b1effc7b3102dad6f36d4d756
95bf52ecf757bdb9b6f9659ce9f52f2c2ccccfb7b43635d457579d2c8328f5fbbddee375d7f797667a0b0b1fcdb7b4343535bc517db2bcacac04c35f04ac47a9
82315bfb70ded98fe66781439b16575c0498dfe7056ef62559395ebffa459f8a7776beb515b086daead3a7c0249045c57e58a6dfabbc6e36c96eafd7ab28ca6f
ab16d61fe2665b5bd1e5b65c09427eafcfa75430cee36551a8b87f79bc7ecde63c90134c4aedeb889596a14d74893e915380031261fc02e9e38c53985a3dba7c
b5acb4a4a4747b79e8b3519261782100104c56517ec739a0c024607fc022d8367d5ece5119c67b504629840fecba2daea1a19e61af595809a3a0841e37e30a2d
0e040b71cb39b7d25007d4495badb8186ae7f301a6b442066629551044395c2848724e2ea8adae3a7daafc555b8db9f463edeefc73666ae61f3fc9a38c63e901
cce6e4d320c63c96959416f3568154365e1d1b1f8f61a89347d023087ad804b2c59dc4fc73aeb8c44aa5fb6717c7c723d300a92aa09387312b0ac7e5df234765
b6306c13e8932256706fc1d7c726a2d18876598d4deb6a1ce01781c08fb2cd49d6ba4a312745ac04329d787f6a2612d1237a2c16d7e33ab0ef2956b8dd1657ca
2886f931933e0f3d3236198b840db0a9c534ddd075fd6ff11733394982d6821e29665d82dde5a5b4af6f247c2da147b470623a66e88686560f5ba0e5939630a5
62abb77c5e997e6b524bde4aa9861136a60d7d3aa119465c8dcf587a32eb4f89eeaccbcf1a90d2e77b2389c57f2d027639316d80d10468c6d5a3685229904f70
bda2228bf2314cce39303195585a4e2613fa25e31de3b29e5cbabd94d4545d470cf42cce6f69f9f04251144ac8fb535a2a958c85351572a327f49bb76f27754d
8d2b88b9e91f1977004b86103612548992afb5f58c4c26125aec921133e2c67472f9ceff5209d03bea76cb6e59e21c05c6e7b328e4841ff6f68d8d9d9bbaa686
551dd1d4e2f2722aa1a9c6078c932b2d9f6c591ed67c1e45a68e178687ff3a31742ea2c5de3654357e3395ba9d4aaaa0fc9702b9a040966a90cba1d6cda35061
5799441d3f1e1ebe323adad3774d8da87a38b1b87867f96632a6eb89bfcb2c18778022b4d34432115eb872657462a2a767662a3662bc934c2edd594e81b091fc
8473753c2f1e7e1750305b00e6387e340c7165b027aa45dfd6c349fdd6f2d2a7095dd5163f6098937344f1283b9ce2a6d95f7deb0280170687a6a27d5ad8503f
4d2513a8973ac2b95006e7869061dd345b181800aeb767223a7e4e1db916319206609a71ab6037473d9641c4e402996667770ff4bf35d0db367c757470aa4f8d
4e6baa3a1d5793376519eb60739c71630fb1f984a7bed7d9ddd97dbe6d787870746228aa86237841e98b87795ae446e4be4940ac003bcf6d1da6d95fe9e8683f
7ba67f60a00db04b535a146f1606ab020c921a38678fdf8ea7b20f1dfafe99aefeeeb60b177ac62f8e8c47a291989a78da9e9771bf2028c5596b069af59d7670
da79b66ba0eb6aefd8d87814423b2a49ecace46c42ce4532210c9275e8d9e7dacf748260eff0d0102ac67e2e3b81418eb622f732c9f0e894242a4b24ebd90e88
b6feb303bdbd43834363e3ac74124a4af4639bb3a4d841d838652a7cf7991fb49fe9eeeceaea871e18baf8ae751e5741af2317d8d6030631b043259afb3c801d
1d673bbbce9fefefff3675528ae74051a2776d4ee25301e74435a06154fa938e76249ffb2981b11411197d52e973e48284fd62536d7bc181b412fe3b7a90fe55
0ecce2c4a0b0708a9e562dce690d6533322d0906c1dfcbf36625c19f9487c43e36275985a14c45625983e9f1571d726cac44b7f99c354b4fb605f81224368c4d
029cb85b8d4fc039810d640903990c4f4ccf366a9fb0f42a447ec0e9949db6216e0ab62138cd95ad6da0e6b30dfefc0246ac63dbc11704ff0e00472ca1a7834d
19cf4bc8ed00bb498a7a95420efd0d17c97c3eab113292253dc4edf53818b439ba87e4af6b56d6bf8860e431ae0e8cd08c0abd74a2696ddf2756b8f01cec3e1f
b2394830887cbeb1e7e0f500111c15e8d945488873cc961c6c5adbebc99647883808fc05e0321045c2ee4b1b2157cd675ff2105f230a622e708e559354e4736e
9f4857ba485ee01edb5f15098127e50a2206cd96ad7c47f3be5c3a571408114518084104318ddf02f9066cf3c9ec7e5c480004307056033911c9417698387261
9b27dc60dcc6fafdfb99956a043131d0d8980fcb726c99215168e41c26c6cc1556f03dc79a9ab89a6d6c0d8e08ac820100efe1768e9d10c410e3f0ba4d8b08e2
6a1c8245e68241fec2b001390c990745b1c59a0f8b9b4bf03aba0b1c5b092c9e4d07d91388cb92660b84929d3059425cdc2d721f9283814080f0ba0af83a1524
0ed1f64c086986ea89e25d7333281296d5e00abb1e7893acbb40c5c1fce481f08acd396072702b080e01a7b063571df2c128cb1b9ae6f536efc312b6b0e00266
61cedc8b6b849c3a6ea00664a9861f839555e0774b3ec9afd9ddbdbbb8669851c01d172e951d6a8129f6eef55d1ca6e318ee84d0537eda4c0721c7f7f6c47673
58c134df03c74410a067c40ff7c67671cd76139be60d07b690431472f7bdec77386c357b7f2d17ea46f2e6f67f39dee62a6051d044732ed632e6d6e6a35fa86d
6e159cada58390d1e023c73fc46d422ae07e03eb22c79e84736106f1fe415c738f063238f087570339f67890cd8558fb3da6d20e370715cf6bdefb76fb086e45c80f3d1163719b4fa6c4e3ffbf35c889c8ee749a0000000049454e44ae426082}
}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 0}}}{\shprslt\par\pard\ql \li0\ri0\widctlpar\pvpara\posx3855\posy3\dxfrtext180\dfrmtxtx180\dfrmtxty0\nowrap\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
{\pict\picscalex80\picscaley80\piccropl0\piccropr0\piccropt0\piccropb0\picw1455\pich2170\picwgoal825\pichgoal1230\wmetafile8\bliptag-1858631538{\*\blipuid 9137888e247ad151948eaae5b0d52b3b}
0100090000033c0b000000001a0b000000000400000003010800050000000b0200000000050000000c025200370004000000070104001a0b0000430f2000cc00
0000520037000000000052003700000000002800000037000000520000000100080000000000f0110000c40e0000c40e00000001000000010000985a0000a55a
00008c5a04009c630000a5630000ad6300007e631b00a56b0000ad6b0000b56b00009c6b0800ad6b0800b56b0800946d13007f6f2d00ad730000b5730000bd73
0000a5730800ad730800b5730800a5731000b57310009c73180068755200b57b0000bd7b0000c67b0000b57b0800bd7b0800ad7b1000b57b1000bd7b1000ad7b
1800b57b1800bd7b18008c7b2900b17f2100bd7f2100a07f2d008c7f3900be832900bd840000c6840000ce840000bd840800c6840800bd841000a5841800ad84
1800bd841800c68418004784810029849c002984a50033869a00c5880800c1881000c68c0000ce8c0000d68c0000c68c0800bd8c1800ca8c1800948c42008a8c
52003f8c9900298ca500398ca500ce8d0c006a8e7b0098904a005a9090004590a000d6940000de940000af94330052949c004a94a5003495af00cb962500c797
46005298a500ce9936004e9aad00d69c0000e29c0000909c6b00a69e5200dca00a00a0a2670064a2a2005ba2b30039a2c100d3a34b00d2a45600a9a45e00dea5
000090a57b004aa6bf00d2a85d005baac000e7ad0000efad0000e1ad1f007badb100e9af0a00adaf6b00e1b0310056b0ca00d8b16900e1b24700e0b3560068b3
c700ebb5100088b5a00063b5ce003db5dc00a4b77d00deb87600efb9210067b9d20056bad800ebbb2f00dcbb800084bdbd00ebbe45006bbfd800e5c0670046c0
eb00eac2550062c3e4004ec4ed00e0c59000a4c5980084c6ce0073c6d2006dc6e100ebc77600e4c89c0090cab90071caeb00e9cb7e0089cbd600f3cc6700e7ce
8400e7ce9400e7cea500e7cead00adceb10099ced30062ceeb007bcef7005bcff7007bd2ef006fd2f30073d2f300ecd3940091d3c000f3d48a0052d4ff00f7d6
9400efd6a500e7d6ad00efd6ad00e7d6b500efd6b500efd6bd00add6c3007bd6e70084d6ef0073d6f7007bd6f70084d6f70063d6ff007bd6ff00efd89f00b1d8
d40073dafb0067daff00efdea500efdead00f7dead00efdeb500efdec600f7dec600efdece009aded6007bdeef007fdef7006bdeff0073deff007bdeff0084de
ff00f7e2b500f3e2bd008ce2fb00b2e3eb00efe7c600f7e7c600efe7ce00f7e7ce00f7e7d60094e7ef0063e7ff006be7ff0073e7ff007be7ff0084e7ff008ce7
ff0094e7ff009ce7ff00a5e7ff00b5e7ff00a5e9ea00e2ebef00ffefc600f7efce00ffefce00f7efd600ffefd600f7efde00ffefde00f7efe700b5eff7007bef
ff0084efff008cefff0094efff009cefff00a5efff00c6efff00caf3ff00f7f7de00fff7de00f7f7e700fff7e700fff7ef00eff7f700f7f7f700fff7f7009cf7
ff00a5f7ff00adf7ff00b5f7ff00bdf7ff00cef7ff00d6f7ff00e7fbff00ffffef00fffff700d6ffff00deffff00efffff00f7ffff00ffffff00ffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0bffffd9001e7cffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0effffffb7050f050f8bfdffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffff77050305050539a5ffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffff7bffffffffff510505050305050529a5ffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffff7fffffffffffff20050505050f12050f0531b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffff84ffffffffffffff0305053905050505050526ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ff8cffffffffffffffde010505ead75101050151ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97ffffffffffff
ffff64050305ffffffb71e77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa4ffffffffffffffffff05050505ff
ffffffffffffffde050f050f0f0fb7ffffffffffffffffffffffffffffffffffffffffffffffffffffb0ffffffffffffffffff8b05050551ffffffffffffba0f
0505050503050305deffffffffffffffffffffffffffffffffffffffffffffffffbbffffffffffffffffffff05050f03f9ffffffffff000505050f0505050505
05b5ffffffffffffffffffffffffffffffffffffffffffffffc6ffffffffffffffffffff510f050520ffffffff91050505050fdfffd7510f0503baffffffffff
ffffffffffffffffffffffffffffffffffceffffffffffffffffffff8b03050503ffffffff20030f0505ffffffffff94050505fdffffffffffffffffffffffff
ffffffffffffffffffd6ffffffffffffffffffff8b05050503baffffff050505036effffffffffff29050564ffffffffb51e051e80ffffffffffffffffffffff
ffdaffffffffffffffffffff1e0505050591ffffff0505030fbafffffffffffff9050505fdffff64050505030505b7ffffffffffffffffffffdeffffffffffff
ffffff1e05050f030594ffffff0f050501d9ffffffffffffff050f05ddffff05030503050305058bffffffffffffffffffe7ff9405312929290f050f050f030f
05ffffffff4c050f0594ffffffffffffff050f05b5ff6e050505baffff510505f9ffffffff51ddffffefffd9050305050505030f0505050177ffffffffde0505
051effffffffffffff030f0364ff29050153ffffffff1e051effffffff0f05defff7ffdf01050505050505050f050392ffffffffffff09050505deffffffffff
ff05050591ff210505b5ffffffffde0505ffffffff0505eaffffffff05010105050105051e8bffffffffffffffffd705050503eaffffffff29050305baff2905
03a5ffffffffff03057cffffff0f00ddfffffffffffff9f9ddf9ffffffffffffffffffffffffff9101030505298b911e0505050ffdff7705058bffffffffff05
0f29ffffff0505ddffffffffffffffffffffffffffffffffffffffffffffffff77050505050f0505030f0364ffffff05051effffffffff050f05ffffff1100b7
ffffffffffffffffffffffffffffffffffffffffffffffffffdf050901050f05050551ffffffff050305f9ffffffff050511ffffff0f05b5ffffffffffffffff
ffffffffffffffffffffffffffffffffffffffd7641e050526baffffffffffdd050505deffff6405054cff94ff1e128bffffffffff772077c6ffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffff6e050305050f030f05ddff056411058bffffffff7c03110f110f0f115192eafdffffffffffffffff
ffffffffffffffffffffffffffffffffff7705030f05120529ffff290505058bffffffff7c0309110f1111110f110f09113980ddfdffffffffffffffffffffff
fffffffffffffffffffff92605030564fdffffff1e050f7cffffffff770505110f11110f11110f110f11110f110f115391f9ffffffffffffffffffffffffffff
ffffffffffffffffffffffffff200364ffffffff64050f110f110f110f110f110f110f11110f110f110f110f3980ddf9ffffffffffffffffffffffffffffffff
ffffffffffff0f51ffffffff8003110f11110f110f11110f110f11110f110f110f1111110f110f110f7cffffffffffffffffffffffffffffffffffffffffff51
ff05ffff64050f110f110f110f110f11110f110f110f110f11110f11110f110f117cff640505113980c6ffffffffffffffffffffffffffffff05ffff6405110f
1111110f110f110f110f110f110f11110f11110f11110f110f77ff64050f110f110f110f205191ffffffffffffffffffff0fffff640511110f110f110f112a0f
11110f1111110f1111110f110f1111110f7cff6405111111110f110f1111110f110f2980c6ffffffff94ffff51051111110f110f2a0f0f112a0f2a0f110f110f
110f0f111111110f1177ff640f05110f0f11110f11110f110f110f110f1105ddff00ffff510f112a110f11110f112a0f11111111111111110f11110f11110f0f
1177ff64050f1111110f110f110f11111111110f11110feaff00ffff51051111112a112a112a0f1111110f111111111111112a0f2a111111096eff640511110f
110f11110f110f11110f110f0f1105deff00ffff51052a0f2a112a111111111111112a110f110f110f11110f110f111139b5ff6405110f11110f110f110f110f
110f111111110fdeff00ffff510f1111112a112a0f111111112a11112a112a112a11110f110964ffffffffdf2009111111110f2a0f0f110f2a11110f111105de
ff00ffff29052a111111112a112a110f11110f2a112a11110f110f1111f9965c525265526352570509110f112a1111111111112a110f11daff00ffff290f112a
112a11112a11111111111111112a112a111111055b425452655263656d7179797f1e11110f110f11112a1111111111baff00ffff39052a112c112a112a112a11
112a110f112a112a110f05344252524f79656d6d79898d8d97bf691b11112a112a1111112a110fb7ff00ffff290f11112a2a112a112a112a11112a1111110f11
1105024d655265545d7f637f7a7a9783978dbf582a112a111111112a11110fb5ff00ffff20052a1b11112a112a112a112a112a112a112a110f02444d4d544f65
714f8d7a8d97979799bfbfbf6b11112a11112a112a1111b0ff00ffff2a052c112c2a2c112a112a111b2a112a112a111102065465796565636d7f6d987abe98bf
c1bfc1bfe26b1111112a112a11110f8bff00ffff0f0f1b112a1111112a11112a112a112a11112a00033537364f6d7f715d8d8975bf9899bfbfc1bfe2c1e50f2a
112a112a112a119fff00ffff110f2a2c2c2a2a2c112c1b2a112a112a112a0f0302655b5263447f7f7f4fbf97c199c1c4bfc1e2bfe1f1d611112a111b2a11118a
ff00ffff0f112a2a2c112c112c1b1b2c2a112a112a110500466571657979638d8d83989897bfe2bebfe1bfe2c1e5f34c112a112a112a118bff00ffff110f2c2c
112c2a2c1b1b1b1b112a112a11110303797f79897f7a4f8d988d83bf97c1bfe1c1e2bfe1e2c1e5e72a112c111b2a0f7cff00ffff11052c2c2a2c2a2c2a1b1b1b
1b112a2a2a0f030589798d8d8d7a75c1bfbf81e299c4bfe5e6e5e5e1c1e2e5e72a11112a11112a7cff00ffff0f052a2c2c2a2c2c2a2c2a2c2a2c2a2c2a110303
89898d8d8d7f8397c1bf84c1bee5e2f3f5e6e5e5c1e2e5f5582a112a112a0f7cff00ffff110f2c2c2c2a2c2a2c2a2c112c2a2c112c051217988d8d8d8d9775c1
e2c199e2bee6e2e7f7e7e6e5e2e2c1f595112a112a112a77ff00ffff0f0f2c552c2a2a2c2a2c2a2c2a2c1b2a110505408dbc8dbfc17575c1c1bf99e5bee6e5e7
fcfcf5e5e2bfe5e6b1112a112a111177ff00ffff0511552a2c552c2a2c2a2a2c2c2c2a2c111112418d8d9a988d7581e5c1bee2e2bee5e7f3fde7e0e6e1e2e5e5
d6112a112a112a80ff00ffff110f562c552c552c2c2c2c552c2a2c2c2a0f05408d8dbc9a9781bfc1e199e5e2c1e1e7f5f5fbf5e6bfe5e2e2bb2a112a2a11096e
ff00ffff0f112c2c2c2c2c552c2c2c2c2c2c2c2c2c0f0524819799bf81c1e5c1bee2e299e5e1e2e7f5e7fce7e5e2e2e5951b1b112a112a6eff00ffff110f2c55
55552c3c2a552c2c2c2c2c2c2c0f0f0f4f7597bfe5e5c1e199e5e1e5e1e5e1e6e7fdfde7e6bfe5e26b1b2a112c111151ff00ffff0f11552c562c562c562c2c55
2c2c2a2a2a110505bfc1e2e7f5e5e1bee2c1bfe5bfe2e5e2e7e7fbe6e2e5bfe22a1b2c2c112c0f6fff00ffff110f563c56552c55552c562c2c552c552c11090f
bfc1e5e7fce6e6e6e299e2bee5e1e2e6e7fbe7e6e2c1e2f12c1b1b2a2c112a53ff00ffff111156565555562c55552c56552c2c2c552c0f0f5b7abfe5f5fcf5e2
bee5bee5cce5e2e5e2e5e5e2e5e2e2582c2a1b1b2c2a1153ff00ffff0f11565656555555563c552c553c2c552c5511111ebfe5e6e7f5c1e5e5bee5e1e5e2bfe5
e2e5e5e2e2e2e22c2a2c2a2c2a2c1150ff00ffff1111616756615656555556562c552c562c2c2c0f11848199bfc4e6e2bfe2bfe5bfbfe5e2e5c1e2e2c1e2272c
2a2c2a2c2a2c1150ff00ffff0f1161565656566161565655612c553c2c55552c1158bfbce1bfbee5e2bfe2c1e1e5e2e5e2e5e2e1e1862c2a2c2a2c2a2c1b1b39
ff00ffff1111617272565656616156565655562c562c562c110fbf98c1c1bfbfe2bfe5e1bfe2e2e2e5e2e2e2bb2a2c2c2a2c2c2a2c112c3fff00ffff0f117261
61677261616756563c55562c55552c2c552a31bfc1c1bfbee5ccc1e1bee5e2e2e2c1e1862c2c2a2c2c2c2a2c2a2c1b39ff00ffff112a7b6c6861617261726761
615656563c562c562c2c116299bfbfbfbfbfe2c1e2c1bfe1bfe24c2c2a2c2c2a2a2c2c2c2c2a2a39ff00ffff2a117e7e6c7b7861726172615661555656553c55
2c552c2c929998bebfe1e1bfe1e1e2e1602a2c2c2c2a2a552c1b552c2a2c1139ff00ffff112a90707e7e7b686a6167726167565656555556552c562c2a7efffc
e7bfc1c1e6400f0f2c2c2c2c2a2c2c2a2c552a2a2c2a1b59ff00ffff112c917790707e7b787272617261565655562c562c562c562a552ab0ffffffb70f0f2a2c
2c552c2a2c2a552c2c2c2c2c2a2c1b3cff00ffff2c2a91918a8a80827e7b78616772615656565655552c3c2c562c2c2c1170ff910511552a2c2c2c2c2a2c2c2c
2c552a2c2c2c1b39ff00ffff2a2c928b91918a80827e7b7272616767565656552c562c552c552c552a70ff8b112a2c2c2c2c2c2a2c2a11552a2c2a2c1b2c2a2c
ff00ffff2c2ab0b09192918a90707e7b6a61616156615655565655562c3c2c2c2c70ff9109112c2c552a2c2c2c2c2c2c2c2c552c552a2c2cff00ffff2a2cb094
b0b092918a80646c6a72616167565655562c3c3c2c55562c2a5effb0112a552c2c1b552c2c2c552c1b552c2c112c2c50ff00ffff2c2ca3b5b0b08b92918a807e
6c6867616156565655555555552c2c3c2c64ff8b2a1b2c2c2c552c2c552c2a2c1b2c508af9ffffffff00ffff2a2ca3b592b59292919190707e7b617261676156
56552c612c55552c2a70ff92112a2c552c2a2c2a2c7eb5f9ffffffffffffffffff00ffff2c2ca3b5b0b5949492918a807e6c6861616156565656562c562c562c
2c6fffb511112c508adeffffffffffffffffffffffffffffff00ffff2c55b5b5b59294929292918a826c68677256565656612c5655562c2c1b7effffffffffff
ffffffffffffffffffffffffffffffffff00ffff2c56b5b5b5b59494b092918a826f6c6161676161562c552c5077b7ffffffffffffffffffffffffffffffffff
ffffffffffffffffff00ffff2c2cb5b594b59492b592919180706a56563c566fb0deffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ff00ffff2c55b7b7b5b5b59492826a67566a77d8f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff2c56b5b0
777e7878789fdeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff642c90a1daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000400000007010100030000000000}\par}}}{
\b\fs24\dbch\af17 \hich\af0\dbch\af17\loch\f0 Task Description\tab \tab DAY-2
\par \hich\af0\dbch\af17\loch\f0 IOI 2001
\par \hich\af0\dbch\af17\loch\f0 Tampere
\par \hich\af0\dbch\af17\loch\f0 Finland}{\tab \tab }{\b\fs24\dbch\af17 \hich\af0\dbch\af17\loch\f0 double
\par }}{\footer \pard\plain \s20\ql \li0\ri0\widctlpar\brdrt\brdrs\brdrw10\brsp20 \tqc\tx4153\tqr\tx8306\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\field{\*\fldinst {\lang1035\langfe1033\dbch\af17\langnp1035
\hich\af0\dbch\af17\loch\f0 DATE \\@ "dd.MM.yy" }}{\fldrslt {\lang1024\langfe1024\dbch\af17\noproof\langnp1035 \hich\af0\dbch\af17\loch\f0 18\hich\af0\dbch\af17\loch\f0 .\hich\af0\dbch\af17\loch\f0 07\hich\af0\dbch\af17\loch\f0 .
\hich\af0\dbch\af17\loch\f0 01}}}{\lang1035\langfe1033\dbch\af17\langnp1035 \hich\af0\dbch\af17\loch\f0 }{\field{\*\fldinst {\dbch\af17 \hich\af0\dbch\af17\loch\f0 TIME \\@ "H:mm" }}{\fldrslt {\lang1024\langfe1024\dbch\af17\noproof
\hich\af0\dbch\af17\loch\f0 2\hich\af0\dbch\af17\loch\f0 :\hich\af0\dbch\af17\loch\f0 16}}}{\lang1035\langfe1033\langnp1035 \tab }{\b\lang1035\langfe1033\dbch\af17\langnp1035 \hich\af0\dbch\af17\loch\f0 Page }{\field{\*\fldinst {\cs22\b\dbch\af17
\hich\af0\dbch\af17\loch\f0 PAGE }}{\fldrslt {\cs22\b\lang1024\langfe1024\dbch\af17\noproof \hich\af0\dbch\af17\loch\f0 2}}}{\cs22\b\dbch\af17 \hich\af0\dbch\af17\loch\f0 of }{\field{\*\fldinst {\cs22\b\dbch\af17 \hich\af0\dbch\af17\loch\f0 NUMPAGES }
}{\fldrslt {\cs22\b\lang1024\langfe1024\dbch\af17\noproof \hich\af0\dbch\af17\loch\f0 2}}}{\cs22 \tab }{\b\lang1035\langfe1033\dbch\af17\langnp1035 \hich\af0\dbch\af17\loch\f0 double
\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}
{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8
\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \qc \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0
\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\fs28
\par }\pard \qc \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 {\b\fs30\dbch\af17 \hich\af0\dbch\af17\loch\f0 Double Crypt
\par }\pard \ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\fs24
\par }\pard \ql \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 {\b\fs24\dbch\af17 \hich\af0\dbch\af17\loch\f0 PROBLEM
\par }\pard\plain \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f2\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f0
\par }\pard \s23\qj \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24 The Advanced Encryption Standard (AES) involves a new strong encryption algorithm. It works with three }{\i\f0\fs24 blocks}{\f0\fs24 of 128 bits. Given a message block }{
\i\f0\fs24 p}{\f0\fs24 (plaintext) and a key block }{\i\f0\fs24 k}{\f0\fs24 , the AES encryption function }{\i\f0\fs24 E}{\f0\fs24 returns an encrypted block }{\i\f0\fs24 c}{\f0\fs24 (ciphertext):
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24
\par }{\i\f0\fs24\lang1031\langfe1033\langnp1031 c}{\f0\fs24\lang1031\langfe1033\langnp1031 = }{\i\f0\fs24\lang1031\langfe1033\langnp1031 E}{\f0\fs24\lang1031\langfe1033\langnp1031 (}{\i\f0\fs24\lang1031\langfe1033\langnp1031 p}{
\f0\fs24\lang1031\langfe1033\langnp1031 , }{\i\f0\fs24\lang1031\langfe1033\langnp1031 k}{\f0\fs24\lang1031\langfe1033\langnp1031 ) .
\par
\par }\pard \s23\qj \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 {\f0\fs24 The inverse of the AES encryption function }{\i\f0\fs24 E}{\f0\fs24 is the decryption function }{\i\f0\fs24 D}{\f0\fs24 such that
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24
\par }{\i\f0\fs24\lang1031\langfe1033\langnp1031 D}{\f0\fs24\lang1031\langfe1033\langnp1031 ( }{\i\f0\fs24\lang1031\langfe1033\langnp1031 E}{\f0\fs24\lang1031\langfe1033\langnp1031 (}{\i\f0\fs24\lang1031\langfe1033\langnp1031 p}{
\f0\fs24\lang1031\langfe1033\langnp1031 , }{\i\f0\fs24\lang1031\langfe1033\langnp1031 k}{\f0\fs24\lang1031\langfe1033\langnp1031 ), }{\i\f0\fs24\lang1031\langfe1033\langnp1031 k}{\f0\fs24\lang1031\langfe1033\langnp1031 ) = }{
\i\f0\fs24\lang1031\langfe1033\langnp1031 p}{\f0\fs24\lang1031\langfe1033\langnp1031 , }{\i\f0\fs24\lang1031\langfe1033\langnp1031 E}{\f0\fs24\lang1031\langfe1033\langnp1031 ( }{\i\f0\fs24\lang1031\langfe1033\langnp1031 D}{
\f0\fs24\lang1031\langfe1033\langnp1031 (}{\i\f0\fs24\lang1031\langfe1033\langnp1031 c}{\f0\fs24\lang1031\langfe1033\langnp1031 , }{\i\f0\fs24\lang1031\langfe1033\langnp1031 k}{\f0\fs24\lang1031\langfe1033\langnp1031 ), }{
\i\f0\fs24\lang1031\langfe1033\langnp1031 k}{\f0\fs24\lang1031\langfe1033\langnp1031 ) = }{\i\f0\fs24\lang1031\langfe1033\langnp1031 c}{\f0\fs24\lang1031\langfe1033\langnp1031 .
\par
\par }\pard \s23\qj \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24 In }{\i\f0\fs24 Double AES}{\f0\fs24 , two independent key blocks }{\i\f0\fs24 k}{\i\f0\fs24\sub 1}{\f0\fs24 and }{\i\f0\fs24 k}{\i\f0\fs24\sub 2}{\f0\fs24 ar
e used in succession, first }{\i\f0\fs24 k}{\i\f0\fs24\sub 1}{\f0\fs24 , then }{\i\f0\fs24 k}{\i\f0\fs24\sub 2}{\f0\fs24 :
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24
\par }{\i\f0\fs24\lang1031\langfe1033\langnp1031 c}{\i\f0\fs24\lang1031\langfe1033\sub\langnp1031 2}{\f0\fs24\lang1031\langfe1033\langnp1031 = }{\i\f0\fs24\lang1031\langfe1033\langnp1031 E}{\f0\fs24\lang1031\langfe1033\langnp1031 ( }{
\i\f0\fs24\lang1031\langfe1033\langnp1031 E}{\f0\fs24\lang1031\langfe1033\langnp1031 (}{\i\f0\fs24\lang1031\langfe1033\langnp1031 p}{\f0\fs24\lang1031\langfe1033\langnp1031 ,}{\i\f0\fs24\lang1031\langfe1033\langnp1031 k}{
\i\f0\fs24\lang1031\langfe1033\sub\langnp1031 1}{\f0\fs24\lang1031\langfe1033\langnp1031 ), }{\i\f0\fs24\lang1031\langfe1033\langnp1031 k}{\i\f0\fs24\lang1031\langfe1033\sub\langnp1031 2}{\f0\fs24\lang1031\langfe1033\langnp1031 ).
\par
\par }\pard \s23\qj \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24 In this task, an integer }{\i\f0\fs24 s}{\f0\fs24 is also given. Only the leftmost 4*}{\i\f0\fs24 s}{\f0\fs24 bits of }{\deleted\f0\fs24\revauthdel1\revdttmdel1180143070
each }{\f0\fs24\revised\revauth1\revdttm1180143070 all }{\f0\fs24 key}{\f0\fs24\revised\revauth1\revdttm1180143070 s}{\f0\fs24 are relevant, while the other bits (the rightmost 128 minus 4*}{\i\f0\fs24 s}{\f0\fs24 bits) are all zero.
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24
\par }\pard \s23\qj \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24 You are to recover the encryption key pairs for some messages encrypted by Double AES. You are given both the plaintext }{\i\f0\fs24 p}{\f0\fs24
and the corresponding double-encrypted ciphertext }{\i\f0\fs24 c}{\i\f0\fs24\sub 2}{\f0\fs24 , and the structure of the encryption key}{\f0\fs24\revised\revauth1\revdttm1180143069 s}{\f0\fs24 as expressed by the integer }{\i\f0\fs24 s}{\f0\fs24 .
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24
\par }\pard \s23\qj \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24 The AES encryption and decryption algorithms are available in a library.
\par }{\b\f0\fs24 You must submit the recovered keys, and not a recovery program.
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 {\b\f0\fs24 INPUT
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24
\par }\pard \s23\qj \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24 You are given ten problem instances in the text files named }{\fs24 double1.in}{\f0\fs24 to }{\fs24 double10.in}{\f0\fs24 . Each input file consist
s of three lines. The first line contains the integer }{\i\f0\fs24 s}{\f0\fs24 , the second line the plaintext block }{\i\f0\fs24 p}{\f0\fs24 , and the third line the ciphertext block }{\i\f0\fs24 c}{\i\f0\fs24\sub 2}{\f0\fs24 obtained from }{
\i\f0\fs24 p}{\f0\fs24 by Double AES encryption. Both blocks are written as strings of 32 hexadecimal digits ('0'..'9', 'A'..'F'). }{\f0\fs24\revised\revauth1\revdttm1180143071 The library provides a routine to convert strings to blocks. }{\f0\fs24
All input files are solvable.
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 {\b\f0\fs24 OUTPUT
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24
\par }\pard \s23\qj \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24 You are to submit ten output files corresponding to the given input files. Each output file consists of three lines. The first line contains the text
\par }\pard \s23\qj \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 {\fs24 #FILE double I
\par }\pard \s23\qj \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24 where }{I}{\f0\fs24 is the number of the respective input file. The second line contains the key block }{\i\f0\fs24 k}{\i\f0\fs24\sub 1}{\f0\fs24
, and the third line the key block }{\i\f0\fs24 k}{\i\f0\fs24\sub 2}{\f0\fs24 , such that
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24
\par }{\i\f0\fs24\lang1031\langfe1033\langnp1031 c}{\i\f0\fs24\lang1031\langfe1033\sub\langnp1031 2}{\f0\fs24\lang1031\langfe1033\langnp1031 = }{\i\f0\fs24\lang1031\langfe1033\langnp1031 E}{\f0\fs24\lang1031\langfe1033\langnp1031 ( }{
\i\f0\fs24\lang1031\langfe1033\langnp1031 E}{\f0\fs24\lang1031\langfe1033\langnp1031 (}{\i\f0\fs24\lang1031\langfe1033\langnp1031 p}{\f0\fs24\lang1031\langfe1033\langnp1031 ,}{\i\f0\fs24\lang1031\langfe1033\langnp1031 k}{
\i\f0\fs24\lang1031\langfe1033\sub\langnp1031 1}{\f0\fs24\lang1031\langfe1033\langnp1031 ), }{\i\f0\fs24\lang1031\langfe1033\langnp1031 k}{\i\f0\fs24\lang1031\langfe1033\sub\langnp1031 2}{\f0\fs24\lang1031\langfe1033\langnp1031 ).
\par
\par }{\f0\fs24 Both blocks must be written as strings of 32 hexadecimal digits ('0'..'9', 'A'..'F'). }{\f0\fs24\revised\revauth1\revdttm1180143072 The library provides a routine to convert blocks to strings. }{\f0\fs24
If there are multiple solutions, you need submit only one of them.
\par }{\f0
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 {\b\f0\fs24 EXAMPLE
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0
\par }{\f0\fs24 As an example we use input file number 0 here.
\par
\par }{\fs24\revised\revauth1\revdttm1180143096 d}{\deleted\fs24\revauthdel1\revdttmdel1180143096 D}{\fs24 ouble}{\fs24\revised\revauth1\revdttm1180143081 0}{\fs24 .in}{\deleted\fs24\revauthdel1\revdttmdel1180143081 0}{\fs24 \tab \tab \tab \tab }{\f0\fs24
A possible output file}{\fs24
\par }{\lang1024\langfe1024\noproof\langnp1033 {\shp{\*\shpinst\shpleft4300\shptop80\shpright8500\shpbottom984\shpfhdr0\shpbxcolumn\shpbxignore\shpbypara\shpbyignore\shpwr3\shpwrk0\shpfblwtxt0\shpz1\shplid1027
{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn lTxid}{\sv 65536}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}
{\sp{\sn lineEndArrowWidth}{\sv 0}}{\sp{\sn lineEndArrowLength}{\sv 0}}{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}
{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}
{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 0}}
{\sp{\sn fLayoutInCell}{\sv 0}}{\shptxt \pard\plain \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f2\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {#FILE double 0
\par A0000000000000000000000000000000
\par }\pard\plain \s19\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\loch\af2\hich\af2\dbch\af17 \hich\af2\dbch\af17\loch\f2 70000000000000000000000000000000
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8193\dptxbx\dptxlrtb{\dptxbxtext\pard\plain \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f2\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {#FILE double 0
\par A0000000000000000000000000000000
\par }\pard\plain \s19\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\loch\af2\hich\af2\dbch\af17 \hich\af2\dbch\af17\loch\f2 70000000000000000000000000000000
\par }}\dpx4300\dpy80\dpxsize4200\dpysize904\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}
{\shp{\*\shpinst\shpleft0\shptop80\shpright4200\shpbottom984\shpfhdr0\shpbxcolumn\shpbxignore\shpbypara\shpbyignore\shpwr3\shpwrk0\shpfblwtxt0\shpz0\shplid1028{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}
{\sp{\sn lTxid}{\sv 131072}}{\sp{\sn fAutoTextMargin}{\sv 0}}{\sp{\sn fRotateText}{\sv 0}}{\sp{\sn fFitShapeToText}{\sv 0}}{\sp{\sn fFitTextToShape}{\sv 0}}{\sp{\sn lineEndArrowWidth}{\sv 0}}{\sp{\sn lineEndArrowLength}{\sv 0}}
{\sp{\sn fLine}{\sv 1}}{\sp{\sn fHitTestLine}{\sv 1}}{\sp{\sn lineFillShape}{\sv 1}}{\sp{\sn fShadow}{\sv 0}}{\sp{\sn fshadowObscured}{\sv 0}}{\sp{\sn f3D}{\sv 0}}{\sp{\sn fc3DMetallic}{\sv 0}}{\sp{\sn fc3DUseExtrusionColor}{\sv 0}}
{\sp{\sn fc3DLightFace}{\sv 1}}{\sp{\sn fc3DConstrainRotation}{\sv 1}}{\sp{\sn fc3DRotationCenterAuto}{\sv 0}}{\sp{\sn fc3DParallel}{\sv 1}}{\sp{\sn fc3DKeyHarsh}{\sv 1}}{\sp{\sn fc3DFillHarsh}{\sv 0}}{\sp{\sn fCalloutMinusX}{\sv 0}}
{\sp{\sn fCalloutMinusY}{\sv 0}}{\sp{\sn fCalloutDropAuto}{\sv 0}}{\sp{\sn fCalloutLengthSpecified}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 0}}{\shptxt \pard\plain \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0
\f2\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {1
\par 00112233445566778899AABBCCDDEEFF
\par }\pard\plain \s19\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\loch\af2\hich\af2\dbch\af17 \hich\af2\dbch\af17\loch\f2 6323B4A5BC16C479ED6D94F5B58FF0C2
\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8192\dptxbx\dptxlrtb{\dptxbxtext\pard\plain \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f2\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {1
\par 00112233445566778899AABBCCDDEEFF
\par }\pard\plain \s19\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\loch\af2\hich\af2\dbch\af17 \hich\af2\dbch\af17\loch\f2 6323B4A5BC16C479ED6D94F5B58FF0C2
\par }}\dpx0\dpy80\dpxsize4200\dpysize904\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{\fs24
\par
\par
\par
\par }{\f0
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 {\b\f0\fs24 LIBRARY
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0
\par }{\f0\fs24 FreePascal library}{\f0\fs24\revised\revauth1\revdttm1180143079 \tab }{\deleted\f0\fs24\revauthdel1\revdttmdel1180143079 }{\f0\fs24 (}{\f0\fs24\revised\revauth1\revdttm1180143077 Linux: }{aeslibp.}{\revised\revauth1\revdttm1180143077
p, aeslibp.ppu, aeslibp.o;
\par }\pard \s23\ql \fi720\li1440\ri0\widctlpar\faauto\s23\ql \fi720\li1440\ri0\widctlpar\faauto\pnrauth1\pnrdate1180143079\pnrnot1\adjustright\rin0\lin1440\itap0 {\f0\fs24\revised\revauth1\revdttm1180143077 Windows:}{\revised\revauth1\revdttm1180143077
aeslibp.p, aeslibp.ppw, aeslibp.ow}{\deleted\revauthdel1\revdttmdel1180143078 *}{\f0\fs24 ):}{\deleted\f0\fs24\revauthdel1\revdttmdel1180143080
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\s23\ql \li0\ri0\widctlpar\faauto\pnrauth1\pnrdate1180143082\pnrnot1\adjustright\rin0\lin0\itap0 {\deleted\f0\fs24\revauthdel1\revdttmdel1180143081
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24\revised\revauth1\revdttm1180143082
\par }{type
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 { HexStr = String [ 32 ]; \{ only '0'..'9', 'A'..'F' \}
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 { Block = array [ 0..15 ] of Byte; \{ 128 bits \}
\par
\par procedure HexStrToBlock ( const hs: HexStr; var b: Block );
\par procedure BlockToHexStr ( const b: Block; var hs: HexStr );
\par procedure Encrypt ( const p, k: Block; var c: Block );
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 { }{\lang1031\langfe1033\langnp1031 \{ c = E(p,k) \}
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {procedure Decrypt ( const c, k: Block; var p: Block );
\par \{ p = D(c,k) \}
\par }{\f0\fs24
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 {\deleted\f0\fs24\revauthdel1\revdttmdel1180143088 You are given a}{\f0\fs24\revised\revauth1\revdttm1180143088 The}{\f0\fs24 program }{aestoolp}{
\revised\revauth1\revdttm1180143072 .pas}{\deleted\f0\fs24\revauthdel1\revdttmdel1180143088 , which}{\f0\fs24\revised\revauth1\revdttm1180143088 }{\f0\fs24 illustrates how to use the FreePascal library.
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0\fs24
\par GNU C/C++ library (}{\f0\fs24\revised\revauth1\revdttm1180143077 Linux and Windows: }{aeslibc.}{\revised\revauth1\revdttm1180143073 h, aeslibc.o}{\deleted\revauthdel1\revdttmdel1180143073 *}{\f0\fs24 ):
\par
\par }{typedef char HexStr[33]; /* '0'..'9', 'A'..'F', '\\0'-terminated */
\par typedef unsigned char Block[16]; /* 128 bits */
\par
\par void hexstr2block ( const HexStr hs, }{\revised\revauth1\revdttm1180143089 /* out-param */ }{Block b );
\par void block2hexstr ( const Block b, }{\revised\revauth1\revdttm1180143089 /* out-param */ }{HexStr hs );
\par }\pard \s23\ql \li0\ri-334\widctlpar\faauto\adjustright\rin-334\lin0\itap0 {void encrypt ( const Block p, const Block k, }{\revised\revauth1\revdttm1180143089 /* out-param */ }{Block c );
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 { }{\lang1031\langfe1033\langnp1031 /* c = E(p,k) */
\par }\pard \s23\ql \li0\ri-334\widctlpar\faauto\adjustright\rin-334\lin0\itap0 {void decrypt ( const Block c, const Block k, }{\revised\revauth1\revdttm1180143090 /* out-param */ }{Block p );
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 { /* p = D(c,k) */
\par }{\f0\fs24
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 {\f0\fs24 The program }{aestoolc}{\revised\revauth1\revdttm1180143073 .c}{\f0\fs24 illustrates how to use the GNU C/C++ library.
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 {\b\f0\fs24 CONSTRAINTS
\par }\pard \s23\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\f0
\par }{\f0\fs24 For the number }{\i\f0\fs24 s}{\f0\fs24 of relevant hexadecimal digits in a key it holds that 1 }{\f0\fs24 {\field{\*\fldinst SYMBOL 163 \\f "Symbol" \\s 12}{\fldrslt\f3\fs24}}}{\f0\fs24 }{\i\f0\fs24 s }{\f3\fs24 {\field{\*\fldinst SYMBOL
163 \\f "Symbol" \\s 12}{\fldrslt\f3\fs24}}}{\f0\fs24 5.
\par
\par }{\b\deleted\f0\fs24\revauthdel1\revdttmdel1180143075 HINT}{\deleted\f0\fs24\revauthdel1\revdttmdel1180143074
\par
\par }{\b\f0\fs24\revised\revauth1\revdttm1180143075\crauth1\crdate1180143075 HINT}{\f0\fs24\revised\revauth1\revdttm1180143075 : }{\f0\fs24 A good program can recover }{\deleted\f0\fs24\revauthdel1\revdttmdel1180143074 any of the required }{\f0\fs24
keys in less than 10 seconds}{\f0\fs24\revised\revauth1\revdttm1180143074 for any allowed input}{\f0\fs24\revised\revauth1\revdttm1180143092 file}{\f0\fs24 .
\par }}