The goal of this book is to teach you to think like a computer scientist. This + way of thinking combines some of the best features of mathematics, engineering, + and natural science. Like mathematicians, computer scientists use formal + languages to denote ideas (specifically computations). Like engineers, they + design things, assembling components into systems and evaluating tradeoffs + among alternatives. Like scientists, they observe the behavior of complex + systems, form hypotheses, and test predictions.
+The single most important skill for a computer scientist is
On one level, you will be learning to program, a useful skill by itself. On + another level, you will use programming as a means to an end. As we go along, + that end will become clearer.
+
+
+
Programming languages are formal languages that have been designed to + express computations.+
Formal languages tend to have strict rules about syntax. For example,
Syntax rules come in two flavors, pertaining to
The second type of syntax rule pertains to the
When you read a sentence in English or a statement in a formal language, you
+ have to figure out what the structure of the sentence is (although in a natural
+ language you do this subconsciously). This process is called
For example, when you hear the sentence, The other shoe fell
, you understand
+ that the other shoe is the subject and fell is the verb. Once you have parsed
+ a sentence, you can figure out what it means, or the
Although formal and natural languages have many features in common — tokens, + structure, syntax, and semantics — there are many differences:
+Natural languages are full of ambiguity, which people deal with by + using contextual clues and other information. Formal languages are + designed to be nearly or completely unambiguous, which means that any + statement has exactly one meaning, regardless of context.
+In order to make up for ambiguity and reduce misunderstandings, natural + languages employ lots of redundancy. As a result, they are often + verbose. Formal languages are less redundant and more concise.
+Formal languages mean exactly what they say. On the other hand,
+ natural languages are full of idiom and metaphor. If someone says, The
+ other shoe fell
, there is probably no shoe and nothing falling.
You'll need to find the original joke to understand the idiomatic + meaning of the other shoe falling. Yahoo! Answers thinks it + knows!
+People who grow up speaking a natural language—everyone—often have a hard + time adjusting to formal languages. In some ways, the difference between formal + and natural language is like the difference between poetry and prose, but more + so:
+Words are used for their sounds as well as for their meaning, and the + whole poem together creates an effect or emotional response. Ambiguity + is not only common but often deliberate.
+The literal meaning of words is more important, and the structure + contributes more meaning. Prose is more amenable to analysis than + poetry but still often ambiguous.
+The meaning of a computer program is unambiguous and literal, and can + be understood entirely by analysis of the tokens and structure.
+Here are some suggestions for reading programs (and other formal languages). + First, remember that formal languages are much more dense than natural + languages, so it takes longer to read them. Also, the structure is very + important, so it is usually not a good idea to read from top to bottom, left to + right. Instead, learn to parse the program in your head, identifying the tokens + and interpreting the structure. Finally, the details matter. Little things + like spelling errors and bad punctuation, which you can get away with in + natural languages, can make a big difference in a formal language.
+
+
The differences between natural and formal languages include:
+natural languages can be parsed while formal languages cannot.
+ambiguity, redundancy, and literalness.
+there are no differences between natural and formal languages.
+tokens, structure, syntax, and semantics.
+True or False: Reading a program is like reading other kinds of text.
+True
+False
+A unique interpreter environment that allows Python to be executed from within a web browser.
+A general step by step process for solving a problem.
+An error in a program.
+An intermediate language between source code and object code. Many + modern languages first compile source code into byte code and then + interpret the byte code with a program called a virtual machine.
+An interactive environment that allows the user to control the step by step execution of a Python program
+Information in a program that is meant for other programmers (or anyone + reading the source code) and has no effect on the execution of the + program.
+To translate a program written in a high-level language into a + low-level language all at once, in preparation for later execution.
+The process of finding and removing any of the three kinds of + programming errors.
+Another name for a runtime error.
+Another name for object code that is ready to be executed.
+Any one of the languages that people have designed for specific + purposes, such as representing mathematical ideas or computer programs; + all programming languages are formal languages.
+A programming language like Python that is designed to be easy for + humans to read and write.
+To execute a program in a high-level language by translating it one + line at a time.
+A programming language that is designed to be easy for a computer to + execute; also called machine language or assembly language.
+Any one of the languages that people speak that evolved naturally.
+The output of the compiler after it translates the program.
+To examine a program and analyze the syntactic structure.
+A property of a program that can run on more than one kind of computer.
+A function used in a program or script that causes the Python + interpreter to display a value on its output device.
+The process of formulating a problem, finding a solution, and + expressing the solution.
+A sequence of instructions that specifies to a computer actions and + computations to be performed.
+A formal notation for representing solutions.
+An interactive user interface to the Python interpreter. The user of a + Python shell types commands at the prompt (>>>), and presses the return + key to send these commands immediately to the interpreter for + processing.
+An error that does not occur until the program has started to execute + but that prevents the program from continuing.
+An error in a program that makes it do something other than what the + programmer intended.
+The meaning of a program.
+A style of using Python where we type expressions at the command
+ prompt, and the results are shown immediately. Contrast with
+
A program, stored in a file, in a high-level language before being compiled or interpreted.
+The structure of a program.
+An error in a program that makes it impossible to parse — and + therefore impossible to interpret.
+One of the basic elements of the syntactic structure of a program, + analogous to a word in a natural language.
++ Hi everyone, there's a bit of confusion going around with requirements.txt. This is simply a file in which you specify your project's dependencies, minus those which are already bundled into Python (e.g. csv). + + You only need to provide this file if you're using external dependencies (numpy, scipy, sklearn, etc). The autograder has matplotlib bundled with it which is why you don't have to include it. + + One easy way to generate this file is by running this command in the terminal (while navigated to the directory of your final project): + + pip freeze > requirements.txt + + Breakdown of what's happening (aside from generating the proper requirements.txt file): + pip is Python's dependency (aka "package") manager + freeze is just the command, no idea why it's called freeze. Educated guess: I think it's because it's "freezing" your dependencies at a moment in time (or in other words, at a specific version) and saving them to a file. + > is the Linux output redirection operator, which is going to take the result of pip freeze and redirect it to the file you provided, which is requirements.txt + + That's it! Your requirements.txt will be in a format like: + + numpy==1.26.2 + + + (CS majors: read on for why this isn't great) + + So actually, this will freeze ALL of your requirements. I ran this on my computer and had like a 100 line file of tons of dependencies, and we want people to install only what they have to (we want to minimize overhead/space taken up). + + Probably the best way to do this is to pip show DEPENDENCY where DEPENDENCY is something like numpy, find the version, and type it into requirements.txt in the format listed above. There are also packages (ironically) that do this. + + You can also view all packages (and their versions) that people from around the world have created on PyPI. This even includes stuff TA Greg made custom for the autograder, and is also why we made you all install Anaconda (which, for the most part, automatically dealt with this)! +
+ + + +
+
+
Programming languages are formal languages that have been designed to + express computations.+
Formal languages tend to have strict rules about syntax. For example,
Syntax rules come in two flavors, pertaining to
The second type of syntax rule pertains to the
When you read a sentence in English or a statement in a formal language, you
+ have to figure out what the structure of the sentence is (although in a natural
+ language you do this subconsciously). This process is called
For example, when you hear the sentence, The other shoe fell
, you understand
+ that the other shoe is the subject and fell is the verb. Once you have parsed
+ a sentence, you can figure out what it means, or the
Although formal and natural languages have many features in common — tokens, + structure, syntax, and semantics — there are many differences:
+Natural languages are full of ambiguity, which people deal with by + using contextual clues and other information. Formal languages are + designed to be nearly or completely unambiguous, which means that any + statement has exactly one meaning, regardless of context.
+In order to make up for ambiguity and reduce misunderstandings, natural + languages employ lots of redundancy. As a result, they are often + verbose. Formal languages are less redundant and more concise.
+Formal languages mean exactly what they say. On the other hand,
+ natural languages are full of idiom and metaphor. If someone says, The
+ other shoe fell
, there is probably no shoe and nothing falling.
You'll need to find the original joke to understand the idiomatic + meaning of the other shoe falling. Yahoo! Answers thinks it + knows!
+People who grow up speaking a natural language—everyone—often have a hard + time adjusting to formal languages. In some ways, the difference between formal + and natural language is like the difference between poetry and prose, but more + so:
+Words are used for their sounds as well as for their meaning, and the + whole poem together creates an effect or emotional response. Ambiguity + is not only common but often deliberate.
+The literal meaning of words is more important, and the structure + contributes more meaning. Prose is more amenable to analysis than + poetry but still often ambiguous.
+The meaning of a computer program is unambiguous and literal, and can + be understood entirely by analysis of the tokens and structure.
+Here are some suggestions for reading programs (and other formal languages). + First, remember that formal languages are much more dense than natural + languages, so it takes longer to read them. Also, the structure is very + important, so it is usually not a good idea to read from top to bottom, left to + right. Instead, learn to parse the program in your head, identifying the tokens + and interpreting the structure. Finally, the details matter. Little things + like spelling errors and bad punctuation, which you can get away with in + natural languages, can make a big difference in a formal language.
+
+
The differences between natural and formal languages include:
+natural languages can be parsed while formal languages cannot.
+ambiguity, redundancy, and literalness.
+there are no differences between natural and formal languages.
+tokens, structure, syntax, and semantics.
+True or False: Reading a program is like reading other kinds of text.
+True
+False
+If problem solving is a central part of computer science, then the solutions that you create through
+ the problem solving process are also important. In computer science, we refer to these solutions
+ as
Our goal in computer science is to take a problem and develop an algorithm that can serve as a general solution. Once we have such a solution, we can use our computer to automate the execution. As noted
+ above, programming is a skill that allows a computer scientist to take an algorithm and represent it in
+ a notation (a program) that can be followed by a computer. These programs are written in
+
What is the most important skill for a computer scientist?
+To think like a computer.
+To be able to write code really well.
+To be able to solve problems.
+To be really good at math.
+An algorithm is:
+A solution to a problem that can be solved by a computer.
+A step by step list of instructions that if followed exactly will solve the problem under consideration.
+A series of instructions implemented in a programming language.
+A special kind of notation used by computer scientists.
+The goal of this book is to teach you to think like a computer scientist. This - way of thinking combines some of the best features of mathematics, engineering, - and natural science. Like mathematicians, computer scientists use formal - languages to denote ideas (specifically computations). Like engineers, they - design things, assembling components into systems and evaluating tradeoffs - among alternatives. Like scientists, they observe the behavior of complex - systems, form hypotheses, and test predictions.
-The single most important skill for a computer scientist is
On one level, you will be learning to program, a useful skill by itself. On - another level, you will use programming as a means to an end. As we go along, - that end will become clearer.
+It's hard (if not impossible) to measure the performance of algorithms on a computer. We won't get + deep into it, but this is due to things like variable hardware between computers and just general performance of software.
+ +This is where
This mathematical notation is denoted with a capital O (a big o!) followed by parenthesis, similar to a basic algebraic
These factors have magnitude, which helps us to quantify how quick or slow an algorithm is.
+ +From left to right, left being the quickest time and right being the slowest time, we typically see these complexities:
+Something like an
This figure shows complexities as a graph and which ones we do and don't like. Strive to never write something worse than
Take the following code as an example:
+This code runs in
Now, let's check out an example with a loop:
+As you can see, this function simply prints
The
In the last code example,
All of these lead nicely into a future chapter where we talk about search and sort algorithms, which are + closely related to Big O Analysis and are an important topic in computer science.
+ +One more important topic in Big O Analysis is
Constant time operations always simplify to
Added constants are ignored when a larger factor is around. For instance,
-
-
Programming languages are formal languages that have been designed to - express computations.-
Formal languages tend to have strict rules about syntax. For example,
Syntax rules come in two flavors, pertaining to
The second type of syntax rule pertains to the
When you read a sentence in English or a statement in a formal language, you
- have to figure out what the structure of the sentence is (although in a natural
- language you do this subconsciously). This process is called
For example, when you hear the sentence, The other shoe fell
, you understand
- that the other shoe is the subject and fell is the verb. Once you have parsed
- a sentence, you can figure out what it means, or the
Although formal and natural languages have many features in common — tokens, - structure, syntax, and semantics — there are many differences:
-Natural languages are full of ambiguity, which people deal with by - using contextual clues and other information. Formal languages are - designed to be nearly or completely unambiguous, which means that any - statement has exactly one meaning, regardless of context.
-In order to make up for ambiguity and reduce misunderstandings, natural - languages employ lots of redundancy. As a result, they are often - verbose. Formal languages are less redundant and more concise.
-Formal languages mean exactly what they say. On the other hand,
- natural languages are full of idiom and metaphor. If someone says, The
- other shoe fell
, there is probably no shoe and nothing falling.
You'll need to find the original joke to understand the idiomatic - meaning of the other shoe falling. Yahoo! Answers thinks it - knows!
-People who grow up speaking a natural language—everyone—often have a hard - time adjusting to formal languages. In some ways, the difference between formal - and natural language is like the difference between poetry and prose, but more - so:
-Words are used for their sounds as well as for their meaning, and the - whole poem together creates an effect or emotional response. Ambiguity - is not only common but often deliberate.
-The literal meaning of words is more important, and the structure - contributes more meaning. Prose is more amenable to analysis than - poetry but still often ambiguous.
-The meaning of a computer program is unambiguous and literal, and can - be understood entirely by analysis of the tokens and structure.
-Here are some suggestions for reading programs (and other formal languages). - First, remember that formal languages are much more dense than natural - languages, so it takes longer to read them. Also, the structure is very - important, so it is usually not a good idea to read from top to bottom, left to - right. Instead, learn to parse the program in your head, identifying the tokens - and interpreting the structure. Finally, the details matter. Little things - like spelling errors and bad punctuation, which you can get away with in - natural languages, can make a big difference in a formal language.
-
-
The differences between natural and formal languages include:
-natural languages can be parsed while formal languages cannot.
-ambiguity, redundancy, and literalness.
-there are no differences between natural and formal languages.
-tokens, structure, syntax, and semantics.
-True or False: Reading a program is like reading other kinds of text.
-True
-False
-Hi everyone, there's a bit of confusion going around with requirements.txt. This is simply a file in which you specify your project's dependencies, minus those which are already bundled into Python (e.g. csv). @@ -31,166 +33,4 @@
- -
-
-
Programming languages are formal languages that have been designed to - express computations.-
Formal languages tend to have strict rules about syntax. For example,
Syntax rules come in two flavors, pertaining to
The second type of syntax rule pertains to the
When you read a sentence in English or a statement in a formal language, you
- have to figure out what the structure of the sentence is (although in a natural
- language you do this subconsciously). This process is called
For example, when you hear the sentence, The other shoe fell
, you understand
- that the other shoe is the subject and fell is the verb. Once you have parsed
- a sentence, you can figure out what it means, or the
Although formal and natural languages have many features in common — tokens, - structure, syntax, and semantics — there are many differences:
-Natural languages are full of ambiguity, which people deal with by - using contextual clues and other information. Formal languages are - designed to be nearly or completely unambiguous, which means that any - statement has exactly one meaning, regardless of context.
-In order to make up for ambiguity and reduce misunderstandings, natural - languages employ lots of redundancy. As a result, they are often - verbose. Formal languages are less redundant and more concise.
-Formal languages mean exactly what they say. On the other hand,
- natural languages are full of idiom and metaphor. If someone says, The
- other shoe fell
, there is probably no shoe and nothing falling.
You'll need to find the original joke to understand the idiomatic - meaning of the other shoe falling. Yahoo! Answers thinks it - knows!
-People who grow up speaking a natural language—everyone—often have a hard - time adjusting to formal languages. In some ways, the difference between formal - and natural language is like the difference between poetry and prose, but more - so:
-Words are used for their sounds as well as for their meaning, and the - whole poem together creates an effect or emotional response. Ambiguity - is not only common but often deliberate.
-The literal meaning of words is more important, and the structure - contributes more meaning. Prose is more amenable to analysis than - poetry but still often ambiguous.
-The meaning of a computer program is unambiguous and literal, and can - be understood entirely by analysis of the tokens and structure.
-Here are some suggestions for reading programs (and other formal languages). - First, remember that formal languages are much more dense than natural - languages, so it takes longer to read them. Also, the structure is very - important, so it is usually not a good idea to read from top to bottom, left to - right. Instead, learn to parse the program in your head, identifying the tokens - and interpreting the structure. Finally, the details matter. Little things - like spelling errors and bad punctuation, which you can get away with in - natural languages, can make a big difference in a formal language.
-
-
The differences between natural and formal languages include:
-natural languages can be parsed while formal languages cannot.
-ambiguity, redundancy, and literalness.
-there are no differences between natural and formal languages.
-tokens, structure, syntax, and semantics.
-True or False: Reading a program is like reading other kinds of text.
-True
-False
-If problem solving is a central part of computer science, then the solutions that you create through
- the problem solving process are also important. In computer science, we refer to these solutions
- as
Our goal in computer science is to take a problem and develop an algorithm that can serve as a general solution. Once we have such a solution, we can use our computer to automate the execution. As noted
- above, programming is a skill that allows a computer scientist to take an algorithm and represent it in
- a notation (a program) that can be followed by a computer. These programs are written in
-
What is the most important skill for a computer scientist?
-To think like a computer.
-To be able to write code really well.
-To be able to solve problems.
-To be really good at math.
-An algorithm is:
-A solution to a problem that can be solved by a computer.
-A step by step list of instructions that if followed exactly will solve the problem under consideration.
-A series of instructions implemented in a programming language.
-A special kind of notation used by computer scientists.
-vyv^W|x*TuEA9^)ABAej0$l{&ZNvG0?dow zWLoxB&Ms~69-lby&?VqMFc~o_2dKtunpa%1S~I(H_b|aBo$wY5ksvG~iDfQnaK>rr ztz1*FX=WuiQMHfB0aN(-9bZ?SXd*yCL^y)S@NT~az9L6S^ExGX6lb^=G`QLW{Mhe9Eg ze#tZvqC4_fsz<4ANJnR@RA;3xpA{yY(KvGOrlfi$EF!C4O4_dxZ^%W=R7H5oRG($A zJw7mD3j2t@)a$?7<&Iw_x>P^cRkSa_;Pi-L=wwZOXOS>Wad4adoH}!e&LeEy1(h|k z61DAwusxaAb|d23YjQqJ<>y#=$rnD{!$SxE8tDLRySzA$L0I%QtM}`p7wz2v(M`lj zbibp+p3Imyg#%2n->)(kW}1)I>K9kVZ8B4neE7*$W7(dEo(|Hq*5Z789?@3#P3}AW zGyae`dBZhN`1%^Yaam_(|6k0;xxygalTCnNNdzj8DLJO+^K5AZRJ14LcEdH&G!RBD z42_(QXkE|ajz=38bHkayblj7}-Y=wh5iwH142;H%G%f;o?nv0mJj!ajNQlW_R1cYD zh7k5F#*5@&y8GW#uym0Aq5trmvgLvomo~S~gPO{l(c 6(}?Yk zMQApNfR(dDs{&EZd{M$~oI3t31z*p&@*WaRE>N4Qx`LRpnhM}NnHIMzn0S$us9!0T zxaEF?OjvD&v4Kcr=pR3|+ss;fC75Qu&| kmsy zlT_E+bV~^!)sx>;EFumg%L<%sD=YCJgIAv?01txvQ?OHSe^h>IR8W|_qvNX>+|Qx} zMGj=8zBEI6b=&wL>jbqA8REF47aM)B?Qa2E^wC>hd`sM#+z++RQTZ{|Gudx0W(jW% zNgP8M=>L%Z9{ux_W~z!?J@1G{guxq22 ~dw=h2{Y~NlR*dHm z&u-q>jRvoEjtZm*`Pl1dp&QR;sacY%xR6w6ez`l6h;6jH8mICoz#{->KMFGG^Yq@L ztHtKDxBK}K(!1|f@R6+nTRAZ{>r;+Po+meAcEIZ9uoTjJjQpO?qkGnQSh35kTI`fW zvx2Uv;Of>b;RjG5kZw*CZoKm$-x8?aV;(2WxDxzvxR+=bNaR)AT8IZ7IaT9}>?YLD za(4@72%NwKUQ5o}X)@GbNQT(c`xi`vQVf405+)1CAL8+#P3lZWy0_a={Ctw98Q+{h zmnz#b8sqn-#ig>4GM(O{<_nqoQmNh1L2_~oCVede>yh1};7P6BYL?sX?JJSMjhgF{ zlB6n^)w*zOBnhU`nde{~c7xSKO3_Se7 rM-deIFXt z_uith*MKw@r5!4B1!v<8qMgTs#fRP ~>W 4GbSD`R=LJco zny|z*?Q+2DoVM7u%xQcGd-cP4b-GBDh|iyv2p9~G*cf-g?FRQa1I@Y-;dQ-&`ong0 zyRA*{!1o8a@l+R=6G=o(Le 9~4()wI{e#F>%?iT{qdLul?#Z_Xuhu(MlVU`7Ex(t>fzGiCB7VDJQCy|d z@i5QhZ7gf^R})B{55$^w&TRa@f_?YazC}t#$x+2f?K<6LVY8=U)T~W z*q9zaKZAPki8$Z=*~Aj@4gx=d)S`jwM{+v06O?ad2NMy(z#sv_ScFah%L-~jD%8dW z;(Z3S{i$xZh3oKC8$|lPJT@Kq?YwfE%skutTkZNuFi8yhcOs3;VAI`rlw6OkQfv?> zN1XFULGDM d9jdNIu8iGZq< zw$y$s(=jH?*oi(N!l?{pWT;)ZS6R>uYpK7%GwbZ*ZAEU{;MRsz$#xnHEnV!unt$W& z7c#l(4My)^_@PUC0-c(Gn;sxlJP?fVMEjcJoGfbuLIH$k{oS2!=HI~M@@9U%el?sF zH{Lxp7uS3Tq5%=pSERxR?`EWsDewa$;#}$cM~Sx%FcsM-T}S`5+S;J*$iRpMhvvUI zzP<99b{g0!(aXls<^^=PWyHhvO^pN9adk6dd%K#wshyVu9A6?RI~fPHruCkWjg+Gi zARNp?@}BV@IZ2oh-U09e06DRn%MVbXlM<@Z>I!}Bc#Q}Spixxcp#>60En)JKKIz98 zV3_ROtK~}cZP-kr6wqxW*?mPFBXgGH>fq+QwUh8JjxL^IP{N)PuMjq3`Uu|B_wz1T z<}9lXLV60-h>To7D}1ra=AGzi`^S_Q3s+@;wsM{EzfAY0h=Opts82G4c`wQ~?ulNg z^(G2)xtpmLDK{|zDedrs=UA7Y_aK6yjd~w2PX1m*NQ8Qb-<=J8(fbOfK!eN88l;4q zmyD2%G)e8(avdZ*S5+^`>0Ycj{P9_L<_G*vtzZBYnlxH7neL{YLZn1Tp=|gS=L+&W zaH==u)_bmv?}7?iBVq+sm|rQZ;H>?fc+R0Z#bhjUAx@WHf39|IC ~wN$^I z+M!-j+h4fRY88JiLT?4N1Aq{J8gU%Wxxm7R_~DBj)7XmTe3XM+&wwS@NikqSO~j_- zj{5Y*0|h0VKUIi^-Gl-a98#?jqUz%sqA4jxF?z?#D9bZQhRv7n2ae)o$d{JrpdqxI zFD*)`cM61X*92tfk`vZ!m&=NCNd}PFiF PWVM_+WAjR8eD3JUsqg`JHH z%bW|Pm#*G!G+Pvy!8vZ+k*P@Xhje*yoGXv4rPqb%RVU-RGSp&>GcE+k@dQV+E-4)6 z@oWen)=Bf-FPrKfxdM;I4~cv48yWuz0Tu{^_;7ul)E4SQfzky{O@4gUTXa;}+1pTT z5lsTx!W5n>e_Fc-;u8Kcy1Y>%^mOK7jlRT915*HHtaYqy9Bt#TvBj>{o_guK%oU?` zWXW{owkKZ|w*Sjl6QG3+M#g_SlT25JWgQax+0Q~Fdw$e{vTiR zFQdwCMJbad$3$<1>b6o5@uNfYEa?0?Dn=@(cdD5fgXUuPjh~j=auYk=M%Tn+Z`-0l zjI|Vyt|%XbdCFep%snj4v%!CIiaJE@N#4~=)+G?FO!&Q1tvU`GjQ*cJ{nyvkhIU6b z%PbwlSjnOMwwk~=*Y`cW=*Ls-@4SHL-e4)ZT(|8IQHC0wy>hX^SD;srvHAF{O x>#* zegkp0qbmeUlzGkRY8*U4eGbzK)^{E9KM*k;P1oFM3*VriKZq&xGuVf+R4_Tao?P1D zNzSSFs{wIU(>WdE{|e6keL*Y`9;mra(4`5j+OZWk)|Ux5prY?SI;eFWQLrd2sRSBc zG{hCp`lB$b-?9E?^f`JQl|*NI#jt|qt6pDPRdorf_U?V9pKsKzU4kb}{QlH~_ofed zOCo^K63~sW(<*u+>;K%RuH5TB17u5@N}1dMR8){O3{OOF<>ajR@ygcG@@=S51BUN; zn xjV+!@!17y#y&l9x169Jl+JYCEBRo4_Vu(g5;@@@D3C|(WLf7v!X_tANZ z{PU~rg!Ek81Nw?~h^?C**;YsJs!GryoGI`BpEkRLTyTADZ@;c(+iv4dEG#%deP6=k zZsV3H48;shp$-Tbo*UlQy52YQGWrS%pu@8`38T#oZjL`kM*w~GiZCc%N4LRk2c4}3 z@LA35j(|C6&l!zg@wiux%Q^kvkcMv?v`);zbH~rVp{l0pd(JidcQNrlZoogwptghA z ZEdv*i(9z8NZ|}*FmS$^caI(v`Bqg`<*YtDWZld=>>HBI#9pVE zw$UsyOrby+2UefcW9PuYhWgI+-AxD!vhjRzvB9p|Ubg;A*%`Q>tafGC%Pk61cl^I! zu >YomwEJ!rNQ#$te(=agJ~rtbFhd z^)q$*S^T5?&P+XYp|P>s5o1u!R8^H&0; 3j^Inj!5X9UU@O^b-od zLmrAHBWm?&HJ>Pm_rLt -M7OI*EAA$Y7A;Xn$1$f9OJZRD+%k z*&-#RoLNF{dU=^-h0I%3Rh4b%j7{2re$buXMUf4Ij7Nk~1*NO=E~jRdBNye>WGaOE zWy`eV#IUbt|2IP@P9Ug2z31HzOySWZnN>&ku&-EcQ71(ZtCDhx`Da1b-Hb4ppn5WP zqPV_gg6Sl;RG0sGT Bs*NmRbi4AWjWNo!2h#L&_Zy*u_o9zt;Vs%WMc# a%cNf z@Uzqcpdq*_5?v0fy+Ck-8o>IifKb{RC4YWk8* |Umz!>8;{IdJ3Dn2rp>}-SqebA8H_u` 6?48fRMn( z6WOje5j;cIL?Qj;RZDpG4!YAd*muXbi_g8Q@9^a-WxlvC%u~Txt}RjZ1pl(m%ev}t z1@6S%!2_|UiR28XZ?10<#OY_*z-eXMPL5SgqG@>_<6A!eZk6^`@b#Y}6jK*JC%@#M z?TZ(sbpwlp;|->~CEj8ORnPCN@L@UJCa%zPO0(lvDi$Keg%wOtsls5^QsOI`f`5?n z-Y~wH-K_1Y+Z#%T!YS4ihdUhKRMNCIsc(L-Up&qAeRj2VEOB(}HMn){YUWlxHI`S4 z-J>qG4u{wLbApbS_$v&oZe1otG*rN}yY}~aN3`pKb ?hq^8{peAO4UJX{z01?#*6E4_}|q;?q6bO-DD67@+z9>YC4%e z4LG@5^8W$sFRaH8&TOCvx(SWMihM6OAoutuT1QwwG|JE=DF0g25>dh1`ynQagxnyS z7`M|Jf-u3O%I(oJc~_D CX~$^_ zD)lO=C5*j|!E*xIglEBn21p1Y8@xTI^t488lk+FOI>p1NJcpyqz1z}i)sDAh3-e#I z*p{S>p1)N*(mLFPxmv)dhAWIe9Tk>FZMGO*hjS{pzGLA=byju~OHAyB<9=DQ%1V~D zaZTfXM{0eghi)#2l~Do|xx2c!aTMpEs1cqVG8M ?ziEPs& ztLWpS1TrGuHuVn}t|vX5+xHoZ_YfAR1f~0O6Eaw_ImTZo68~H AENPMrHi!YkuD1W`M-!OjPvc61<2VvOf3 zP1I|u-h{N+tT}_ROfrT{+U=@0St`e*B|N_h;gd3jHR~9MlJpOyiN38ou0F2X+ (T$|gaDjSle|2HN%HIP!FoY$6KhvReRS zgvtqlq8Loy&3N`u*~i#0q7bu-@>!)FadYWnob_$n%~sR;3jfAlo=DaQu$N8fm8y|D z8`A|8Mf25rvva_GMwt+3a=`Pz@w`la<88q9)xf-ViA&g;4(0U#>tJ@#3)VWW9B72m z#RZ5WS*#kl*Px{Wiv3NPDX<0*(>M5ScS;6HLUVdroMUdqTQoVh2!z_u*yu(4`$r|C zTMdl;%v@?c_b_U&u;|k17dGzWJ0rb93@nrtl+O8xlh!A%=Ia!Zr4B-@rq*OyN{`qf z>*I>~NW~8K+Zk-1vZGS=n1Mdye{%r{e|}jtA+T;Wg(_xXzWzbD(d6w|{+hc`Au1wx zX3fi%R(V8MDlQ(ro@w`=oJWX;;Pn;&V&%Xv$IwP+=f<)7Q^qY&`R5mSdeX-bS8sIB zy*(EfUN&Tjr}8)kaT6gSPFQ>c2lRpGlkYUTT@>|2M0a7%>;hAH|3suhc4fQxdVHpP z`IBcEF7YiQO-vWmhb|1NJyh5%Rn4Vj{FpI!kU0I8nT^sApHR-fN9))gQ%)7vhs;wF zqKo-K?uSThKIy FDg(c zpFVc0;ic4sHYMAL)Qs{I`SFoes>O|^(X%+iNB0i)y;@zS1KCf4qGyv8n8mjS#2N_S zS?!(EX5zs|7SC4RYnJ4*BeAeUUd(N6;>6#hX&S^?$NpUyc1uUWTz&OdUm|rx 4WtqDZ4v*Nr%>F&k6kB2htirFt@s){bf7?mi$82qlRqojCBMvjRL}R!(O~ zeaT@S7{&Rv;f8BiU)r-ute+P9c-}|a5gq&VW^f4ktDJsbVg;=jdq;lR{Bfel A^Uephp(s&?uQvCf2G;`2xM0nf)4++Nl4STYIjcb`@IP%O_JLM?9OG{qWY zczw-{s(I(ZQ88*pR8qq@`^A{y@eMy9>!6kA3_!y)#~SV%%Tu2+IxnPb$nu`mS-s#FRlo|V}&=1H8!49&j{P=?DqK) zFq!Vm#`3Yq&y`aePH$|``L!zpUb?DY-Z;72IAsB+*LJ}V$*G^C7cTv4nyKSvbeZeJ zDJiM!{haC=kg3|F^*>nqbE`S+luM9`G(GS>uiY#@4aNkVI*1l<|H=$-K%ZS*k@oz+ zUVn3e3ZkvQyAEHNqTrOS*_<)VRY#*7iyL?dc5)b8f4Zd`BinFJ22Vl`fPrTRn|^D6 z8(;~;pnt!My`1Nh6U|=10-ldFu1} v30b zbZY 5(R%UZv@UknFXL30qJxe6GL$M^)gTf|8IWHaV2%1YWIproXc$`%>&d{1%)Hg! z0L4)B)65$z@uSF#xiQYrJwjtzKeNo!J_*N8Efg_7vD8&iM zwLFm$}I-k9)QV^z=9K`Hi-jf&vG09fTw80!b+t*778E@ zahv?aZsiZRP!7D~K7i}&X0eyQH0RA=mpHqdn`hW9Bx*zNd3wf+p%AP{Vf;{a6YgNP zt@j*fVju!;HUz3q^z6^B%6Kulg|k+7z7u^px}I8{CtJz&;ZY7a0&{sU%+)B`+A_bh z&2O+aurXC9mIi%2eoJ*_-t{8)78~3$R-078^EbES4yKV+cucNqzGFs(N%0+;!VLXL z2Fb@;fEcjWxn#@PzMN8+l#&>}x=ev1Df*Kv{GJa!q9~s7`q-XnGjS5e1PS?&sa?GF zU`|%D%F34kqw3Bso%7$t(+G#;6z?Z1iv1ThY;TS(s*TqFE(V%ij!DiT{cKfx!)zNe zr=$3cbMCe2d$HkrCT&D4`mX8QKo9Bur#Jxuj1QCVdcH4S{W&_Yurfa0_YwznA2_01 z10rf7o!F+l?p9xjD2acW8HF)-dI`=&NCX*aQ(w6z>JEk7C}*niOnAx`EsbA^P)$~Q z2WB`g0z~S<#)WJKdj^EC${>4mbK;}UaQF;6T;T_{02WjXCH$|U4JQb071HyuxaTVo zL>))^Q|Vm@IZ&@_*6D3rJQib?vL%JYy>BdAvt;6$?1tuUri=&4a=ltvMxE666Zce| zt$6tA`DO-=RdUkhV()&LBcUTLX1=dtSdDkx=qw55E$H4=&zUwPQncdv9gtI)M8A|$ z;&rjP8I~P_u}W-JP_FjFO `*h6W?4Jb`k(L87-*&chU56Lt)GL(^M>Q z-rk70o*NW?>E~N6&G~-X`w0c<9D>tJParugH!$~&t1wla8B~rluklEjl^ehZEY0`j zeaX0QN=MG{-ZINT9v0B*l$Q87E&WY}n2xub8R( ~Ko!M0C zs5h!}V-+&pez)WNScayjwqOq&{*|A<*H59gTYa_gQdKxNpfM|li6Y!zmP_#kJA1}N zU(3u>+eENI<`Lc&bgbYZ7#3#;fzvE6!Qk-;g~cIeqDjiNzGk}iyMC0h( 68&aDov^C {0|~SP$xfqoC`G@X7EgK zsJhM6chtiEtVStKUSc; ;eR_$&KOO8M0ayhE8cdVH+!pF@v`B0w|NxOcQIXwvdyNzEdmxX}tCW)c@IvsG1c_ zI641(*-^?_Biu%U-&_WpFXVz+?}bOP&(hw^eim54mz4T8uPAP?vnbhBnoc34rl3jH zsHTn0T2A@hAs1SGAh`*f2z~Mj;);yO6lfPwNoHDtV$BOqjn$%{btp9*3PfyIf_3F! zbbHO0>plZx4yi43Gkgwr!Wt0we2HQ6aFWg|4zz6YrDYA5zds6nY$axqEIbvu$a}(h zenVVNZs7R+%`mK60Zva@GPhZOlp3m1k>#Hlw?tQ-zx;GtW_~XpGs*rrx+%3SQT1*# zNZ!xH6pTFoki3f8Eb*YTTMi?q;|57Vcs*gXYxR4|Pd49FBHvyod?L`ZfMH#^a%G>8 zjrm~Uj)m@befJjuJo9$NElqL6^mHnr-JE^0tYaZJ_r=y6$2PXTyvEE%grq=URyU5% z;eL6Mw)N75y3{R6Qak9VN=1V?KvVUA{NTy0_-8{&H}rNcNAL-jxxrLPtK({=NatAD z%w{`kp_wahDNgl2 )`&-V7y7px+d z_8LSwBb&7t)%cubd<_N@^BtE{_14eJow&MhU}Er-9Z5gjsZD>u^32D_iM-QBlpn{n z7WPK13YNDBEWv((8#$Mv8{ I5NluHJRf+mTLc`l{l; 0rmqNUPR^7!40C&J84|L2?GoaQjkQiwgBs3 zB_pBcyWTdIxN!CAPE$mr`9yt!G_;#Cn>b!?lL@v95esPVJWZJ);aQeD*=zh}3Oo~U zC=;T7ll%CUtC7ZPFUftvl;i0i&md=cno%%;bMvDDidHieTQ5iMH(trZCLRy41Cr$> z9DqwJ-|LID!k3W3xbjhhBM{JpOHIpvI<0A;rCX;Gl>-)N94GZ9GNS)|N%Qi%2V`M? zWtGgJ_|W`_QJB`dZ~|5dc5luOeDzQ^Q)i8z5yK`3N<1rA&w=lygrlIP5wgIq50=LK z)teuysaT={YpO;2*0p}rKw2S4+uI$5FM|q=tCD{_>)MGmemAGDo4P`N7#*>zatm7% zVI3!hV|!W{kv|dT(|zenf+K;okoDw)k#gT|!PjFsEEL!(_#z EVDi|gyH3%O0F#ZAikU;Wcgl5qjE>1Ygne)8n-N&N@=qxtpC zIeANtkMlnXuH;u`27g$XncQ9FBuhD93@YWL$W%`8lJEu3^s$-A(j$#jvLrH6)B_}H z<+dP6*>Z7Xho>V~8x QW_~;)(3FvTOy~b5*^<#u zmNk-|SWG6}UH{rxbx| SyeY^;?oi1d`jZI;SY3Y-WA~RZVKs=iT2BD|(Qq7*m^t7X%R^4h+cxR}Ph1x^+ zl*%L$+`*WXoE8#lD&eP%5$e6qb4PUvo1EPv;oqfyq!!Y{{4gw1vLirEF5r^n7f>8U zK!Sb4D?5djhlFIZb-B`mQu-mh;vzC<4n !r)!lE2X8qxN`(5_m_VM7zuKITje222s~MA@yW> z9a?lhu;Jp8u8tWc-c1*nTB*%vSSDrPCP9`k6E6Xd`|@?A<_Y(amoN-ypypoYbD0!3 z4!mzBi_`ij>ldWf$_G{LQUdQ9>w3p4$1wTeM3o%ypZQQ-J3C`!B=L#ixPqn6V3tus zh3$U*c1-mBETi F-dk`2?hFzn&D;A?8px KCnbI8q(gCG;OlGC(tTw^%jssE`^iN_MyH&;QI^lX>%AjVT)N> zj<0vUjxPlwobwYwHltlq1fzdMg@=^xqwAlEi2^R+@AOivXVj|b{Zbe*?jg+hi(_ux zGUw^)#A9bfp50k5?V_9S0_Y#dqEb}+SJva!G-paUIJaCEW2MY&Nr#I9XA1XUQnXr9 z>MYlEv8%{wpeoUWPbu;%Rw!$*{igJpFl?jPEY2c7r>dTNoQ*kA)`;ILGt!tY7kT8- zbNyoa${42T>uvOdI1#|(Rf*2f)-dky)%HIrldSOD-lGaTaF_pc c$Hvgi-#-S+7~|5HL=`w z ZFkkhLAZ%&s>2(|cFYA!4o$->LjVgBC(P&wPxv7Y9bHlH?_5jlKNx8+f5rXNwY z;pBd%*u5V)9;aY@6rOanTNf@*;&INXC0)Nklxv0|wojM>$HLNvCvy`h$^A4&;fz#I zm!vOGq%y5(k2dl|^42Jza0{A~5$3?Tm1eWcl;dVo#}^iz%p+ KFzMkvmplIKV(0_9=d#T2_}Jl*e9eBpYwlsiJQrl8f1_n3$rSZI9T zoI)nw!_aidMdh%SCCdp|~!F3K-6gD9w~i+6{Q7UmQh)?82iI0t$D6wKDST>9p`r zPzaJy)xAk`P^VOR${Ks4*ret%gQDm#6zJ0V4%|aMI3+dW5@Y3= *#t8b>S{1Shyc#uIR z%u&m10^}2S2hYDOb6rE~$`J zWQ{uc|I}uNBUPNG%!{3$hPjf0saBL-(I**%!D!mS&1uA91u@Xi4~wb7n8v}>qh&{# zB?3fHx#w-yJz3?LxCQq2ZtG*est7=Ppnp}L?0GQHJY4e;?_&}CwJRcHL ^QC|Ccu57(AT{r ^;Qg@ zmBb1s4?}otKhnyt$cV)w*|{R3*Fsl|fimaDxt_dlQeKF!jbe57&6h7+8~h;w&~EX2 zwl? msUuzWZR}x_^k9O%GBd{ zND2w$m@&2J*~BJyxa~oNhw$_2qS)q$7z3+zuw6W$FdEu$vY)m%7tH>R=)j-opm5Te zwY7iu0+@)632;CDy098_EbC|bsBtLD(K=kNkRRW(N!FW85n(caWhTL8cu2wi$gfZ( zE5>&>M4ZmhzbYzvz7R6Cim!dCfHTo3%lngH&;$}z@JDTC5vHYt3qK#`qus=BxM@Q1 z*pl+U5^8y{p=4gsSqYy$(_qloQKb-p7UV=(ok?Bt%;B}NrmGx=j^{G3lNFSaRa+kA zsC(k&!=|S8|AZe=cmD*$v!P6%%j=@^(6@PPO+=jaFvW|@tB&ZxUtB)x>|_kA>mJ5) z#o!#yaGy9R5Mzc%wxf7!o0_IXf{~<0*S?Z`poa!LhDdJ1>HV zE 034jpH8E#-GEm+J3!1*jC(92{a;D7$v7u^6OB_0RpI~6~7K~6U=`FeVkjC zZ&i1q%vk%h{GTT!5C#V|8u3N-9B`S{6m47F=W*Ex>i3aJ%bUhuaJ2?KqI@y|B5KoF z_yE? T6O`B2uV^+P#r|B<$jtx{fMCZth|?J^WR| z0{G3;EK@MOv7&_Gyf8Spy3V|#g}JIeFZI 3r}i5Sjc~1yg)(?#(#Z7vt)6OhMHHj~zdSbn!jAP2Gw?8wlg* z4{>;kk2oLX&lc#sA3ZSVUI_uu;L6shSk4s4PMw*8V9#5Dc+Iyn&s+-H+&XeX8W^S? z6TmxhuvGrS>1q>Dp1|a%GI*kxp?&XH{8r<7jF;BA#t9km^(8q#nMP7&j!F#h1e1%2 z@$&oZn0-`6Rn83guoTg48}<1MNSQ#5182ui!4CB^vH3wLA%ahfsEm@lw-IZIwkcQV z9gW{{gCKA`_b*Dog>5HRcEliP9~G&uR;UM;N-nPXV4E4;XwS4|n5%@g;u41>EN%wn zuud<$U_C2u#YT7!S8MKTM#_<>XhX^9zf;eWADXE5Z_PgpN71416^o+30xAD~O1Y^& z^CnJ#FPg`(A&P9&YTmx>8xFx8d=S!G)gwMIzkc+WRR_3;h8s^OG0w}e5EM}%92>-2 z$;=Jpb7nB|<2UOvL!T9 `!`l58ka!&&;CFY^v^^svnTmJJB}F2qi|KzYL#3d;9Vp^O z%xmn8@;lrk?Aq=Km=fb#dr S^=bTX5s9-@Ms>5%$l%_{w02 zb!Dr0$=h9{Z+l$b5$6wZMvz{jZb5EwpP>Wi^&Of@O0ohid{8(p&)47@Rls~Hi~8@a z$j0E%tA%ER55oxwj5%%sbZ6z51v6Whw-`AW=82vD+x_NCcnXnYBo<>sQ&DuuL@;@y z6=?pN)Wv{|Z)&W|MJQ;kGgg5u@b4N(q`It*eGxS2itktc^O|w^q3Qlc9z$HV^m^;S zb %Uz<9J2A>4Js%FMGY5bZw z8b-5sQK?sIcP`ir!vy>=?!FLm>kq-lNvoeG?YM~0nC;Dg!=zr@QZvcBNdQ}d%8D(x zRATq0Vcwz0xqoX@{f>a4!n;RS2{ke^B9-mL6zANi`MNc_iikppq%I=;J >_rxjXhVKrypM@L#I<>4w z1&%E20vtAWKY_T@Vzw^K)H{KGX_7o%#VHL~CyUVP@qJveWZE&MUEKjQM=We{=#O&y z9)AG;`0FPj?)mq5snHjk@C_X`)0oSyI)G^fckqf=D8QJi3Gug@5xS#lyoqQa-H-1m zk1ip!B!vb2)fA?>Da?I@JcD?b{2hmR*D@FloNv|}%eSgyYXldU2-Viz38YZnlE~*T z-*)Z~l3h$p`Vn$=UEVWmkOG?eQ49@o#i6kp>(YBPLY;Idyn+kXoS`Hww(SDFyl#r_ z*r<WORxS3qv40^tk^^C;z`njcz%)ppgK!`--U8IR5yAIO4Z%-&tq*yEGLMJgW{d zlQZv0 C4Lc&!*SX)Y1?4x<6NpQXfa)aw%>|gR-Nfws3>F>dZ$3Pd znr4g8(-s|{LT@Pb_LaH1J7kvZTn>AoUZ>wBe&$uqK4{U*zE*>ekGdu@Rj@}IaK#WF z !VH?l=klMtzB{Z`bq{DYoZVc;4%c$6 zH~BofSUR==I4>>zW0m}*r50XhwE)I^uQ-9IEp0;w_Z{KKy@$bl(#={^hB6j 6GJi5PBcC-G21w!B+(ZnNLw1z(Oe@fQ>nx84(EL+GKsbaX@&k`e+MI)B zTDUXZFuj+u3;qGr>UxTcDnCioho9ch!gornAOb7yv)SQwn8R9Q?haT6+Imf|(fFMt z`hvZ%iNi@Pi*ftyD*^J%ZDQ^BL6h66R8O>L@o;R8xdU{gTlRMW7>=EHK!~wtAmQ`a z-PUj%<(VMKWkQZN<|m#(Kxu88NK9Ie1r%Z6Q~Ts2rdUb0?=3VFP%}pgKWO~PU<*j{L_n!FM)m+C$FgihMppeBSCNNW zkP^|bRxs{^+B(J~_IbBflVR|gI2F7j!RLg6PbEeos5~S_fT5&iD{k}j4I44T$*-E2 zUrO3GDO6McR_v1ZU ni&P4EUi5w*eN5ZBN#uO!sNkg zi1M`1U2%hj{NuXrP1g}pDkGkFCTlS{z;~MKlUH^XZD%k{$EMzA86uN@XCl?LRI>-W z$PGAG2I6OTRurm~%b8k7I_kpp?|-Yrh`|OT;tPpZnZb?d`wob*f1F^y|2d%q0}{7` zi}*#>{WRWvLB9Kwh3k)eaAycmL}*+%r2?D7Jy?Ss zE9nz5h3o{4kyFU}-@wVdAC4LNjqrRb_H=M*F4W$P?mG5iNrZH(^~3EJg~GYa-#Tw{ zu+pv+wLhx0mGdVSQMj!!7|PWy^sc{$*ucX0wRl!f<5*Vf+a2KW#fQK54o~BwI!;eh zDr}nR$>1oyenuA^y(rARTDwT|PN|>p+>)hlNAHyoJl$x`{lZeX8QLjVQkdST9Df@^ z!goIXJ^KSb?99&9?%zEK6al9~1hK5!Hzh6ZXp7?MK+UOm=H7qT9qc?Uyl??rYSrQ? zyHOQRz?^>YGq?}_P 0|e~G7zi_5qx2+ zA;&<%GZ}t|3i7hJXNys|%e=c1T 8mF&%qqsE)M156s|hftA)cGh>1d32o!$7wK8%@l>^jGEYoU=`(MA z8-fV4UbF>CS}PpBEt@uCp?G%=E5SMr;uEI|x2phx;KXmY{CBtxT-N(;rGjeysApiL zyjA0NFixSnzz7zFmzObczu(hXCprtn@&CkwI^;~IdL04BHgAG?l@c_ matD( zS!`PdhrRBglQr)p1;Fd0`7w&yym-~Sj*LqrOiMviWwQzDa}#Mk-bUuerUu>B(vg_! zWE6;z1}jk*3kM*)XYFOaNaW&BL%jZQh6?8o^Y@wJZ=BAi8*7g5y%hOM<2P1M_8sKE zs}+dDUFQ(IX5$oQy~O66g^cgL XUvmydDUf1$4y$0Ex6OVF5V> z<)X3#TttI;Z-3j=MrN~i{N%}b!?18Xc0kDg`)A32%|>1kKRZ-J3%a$iGBdUwp>NTm zfGgOAI?FsQ>MZyfC(O3$oPi$wI~pTE;vQ@7CKs2O;Hcbk@(HPyq#PWmJxQX4%)`+C z=(u!a+pAV{GO*#;=$MeTtw|T|<_bY^O zvho5KGzDq<7N;t}OY{A0F7rMV} ziK@YU{jR@ME6pEBSH~w?6rp7WLb;O7#frD`wp5YE|Hsrjg;&~yTf51OW^CKGZKq>* zjE*|#*tTuk9ox3k9osfL+Vk80Ui)8Hoy?P*RlTVi&lvYG>&pm-Uw#f>>a`VXE@Lza z 5J`{ zhAS y>H(y+s+I$JNzl>c1{i)DEn$E`^s8MPXs~Dmu(GMw#}((v zlt)!=hUldC_xgMm8NEE)JY5eeO!U{XRAQvcA#dh*-JHT)4bt27VE$H#gsPN98Vz6m z_cC%UgiYMNFMo4 zMp2;Dic1pZ_W_io_Z1&Fe4AS{Y4+ou?r(_yOY?1{>En#fPIb8%1wrpigURwH z!S%^l$<-Yq+_U2To OjB(u%toJ$1Itx#leeLmJotDzC2dIAj z@KXF%!+eEz-$ 04n49*CkV|Nyakzc &eVanc=TI&cE9S&%u^rv7n{6#V zo+)Ed+zKXrtd7k0p%XO_Cj2gm>)9OAuV>^oYPr6HC9|5I|Ga)0a8qq<#r8j!MbK0f zJ{e#VWr5B0damLW^^W*gRvuviJg_AY*0CB>zU}?rN84@+cYhWw3xkqKvz4n#{)1d_ z4%R}$P`*+Rm22vAp|9MpO)ecn6g~O&nhwstb}a_^93B2yhkc0sN$5r>maGY*j$L&3 zycHP`(gJrK5GiG@i? `Wk-QwuNpniu*u8jcqp z;B6Drw>nMMM?eT3xDJN=1q>$@n9 Z#JpF^?v~~Cc^?nzM5gW^uY$H`xi~Y&z2SaIIbln(v z8Drby>B}!i84EKoqxIgeA Ysb=m(61D4Rcp)25;x 8lYE96-C>jz{M zBgQLQbly74cUfrEwin7!=b 6(VU6;1M&~F~jw0iO4gg<$D-Vd2g9UM?W;7%GOVxj1?t^-Q t1f@4W7L zlgPhSe GWN`NoYCd#G@8;$10D3>G`M^s(SZzB3J;PRc8 zRL3=IyAgbeTi2}{MoM%04_#%A3;>d98{ zOJup<0 | zkSM5Cs$p@2Bu35(Lx)ME7LJ@C0yEZ4{CyZ^iwWg!)UFNp(u=6SWr{?V1G > W{zQfon +IS>) z;uz);*;)IM_(Pa<) ^!h=#eM<-k25!-4kkgQhkhOXJS5rw6MG^tP1q|l!yU7Uw z#z8a$X`$`coNZcvds|z?y!Qj@+feQ fEjk2n0PbzHW)X0^EAvHeVWr-`KnEbFLx5iNGlWNY*8Y@<^U4uD(D-r;zQJnC(9N z?H8$vxR2tY_@{Wo*9om)Y12-f*d3^XLJdR8ucs1bAKAWb5J-w9KVBr^8J*!j ;sj+Y N|tD z1_Zj&8s@>idrTuRwH}siYn-QzO1z&^dF5l{Lp$e8<5jfa xVR7A%nc&JU-ga*GR+y{YZm+%z2 zA;HNAndRI@3nF;>$+-;|n`xtG5TV!5V5AL>Rg+NNDuAcB<`XC?!srvD(i!4~h4HyR znU~6D;Ixm}cCdmHMb7t|R#_6yLqtTkpt~!Sxc5}^A(lv-9=D*7M>s!2B!Y`t a z#2_9 D!C^I|Q83HVO?d#EA2^2IUThRK$XK+Xi)>*XBYu80^!S}8G+cya> z1nVH~-z>npql>kJu(5z*N(zQ2;nOJE4GbN?YEdi??pf_^C^StmzVEfu&VO7dG8ync z9(8RIA20tg8q-<#jgVRHk#h5c$@Y!9 z3Ei%f0Q*{`q +iVhvwH4AYy!Y>i$S7XOY0g6L+d?}vt;B{JAL z-00^fIUwNMIn>D=K|if%flU(s1mYvHTP)hbe}9|WIFmY;BADaH-c#$8gHJPk`i9oc z$0B2YjD{+R-k(oScF%Te%y!$=xf~#ROe({sm+!|j^y0WskC1esJ|3mQe%0*TY5t^d z(3! %K`+v4rJ6d7 zB2Cc{R|-Pxw+` 8o)FZQqv za-(uU1T72w5535Fxs2aX4$NE+t3k#=th}6i%WhXNZac*0`C4@CdT`RIiR^74Z?kb< zyM7kbQ|sCFC!~F|w~Rh(mggR#+AQLwQ__4+1&>jDoF#w73O9)%>pMC$5oItN75Cv^ zzm6l$<^N+4{ckwhx2S4FXs`1b{^V!(LB209l?Rp}K c&BG+ lMxP@BaE!_YFC& z9NX-X4#H-&VHZW0j_KL=oOf*WI7pcx#36Jf1qX$jSALc;Z^$5|9aiC5e*58V;eSQK zk?rlg%ATVQ+R)u$cPIA1Nz%D}pWgS$UIyFz;P^-7oaAR-<&l5k8sWdv^IYyTZQf=- zFJ>ox$x#z(>S}AJmv;*hVrmnukGQt`HvIHt5X80`L=$t(M5HQMRYptcizPPL|8;zq zGIS7RHkzK6LxGx+cAVjke1ChQH<}w2`^z;05}l29ZeF_El(ixVTvZT|HlD%wMn A+(B;MRKswEM3GGD`CRiWFm1#%qc`J&=uD~$6@6#aKk;lKn zgdxmUz;#&heQ`5yggTCBI12lD2kLkC3O6)#Q&f~LO{5-(#qP;EGK}+EG*US!7iz)G zzYb2)CD>=z`836KAsK4;9%bRFjxIsoUkCmvnQI49if8$B#w0`0t|{QILUFt;NQ8Q) zIFTgU1c9TD1KkL!?`oAW9Y4BW@S>2X2f)1GDsDfhl K9Z{b zUUo(vV4~{f^KcT8VE5XdQpI6XWb7Rzn%D;~c<_T^#(2UyygdXMX4eJiuLcZ2;*OAM znBfxTL@5JzX(j3pC1=gC^J;!R)ruI00N2uDEbZ2;dr@Y~DF?kgh9wZ4281WlbO*}{ zTaW|FI3rdk$XP3XoP-RJFq|vH`8L-aO7tYX+kb;>z*8^Jw9L2@Q0h4L#WO)gNiaN| z-wm}o%|<6fB|%N+H5wzoCauYrD@)pA6|RSigAD09YQoa#hH&gkJ7ncG0(mErAY8iQ z9?`yTItMwbvuqD}k4nCgop)WftQQ-k)^~K!nF}rwKjj!DeeAfUX&<-C;6n#f5b%E+ zU`xP}7<;cnr$`h(hYY(4V6BA+K){o|0g+-P(g;*Gui+oZT;C@69*yu B z1>52&>+$GC?LcDBov60wAqPETskVjt`auZKfPQ-pDX*3=`Mq2orveOmyD%Ql3)ZO? zex55@g1qZJKi@0%mxD7@J+DJ>y@oH61!^<`W_I;Uo#a;>L1r;MvvNg-0tj-^ k}?@(+p3sLO5k(Oo-U>BeRRmD1sT<>xgcjC2{w&Akk zYyfU#?3cz+uyn$~6LLS1*U4y`=_Xtg%yo(blLw$yhAsKpCyuoKGbjHa`DFzS&R#Mz z*s|P1KTr&tKCNtsJCMw&R)X#XvxEdL&xV??YY4A>#`qo0w0if>=Gl1pZ&djd9SUyr zWPSPM*pFYAq-?Xe?^y$|t(Cc(|GIf48oXtG_nIO`O86yb!*SRA9#wa=D@I&)l;@5r zl7R{o@oG93;2vz<<9_?~t*}Xe8c*gn`iAL%(}pNoFq?}qS=v@dr9Ws^Li(->^a+GM zuz(#1=O)l5bF~MH5Fofm^G6+1IT?ye!n<3$exJEEva*sT=;jeQ6(O6XnjIs*g{}R1 zpZ)6kBl%r|swL=Hr=}{cS0_)+!klR7_P^Tr?R&xPp#KKkpnLE#wSW9GukU-tzgcg^ zxue*wFcF8wkRPC3_;ZB=;I=ah(hFEJW>NEy6Nf1JUrA_0oyYZ^PBwCS =a0H6O|WP!NQ#TyD9Z0ln+Zr`u>ii#m!ry2`4_UdYPo2VN(PggKfeU@aS zotW5rPsO`l75Gk254Zcu+vOacrtgcA<}TC$QH3s~tsivU+&_n$^23`XDBAkjnM-h0 zvLJ<^)}}bLKK#UCQSJ*+D u4mw1RYQ@SL z9;4^CW`0kZnv 5ErspAiR0$dkPoXizbYuRM=$+`)J&rQg$_jDlC z)9--Y0%L4UT~@RAuR(M6|NohGFA82G{YXc#AU0ZJ->-TDF )JaiEI6l{VX zKsGi%O6S=~n*02om4A$oc!4_9_z)`;ybY(Usy2PV0(uL)7&CO?dHl7QOwNO!uorAa zX#1(NOz-sjOrkMvVvJAmJ}y6%HF=MxEOQ9sNxtT!SvJ1 165iX_y~e{>4B;AZs!5hfNPfQ zGNKrw*a54*K9+t(G-jBN#_ob3c0;2=PpsbOt-kcWU(bGifF>TSaE+6chfxp@8EUak zu`*%{RFGx@BlA~j59^4W#R iL0)Dv;aWo6A0gpEt-~C}Bv1 zi9!u}M}934Tq(}J;uVGH+4bGMcl5mgzP{C|CS#G4J}B^w2z2Tpcoh5-11_|Paqzz9 zu46%yCRt{&2dW3qPvlz9zf}@SX%c&*0sZ%{4MOx}N&Q@qdMS`UEtFoj8m_r?+`bf_ zy#_9Xs|IF;(AOOn?2}~8x&;=rE#>2Me`1(Y|9~pgjE<&D(}-OaAt#7-$j99IYP;e( z;6J*_o%KO;+j5Ij*mmBz8=$Wpb;5ok@qK`Oh|TVEb>)AIKcX#s1vUo6{Vmb(zArf5 z@7=z4xTWAbp07%i!hmY~Iw4;{Hqw5&Jw)y{Tzj`fTwBqd$mT5&bX#|gfJNO&(XF zBS8{N_TXD(MgOITfHQeaDs`;MSwIK>^V~I|L`qC2o-4;V(g3Fr2T3FZEwzz6U6PHd zF3SO =QuFyqU9DD77$(k~ # SH0W^ZL(0@ciTc~)4`seZDwyN^GbQM{QoZ193Mb|WudB_qxgt%1qtxdv04U!S0k?^ z?NxRLdJFAH3W#o{^o93DwYV#aC*bTS$}=VGh0B+FjCBnWD5!59{Nk&B?cRP9L?z esnLxb+pn>?IQ7U0H*##m@mAK=Y6U(CKZg*#GoE^ozcA)%^7oc=e zu#CMj0Fr8tGO`E6#kB|Vi*`Wb0&UMNelIGs_bz 5Bwh%1g;#^{` z? BN3F6}~o_DTms`;heeN7OVn4Xog^@vBFBXgPe*AN$D(+o^GsN(`V5ItfbPCb6t?J ztK7clEGlAp;s%OU6W|-U$?ujuZv|>- 2GmPr>cjTyX?M7fJC~XS3^9k7vyljey)~$ds6$wz$|6hIlYP{w!T>W zPMS8Iw9a5S>V pn7CKnVgjJD)^A@%=n>RmW|JU4xp0=-9 z$v^%@yF3SBX);S6L$G`y$dJxGQ^cPxU))TCxI=?1d(pigzD9gkZTpxeFhrZn?X5@y z(jlB;TG^wC7hy=)pB1XIP{iPe$uFf)y~T$EZ%Xi>V1;u5uwE~sRY$&s0*kOjgPY=z z0c>TLR5aeu!9BM-H%^G%m+;>L4Tq5T2;95)BbLR2q`0$k1dph#|56XN%Ni`5c$wTk z9!`6{ReACuidV|ri8B{9ojZ{v_)meR0a35C*~Tm3pc*(aFv5UU;`e^y9nM;hm~84E zk~*iI*h3XE=@gYz=?W5YbrvbofE;;6)e{lIbIP`2YZ}UAfmtVpG{v7=pkD1L7*#oX z{Y<+mez&s(oRdtOnv5ZQ3Z+Tp$zzAc#YQhWB{h0j#i2=eLWR7~hcZcwx1Q&2CE#AM zk00ouME$2!WTQlS=#ReS$Yj!F2fGG4LWsci#DBS))pd_Y$znpOjO-8cf9rhpRC4uJ zbn; K%hv<+*^0UI-e(YMmy#gufw-*A=b7D=Y zMs9w=^itvkC(jN#e*Ql65PA&)LzrEz-ncNMxKFh)^FkfbxWe%c{hK6&FD#LjuqKiu zbfg!^{m9hP9#{y?qP6NE7tDA4DFpTlx#-}Abba|cM(att7+8+bRbZoWa0r67fY3 i_QK}z61>JvPMUtzPE*B7f?7Ol;E1qWzuA1 zlgOEckWnIte~rVRw_n{PO&A`NGH8t;Y)oU7n{(zLbpGYq|MzX~FtK^pRL{l{^}CN5 zJxxKeKDCv+mlXYJ^L!1ZUAQ@4@vckN@X`F^&S{+YClWHxG(UAo5l1XZbbiG6Avw_0 zU=JpjyjNZ*{k4MX-=pEz;|quvACByEBJRixnof>;cjcXx4srTDNc&OTLc`KU*lO2Q zg^4jO&3bv{N^g;ywm{o5WbM+qe=z>?h$8UFu{Hj*kgJXYaBESok4lJmGcEkH6qsDd z8G8f)@H>
gfMRnG2#oc4koHl}Br+2}A+Ssn5=$a~kOL Sps^{RyYMT%ggILt2DTN4vX2AskQZtN{d5pC~T b|;QNDmfV-BJ;S zYeR!rRjn~;@q$h6D-R^3YOIrmnT6!SJKek7igAy|+_Dr5$A&s|=sfIg)C}kH_dS~f z=Z#{_)H@7uHIhF &)(C@EsN1En@F^iP;@>osO$JP@{7dl^>=2EKo(8`_Y}Y&?V>JzVN4M`;5)h`5Y7fF%jJ? zdpBramsCXF@!sbDRhNUHpu} ( z;S?4o(m%3QWL=;j0_hHC(#WlHop09(G9$#4?+jVHj7T=m(<`6pb@{IPS6~#ugf{@- z2O*ht+7MbVgn&7iB0AxnCt|p;uOh)>IUZLiiWe}}S%6eY@xz6EPUxR5nKKA8b`&C= z@N;Le*{YVN$7{1f8j+|lrz0632kZs0J&y;Ja` ;`vq3!O|pOYv;t_a<` zIE}x7RzhMr%9lf{k-4!GvsW8t2FLJzc>YH LP=%Jvph&vls=G!-? hZMDYFJ+nzd;27Q;)JTDYdv$u;A_LE? j=8w1;2$Dpp>R97ER zL1toywy
ZM*O7ODK1j=$-0ia>R$x_p)=><4vERFy}wMTQZ-X4EiQW zy|di5@+&^)JvY3we~WDtT708=UFAjF2i4{!I9;H?jtwc+Cwx69eNiB%A%_$0^RB`5 zd_LA Hm4kQ=Kw!gv+Hp(cex)Y&*Op&%gz~KGw- v?|@zy=gKo<6)fveIW2=`}Z1?= ;z^BlTx~pq&GS^yZ@@7 zD;CngIVDPG)#I2*W~JsF@gR0G_Advj{HB YIRZ8ub;b$!gw*biXABe2!Xk$@0Xv$q7^n8e=tjV$Ufhw_dA?C-e z>xG-UnhD2aNXs(L?T>>{{s`ue$x1D@Rbu)!62IHF=f2SF#){05Obw-pldtXtyocjo zBXr-}O%+K&$>A@A3|cBpF%|#gbY?9h2!5wj)55#>KhGRQs2N-+iUU<`<9H-gGARPL zK1*d PvRP*qcM~%E2pD|v7W~qYIExtu`b3~YT~xjliJ-_>5CB{&Fbce z!WYt75lw1Jq*~NBye%;Qg4*wn`jGFw4uO?=LHCcC75rEoGDFl$Fj(YD@LAe_HR4Yf zt3k7VpZ7ez?`=G##u*Bbs_$2QB$FSdzy48qUqAaYgW#=5 afF^+1aQ{+H cTa`NhfDQ5hFS?jeX@{Pn1D z%=W|!DdJ}=fS)b4>r}@P!Kb<@|2kv)YMc^x0q=uP^R|vVNy)CtbNyjHIFDCQL7{6F z>Pp(@cNtb-tvZ`YY)WeB5RqL&*FVt>b(Xo}a&v81+bgqPz(_i8{F1eh>k; z0Ij;T8vX -h=pOfc!S)m8n!WO{2 zlT7h9t*Bc*a-Tx%^+Z;rR&g G+#LP=(uf&wS6tv9@YSXUqz+73e|hNdilEV{rx-*;(=Gv@)vKOM2D*{lxho#n8_ zK}n=hVD`O@x&=8}w1}q4gdS-{+y3+8+*I}ct6Go|LZISG1cI2`ztZl#Exmc1#RkJ< z |e&UfyCiFCWZLBzf ziWpX`lGM6#-Y>-uaZD8?4KN>d4vmxNN0N4_1YlF@ze&$+$+!~A(m%O+DjIndXJC+V zB>pWn5STT&;b{GjSo8m-H5-e;rfr)v$0AwPt5Ig@s$*mG*JB(e?`uQWa80svz?Qw6 zfOzPT2L5(cK@8ti+WVjzfRj%xH?UZN@nv=A75YW(TRO5SDaETc7OM}4+f?WE5B?pE z58 hCyENVaK&~BaSwS}q2z=I zcnW+8ig-u&tdbeJ*3DWsVq=6(+|dC9qxWik&L9+V04Y8&R*wv6hjR}mG|qmdk1!)n z0Il|(;CApBRJsS-cfh+e$maeI+6MIC;qNm;C|J?%J7DDJPPSwxjs^7TX@N{F0TIhI ztQ+;FFrOe@=$r!O=&J0f$R?{QFOV(QlxRuPdx(5}RsczBJ|V`2{Our-e)cg>I@ifV zzlUAW4hN+{jBEw}SC qj%J2I8ksyEe`b>-p!&D1E`e}JdzGrEz$`4vG%n1akze<6eY2_p15+ri{xiYAj z=jQ!ODA@}V^}J?Y=^1DeG~mfo;ydi)gOp-KkvS~-g6cN;AB5EOHsq&WX7gK%Ed@04 zQ_USX2wJ Rc#NY zk{8`iXc&LNDs)25Xb#ByD(9@56JpR27KDCyIpI(*8TbOg#u5LJ*mq+?2I^^C;?c>I zxOLlnnhS0(`J&fEi73D5MGPCQ%X|jfJjN1g^VUaZ