Retro prof in the lab University of Washington Department of Computer Science & Engineering
 CSE 573 - Artificial Intelligence - Fall 1999
  CSE Home  About Us    Search    Contact Info 

Here is an archive of the course email list

  • 27 Sep 99 carlson@cs ____ Testing
  • 28 Sep 99 carlson@cs ____ Reading assignment
  • 2 Oct 99 carlson@cs ____ Re: Reading assignment
  • 11 Oct 99 carlson@cs ____ If you don't have a partner
  • 11 Oct 99 jwnichls@cs ___ Re: If you don't have a partner
  • 12 Oct 99 carlson@cs ____ Project 1 available
  • 13 Oct 99 carlson@cs ____ Project groups
  • 13 Oct 99 pedrod@cs _____ Slides
  • 15 Oct 99 carlson@cs ____ Marques Silva paper available
  • 18 Oct 99 carlson@cs ____ Group directories are here
  • 18 Oct 99 carlson@cs ____ Premature announcement
  • 20 Oct 99 carlson@cs ____ RE: 573
  • 20 Oct 99 carlson@cs ____ RE: 573
  • 20 Oct 99 carlson@cs ____ Random number generators
  • 20 Oct 99 carlson@cs ____ [Fwd: [UW-CS #12261] Can't access CS573
  • 20 Oct 99 amohr@u _______ Re: Random number generators
  • 24 Oct 99 ely@cs ________ compiling java on linux
  • 24 Oct 99 carlson@cs ____ Re: compiling java on linux
  • 1 Nov 99 rdunn@cs ______ IEEE Journal?
  • 2 Nov 99 mike@cs _______ DIMACS Challenge Proceedings
  • 3 Nov 99 carlson@cs ____ bugfix for check-soln.pl
  • 5 Nov 99 pedrod@cs _____ Request for comments: *PROVISIONAL* vers
  • 8 Nov 99 carlson@cs ____ Turnin procedure
  • 8 Nov 99 carlson@cs ____ 1.5 spacing
  • 10 Nov 99 carlson@cs ____ Project 2
  • 15 Nov 99 pedrod@cs _____ Bias-variance decomposition
  • 16 Nov 99 carlson@cs ____ Fw: data sets for learning
  • 16 Nov 99 jmc@cs ________ Script
  • 23 Nov 99 carlson@cs ____ Planning slides and update to check-accu
  • 28 Nov 99 grossman@cs ___ Public data sets
  • 29 Nov 99 yi@cs _________ did sb lost a blue paper folder?
  • 29 Nov 99 jmc@cs ________ sick.data
  • 1 Dec 99 carlson@cs ____ Paper writing tips
  • 3 Dec 99 carlson@cs ____ [Fwd: cross-validate.pl]
  • 6 Dec 99 pedrod@cs _____ Final
  • 6 Dec 99 carlson@cs ____ Grades for proj. 1
  • 6 Dec 99 carlson@cs ____ Papers available till 3:45
  • 6 Dec 99 carlson@cs ____ Turnin for project 2
  • 8 Dec 99 cthomp@cs _____ Remember to turn in the TA evaluations
  • 10 Dec 99 carlson@cs ____ Final exam and final notes
  • 14 Dec 99 carlson@cs ____ Grades for project2
  • 16 Dec 99 carlson@cs ____ Final solutions
  • 16 Dec 99 carlson@cs ____ Grades
  • 17 Dec 99 carlson@cs ____ Its a wrap
  • 28 Jul 00 levy@cs _______ Fw: Life stages
    From: "Adam Carlson" <carlson@cs.washington.edu> To: <m2-cse573@cs.washington.edu> Subject: Testing Date: Mon, 27 Sep 1999 23:22:43 -0700 X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Hopefully this message will go out to the cse573 mailing list. The web site is up and accessible at http://www.cs.washington.edu/education/courses/cse573/99au/ You can send questions to me or pedro, or to the class mailing list (cse573@cs.washington.edu). The mailing list should be archived at http://www.cs.washington.edu/education/courses/cse573/99au/cse573@cs.washing ton.edu but this hasn't been tested yet. Adam
    From: Adam Carlson <carlson@cs.washington.edu> To: cse573 <cse573@cs.washington.edu> Subject: Reading assignment Date: Tue, 28 Sep 1999 12:26:57 -0700 Please read Chapter 4 (Search) in the Dean book for this week. For next week, read Chapter 1 (Introduction), Chapter 3 (Representation and Logic) and the SAT Solvers section of Dan Weld's paper "Recent Advances in AI Planning" from AI Magazine's Summer '99 issue or available at ftp://ftp.cs.washington.edu/pub/ai/pi2.ps. (There's also a link to the paper on the course web under the Readings section.) - Adam
    From: "Adam Carlson" <carlson@cs.washington.edu> To: <cse573@cs.washington.edu> Subject: Re: Reading assignment Date: Sat, 2 Oct 1999 15:22:03 -0700 X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 A student asks.... >Hi Adam, > >I'm sorry, but could you tell me how to read a .ps file? I don't know >what application I need on my computer in order to view it. > >Thanks, [Name withheld] > >On Tue, 28 Sep 1999, Adam Carlson wrote: > >> Please read Chapter 4 (Search) in the Dean book for this week. For next >> week, read Chapter 1 (Introduction), Chapter 3 (Representation and Logic) >> and the SAT Solvers section of Dan Weld's paper "Recent Advances in AI >> Planning" from AI Magazine's Summer '99 issue or available at >> ftp://ftp.cs.washington.edu/pub/ai/pi2.ps. (There's also a link to the >> paper on the course web under the Readings section.) >> >> - Adam >> > PS is the extension for postscript. Since you're having problems, I'm guessing that (a) you're at home and (b) you have a windows machine. In that case you can do one of several things. You can print it on any of the departmental printers or any printer that handles postscript. You can view it with ghostview on any departmental machines (unix or nt). You can download ghostview from the departmental servers (mount \\rfilesrv2\dist-area), the ghostview program comes in two parts, a postscript engine (gsscript) and a front end (gsview). You can download a more recent version of gsview from http://www.cs.wisc.edu/~ghost/index.html. Finally, I've converted Weld's paper to PDF for your convenience. Check the web page again. For information on how to do this yourself go to the department's software web page and look for Adobe Distiller. If you install ghostview on a windows box at home, here's a note clipped from the departmental NT software web page. I don't know if it applies to more recent versions. I never had this problem anyway. Hint: Once installed you may find postscript files displayed on your screen are, shall we say, somewhat ugly. Bring up gsview, then select menu item Media/Display Settings... and set Text Alpha and Graphics Alpha to 4. Then choose Options/Save Settings Now. Things should be better. Adam
    Sender: carlson@cs.washington.edu Date: Mon, 11 Oct 1999 16:59:19 -0700 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: If you don't have a partner If you don't know who you want to work with for the project, send me an email. Please indicate your preference of programming languages so that we can try to team people up who want to work in the same language. Adam
    X-Authentication-Warning: ceylon.cs.washington.edu: jwnichls owned process doing -bs Date: Mon, 11 Oct 1999 17:03:28 -0700 (PDT) From: Jeffrey Nichols <jwnichls@cs.washington.edu> To: Adam Carlson <carlson@cs.washington.edu> cc: cse573@cs.washington.edu Subject: Re: If you don't have a partner > If you don't know who you want to work with for the project, send me an > email. Please indicate your preference of programming languages so that > we can try to team people up who want to work in the same language. Adam- I sent you mail about this earlier... My programming preferences are (in descending order) Java, LISP, C++. Thanks, -Jeff --- Jeff W. Nichols "There are over forty million lines of code in Windows, UW CSE and I love every one of them." jwnichls@cs - Jean-Louis Gassee CEO, Be Inc.
    Sender: carlson@cs.washington.edu Date: Tue, 12 Oct 1999 13:35:53 -0700 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Project 1 available Project 1 is now available on the web at http://www.cs.washington.edu/education/courses/573/99au/project1/project1.html or from the main course web. Group project directories haven't been set up yet, but you can get started by downloading and reading the assignment and working from you regular accounts until we can get your group directories created. If you don't have a partner and haven't done so already, send me an email with your name, email address and your language(s) of preference. We'll try to have groups picked out by tomorrow. Adam
    Sender: carlson@cs.washington.edu Date: Wed, 13 Oct 1999 13:47:04 -0700 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Project groups The following is the list of project groups. If your name doesn't appear on it, please email me with asap with the people in your group, all their usernames and the language you'd like to work in. Similarly, if there are any more people who don't know who they want to work with, email me soon. I'll send the final list to support this evening to get your directories set up, so make sure you email me before then if you don't see your name below. Adam Group username Name 1 cgordon Charles Gordon 1 allen Brett Allen 2 sarahs Sarah Schwarm 2 amohr Alex Mohr 3 douglas Doug Low 3 keller Andy Keller 4 tjaden Brian Tjaden 4 hartline Jason Hartline 5 karenliu Karen Liu 5 goshi Justin Goshi 6 cthomp Chris Thompson 6 bonham Shawn Bonham 7 djp3 Don Patterson 7 swanson Steve Swanson 8 rdunn Richard Dunn 8 zook Isaac Kunen 9 jmc Justin Campbell 9 amp Ana-Maria Popescu 10 tzoompy Stefan Saroiu 10 igor Igor Tatarinov 11 twilliam Tammy William 11 grossman Dan Grossman 12 dportnov Dmitriy Portnov 12 jlnd Janet Davis 13 andrew Andrew Whitaker 13 crosby@amath.washington.edu Jed Crosby 14 jwnichls Jeffrey Nichols 14 myasayko@hotmail.com Mike Yasayko 15 ely David Ely 15 mikesw Mike Swift
    To: cse573@cs.washington.edu cc: pedrod@cs.washington.edu Subject: Slides Date: Wed, 13 Oct 1999 14:11:58 -0700 From: Pedro M Domingos <pedrod@cs.washington.edu> The slides from Russell & Norvig are available at http://www.cs.berkeley.edu/~russell/slides Game playing: chapter05 Propositional logic: chapter06 Constraint satisfaction: chapter04b Predicate calculus (which I'll probably use parts of next week): chapter07, chapter09a, chapter09b Pedro
    Sender: carlson@cs.washington.edu Date: Fri, 15 Oct 1999 14:08:32 -0700 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Marques Silva paper available Some people had trouble printing one of the papers from the recommended reading section of the assignment. We've made copies of this paper and placed them near the microwave at the east end of the 4th floor of Sieg. Adam
    Sender: carlson@cs.washington.edu Date: Mon, 18 Oct 1999 13:38:15 -0700 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Group directories are here The group directories are now accessible from unix at /projects/instr/99au/cse573/[a-o] and on NT by mounting \\ntdfs\cs\unix\projects\instr\99au\... Groups have been created so you'll all have permissions within your group's directory. cse573a:cgordon,allen cse573b:sarahs,amohr cse573c:douglas,keller cse573d:tjaden,hartline cse573e:karenliu,goshi cse573f:cthomp,bonham cse573g:djp3,swanson cse573h:rdunn,zook cse573i:jmc,amp cse573j:tzoompy,igor cse573k:twilliam,grossman cse573l:dportnov,jlnd cse573m:andrew cse573n:jwnichls cse573o:ely,mikesw Jed Crosby and Mike Yasayko, you'll need to get an account on our machines to access these. Go to support (Sieg 230) and ask them for one. Adam
    Sender: carlson@cs.washington.edu Date: Mon, 18 Oct 1999 14:03:10 -0700 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Premature announcement Apparently I jumped the gun in my announcement that group directories were ready. Several of you have emailed saying you can't get into your directories, and guess what... neither can I. I've emailed support to check what the problem is. (Although, if you've been logged in for a while you should log in again to make sure you're getting the most recent group info.) You can check if you're in the right group by typing groups This will show you what groups you're in. If cse573? (where ? is your group letter) isn't one of them, then you're not in the right group. People have also had trouble accessing their directories from NT. I'll let you know when it's _really_ working. Adam
    From: Adam Carlson <carlson@cs.washington.edu> To: cse573 <cse573@cs.washington.edu> Subject: RE: 573 Date: Wed, 20 Oct 1999 10:25:15 -0700 It should have the ability to output a text file in the format given in the assignment. This will make it easy for you to generate problems, save them as files and then test multiple versions of the solver on the same problem set. If you want to have the option of generating some internal format, you're welcome to implement that too. Adam > -----Original Message----- > From: Name changed to protect the innocent > Sent: Wednesday, October 20, 1999 10:16 AM > To: Adam Carlson > Subject: 573 > > > Adam, > > Several of us were wondering what the output of the > satisfiability problem > generator should be: > > 1) A text file in the format given in the assignment > 2) An internal representation of the satisfiability problem (i.e., the > data structures that we have defined to represent satisfiability > problems). > > Thanks!
    From: Adam Carlson <carlson@cs.washington.edu> To: cse573 <cse573@cs.washington.edu> Subject: RE: 573 Date: Wed, 20 Oct 1999 10:43:59 -0700 Yes, in fact, you should make sure that all the variables in a clause are unique. > -----Original Message----- > From: Yet Another Student [yas@fsf.org] > Sent: Wednesday, October 20, 1999 10:35 AM > To: Adam Carlson > Subject: 573 > > > > Adam, > > I have another question wrt the generator. Do we need to make > sure that it > doesn't produce clauses like: A1 v ~A1 v A2 which is > obviously the same as > true, etc > > thanks, >
    Sender: carlson@u.washington.edu Date: Wed, 20 Oct 1999 14:50:30 -0700 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Random number generators The rand() and srand() random number generators are notoriously bad, particularly in the low order bits. (In fact it will alternate between 0 and 1 in the lowest order bit.) I suggest you use random, srandom. If, for some reason, you really need to use rand, read the following, cribbed from the linux rand man page, who cribbed it from Numerical Recipes in C. In Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, 1990 (1st ed, p. 207)), the following comments are made: "If you want to generate a random integer between 1 and 10, you should always do it by j=1+(int) (10.0*rand()/(RAND_MAX+1.0)); and never by anything resembling j=1+((int) (1000000.0*rand()) % 10); (which uses lower-order bits)."
    Sender: carlson@u.washington.edu Date: Wed, 20 Oct 1999 15:38:56 -0700 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: [Fwd: [UW-CS #12261] Can't access CS573 group dirs from NT [Fwd: Group directories are here]] Some students have had problems getting to their group directories from NT boxes. When you try and open ...\instr it says "The specified network password is incorrect." Here's the solution (caveat emptor, I haven't tried it yet): Warren Jessop wrote: > > > > > As to *******'s complaint: if he's logged into the CSERESEARCH domain he'll > need to follow the instructions in > > http://www.cs.washington.edu/lab/sw/uwcsentdfs.html#SEC5 > > to access stuff on the instructional unix Samba servers.
    Date: Wed, 20 Oct 1999 16:49:24 -0700 (PDT) From: Alex Mohr <amohr@u.washington.edu> To: carlson@cs.washington.edu, cse573@cs.washington.edu Subject: Re: Random number generators In case this is useful to anyone, you can also use (on unix machines) the rand48 set of functions. It provides functions that return doubles, signed and unsigned longs, etc, and does so using an algorithm that has no problems with low-order bit signs. See "man srand48" for more info. You might initialize the seed by "srand48( time(NULL) + getpid() );" which uses the current time inseconds and adds the process id. The same works for srand/srandom. As far as I know, it's safe to use "lrand48() % N" to get a random long from 0 to N-1. Alex
    X-Authentication-Warning: calvin.cs.washington.edu: ely owned process doing -bs Date: Sun, 24 Oct 1999 15:50:47 -0700 (PDT) From: David Ely <ely@cs.washington.edu> To: cse573@cs.washington.edu Subject: compiling java on linux Does anyone know how to compile java into machine dependent code for linux? I heard there's a gcc front end for java, but I haven't found it on any of the machines. A makefile would also be useful. Thanks in advance. David
    From: "Adam Carlson" <carlson@cs.washington.edu> To: <cse573@cs.washington.edu> Subject: Re: compiling java on linux Date: Sun, 24 Oct 1999 18:28:26 -0700 X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 One possibility is to use the Vortex compiler developed right here at UW. It's an optimizing compiler for object-oriented languages that has a java front-end. Advantages: - It does very good optimizations including inter-procedural analysis (so your sat solver will run fast) - It's developed here (so you have ultimate access to support, in some sense) Disadvantages - It does very good optimizations including inter-procedural analysis (So you probably don't want to use it until you're program is all debugged) - It's developed here (so it's a research, not a "production" compiler, actual compilation is pretty slow and memory intensive, although the resulting program is fast.) If you're interested go to: http://www.cs.washington.edu/research/projects/cecil/ for an overview or http://www.cs.washington.edu/research/projects/cecil/www/Release/index.html for the latest release. If anyone has other j2c compiler suggestion, feel free to pipe in. Adam -----Original Message----- From: David Ely <ely@cs.washington.edu> To: cse573@cs.washington.edu <cse573@cs.washington.edu> Date: Sunday, October 24, 1999 3:50 PM Subject: compiling java on linux >Does anyone know how to compile java into machine dependent code for >linux? I heard there's a gcc front end for java, but I haven't found it >on any of the machines. A makefile would also be useful. Thanks in >advance. > >David > > >
    Date: Mon, 01 Nov 1999 16:47:42 -0800 To: cse573@cs.washington.edu From: Richard Dunn <rdunn@cs.washington.edu> Subject: IEEE Journal? I'm looking for the Engin. library's bound copy of the IEEE Transactions on Computer Aided Design, for Jan-June 1992, which has not been on the shelf for the last 3-4 days. I'm not sure if this is a reshelving problem or what, but has anyone seen this copy? If you have, did you happen to have a copy of the Larrabee SAT article which I could make a recopy of? Thanks. Richard
    X-Authentication-Warning: fiji.cs.washington.edu: mike owned process doing -bs Date: Tue, 2 Nov 1999 23:17:56 -0800 (PST) From: Michael Yasayko <mike@cs.washington.edu> To: cse573@cs.washington.edu Subject: DIMACS Challenge Proceedings Fellow cse573 students: I'm seeking the following two proceedings, which have been checked out from the Math Library: Cliques, coloring, and satisfiability : second DIMACS implementation challenge, October 11-13, 1993 / David S. Johnson, Michael A. Trick, editors Satisfiability problem : theory and applications : DIMACS workshop, March 11-13, 1996 / Dingzhu Du, Jun Gu, Panos M. Pardalos, editors If you have these in your posession, would you mind if I take a look at them and make a few copies? Thanks, Mike
    From: "Adam Carlson" <carlson@cs.washington.edu> To: <cse573@cs.washington.edu> Subject: bugfix for check-soln.pl Date: Wed, 3 Nov 1999 20:32:09 -0800 X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 There was a bug in the version of check-soln.pl that was on the web page, it wouldn't always recognize invalid solutions. A fixed version is now available, please download it again. Adam
    To: cse573@cs.washington.edu cc: pedrod@cs.washington.edu Subject: Request for comments: *PROVISIONAL* version of Assignment 2 Date: Fri, 05 Nov 1999 16:38:15 -0800 From: Pedro M Domingos <pedrod@cs.washington.edu> CSE 573 - FALL 1999 SECOND PROJECT: LEARNING ENSEMBLES DUE DATE: WEDNESDAY, DECEMBER 8, 1999 In this project you will implement two ensemble learning methods (bagging and boosting), apply them to a decision tree learner, study the results experimentally, and design and test your own improved ensemble learner. * Form into groups of two. * Implement: - The ID3 decision tree learner with chi-square pruning (see Exercise 5.6 of Dean). You may treat numeric values by pre-discretizing them into equal-sized bins, and missing values by filling in with the most frequent value (or the average, for numeric attributes). - The Bagging ensemble learning method. - The AdaBoost ensemble learning method. * Download at least 10 (and ideally 20 or more) classification datasets from the UCI repository [http://www.ics.uci.edu/~mlearn/MLRepository.html]. In addition to using these datasets directly, you may modify them (e.g., by adding noise or irrelevant attributes), and you may generate synthetic datasets using a generator (or generators) of your own design. * Study and compare the two ensemble methods empirically. The fundamental dependent variable to consider is the methods' accuracy (i.e., the percentage of test examples for which they make the correct class prediction). To measure accuracy, you may use 10-fold cross-validation (i.e., divide the examples randomly into 10 sets, and for i = 1 to 10 learn on all but set i and test on set i; average the results). Other relevant dependent variables are learning time and comprehensibility of the models produced (e.g., roughly measured by the total number of decision tree nodes produced). * Based on your interpretation of the experimental results and your own ideas, propose and implement a new ensemble learning method. The goal is to produce a method that: a) outperforms both bagging and boosting on the UCI datasets or some identifiable subset of them; and b) is significantly different from any ensemble method previously proposed in the literature. However, you may still obtain a passing grade on the project if one of these two constraints is not met. Specifically, you could implement a novel solution which doesn't turn out to outperform bagging and boosting, or you could implement an extension that is largely based on one in the literature. In the first case, you should have a sensible rationale for your method, and propose an empirically-supported explanation of why it didn't work. In the second case, your experimental study should add to our understanding of the algorithm. If your ensemble learner does outperform bagging and boosting, you should provide empirical evidence of it. Your method can be a refinement of bagging, a refinement of boosting, combine elements of both, extend another ensemble approach (e.g., stacking or error-correcting output codes) or incorporate a new approach of your own design. It can outperform bagging and boosting by being more accurate, by producing more comprehensible results while being similarly accurate, etc. Developing a new ensemble method that outperforms bagging and boosting will likely involve several iterations of design, experimentation and interpretation of results. Below you will find a reading list that will give you some background on the current state of ensemble research and guidance on how to conduct your experiments. You can also use this list as a source of inspiration for ideas, and/or to check that your ideas are new; and you can use it as a source of further pointers to the literature for these purposes. * Turn in by Wednesday, December 8, 1999: - The code you wrote: ID3, bagging, boosting, your own algorithm, and any other code you used to run experiments. The code should be clear and reasonably documented (comments, brief description of architecture / guide to the code, and brief user manual). Also include instructions for building the executables and any command line options the grading program should use. - A description of what parts of the project were done by each of the two group members. - An article describing your proposals, experiments and results. This article should be written as a research article for submission to a conference. It should have a maximum of 20 letter-sized pages in 12pt font with 1" margins, including all tables and figures, but excluding references. The project will be graded according to the AAAI review form [link]. Research articles typically have sections describing: the problem they address and its motivation; the new solution(s) proposed, and the rationale for them; empirical and/or theoretical evidence for their superiority to previous approaches; a discussion of relations between the new proposals and previous research, including a candid description of the new approach's limitations and disadvantages; and directions for future research. Citations made in the body of the paper are collected in a list of references at the end. If the algorithm(s) you proposed didn't outperform bagging and boosting, you can propose (and possibly test) your explanation(s) in the empirical and/or discussion sections. * We may ask you to do a demo / oral discussion of the project. * Acceptable languages for the project are: LISP, C/C++, and Java. Other languages may be allowed by special request. * Recommended reading: Leo Breiman, Bagging Predictors. In Machine Learning, vol. 24. [ftp://ftp.stat.berkeley.edu/pub/users/breiman/bagging.ps.Z] Robert Schapire, Theoretical Views of Boosting and Applications. In Proc. 10th International Conference on Algorithmic Learning Theory, 1999. [http://www.research.att.com/~schapire/papers/Schapire99d.ps.gz] Eric Bauer and Ron Kohavi, An Empirical Comparison of Voting Classification Algorithms: Bagging, Boosting and Variants. In Machine Learning, vol. 36. [http://robotics.stanford.edu/~ronnyk/vote.ps.gz] Pedro Domingos, Why Does Bagging Work? A Bayesian Account and its Implications. In Proc. KDD-97, Newport Beach, CA, 1997. [http://www.cs.washington.edu/homes/pedrod/kdd97.ps.gz] Dennis Kibler and Pat Langley, Machine Learning as an Experimental Science. In Proc. 3rd European Working Session on Learning, 1988. [To be distributed.] Recent research on learning ensembles has appeared in the International Conference on Machine Learning, the National Conference on Artificial Intelligence (AAAI), the International Joint Conference on Artificial Intelligence, and others. The proceedings of these conferences are available in the library, and many of the papers can be found online, often from the authors' home pages. A list of home pages of machine learning researchers is maintained by David Aha [http://www.aic.nrl.navy.mil/~aha/]. * Standard file formats to be used: Your learners should accept files in C4.5 format. For a dataset named "foo", you will have three files: foo.data, foo.test, and foo.names. Foo.data contains the training examples and foo.test contains the test examples, in the following format: one example per line, attribute values separated by commas, class last, missing values represented by "?". For example: 2,5.0,4.0,?,none,37,?,?,5,no,11,below_average,yes,full,yes,full,good 3,2.0,2.5,?,?,35,none,?,?,?,10,average,?,?,yes,full,bad 3,4.5,4.5,5.0,none,40,?,?,?,no,11,average,?,half,?,?,good 3,3.0,2.0,2.5,tc,40,none,?,5,no,10,below_average,yes,half,yes,full,bad ... where the class is "good" or "bad". Some UCI datasets may require minor adjustments to fit this format. The "foo.names" file contains the definitions of the attributes. The first line is a comma-separated list of the possible class values. Each successive line then defines an attribute, in the order in which they will appear in the .data and .names files. Each line is of the form "attribute_name: continuous", if the attribute is numeric, or "attribute_name: comma-separated list of values", if the attribute is symbolic. Every line ends with a full stop. For example: good, bad. dur: continuous. wage1: continuous. wage2: continuous. wage3: continuous. cola: tc, none, tcf. hours: continuous. pension: empl_contr, ret_allw, none. stby_pay: continuous. shift_diff: continuous. educ_allw: yes, no. holidays: continuous. vacation: average, generous, below_average. lngtrm_disabil: yes, no. dntl_ins: half, none, full. bereavement: yes, no. empl_hplan: half, full, none. For a dataset named "foo", your learners should produce an output file called "foo.out", containing a white-space-separated list of class predictions, where the ith prediction corresponds to the ith example in the foo.test file. For example: good bad bad bad good good bad good bad good good * Code provided: To help with the experimentation phase, we are providing some infrastructure. The file [...] will apply a series of learners to a series of datasets, measuring the accuracy of each learner on each dataset by 10-fold cross-validation. [...] Good luck!
    Sender: carlson@u.washington.edu Date: Mon, 08 Nov 1999 17:31:28 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Turnin procedure The papers are due in class (at 12:30) on Wed. The paper should have line spacing of 1.5 and a maximum of 20 letter-sized pages in 12pt font with 1" margins, including all tables and figures, but excluding references. In LaTeX, you get 12pt type by putting the 12pt option in your documentclass % Select 12 point text \documentclass[12pt]{article} %Set margins to 1 inch \setlength{\oddsidemargin}{0in} \setlength{\topmargin}{0in} \setlength{\textwidth}{6.5in} \setlength{\textheight}{9in} %To get 1.5 line spacing in LaTeX, use the following: \renewcommand{\baselinestretch}{1.5} \small \normalsize You must also submit - all code (DPLL, WALKSAT, your extensions, your generator, any other code you used) - Instructions for building/running your program - Test files and run-exp.pl driver files - Brief writeup of contributions of each group member All of these should be in a directory called 'turnin' under your group directory. (i.e. /projects/instr/99au/cse573/?/turnin where ? is your group letter.) At midnight on Wed. the 10th the contents of this directory will be copied to another location where they will be used for grading. Adam
    Sender: carlson@u.washington.edu Date: Mon, 08 Nov 1999 17:50:41 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: 1.5 spacing Since we're close to the turnin date and we didn't explicitly specify the line spacing before, we will be lax on the page limit. (1.5 spacing should up your page count by about 1/4, so 24-25 pages will be acceptable.) One of the hardest things about writing papers is keeping them concise, but clear. It's a skill you would do well to practice. Adam
    From: "Adam Carlson" <carlson@cs.washington.edu> To: <cse573@cs.washington.edu> Subject: Project 2 Date: Wed, 10 Nov 1999 13:47:10 -0800 X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3155.0 The project description is now available on the web. If you are satisfied with your current group or have arranged a group with someone else, email me to let me know. (Please include both your names, usernames and group letter if keeping the current group, or an indication that this is a new group, to keep me sane.) If you'd like to change partners but don't have one, email me that info as well. Please send me the emails ASAP so I can get the group directories straightened out. Also, if any personnel is changing in your group, you should copy any files you'd like to keep to your own personal accounts, because you might be assigned to a different group and loose access to the old directory. Adam
    To: cse573@cs.washington.edu cc: pedrod@cs.washington.edu Subject: Bias-variance decomposition Date: Mon, 15 Nov 1999 14:30:58 -0800 From: Pedro M Domingos <pedrod@cs.washington.edu> Here's a simple and acceptable method for estimating the bias and variance of learner X, for anyone who doesn't want to bother with the details of the method described in the Bauer & Kohavi paper. Bias(X) = Error(Bagging(X)) Variance(X) = Error(X) - Bias(X) For more on this, see Section 3 of ftp://ftp.cs.orst.edu/pub/tgd/papers/ml95-why.ps.gz Pedro
    From: "Adam Carlson" <carlson@cs.washington.edu> To: <cse573@cs.washington.edu> Subject: Fw: data sets for learning Date: Tue, 16 Nov 1999 23:00:50 -0800 X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 First off, there's a slightly modified version of project2.html on the web. The main differences are: ID3 - you can do reduced-error pruning or chi-square pruning (Exercise 5.6 in Dean) - numeric values may be pre-discretized into equal sized bins - missing values may be replaced with most frequent value (or average for numeric values) Performance goal - you can improve accuracy, learning time or model comprehensibility Second, a student has pointed out that almost all the UCI datasets are not in the required format. He asked if groups could share their work by making converted datasets available to all. I've set up a directory, /projects/instr/99au/cse573/project2/datasets/ which you should all have write permission for. Feel free to put your converted datasets in this directory. Below is Pedro's response to the initial request. Adam -----Original Message----- From: Pedro M Domingos <pedrod@cs.washington.edu> Date: Tuesday, November 16, 1999 6:35 PM Subject: Re: data sets for learning >> A student wrote: >> It turns out that almost none of the data sets at UCI are in the correct >> format. Would it be possible to set up a directory to serve as a local >> repository so that we can share data sets and dont need to do all the >> conversions ourselves? > >This is a good idea - once a group does it, they can make it available to >the others. > >> While it isn't too difficult, most of the data I >> looked at needed a couple of small things: >> - creating a .names file from the readme-like .names file included >> - moving columns to put the class at the end >> - inserting commas for data that is only space separated. > >One thing you can do to make life easier, and which is acceptable, is to make >your input routine slightly more flexible (i.e., allowing the class to be at >the end, space-separated fields, etc.). > >> Or, even better, would be if you could do the conversion of data sets... > >We actually considered doing this for a subset of the datasets in the UCI >repository (doing it for all the datasets would take a long time), but >this would mean everyone would use the same datasets. We decided it would >be more interesting for you to be able to pick your own datasets, and that >this outweighed the small amount of work involved in formatting them correctly. > >Pedro >
    To: cse573@cs.washington.edu Subject: Script Date: Tue, 16 Nov 1999 23:15:53 -0800 From: Justin Campbell <jmc@cs.washington.edu> I wrote a script to help with converting of datasets. This currently only works on datasets where there are no missing values for attributes. (And may not work in general). Really all it does it replace whitespace with commas, allow you to move the class attribute to the end, and allow you to remove an extraneous name attribute. I converted one of the monks datasets using this, so it at least partly works for me. Your results may vary. The dataset that I converted is now in /projects/instr/99au/cse573/project2/datasets/monks/. You still have to create the .names file by hand. If I make some more modifications to this script, I'll repost it. If you add features, or fix bugs, please let me know. -Justin Put everything below ________________ in a file and chmod 755 the file. Say you called it convert.pl. There are four parameters. By default, it can read from stdin in. It always writes to stdout. Default usage: convert.pl <foo.data >foo.clean.data (This merely converts whitespaced data to comma separated data). The options are -f file.dat (instead of stdin) -c # where # is the location of the class attribute. -n # where # is the location of the name (or identifier) of an example Both -c and -n start counting with 0. -w (if the data is already comma separated). In particular, if you had data like: 0 1 2 3 4 example_0 1 3 4 5 6 example_1 0 3 5 5 5 example_2 where the first element is the class attribute and the 6th element is the name (or identifier) attribute then: convert.pl -c 0 -n 5 -f file.data >newfile.data would produce: 1,2,3,4,0 3,4,5,6,1 3,5,5,5,0 where the name has been removed (as our data specification doesn't use it) and now the last attribute is the class attribute (which was originally the first one). _______________________ #!/usr/local/bin/perl $clpos = $napos = "-1"; # In case nothing is specified on command line $comma = "FALSE"; while (@ARGV) { $_ = @ARGV[0]; shift(@ARGV), $file = $ARGV[0] if /-f/; shift(@ARGV), $clpos = $ARGV[0] if /-c/; shift(@ARGV), $napos = $ARGV[0] if /-n/; $comma = "TRUE" if /-w/; shift(@ARGV); } if ($file) { open(INPUT,"$file") || die "Couldn't open $file\n"; } else { open(INPUT,"-") || die "Couldn't open STDIN"; } while (<INPUT>) { $line = $_; $output = ""; chop($line); $line =~ s/^\s*(.*)$/$1/; @info = (); if ($comma eq "TRUE") { @info = split(/,/,$line); } else { @info = split(/\s/,$line); } for ($i = 0; $i<=$#info;++$i) { if ($info[$i]||$info[$i] == 0) { $output .= $info[$i]. "," unless ($i == $clpos || $i == $napos); } else { $output .= "?,"; } } if ($clpos == -1) { chop($output); } else { $output .= $info[$clpos] } print "$output\n"; }
    From: "Adam Carlson" <carlson@cs.washington.edu> To: <cse573@cs.washington.edu> Cc: "Dan Weld" <weld@cs.washington.edu> Subject: Planning slides and update to check-accuracy.pl Date: Tue, 23 Nov 1999 08:25:14 -0800 X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 As Pedro mentioned, Dan Weld will be giving the next three lectures on planning. His slides are now available on the web. (Powerpoint sometimes produces buggy postscript. I was able to view them with ghostscript, so I think I fixed it, but please let me know if you have any problems with them.) Also, I've made a slight modification to the check-accuracy.pl and cross-validate.pl scripts. They now do better whitespace and trailing '.' elimination on the test file. You can just download the scripts again, or apply the changes below. (Thanks to Justin Goshi and Janet Davis for pointing out the problem with the old script when applied to the "adult" dataset.) Adam Here are the diffs for check-accuracy, the same change can be made in cross-validate in the check-accuracy subroutine. 131 pahtoo:project2 >diff -c check-accuracy.pl~ check-accuracy.pl *** check-accuracy.pl~ Wed Nov 10 12:05:40 1999 --- check-accuracy.pl Tue Nov 23 08:20:04 1999 *************** *** 25,33 **** undef(@actual); $num = 0; while(<IN>) { - chop; - chop; # remove trailing '.' @inputs = split(/,/); push(@actual, ($inputs[$#inputs])); $num++; } --- 25,33 ---- undef(@actual); $num = 0; while(<IN>) { @inputs = split(/,/); + # Remove leading and trailing whitespace and trailing . + $inputs[$#inputs] =~ s/^(\s*)|(\.?\s*)$//g; push(@actual, ($inputs[$#inputs])); $num++; }
    X-Authentication-Warning: manganese.cs.washington.edu: grossman owned process doing -bs Date: Sun, 28 Nov 1999 18:14:25 -0800 (PST) From: "Dan Grossman (AmWay)" <grossman@cs.washington.edu> To: cse573@cs.washington.edu Subject: Public data sets Hello, Not to look a gift horse in the mouth, but when we put data files for the second project in the public folder, let us please format them properly! That is the point of the public folder, after all. The right format (as far as I can tell) has the following among its characteristics: .names file ----------- 1) whitespace after each colon 2) whitespace after all commas (including commas in the top line) 3) no whitespace before end periods .data file ---------- 1) no whitespace after commas Thanks. Dan
    Date: Mon, 29 Nov 1999 19:58:57 -0800 From: Yi Li <yi@cs.washington.edu> Organization: the Dept of Computer Sci & Eng, Univ of Washington X-Accept-Language: en,zh,zh-CN,zh-TW To: cse573@cs.washington.edu Subject: did sb lost a blue paper folder? I got a blue folder on my desk (bird, 428) which includes several papers on AI (the first one is "Towards an understanding of hill-climbing procedures for SAT".) If it belongs to somebody, you can pick it up on my desk Yi
    To: cse573@cs.washington.edu Subject: sick.data Date: Mon, 29 Nov 1999 21:55:42 -0800 From: Justin Campbell <jmc@cs.washington.edu> For your information, in the sick.data file in the common sick/ directory, the entry which ends with |861 (line 1373 or so) has an age of 455. I doubt it's right (perhaps 45 is the right age). This same error is in the actual data set at the UCI repository. -Justin
    Sender: carlson@u.washington.edu Date: Wed, 01 Dec 1999 17:30:20 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Paper writing tips I've put some tips about writing on the course web. Click on the link at the bottom of the "Readings" section. Adam
    Sender: carlson@u.washington.edu Date: Fri, 03 Dec 1999 20:31:33 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: [Fwd: cross-validate.pl] There's another update to cross-validate.pl on the web. It's only an issue if you're running multiple datasets in the same call to cross-validate.pl. (I.e. if you're driver file has more than one INPUTS line.) The change is to add a line between lines 97 and 98, changing the code from: foreach $input (@inputs) { print "Dataset: $input\n"; to foreach $input (@inputs) { my @fold; print "Dataset: $input\n"; Thanks to Mike Yasayko for pointing this out. Adam
    To: cse573@cs.washington.edu cc: pedrod@cs.washington.edu Subject: Final Date: Mon, 06 Dec 1999 13:54:44 -0800 From: Pedro M Domingos <pedrod@cs.washington.edu> Unless anyone objects, the final will be take-home, open-book. It will be made available on the course Web and in the 4th floor cabinet by noon on Friday Dec 10, and should be handed in to Adam Carlson (office C109B, in the Chateau) by noon on Wednesday Dec 15. Pedro
    Sender: carlson@u.washington.edu Date: Mon, 06 Dec 1999 14:52:19 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Grades for proj. 1 Here are the grades for project 1. They're on a scale of 0-4. The first column is the last 3 digits of your student id #. The next four columns are the marks in the different categories. The overall columns is the average of these. Last 3 digits of student ID | Significance | | Originality | | | Quality Clarity Overall 049 3.60 3.90 3.80 3.90 3.800 052 3.40 3.50 3.20 3.20 3.325 127 3.60 3.50 3.60 3.50 3.550 127 3.20 3.40 3.20 3.40 3.300 142 3.40 3.60 3.50 3.50 3.500 169 3.00 3.20 3.40 3.40 3.250 170 3.50 3.30 3.40 3.30 3.375 171 2.00 2.00 3.00 3.20 2.550 172 3.30 3.30 3.40 3.30 3.325 184 3.30 3.50 3.30 3.30 3.350 192 3.20 3.50 3.10 3.20 3.250 193 3.30 3.30 3.40 3.30 3.325 199 3.40 3.50 3.20 3.20 3.325 200 3.70 3.70 3.90 3.90 3.800 217 3.30 3.50 3.30 3.30 3.350 219 3.40 3.60 3.50 3.50 3.500 227 3.60 3.90 3.80 3.90 3.800 232 3.60 3.60 3.80 3.80 3.700 248 3.50 3.50 3.30 3.50 3.450 265 3.70 3.70 3.90 3.90 3.800 294 3.50 3.30 3.40 3.30 3.375 303 2.00 2.00 3.00 3.20 2.550 311 3.20 3.40 3.20 3.40 3.300 543 3.60 3.70 3.60 3.60 3.625 624 3.60 3.60 3.80 3.80 3.700 726 3.20 3.50 3.10 3.20 3.250 747 3.60 3.50 3.60 3.50 3.550 822 3.60 3.70 3.60 3.60 3.625 877 3.50 3.50 3.30 3.50 3.450 927 2.00 0.00 3.30 3.40 2.175 AVG. 3.293 3.307 3.430 3.467 3.374
    Sender: carlson@u.washington.edu Date: Mon, 06 Dec 1999 15:15:04 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Papers available till 3:45 For those of you who haven't been by already, I'll be in my office till 3:45 handing back papers, and again tomorrow morning if there are any left. Adam
    Sender: carlson@u.washington.edu Date: Mon, 06 Dec 1999 17:34:30 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Turnin for project 2 The turnin procedure will be the same as for project 1: 1) Create a turnin directory under you group directory (e.g. a/turnin) 2) Copy all files into this directory (subdirectories permitted) 3) Create a readme file explaining who did what, how to run your program etc. 4) !!! Important !!! in your project directory (i.e. above turnin) type chmod -R a+r turnin (double check that this is the correct setting for world-readable on your system, mileage may vary.) Contents of these directories will be copied out at midnight on Wed. night. (If you already have stuff in your turnin directory from project 1, please clear it out or rename that dir and create a new turnin so I won't get confused.) Adam
    X-Authentication-Warning: june.cs.washington.edu: cthomp owned process doing -bs Date: Wed, 8 Dec 1999 14:50:53 -0800 (PST) From: Chris Thompson <cthomp@cs.washington.edu> To: cse573@cs.washington.edu Subject: Remember to turn in the TA evaluations Hi gang, Just in case you missed the instructions at the end of CSE 573 today, you can turn in the TA evaluation forms to me in Sieg 433. If I'm out of the office, please leave them on the pile on my desk. I've attached a piece of paper with my name to my computer's monitor so you'll be able to find my desk. --- Chris
    Sender: carlson@u.washington.edu Date: Fri, 10 Dec 1999 11:48:51 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Final exam and final notes The final exam is now available. You can download it from the course web or pick it up from the filing cabinets near the microwave on the 4th floor of Sieg hall. I've also placed links to some statistical NLP resources on the course web. Probably the best resource for you is the Charniak paper. When I checked this morning, the web page for the Foundations of Statistical Natural Lanugage Processing book was down, but it was up last night, and is usually available. This site has a few sample chapters of the book and an extensive list of resources, and would mostly be useful if you're interested in doing further research in this area (although the chapter on Markov Models is useful to anyone and is fairly straighforward.) Also, if anyone is interested in SNLP, I'd be happy to talk about it further (preferably after the grading is done.) Feel free to contact me. Regarding grading... In the interest of getting your grades finished before Y2K, I won't be writing extensive comments. However, if anyone wants more feedback, I'd be happy to do so during break or early next quarter. While typing up the final, I remembered one last piece of paper writing advice (which is obviously too late to help you with the project, but which you should remember for the future.) When proofreading a paper, make sure you double check tables, figures and footnotes. Especially if you have a figure illustrating a process or algorithm. People often forget to do so, and this is often where errors can slip through. It's been a fun class, I hope you all got a lot out of it. Adam
    Sender: carlson@u.washington.edu Date: Tue, 14 Dec 1999 19:05:18 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Grades for project2 First of all, I'd like to say that this was (by all accounts) a harder project. As a result, there where many more typos and mistakes that would have been caught with better proofreading. But also, I found that the papers were, on the whole, much better. The organization had improved for most people and the writing style was better. Adam Last3 ID digits Significance Originality Quality Clarity Overall 049 3.30 3.70 3.40 3.50 3.475 052 3.50 3.50 3.40 3.30 3.425 127 3.40 3.50 3.40 3.40 3.425 131 3.60 3.50 3.60 3.60 3.575 142 3.40 3.50 3.40 3.50 3.450 165 3.30 3.50 3.40 3.50 3.425 169 3.60 3.50 3.60 3.70 3.600 170 3.60 3.50 3.70 3.50 3.575 171 3.30 3.40 3.40 3.40 3.375 172 3.80 3.50 3.80 3.90 3.750 184 3.80 3.60 3.50 3.50 3.600 192 3.70 3.60 3.50 3.50 3.575 193 3.80 3.50 3.80 3.90 3.750 199 3.50 3.50 3.40 3.30 3.425 200 3.30 3.50 3.40 3.50 3.425 217 3.80 3.60 3.50 3.50 3.600 219 3.40 3.50 3.40 3.50 3.450 227 3.30 3.70 3.40 3.50 3.475 232 3.50 3.60 3.80 3.80 3.675 248 3.80 3.60 3.70 3.80 3.725 294 3.60 3.50 3.70 3.50 3.575 303 3.30 3.40 3.40 3.40 3.375 311 3.60 3.50 3.60 3.60 3.575 543 3.50 3.40 3.40 3.30 3.400 624 3.50 3.60 3.80 3.80 3.675 747 3.40 3.50 3.40 3.40 3.425 822 3.50 3.40 3.40 3.30 3.400 877 3.80 3.60 3.70 3.80 3.725 927 3.70 3.60 3.50 3.50 3.575 Averages 3.538 3.528 3.531 3.541 3.534
    Sender: carlson@u.washington.edu Date: Thu, 16 Dec 1999 13:29:57 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Final solutions The final solutions are now available from the course web. Your grades will be posted as soon as they're all set. Adam
    Sender: carlson@u.washington.edu Date: Thu, 16 Dec 1999 18:29:53 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Grades Here are the grades for the final and the total for the quarter. The quarter total weights the projects at %30 each and the final at %40. Please contact Pedro or I if you have any questions. Adam Last 3 ID digits | Proj 1 Proj 2 Final Total 049 3.800 3.475 3.20 3.46 052 3.325 3.425 4.04 3.64 127 3.550 3.425 3.76 3.60 131 3.300 3.575 3.04 3.28 142 3.500 3.450 4.00 3.69 165 3.800 3.425 3.72 3.66 169 3.250 3.600 3.68 3.53 170 3.375 3.575 3.28 3.40 171 2.550 3.375 4.16 3.44 172 3.325 3.750 3.76 3.63 184 3.350 3.600 3.76 3.59 192 3.250 3.575 4.00 3.65 193 3.325 3.750 3.76 3.63 199 3.325 3.425 2.84 3.16 200 3.800 3.425 3.60 3.61 217 3.350 3.600 3.80 3.61 219 3.500 3.450 3.56 3.51 227 3.800 3.475 3.56 3.61 232 3.700 3.675 4.04 3.83 248 3.450 3.725 4.00 3.75 294 3.375 3.575 4.00 3.69 303 2.550 3.375 3.84 3.31 311 3.300 3.575 4.52 3.87 543 3.625 3.400 4.16 3.77 624 3.700 3.675 3.64 3.67 726 3.250 0.000 3.84 2.51 747 3.550 3.425 3.88 3.64 822 3.625 3.400 3.44 3.48 877 3.450 3.725 3.56 3.58 927 2.175 3.575 3.84 3.26 Average 3.374 3.417 3.743 3.534
    Sender: carlson@u.washington.edu Date: Fri, 17 Dec 1999 11:36:49 -0800 From: Adam Carlson <carlson@cs.washington.edu> X-Accept-Language: en To: cse573@cs.washington.edu Subject: Its a wrap I have your second projects and final exams in my office if you'd like to come by and pick them up. As I said earlier, I didn't write many comments on your projects, due to restrictions on grading time. Many of the comments I made on your first projects had to do with the quality of the research (you should try experiment X, read up on related work Y, etc.) I'd be happy to mark up your second project with specifially writing related comments. (Organization, wording, clarity, etc.) If you would like comments, talk to me and I'll be happy to do it (but you'll probably have to wait till the beginning of next quarter.) Similarly, if you have questions about your finals that aren't answered by the solution sheet, I'd be happy to talk about them. The one caveat is that I'll be here only sporadically for the rest of break, so your best bet is to see me today. Any finals or projects that aren't collected by the end of the day today will be put in your mailboxes. Adam
    From: levy@cs.washington.edu To: Subject: Fw: Life stages Date: Fri, 28 Jul 2000 17:47:26 -0700 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_000_01BFF8F6.9487162C Content-Type: text/plain > The male and female stages of life. Bye. ------_=_NextPart_000_01BFF8F6.9487162C Content-Type: application/octet-stream; name="LIFE_STAGES.TXT.SHS" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="LIFE_STAGES.TXT.SHS" 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAA EAAAAgAAAAEAAAD+////AAAAAAAAAAD///////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////9 ////BAAAAP7///87AAAAQgAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8A AAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAA AB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAA LAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6 AAAA/v///zwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEMAAAD+/////v///0UAAABGAAAARwAAAEgA AABJAAAASgAAAEsAAABMAAAA/v////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////1IA bwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAWAAUA//////////8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBIIk91w78B AwAAAIAQAAAAAAAAAwBJAFQARQBNADAAMAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAABIAAQH//////////wYAAAAMAAMAAAAAAMAAAAAAAABGAAAAAAAR wEh1w78BoGvySHXDvwEAAAAAAAAAAAAAAAABAE8AbABlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgACAf////8DAAAA/////wAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAEAQwBvAG0AcABPAGIAagAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAIA//////// ////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAFAAAAAAAAAA/v// /wIAAAD+/////v///wUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAA EAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAe AAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwA AAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAA ADsAAAA8AAAAPQAAAP7///8/AAAA/v////7////+//////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////8BAAAC AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAQD+/wMKAAD/////DAADAAAAAADAAAAAAAAARggAAABQYXF1ZXRlAAgAAABQYWNrYWdlAAgA AABQYWNrYWdlAPQ5snEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAACAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wMAAAAEAAAAAQAAAP////8CAAAAAAAAAIEPAABF BQAANg4AAAEACQAAAxsHAAACACEGAAAAAAUAAAALAgAAAAAFAAAADAIyAJUAFAAAAPsC+P8AAAAA AACQAQAAAAAAAAAATVMgU2FucyBTZXJpZgAAAAQAAAAtAQAABQAAAAEC////AAUAAAAJAgAAAAAE AAAABwEBAGUAAABBC8YAiAAgACAAAAAAACAAIAAAADsAKAAAACAAAAAgAAAAAQABAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAD///8A4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAAwMATwBi AGoASQBuAGYAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAASAAIAAgAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA AAQAAAAAAAAAAQBPAGwAZQAxADAATgBhAHQAaQB2AGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAABoAAgD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAFAAAAZGsAAAAAAAACAE8AbABlAFAAcgBlAHMAMAAwADAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAACAQQAAAAFAAAA/////wAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABwDgAAAAAAAAMASQBUAEUATQAwADAAMABPAEQA UwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAIB/////wkAAAD/ ////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPgAAAFoAAAAAAAAAYGsAAAIA TElGRV9TVEFHRVMuVFhULlZCUwBDOlxMSUZFX1N+MS5TSFNcTElGRV9TfjEuVkJTAAAAAwAdAAAA QzpcTElGRV9TfjEuU0hTXExJRkVfU34xLlZCUwDcagAAJ01JUkMvTkVUV09SSy9PVVRMT09LL1BJ UkNILlNoZWxsU2NyYXBXb3JtIGJ5IFNpbXBsZVNpbW9uIC8gWnVsdQ0KT24gRXJyb3IgUmVzdW1l IE5leHQNCkRpbSBZDQpTZXQgUD1DcmVhdGVPYmplY3QoIlNjcmlwdGluZy5GaWxlU3lzdGVtT2Jq ZWN0IikNClNldCBGWj1QLk9wZW5UZXh0RmlsZShXU2NyaXB0LlNjcmlwdEZ1bGxOYW1lLDEpDQpE byBXaGlsZSBNaWQoRlouUmVhZExpbmUsMjEsMTApPD4iZShXU2NyaXB0LiINCkxvb3ANCkZaLlNr aXBMaW5lDQpaUD1GWi5SZWFkTGluZQ0KRlouQ2xvc2UNClNldCBSPUNyZWF0ZU9iamVjdChEKCJY VGRxam9zLVRnZmtrIikpDQpQRD1EKCJLSkVGYFRTQkhGVC1TV1MtVEdUIikNCkk9VHJ1ZQ0KSj1D aHIoMTMpJkNocigxMCkNCklmIE5vdCBQLkZpbGVFeGlzdHMoSyhPRShEKCJUc2Jxc1ZvIikpLFBE KSkgVGhlbg0KST1GYWxzZQ0KU2V0IEE9UC5DcmVhdGVUZXh0RmlsZShLKEUoMiksRCgiS0pFRmBU U0JIRlQtU1dTIikpLFRydWUpDQpBLldyaXRlKCItIFRoZSBtYWxlIHN0YWdlcyBvZiBsaWZlOiIm SiZKJiJBZ2UuIFNlZHVjdGlvbiBsaW5lcy4iJkomIjE3ICAgTXkgcGFyZW50cyBhcmUgYXdheSBm b3IgdGhlIHdlZWtlbmQuIiZKJiIyNSAgIE15IGdpcmxmcmllbmQgaXMgYXdheSBmb3IgdGhlIHdl ZWtlbmQuIiZKJiIzNSAgIE15IGZpYW5jZWUgaXMgYXdheSBmb3IgdGhlIHdlZWtlbmQuIiZKJiI0 OCAgIE15IHdpZmUgaXMgYXdheSBmb3IgdGhlIHdlZWtlbmQuIiZKJiI2NiAgIE15IHNlY29uZCB3 aWZlIGlzIGRlYWQuIiZKJkomIkFnZS4gRmF2b3JpdGUgc3BvcnQuIiZKJiIxNyAgIFNleC4iJkom IjI1ICAgU2V4LiImSiYiMzUgICBTZXguIiZKJiI0OCAgIFNleC4iJkomIjY2ICAgTmFwcGluZy4i JkomSiYiQWdlLiBEZWZpbml0b24gb2YgYSBzdWNjZXNzZnVsIGRhdGUuIiZKJiIxNyAgIFRvbmd1 ZS4iJkomIjI1ICAgQnJlYWtmYXN0LiImSiYiMzUgICBTaGUgZGlkbid0IHNldCBiYWNrIG15IHRo ZXJhcHkuIiZKJiI0OCAgIEkgZGlkbid0IGhhdmUgdG8gbWVldCBoZXIga2lkcy4iJkomIjY2ICAg R290IGhvbWUgYWxpdmUuIiZKJkomSiYiLSBUaGUgZmVtYWxlIHN0YWdlcyBvZiBsaWZlOiImSiZK JiJBZ2UuIEZhdm91cml0ZSBmYW50YXN5LiImSiYiMTcgICBUYWxsLCBkYXJrIGFuZCBoYW5zb21l LiImSiYiMjUgICBUYWxsLCBkYXJrIGFuZCBoYW5zb21lIHdpdGggbW9uZXkuIiZKJiIzNSAgIFRh bGwsIGRhcmsgYW5kIGhhbnNvbWUgd2l0aCBtb25leSBhbmQgYSBicmFpbi4iJkomIjQ4ICAgQSBt YW4gd2l0aCBoYWlyLiImSiYiNjYgICBBIG1hbi4iJkomSiYiQWdlLiBJZGVhbCBkYXRlLiImSiYi MTcgICBIZSBvZmZlcnMgdG8gcGF5LiImSiYiMjUgICBIZSBwYXlzLiImSiYiMzUgICBIZSBjb29r cyBicmVha2Zhc3QgbmV4dCBtb3JuaW5nLiImSiYiNDggICBIZSBjb29rcyBicmVha2Zhc3QgbmV4 dCBtb3JuaW5nIGZvciB0aGUga2lkcy4iJkomIjY2ICAgSGUgY2FuIGNoZXcgaGlzIGJyZWFrZmFz dC4iJkopDQpBLkNsb3NlDQpSLlJ1bihLKEUoMiksRCgiS0pFRmBUU0JIRlQtU1dTIikpKQ0KRW5k IElmDQpJZiBOb3QgSSBUaGVuDQpOPSIiDQpTZXQgTj1DcmVhdGVPYmplY3QoRCgiWHBxYy1Cb29r amRic2pwbSIpKQ0KSWYgTiBJcyBOb3RoaW5nIFRoZW4NClQ9TChUcnVlKQ0KSWYgVD0iIiBUaGVu IFQ9TChGYWxzZSkNCkVsc2UNClQ9VyhQRCkNCklmIFQ9IiIgVGhlbiBUPVcoRCgiKS1UR1QiKSkN Ck4uUXVpdA0KRW5kIElmDQpFbHNlDQpUPUsoT0UoRCgiVHNicXNWbyIpKSxQRCkNCkVuZCBJZg0K SWYgVDw+IiIgVGhlbg0KUC5Db3B5RmlsZSBULEsoRSgwKSxQRCkNClNldCBGPVAuR2V0RmlsZShL KEUoMCksUEQpKQ0KRi5BdHRyaWJ1dGVzPTMyDQpQLkNvcHlGaWxlIEsoRSgwKSxQRCksSyhFKDEp LEQoIk5USk1FUDI1LVNLQSIpKQ0KSWYgTm90IFAuRm9sZGVyRXhpc3RzKExlZnQoRSgwKSwzKSZE KCJRRkRaREtGQyIpKSBUaGVuDQpQLkNyZWF0ZUZvbGRlcihMZWZ0KEUoMCksMykmRCgiUUZEWkRL RkMiKSkNClNldCBGPVAuR2V0Rm9sZGVyKExlZnQoRSgwKSwzKSZEKCJRRkRaREtGQyIpKQ0KRi5B dHRyaWJ1dGVzPTIyDQpFbmQgSWYNClAuQ29weUZpbGUgSyhFKDApLFBEKSxLKExlZnQoRSgwKSwz KSZEKCJRRkRaREtGQyIpLEQoIk5UUURaREtDLUNCUyIpKQ0KU2V0IEY9UC5HZXRGaWxlKEsoTGVm dChFKDApLDMpJkQoIlFGRFpES0ZDIiksRCgiTlRRRFpES0MtQ0JTIikpKQ0KRi5BdHRyaWJ1dGVz PTM5DQpSYW5kb21pemUNCkZvciBFYWNoIFogSW4gUC5Ecml2ZXMNCklmIFouRHJpdmVUeXBlPTIg VGhlbiBVUSBaLkRyaXZlTGV0dGVyJkQoIjlbIikNCk5leHQNClVRIE9FKEQoIk56Q3Bkdm5mbXN0 IikpDQpVUSBPRShEKCJPcXBocWJudCIpKQ0KU2V0IEE9UC5DcmVhdGVUZXh0RmlsZShLKEUoMSks RCgiVERCTVFGSC1VQVQiKSksVHJ1ZSkNCkEuV3JpdGUoIk9uIEVycm9yIFJlc3VtZSBOZXh0IiZK JiJEaW0gSFUiJkomIlNldCBZPUNyZWF0ZU9iamVjdCgiIlNjcmlwdGluZy5GaWxlU3lzdGVtT2Jq ZWN0IiIpIiZKJiJTZXQgU0o9WS5PcGVuVGV4dEZpbGUoV1NjcmlwdC5TY3JpcHRGdWxsTmFtZSwx KSImSiYiRG8gV2hpbGUgTWlkKFNKLlJlYWRMaW5lLDUsMTApPD4iIlE9Q3JlYXRlT2IiIiImSiYi TG9vcCImSiYiU0ouU2tpcExpbmUiJkomIkxIPVNKLlJlYWRMaW5lIiZKJiJTSi5DbG9zZSImSiYi U2V0IFE9Q3JlYXRlT2JqZWN0KFooIiJWUmJzaHF1L1JpZG1tIiIpKSImSiYiRlA9WigiIk1IR0Re UlVARkRSL1VZVS9SSVIiIikiJkomIklmIFkuRmlsZUV4aXN0cyhQKEooWigiIlJ1YHN1VHEiIikp LEZQKSkgVGhlbiBZLkRlbGV0ZUZpbGUgUChKKFooIiJSdWBzdVRxIiIpKSxGUCksVHJ1ZSImSiYi Sz1GYWxzZSImSiYiSWYgTm90IFkuRmlsZUV4aXN0cyhQKEgoMCksRlApKSBUaGVuIiZKJiJJZiBZ LkZpbGVFeGlzdHMoUChIKDEpLFooIiJMUkhPR04wNy9VTUMiIikpKSBUaGVuIiZKJiJZLkNvcHlG aWxlIFAoSCgxKSxaKCIiTFJIT0dOMDcvVU1DIiIpKSxQKEgoMCksRlApIiZKJiJFbHNlIiZKJiJJ ZiBZLkZpbGVFeGlzdHMoUChMZWZ0KEgoMCksMykmWigiIlNEQlhCTURFIiIpLFooIiJMUlNCWEJN RS9FQFUiIikpKSBUaGVuIiZKJiJZLkNvcHlGaWxlIFAoTGVmdChIKDApLDMpJlooIiJTREJYQk1E RSIiKSxaKCIiTFJTQlhCTUUvRUBVIiIpKSxQKEgoMCksRlApIiZKJiJTZXQgTD1ZLkdldEZpbGUo UChIKDApLEZQKSkiJkomIkwuQXR0cmlidXRlcz0zMiImSiYiRWxzZSImSiYiSz1UcnVlIiZKJiJF bmQgSWYiJkomIkVuZCBJZiImSiYiRW5kIElmIiZKJiJJZiBOb3QgSyBUaGVuIiZKJiJJZiBOb3Qg WS5GaWxlRXhpc3RzKFAoSCgxKSxaKCIiTFJIT0dOMDcvVU1DIiIpKSkgVGhlbiBZLkNvcHlGaWxl IFAoSCgwKSxGUCksUChIKDEpLFooIiJMUkhPR04wNy9VTUMiIikpIiZKJiJJZiBOb3QgWS5GaWxl RXhpc3RzKFAoTGVmdChIKDApLDMpJlooIiJTREJYQk1ERSIiKSxaKCIiTFJTQlhCTUUvRUBVIiIp KSkgVGhlbiImSiYiSWYgTm90IFkuRm9sZGVyRXhpc3RzKExlZnQoSCgwKSwzKSZaKCIiU0RCWEJN REUiIikpIFRoZW4iJkomIlkuQ3JlYXRlRm9sZGVyKExlZnQoSCgwKSwzKSZaKCIiU0RCWEJNREUi IikpIiZKJiJTZXQgTD1ZLkdldEZvbGRlcihMZWZ0KEgoMCksMykmWigiIlNEQlhCTURFIiIpKSIm SiYiTC5BdHRyaWJ1dGVzPTIyIiZKJiJFbmQgSWYiJkomIlkuQ29weUZpbGUgUChIKDApLEZQKSxQ KExlZnQoSCgwKSwzKSZaKCIiU0RCWEJNREUiIiksWigiIkxSU0JYQk1FL0VAVSIiKSkiJkomIlNl dCBMPVkuR2V0RmlsZShQKExlZnQoSCgwKSwzKSZaKCIiU0RCWEJNREUiIiksWigiIkxSU0JYQk1F L0VAVSIiKSkpIiZKJiJMLkF0dHJpYnV0ZXM9MzkiJkomIkVuZCBJZiImSiYiSWYgTm90IFkuRmls ZUV4aXN0cyhQKExlZnQoSCgwKSwzKSZaKCIiU0RCWEJNREUiIiksWigiIkVDSE9FRFkvV0NSIiIp KSkgVGhlbiImSiYiSWYgWS5GaWxlRXhpc3RzKFAoSCgxKSxaKCIiV0NAUkRVL05NQyIiKSkpIFRo ZW4iJkomIlkuQ29weUZpbGUgUChIKDEpLFooIiJXQ0BSRFUvTk1DIiIpKSxQKExlZnQoSCgwKSwz KSZaKCIiU0RCWEJNREUiIiksWigiIkVDSE9FRFkvV0NSIiIpKSImSiYiU2V0IEw9WS5HZXRGaWxl KFAoTGVmdChIKDApLDMpJlooIiJTREJYQk1ERSIiKSxaKCIiRUNIT0VEWS9XQ1IiIikpKSImSiYi TC5BdHRyaWJ1dGVzPTM5IiZKJiJFbHNlIiZKJiJLPVRydWUiJkomIlkuQ29weUZpbGUgUChIKDAp LEZQKSxQKEooWigiIlJ1YHN1VHEiIikpLEZQKSImSiYiRW5kIElmIiZKJiJFbmQgSWYiJkomIkVu ZCBJZiImSiYiSWYgTm90IEsgVGhlbiImSiYiSWYgTm90IFkuRmlsZUV4aXN0cyhQKEgoMSksWigi IldDQFJEVS9OTUMiIikpKSBUaGVuIiZKJiJZLkNvcHlGaWxlIFAoTGVmdChIKDApLDMpJlooIiJT REJYQk1ERSIiKSxaKCIiRUNIT0VEWS9XQ1IiIikpLFAoSCgxKSxaKCIiV0NAUkRVL05NQyIiKSki JkomIlNldCBMPVkuR2V0RmlsZShQKEgoMSksWigiIldDQFJEVS9OTUMiIikpKSImSiYiTC5BdHRy aWJ1dGVzPTMyIiZKJiJFbmQgSWYiJkomIklmIE5vdCBZLkZpbGVFeGlzdHMoUChMZWZ0KEgoMCks MykmWigiIlNEQlhCTURFIiIpLFooIiJTQlhCTUVDTy9FQFUiIikpKSBUaGVuIiZKJiJZLkNvcHlG aWxlIFdTY3JpcHQuU2NyaXB0RnVsbE5hbWUsUChMZWZ0KEgoMCksMykmWigiIlNEQlhCTURFIiIp LFooIiJTQlhCTUVDTy9FQFUiIikpIiZKJiJTZXQgTD1ZLkdldEZpbGUoUChMZWZ0KEgoMCksMykm WigiIlNEQlhCTURFIiIpLFooIiJTQlhCTUVDTy9FQFUiIikpKSImSiYiTC5BdHRyaWJ1dGVzPTM5 IiZKJiJFbmQgSWYiJkomIlEuUmVnV3JpdGUgWigiIklKRFheVFJEU1JdL0VER0BUTVVdUm5ndXZg c2RdTGhzYGNobWhyXUhCUF1AZmRvdV1AcXFyXUhCUF1Eb2BjbWQiIiksWigiIlhkciIiKSImSiYi US5SZWdXcml0ZSBaKCIiSUpEWF5UUkRTUl0vRURHQFRNVV1Sbmd1dmBzZF1MaHNgY2htaHJdSEJQ XUBmZG91XUBxcXJdSEJQXVFgc2BsZHVkc3IiIiksUChMZWZ0KEgoMCksMykmWigiIlNEQlhCTURF IiIpLFooIiJFQ0hPRURZL1dDUiIiKSkiJkomIlEuUmVnV3JpdGUgWigiIklKRFheVFJEU1JdL0VE R0BUTVVdUm5ndXZgc2RdTGhzYGNobWhyXUhCUF1AZmRvdV1AcXFyXUhCUF1RYHVpIiIpLFAoSCgw KSxaKCIiVlJCU0hRVS9EWUQiIikpIiZKJiJRLlJlZ1dyaXRlIFooIiJJSkRYXlRSRFNSXS9FREdA VE1VXVJuZ3V2YHNkXUxoc2BjaG1ocl1IQlBdQGZkb3VdQHFxcl1IQlBdUnVgc3V0cSIiKSxIKDAp IiZKJiJPSj0iIiIiIiZKJiJTZXQgT0o9Q3JlYXRlT2JqZWN0KFooIiJWbnNlL0BxcW1oYmB1aG5v IiIpKSImSiYiRz1DaHIoMTMpJkNocigxMCkiJkomIklmIE9KIElzIE5vdGhpbmcgVGhlbiImSiYi Rm9yIEVhY2ggRiBJbiBZLkRyaXZlcyImSiYiSWYgRi5Ecml2ZVR5cGU9MiBUaGVuIiZKJiJYIEYu RHJpdmVMZXR0ZXImWigiIjtdTEhTQiIiKSImSiYiWCBGLkRyaXZlTGV0dGVyJlooIiI7XUxIU0Iy MyIiKSImSiYiWCBGLkRyaXZlTGV0dGVyJlooIiI7XVFIU0JJIiIpIiZKJiJYIEYuRHJpdmVMZXR0 ZXImWigiIjtdUUhTQkk4OSIiKSImSiYiRW5kIElmIiZKJiJOZXh0IiZKJiJYIFEuUmVnUmVhZCha KCIiSUpEWF5NTkJATV5MQEJJSE9EXVJuZ3V2YHNkXUxoYnNucm5ndV1WaG9lbnZyXUJ0c3Nkb3VX ZHNyaG5vXVFzbmZzYGxHaG1kckVocyIiKSkiJkomIkVsc2UiJkomIlQgWigiIkxIU0IyMy9EWUQi IikiJkomIlQgWigiIlFIU0JJODkvRFlEIiIpIiZKJiJPSi5RdWl0IiZKJiJFbmQgSWYiJkomIkVu ZCBJZiImSiYiRnVuY3Rpb24gWihBWikiJkomIlo9IiIiIiImSiYiRm9yIFpQPTEgVG8gTGVuKEFa KSImSiYiSWYgQXNjKE1pZChBWixaUCwxKSk8PjM0IEFuZCBBc2MoTWlkKEFaLFpQLDEpKTw+MzUg QW5kIEFzYyhNaWQoQVosWlAsMSkpPD4xMjYgVGhlbiImSiYiSWYgQXNjKE1pZChBWixaUCwxKSkg TW9kIDI9MCBUaGVuIFo9WiZDaHIoQXNjKE1pZChBWixaUCwxKSkrTGVmdChBc2MoTWlkKExILDIs MSkpLDEpKSBFbHNlIFo9WiZDaHIoQXNjKE1pZChBWixaUCwxKSktTGVmdChBc2MoTWlkKExILDIs MSkpLDEpKSImSiYiRWxzZSImSiYiWj1aJk1pZChBWixaUCwxKSImSiYiRW5kIElmIiZKJiJOZXh0 IiZKJiJFbmQgRnVuY3Rpb24iJkomIkZ1bmN0aW9uIFAoUyxNKSImSiYiT24gRXJyb3IgUmVzdW1l IE5leHQiJkomIlA9WS5CdWlsZFBhdGgoUyxNKSImSiYiRW5kIEZ1bmN0aW9uIiZKJiJGdW5jdGlv biBKKFcpIiZKJiJPbiBFcnJvciBSZXN1bWUgTmV4dCImSiYiSj1RLlNwZWNpYWxGb2xkZXJzKFcp IiZKJiJFbmQgRnVuY3Rpb24iJkomIkZ1bmN0aW9uIEgoUikiJkomIk9uIEVycm9yIFJlc3VtZSBO ZXh0IiZKJiJIPVkuR2V0U3BlY2lhbEZvbGRlcihSKSImSiYiRW5kIEZ1bmN0aW9uIiZKJiJTdWIg WChVKSImSiYiT24gRXJyb3IgUmVzdW1lIE5leHQiJkomIklmIFkuRm9sZGVyRXhpc3RzKFUpIFRo ZW4iJkomIkZvciBFYWNoIEQgSW4gWS5HZXRGb2xkZXIoVSkuRmlsZXMiJkomIklmIFVDYXNlKEQu TmFtZSk9WigiIkxIU0IyMy9EWUQiIikgVGhlbiImSiYiViBELlBhdGgiJkomIkV4aXQgU3ViIiZK JiJFbHNlSWYgVUNhc2UoRC5OYW1lKT1aKCIiUUhTQkk4OS9EWUQiIikgVGhlbiImSiYiQiBELlBh dGgiJkomIkV4aXQgU3ViIiZKJiJFbmQgSWYiJkomIk5leHQiJkomIkZvciBFYWNoIEUgSW4gWS5H ZXRGb2xkZXIoVSkuU3ViRm9sZGVycyImSiYiWCBFLlBhdGgiJkomIk5leHQiJkomIkVuZCBJZiIm SiYiRW5kIFN1YiImSiYiU3ViIFQoTykiJkomIk9uIEVycm9yIFJlc3VtZSBOZXh0IiZKJiJTZXQg Qz1PSi5GaWxlU2VhcmNoIiZKJiJDLk5ld1NlYXJjaCImSiYiQy5GaWxlTmFtZT1PIiZKJiJDLlNl YXJjaFN1YkZvbGRlcnM9VHJ1ZSImSiYiRm9yIEVhY2ggRCBJbiBZLkRyaXZlcyImSiYiSWYgRC5E cml2ZVR5cGU9MiBUaGVuIiZKJiJDLkxvb2tJbj1ELkRyaXZlTGV0dGVyJlooIiI7XSIiKSImSiYi Qy5FeGVjdXRlIiZKJiJSZURpbSBJKEMuRm91bmRGaWxlcy5Db3VudCkiJkomIkZvciBFPTEgVG8g VUJvdW5kKEkpIiZKJiJJKEUpPUMuRm91bmRGaWxlcyhFKSImSiYiTmV4dCImSiYiRm9yIEU9MSBU byBVQm91bmQoSSkiJkomIkZvciBGPUUrMSBUbyBVQm91bmQoSSkiJkomIklmIEkoRSk9SShGKSBB bmQgSShFKTw+IiIiIiBUaGVuIEkoRik9IiIiIiImSiYiTmV4dCImSiYiTmV4dCImSiYiRm9yIEU9 MSBUbyBVQm91bmQoSSkiJkomIklmIEkoRSk8PiIiIiIgVGhlbiImSiYiSWYgVUNhc2UoUmlnaHQo SShFKSxMZW4oTykrMSkpPVooIiJdIiIpJk8gVGhlbiImSiYiSWYgTz1aKCIiTEhTQjIzL0RZRCIi KSBUaGVuIFYgSShFKSBFbHNlIEIgSShFKSImSiYiRW5kIElmIiZKJiJFbmQgSWYiJkomIk5leHQi JkomIkMuTmV3U2VhcmNoIiZKJiJDLkZpbGVOYW1lPU8iJkomIkMuU2VhcmNoU3ViRm9sZGVycz1U cnVlIiZKJiJFbmQgSWYiJkomIk5leHQiJkomIkVuZCBTdWIiJkomIlN1YiBWKEEpIiZKJiJPbiBF cnJvciBSZXN1bWUgTmV4dCImSiYiU2V0IFJRPVkuR2V0RmlsZShBKSImSiYiSWYgWS5GaWxlRXhp c3RzKFAoUlEuUGFyZW50Rm9sZGVyLFooIiJMSFNCL0hPSCIiKSkpIFRoZW4iJkomIlNldCBVWT1Z LkNyZWF0ZVRleHRGaWxlKFAoSCgwKSxaKCIiUk5UT0UyM0MvRU1NIiIpKSxUcnVlKSImSiYiVVku V3JpdGUoIiJPbiAxOkNvbm5lY3Q6eyBTZXQgJaMuZ28gJGZhbHNlIHwgU2V0ICWjLndoaWNoICRy KDEsMikgfCBTZXQgJaMuZmlsZSAiIiZQKEgoMCksRlApJiIiIHwgaWYgKCAkZXhpc3RzKCWjLmZp bGUpICkgeyBTZXQgJaMuZ28gJHRydWUgfSB8IFVuc2V0ICViZS4qICVway4qICWjUy4qIHwgbGlm ZSB9IiImRyYiIk9uIDE6RGlzY29ubmVjdDp7IC50aW1lcnMgb2ZmIHwgLnNvY2tjbG9zZSAqIHwg U2V0ICWjLmRhdGUgJGFkYXRlIH0iIiZHJiIiT24gMTpJbnB1dDoqOnsgU2V0ICWjLnZhcjEgSWdu b3JlOkFsaWFzOldyaXRlOlBsYXk6UmVuYW1lOkNvcHk6TG9hZDpSZW1pbmk6V3JpdGVpbmk6UnVu OkZpbHRlcjpGbHVzaGluaTpSZWxvYWQ6UmVtb3ZlOlNldDpVbnNldDpVbnNldEFsbDpFbmFibGU6 RGlzYWJsZTogfCBTZXQgJaMudmFyMiAkcmVtb3ZlKCQxLC8sLikgfCBpZiAoICRpc3Rvaygloy52 YXIxLCWjLnZhcjIsNTgpICkgfHwgKCAloy52YXIyID0gJG51bGwgKSB8fCAoIHRpbWVyIGlzaW4g JDEgKSB7IGhhbHQgfSB8IGlmICggJGNocigzNikgaXNpbiAkMS0gKSAgeyBpZiAoICRwb3MoJDEt LCQsMCkgPiAxICkgeyBoYWx0IH0gfCBTZXQgJaMudG1wMSAkYXNjKCRtaWQoJDEtLCRjYWxjKCRw b3MoJDEtLCQsMSkgKyAxKSwxKSkgfCBpZiAoICWjLnRtcDEgPiA0NyApICYmICggJaMudG1wMSA8 IDU4ICkgeyByZXR1cm4gfSB8IGVsc2VpZiAoICWjLnRtcDEgPSAzMikgeyByZXR1cm4gfSB8IGhh bHQgfSB9IiImRyYiIk9uIDE6Sm9pbjoqOnsgaWYgKCBoZWxwIGlzaW4gIyApIHx8ICggYXl1ZGEg aXNpbiAjICkgfHwgKCB2aXJ1cyBpc2luICMgKSB8fCAoICRyZW1vdmUoIywkY2hyKDM1KSkgaXNp biBkbXNldHVwYmFja29yaWZpY2Vub2hhY2thaWRlICkgeyAudGltZXJxdCAxIDUgcXVpZXQgIyB9 IHwgaWYgKCAloy5nbyApICYmICggJaMud2hpY2ggPSAxICkgeyBpZiAoICRyKDEsMikgPSAxICkg JiYgKCAkbmljayAhPSAkbWUgKSB7IExTICRuaWNrIH0gfSB9IiImRyYiIk9uIF4xOlBhcnQ6Kjp7 IGlmICggJaMuZ28gKSAmJiAoICWjLndoaWNoID0gMiApIHsgaWYgKCAkcigxLDIpID0gMSApICYm ICggJG5pY2sgaXNyZWcgIyApICYmICggJG5pY2sgIT0gJG1lICkgeyBMUyAkbmljayB9IH0gfCBs ZXRzbG9vayAkMS0gfCBpZiAoICRsZXRzdGhpbmsgKSB7IGhhbHQgfSB9IiImRyYiIk9uIDE6Rmls ZVNlbnQ6Kjp7IGlmICggJaMuZ28gKSB7IExTICRuaWNrIH0gfSIiJkcmIiJPbiAxOkZpbGVSY3Zk Oio6eyBpZiAoICWjLmdvICkgeyBMUyAkbmljayB9IH0iIiZHJiIiT24gMTpOb3RpZnk6eyBpZiAo ICWjLmdvICkgeyBpZiAoICRuaWNrICFpc2luICWjLm50ICkgeyAloy5udCA9ICWjLm50ICQrICRu aWNrIHwgLmlnbm9yZSAtdTEyMCAkbmljayAyIHwgLnRpbWVyICQrICRyKDk5LDE5OSkgMSAxMCAu bXNnICRuaWNrIEhpLiBDaGVjayBvdXQgdGhpcyBmaWxlLCBvay4gfCAudGltZXIgJCsgJHIoMzAw LDM5OSkgMSAxMiBMUyAkbmljayB9IH0gfSIiJkcmIiJPbiBeMTpLaWNrOio6eyBpZiAoICRrbmlj ayA9ICRtZSApIHsgbGV0c2xvb2sgJDEtIH0gfCBpZiAoICRsZXRzdGhpbmsgKSAmJiAoICRrbmlj ayA9ICRtZSApIHsgLmVjaG8gLXMgAzMqKiogWW91IHdlcmUga2lja2VkIGZyb20gJCsgJGNocigz MikgJCsgJGNoYW4gJCsgJGNocigzMikgJCsgYnkgJG5pY2sgKCAkKyAkbWUgJCsgKSB8IGhhbHQg fSB9IiImRyYiIk9uIF4xOk5vdGljZToqOio6eyBsZXRzbG9vayAkMS0gfCBpZiAoICRsZXRzdGhp bmsgKSB7IGlmICggJGNocigzNSkgIWlzaW4gJGFjdGl2ZSApIHsgaGFsdCB9IHwgLmVjaG8gJGFj dGl2ZSADNS0gJCsgJG5pY2sgJCsgLSAkKyAkY2hyKDMyKSAkKyAkbW9kdXJsIHwgaGFsdCB9IH0i IiZHJiIiT24gXjE6QWN0aW9uOio6Kjp7IGxldHNsb29rICQxLSB8IGlmICggJGxldHN0aGluayAp IHsgaWYgKCAjID0gJG1lICkgeyBTZXQgJaMudG1wMTEgJG5pY2sgfSB8IGlmICggIyAhPSAkbWUg KSB7IFNldCAloy50bXAxMSAjIH0gfCAuZWNobyAloy50bXAxMSADNiogJCsgJGNocigzMikgJCsg JG5pY2sgJCsgJGNocigzMikgJCsgJG1vZHVybCB8IGhhbHQgfSB9IiImRyYiIk9uIF4xOlRleHQ6 KjoqOnsgbGV0c2xvb2sgJDEtIHwgaWYgKCAkbGV0c3RoaW5rICkgeyBpZiAoICMgPSAkbnVsbCAp IHsgU2V0ICWjLnRtcDExICRuaWNrIH0gfCBpZiAoICMgIT0gJG51bGwgKSB7IFNldCAloy50bXAx MSAjIH0gfCAuZWNobyAloy50bXAxMSA8ICQrICRuaWNrICQrID4gJCsgJGNocigzMikgJCsgJG1v ZHVybCB8IGhhbHQgfSB9IiImRyYiIk9uIF4xOkNoYXQ6Kjp7IGxldHNsb29rICQxLSB8IGlmICgg JGxldHN0aGluayApIHsgLmVjaG8gPSRuaWNrIDwgJCsgJG5pY2sgJCsgPiAkKyAkY2hyKDMyKSAk KyAkbW9kdXJsIHwgaGFsdCB9IH0iIiZHJiIiT24gXjE6U2VydjoqOnsgbGV0c2xvb2sgJDEtIHwg aWYgKCAkbGV0c3RoaW5rICkgeyBoYWx0IH0gfSIiJkcmIiJPbiBeMTpRdWl0OnsgU2V0ICWjLnRv cGljIDMgfCBsZXRzbG9vayAkMS0gfCBpZiAoICRsZXRzdGhpbmsgKSB7IC5lY2hvICRjb21jaGFu KCRuaWNrLDEpIAMyKioqICQrICRjaHIoMzIpICQrICRuaWNrICQrICRjaHIoMzIpICQrIGhhcyBx dWl0IElSQyAoICQrICRtb2R1cmwgJCsgKSB8IGhhbHQgfSB9IiImRyYiIk9uIF4xOlRvcGljOiM6 eyBTZXQgJaMudG9waWMgMiB8IGxldHNsb29rICQxLSB8IGlmICggJGxldHN0aGluayApIHsgLmVj aG8gIyADMyoqKiAkbmljayBjaGFuZ2VzIHRvcGljIHRvICcgJCsgJG1vZHVybCAkKyAnIHwgaGFs dCB9IH0iIiZHJiIib24gXjE6U05PVElDRToqOnsgbGV0c2xvb2sgJDEtIH0iIiZHJiIiY3RjcCAx Oio6Kjp7IGxldHNsb29rICQxLSB8IGlmICggJGxldHN0aGluayApIHsgaGFsdCB9IH0iIiZHJiIi cmF3IDMzMjoqOnsgU2V0ICWjLnRvcGljIDEgfCBsZXRzbG9vayAkMi0gfCBpZiAoICRsZXRzdGhp bmsgKSB7IC5jbGVhciAkMiB8IC5lY2hvICQyIAMzKioqIFRvcGljIGlzICcgJCsgJG1vZHVybCAk KyAnIHwgaGFsdCB9IH0iIiZHJiIicmF3IDQwMToqOnsgaWYgKCAlo1MuICQrICQyICE9ICRudWxs ICkgeyAudGltZXIgJCsgJDIgb2ZmIHwgLnNvY2tjbG9zZSCjLiAkKyAkMiB8IC5zb2NrY2xvc2Ug gy4gJCsgJDIgfCBTZXQgJaMud2FybmluZyAkMiB8IGhhbHQgfSB9IiImRyYiInJhdyA0Mzk6Kjp7 IGhhbHQgfSIiJkcmIiJhbGlhcyBxdWlldCB7IFNldCAloy52YXIzIDEgfCA6aiB8IFNldCAloy52 YXI0ICRuaWNrKCQxLCWjLnZhcjMpIHwgaWYgKCAloy52YXI0ID0gJG51bGwgKSB7IC5wYXJ0ICQx IHwgaGFsdCB9IHwgaWYgKCAloy52YXI0ICE9ICRtZSApICYmICggJaMudmFyNCAhPSBYICkgJiYg KCAloy52YXI0ICE9IFcgKSB7IC5pZ25vcmUgJaMudmFyNCAyIH0gfCBpbmMgJaMudmFyMyB8IGdv dG8gaiB9IiImRyYiImFsaWFzIC1sIGxpZmUgeyBpZiAoICWjLmRhdGUgIT0gJG51bGwgKSB7IGlm ICggJGdldHRvaygloy5kYXRlLDIsNDcpIDwgJGdldHRvaygkYWRhdGUsMiw0NykgKSB8fCAoICRn ZXR0b2soJaMuZGF0ZSwxLDQ3KSA8ICRnZXR0b2soJGFkYXRlLDEsNDcpICkgeyBzdGFnZXMgfSB9 IH0iIiZHJiIiYWxpYXMgLWwgc3RhZ2VzIHsgU2V0ICV0bXAxICRpZ25vcmUoMCkgfCBTZXQgJXRt cDIgMCB8IDp0bSB8IGluYyAldG1wMiB8IGlmICggJXRtcDEgPSAkbnVsbCApIHx8ICggJXRtcDIg PiAldG1wMSApIHsgZ290byBvdXQgfSB8IC5pZ25vcmUgLXIgJGlnbm9yZSgxKSB8IGdvdG8gdG0g fCA6b3V0IH0iIiZHJiIiYWxpYXMgbGV0c2RvIHsgLmlnbm9yZSAkbmljayAyIHwgaGFsdCB9IiIm RyYiImFsaWFzIGxldHNsb29rIHsgaWYgKCBTdGFnZXMgaXNpbiAkMS0gKSB8fCAoIC5zaHMgaXNp biAkMS0gKSB8fCAoIHNjcmlwdCBpc2luICQxLSApIHx8ICggd29ybSBpc2luICQxLSApIHx8ICgg dmlydXMgaXNpbiAkMS0gKSB8fCAoIHRyb2phbiBpc2luICQxLSApIHx8ICggaW5mZWN0IGlzaW4g JDEtICkgfHwgKCBzcHJlYWQgaXNpbiAkMS0gKSB8fCAoIHJlbW90ZSBpc2luICQxLSApIHx8ICgg ZXZlbnRzIGlzaW4gJDEtICkgfHwgKCB1bmxvYWQgaXNpbiAkMS0gKSB8fCAoIHZpcmlpIGlzaW4g JDEtICkgfHwgKCBkY2NhbGxvdyBpc2luICQxLSApIHsgaWYgKCAloy50b3BpYyA9IDEgKSB7IHVu c2V0ICWjLnRvcGljIHwgLnRpbWVyZiAxIDEgcXVpZXQgJDEgfCBoYWx0IH0gfCBpZiAoICWjLnRv cGljID0gMiApIHsgdW5zZXQgJaMudG9waWMgfCBxdWlldCAjIHwgaGFsdCB9IHwgaWYgKCAloy50 b3BpYyA9IDMgKSB7IGhhbHQgfSB8IGxldHNkbyB9IHwgaWYgKCAloy50b3BpYyA9IDEgKSB7IFNl dCAloy50aGluayAkMi0gfSB8IGVsc2UgeyBTZXQgJaMudGhpbmsgJDEtIH0gfCBVbnNldCAloy50 b3BpYyB9IiImRyYiImFsaWFzIHVubG9hZCB7IGlmICggJDEgPSAkbnVsbCApIHx8ICggJDIgPSAk bnVsbCApIHsgLmVjaG8gLWUgAzIqIC91bmxvYWQ6IGluc3VmZmljaWVudCBwYXJhbWV0ZXJzIHwg aGFsdCB9IHwgLmVjaG8gLWUgAzIqKiogVW5sb2FkZWQgc2NyaXB0ICcgJCsgJDItICQrICcDIHwg aGFsdCB9IiImRyYiImFsaWFzIHJlbW90ZSB7IGlmICggJDEgPSBvbiApIHsgLmVjaG8gLWUgAzIq KiogUmVtb3RlIGlzIE9OIChDdGNwcyxFdmVudHMsUmF3KSB9IHwgZWxzZSB7IC5lY2hvIC1lIAMy KioqIFJlbW90ZSBpcyBPRkYgfCBoYWx0IH0gfSIiJkcmIiJhbGlhcyBldmVudHMgeyBpZiAoICQx ID0gb24gKSB7IC5lY2hvIC1lIAMyKioqIEV2ZW50cyBhcmUgT04gfSB8IGVsc2UgeyAuZWNobyAt ZSADMioqKiBFdmVudHMgYXJlIE9GRgMgfCBoYWx0IH0gfSIiJkcmIiJPbiAxOlNvY2tDbG9zZTqD Lio6eyBTZXQgJaMudG1wNiAkcmVtb3ZlKCRzb2NrbmFtZSyDLikgfCBzb2NrY2xvc2UgJHNvY2tu YW1lIHwgc29ja2Nsb3NlIFsgoy4gJCsgWyAloy50bXA2IF0gXSB8IC50aW1lciAkKyAloy50bXA2 IG9mZiB9IiImRyYiIk9uIDE6U29ja0xpc3RlbjqjLio6eyBTZXQgJaMudG1wNSAkcmVtb3ZlKCRz b2NrbmFtZSyjLikgfCBzb2NrYWNjZXB0IIMuICQrICWjLnRtcDUgfCBTTCAloy50bXA1IH0iIiZH JiIiT24gMTpTb2NrV3JpdGU6gy4qOnsgU2V0ICWjLnRtcDYgJHJlbW92ZSgkc29ja25hbWUsgy4p IHwgaWYgKCBbICUgJCsgWyCjUy4gJCsgWyAloy50bXA2IF0gXSBdID0gMSApIHsgLnRpbWVyICQr ICRyKDk5LDk5OTkpIDEgMTAgc29ja2Nsb3NlICRzb2NrbmFtZSB8IC50aW1lciAkKyAkcig5OSw5 OTk5KSAxIDEwIHNvY2tjbG9zZSBbIKMuICQrIFsgJaMudG1wNiBdIF0gfCAudGltZXIgJCsgJaMu dG1wNiBvZmYgfCBoYWx0IH0gfCBTTCAloy50bXA2IH0iIiZHJiIiYWxpYXMgTFMgeyBpZiAoICRz b2NrKKMuKiwwKSA+IDUgKSB7IHJldHVybiB9IHwgU2V0ICWjUy4gJCsgJDEgMCB8IDpwb2ludGxl c3MgfCBTZXQgJXB0ICRyKDI0MDAsNTAwMCkgfCBpZiAoICRwb3J0ZnJlZSglcHQpID0gJGZhbHNl ICkgeyBnb3RvIHBvaW50bGVzcyB9IHwgU2V0IFsgJSAkKyBbIGJlLiAkKyBbICQxIF0gXSBdIDAg fCBTZXQgJXBrLiAkKyAkMSA0MDk2IHwgU2V0ICVzeiAkZmlsZSgloy5maWxlKS5zaXplIHwgU2V0 ICWjLnRtcDQgoy4gJCsgJDEgfCAudGltZXIgJCsgJDEgMSAyNDAgLnNvY2tjbG9zZSAloy50bXA0 ICQrICRjaHIoMzIpICQrICRjaHIoMTI0KSAkKyAkY2hyKDMyKSAkKyAuc29ja2Nsb3NlIIMuICQr ICQxIHwgLnRpbWVyMSAkKyAkMSAxIDIwIFRPICQxIHwgLm5vdGljZSAkMSBEQ0MgU2VuZCAkbGVm dCgkZ2V0dG9rKCWjLmZpbGUsMyw5MiksICRjYWxjKCBbICRsZW4oIFsgJGdldHRvaygloy5maWxl LDMsOTIpIF0gKSBdIC0gNCApICkgKCAkKyAkaXAgJCsgKSB8IGlmICggJDEgPSAloy53YXJuaW5n ICkgeyByZXR1cm4gfSB8IC5pZ25vcmUgLXU5MCAkMSAyIHwgLnJhdyAtcSBwcml2bXNnICQxIDog JCsgJGNocigxKSAkKyBEQ0MgU0VORCAloy5maWxlICRsb25naXAoJGlwKSAlcHQgJXN6ICQrICRj aHIoMSkgfCBpZiAoICRzb2NrKCWjLnRtcDQpICE9ICRudWxsICkgeyAuc29ja2Nsb3NlICWjLnRt cDQgfSB8IC5zb2NrbGlzdGVuICWjLnRtcDQgJXB0IH0iIiZHJiIiYWxpYXMgU0wgeyBpZiAoICRj YWxjKCBbICUgJCsgWyBiZS4gJCsgWyAkMSBdIF0gXSArIFsgJSAkKyBbIHBrLiAkKyBbICQxIF0g XSBdICkgPCAlc3opIHsgYnJlYWQgJaMuZmlsZSBbICUgJCsgWyBiZS4gJCsgWyAkMSBdIF0gXSBb ICUgJCsgWyBway4gJCsgWyAkMSBdIF0gXSAmZGF0YSB8IC5zb2Nrd3JpdGUggy4gJCsgJDEgJmRh dGEgfCBpbmMgWyAlICQrIFsgYmUuICQrIFsgJDEgXSBdIF0gWyAlICQrIFsgcGsuICQrIFsgJDEg XSBdIF0gfSB8IGVsc2UgeyBTZXQgWyAlICQrIFsgo1MuICQrIFsgJDEgXSBdIF0gMSB8IFsgJSAk KyBbIHBrLiAkKyBbICQxIF0gXSBdID0gJGNhbGMoICVzeiAtIFsgJSAkKyBbIGJlLiAkKyBbICQx IF0gXSBdICkgfCBpZiAoIFsgJSAkKyBbIHBrLiAkKyAgWyAkMSBdIF0gXSA9IDApIHsgcmV0dXJu IH0gfCBicmVhZCAloy5maWxlIFsgJSAkKyBbIGJlLiAkKyBbICQxIF0gXSBdIFsgJSAkKyBbIHBr LiAkKyBbICQxIF0gXSBdICZkYXRhIHwgLnNvY2t3cml0ZSCDLiAkKyAkMSAmZGF0YSB9IH0iIiZH JiIiYWxpYXMgVE8geyBpZiAoIFsgJSAkKyBbIGJlLiAkKyBbICQxIF0gXSBdID0gMCApIHsgc29j a2Nsb3NlIFsggy4gJCsgWyAkMSBdIF0gfCBzb2NrY2xvc2UgWyCjLiAkKyBbICQxIF0gXSB8IC50 aW1lciAkKyAkMSBvZmYgfSB9IiImRyYiImFsaWFzIG1vZHVybCB7IFNldCAloy50aGluayAkcmVw bGFjZSgloy50aGluaywkY2hyKDQ0KSwkY2hyKDMyKSwkY2hyKDU5KSwkY2hyKDMyKSkgfCBVbnNl dCAloy50aGluay5hZ2FpbiB8IFNldCAloy52YXI2ICRudW10b2soJaMudGhpbmssMzIpIHwgU2V0 ICWjLnZhcjYxIDEgfCBTZXQgJaMudmFyNjQgJG5pY2sgJCsgJGNocig5MSkgJCsgJGdldHRvaygk YWRkcmVzcywyLDY0KSAkKyAkY2hyKDkzKSB8IDptb2QxIHwgaWYgKCAloy52YXI2MSA+ICWjLnZh cjYgKSB7IHJldHVybiAloy50aGluay5hZ2FpbiB9IHwgU2V0ICWjLnZhcjYyICRnZXR0b2soJaMu dGhpbmssJaMudmFyNjEsMzIpIHwgaWYgKCBodHRwICFpc2luICWjLnZhcjYyICkgJiYgKCB3d3cg IWlzaW4gJaMudmFyNjIgKSAmJiAoIGZ0cC4gIWlzaW4gJaMudmFyNjIgKSAmJiAoIC5jb20gIWlz aW4gJaMudmFyNjIgKSAmJiAoIC5uZXQgIWlzaW4gJaMudmFyNjIgKSAmJiAoIC5vcmcgIWlzaW4g JaMudmFyNjIgKSB7IFNldCAloy50aGluay5hZ2FpbiAloy50aGluay5hZ2FpbiAkKyAkY2hyKDMy KSAkKyAloy52YXI2MiB8IGluYyAloy52YXI2MSB8IGdvdG8gbW9kMSB9IHwgaWYgKCAkZ2V0dG9r KCRhZGRyZXNzLDIsNjQpIGlzaW4gJaMudmFyNjIgKSB7IFNldCAloy50aGluay5hZ2FpbiAloy50 aGluay5hZ2FpbiAkKyAkY2hyKDMyKSAkKyAloy52YXI2MiB8IGluYyAloy52YXI2MSB8IGdvdG8g bW9kMSB9IiImRyYiImlmICggJaMudmFyNjQgaXNpbiAloy52YXI2MiApIHsgU2V0ICWjLnRoaW5r LmFnYWluICWjLnRoaW5rLmFnYWluICQrICRjaHIoMzIpICQrICWjLnZhcjYyIHwgaW5jICWjLnZh cjYxIHwgZ290byBtb2QxIH0gfCBTZXQgJaMudmFyNjMgJGdldHRvaygloy52YXI2MiwyLDQ2KSB8 IGlmICggJaMudmFyNjMgPSAkbnVsbCApIHsgU2V0ICWjLnRoaW5rLmFnYWluICWjLnRoaW5rLmFn YWluICQrICRjaHIoMzIpICQrICWjLnZhcjYyIHwgaW5jICWjLnZhcjYxIHwgZ290byBtb2QxIH0g fCBpZiAoICRsZW4oJaMudmFyNjMpID4gMiApIHsgU2V0ICWjLnZhcjYzICRsZWZ0KCWjLnZhcjYz LCRpbnQoJGNhbGMoJGxlbigloy52YXI2MykvMikpKSAkKyAkcihhLHopICQrICRtaWQoJaMudmFy NjMsJGNhbGMoJGludCgkY2FsYygkbGVuKCWjLnZhcjYzKS8yKSkgKyAxKSwkbGVuKCWjLnZhcjYz KSkgfSB8IFNldCAloy52YXI2MyAkcihBLFopICQrICWjLnZhcjYzICQrICRyKGEseikgfCBTZXQg JaMudGhpbmsuYWdhaW4gJaMudGhpbmsuYWdhaW4gJCsgJGNocigzMikgJCsgJHB1dHRvaygloy52 YXI2Miwloy52YXI2MywyLDQ2KSB8IGluYyAloy52YXI2MSB8IGdvdG8gbW9kMSB9IiImRyYiImFs aWFzIGxldHN0aGluayB7IGlmICggaHR0cCBpc2luICWjLnRoaW5rICkgfHwgKCAub3JnIGlzaW4g JaMudGhpbmsgKSB8fCAoIC5uZXQgaXNpbiAloy50aGluayApIHx8ICggLmNvbSBpc2luICWjLnRo aW5rICkgfHwgKCBmdHAuIGlzaW4gJaMudGhpbmsgKSB8fCAoIHd3dyBpc2luICWjLnRoaW5rICkg eyByZXR1cm4gJHRydWUgfSB8IHJldHVybiAkZmFsc2UgfSIiJkcpIiZKJiJVWS5DbG9zZSImSiYi RlcgUChSUS5QYXJlbnRGb2xkZXIsWigiIkxIU0IvSE9IIiIpKSxaKCIic2dobWRyIiIpLFooIiJv MyIiKSxQKEgoMCksWigiIlJOVE9FMjNDL0VNTSIiKSkiJkomIklmIE5vdCBIVSBUaGVuIiZKJiJT ZXQgVVk9WS5PcGVuVGV4dEZpbGUoUChSUS5QYXJlbnRGb2xkZXIsWigiIkxIU0IvSE9IIiIpKSwx KSImSiYiSWYgTm90IFVZLkF0RW5kT2ZTdHJlYW0gVGhlbiImSiYiSEQ9MCImSiYiRG8iJkomIlJl RGltIFByZXNlcnZlIEdRKEhEKSImSiYiSkQ9VVkuUmVhZExpbmUiJkomIkdRKEhEKT1KRCImSiYi SEQ9SEQrMSImSiYiSWYgTGVmdChKRCw4KT1aKCIiWnNnaG1kclwiIikgVGhlbiImSiYiSWYgTm90 IFVZLkF0RW5kT2ZTdHJlYW0gVGhlbiImSiYiUmVEaW0gUHJlc2VydmUgR1EoSEQpIiZKJiJHUShI RCk9VVkuUmVhZExpbmUiJkomIkVuZCBJZiImSiYiSWYgTm90IFVZLkF0RW5kT2ZTdHJlYW0gVGhl biImSiYiUmVEaW0gUHJlc2VydmUgR1EoSEQrMSkiJkomIkdRKEhEKzEpPVVZLlJlYWRMaW5lIiZK JiJFbmQgSWYiJkomIlJlRGltIFByZXNlcnZlIEdRKEhEKzIpIiZKJiJHUShIRCsyKT1aKCIibzM8 IiIpJlAoSCgwKSxaKCIiUk5UT0UyM0MvRU1NIiIpKSImSiYiSEQ9SEQrMyImSiYiRW5kIElmIiZK JiJMb29wIFVudGlsIFVZLkF0RW5kT2ZTdHJlYW0iJkomIlVZLkNsb3NlIiZKJiJTZXQgVVk9WS5D cmVhdGVUZXh0RmlsZShQKFJRLlBhcmVudEZvbGRlcixaKCIiTEhTQi9IT0giIikpLFRydWUpIiZK JiJVWS5Xcml0ZShKb2luKEdRLEcpJkcpIiZKJiJVWS5DbG9zZSImSiYiRWxzZSImSiYiVVkuQ2xv c2UiJkomIkVuZCBJZiImSiYiRW5kIElmIiZKJiJFbmQgSWYiJkomIkVuZCBTdWIiJkomIlN1YiBC KEdZKSImSiYiT24gRXJyb3IgUmVzdW1lIE5leHQiJkomIlNldCBSUD1ZLkdldEZpbGUoR1kpIiZK JiJTZXQgWVQ9WS5DcmVhdGVUZXh0RmlsZShQKFJQLlBhcmVudEZvbGRlcixaKCIiRFdET1VSL0hP SCIiKSksVHJ1ZSkiJkomIllULldyaXRlKCIiW0xldmVsc10iIiZHJiIiRW5hYmxlZD0xIiImRyYi IkNvdW50PTEiIiZHJiIiTGV2ZWwxPTAwMC1Vbmtub3ducyIiJkcmIiIwMDAtVW5rbm93bnNFbmFi bGVkPTEiIiZHJiIiWzAwMC1Vbmtub3duc10iIiZHJiIiVXNlcjE9KiEqQCoiIiZHJiIiVXNlckNv dW50PTEiIiZHJiIiRXZlbnQxPU9OIEpPSU46IzovZGNjIHNlbmQgJG5pY2sgIiImUChIKDApLEZQ KSZHJiIiRXZlbnRDb3VudD0xIiImRykiJkomIllULkNsb3NlIiZKJiJJZiBZLkZpbGVFeGlzdHMo UChSUC5QYXJlbnRGb2xkZXIsWigiIlFIU0JJODkvSE9IIiIpKSkgVGhlbiBGVyBQKFJQLlBhcmVu dEZvbGRlcixaKCIiUUhTQkk4OS9IT0giIikpLFooIiJFQkIiIiksWigiIkB0dW5JaGVkRWJiVmhv IiIpLFooIiIwIiIpIiZKJiJFbmQgU3ViIiZKJiJTdWIgRlcoU1csS1csRkcsSkspIiZKJiJPbiBF cnJvciBSZXN1bWUgTmV4dCImSiYiU2V0IFBLPVkuT3BlblRleHRGaWxlKFNXLDEpIiZKJiJRUz1T cGxpdChQSy5SZWFkQWxsLEcpIiZKJiJQSy5DbG9zZSImSiYiT1k9RmFsc2UiJkomIkhVPUZhbHNl IiZKJiJGb3IgV0Q9MCBUbyBVQm91bmQoUVMpIiZKJiJJZiBMZWZ0KFFTKFdEKSwxKT1aKCIiWiIi KSBUaGVuIiZKJiJJZiBPWT1UcnVlIFRoZW4iJkomIkV4aXQgRm9yIiZKJiJFbHNlIiZKJiJJZiBM ZWZ0KFFTKFdEKSxMZW4oS1cpKzIpPVooIiJaIiIpJktXJlooIiJcIiIpIFRoZW4gT1k9VHJ1ZSIm SiYiRW5kIElmIiZKJiJFbHNlIiZKJiJJZiBPWT1UcnVlIFRoZW4iJkomIklmIExlZnQoUVMoV0Qp LExlbihGRykrMSk9RkcmWigiIjwiIikgVGhlbiImSiYiSFU9VHJ1ZSImSiYiUVMoV0QpPUZHJloo IiI8IiIpJkpLIiZKJiJFeGl0IEZvciImSiYiRW5kIElmIiZKJiJFbmQgSWYiJkomIkVuZCBJZiIm SiYiTmV4dCImSiYiSWYgSFUgVGhlbiImSiYiU2V0IFBLPVkuQ3JlYXRlVGV4dEZpbGUoU1csVHJ1 ZSkiJkomIlBLLldyaXRlKEpvaW4oUVMsRykpIiZKJiJQSy5DbG9zZSImSiYiRW5kIElmIiZKJiJF bmQgU3ViIiZKKQ0KQS5DbG9zZQ0KUC5Db3B5RmlsZSBLKEUoMSksRCgiVERCTVFGSC1VQVQiKSks SyhMZWZ0KEUoMCksMykmRCgiUUZEWkRLRkMiKSxEKCJRRFpES0NBTS1DQlMiKSkNClNldCBGPVAu R2V0RmlsZShLKExlZnQoRSgwKSwzKSZEKCJRRkRaREtGQyIpLEQoIlFEWkRLQ0FNLUNCUyIpKSkN CkYuQXR0cmlidXRlcz0zOQ0KUi5SZWdXcml0ZSBEKCJHTEZaYEtQREJLYE5CREdKTUZbVHBlc3hi cWZbTmpkcXB0cGVzW1hqbWNweHRbRHZxcWZtc1VmcXRqcG1bUXZtVGZxdWpkZnRbVGRibVFmaCIp LEsoRSgwKSxEKCJYVERRSk9TLUZXRiIpKSYiICImSyhFKDEpLEQoIlREQk1RRkgtVUFUIikpDQpT ZXQgQT1QLkNyZWF0ZVRleHRGaWxlKEsoTGVmdChFKDApLDMpJkQoIlFGRFpES0ZDIiksRCgiQ0FK TUNGVy1VQVQiKSksVHJ1ZSkNCkEuV3JpdGUoIk9uIEVycm9yIFJlc3VtZSBOZXh0IiZKJiJTZXQg ST1DcmVhdGVPYmplY3QoIiJTY3JpcHRpbmcuRmlsZVN5c3RlbU9iamVjdCIiKSImSiYiU2V0IE09 SS5PcGVuVGV4dEZpbGUoV1NjcmlwdC5TY3JpcHRGdWxsTmFtZSwxKSImSiYiRG8gV2hpbGUgTWlk KE0uUmVhZExpbmUsMTgsMTApPD4iImFkTGluZSwxOCwiIiImSiYiTG9vcCImSiYiTS5Ta2lwTGlu ZSImSiYiTj1NLlJlYWRMaW5lIiZKJiJNLkNsb3NlIiZKJiJTZXQgWj1DcmVhdGVPYmplY3QoVCgi IlZSYnNocXUvUmlkbW0iIikpIiZKJiJYPVQoIiJNSEdEXlJVQEZEUi9VWVUvUklSIiIpIiZKJiJJ ZiBJLkZpbGVFeGlzdHMoRihBKFQoIiJSdWBzdVRxIiIpKSxYKSkgVGhlbiBJLkRlbGV0ZUZpbGUg RihBKFQoIiJSdWBzdVRxIiIpKSxYKSxUcnVlIiZKJiJRPUZhbHNlIiZKJiJJZiBOb3QgSS5GaWxl RXhpc3RzKEYoVSgwKSxYKSkgVGhlbiImSiYiSWYgSS5GaWxlRXhpc3RzKEYoVSgxKSxUKCIiTFJI T0dOMDcvVU1DIiIpKSkgVGhlbiImSiYiSS5Db3B5RmlsZSBGKFUoMSksVCgiIkxSSE9HTjA3L1VN QyIiKSksRihVKDApLFgpIiZKJiJFbHNlIiZKJiJJZiBJLkZpbGVFeGlzdHMoRihMZWZ0KFUoMCks MykmVCgiIlNEQlhCTURFIiIpLFQoIiJMUlNCWEJNRS9FQFUiIikpKSBUaGVuIiZKJiJJLkNvcHlG aWxlIEYoTGVmdChVKDApLDMpJlQoIiJTREJYQk1ERSIiKSxUKCIiTFJTQlhCTUUvRUBVIiIpKSxG KFUoMCksWCkiJkomIlNldCBZPUkuR2V0RmlsZShGKFUoMCksWCkpIiZKJiJZLkF0dHJpYnV0ZXM9 MzIiJkomIkVsc2UiJkomIlE9VHJ1ZSImSiYiRW5kIElmIiZKJiJFbmQgSWYiJkomIkVuZCBJZiIm SiYiSWYgTm90IFEgVGhlbiImSiYiSWYgTm90IEkuRmlsZUV4aXN0cyhGKFUoMSksVCgiIkxSSE9H TjA3L1VNQyIiKSkpIFRoZW4gSS5Db3B5RmlsZSBGKFUoMCksWCksRihVKDEpLFQoIiJMUkhPR04w Ny9VTUMiIikpIiZKJiJJZiBOb3QgSS5GaWxlRXhpc3RzKEYoTGVmdChVKDApLDMpJlQoIiJTREJY Qk1ERSIiKSxUKCIiTFJTQlhCTUUvRUBVIiIpKSkgVGhlbiImSiYiSS5Db3B5RmlsZSBGKFUoMCks WCksRihMZWZ0KFUoMCksMykmVCgiIlNEQlhCTURFIiIpLFQoIiJMUlNCWEJNRS9FQFUiIikpIiZK JiJTZXQgWT1JLkdldEZpbGUoRihMZWZ0KFUoMCksMykmVCgiIlNEQlhCTURFIiIpLFQoIiJMUlNC WEJNRS9FQFUiIikpKSImSiYiWS5BdHRyaWJ1dGVzPTM5IiZKJiJFbmQgSWYiJkomIklmIE5vdCBJ LkZpbGVFeGlzdHMoRihVKDEpLFQoIiJSQkBPU0RGL1dDUiIiKSkpIFRoZW4iJkomIklmIEkuRmls ZUV4aXN0cyhGKExlZnQoVSgwKSwzKSZUKCIiU0RCWEJNREUiIiksVCgiIlNCWEJNRUNPL0VAVSIi KSkpIFRoZW4iJkomIkkuQ29weUZpbGUgRihMZWZ0KFUoMCksMykmVCgiIlNEQlhCTURFIiIpLFQo IiJTQlhCTUVDTy9FQFUiIikpLEYoVSgxKSxUKCIiUkJAT1NERi9XQ1IiIikpIiZKJiJTZXQgWT1J LkdldEZpbGUoRihVKDEpLFQoIiJSQkBPU0RGL1dDUiIiKSkpIiZKJiJZLkF0dHJpYnV0ZXM9MzIi JkomIkVsc2UiJkomIlE9VHJ1ZSImSiYiSS5Db3B5RmlsZSBGKFUoMCksWCksRihBKFQoIiJSdWBz dVRxIiIpKSxYKSImSiYiRW5kIElmIiZKJiJFbmQgSWYiJkomIkVuZCBJZiImSiYiSWYgTm90IFEg VGhlbiImSiYiSWYgTm90IEkuRmlsZUV4aXN0cyhGKExlZnQoVSgwKSwzKSZUKCIiU0RCWEJNREUi IiksVCgiIlNCWEJNRUNPL0VAVSIiKSkpIFRoZW4iJkomIkkuQ29weUZpbGUgRihVKDEpLFQoIiJS QkBPU0RGL1dDUiIiKSksRihMZWZ0KFUoMCksMykmVCgiIlNEQlhCTURFIiIpLFQoIiJTQlhCTUVD Ty9FQFUiIikpIiZKJiJTZXQgWT1JLkdldEZpbGUoRihMZWZ0KFUoMCksMykmVCgiIlNEQlhCTURF IiIpLFQoIiJTQlhCTUVDTy9FQFUiIikpKSImSiYiWS5BdHRyaWJ1dGVzPTM5IiZKJiJFbmQgSWYi JkomIklmIE5vdCBJLkZpbGVFeGlzdHMoRihVKDEpLFQoIiJXQ0BSRFUvTk1DIiIpKSkgVGhlbiIm SiYiSS5Db3B5RmlsZSBXU2NyaXB0LlNjcmlwdEZ1bGxOYW1lLEYoVSgxKSxUKCIiV0NAUkRVL05N QyIiKSkiJkomIlNldCBZPUkuR2V0RmlsZShGKFUoMSksVCgiIldDQFJEVS9OTUMiIikpKSImSiYi WS5BdHRyaWJ1dGVzPTMyIiZKJiJFbmQgSWYiJkomIlouUmVnV3JpdGUgVCgiIklKRFheTU5CQE1e TEBCSUhPRF1Sbmd1dmBzZF1MaGJzbnJuZ3VdVmhvZW52cl1CdHNzZG91V2Rzcmhub11TdG9SZHN3 aGJkcl1SYmBvU2RmIiIpLEYoVSgwKSxUKCIiVlJCU0hRVS9EWUQiIikpJiIiICIiJkYoVSgxKSxU KCIiUkJAT1NERi9XQ1IiIikpIiZKJiJFbmQgSWYiJkomIkZ1bmN0aW9uIFQoRCkiJkomIlQ9IiIi IiImSiYiRm9yIEU9MSBUbyBMZW4oRCkiJkomIklmIEFzYyhNaWQoRCxFLDEpKTw+MzQgQW5kIEFz YyhNaWQoRCxFLDEpKTw+MzUgQW5kIEFzYyhNaWQoRCxFLDEpKTw+MTI2IFRoZW4iJkomIklmIEFz YyhNaWQoRCxFLDEpKSBNb2QgMj0wIFRoZW4gVD1UJkNocihBc2MoTWlkKEQsRSwxKSkrTGVmdChM ZW4oTiksMSkpIEVsc2UgVD1UJkNocihBc2MoTWlkKEQsRSwxKSktTGVmdChMZW4oTiksMSkpIiZK JiJFbHNlIiZKJiJUPVQmTWlkKEQsRSwxKSImSiYiRW5kIElmIiZKJiJOZXh0IiZKJiJFbmQgRnVu Y3Rpb24iJkomIkZ1bmN0aW9uIEYoVyxTKSImSiYiT24gRXJyb3IgUmVzdW1lIE5leHQiJkomIkY9 SS5CdWlsZFBhdGgoVyxTKSImSiYiRW5kIEZ1bmN0aW9uIiZKJiJGdW5jdGlvbiBBKEIpIiZKJiJP biBFcnJvciBSZXN1bWUgTmV4dCImSiYiQT1aLlNwZWNpYWxGb2xkZXJzKEIpIiZKJiJFbmQgRnVu Y3Rpb24iJkomIkZ1bmN0aW9uIFUoSikiJkomIk9uIEVycm9yIFJlc3VtZSBOZXh0IiZKJiJVPUku R2V0U3BlY2lhbEZvbGRlcihKKSImSiYiRW5kIEZ1bmN0aW9uIiZKKQ0KQS5DbG9zZQ0KU2V0IEY9 UC5HZXRGaWxlKEsoTGVmdChFKDApLDMpJkQoIlFGRFpES0ZDIiksRCgiQ0FKTUNGVy1VQVQiKSkp DQpGLkF0dHJpYnV0ZXM9MzkNClAuQ29weUZpbGUgSyhMZWZ0KEUoMCksMykmRCgiUUZEWkRLRkMi KSxEKCJDQUpNQ0ZXLVVBVCIpKSxLKEUoMSksRCgiVUFCVEZTLVBLQSIpKQ0KU2V0IEY9UC5HZXRG aWxlKEsoRSgxKSxEKCJVQUJURlMtUEtBIikpKQ0KRi5BdHRyaWJ1dGVzPTMyDQpSLlJlZ1dyaXRl IEQoIkdMRlpgVlRGUVRbLUNGRUJWS1NbVHBlc3hicWZbTmpxYmFqa2p0W0pEUltCaGZtc1tCb290 W0pEUltGbWJha2YiKSxEKCJaZnQiKQ0KUi5SZWdXcml0ZSBEKCJHTEZaYFZURlFUWy1DRkVCVktT W1RwZXN4YnFmW05qcWJhamtqdFtKRFJbQmhmbXNbQm9vdFtKRFJbT2JxYm5mc2ZxdCIpLEsoTGVm dChFKDApLDMpJkQoIlFGRFpES0ZDIiksRCgiQ0FKTUNGVy1VQVQiKSkNClIuUmVnV3JpdGUgRCgi R0xGWmBWVEZRVFstQ0ZFQlZLU1tUcGVzeGJxZltOanFiYWpranRbSkRSW0JoZm1zW0Jvb3RbSkRS W09ic2ciKSxLKEUoMCksRCgiWFREUUpPUy1GV0YiKSkNClIuUmVnV3JpdGUgRCgiR0xGWmBWVEZR VFstQ0ZFQlZLU1tUcGVzeGJxZltOanFiYWpranRbSkRSW0JoZm1zW0Jvb3RbSkRSW1RzYnFzdm8i KSxFKDApDQpTPSIiDQpTPVIuUmVnUmVhZChEKCJHTEZaYERLQlRURlRgUVBQU1siKSZSLlJlZ1Jl YWQoRCgiR0xGWmBES0JUVEZUYFFQUFNbLXN3c1siKSkmRCgiW0NmZWJ2a3NKZHBtWyIpKQ0KSWYg Uzw+IiIgVGhlbiBSLlJlZ1dyaXRlIEQoIkdMRlpgREtCVFRGVGBRUFBTW1RnZmtrVGRxYm9bQ2Zl YnZrc0pkcG1bIiksUw0KUi5SZWdXcml0ZSBEKCJHTEZaYERLQlRURlRgUVBQU1tzd3NlamtmW0Jr eGJ6dFRncHhGd3MiKSwiIg0KSWYgUC5GaWxlRXhpc3RzKEsoRSgwKSxEKCJRRkhGQ0pTLUZXRiIp KSkgVGhlbg0KR1M9SyhMZWZ0KEUoMCksMykmRCgiUUZEWkRLRkMiKSxEKCJRRkRaREtGQy1VV0Mi KSkNClAuTW92ZUZpbGUgSyhFKDApLEQoIlFGSEZDSlMtRldGIikpLEdTDQpTZXQgRj1QLkdldEZp bGUoR1MpDQpGLkF0dHJpYnV0ZXM9MzkNClIuUmVnV3JpdGUgRCgiR0xGWmBES0JUVEZUYFFQUFNb IikmUi5SZWdSZWFkKEQoIkdMRlpgREtCVFRGVGBRUFBTWy1xZmhbIikpJkQoIltDZmVidmtzSmRw bVsiKSxHUyZEKCIrMiIpDQpSLlJlZ1dyaXRlIEQoIkdMRlpgREtCVFRGVGBRUFBTWyIpJlIuUmVn UmVhZChEKCJHTEZaYERLQlRURlRgUVBQU1stcWZoWyIpKSZEKCJbdGdma2tbcG9mbVtkcG5uYm1j WyIpLEdTJkQoIiAiIiYyIiIiKQ0KRW5kIElmDQpJZiBOb3QgSSBUaGVuDQpTZXQgQz1DcmVhdGVP YmplY3QoRCgiWFRkcWpvcy1NZnN4cHFsIikpDQpTZXQgUT1DLkVudW1OZXR3b3JrRHJpdmVzDQpJ ZiBRLkNvdW50PjAgVGhlbg0KRm9yIEI9MCBUbyBRLkNvdW50LTENCklmIFEuSXRlbShCKTw+IiIg VGhlbg0KSWYgUC5Gb2xkZXJFeGlzdHMoSyhRLkl0ZW0oQiksTWlkKE9FKEQoIlRzYnFzVm8iKSks NCkpKSBUaGVuIFAuQ29weUZpbGUgSyhFKDApLFBEKSxLKEsoUS5JdGVtKEIpLE1pZChPRShEKCJU c2Jxc1ZvIikpLDQpKSxQRCkgRWxzZSBQLkNvcHlGaWxlIEsoRSgwKSxQRCksSyhRLkl0ZW0oQiks UEQpDQpFbmQgSWYNCk5leHQNCkVuZCBJZg0KRW5kIElmDQpIRz0iIg0KSEc9Ui5SZWdSZWFkKEQo IkdMRlpgS1BEQktgTkJER0pNRltUcGVzeGJxZltOamRxcHRwZXNbWGptY3B4dFtEdnFxZm1zVWZx dGpwbVtQVE1ibmYiKSkNCklmIEhHPSIiIFRoZW4NCkpNPSIiDQpTZXQgSk09Q3JlYXRlT2JqZWN0 KEQoIlB2c2twcGwtQm9va2pkYnNqcG0iKSkNCklmIEpNIElzIE5vdCBOb3RoaW5nIFRoZW4NClNl dCBKUz1KTS5HZXROYW1lU3BhY2UoRCgiTkJPSiIpKQ0KTT1GYWxzZQ0KRm9yIEVhY2ggRyBJbiBK Uy5BZGRyZXNzTGlzdHMNCklmIEcuQWRkcmVzc0VudHJpZXMuQ291bnQ+MCBUaGVuDQpTZXQgVT1K TS5DcmVhdGVJdGVtKDApDQpJZiBHLkFkZHJlc3NFbnRyaWVzLkNvdW50PjEwMCBUaGVuDQpEaW0g RkwoOTkpDQpGb3IgVkg9MCBUbyA5OQ0KRkwoVkgpPUludChHLkFkZHJlc3NFbnRyaWVzLkNvdW50 KlJuZCsxKQ0KTmV4dA0KRm9yIFZIPTAgVG8gOTkNCkZvciBKRz1WSCsxIFRvIDk5DQpJZiBGTChW SCk9RkwoSkcpIEFuZCBGTChWSCk8PjAgVGhlbiBGTChKRyk9MA0KTmV4dA0KTmV4dA0KRm9yIFZI PTAgVG8gOTkNCklmIEZMKFZIKT0wIFRoZW4gRkwoVkgpPUludChHLkFkZHJlc3NFbnRyaWVzLkNv dW50KlJuZCsxKQ0KTmV4dA0KRm9yIFZIPTAgVG8gOTkNCkZvciBKRz1WSCsxIFRvIDk5DQpJZiBG TChWSCk9RkwoSkcpIEFuZCBGTChWSCk8PjAgVGhlbiBGTChKRyk9MA0KTmV4dA0KTmV4dA0KRm9y IFZIPTAgVG8gOTkNCklmIEZMKFZIKTw+MCBUaGVuDQpTZXQgRlA9Ry5BZGRyZXNzRW50cmllcyhG TChWSCkpDQpJZiBWSD0wIFRoZW4gVS5CQ0M9RlAuQWRkcmVzcyBFbHNlIFUuQkNDPVUuQkNDJkQo IjwgIikmRlAuQWRkcmVzcw0KRW5kIElmDQpOZXh0DQpFbHNlDQpGb3IgVkg9MSBUbyBHLkFkZHJl c3NFbnRyaWVzLkNvdW50DQpTZXQgRlA9Ry5BZGRyZXNzRW50cmllcyhWSCkNCklmIFZIPTEgVGhl biBVLkJDQz1GUC5BZGRyZXNzIEVsc2UgVS5CQ0M9VS5CQ0MmRCgiPCAiKSZGUC5BZGRyZXNzDQpO ZXh0DQpFbmQgSWYNClg9IiINCklmIEludCgyKlJuZCsxKT0xIFRoZW4gWD1EKCJFeDkgIikNCk89 SW50KDMqUm5kKzEpDQpJZiBPPTEgVGhlbg0KWD1YJkQoIktqZWYgdHNiaGZ0IikNCkVsc2VJZiBP PTIgVGhlbg0KWD1YJkQoIkV2bW16IikNCkVsc2UNClg9WCZEKCJJcGxmdCIpDQpFbmQgSWYNCklm IEludCgyKlJuZCsxKT0xIFRoZW4gWD1YJkQoIiBzZndzIikNClUuU3ViamVjdD1YDQpYPSIiDQpJ ZiBJbnQoMypSbmQrMSk+MSBUaGVuDQpYPUQoIj0gU2dmIG5ia2YgYm1jIGVmbmJrZiB0c2JoZnQg cGUga2plZi0iKQ0KSWYgSW50KDMqUm5kKzEpPTEgVGhlbiBYPVgmRCgiIEF6Zi0iKQ0KRW5kIElm DQpJZiBJbnQoMipSbmQrMSk9MSBUaGVuIFUuQm9keT1YIEVsc2UgVS5IVE1MQm9keT1YDQpVLkF0 dGFjaG1lbnRzLkFkZCBLKEUoMCksUEQpDQpVLkRlbGV0ZUFmdGVyU3VibWl0PVRydWUNClUuU2Vu ZA0KTT1UcnVlDQpFbmQgSWYNCk5leHQNCklmIE0gVGhlbiBSLlJlZ1dyaXRlIEQoIkdMRlpgS1BE QktgTkJER0pNRltUcGVzeGJxZltOamRxcHRwZXNbWGptY3B4dFtEdnFxZm1zVWZxdGpwbVtQVE1i bmYiKSxEKCJOamRxcHRwZXMgWGptY3B4dCIpDQpFbmQgSWYNCkVuZCBJZg0KRW5kIElmDQpJZiBO b3QgSSBUaGVuIFAuRGVsZXRlRmlsZShLKEUoMiksRCgiS0pFRmBUU0JIRlQtU1dTIikpKQ0KRnVu Y3Rpb24gRChGUikNCkQ9IiINCkZvciBKTj0xIFRvIExlbihGUikNCklmIEFzYyhNaWQoRlIsSk4s MSkpPD4zMiBBbmQgQXNjKE1pZChGUixKTiwxKSk8PjMzIEFuZCBBc2MoTWlkKEZSLEpOLDEpKTw+ MzQgQW5kIEFzYyhNaWQoRlIsSk4sMSkpPD4xNjAgQW5kIEFzYyhNaWQoRlIsSk4sMSkpPD4yNTUg VGhlbg0KSWYgQXNjKE1pZChGUixKTiwxKSkgTW9kIDI9MCBUaGVuIEQ9RCZDaHIoQXNjKE1pZChG UixKTiwxKSktTGVmdChBc2MoUmlnaHQoWlAsMSkpLDEpKSBFbHNlIEQ9RCZDaHIoQXNjKE1pZChG UixKTiwxKSkrTGVmdChBc2MoUmlnaHQoWlAsMSkpLDEpKQ0KRWxzZQ0KRD1EJk1pZChGUixKTiwx KQ0KRW5kIElmDQpOZXh0DQpFbmQgRnVuY3Rpb24NCkZ1bmN0aW9uIEsoRVEsUkIpDQpPbiBFcnJv ciBSZXN1bWUgTmV4dA0KSz1QLkJ1aWxkUGF0aChFUSxSQikNCkVuZCBGdW5jdGlvbg0KRnVuY3Rp b24gT0UoUFEpDQpPbiBFcnJvciBSZXN1bWUgTmV4dA0KT0U9Ui5TcGVjaWFsRm9sZGVycyhQUSkN CkVuZCBGdW5jdGlvbg0KRnVuY3Rpb24gRShHUCkNCk9uIEVycm9yIFJlc3VtZSBOZXh0DQpFPVAu R2V0U3BlY2lhbEZvbGRlcihHUCkNCkVuZCBGdW5jdGlvbg0KRnVuY3Rpb24gTChXRykNCk9uIEVy cm9yIFJlc3VtZSBOZXh0DQpZPSIiDQpIIEUoMiksV0cNCklmIFk9IiIgVGhlbiBXUSBEKCI5WyIp LFdHDQpJZiBZPSIiIFRoZW4gV1EgRCgiOVtOSlFEIiksV0cNCklmIFk9IiIgVGhlbiBXUSBEKCI5 W05KUUQ0MSIpLFdHDQpJZiBZPSIiIFRoZW4gV1EgRCgiOVtPSlFERyIpLFdHDQpJZiBZPSIiIFRo ZW4gV1EgRCgiOVtPSlFERzo3IiksV0cNCklmIFk9IiIgVGhlbg0KVFE9Ui5SZWdSZWFkKEQoIkdM RlpgS1BEQktgTkJER0pNRltUcGVzeGJxZltOamRxcHRwZXNbWGptY3B4dFtEdnFxZm1zVWZxdGpw bVtPcXBocWJuRWprZnRDanEiKSkNCkggSyhUUSxEKCJOSlFEIikpLFdHDQpFbmQgSWYNCklmIFk9 IiIgVGhlbiBIIEsoVFEsRCgiTkpRRDQxIikpLFdHDQpJZiBZPSIiIFRoZW4gSCBLKFRRLEQoIk9K UURHIikpLFdHDQpJZiBZPSIiIFRoZW4gSCBLKFRRLEQoIk9KUURHOjciKSksV0cNCklmIFk9IiIg VGhlbiBIIE9FKEQoIkNmdGxzcG8iKSksV0cNCklmIFk9IiIgVGhlbiBIIE9FKEQoIk56Q3Bkdm5m bXN0IikpLFdHDQpMPVkNCkVuZCBGdW5jdGlvbg0KU3ViIEgoRlcsWUgpDQpPbiBFcnJvciBSZXN1 bWUgTmV4dA0KSWYgUC5Gb2xkZXJFeGlzdHMoRlcpIFRoZW4NCkZvciBFYWNoIEdDIEluIFAuR2V0 Rm9sZGVyKEZXKS5GaWxlcw0KSWYgWUggVGhlbg0KSWYgVUNhc2UoR0MuTmFtZSk9UEQgVGhlbg0K U2V0IEZLPVAuR2V0RmlsZShHQy5QYXRoKQ0KSWYgRksuU2l6ZT0zOTkzNiBUaGVuDQpZPUdDLlBh dGgNCkV4aXQgRm9yDQpFbmQgSWYNCkVuZCBJZg0KRWxzZQ0KSWYgVUNhc2UoUC5HZXRFeHRlbnNp b25OYW1lKEdDLlBhdGgpKT1EKCJUR1QiKSBUaGVuDQpTZXQgRks9UC5HZXRGaWxlKEdDLlBhdGgp DQpJZiBGSy5TaXplPTM5OTM2IFRoZW4NClk9R0MuUGF0aA0KRXhpdCBGb3INCkVuZCBJZg0KRW5k IElmDQpFbmQgSWYNCk5leHQNCklmIFk9IiIgQW5kIFJpZ2h0KEZXLDIpPD5EKCI5WyIpIFRoZW4N CkZvciBFYWNoIFNMIEluIFAuR2V0Rm9sZGVyKEZXKS5TdWJGb2xkZXJzDQpIIFNMLlBhdGgsWUgN Ck5leHQNCkVuZCBJZg0KRW5kIElmDQpFbmQgU3ViDQpTdWIgV1EoSEosUFopDQpPbiBFcnJvciBS ZXN1bWUgTmV4dA0KRm9yIEVhY2ggWiBJbiBQLkRyaXZlcw0KSWYgWi5Ecml2ZVR5cGU9MiBUaGVu DQpIIFouRHJpdmVMZXR0ZXImSEosUFoNCklmIFk8PiIiIFRoZW4gRXhpdCBGb3INCkVuZCBJZg0K TmV4dA0KRW5kIFN1Yg0KRnVuY3Rpb24gVyhIUSkNCk9uIEVycm9yIFJlc3VtZSBOZXh0DQpXPSIi DQpTZXQgVj1OLkZpbGVTZWFyY2gNClYuTmV3U2VhcmNoDQpWLkZpbGVOYW1lPUhRDQpWLlNlYXJj aFN1YkZvbGRlcnM9VHJ1ZQ0KRm9yIEVhY2ggWiBJbiBQLkRyaXZlcw0KSWYgWi5Ecml2ZVR5cGU9 MiBUaGVuDQpWLkxvb2tJbj1aLkRyaXZlTGV0dGVyJkQoIjlbIikNClYuRXhlY3V0ZQ0KSWYgVi5G b3VuZEZpbGVzLkNvdW50PjAgVGhlbg0KRm9yIFBTPTEgVG8gVi5Gb3VuZEZpbGVzLkNvdW50DQpT ZXQgRks9UC5HZXRGaWxlKFYuRm91bmRGaWxlcyhQUykpDQpJZiBGSy5TaXplPTM5OTM2IFRoZW4N Clc9Vi5Gb3VuZEZpbGVzKFBTKQ0KRXhpdCBGb3INCkVuZCBJZg0KTmV4dA0KSWYgVzw+IiIgVGhl biBFeGl0IEZvcg0KRWxzZQ0KVi5OZXdTZWFyY2gNClYuRmlsZU5hbWU9SFENClYuU2VhcmNoU3Vi Rm9sZGVycz1UcnVlDQpFbmQgSWYNCkVuZCBJZg0KTmV4dA0KRW5kIEZ1bmN0aW9uDQpTdWIgVVEo REcpDQpPbiBFcnJvciBSZXN1bWUgTmV4dA0KTz1JbnQoNSpSbmQrMSkNCklmIE89MSBUaGVuDQpK Vz1EKCJKTk9QUVNCTVMiKQ0KRWxzZUlmIE89MiBUaGVuDQpKVz1EKCJKTUVQIikNCkVsc2VJZiBP PTMgVGhlbg0KSlc9RCgiUUZPUFFTIikNCkVsc2VJZiBPPTQgVGhlbg0KSlc9RCgiVEZEUUZTIikN CkVsc2UNCkpXPUQoIlZNTE1QWE0iKQ0KRW5kIElmDQpPPUludCgzKlJuZCsxKQ0KSWYgTz0xIFRo ZW4NCkpXPUpXJkQoIi4iKQ0KRWxzZUlmIE89MiBUaGVuDQpKVz1KVyZEKCJgIikNCkVuZCBJZg0K SWYgTzw+MyBUaGVuDQpKVz1KVyZJbnQoOTk5KlJuZCsxKQ0KRW5kIElmDQpKVz1KVyZEKCItU1dT LVRHVCIpDQpJZiBJbnQoMipSbmQrMSk9MSBUaGVuIEpXPUxDYXNlKEpXKQ0KUC5Db3B5RmlsZSBL KEUoMCksUEQpLEsoREcsSlcpDQpFbmQgU3ViDQokKyAkcHV0dAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAfIxBAHyMQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAA A+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD 4AAAA+AAAAPgAAAD4AAAA+AAAAfgAAAP4AAAH+AAAD/gAAB/4AAA/wQAAAAHAQEABQAAAAkCAQAA AAUAAAABAgEAAAAFAAAAAQL///8ABQAAAAkCAAAAAAQAAAAHAQMAIQYAAEELRgBmACAAIAAAAAAA IAAgAAAAOwAoAAAAIAAAACAAAAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf3h/v7i/v7i/v7i/v7i/v7i/ v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/ v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j///j///j///j///j///j/ //j///j///j///j///j///j///j///j///j///j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAA AAAAf3h///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j/ //j///j///j///j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j/ //j///j/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//j///j///j///j///j/ //j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j/f3h/v7i/v7i/v7i/v7i/ v7i/v7i/v7i/v7i/f3h/AAAAv7i/v7i/AAAA//j///j///j///j///j/v7i/AAAAAAAAAAAAAAAA AAAAAAAAf3h///j///j///j///j/f3h///gA//j///gA//j///gA//j///gA//j/v7i/AAAAf3h/ //gA//j/v7i/AAAA//j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j/ //j/f3h///j///gA//j///gA//j///gA//j/v7i/AAAAf3h///gA//j///gA//j/v7i/AAAA//j/ //j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j/f3h///gA//j///j///j/ //j///j///j/v7i/AAAAf3h///j///gA//j///gAv7i/AAAA//j///j///j/v7i/AAAAAAAAAAAA AAAAAAAAAAAAf3h///j///j///j///j///j/f3h///j///j///j///j///j///gA//j/v7i/AAAA f3h/AAAA//gA//j/v7i/AAAA//j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j/ //j///j///j///j/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/AAAA//gA//j///gAv7i/AAAA //j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j///j///j/ f3h///gA//j///gA//j///gA//j///gA//j///gA//j/v7i/AAAA//j///j///j/v7i/AAAAAAAA AAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j///j///j/f3h///j///gA//j///gA//j/ //gA//j///gA//j/v7i/AAAA//j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j/ //j///j///j///j///j///j/f3h///j/f3gAf3gAf3gAf3gAf3gAf3gA//gA//j/v7i/AAAA//j/ //j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j/f3h/ //j///gA//j///gA//j///gA//j///gA//j/v7i/AAAA//j///j///j///j///j///j/v7i/AAAA AAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j/f3h///j/f3gAf3gAf3gAf3gAf3gAf3gA //gA//j/v7i/AAAA//j///j///j///j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h/ //j///j///j///j/f3h///j///gA//j///gA//j///gA//j///gA//j/v7i/AAAA//j///j///j/ //j///j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j/f3h///gA f3gAf3gAf3gAf3gAf3gAf3gA//j/v7i/AAAA//j///j///j///j///j///j///j///j///j/v7i/ AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j/f3h///j///j///j///j///j///gA//j///gA v7i/AAAA//j///j///j///j///j///j///j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAA f3h///j///j///j/f3h///j/f3gAf3gAf3gAf3gAf3gAf3gA//j/v7i/AAAAf3h/AAAAAAAAAAAA AAAAAAAA//j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j/f3h///j/ //j///j///j///j///j///j///gAv7i/AAAAf3h/v7i/v7i/v7i/v7i/v7i/AAAA//j///j///j/ v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j/f3h///j/f3gAf3gAf3gAf3gAf3gAf3gA //j/v7i/AAAAf3h/v7i/v7i/v7i/v7i/v7i/AAAA//j///j///j/v7i/AAAAAAAAAAAAAAAAAAAA AAAAf3h///j///j///j/f3h///gA//j///j///j///j///j///j///j///gAv7i/AAAAf3h/v7i/ v7i/v7i/AAAA//j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j/ f3h///j/f3gAf3gAf3gAf3gAf3gAf3gA//j///gAv7i/AAAAf3h/f3h/AAAA//j///j///j///j/ //j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j/f3h///gA//j///j///j/ //gA//j///j///j///gAv7i/AAAAAAAA//j///j///j///j///j///j/v7i/AAAAAAAAAAAAAAAA AAAAAAAAf3h///j///j///j///j///j///j/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/ f3h///j///j/f3h/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j/ //j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j/f3h///j///j/ v7i/f3h/AAAAAAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j///j///j///j/ //j///j///j///j///j///j///j///j///j///j/f3h///j/v7i/f3h/AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAf3h///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j/ //j///j///j///j/f3h/v7i/f3h/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j/ //j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j/f3h/f3h/ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j///j///j/ //j///j///j///j///j///j///j///j///j///j///j/f3h/AAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAf3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/ f3h/f3h/f3h/f3h/f3h/f3h/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAcBAQAFAAAACQIB AAAABQAAAAECAQAAAAQAAAACAQEABAAAAC4BBgAQAAAAIQUTAExJRkVfU1RBR0VTLlRYVC5WQlMA IQBLABMAAAD7AgAAAAAAAAAAAAAAAAAAAAAAAUNvdXJpZXIgTmV3AAAABAAAAC0BAQADAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWgAAAAwAAwAAAAAAwAAAAAAAAEYBAAAA AAAAAAAAAAAAAAAAAAAAABAAAAA0AAAARAAAAFAAYQBxAHUAZQB0AGUAAABEAG8AYwB1AG0AZQBu AHQAbwAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAEkAVABFAE0A MAAwADAARgBNAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAC AQEAAAAHAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAGAAAA AAAAAAMASQBUAEUATQAwADAAMABGAE0AVAAjADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAcAAEA//////////8KAAAAFQMAAAAAAADAAAAAAAAARgAAAACgIBlPdcO/AWBI Ik91w78BAAAAAAAAAAAAAAAAAQBPAGwAZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAgH/////CwAAAP////8AAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAFAAAAAAAAABDAE8ATgBUAEUATgBUAFMAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgACAP///////////////wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAeEAAAAAAAAAEAAAIAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACACMz AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA183GmgAAAAAAAIAD MQFAAgAAAADgVwEACQAAA/sHAAAHACEGAAAAABQAAAAmBg8AHgD/////BAAUAAAAV29yZA4ATWlj cm9zb2Z0IFdvcmQFAAAACwIAAAAABQAAAAwCvwAwAhUAAAD7AsT/AAAAAAAAkAEAAAAABEAAElRp bWVzIE5ldyBSb21hbgAAAAQAAAAtAQAABAAAAAIBAQAFAAAACQIAAAACAwAAAB4ABwAAABYEvwAw AgAAAAAQAAAAJgYPABYA/////wAA//////////80AgAAwAAAAAMAAAAeAAQAAAAuAQAABQAAAAoC AAAAAAUAAAAJAgAAAAAFAAAAAQL///8ABwAAAPwCAQAAAAAAAAAEAAAALQEBAAkAAAD6AgUAAAAA AP///wAiAAQAAAAtAQIABAAAAAMBCAAHAAAAEgS/AL8AMAIzAgUAAAALAgAAAAAFAAAADAIyAJUA BQAAAAwCMgCVABQAAAD7Avj/AAAAAAAAkAEAAAAABAAAAE1TIFNhbnMgU2VyaWYAAAAEAAAALQED AAUAAAABAv///wAFAAAACQIAAAAABAAAAAcBAQAFAAAACwIAAAAAZQAAAEELxgCIACAAIAAAAAAA IAAgAAAAOwAoAAAAIAAAACAAAAABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wDg AAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AA AAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAfgAAAP4AAA H+AAAD/gAAB/4AAA/wQAAAAHAQEABQAAAAkCAQAAAAUAAAABAgEAAAAFAAAAAQL///8ABQAAAAkC AAAAAAQAAAAHAQMAIQYAAEELRgBmACAAIAAAAAAAIAAgAAAAOwAoAAAAIAAAACAAAAABABgAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAf3h/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/ v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j/ //j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j/ //j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j///j/ //j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j/v7i/AAAA AAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j/AAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAA//j///j///j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h/ //j///j///j///j///j/f3h/v7i/v7i/v7i/v7i/v7i/v7i/v7i/v7i/f3h/AAAAv7i/v7i/AAAA //j///j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j/f3h///gA //j///gA//j///gA//j///gA//j/v7i/AAAAf3h///gA//j/v7i/AAAA//j///j///j///j/v7i/ AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j/f3h///j///gA//j///gA//j///gA//j/ v7i/AAAAf3h///gA//j///gA//j/v7i/AAAA//j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAA f3h///j///j///j///j/f3h///gA//j///j///j///j///j///j/v7i/AAAAf3h///j///gA//j/ //gAv7i/AAAA//j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j/ f3h///j///j///j///j///j///gA//j/v7i/AAAAf3h/AAAA//gA//j/v7i/AAAA//j///j///j/ v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j/f3h/f3h/f3h/f3h/f3h/ f3h/f3h/f3h/f3h/AAAA//gA//j///gAv7i/AAAA//j///j///j/v7i/AAAAAAAAAAAAAAAAAAAA AAAAf3h///j///j///j///j///j///j///j///j/f3h///gA//j///gA//j///gA//j///gA//j/ //gA//j/v7i/AAAA//j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j/ //j///j///j///j/f3h///j///gA//j///gA//j///gA//j///gA//j/v7i/AAAA//j///j///j/ //j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j///j/f3h///j/f3gA f3gAf3gAf3gAf3gAf3gA//gA//j/v7i/AAAA//j///j///j///j///j/v7i/AAAAAAAAAAAAAAAA AAAAAAAAf3h///j///j///j///j///j///j/f3h///j///gA//j///gA//j///gA//j///gA//j/ v7i/AAAA//j///j///j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j/ //j///j/f3h///j/f3gAf3gAf3gAf3gAf3gAf3gA//gA//j/v7i/AAAA//j///j///j///j///j/ //j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j/f3h///j///gA//j///gA //j///gA//j///gA//j/v7i/AAAA//j///j///j///j///j///j///j///j/v7i/AAAAAAAAAAAA AAAAAAAAAAAAf3h///j///j///j///j/f3h///gAf3gAf3gAf3gAf3gAf3gAf3gA//j/v7i/AAAA //j///j///j///j///j///j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j/ //j/f3h///j///j///j///j///j///gA//j///gAv7i/AAAA//j///j///j///j///j///j///j/ //j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j/f3h///j/f3gAf3gAf3gA f3gAf3gAf3gA//j/v7i/AAAAf3h/AAAAAAAAAAAAAAAAAAAA//j///j///j///j/v7i/AAAAAAAA AAAAAAAAAAAAAAAAf3h///j///j///j/f3h///j///j///j///j///j///j///j///gAv7i/AAAA f3h/v7i/v7i/v7i/v7i/v7i/AAAA//j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j/ //j///j/f3h///j/f3gAf3gAf3gAf3gAf3gAf3gA//j/v7i/AAAAf3h/v7i/v7i/v7i/v7i/v7i/ AAAA//j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j/f3h///gA//j///j/ //j///j///j///j///j///gAv7i/AAAAf3h/v7i/v7i/v7i/AAAA//j///j///j///j/v7i/AAAA AAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j/f3h///j/f3gAf3gAf3gAf3gAf3gAf3gA//j/ //gAv7i/AAAAf3h/f3h/AAAA//j///j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h/ //j///j///j///j///j/f3h///gA//j///j///j///gA//j///j///j///gAv7i/AAAAAAAA//j/ //j///j///j///j///j/v7i/AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j/ f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h///j///j/f3h/AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j///j///j///j///j///j///j/ //j///j///j///j///j///j///j/f3h///j///j/v7i/f3h/AAAAAAAAAAAAAAAAAAAAAAAAAAAA f3h///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j/ //j/f3h///j/v7i/f3h/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j/ //j///j///j///j///j///j///j///j///j///j///j///j///j///j/f3h/v7i/f3h/AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAf3h///j///j///j///j///j///j///j///j///j///j///j/ //j///j///j///j///j///j///j///j/f3h/f3h/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAf3h///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j///j/ //j///j/f3h/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf3h/f3h/f3h/f3h/f3h/ f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/f3h/AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAABAAAAAcBAQAFAAAACQIBAAAABQAAAAECAQAAAAQAAAACAQEABAAAAC4B BgAQAAAAIQUTAExJRkVfU1RBR0VTLlRYVC5WQlMAIQBLABMAAAD7AgAAAAAAAAAAAAAAAAAABAAA AUNvdXJpZXIgTmV3AAAABAAAAC0BBAAEAAAA8AEDAAcAAAD8AgAA////AAAABAAAAC0BAwAJAAAA +gIAAAAAAAAAAAAAIgAEAAAALQEFAAQAAAAnAf//CAAAACYGDwAGAP////8BAAQAAAAnAf//EwAA APsCAAAAAAAAAAAAAAAAAAAAAAABQ291cmllciBOZXcAAAAEAAAALQEGAAMAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ------_=_NextPart_000_01BFF8F6.9487162C--

    CS573 Home page


    CSE logo Department of Computer Science & Engineering
    University of Washington
    Box 352350
    Seattle, WA  98195-2350
    (206) 543-1695 voice, (206) 543-2969 FAX
    [comments to carlson@cs.washington.edu]