ࡱ>      @ 6bjbjצצ q+/$>>>>"("("(4V(XXXhY[V(/pvu:uuuЈԌ".$.$.$.$.$.$.'1Ry30$."(؎^^0؎؎$.>>uu 9.j؎>u&u".؎". *$'^Fup p*j)XP~;.l/D4H4FV(V(>>>>4"(F8؎؎؎؎؎؎؎$.$.V(V(4V(V(   Document Control Primary Owner: Elaine SimoneSteven Coad  HYPERLINK "mailto:src9472@rit.edu" src9472ens6412@rit.edu Secondary Owner: Elaine SimoneTracy Rericha  HYPERLINK "mailto:ens6412@rit.edu" ens6412tmk1698@rit.edu Inquiries to: Steven CoadElaine Simone  HYPERLINK "mailto:ens6412@rit.edu" src9472ens6412@rit.edu Change History Published / Revised DateVersion #Author Section / Nature of Change1.001/09/06Integrated each section of the requirements done by the team, fixed grammar mistakes, and added peripherary information.1.0Steven CoadJen FarmerTracy RerichaInitial High level RequirementsCoding StandardIntegrated each section of the requirements done by the team, fixed grammar mistakes, and added peripherary information.Initial compilation and revision.2.001/09/06Updated requirements IDs based on corresponding high level requirements.1.1Jen FarmerTracy RerichaSecond round after meeting with FARA boardUpdated requirements IDs based on corresponding high level requirements.Requirements ID numbers.3.01.2Elaine SimoneJennifer FarmerIncorporated input from December 10, 2005 MeetingUser impact and acceptance criteria.3.11.3Elaine SimoneElaine SImoneFixed Source of High Level Requirement columnMinor changes based on Jens first review. 4.001/15/061.4Steve CoadSteven CoadIncorporated input from December 19, 2005 ReviewPut together individual changes4.101/17/062.0Tracy RerichaElaine SimoneIncorporated input from December 19, 2005 Review; fixed grammar inconsistencies; re-reviewedAfter reviews combine individual changes, reordered.4.21/18/062.1Elaine SimoneJennifer FarmerAdded requirements F17 and d8 to capture need to streamline with faresearchalliance.orgReview changes and add acceptance criteria and user impact scale (urgent, high, medium and low).1/19/062.1Michelle WhalenReview Changes.1/21/062.2Steven CoadRe-ordered as per meeting notes.1/23/062.3Sandy MorrisRe-numbered requirements, edited for consistency, added new prioritization scale of High, Medium, Low instead of Urgent, High, Medium.1/24/062.4Elaine SimoneRereviewed Changes.1/25/062.4jf5Jennifer FarmerReviewed v2.4 added changes and comments. 1/25/062.6Elaine SimoneAccepted and made changes per Jens questions.1/25/062.7Tracy RerichaReviewed changes; very minor grammar fixes. Review and Approval History Required reviewers for the document in question should be indicated by placing an "X" next to their name in the following table. In the column entitled "vote" record each reviewers vote using the following letters (shown below) to indicate their approval, disapproval or submission of changes needed to garner their approval: A - Approved C - Changes were submitted and shall constitute approval of the reviewer if incorporated D - Declined (This vote requires an explanation indicating why approval was denied.) Required reviewers who have not responded by the deadline set shall be considered to be in agreement with the contents of the document under review. Organization\RoleReviewer/ApproverRequiredVoteFARAJennifer Farmer FORMCHECKBOX EDSMichelle Whalen FORMCHECKBOX EDSJohn Manos FORMCHECKBOX  Table of Contents  TOC \o "1-3" \h \z \u  HYPERLINK \l "_Toc126789276" Document Control  PAGEREF _Toc126789276 \h 2  HYPERLINK \l "_Toc126789277" Change History  PAGEREF _Toc126789277 \h 2  HYPERLINK \l "_Toc126789278" Review and Approval History  PAGEREF _Toc126789278 \h 2  HYPERLINK \l "_Toc126789279" 1.1 Headings  PAGEREF _Toc126789279 \h 5  HYPERLINK \l "_Toc126789280" 1.1.1 Source File  PAGEREF _Toc126789280 \h 5  HYPERLINK \l "_Toc126789281" 1.1.2 Class  PAGEREF _Toc126789281 \h 5  HYPERLINK \l "_Toc126789282" 1.1.3 Method  PAGEREF _Toc126789282 \h 6  HYPERLINK \l "_Toc126789283" 1.2 Declarations  PAGEREF _Toc126789283 \h 6  HYPERLINK \l "_Toc126789284" 1.2.1 Placement  PAGEREF _Toc126789284 \h 6  HYPERLINK \l "_Toc126789285" 1.2.2 Class and Interface Declarations  PAGEREF _Toc126789285 \h 7  HYPERLINK \l "_Toc126789286" 1.2 Indentation and Line Length  PAGEREF _Toc126789286 \h 7  HYPERLINK \l "_Toc126789287" 1.2.3 Indentation  PAGEREF _Toc126789287 \h 7  HYPERLINK \l "_Toc126789288" 1.2.4 Line Length  PAGEREF _Toc126789288 \h 7  HYPERLINK \l "_Toc126789289" 1.3 Comments  PAGEREF _Toc126789289 \h 9  HYPERLINK \l "_Toc126789290" 1.3.1 Block Comments  PAGEREF _Toc126789290 \h 9  HYPERLINK \l "_Toc126789291" 1.3.2 Single-Line Comments  PAGEREF _Toc126789291 \h 9  HYPERLINK \l "_Toc126789292" 1.3.3 Trailing Comments  PAGEREF _Toc126789292 \h 9  HYPERLINK \l "_Toc126789293" 1.3.4 End-Of-Line Comments  PAGEREF _Toc126789293 \h 9  HYPERLINK \l "_Toc126789294" 1.4 Statements  PAGEREF _Toc126789294 \h 10  HYPERLINK \l "_Toc126789295" 1.4.1 Compound Statements  PAGEREF _Toc126789295 \h 10  HYPERLINK \l "_Toc126789296" 1.4.2 Return Statements  PAGEREF _Toc126789296 \h 10  HYPERLINK \l "_Toc126789297" 1.4.3 If Statements  PAGEREF _Toc126789297 \h 10  HYPERLINK \l "_Toc126789298" 1.4.4 For Statements  PAGEREF _Toc126789298 \h 11  HYPERLINK \l "_Toc126789299" 1.4.5 While Statements  PAGEREF _Toc126789299 \h 11  HYPERLINK \l "_Toc126789300" 1.4.6 Do-While Statements  PAGEREF _Toc126789300 \h 11  HYPERLINK \l "_Toc126789301" 1.4.7 Switch Statements  PAGEREF _Toc126789301 \h 11  HYPERLINK \l "_Toc126789302" 1.4.8 Try-Catch Statements  PAGEREF _Toc126789302 \h 12  HYPERLINK \l "_Toc126789303" 1.5 White Space  PAGEREF _Toc126789303 \h 12  HYPERLINK \l "_Toc126789304" 1.5.1 Blank Lines  PAGEREF _Toc126789304 \h 12  HYPERLINK \l "_Toc126789305" 1.5.2 Blank Spaces  PAGEREF _Toc126789305 \h 12  HYPERLINK \l "_Toc126789306" 1.6 Naming Conventions  PAGEREF _Toc126789306 \h 13 Document Control ii Change History ii Review and Approval History ii Functional Business Requirements 5 Performance Requirements 6 Interface Requirements 6 Design Requirements 6 Physical and Implementation Requirements 6 Document Control ii Change History ii Review and Approval History ii Detailed Functional Business Requirements 5 Detailed Performance Requirements 34 Detailed Interface Requirements 34 Detailed Design Requirements 35 Detailed Physical and Implementation Requirements 39  Detailed Functional Business Requirements These standards were adapted from the RIT CS Department guidelines for Java and C#: http://www.cs.rit.edu/~fyj/java-coding-standard.html http://www.cs.rit.edu/~cs2/csharp-coding-standard.html As well as Microsofts XML Documentation found at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vcoriXMLDocumentation.asp Headings Source File All source files should begin with a c-style comment that lists the class name, version information, date, and copyright notice: /* * Classname * * Version information * * Date * * Copyright notice */ Class The following comments will appear before the definition of every class: /// /// A description of this class goes here /// /// /// /// Author /// Sean Neubert (spn9006@cs.rit.edu) /// /// /// /// The elements of a class or interface declaration should appear in the following order: Class (static) variables Instance variables Constructors Methods Public variables should be listed first, followed by protected, then internal protected, internal, and finally the private variables. Methods should be grouped by functionality. Method The following comments will appear before every method (including main): /// /// Summary of this method. /// /// /// description /// /// description of why it is /// thrown The param tag contains an attribute called name (not type) of the parameter, followed by a description of the parameter inside of the tag. The name and data type always start with a lowercase letter. The description is most usually a phrase, starting with a lowercase letter and ending without a period, unless it contains a complete sentence. The return tag is followed by a description of the return value. Whenever possible, detailed information (such as returns -1 when an out-of-bounds argument is supplied) should be provided. An exception tag should be included for any exceptions you throw. The exception tag has an attribute named "cref". This should contain the name of the type of exception thrown. The content of the tag should describe what conditions are present when the exception is thrown. Declarations Declarations per Line One declaration per line is recommended since it encourages commenting. int level; // indentation level int size; // size of table is preferred over int level, size; Placement Put declarations only at the beginning of blocks. (A block is any code surrounded by curly braces "{" and "}".) Don't wait to declare variables until their first use; it can confuse the unwary programmer and hamper code portability within the scope. The one exception to the rule is indexes of for loops. void myMethod() { int int1 = 0; // beginning of method block if (condition) { int int2 = 0; // beginning of "if" block ... } } Class and Interface Declarations There will be no space between a method name and the parenthesis "(" starting its parameter list. An open brace "{" appears at the end of the same line as the declaration statement, and the closing brace "}" starts a line by itself indented to match its corresponding opening statement, except when it is a null statement the "}" should appear immediately after the "{". Methods are separated by a blank line. class Sample extends Object { int ivar1; int ivar2; Sample(int i, int j) { ivar1 = i; ivar2 = j; } int emptyMethod() {} ... } Indentation and Line Length Indentation Four spaces should be used as the unit of indentation. The exact construction of the indentation (spaces vs. tabs) is unspecified. Tabs must be set exactly every 8 spaces. Line Length Avoid lines longer than 80 characters, since they're not handled well by many terminals and tools. When an expression will not fit on a single line, break it according to these general principles: Break after a comma. Break before an operator. Prefer higher-level breaks to lower-level breaks. Align the new line with the beginning of the expression at the same level on the previous line. If the above rules lead to confusing code or to code that's squished up against the right margin, just indent 8 spaces instead. Here are some examples of breaking method calls: someMethod(longExpression1, longExpression2, longExpression3, longExpression4, longExpression5); var = someMethod1(longExpression1, someMethod2(longExpression2, longExpression3)); Following are two examples of breaking an arithmetic expression. The first is preferred, since the break occurs outside the parenthesized expression, which is at a higher level. longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; // PREFER longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; // AVOID Following are two examples of indenting method declarations. The first is the conventional case. The second would shift the second and third lines to the far right if it used conventional indentation, so instead it indents only 8 spaces. //CONVENTIONAL INDENTATION someMethod(int anArg, Object anotherArg, String yetAnotherArg, Object andStillAnother) { ... } //INDENT 8 SPACES TO AVOID VERY DEEP INDENTS private static synchronized horkingLongMethodName(int anArg, Object anotherArg, String yetAnotherArg, Object andStillAnother) { ... } Line wrapping for if statements should generally use the 8-space rule, since conventional (4 space) indentation makes seeing the body difficult. For example: //DON'T USE THIS INDENTATION if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { //BAD WRAPS doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS } //USE THIS INDENTATION INSTEAD if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { doSomethingAboutIt(); } //OR USE THIS if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { doSomethingAboutIt(); } Here are three acceptable ways to format ternary expressions: alpha = (aLongBooleanExpression) ? beta : gamma; alpha = (aLongBooleanExpression) ? beta : gamma; alpha = (aLongBooleanExpression) ? beta : gamma; Comments Block Comments Block comments are used to provide descriptions of files, methods, data structures and algorithms. Block comments may be used at the beginning of each file and before each method. They can also be used in other places, such as within methods. Block comments inside a function or method should be indented to the same level as the code they describe. A block comment should be preceded by a blank line to set it apart from the rest of the code. /* * Here is a block comment. */ Single-Line Comments Short comments can appear on a single line indented to the level of the code that follows. If a comment can't be written in a single line, it should follow the block comment format. A single-line comment should be preceded by a blank line. Here's an example: if (condition) { /* Handle the condition. */ ... } Trailing Comments Very short comments can appear on the same line as the code they describe, but should be shifted far enough to separate them from the statements. If more than one short comment appears in a chunk of code, they should all be indented to the same tab setting. Here's an example of a trailing comment: if (a == 2) { return TRUE; /* special case */ } else { return isPrime(a); /* works only for odd a */ } End-Of-Line Comments The // comment delimiter can comment out a complete line or only a partial line. It shouldn't be used on consecutive multiple lines for text comments; however, it can be used in consecutive multiple lines for commenting out sections of code. Examples of all three styles follow: if (foo > 1) { // Do a double-flip. ... } else { return false; // Explain why here. } //if (bar > 1) { // // // Do a triple-flip. // ... //} //else { // return false; //} Statements Compound Statements Compound statements are statements that contain lists of statements enclosed in braces "{}". The enclosed statements should be indented one more level than the compound statement. The opening brace should be at the end of the line that begins the compound statement; the closing brace should begin a line and be indented to the beginning of the compound statement. Braces are used around all statements, even single statements, when they are part of a control structure, such as a if-else or for statement. This makes it easier to add statements without accidentally introducing bugs due to forgetting to add braces. Return Statements A return statement with a value should not use parentheses unless they make the return value more obvious in some way. Example: return; return myDisk.size(); return (size ? size : defaultSize); If Statements The if-else class of statements should have the following form: if (condition) { statements; } if (condition) { statements; } else { statements; } if (condition) { statements; } else if (condition) { statements; } else { statements; } For Statements A for statement should have the following form: for (initialization; condition; update) { statements; } While Statements A while statement should have the following form: while (condition) { statements; } An empty while statement should have the following form: while (condition); Do-While Statements A do-while statement should have the following form: do { statements; } while (condition); Switch Statements A switch statement should have the following form: switch (condition) { case ABC: statements; /* falls through */ case DEF: statements; break; case XYZ: statements; break; default: statements; break; } Every time a case falls through (doesn't include a break statement), add a comment where the break statement would normally be. This is shown in the preceding code example with the /* falls through */ comment. Every switch statement should include a default case. The break in the default case is redundant, but it prevents a fall-through error if later another case is added. Try-Catch Statements A try-catch statement should have the following format: try { statements; } catch (ExceptionClass e) { statements; } A try-catch statement may also be followed by finally, which executes regardless of whether or not the try block has completed successfully. try { statements; } catch (ExceptionClass e) { statements; } finally { statements; } White Space Blank Lines Blank lines improve readability by setting off sections of code that are logically related. Two blank lines should always be used in the following circumstances: Between sections of a source file Between class and interface definitions One blank line should always be used in the following circumstances: Between methods Between the local variables in a method and its first statement Before a block or single-line comment Between logical sections inside a method to improve readability Blank Spaces Blank spaces should be used in the following circumstances: A keyword followed by a parenthesis should be separated by a space. Example: while (true) { ... } Note that a blank space should not be used between a method name and its opening parenthesis. This helps to distinguish keywords from method calls. A blank space should appear after commas in argument lists. All binary operators except . should be separated from their operands by spaces. Blank spaces should never separate unary operators such as unary minus, increment ("++"), and decrement ("--") from their operands. Example: a += c + d; a = (a + b) / (c * d); while (d++ = s++) { n++; } printSize("size is " + foo + "\n"); The expressions in a for statement should be separated by blank spaces. Example: for (expr1; expr2; expr3) Casts should be followed by a blank space. Examples: myMethod((byte) aNum, (Object) x); myMethod((int) (cp + 5), ((int) (i + 3)) + 1); Naming Conventions The most important thing to remember is that variable names need to be descriptive of their role. Also, by looking at the variable name, you should be able to understand what data type the variable is. To accomplish this, an abbreviation of the data type will be at the beginning of the variable name. For example: String sFirstName; int iAge; Requirement ID: F1.001.000Requirement Title:The process shall be web-based and indexed by major search engines. Detailed Requirement Description:Who The website itself. What The website shall be findable by online search engines. Where Major search engines such as Google and Yahoo!. When Whenever a user searches for the website online. Why So that the user can effectively find the website if they do not have the link themselves. How By registering particular key words that will identify our site with search engines. To be provided by Jen Farmer (captured in Action Item) Friedreichs Ataxia, FA, registry, ataxia, FA clinical trials Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer User Impact of Requirement:Medium: The user will be greatly impacted if they are not able to access the registry from anywhere and if they cannot find it by way of searching on the Internet. If the website were private and not indexed, people would have to be explicitly told about its existence. Therefore not making it searchable will decrease the usage because people will not be able to discover it.Acceptance Criteria:The user shall be able to type in particular keywords (Friedreichs Ataxia, FA, registry, ataxia, FA clinical trials) and locate the FARA patient registry in the list of returned search items. Requirement ID: F2.002.000Requirement Title:The website shall display information about who the registry is looking for and general information about it.Detailed Requirement Description:Who Anyone who views the site What General information about the purpose of the registry, who sponsors it (FARA), and who it reaches out to (FA patients). Where The main page of the website. When When the user accesses the main page of the website. Why So that the user can understand how the website should be used, and by whom. How By displaying text which clarify the purpose and inclusion of the website. Text to be provided by Jen Farmer.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:High: The user will be greatly impacted if they do not know how to use the system or that the system is sponsored by a reliable source. Some Patients without explanation may not think that he or she can register, or perhaps people may register that are not FA patients, but have a different forms of muscular problems that are similar.Acceptance Criteria:The user shall be able to view the primer upon accessing the main page of the FARA patient registry. Requirement ID: F3.003.000Requirement Title:User must accept HIPAA to participate in the RegistryDetailed Requirement Description:Who Patient What Patient accepts the HIPAA disclosure When For New Patient, after providing initial information, for Returning Patient, must be completed first. Where Before clinical information is entered for New Patients. Before any actions can be taken for Returning Patients. Why Patients health information will shared and therefore he or she will have to consent to the revealing of private health information. New Patients need to provide some information before seeing the HIPAA, to determine if the Patient is a minor or not, and if the Guardian would have to agree to the HIPAA disclosure. How The recording of the Patients acceptance (selecting Accept) will be recorded into the Registry and allow the Patient to begin providing information. The HIPAA information will display in the same window as the previous Initial Screen without the use of a popup.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:High: Personal health information (PHI) must be kept private and when disclosed patients need to sign or acknowledge that they are aware of the disclosure and give permission. If patient information is collected without appropriate consent this is a violation of patient rights. If a Patient does not agree to the HIPAA disclosure he or she cannot enter the Registry. Acceptance Criteria:When the accept button is selected from the HIPAA screen the patient will proceed into the registry. Also, the database will capture the acceptance from the patient and record it for FARA.  Requirement ID: F3.004.000Requirement Title:User declining of HIPAA shall lead to explanation page.Detailed Requirement Description:Who Patient What - Go to an additional explanation page and that will remove them from the process and that will not allow them to go further unless they accept. Offer the user some information & and the email link for help as listed in other requirement. Same template as any of the other pages. When Patient declines HIPAA disclosure. Where Before any information is entered; first step in the process for new registrants and/or those returning. Why Helps user understand the significance of the HIPAA disclosure and that their personal information will be shared with third parties. How After the user declines HIPAA the user will be taken to an explanation page, which will display in the same window without the use of a popup.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:High: Without the additional screen Patients may not participate in the Registry because he or she may be confused. Wary Patients may automatically choose no without reading the HIPAA disclosure and be confused about why he or she cannot register.Acceptance Criteria:When decline button is selected from the HIPAA screen another screen will appear acknowledging that they declined and offer information, contact individual and return to homepage and will not be permitted further into the application. Requirement ID: F4.005.000Requirement Title:There shall be a check to make sure that the provided guardian is over 18 years of age.Detailed Requirement Description:Who Patients What There will be a check to make sure that the date of birth of the provided guardian is valid meaning that the guardian is over the age of 18. When In the Guardian Screen. A patient/guardian must enter guardian information due to the fact that the patient is under the age of 18. Where This check will be done just after the information is entered into the Guardian Screen before the Patient is allowed to continue on to the next page. Why If the guardian is not over the age of 18 they do not qualify as a valid guardian for the patient. How The check will be done behind the scenes on the client side by the application analyzing the guardians date of birth to ensure that the age of the guardian is over 18.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:High: Minors could enter fraudulent information on the site and FARA needs to comply with the standard rights of parent/guardian when dealing with minors. Patients who are minors could enter information without his or her guardians consent.Acceptance Criteria:The system will validate that the individual entering information and providing HIPAA consent is a patient over 18 yrs or a guardian. If the patient enters a date of birth that is consistent with age <18yrs then the guardian screens will be presented. The age of the guardian will be captured from the date of birth entered to be sure that the guardian is greater than 18 years of age as a validation. Requirement ID: F4.005.001 Requirement Title:In the event that the guardians date of birth is not valid (< 18) all information entered will be lost and the user will be rerouted to an error page.Detailed Requirement Description:Who Patients What The user will be rerouted to an error page that will notify the user that their information cannot be accepted by the FARA registry because their guardian is not over the age of 18. Jen Farmer to provide additional text. When It is determined by the system that the provided guardians date of birth indicates that he or she is less than 18 years of age. Where After the date of birth check is done on the Guardian dating of birth field.. Why If the guardian is not over the age of 18 they do not qualify as a valid guardian for the patient. How The error page will display in the same window as the guardian screen. All of the information that had been entered up to that point will be lost.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:High: Minors could enter fraudulent information on the site and FARA needs to comply with the standard rights of parent/guardian when dealing with minors. Users who are minors could enter information without parental consent.Acceptance Criteria:A date of birth that is less than 18yrs of age will be entered into the guardian DOB. The system should show an error screen and let the user know that invalid information has been entered and all information captured has been lost. The system will validate the guardian age from the date of birth entered to be sure that the guardian is greater than 18 years of age. Requirement ID: F5.006.000Requirement Title:Patient Records shall have a change log. Detailed Requirement Description:Who Registry Coordinators What A change log. All entries into the change log are un-editable and only appear as a text paragraph Entries include, date, action, which account performed the action and any specific comments that were provided. When Initial Submission Edited by patient Edited by Registry Coordinator Committed by Registry Coordinator Confirmed by Patient Email reminder sent Marked Inactive Reactivated Disabled Password Reset Where In change log field. The change log field shall not be visible to the patient. Why To track changes made to a patient record and to patient account. How A read-only field that will serve as a history of changes to this patients registry information.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without a change log there would be no way to trace changes made to the account. It would also make it more difficult to identify security failures, since there is no record of all the actions taken.Acceptance Criteria:Patient Enter as a returning patient and edit a field (e.g.) and confirm and commit change. Coordinator - Enter registry as a coordinator. Select that patients record, check the change log for patient edit and date, edit patient information. Check the database for the new information; check the change log for coordinator edit and date.  Requirement ID: F5.007.000Requirement Title:Patient accounts shall have a communication log to allow registry coordinators to add notes about a patient.Detailed Requirement Description:Who Registry Coordinators What If a Registry Coordinator wishes to add specific comments to a communication log a text box is provided to capture this information. If the information in the text box is overwritten the previous information in the communication log shall not be saved. Why To provide a notes area. This will be especially important when there are multiple Registry Coordinators, leaving notes for each other detailing for instance contact with the patient means that Registry Coordinators will not have to contact or Registry Coordinators to get such information. How A field that is editable. Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without a communication log there will inevitably be Registry Coordinators duplicating efforts or stepping on each others toes trying to track information about a patient. Acceptance Criteria:Coordinator - Enter registry as a coordinator. Select a patient record enter a note in the Communication log. Check the database, communication log for note that was added. Requirement ID: F6.008.000Requirement Title:All field-specific detailed requirements shall be documented in the FieldAttributes.xls document.Detailed Requirement Description:Who Developers What When looking for detailed requirements about a specific field please refer to the FieldAttributes.xls file. This file contains the following information about a field: Database name Display name Field format (i.e. textbox, dropdown, etc.) Field size Acceptable inputs Default values Validation criteria If it is mandatory The tool tip explanation Whether it is read-only Whether it is visible to the patient When There is a question about the individual requirements for a specific field. Where FieldAttributes.xls Why To simplify the documentation of requirements for fields. How Refer to the FieldAttributes.xls. Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:High: Without asking the right questions and having the ability to capture and validate the response then the data gathered from patients will likely not be useful for selecting participants for clinical trials. If this information is not initially captured correctly then the Registry may have to be removed from service to change the questions.Acceptance Criteria:Review FieldAttributes.xls for correct content. Login as patient, confirm that fields match the description and criteria outlined in the FieldAttributes.xls. Login as Registry Coordinator; confirm that fields match the description and criteria outlined in the FieldAttributes.xls. Requirement ID: F6.009.000 Requirement Title:International patients will be accounted for.Detailed Requirement Description:Who Patient What International demographic information When The patient has selected a country outside the US Where The demographic entry screen Why International address and phone numbers are different than US The system shall provide a means to accommodate different versions of fields (i.e. international addresses and country codes) based on the country of the Patient. How Provide two or more demographic screens that are chosen dynamically based on the selected country.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer, International FARA memberUser Impact of Requirement:Medium: Without providing the correct way to gather demographic information it would be difficult to contact people for clinical trials. The problem arises from addresses and phone numbers are not entirely universal. Also many people are offended when only the US version of such demographical information is offered, which may possibly discourage international Patients from joining the RegistryAcceptance Criteria:Login as patient. User indicates affiliation with a country other than US a different demographics screen with appropriate field settings is presented to appropriately capture information. Requirement ID: F6.010.000Requirement Title:Validation shall be done on a page-by-page basis.Detailed Requirement Description:Who Patient, Registry Coordinator What Validity check on data inputs. Fields will be checked on every page for the correct formats that will be compatible with the database fields. When During each individual next button click Where Not visible to user unless an error page is generated. Why To make sure all data entered conforms to registry needs. By the time the confirmation page is reached, all preliminary validation will be complete. . Additionally to drive which pages, and fields are available, since these are based on previous data inputs. How TBD during technical design.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: If pages were not validated page by page and error messages only appeared at the end users may become confused. Perhaps the user made another mistake but having made an earlier one, and could have avoided the second mistake by realizing the first existed. Quality of data could be compromised. Also validation is necessary to determine when additional pages and fields are necessary for the current user.Acceptance Criteria:Login as patient. Accept HIPAA. Go through each screen entering information. Challenge system through leaving fields blank and entering sham information. Once a page is complete and committed it does not accept invalid responses. Invalid responses are presented back to the patient and patient asked to enter valid response. If responses are valid but certain trigger responses are entered (date of birth consistent with age less than 18) then order of steps will adjust (guardian information screen presented). Need to run such acceptance criteria for each field on each page. Login as registry coordinator and repeat all of the above. Requirement ID: F6.011.000Requirement Title:The system shall provide a list of Pending Patients. Detailed Requirement Description:Who Registry Coordinator What List of Pending Patients. This will contain Pending Patients records that have not yet been approved for admission into the Registry. When Logged in to Registry Coordinator account Where Registry Coordinator Action for Patient Accounts Why To ensure that no patient is admitted into the registry without first being approved by a registry coordinator. How A scrollable box will have the list of Pending Patients. Registry Coordinators will be able to select a Patient from this list.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:High: Registry Coordinator would have to manually search for new Registrants. If Registry Coordinators were not required to approve new Registrants, tThis could be accomplished through querying. but However, then there is would be no reminder to coordinator to perform the validation of patient information. Because without validation patient information is in the system but not approved and therefore not being used in queries.Acceptance Criteria:Login as registry coordinator. Enter screen for Pending patients (see below). View list of pending registrants. Requirement ID: F6.011.001Requirement Title:The system shall provide a message detailing the number of pending patients upon log in. Detailed Requirement Description:Who Registry Coordinator What A message including the number of Pending Patients to be displayed on login. When Logged in to Registry Coordinator account Where Registry Coordinator Action for Patient Accounts Why So that the registry coordinator will know how many pending patients there are. How A message will display the number of pending patients.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: No reminder to coordinator to perform this function. Patient information in system but not approved and therefore not being used in queries.Acceptance Criteria:Login as registry coordinator. Note how many pending patients are seeking approval.  Requirement ID: F6.012.000Requirement Title:Registry Coordinators shall have to approve new patients before entry into the Registry.Detailed Requirement Description:Who Registry Coordinators What Patients submitted information When A New Patient has submitted data Where A Registry Coordinator Action Why To take into consideration the human aspect of the process. Before information is committed into the Registry a Registry Coordinator will have to perform a final validation and then approve the information. How Once a Registry Coordinator has brought up a New Patients data there shall be two buttons. One to commit and one to edit, in the case that something needs to be changed.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without the final check by a Registry Coordinator the chance for incomplete and incorrect information received from Patient greatly increases.Acceptance Criteria:Login as registry coordinator. Enter screen for Pending patients (see below). View list of pending registrants. Select an individual from the list. View data entered by the patient. Commit the data. Go back to the list and patient should no longer be on the list. Check the database for the status of the registrant and information entered. Login as registry coordinator. Enter screen for patient status/new registrants/verification (not sure of name). View list of pending registrants. Select and individual from the list. View data entered by the patient. Edit the information entered by the patient. Commit the data. Go back to the list and patient should no longer be on the list. Check the database for the status of the registrant and information entered. Requirement ID: F7.013.000 Requirement Title:Registry Coordinators shall be able to perform patient look-ups.Detailed Requirement Description:Who Registry Coordinator What Look for Patient records. Searchable fields indicated in the Field Attribute document. When Logged in as a Registry Coordinator and select to view a patients information. Where Registry Coordinator Action for Patient Accounts Why To allow a mechanism to quickly find Patient Record. Intended when, for instance, a user has contacted a Registry Coordinator, needing help so the Registry Coordinator will need to bring up the Patients information How There will be a few fields, indicated in the Field Attribute document that can be searched by to find a patient. The interface will allow for fields to take in Registry Coordinator search criteria and then return result(s) in a way that will allow the Registry Coordinator to choose which record to bring up. The Registry Coordinator will then be able to select that patient from the list and there will then be a summary page that contains all of that patients information. If the Registry Coordinator wishes to make changes he or she will have to choose the edit button to be brought to the editable form of the Patient data. The Registry Coordinator will then follow the same process a user follows to edit their information (i.e. going from screen to screen where every screen has a different set of informationdemographic, clinical, etc.)Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: If registry coordinator could not look up a patient records from the web application then the coordinator would have to use the database. This could introduce errors in the database. By grouping information as it is in Patient data entry changes shall be more localized. Requiring Registry Coordinators to manually choose to edit a record should prevent accidental changes when just viewing the record is necessary.Acceptance Criteria:Login as registry coordinator. Go to the patient look-up screen. Presented with searchable fields (name, etc.). Enter patient attribute and submit. Receive the patient information in the screen for review. Press Edit Information and receive the patient information beginning with the first demographics screen. Coordinator can move through following screens and identify field to edit. Requirement ID: F7.014.000Requirement Title:Registry Coordinator shall be able to query the Registry based on certain fields. Discussion on querying for registry to follow.Detailed Requirement Description:Who Registry Coordinator What The fields used for queries are defined in the Field Attribute document. Also included in the document is how these fields can be queried (ie. For location information, Registry Coordinators can query by region). There shall also be functionality to support And-ing fields or Or-ing fields For Example: The patient is from X region and has Y range of onset versus The patient has genetic confirmation or a similarly inflicted family member When Logged in as Registry Coordinator Where Registry Coordinator Action for Querying Why To allow Registry Coordinators to run queries on data provided by FA Patients. Organizations conducting clinical trials will request these results and provide Registry Coordinators with the search criteria. How Patient information is stored into a database. A User Interface is wrapped around querying mechanisms Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:High: The ability to query of the Registry is the main functionality of the system. Not fulfilling this requirement is not delivering a product.Acceptance Criteria:Login as registry coordinator. Go to Query screen. On the query screen all of the query eligible fields will be presented along with command statements for how the fields are to be treated in the query (and/or). Multiple fields will be selected for the query, run query, display list of valid results based on query. Requirement ID: F7.015.000Requirement Title:Registry Coordinators shall be able to save, load, and delete queries.Detailed Requirement Description:Who Registry Coordinator What Queries can be saved, loaded, or deleted. A query saved by one Registry Coordinator will be available for all Registry Coordinators. When Logged in as Registry Coordinator Where Registry Coordinator Action Querying Why To save time. Similar queries may be run several times. Also to create query templates, and to share querying information with other Registry Coordinators. How How queries are saved will be deferred to technical design. It will include which fields had data, what the search criteria was, and if the field was and-ed or or-ed with other fields and a label to identify the Query, provided by the Registry Coordinator.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Low: Coordinator will have to develop query each time. If this requirement is not implemented the system shall still fully function. This merely is time saver functionality.Acceptance Criteria:Login as registry coordinator. Go to Query screen. Saved queries are presented. Select a saved query, run query, check for valid results from the query. Also, select a saved query, make an edit to the saved query for the presented query fields, run the query and check for valid results from the query. Requirement ID: F7.016.000Requirement Title:Displayed query results shall allow for sorting and access to patient records.Detailed Requirement Description:Who Registry Coordinator What Query results shall display the fields indicated in the Field Attribute document, in addition to whichever fields were used in the query. There shall be an ability to sort the results by the visible fields. When After a query is run Where Registry Coordinator Action Querying Why Rearranging the data within the view provided by the interface will allow help the Registry Coordinator in analyzing the results. How The headings for a field will have an affordance to indicate it is clickable and sorting will occur when clicked. There shall also be another affordance to indicate which field is the primary field for sorting the data.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Low: Results from query will be displayed based on query features. Sorting will allow the coordinator to view the data from query based on other attributes of the data selected. Allowing Registry Coordinators to view and sort results before exporting or printing shall enhance the final product (queried list) and save coordinator time (if not available coordinator will have to perform this function manually.Acceptance Criteria:Login as registry coordinator. Go to Query screen. Run a query. View results. Select a primary sort field and select other sort fields. Review the sorted list for accuracy. Requirement ID: F8.017.000Requirement Title:The system shall support the exportation of Query Results. Detailed Requirement Description:Who Registry Coordinator What Actions that can be performed on query results. Clicking on a button can perform each action. Print Export to Excel Export to XML The fields that appear in the final results for the query screen and the exported document, including the queried data, are indicated in the Field Attribute document. For export actions the Registry Coordinator will be able to choose the name and location of the exported document. When After Query results are generated Where Bottom of the page that contains Query results Why Results of queries need to be shared. Excel was chosen as an exportable format because this is a typical way to display multiple records. XML was also chosen because more and more organizations are shifting to this approach of presenting information. How This is deferred until technical design.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:High: Not being able to put the query results into a sharable medium would be a huge impact to the registry. The process is for organizations conducting clinical trials that request information from FARA, and the results of the queries are the data that these organizations shall receive. Without a good format to share these results, representatives would have to be given access to the system, perhaps creating a fourth class of user and adding security and access concerns.Acceptance Criteria:Login as registry coordinator. Go to Query screen. Run query. Select the print feature. Review the printed product. Login as registry coordinator. Go to Query screen. Run query. Export results be able to select location for export to be saved save export as Excel file and XML file. Once exports are complete exit registry. Open exported files outside of registry application and review for accuracy and completeness of export. Requirement ID: F9.018.000 Requirement Title:The patients will have to actively confirm that his or her information is up to date when they receive the email reminder every year.Detailed Requirement Description:Who Patients What Active confirmation of information is required by the Patient annually. When Annually when the Patient is notified that he or she needs to update his or her information due to the annual email reminders, and when that Patient believes that his or her information is still up to date and that nothing needs changing. Where The confirm button will appear towards the bottom of the Confirmation screen which is accessed once a returning user logs on to the system. Why This allows the Registry Coordinator to verify that the Patient has said that his or her information is up to date. How A confirmation button will need to be clicked to verify the user has confirmed that their information is still correct.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:Medium: We will not be able to ensure that the most current/accurate demographic and clinical information available on the patient is held in the system. Therefore the power of the system will not be able to be accurately measured as it is only as good as the quality of the data that it contains.Acceptance Criteria:When user re-enters system he/she will be presented with the current data held in the registry and the user will be asked to confirm or edit. Once information is accurate and confirmed then patient will be active again for another 12 months.  Requirement ID: F9.019.000Requirement Title:The home page will have reminders to Patients that they need to keep their information up to date.Detailed Requirement Description:Who This will be visible to everyone who accesses the FARA registry homepage. What Similar to the email reminder that is set around annually, the website homepage will have a reminder to Patients to keep their information current as well as the repercussions that will result in them not having their information up to date. When The user accesses the home page. Where This will be in a prominent place on the page: at the top underneath the header. Why Having the reminder on the home page will be an additional reminder to the user. How The reminder will be in a larger colored font so that the message will be distinctive.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen Farmer and FARA memberUser Impact of Requirement:Medium: The Patients will not be reminded on the home page to update their information. Not having this continual reminder may cause them to forget to do so when their information changes.Acceptance Criteria:Go to Home page. Information clearly visible that reminds user to keep current information in the registry.  Requirement ID: F10.020.000Requirement Title:A yearly email reminder will be sent to the patients reminding them to update their information.Detailed Requirement Description:Who Patients What An email reminder will be sent to the patients reminding them to update their information. The email will include: The users authentication information Questions that will dictate to the user some reasons why their information may need to be updated (recent check up, new address, etc. Repercussions of not updating their information (they will be removed from the registry) A link to the home page where the user can login and verify their screen information is correct. The user will then proceed through all of the screens containing their information and hit confirm at the end. When The email will be sent 11 months after the date of last update based upon the date of last update field that is stored in the database. Where This will be sent to the email address provided for the email address field, which does not necessarily match the username. Why In order to ensure that the data in the registry is current these emails need to be sent to remind patients that their information needs to be updated. How Based on the Date of Last Update field it will be decided that a 11 months has gone by and an email reminder will be sent so that the information may be updated before a year has passed.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:Medium: There will be no way to communicate to the user that their information needs to updated. Registry is only useful if accurate data is captured. Therefore the process of updating information would have to be done manually which is not an efficient usage of FARA resources.Acceptance Criteria:11 months after a user submits data they will get an email reminding them to update registry information. Email will contain need for registry update, a link or reminder of the web address and authentication information. User also notified that if they do not complete this update/confirmation that they will be moved to inactive status and their previously entered information will not be used for future outreach efforts. Requirement ID: F10.021.000Requirement Title:A patient will receive consecutive email reminders that will remind him or her to update his or her information before his or her account is disabled due to inactivity.Detailed Requirement Description:Who Patient What Three email reminders will be sent to the user telling them to update their information. The format of this email reminder will be the same as above. When One email reminder will be sent once a month for 3 months; 12 months for the first reminder, 13 months for the second reminder, 14 months for the third reminder. The account will then be marked as inactive at 15 months. Where The email reminder will be sent to the email address provided by the user in the email address field and may or may not be the same as the username for the user. Why The information in the registry must be kept current. How A first email reminder will be sent and then a second and then a third. Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:Medium: The user will not get more than one reminder when their information is due to be updated. As a result, the user may forget after one reminder and then their account may be disabled. Acceptance Criteria:If information has not been updated by 12 months a reminder email will be sent. If information has not been updated by 13 months a reminder email will be sent. If information has not been updated by 14 months a final message will be sent and the user will be notified that if they do not respond the account will be moved to inactive status. Requirement ID: F10.022.000 Requirement Title:If the patient fails to update his or her information annually his or her account will be disabled due to inactivity.Detailed Requirement Description:Who Returning Patients What At 15 months, a month after the third email reminder has been sent, the patient is put on a Delinquent Report and his or her information will be still query-able. If a patient fails to update his or her information after 18 months the account will automatically disabled by the system and their information will not be query-able. That patient will then be completely locked out of the registry and will have to contact the registry coordinator for help in re-enabling their account. When A month after the third email reminder has been sent out. Where The email reminder will be sent to the email address provided by the user in the email address field and may or may not be the same as the username for the user. Why The information in the registry must be kept current. How This determination will be based upon the date of last update.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Inactive accounts containing possible invalid information will be in the registry and the integrity of the data in the registry will be compromised. If system did not inactivate then the registry coordinator would have manually review data held in database and inactivate accts according to change/submit logs. Could introduce errors.Acceptance Criteria:If information has not been updated by 18 months then the account will become inactive. Field in database will be selected. Patient account will not be pulled during subsequent queries. Requirement ID: F11.023.000Requirement Title:Authentication fields will be entered twice for validation purposes.Detailed Requirement Description:Who Patients, Registry Coordinator What Two fields are provided for the email address and password fields. When The user first chooses email address (which will be the username) and the password or that information is changed. Where During the registration/update process. Why The information must be entered twice in order to provide a form of validation on the clients side to ensure that the email address and password are correct. If there is a check to make sure these fields match there is a much better chance that we are receiving valid information. How There will be the label describing the appropriate field and then one field will be listed and then the next field will be listed below it. There will be a check to ensure that data is entered in these fields (be it the two fields for checking the email address or the two fields for checking the password).Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: The user could enter the wrong email address and/or chosen password and be unable to access their information the next time they come to the site.Acceptance Criteria:Login as patient. Accept HIPPA. Data Entry. Email and password fields are presented twice. Enter information into each field on second entry make an error. When moving to the next page and error message should be presented that the confirmation entry does not match the original. User offered opportunity to edit error and resubmit. Repeat as the registry coordinator.  Requirement ID: F11.024.000Requirement Title:Authentication information shall include a username in the form of an email address. Detailed Requirement Description:Who New Patients, Registry Coordinators What When entering email address the tip tool will document that is a critical field as the email address is also the username and used for future communications. When The user first registers with FARA it is the email address provided. Where This field will be listed with other account information Why It will be easier for the Patients who we presume will access the site annually to remember an email address rather than some other form of authentication such as a pin or username. How N/ASource of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:Medium: The user will not have a username that is easily remembered. This will result in more work for the administrator on recovering/resetting passwords for users when the users wish to access and update their information.Acceptance Criteria:Login as patient. Accept HIPPA. Data Entry. Email field (appears twice as documented in previous requirement). Enter email not consistent with email address. When moving to the next page and error message should appear. User offered opportunity to edit error and resubmit. Repeat as the registry coordinator.  Requirement ID: F11.025.000Requirement Title:If the user wishes to change their email address her or she will be given the option of resetting that new email address to their username or keeping the old email address as their username. Detailed Requirement Description:Who Existing Patients and Registry Coordinators What The email address field that will be the username authentication field. When The user wishes to change their email address. Where This option will be given to them when they login into the site wishing to access and update their current information. Why The email address of the user may change. How When they change the email address the user will be asked if they wish to also make it their new username or if they would like to keep their previously provided email address as their username.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:Medium: The user could become confused between which email address is their username if they change their email address but their old email address is still their username.Acceptance Criteria:Login as returning patient. Chose options to edit information. Go to Email field (appears twice as documented in previous requirement) Enter new email twice. When moving to the next page a message should appear asking if user wants to reset username to the new email address. Click yes to confirm. Brought back to data entry screens to continue edits and confirm. Username field in database is updated with the email address. Repeat as the registry coordinator.  Requirement ID: F11.026.000Requirement Title:Authentication information shall consist of a password. Detailed Requirement Description:Who Patients What A password will be the second-half of the user authentication. When The password field will be used to identify a Patient whenever they attempt to log in to the site Where This field will be visible during initial data entry and when editing information. Why There must be some form of authentication in order to protect the site from malicious data entry. How The password will be alphanumeric and 6 8 characters in length with no special characters.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:Medium: If a password is not required it will be much more likely that users who are not authorized to do so can access accounts. This could result in invalid and/or malicious data being entered into the registry.Acceptance Criteria:Login as patient. Accept HIPPA. Data Entry. Password field (appears twice as documented in previous requirement) Enter invalid password (less than 8 characters or specials). When moving to the next page and error message should appear. User offered opportunity to edit error and resubmit. Password field will only accept 6-8 alphanumeric characters. Requirement ID: F11.027.000Requirement Title:The system requires Registry Coordinators and Administrator accounts to meet stronger password requirements.Detailed Requirement Description:Who Registry Coordinators, Administrator What A strong password. When Password creation, or changing. When fields are validated after a Registry Coordinator has registered. Where Registry Coordinator registration form Why Because of the sensitive nature of Patient health information that is available from Registry Coordinator and Administrator accounts, a higher level of security is required. Since Registry Coordinators will interact with the system more then patients, the responsibility of remembering stronger passwords is more reasonable. How Password requirements 8 10 characters Alphanumeric character class One capital letter No special SymbolsSource of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without strict password requirements and authentication methods the system will be more vulnerable to attacks. Acceptance Criteria:Login as registry coordinator. Data Entry. Email field (appears twice as documented in previous requirement) Enter email not consistent with email address. When moving to the next page and error message should appear. User offered opportunity to edit error and resubmit. Requirement ID: F11.028.000Requirement Title:The system shall lock out users trying to log in after a predefined number of times. Detailed Requirement Description:Who Patients, Registry Coordinators, Administrator What The number of tries that a user fails to provide correct authentication information. When The user has failed to provide the correct authentication information a set number of times in a row. Where Login Interface Why The sensitive nature of Patient health information. A lower number of tries are permitted for Registry Coordinators and Administrators because more information is available from Registry Coordinator and Administrator accounts, a higher level of security is required. Since Registry Coordinators and the Administrator will interact with the system more then Patients, the responsibility of remembering stronger passwords is more reasonable. How The number of tries before the lockout will be defined in a configuration file. The number of attempts will be different for each role. (Default number of tries for a patient will be 10. Default number of tries for a Registry Coordinator or Administrator will be 4).Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without strict password requirements and authentication methods the system will be more vulnerable to attacks. Acceptance Criteria:From homepage go to login as a returning patient. Enter invalid username and/or password. Try this 10 times and verify lock out after 10th trial. Same for admin and registry coordinator (4 trials). Requirement ID: F11.029.000Requirement Title:An existing user shall be able to retrieve his or her authentication information after the user answers a security question. Detailed Requirement Description:Who Patient What A returning user will receive an email with a password reminder. When Available on the homepage when the user is not logged in. Where A link underneath the login prompt will lead to a password retrieval page where a security question will be displayed that the user will have to answer. At the top of the password retrieval page will be a notice that will inform the user the email will be sent to the email address XXXX@XXXX which is the email address that is associated with the account and if this is not the correct email address they will have to contact the registry coordinator. Why If a Patient forgets his or her login information he or she needs a way to retrieve it. Since Patients login only yearly, the probability of one forgetting his or her password is quite high. How If the user can answer the security question chosen when the account was created, in addition to providing his or her user name an email is generated and sent to the address associated with the username, containing the password. An entry will then be made in the patients change log.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without a means to retrieve forgotten passwords a Patient will not be able to keep his or her information up to date, meaning that out of date information will persist. Eventually though the account will be disabled due to inactivity. Patients could become frustrated and abandon the Registry, or create duplicated accounts, or have to contact a Registry Coordinator for help. Acceptance Criteria:On the homepage there will be an entry for existing/returning user and when the logon screen is presented they will be given option to request authentication information.With this request the user will be asked to enter security information. When request submitted with correct security response an email would be sent to the requestor with the username and password. Requirement ID: F11.030.000Requirement Title:Registry Coordinators shall have the ability to disable accounts.Detailed Requirement Description:Who Registry Coordinator What Registry Coordinators can disable accounts. When Accounts can be disabled for the following reasons: the information has not been updated in 18 months, if the patient has been asked to be removed from the registry, or if the patient has become deceased. Where Refer to the FieldAttributes.xls Why Accounts will be disabled in any case when a Patients information should not be included in querying and reporting results. How The registry coordinator sets the account from enabled to disabled.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without the ability to disable Patients accounts the Registry would soon be cluttered with unnecessary or inaccurate information.Acceptance Criteria:Registry coordinator accesses database , patient record; selects disable field box is checked (or something similar) to inactivate patient. The change log is updated. Exit database. Registry coordinator access web solution and runs a query to be sure that the patient has been inactivated and is not in query results. Requirement ID: F11.031.000 Requirement Title:The Administrator account will have a screen with the ability to reset passwords.Detailed Requirement Description:Who Administrator What Field to enter username. When A user has contacted the Administrator requesting password reset Where Administrator Action Password Reset Why This is the third method to guarantee a user will be able to log in again. The first one is the yearly email that contains a password reminder. The second is the forgotten password request, which requires the answering of a question. If a user did not keep any emails with the reminder, and cannot remember his or her question then this third method is necessary, or additional accounts will be created and the registry will flood with redundant information. How After the username is entered, and a the reset button selected the users password is set to the default and an email is triggered, telling the user to login as soon as possible to change the password.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Low: This requirement is one of three ways that users can retrieve passwords. It is considered to be the third method, so its implementation would not be required. The other methods are not completely fool proof; implementation of this is important in making sure patients will be able to login again and update information.Acceptance Criteria:Login to web solution as an administrator go to reset password screen. Perform a look-up procedure to identify correct account. Reset the password. (how does the user get the new password? Admin email or system email function) Logout. Enter the web solution as the user with new password. Requirement ID: F12.032.000Requirement Title:Registry Coordinators shall be able to run predefined reports.Detailed Requirement Description:Who Registry Coordinator What Reports. Detailed further in sub requirements When Logged into Registry Coordinator Where Registry Coordinator Action Reporting Why To allow Registry Coordinators and the FARA organization to gather statistical information. Detailed further in upon in sub requirements. How TBD the possibility of using Crystal Reports is being explored. Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without reports the registry coordinators will have to run queries on additional database fields to capture information that will be important to FARA Board and stakeholders about the performance and power of the registry. The addition of reporting features shall aid in the expansion and advertising of the Registry. Gathering these statistics by hand would take a great deal of time and effort.Acceptance Criteria:Login as registry coordinator and have access to a reports screen. This screen will list several types of reports that can be executed on demand. Requirement ID: F12.032.001Requirement Title:One predefined report shall be for Registry Flow.Detailed Requirement Description:Who Registry Coordinator What Registry Flow reports shall consist of the following criteria. Number of new patients by Quarter Referral Source When Logged in as Registry Coordinator Where Registry Coordinator Action Reporting Why The intent of this report is to gather statistics on usage of the Registry and the success of advertising it. How See super requirementSource of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:Medium: See super requirement.Acceptance Criteria:Login as registry coordinator. Go to reporting. Select Registry Flow report. Execute. Report generated that presents # of new patients in registry per quarter and the referral source. Report is in the format of X and can be printed or exported to a file (need to specify). Requirement ID: F12.032.002Requirement Title:One predefined report shall be for Demographics.Detailed Requirement Description:Who Registry Coordinator What Demographics reports shall consist of the following criteria. Gender Geographic Location Referral source Number of registrants Age Group (?) - <18, 18-40, >40 Triplet Repeat When Logged in as Registry Coordinator Where Registry Coordinator Action Reporting Why The intent of this report is to gather demographical statistics. FARA may choose to make this information public for people wanting to learn more about FA. How See super requirementSource of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:Medium: See super requirement.Acceptance Criteria:Login as registry coordinator. Go to reporting. Select Demographics report. Execute. Report generated that summarizes demographic stats of the entire cohort. Report is in the format of X and can be printed or exported to a file (need to specify). Requirement ID: F12.032.003Requirement Title:One predefined report shall be for a Contact List.Detailed Requirement Description:Who Registry Coordinator What The Contact List report shall consist of the names and emails of patients that have given permission to receive emails. When Logged in as Registry Coordinator Where Registry Coordinator Action Reporting Why The intent of this report is to build a list of people who have consented to receive information. The mailing list will be used at the discretion of FARA. How See super requirementSource of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: See super requirement.Acceptance Criteria:Login as registry coordinator. Go to reporting. Select Contact list report. Execute. Report generated that presents # of new patients in registry who indicated that it was okay to use their information for FARA communications. Report is in the format of X and can be printed or exported to a file (need to specify). Requirement ID: F12.032.004Requirement Title:One predefined report shall be for Inactive Accounts.Detailed Requirement Description:Who Registry Coordinator What The Inactive Accounts report shall consist of the number of accounts that have become inactive and why that account has become inactive whether it be due to accounts that were not updated within 18 months, patients who no longer wished to be included in the registry, or patients that had become deceased. When Logged in as Administrator/Registry Coordinator Where Registry Coordinator Action Reporting Why The intent of this report is to help Administrators/Registry Coordinators with account management. How See super requirementSource of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without some simple way to identify accounts that have become delinquent, the Registry could become inundated with out of date data. This list will allow Administrators/Registry Coordinators to keep track of inactive users without having to review each record individually.Acceptance Criteria:Login as registry coordinator. Go to reporting. Select Inactive Accounts report. Execute. Report generated that presents an inactive account list and date. Report is in the format of X and can be printed or exported to a file (need to specify). Requirement ID: F12.032.005Requirement Title:One predefined report shall be for Delinquent Accounts.Detailed Requirement Description:Who Registry Coordinator What The Inactive Accounts report shall consist of accounts that have not been updated within the past 15 months. When Logged in as Administrator/Registry Coordinator Where Registry Coordinator Action Reporting Why The intent of this report is to help Administrators/Registry Coordinators with account management so that patients that have not updated their information may be followed up on before their account is disabled and they become locked out of the registry. How See super requirementSource of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without some simple way to identify accounts that have become delinquent, the Registry could become inundated with out of date data. This list will allow Administrators/Registry Coordinators to keep track of inactive users without having to review each record individually.Acceptance Criteria:Login as registry coordinator. Go to reporting. Select DeliquentDelinquent Accounts report. Execute. Report generated that presents an inactive account list and date. Report is in the format of X and can be printed or exported to a file (need to specify). Requirement ID: F12.033.000Requirement Title:The format of reports shall be determined at the discretion of the project team.Detailed Requirement Description:Who developers What There are a few basic formatting rules. If there are only two pieces of data it can be represented by percentages in text. When there are more figures data can be represented by pie, bar or line charts. Statistical information shall be provided. Actions that can be performed on reports. Each action can be performed by clicking on a button: Print Export to PDF Export to Word / Excel When After report has been generated Where Registry Coordinator Action Reporting Why To gain benefit from generating reports, they must be in format that is easily viewed. Results of reports need to be shared. PDF was chosen as one because it is a universal format. Reports shall also be exportable into an editable form, Word or Excel, depending on which is appropriate for the data. How Exactly how results are displayed may depend on the report generation method (whether that be in a Adobe Acrobat via a pdf or if the report will be directly visible on the site). This decision has been deferred until the Technical Design Phase.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:Medium: If reports are not displayed appropriately it will be difficult to derive useful information from them. If at least the data is displayed in text format the requirement will be minimally satisfied, but a pictorial representation would be more appropriate for some forms of data.Acceptance Criteria:Report format and content will be reviewed for accuracy and ease of readability. The N for any value will always be available. Requirement ID: F13.034.000Requirement Title:Areas that cannot be edited by the Patient will be grayed out.Detailed Requirement Description:Who Patients What A field that is marked as read-only cannot be edited. When The Patient accesses their information with the intent of updating it. Where Read only fields are indicated in the FieldAttributes.xls. Why Changing certain fields may affect the integrity of the data in the database and therefore the reliability of the information being reported to pharmaceutical companies for clinical trials. How Read only fields will be grayed out.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Errors relating to specific fields may occur and the focus of updating information will not relate to the most sensitive and likely to change fields.Acceptance Criteria:Login as an existing user/patient. Choose to edit information. Specific fields should be read only and will not be able to edit fields that contain static information such as date of birth and triplet repeats. Requirement ID: F13.035.000Requirement Title:Registry Coordinators shall be able to edit any field of Patient data.Detailed Requirement Description:Who Registry Coordinators What Editable form of Patient data When Logged in as Registry Coordinator Where Editable form of Patient data Why If a Patient makes a mistake to a field that becomes read only (refer to Field Attribute document) after submission someone must have the ability to make changes. Patient will contact the Registry Coordinator to make changes. Rather then allowing Patients to edit everything to avoid this problem, this functionality is given to the Registry Coordinator, so the benefits of locking down some fields can also be realized. How No fields will be marked as un-editable for Registry CoordinatorsSource of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Because some fields become read only after the initial submission for Patients, if there is no mechanism to make changes to these fields incorrect information could be captured. It is human to err so without functionality to make changes to fields that shouldnt change the Registry will quickly be populated with likely known incorrect data, that cannot be changed, and defeating the purpose of this product.Acceptance Criteria:Login as registry coordinator. Go to patient look-up screen. Pull up patient and choose to edit information. All fields should be accessible to the registry coordinator. Edit a read-only field such as date of birth. Confirm and commit change. Logout. Login as the patient. Check the field for the correct information. Requirement ID: F14.036.000 Requirement Title:Each field shall have an instruction.Detailed Requirement Description:Who Patient, Registry Coordinator, Administrator What - Hover over tool tips will be used. For specific instructions refer to the FieldAttributes.xls. When - Tool tip at each field level as you hover over Where Editable Patient information Why To provide further clarification on the information that a field is looking for. How deferred until Technical designSource of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer, FARA memberUser Impact of Requirement:Medium: There may be confusion about what information gets entered. Compromises integrity of the data collected.Acceptance Criteria:Login as patient. Go through entire registry process checking each field for tool tips. There are instructions for all fields that are concise and informative. Access to instruction for each field is consistent.  Requirement ID: F14.037.000Requirement Title:An email link will be provided to the Patient in the event that he or she needs help understanding something.Detailed Requirement Description:Who Patient What Email link to contact Registry Coordinator for help When During each of the stages of registering information or updating information At the confirmation page when they may wish to change a field that is not read-only HIPAA confirmation page should they have questions about the actual laws that they must agree to in order to register with FARA and decline information page Where At the top of the page. Why To give additional help beyond that provided by informative text. How Provide a mailto link. Includes a pre-selected email subject to be fed into the email header that will classify the emailSource of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer, FARA memberUser Impact of Requirement:Medium: Without a mechanism to contact someone for help Patients may not be able to complete the process and will not be able to join the Registry. Or the Patient may enter incorrect information if he or she is unable to get clarification. Another possibility is that the Patient will become frustrated and simply not join the Registry. Acceptance Criteria:Login as patient. Help email links will be displayed prominently. Email address will be dynamic with mouse click to an Outlook (or other) email window. Email will be received into the FARA inbox with appropriate subject heading. Requirement ID: F14.038.000Requirement Title:Every page will have instructions explaining to the Patient what the purpose of the page is and what is needed from him or her to complete that step in the process.Detailed Requirement Description:Who Patient What Instructions that will be marked to stand out in nature being either colored or in a larger font. When Every page that a Patient is performing an action. Where At the top of the page. Additionally the same information will be captured in context help for that page, available from the footer. Why To help the Patient through the process to enter the Registry. Also an attempt to provide answers to predictable questions (for instance, why cant I edit this field anymore? How can I get it changed?) How Provide instruction text at the top of the page, and additionally in the context help page that is available from the footer. The Context Help will appear in a new window so that Patients can toggle between entering information and help. This Help page will additionally contain all the instructions for the fields that are present on that page. Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen Farmer, FARA memberUser Impact of Requirement:Without instructions a Patient may become confused. He or she will either have to rely more heavily on help from a Registry Coordinator (tying up his or her time) or will simply become frustrated and not join the Registry.Acceptance Criteria:Login as patient. Go through each screen. Instructions themselves prominent, concise, facilitate areas of focus and guide user through the process.  Requirement ID: F14.039.000Requirement Title:Should an error occur clear, concise error messages will be used to inform the user.Detailed Requirement Description:Who Patients, Registry Coordinator, Admin What A user-friendly error message consists of a clear explanation of why the error has occurred, where the problem that caused the error lies, any fields that will lead to its correction, and who to contact for further help, if necessary. When An error occurs due to incorrect entering of information into the fields. Where On any of the pages that deal with user input of information. Why This will allow the user to correct the error and continue in the process of registering/updating information for the registry. How This decision will be deferred until the Design Phase.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen Farmer and FARA member.User Impact of Requirement:Medium: The user may come to a standstill when registering/updating information due to the fact that they do not know how to correct the error that has occurred.Acceptance Criteria:Login as patient. Enter invalid entry. When invalid entries are presented or required fields are blank an error message will appear before allowing the user to continue forward. The error message will communicate to the user which field(s) contains an error, error type, and will instruct the user to fix it. Also, help/contact information will be presented. Requirement ID: F15.040.000Requirement Title:There shall be a confirmation screen to allow for over viewing information before changes are submitted. This screen shall be printable. Patients and Registry Coordinators shall be able to print the information he or she entered when they are taken to the Confirmation Screen.Detailed Requirement Description:Who Patient, Registry Coordinator What The ability to print the information that was entered. With the exception of the password all information will be displayed as entered. The password field shall appear encrypted. When After all information has been validated, before registration. Where With the control buttons on the Confirmation page. Why So that patients can have a print copy of what his or her information. How A new window popup with a printable style applied.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer and FARA member.User Impact of Requirement:Low: This will not affect data entry into the registry but does help with assuring the accuracy of the data. Often times, people find it easier to read a printed page and may find errors that were not previously realized. Acceptance Criteria:Login as patient. Go through all screens and enter data. On the summary screen when asked to review and commit/confirm information a print button will be available. Print. Check the print out for accuracy. Requirement ID: F15.041.000Requirement Title:Patients and Registry Coordinators shall receive a copy of the information he or she entered through email. Detailed Requirement Description:Who Patient, Registry Coordinator What An Email containing the values in all the fields in that users account When After the user has submitted or confirmed information Where N/A Why So that patients can have a copy of what his or her information. How Submitting the information will trigger the sending of an email.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer and FARA memberUser Impact of Requirement:Low: This will not affect data entry into the registry but does help with assuring the accuracy of the data. Patients and Registry Coordinators may review their emailed copy at a later date and realize he or she had previously made a mistake. Also serves as a reminder of his or her participation in the Registry.Acceptance Criteria:Login as patient. Go through all screens, enter data, confirm, exit application. Check patient email account for an email with all of the information entered into the registry. Requirement ID: F16.042.000Requirement Title:Links/News/Education Resources will only be made available to the patient on the home page and the page after confirmation of information.Detailed Requirement Description:Who Patient, Registry Coordinator, Administrator What Links, news, and additional information. When Only on the main pages. Where On a sidebar for the site. On the right side of the screen Why To keep the focus on entering/updating data this information will be available on the home page of the website only. That way, the user may access it before or after he/she begins the registration/update process. How Have the sidebar included only on certain pages. Links will be provided by Jen Farmer during Design Phase.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Low: If the Links and News sidebar were persistent a user may notice something interesting and navigate away from the site during the information entry process, losing everything that had been entered to date. Acceptance Criteria:Links, etc will appear in a specific section of the home page however once login to the application subsequent screens will not contain this information. After completing data entry and committing information links will be available on the final confirmation screen. Requirement ID: F17.043.000Requirement Title:The Administrator role shall manage all types of accounts.Detailed Requirement Description:Who Administrator What Administrator will have all the functionality of the Registry Coordinator role. In addition the Administrator will have functionality to manage accounts (both Patient and Registry Coordinator) When Always Where Administrator account Why There needs to be a different account type to allow for the creation of more Registry Coordinators when the Registry expands and more are needed. Account management is delegated to the Administrator account so that only one person will be managing account information. The Administrator inherits Registry Coordinator functionality because the Administrator is essentially a super Registry Coordinator and will also need the ability to perform Registry Coordinator functionality. How Administrator will have all the rights and privileges of a Registry Coordinator, plus more the additional rights to administer accounts. How accesses are implemented is deferred until technical design. Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Low: Without a separate Administrator account it would be difficult to expand to multiple Registry Coordinators. The existence of the Administrator account also removes password responsibility from the Registry Coordinators to one person.Acceptance Criteria:Login to web solution as an administrator and have access to all registry coordinator screens plus administrator screens. Requirement ID: F17.044.000Requirement Title:The Administrative account shall have a screen with the ability to create new Registry Coordinators.Detailed Requirement Description:Who Administrator What Creation of Registry Coordinator accounts. When The Registry requires more people to manage Patient accounts Where Administrator Actions Create Registry Coordinator Why There needs to be a different account type to allow for the creation of more Registry Coordinators when the Registry expands and more are needed. How The system will use the email of the new registry coordinator provided by the administrator to email out a message to the new Registry Coordinator asking him or her to register and change his or her password from the default of password. Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Low: If no separate administrative account is supported, any Registry Coordinator shall be able to create more Registry Coordinators. Giving everyone control creates more points of exploitation, and as such, security hazards.Acceptance Criteria:Login to web solution as an administrator. Got to screen for creating new accounts. Create a new account. Logout. Login as the new registry coordinator. Requirement ID: F17.044.001Requirement Title:The system shall require new Registry Coordinators to input their demographic information after being granted Registry Coordinator rights to the registry. Detailed Requirement Description:Who Registry Coordinators What Registry Coordinators will receive authentication information (user name and default password) after the Administrator creates a new Registry Coordinator record for that person. Registry Coordinator data is stored in the database but never activated or included in queries. The new Registry Coordinator will then have to input their demographic information. When A new Registry Coordinator is created. Where Email generated by Administrator creating Registry Coordinator account. On first login, first screen will be the Registry Coordinator Registration form which will allow them to change their password from the default and to input demographic information. Why To have demographic information on file. To save the Administrator time from having to input this information when he or she is creating Registry Coordinator accounts How Through the Registry Coordinator Registration form. Refer to the FieldAttributes.xls for further information on which fields the form shall contain.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Low: Registry Coordinators will need to be able to choose a password. Without requiring Registry Coordinators to register then he or she will have the password the Administrator chose, defeating the purpose of a password. Following that, this would mean that an Administrator cannot create new Registry Coordinator accounts, nullifying the purpose of the Administrator account and preventing the addition of more Registry Coordinators. The impact is minimal for demographic information. Demographic information for Registry Coordinators may be stored in another location. Acceptance Criteria:Login as an administrator and create a new registry coordinator user and password. Logout. Login as the new coordinator. First set of screens to be presented to new coordinator will be demographic data, email and password. Enter information and confirm. Then standard screens for registry coordinator will be accessible. Requirement ID: F17.045.000Requirement Title:Patients, Registry Coordinators, and the Administrator shall login through the same interface.Detailed Requirement Description:Who Patients, Registry Coordinators, Administrator What A single login interface. When Always Where The Login interface will be on the homepage of the website. Why To help Registry Coordinators keep in mind the public website. How Each user will have a role type associated with him or her. The three types are Patients, Registry Coordinators, and Administrators. The role type will dictate which interface the user will be able to access.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Low: User impact is minimal. Registry Coordinators would have go to a different login location than Patients, meaning he or she would not necessarily go in through the public website. Implementing separate interfaces may be more difficult then implementing a method to tell users apart.Acceptance Criteria:Go to home page of the registry. Login as a patient and check for appropriate access to screens. Login as a registry coordinator and check for appropriate access to screens. Login as an administrator and check for appropriate access to screens. Requirement ID: F17.045.001Requirement Title:The System shall have an authentication method that distinguishes between Patients, Registry Coordinators and the Administrator.Detailed Requirement Description:Who Patients, Registry Coordinators, Administrators What An authentication method that distinguishes between the different role types. When Always Where The Login interface Why To support the single point of login requirement. How Deferred until technical designSource of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Supports super requirement Acceptance Criteria:Go to home page of the registry. Login as a patient and check for appropriate access to screens. Login as a registry coordinator and check for appropriate access to screens. Login as an administrator and check for appropriate access to screens. Requirement ID: F18.046.000Requirement Title:People must be able to access the Registry website from the FARA website.Detailed Requirement Description:Who Anyone What Anyone should be able to access the patient registry from the FARA website. Where The FARA website. When When a user is browsing the FARA website and wants to access the patient registry. Why So that the user can navigate to the patient registry. How By providing a link within the FARA website to the patient registry.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer and FARA member.User Impact of Requirement:High: Access to the registry will be limited. The user will be highly impacted if they are not able to navigate from the FARA site to the patient registry. Without this primary means of advertising the website there will surely be many less participants. FARA members may also be unaware of the project.Acceptance Criteria:The user shall be able to click on a link on the FARA website to navigate to the patient registry website. Detailed Performance Requirements Requirement ID: P1.047.000Requirement Title:The system must be accessible and functional when visited with common web browsers. Detailed Requirement Description:Who Anyone What Anyone should be able to view the site and access its functionality when using different web browsers. Where The users web browser on their local machine. When Any time he or she chooses to access the patient registry. Why So that users using different web browsers can access the registry. How By programming in such a way as to support multiple web browsers. Which specific web browsers that will be targeted will be decided during the Tech design.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: The user will be moderately impacted if they are not able to access all the functionality of the patient registry via different browsers used on their local machine. If the website does not work with the browser that the Patient uses then the Registry will gain less members.Acceptance Criteria:The user shall be able to download multiple commonly and currently used browsers and experience the same functionality of the patient registry within each browser. Detailed Interface Requirements Requirement ID: I1.048.000Requirement Title:The System shall be stand-alone and will not interact with any other system.Detailed Requirement Description:Who The system itself. What The system comprising of and supporting the patient registry will not interface with any other system. No data from any other FARA system will be loaded initially into the Registry database (the database will be empty) Where Where the patient registry is being hosted. When Any time the patient registry is in production. Why The system has no need to interact with any other system. How The system will not contain any ability to interact with another system.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: The user should not receive much impact from this requirement, as it is a requirement for the system only. Users who have registered for other FARA services may be confused about having to create another account.Acceptance Criteria:The system shall not receive input or give output to any other system. Detailed Design Requirements Requirement ID: D1.049.000Requirement Title:Information that must be collected from the patient for the registry shall be entered using multiple screens instead of one large screen to minimize the use of scrolling top to bottom, right to left. Detailed Requirement Description:Who Patient, Registry Coordinator, Administrator What Input of patient information When Every time that patient information is collected or edited. Where The information entry screens Why To keep the screen clutter free. Ataxia patients suffer from coordination problems, making navigating a cluttered computer screen difficult. Also to not overwhelm the Patient with too much information. Additionally support the tailoring of entry screens. Based on data from previous steps, different information fields will be available for editing (example is for patients under the age of 18, requiring Guardian information too). How The information entry shall be split across several pages. Each page will have a grouping or category of information entry. After each page, validation of entered information shall occur. Data from previous screens will dictate the navigation through the screens and the available fields on the pagesSource of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without the breakdown of multiple screens the likelihood of incorrect information gathered greatly increases. Furthermore some fields drive other fields patients may be navigated through the entry process incorrectly. If all the fields that any and every patient might have to answer were all available this could lead to confusion on the part of the patient, requiring them to request help from Registry Coordinators. Acceptance Criteria:Information is presented in groups that are concise and easy to read. Once a page is complete and committed it does not accept invalid responses. If certain responses are entered then order of steps will adjust. Requirement ID: D2.050.000Requirement Title:All screens for the registry shall be easy to read and uncluttered. Detailed Requirement Description:Who Patient, Registry Coordinator What All screens for the registry When Users access the registry. Where During the data entry process and on the confirmation of data. Why To review all of the information and provide one last spot to fix errors. How The fields will be spaced far enough apart so that they are readable to the end user who may have vision problems.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without providing a final check of the data before submission Patients may have made a mistake on a previous page and not realize it until after data has been submitted, and he or she may no longer be able edit that field without the help of a Registry Coordinator.Acceptance Criteria:Once all data fields are completed a summary/confirmation screen will be presented. The user will be asked to review all information for accuracy. If edits need to be made there will be a button that allows the user to return to the data entry fields. If the information is correct the user will be able to confirm with a single button. Requirement ID: D3.051.000Requirement Title:A process shall be documented so that a question may be added/modified/deleted by a developer for the registry forms.Detailed Requirement Description:Who The developer will have access to this process. What A process to document how to add/modify/delete a question. When It has been determined that the current list of questions is not sufficient for gathering data for the FARA registry. Where Questions that occur on any of the pages found when the patient registers/updates their information. Why To allow the developer to aid FARA in having accurate and up to date questions on their forms. How This decision will be deferred until the Design Phase.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen Farmer and EDS representativeUser Impact of Requirement:Medium: The system will not be expandable or able to be modified should new information requirements be present. This would lead to inefficiently managing FARAs resources of volunteer time.Acceptance Criteria:A user document or script will be developed and available on the server for developers to access and review. Requirement ID: D5.052.000Requirement Title:The site shall have a navigation/progress indicator.Detailed Requirement Description:Who Patient What A graphical, easy to understand progress indicator. It will clearly indicate which is the current step, which steps have been completed, and approximately how many more step there are (this varies depending on data input from previous steps). When All steps of information input Where At the top of the entry screens immediately beneath the header Why To show the Patient where in the process he or she is. Additionally as a mechanism return to earlier (already completed) steps, or cancel the process altogether. How To be decided during technical design.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer and FARA member.User Impact of Requirement:Low: Without a progress indicator mechanism a Patient might become lost, or feel overwhelmed. Without navigation a Patient would not be able to back track through the process (if for instance on a later screen he or she realized he or she made a mistake on the previous screen).Acceptance Criteria:Login as patient. As user advances through the system the navigation is updated appropriately. Use navigation tool to back in the application. Will not be able to navigate forward unless screen has previously been completed. Requirement ID: D5.053.000 Requirement Title:The user shall have the option of canceling at any point and all information will then be lost.Detailed Requirement Description:Who Patients What Cancellation Method (button, etc.) When The Patient wishes to cancel his or her current action of registering/updating his or her information. Where On all pages during the process of registering/updating Why The user may wish to cancel their actions. For instance inadequate amount of time to complete or lack of access to needed information. How When the user wishes to cancel their current action he or she will select Cancel via the chosen cancellation method and all of the information/changes that they have previously entered will be lost.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Low: The user could get stuck while registering/updating their information and be forced to continue even though they may not wish to. User may navigate away from application and not be sure about status of information entered.Acceptance Criteria:Each screen should have a quit option that is easily identifiable. When selected the user should be notified that when they quit their information will not be saved.  Requirement ID: D5.054.000Requirement Title:The System shall provide navigation for Registry Coordinator and Administrator Actions.Detailed Requirement Description:Who Registry Coordinator, Administrator What A navigation mechanism to access the different Registry Coordinator actions When Logged in as Registry Coordinator or Administrator Where Registry Coordinator interface Why To reduce the amount of information on a single screen there shall be several screens from which Registry Coordinators will be able to perform their actions. How Because Registry Coordinator and Administrator Actions are non linear a tabs heuristic was chosen.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: Without an appropriate navigation mechanism, too much information would have to be displayed on a single page. If instead using links/buttons to navigate around rather then an overall navigation scheme, this would needless clicking through layers. Not implementing this will severely decrease the usability of the system.Acceptance Criteria:Login as registry coordinator/administrator. Navigation mechanisms for the respective user functions are clearly visible. User can navigate to multiple screens during a single session (e.g. from the patient look-up screen they can proceed to reports). Requirement ID: D5.055.000Requirement Title:Buttons on the page will have directional arrows to show the user which direction the buttons action will take them in the process.Detailed Requirement Description:Who Patient What Button labels indicate navigation progress When During the information entry process. Where At the bottom of the page on the buttons (i.e. back, next) Why To help clarify the function of the buttons. Primarily buttons with this distinction will be seen when the user is going through the information entry or update process from one set of information to another, for canceling their actions, and for confirming that the information is correct. They will be there just to further clarify which direction in the overall update process they will be taken by clicking that particular button. How Add directional arrows to the button labels.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer and FARA memberUser Impact of Requirement:Low: Without directions on the buttons some users may be confused as to if an action will bring him or her forward or backwards in the process. Acceptance Criteria:Navigation buttons on the page will have directional arrows to show the user which direction the buttons action will take them. Requirement ID: D6.056.000Requirement Title:A header/footer similar to those found on the FARA website will be used on the home page and subsequent pages.Detailed Requirement Description:Who Visible to anyone who is accessing the website. What A header/footer similar to that found on the FARA website. When The user accesses the website and views any of its pages. Where Header/footer shows up on all the pages of the website including the home page. Why This is to enforce the feeling that the user is accessing a FARA site and not a third party website. This will ensure that there is a uniform transition from the FARA website (where there will be a link to the patient registry) and the FARA Registry. How The specifics of the header/footer have been deferred to an action item.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer and FARA board memberUser Impact of Requirement:Medium: User will view the site as a third party site and not something that is directly associated with FARA.Acceptance Criteria:The website will be readily identified as FARA and transition from the FARA home website to the registry and will have good flow and appear part of same system. Detailed Physical and Implementation Requirements Requirement ID: PI1.058.000Requirement Title:There are minimal constraints for date and time of deploymentDetailed Requirement Description:Who Development Team What The system can be deployed at any time after it is complete. But at least one week prior to the RIT student team leaving\graduating. Where Where the patient registry is being hosted. When After the system is complete. Why So that the system will be complete before it is given for general use by the intended users. How Because of the tight schedule, only a week is budgeted for observing the product in production. Because this needs to occur before the developers graduate and leave the system must be deployed before the exam week, at least a week prior to graduation, May 27, 2006.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:High: The user will be more greatly impacted the longer the system is not deployed for their use.Acceptance Criteria:The system shall be delivered whenever it is completed. Requirement ID: PI2.059.000Requirement Title:Once data is entered it must be stored in a secure location. Physical location depends on architecture structure defined, and must also meet HIPAA requirements for PHI (personal health information).Detailed Requirement Description:Who Patients. What Patients information must be stored in a secure physical location. Where A secure location that will be determined by the architecture defined. When When the patient registry is in production. Why So that HIPAA requirements for PHI will be complied with and patients information will be protected. How This decision of how this will be done is being deferred until the Technical Design Phase.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:High: The user will be greatly impacted if their personal information is not secured from malicious attacks, or if the storage of the information is not compliant with HIPAA laws for PHI. If the product did not follow HIPAA regulations it would likely be shut down. Information could be used to stalk patients, or by spammers to gather more email address, or by scammers impersonating people conducting clinical trials or organizations similar to FARA.Acceptance Criteria:The system shall receive user input upon registration using a secure connection over the Internet. The system shall then store their information in a secure database, which is in a secure location. The location of the users information and means of security will be determined by the HIPAA laws for PHI. Requirement ID: PI2.060.000Requirement Title:A secure connection will be used after the user has logged in.Detailed Requirement Description:Who Existing Patients, Registry Coordinator, Admin What A secure connection will be used. When After returning user logs in. Where When the Login screen is passed because the user has entered the correct username and password. Why To ensure that the users information is protected and secure. How This decision will be deferred to the Technical Design Phase.Source of Requirement (Name):Jen FarmerAuthorized Approvers:Jen FarmerUser Impact of Requirement:High: The users private/personal information will not be as well protected and the user may be discouraged from participating in the registry. This also poses a risk to FARA in not being compliant with HIPAA laws.Acceptance Criteria:After login page the web address will change to a certified secure environment. Requirement ID: PI3.061.000Requirement Title:Successful completion of UAT testing is required before the solution is implemented into production.Detailed Requirement Description:Who Jen & EDS team member & FARA board What UAT testing is done by the customer (Jen and FARA Board) Where UAT testing is executed in a Model Office environment When During the Optimize phase of the project and after system testing is successfully completed and all defect from system testing have been resolved. Why To make sure that the requirements for the registry have been met per the expectations of the requirement sources and authorized approvers. How By documenting the UAT test cases and their approval. By following the Quality Management Plan to assure that the system will meet the UAT test cases driven from the Acceptance Criteria of the detailed Requirements document. By having the requirement sources and authorized approvers execute the UAT test casesSource of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer and FARA memberUser Impact of Requirement:High: The user will be greatly impacted if the system does not meet FARA board approval from UAT testing, because the system will then not be able to go into production.Acceptance Criteria:The UAT tests should be able to be traced back to the original system requirements. The successful completion of UAT tests shall indicate that the system meets its requirements. Approval from the FARA board will also be needed in order to determine successful completion of UAT testing. Requirement ID: PI4.062.000Requirement Title:Training materials and a user manual shall be completed and delivered with the product.Detailed Requirement Description:Who Development Team and customer. What Training materials and user manual for system Administrators and Registry Coordinators need to be completed and ready for use. Documentation for the developers who will take over the maintenance is included in this definition of training materials of the system. Where Materials will go to those who will administer and monitor, and use the system (excluding Patient who depend on the system itself for help and guidance). When Before the system goes into production. Why So that those who will be hosting the system after it is complete can effectively run and host it. How By providing training materials and a user manual. Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer and EDS team memberUser Impact of Requirement:Medium: The user will be moderately impacted by this requirement, because if those who are running the system are ineffective because of lack of information, they will not be able to be helpful to the users.Acceptance Criteria:Training materials and user manual shall be distributed to the people who maintain the system. Once these materials are distributed, this requirement shall be considered complete. Requirement ID: PI5.063.000Requirement Title:Successful dry run using the model office environment.Detailed Requirement Description:Who Development Team. What The system should be fully tested for production by a test run in a model environment. Where In the model office environment. When After the system is complete and has been tested. Why To make sure there are no outstanding issues that have not been detected in previous tests. How By running the system in the model environment.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer and EDS Team memberUser Impact of Requirement:High: The user will be greatly impacted if the system does not complete a successful dry run, as further delay will be needed to perform fixes on the system.Acceptance Criteria:The system runs in the model environment and satisfies all of its requirements while successfully running. Requirement ID: PI6.064.000Requirement Title:Architectural design will dictate the PI requirements.Detailed Requirement Description:Who Development Team. What The Development Team will make sure Physical and Implementation requirements comply with the architectural design chosen. Where Documents that dictate the architectural design. When After architectural design is decided upon in the Technical Design Phase. Why To make sure that PI requirements comply with the architectural design. How By completely documenting the architectural design.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen Farmer and EDS team memberUser Impact of Requirement:High: The user should not receive much impact from this requirement, as it is a requirement for the system development only.Acceptance Criteria:PI requirements reflect what has been chosen for the architectural design. Requirement ID: PI7.065.000Requirement Title:There is no one-time data load to initially load data into the database.Detailed Requirement Description:Who Development Team. What There will be no need to accommodate in the system a one time data load into the database. Where The database hosting the system. When After the system is complete and before it is deployed. Why There is no need to load data into the database at the beginning of production of the system. How By not creating the system in such a way that it handles a one-time data load at the beginning of its lifetime.Source of Requirement (Name):Jen Farmer Authorized Approvers:Jen FarmerUser Impact of Requirement:Medium: The user should not receive much impact from this requirement, as it is a requirement for the system development only. Data from other FARA services cannot be ported into this one because of HIPAA regulations. Therefore Patients who registered with the FARA website will have to create another account.Acceptance Criteria:There is no mechanism in existence for loading data into the database.Functional Business Requirements High Level Req #Description of High Level RequirementSource of High Level RequirementF1The process shall be web-based, publicly accessible, and indexed by major search engines.J.FarmerF2The system shall display a primer on the purpose and inclusion (who is the registry looking for and general information).J.FarmerF3The system shall obtain and store the consent of individuals prior to data entry (accept/decline feature).J.FarmerF4For individuals less than 18 years of age information and consent from guardian are needed. Need guardian contact information also.J.FarmerF5When previously entered information is edited, the old values are overwritten. No previous values are saved.J.FarmerF6Through the process, need to collect and store demographic and clinical data from individuals with FA.J.FarmerF7Registry coordinator will be a FARA individual who will run queries based on requests from researchers. J.FarmerF8Outputs from data queries should be in a universal format (e.g. an excel spreadsheet).J.FarmerF9Data will need to be verified and updated on annual basis to be sure it is accurate.J.FarmerF10The system shall annually send out an email, reminding patients to update their information.J FarmerF11The System shall provide some form of authentication to prevent malicious data entry.J.FarmerF12The system shall support the creation of statistical reports based on collected data.J.FarmerF13Once data is confirmed, patients will not be able to edit some of the fields.J.FarmerF14The interface will provide definitions / explanations for any vague or ambiguous parts of the form.J.FarmerF15After information is entered the system shall display a confirmation page for a user to overview what he/she has entered and allow he/she to make changes.J.FarmerF16Website will include links to additional information such as clinical trials information oreducational materials about the disease.J.FarmerF17The system will have two interfaces: one for patients and one for Registry Coordinators. Registry Coordinators have their own UI to provide their additional functionality.J. FarmerF18Patients must be able to browse to the Registry website from the FARA websiteJ.Farmer Performance Requirements High Level Req #Description of High Level RequirementSource of High Level RequirementP1The system must be accessible and functional when visited with common web browsers.J.Farmer Interface Requirements High Level Req #Description of High Level RequirementSource of High Level RequirementI1The System shall be stand alone and will not interact with any other system.J.Farmer Design Requirements High Level Req #Description of High Level RequirementSource of High Level RequirementD1The interface shall minimize the use of scrolling.J.FarmerD2The interface will be free of clutter, providing only the necessary elements in a clearly organized way.J.FarmerD3Needs to be an expandable process; needs to accommodate the addition of new data fields.J.FarmerD4Individuals with FA must be able to find and navigate the website easily. The interface must be sensitive of users with poor coordination.J.FarmerD5The interface shall provide consistent navigation.J.FarmerD6The interface will be similar in appearance to the FARA websiteJ.Farmer Physical and Implementation Requirements High Level Req #Description of High Level RequirementSource of High Level RequirementPI1There are no constraints for date and time of deployment.J.FarmerPI2Once data is entered it must be stored in a secure location. Physical location depends on architecture structure defined, and must also meet HIPAA requirements for PHI (personal health information).J.FarmerPI3Successful completion of UAT testing (approval from the FARA board needed in order for UAT testing to be completed).J.FarmerPI4Training materials and user manual are completed and rolled out.J.FarmerPI5Successful dry run using the model office environment.J.FarmerPI6Architectural design will dictate the PI requirements.J.FarmerPI7There is no one-time data load to initially load data into the database.J. Farmer The Coding Standard These standards were adapted from the RIT CS Department guidelines for Java and C#: http://www.cs.rit.edu/~fyj/java-coding-standard.html http://www.cs.rit.edu/~cs2/csharp-coding-standard.html As well as Microsofts XML Documentation found at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vcoriXMLDocumentation.asp Headings Source File All source files should begin with a c-style comment that lists the class name, version information, date, and copyright notice: /* * Classname * * Version information * * Date * * Copyright notice */ Class The following comments will appear before the definition of every class: /// /// A description of this class goes here /// /// /// /// Author /// Sean Neubert (spn9006@cs.rit.edu) /// /// /// /// The elements of a class or interface declaration should appear in the following order: Class (static) variables Instance variables Constructors Methods Public variables should be listed first, followed by protected, then internal protected, internal, and finally the private variables. Methods should be grouped by functionality. Method The following comments will appear before every method (including main): /// /// Summary of this method. /// /// /// description /// /// description of why it is /// thrown The param tag contains an attribute called name (not type) of the parameter, followed by a description of the parameter inside of the tag. The name and data type always start with a lowercase letter. The description is most usually a phrase, starting with a lowercase letter and ending without a period, unless it contains a complete sentence. The return tag is followed by a description of the return value. Whenever possible, detailed information (such as returns -1 when an out-of-bounds argument is supplied) should be provided. An exception tag should be included for any exceptions you throw. The exception tag has an attribute named "cref". This should contain the name of the type of exception thrown. The content of the tag should describe what conditions are present when the exception is thrown. Declarations Declarations per Line One declaration per line is recommended since it encourages commenting. int level; // indentation level int size; // size of table is preferred over int level, size; Placement Put declarations only at the beginning of blocks. (A block is any code surrounded by curly braces "{" and "}".) Don't wait to declare variables until their first use; it can confuse the unwary programmer and hamper code portability within the scope. The one exception to the rule is indexes of for loops. void myMethod() { int int1 = 0; // beginning of method block if (condition) { int int2 = 0; // beginning of "if" block ... } } Class and Interface Declarations There will be no space between a method name and the parenthesis "(" starting its parameter list. An open brace "{" appears at the end of the same line as the declaration statement, and the closing brace "}" starts a line by itself indented to match its corresponding opening statement, except when it is a null statement the "}" should appear immediately after the "{". Methods are separated by a blank line. class Sample extends Object { int ivar1; int ivar2; Sample(int i, int j) { ivar1 = i; ivar2 = j; } int emptyMethod() {} ... } Indentation and Line Length Indentation Four spaces should be used as the unit of indentation. The exact construction of the indentation (spaces vs. tabs) is unspecified. Tabs must be set exactly every 8 spaces. Line Length Avoid lines longer than 80 characters, since they're not handled well by many terminals and tools. When an expression will not fit on a single line, break it according to these general principles: Break after a comma. Break before an operator. Prefer higher-level breaks to lower-level breaks. Align the new line with the beginning of the expression at the same level on the previous line. If the above rules lead to confusing code or to code that's squished up against the right margin, just indent 8 spaces instead. Here are some examples of breaking method calls: someMethod(longExpression1, longExpression2, longExpression3, longExpression4, longExpression5); var = someMethod1(longExpression1, someMethod2(longExpression2, longExpression3)); Following are two examples of breaking an arithmetic expression. The first is preferred, since the break occurs outside the parenthesized expression, which is at a higher level. longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; // PREFER longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; // AVOID Following are two examples of indenting method declarations. The first is the conventional case. The second would shift the second and third lines to the far right if it used conventional indentation, so instead it indents only 8 spaces. //CONVENTIONAL INDENTATION someMethod(int anArg, Object anotherArg, String yetAnotherArg, Object andStillAnother) { ... } //INDENT 8 SPACES TO AVOID VERY DEEP INDENTS private static synchronized horkingLongMethodName(int anArg, Object anotherArg, String yetAnotherArg, Object andStillAnother) { ... } Line wrapping for if statements should generally use the 8-space rule, since conventional (4 space) indentation makes seeing the body difficult. For example: //DON'T USE THIS INDENTATION if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { //BAD WRAPS doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS } //USE THIS INDENTATION INSTEAD if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { doSomethingAboutIt(); } //OR USE THIS if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { doSomethingAboutIt(); } Here are three acceptable ways to format ternary expressions: alpha = (aLongBooleanExpression) ? beta : gamma; alpha = (aLongBooleanExpression) ? beta : gamma; alpha = (aLongBooleanExpression) ? beta : gamma; Comments Block Comments Block comments are used to provide descriptions of files, methods, data structures and algorithms. Block comments may be used at the beginning of each file and before each method. They can also be used in other places, such as within methods. Block comments inside a function or method should be indented to the same level as the code they describe. A block comment should be preceded by a blank line to set it apart from the rest of the code. /* * Here is a block comment. */ Single-Line Comments Short comments can appear on a single line indented to the level of the code that follows. If a comment can't be written in a single line, it should follow the block comment format. A single-line comment should be preceded by a blank line. Here's an example: if (condition) { /* Handle the condition. */ ... } Trailing Comments Very short comments can appear on the same line as the code they describe, but should be shifted far enough to separate them from the statements. If more than one short comment appears in a chunk of code, they should all be indented to the same tab setting. Here's an example of a trailing comment: if (a == 2) { return TRUE; /* special case */ } else { return isPrime(a); /* works only for odd a */ } End-Of-Line Comments The // comment delimiter can comment out a complete line or only a partial line. It shouldn't be used on consecutive multiple lines for text comments; however, it can be used in consecutive multiple lines for commenting out sections of code. Examples of all three styles follow: if (foo > 1) { // Do a double-flip. ... } else { return false; // Explain why here. } //if (bar > 1) { // // // Do a triple-flip. // ... //} //else { // return false; //} Statements Compound Statements Compound statements are statements that contain lists of statements enclosed in braces "{}". The enclosed statements should be indented one more level than the compound statement. The opening brace should be at the end of the line that begins the compound statement; the closing brace should begin a line and be indented to the beginning of the compound statement. Braces are used around all statements, even single statements, when they are part of a control structure, such as a if-else or for statement. This makes it easier to add statements without accidentally introducing bugs due to forgetting to add braces. Return Statements A return statement with a value should not use parentheses unless they make the return value more obvious in some way. Example: return; return myDisk.size(); return (size ? size : defaultSize); If Statements The if-else class of statements should have the following form: if (condition) { statements; } if (condition) { statements; } else { statements; } if (condition) { statements; } else if (condition) { statements; } else { statements; } For Statements A for statement should have the following form: for (initialization; condition; update) { statements; } While Statements A while statement should have the following form: while (condition) { statements; } An empty while statement should have the following form: while (condition); Do-While Statements A do-while statement should have the following form: do { statements; } while (condition); Switch Statements A switch statement should have the following form: switch (condition) { case ABC: statements; /* falls through */ case DEF: statements; break; case XYZ: statements; break; default: statements; break; } Every time a case falls through (doesn't include a break statement), add a comment where the break statement would normally be. This is shown in the preceding code example with the /* falls through */ comment. Every switch statement should include a default case. The break in the default case is redundant, but it prevents a fall-through error if later another case is added. Try-Catch Statements A try-catch statement should have the following format: try { statements; } catch (ExceptionClass e) { statements; } A try-catch statement may also be followed by finally, which executes regardless of whether or not the try block has completed successfully. try { statements; } catch (ExceptionClass e) { statements; } finally { statements; } White Space Blank Lines Blank lines improve readability by setting off sections of code that are logically related. Two blank lines should always be used in the following circumstances: Between sections of a source file Between class and interface definitions One blank line should always be used in the following circumstances: Between methods Between the local variables in a method and its first statement Before a block or single-line comment Between logical sections inside a method to improve readability Blank Spaces Blank spaces should be used in the following circumstances: A keyword followed by a parenthesis should be separated by a space. Example: while (true) { ... } Note that a blank space should not be used between a method name and its opening parenthesis. This helps to distinguish keywords from method calls. A blank space should appear after commas in argument lists. All binary operators except . should be separated from their operands by spaces. Blank spaces should never separate unary operators such as unary minus, increment ("++"), and decrement ("--") from their operands. Example: a += c + d; a = (a + b) / (c * d); while (d++ = s++) { n++; } printSize("size is " + foo + "\n"); The expressions in a for statement should be separated by blank spaces. Example: for (expr1; expr2; expr3) Casts should be followed by a blank space. Examples: myMethod((byte) aNum, (Object) x); myMethod((int) (cp + 5), ((int) (i + 3)) + 1); Naming Conventions The most important thing to remember is that variable names need to be descriptive of their role. Also, by looking at the variable name, you should be able to understand what data type the variable is. To accomplish this, an abbreviation of the data type will be at the beginning of the variable name. For example: String sFirstName; int iAge;     FARA Project  PAGE 4 EDS and the EDS logo are registered trademarks of Electronic Data Systems Corporation. 2004 EDS. All rights reserved.  PAGE 5 EDS and the EDS logo are registered trademarks of Electronic Data Systems Corporation. 2004 EDS. All rights reserved.  FILENAME FARA high_level_requirements v 4.3FARA detailed_requirements v 2 4jf.docFARA detailed_requirements v 2 4.doc  FARA Project enterprise information & technology - DW EDS \ RIT \ FARA Detailed High Level RequirementsCoding Standard FARA Registry Project Version 41.02.734 (InputFile)  DATE \@ "dddd, MMMM dd, yyyy" Saturday, February 04, 2006Thursday, January 26, 2006Wednesday, January 25, 2006 EDS INTERNAL DOCUMENT  >?MN[fhi|ĺtiS*Hh h0h0)u0J9 ƃ*jh0)uU!h0)uh0)u0J9 ƃ*0J_.Hh h0)uh0)u0J9 ƃ*0J_Hh h0)u0J_ jHh h0)u0J_UHh h0)u%h@fh0)ucHdhdhdh h@f5h@f5mHnHu h@f5CJ h@fjh@fUmHnHu     'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:$a$q3U566 !"#$%&'()*+,->?g : z 'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:'v:### v:v:v:$If @ <   {cRG{1*Hh h0h0)u0J9 ƃ*jh0)uU!h0)uh0)u0J9 ƃ*0J .Hh h0)uh0)u0J9 ƃ*0J jHh h0)uUh@f%h@fh0)ucHdhdhdh Hh h0)u h@f5h@f5mHnHu h@f0J_ jHh h0)u0J_Uh0h0)u0J9 ƃ*<h0h0)uh0)u0J9cHdhdhdh Ɖ ƃ*    ! , 9 ; < ` a b i p x y z ɿݢpj_U>,Hhˡfh@fcHdhdhdhHӡHhHӡh@fh@f5>*B*ph h@f0J9)h@fh0)u0J9cHdhdhdh Hh h0)u0J9jh@fU h@f0J_jh@f0J_U%h@fh0)ucHdhdhdh Hh h0)uh@fmHnHuh@f5mHnHuh@fjHh h0)uUh0h0)u0J9 ƃ* T X { v v:6000$Ifkde$$Ifl\}  N (%%%%04 la]p(%%%%$If S T W X c m z { ! B D G O ѷ뭷іzePP)h@fh0)ucHcHdhdhHӡdh )h@fh0)ucHcHdhdhˡfdh 6Hh ˡfh@fh0)ucHcHdhdhHӡdh ,Hhˡfh@fcHdhdhdhHӡHhHӡh@f2HhHӡh@fh0)ucHdhdhdh Hh h0)uh@fcHdhdhdhHӡh@fh@fcHdhdhdhˡf{ C D ? fkd$$Ifl\}  N 04 la]$If & > @ C D G H U d e 8 : = E F I J T _ ` 8klnqxy˱˜˱˱˱˜˱˱˱˜˱˱˱˜˱˱˱6Hhˡfh@fh0)ucHcHdhdhHӡdh )h@fh0)ucHcHdhdhHӡdh 2HhHӡh@fh0)ucHdhdhdh h@f)h@fh0)ucHcHdhdhˡfdh 6Hhˡfh@fh0)ucHcHdhdhHӡdh 2? @ D H e lffff$IfkdL$$Ifl\}  N 04 la] 9 lffff$Ifkd$$Ifl\}  N 04 la]9 : F J ` lffff$Ifkd$$Ifl\}  N 04 la] mlffff$Ifkd$$Ifl\}  N 04 la]mny}Rlffff$IfkdX$$Ifl\}  N 04 la]y|}PQSZ[^_no}~Y[bcfgtu̱nn,Hhˡfh@fcHdhdhdhHӡh@fcHdhdhdhHӡ6Hhˡfh@fh0)ucHcHdhdhHӡdh 5HhHӡh@fh0)u;cHdhdhdh 2HhHӡh@fh0)ucHdhdhdh h@f)h@fh0)ucHcHdhdhHӡdh +RS[_olffff$Ifkd$$Ifl\}  N 04 la]lffff$Ifkd$$Ifl\}  N 04 la]Zlffff$Ifkd $$Ifl\}  N 04 la]Z[cgulffff$Ifkdd $$Ifl\}  N 04 la]u!(),-:;fhĭ؝Ԇ||||e[e[e[[V h@f5Hhˡfh@f,Hhˡfh@fcHdhdhdhHӡHhʡfh@f,Hhʡfh@fcHdhdhdhHӡh@fcHdhdhdhˡf,Hhʡfh@fcHdhdhdhHӡh@fcHdhdhdhʡfh@f,Hhˡfh@fcHdhdhdhHӡh@fcHdhdhdhHӡ!lffff$Ifkd' $$Ifl\}  N 04 la] lffff$Ifkd $$Ifl\}  N 04 la] !)-;glffff$Ifkd $$Ifl\}  N 04 la]ghilj#j#'#v:CEƀMVfkdp $$Ifl\}  N 04 la]21CLQ#v:#v:#v:#v:#v: j j"jjC$If7 6>Rghvwx$zZ?jHh!h h-<>*B*UmHnHphuHh!h-<mHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHujh@fUjh@fCJUjh@fCJUjWh@fCJUjh@fCJU h@fCJ h@f5h@f QRWg<2 j, jD$If D$If^kd3$$Ifl\ 3-# `  (%%%%04 lalp(%%%%gyz{"jjcY jS j"jjD$If D$If^kd$$Ifl\ 3-# ` 04 lal D$$Ifa$lb j\ jS"jSj D$$Ifa$D$If D$If^kd$$Ifl\ 3-# ` 04 lallj#v:hK7kd!$$Ifl\ 3-# ` 04 lal$%&@ABCDEFGHdefguvwǸ؟rbrBr?jHh!h h-<>*B*UmHnHphuHh!h-<mHnHu(Hh!h h-<0J9mHnHu/Hh!h-<5;CJ\aJmHnHu1jHh!h h-<0J9UmHnHujh-<UmHnHu jaht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHuFDlJ  # C$Eƀ!H # C$Eƀ!ϹscsCsϹ2 jUht 4UmHnHu?jHh!h h-<>*B*UmHnHphuHh!h-<mHnHu(Hh!h h-<0J9mHnHu/Hh!h-<5;CJ\aJmHnHu1jHh!h h-<0J9UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHujh-<UmHnHu j[ht 4UmHnHu"#$>?@ѹѤtѤ_NN=.jh-<UmHnHu jOht 4UmHnHu!Hh!h-<mHnHu)Hh!h-<:CJaJmHnHu?jHh!h h-<>*B*UmHnHphuHh!h-<mHnHu(Hh!h h-<0J9mHnHu/Hh!h-<5;CJ\aJmHnHu1jHh!h h-<0J9UmHnHu*jHh!h-<UmHnHu@ABCDEFbcdejkvwxؿeN= jIht 4UmHnHu,Hh!h-<6CJ]aJmHnHu?jHh!h h-<>*B*UmHnHphuHh!h-<mHnHu(Hh!h h-<0J9mHnHu)Hh!h-<:CJaJmHnHu1jHh!h h-<0J9UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHuɰtTCɰt jCht 4UmHnHu?jHh!h h-<>*B*UmHnHphuHh!h-<mHnHu(Hh!h h-<0J9mHnHu,Hh!h-<6CJ]aJmHnHu1jHh!h h-<0J9UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHujh-<UmHnHuD5CMPkkkJ  # C$Eƀ!J # C$Eƀ!   /01234567ST˲tcTtDHh!h-<mHnHujh-<UmHnHu j=ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu1jHh!h h-<0J9UmHnHu?jHh!h h-<>*B*UmHnHphu(Hh!h h-<0J9mHnHuTUVYZfghƱudUuƜƱEHh!h-<mHnHujh-<UmHnHu j7ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu)Hh!h-<:CJaJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jHh!h h-<>*B*UmHnHphuƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j1ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jHh!h h-<>*B*UmHnHphu!"#=>?@ABCDEabƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j+ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jHh!h h-<>*B*UmHnHphubcdghƱudUuƜƱEHh!h-<mHnHujh-<UmHnHu j%ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu)Hh!h-<:CJaJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jHh!h h-<>*B*UmHnHphuƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu jht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jHh!h h-<>*B*UmHnHphu +,-GHIJKLMNOklƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu jht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jHh!h h-<>*B*UmHnHphulmnqrz{|ƱudUuƜƱEHh!h-<mHnHujh-<UmHnHu j ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu)Hh!h-<:CJaJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jHh!h h-<>*B*UmHnHphuƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j !ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?j Hh!h h-<>*B*UmHnHphu./0JKLMNOPQRnoƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j"ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?j!Hh!h h-<>*B*UmHnHphuopqvwƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j#ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?j"Hh!h h-<>*B*UmHnHphuPYhw0kkJ  # C$Eƀ!J # C$Eƀ!  %&ƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j#ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?j~#Hh!h h-<>*B*UmHnHphu&'(+,678RSTVWXYZ[wxƱudUuƜƱEHh!h-<mHnHujh-<UmHnHu j$ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu)Hh!h-<:CJaJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jx$Hh!h h-<>*B*UmHnHphuxyzƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j%ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jr%Hh!h h-<>*B*UmHnHphu   /0ƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j&ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jl&Hh!h h-<>*B*UmHnHphu01278EFGabcefghijƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j'ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jf'Hh!h h-<>*B*UmHnHphuƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j(ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?j`(Hh!h h-<>*B*UmHnHphu89ƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j)ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jZ)Hh!h h-<>*B*UmHnHphu9:;@ATUVpqrtuvwxyƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j*ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jT*Hh!h h-<>*B*UmHnHphuƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j+ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jN+Hh!h h-<>*B*UmHnHphu )*+-./012NOƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j,ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jH,Hh!h h-<>*B*UmHnHphuOPQTU`ab|}~ƱudUuƜƱEHh!h-<mHnHujh-<UmHnHu j-ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu)Hh!h-<:CJaJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?jB-Hh!h h-<>*B*UmHnHphuƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j.ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?j<.Hh!h h-<>*B*UmHnHphu. $ : e keeeeeeee # J  # C$Eƀ!J # C$Eƀ!    '()+,-./0LMƱsbSsƚƱCHh!h-<mHnHujh-<UmHnHu j/ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu,Hh!h-<6CJ]aJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?j6/Hh!h h-<>*B*UmHnHphuMNORSefgƱudUuƜ6=HhJӡh@fhQcHdhdhdh!mHnHujh-<UmHnHu j0ht 4UmHnHu*jHh!h-<UmHnHu!Hh!h-<mHnHu)Hh!h-<:CJaJmHnHu(Hh!h h-<0J9mHnHu1jHh!h h-<0J9UmHnHu?j00Hh!h h-<>*B*UmHnHphu " # 8 9 c d e x y !!=!>!r!s!t!u!v!zgch@f%h@fh0)ucHdhdhdh jh@fOJQJU>h@fhQ5;CJcHcHdhdhIӡdh!mHnHu4h@fhQcHcHdhdhIӡdh!mHnHu=HhJӡh@fhQcHdhdhdh!mHnHu=HhLӡh@fhQcHdhdhdh!mHnHu#e y !>!s!u!w!!!!!L$C$Eƀ Ifgd0)u # v!w!!!,"-"d"""""### # # ##{#####>$?$@$N$T$͢ͅrͅeeTFHh h0)uOJQJ!Hh hS_h0)uOJQJHh hS_h0)u%Hh h*h0)uOJQJ^JHh hDh0)u5Hh h0)uCJ$aJ$!Hh h^]Kh0)uCJ$aJ$Hh h*h0)uHh hDh0)uHh h0)u)h@fh!cHcHdhdhGӡdh%h@fh!cHdhdhdh!,"-"d"e"""ccccL$C$Eƀ Ifgd0)uP$C$Eƀ If`gd0)u""#cL$C$Eƀ Ifgd0)uP$C$Eƀ If^gd0)u# # ##########ddddddddddL$C$Eƀ Ifgd0)uO$$C$Eƀ Ifa$gd0)u ########?$@$N$x$}$$$$$%%%&%L$C$Eƀ Ifgd0)uT$%%&%'%;&K&w&x&&&&&&c'''*******6+7+8++ɺɭɭɎ}qbUUD!Hh h^]Kh0)uOJQJHh h^]Kh0)uHh h^]Kh0)u5Hh h0)u5!Hh h^]Kh0)uCJ$aJ$Hh h0)uCJ$aJ$!Hh hDh0)uOJQJHh hDh0)uHh hDh0)u5Hh h0)uHh hS_h0)uHh h0)uOJQJ!Hh hS_h0)uOJQJ&%'%%%%%%K&w&x&&&ccccccO & F%$C$Eƀ Ifgd0)uL$C$Eƀ Ifgd0)u &&&&&' 'A'E'''()*****7+8+X+L$C$Eƀ Ifgd0)uX+t++++++,,,- -5-j-v-|-~----;/L$C$Eƀ Ifgd0)u+++,,,~-----..U.`....//;/D>>>>>>>????? @@@@@@@AŴťŘŘŘŘŘťŘŘŘŘt!Hh hsLh0)uOJQJ%Hh hsLh0)uOJQJ^JHh hsLh0)uHh hsLh0)u5!Hh h^]Kh0)uCJ$aJ$Hh h0)uHh h*h0)u%Hh h*h0)uOJQJ^JHh h0)uOJQJ^J-666666 7]777777Z8[8x8888-909L$C$Eƀ Ifgd0)u0919P9o9999999':P:j:m::::;4;5;V;L$C$Eƀ Ifgd0)uV;f;y;z;;;;;S=T=W=s=dO$$C$Eƀ Ifa$gd0)uL$C$Eƀ Ifgd0)u s=w=x===>>>>>>>>>>@@@M@V@@L$C$Eƀ Ifgd0)u@@@@@AAAAAAAA)B+BWXXYYYYY2ZTZ[\\=\J\`\l\\]]X^j^t^u^^^^Wbvbbbbb3dIdeӷrӷ, *h@fh!cHcHdhdhGӡdh,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh,TTTT/UgUUVV$Ifjkd1$$Ifl40# % 04 lf4VVVVV$Ifjkdq2$$Ifl40# % 04 lf4VVW!W$Ifjkd 3$$Ifl40# % 04 lf4!W"W>WX$Ifjkd3$$Ifl40# % 04 lf4XXXY$Ifjkd94$$Ifl40# % 04 lf4YYYYY$Ifjkd4$$Ifl40# % 04 lf4YYY1Z$Ifvkdi5$$Ifl40# % 04 lf4p1Z2ZTZuZZ[V[[\$Ifjkd6$$Ifl40# % 04 lf4\\=\H\I\$Ifjkd6$$Ifl40# % 04 lf4I\J\`\k\$IfjkdH7$$Ifl40# % 04 lf4k\l\\]$Ifjkd7$$Ifl40# % 04 lf4]]]T^$Ifjkdx8$$Ifl40# % 04 lf4T^U^V^X^j^u^$Ifjkd9$$Ifl40# % 04 lf4u^v^^^$Ifvkd9$$Ifl40# % 04 lf4p^^^^__`FaWb$IfjkdW:$$Ifl40# % 04 lf4WbXbvbbb$Ifjkd:$$Ifl40# % 04 lf4bbbb$Ifjkd;$$Ifl40# % 04 lf4bbb3d$Ifjkd<$$Ifl40# % 04 lf43d4dIdee$Ifjkd<$$Ifl40# % 04 lf4e e ee'e$IfjkdO=$$Ifl40# % 04 lf4e e ee&e'e;eseehhhhhhiijjjjkkkmkk{nnnnnnooqqqqqqqJrmr9s`sӷӷӷr, *h@fh!cHcHdhdhGӡdh,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh,'e(e;ese$Ifvkd=$$Ifl40# % 04 lf4pseteeeff^ggh$Ifjkd>$$Ifl40# % 04 lf4hhhhh$Ifjkd.?$$Ifl40# % 04 lf4hhhh$Ifjkd?$$Ifl40# % 04 lf4hhhi$Ifjkd^@$$Ifl40# % 04 lf4iiij$Ifjkd@$$Ifl40# % 04 lf4jjjjk$IfjkdA$$Ifl40# % 04 lf4kkkmk$Ifvkd&B$$Ifl40# % 04 lf4pmknkkk4llcmm{n$IfjkdB$$Ifl40# % 04 lf4{n|nnn$IfjkdmC$$Ifl40# % 04 lf4nnnn$IfjkdD$$Ifl40# % 04 lf4nnno$IfjkdD$$Ifl40# % 04 lf4oooq$Ifjkd5E$$Ifl40# % 04 lf4qqqqq$IfjkdE$$Ifl40# % 04 lf4qqqJr$IfvkdeF$$Ifl40# % 04 lf4pJrKrmr{rass?ttBu$IfjkdG$$Ifl40# % 04 lf4`sBuauluuuuvvxxx'x1x2xFxpxx_{~{{{{{||~~~~$~%~9~~~6UaxVlӼrꠉr,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph,h@fh!<cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh)h@fh!cHcHdhdhGӡdh,BuCuaulu$IfjkdG$$Ifl40# % 04 lf4lumuuu$IfjkdDH$$Ifl40# % 04 lf4uuuv$IfjkdH$$Ifl40# % 04 lf4vvvx$IfjkdtI$$Ifl40# % 04 lf4xxx'x2x$Ifjkd J$$Ifl40# % 04 lf42x3xFxpx$IfvkdJ$$Ifl40# % 04 lf4ppxqxxxyyyFG$Eƀ+ʡfIf$IfjkdSK$$Ifl40# % 04 lf4yyyyo'G$Eƀ+ʡfIfG$Eƀ+ʡfIfG$Eƀ+ʡfIfy z!z1zo'G$Eƀ+ʡfIfG$Eƀ+ʡfIfG$Eƀ+ʡfIf1z=zFzUzo'G$Eƀ+ʡf IfG$Eƀ+ʡf IfG$Eƀ+ʡfIfUzzz_{`{~{{{jkdK$$Ifl40# % 04 lf4$If{{{{$IfjkdL$$Ifl40# % 04 lf4{{{|$IfjkdM$$Ifl40# % 04 lf4|||}~$IfjkdM$$Ifl40# % 04 lf4~~~~%~$IfjkdKN$$Ifl40# % 04 lf4%~&~9~~$IfvkdN$$Ifl40# % 04 lf4p~~~~6$IfjkdO$$Ifl40# % 04 lf467U`a$Ifjkd*P$$Ifl40# % 04 lf4abx$IfjkdP$$Ifl40# % 04 lf4V$IfjkdZQ$$Ifl40# % 04 lf4VWl$IfjkdQ$$Ifl40# % 04 lf4,7$IfjkdR$$Ifl40# % 04 lf4,67KЃ܅CV[zņ!7>QԈ=PRSVhstىċ,I؍ʎˎߎ4ηηη-h@fh!CJcHcHdhdhGӡdh,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh678K$Ifvkd"S$$Ifl40# % 04 lf4pЃFG$Eƀ+ʡfIf$IfjkdS$$Ifl40# % 04 lf4؄o'G$Eƀ+ʡfIfG$Eƀ+ʡfIfG$Eƀ+ʡfIfo'G$Eƀ+ʡfIfG$Eƀ+ʡfIfG$Eƀ+ʡfIf+D\o'G$Eƀ+ʡf IfG$Eƀ+ʡf IfG$Eƀ+ʡfIf\ԅ0[\zFjkdiT$$Ifl40# % 04 lf4$IfG$Eƀ+ʡf IfjkdU$$Ifl40# % 04 lf4$Ifņ!$IfjkdU$$Ifl40# % 04 lf4!"7R$Ifjkd1V$$Ifl40# % 04 lf4RSTVht$IfjkdV$$Ifl40# % 04 lf4tu$IfvkdaW$$Ifl40# % 04 lf4pىMr[ċ$IfjkdX$$Ifl40# % 04 lf4ċŋ$IfjkdX$$Ifl40# % 04 lf4,$Ifjkd@Y$$Ifl40# % 04 lf4,-I؍$IfjkdY$$Ifl40# % 04 lf4؍ٍ$IfjkdpZ$$Ifl40# % 04 lf4ˎ$Ifjkd[$$Ifl40# % 04 lf4ˎ̎ߎ$Ifvkd[$$Ifl40# % 04 lf4p4X"am$IfjkdO\$$Ifl40# % 04 lf4$Ifjkd\$$Ifl40# % 04 lf4ґݑ-./AKM`ʘ 3ǙӷmQ6Hhʡfh@fh!cHcHdhdhGӡdh6Hhʡfh@fh!cHcHdhdhGӡdh,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdhґݑ$Ifjkd]$$Ifl40# % 04 lf4ݑޑ+$Ifjkd^$$Ifl40# % 04 lf4-$Ifjkd^$$Ifl40# % 04 lf4-./AL$IfjkdG_$$Ifl40# % 04 lf4LM`$Ifvkd_$$Ifl40# % 04 lf4pԖc̗Bɘ$Ifjkd`$$Ifl40# % 04 lf4ɘʘ$Ifjkd&a$$Ifl40# % 04 lf4 $Ifjkda$$Ifl40# % 04 lf43$IfjkdVb$$Ifl40# % 04 lf4Ǚșʙ˙ j|ȳȞȞȞ䞇kT=,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph-h@fh!CJcHcHdhdhGӡdh)h@fh!cHcHdhdhGӡdh)h@fh!cHcHdhdhʡfdh6Hhʡfh@fh!cHcHdhdhGӡdh6Hhˡfh@fh!cHcHdhdhGӡdhh$Ifjkdb$$Ifl40# % 04 lf4hij|$Ifjkdc$$Ifl40# % 04 lf4$Ifvkdd$$Ifl40# % 04 lf4p4I$Ifjkdd$$Ifl40# % 04 lf4ȝԝ&ڡ%Ң̥ͥΥAdƫҫѭVWXjtuܯӷӷӠӷ,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh3$Ifjkdee$$Ifl40# % 04 lf4ȝӝ$Ifjkde$$Ifl40# % 04 lf4ӝԝ$Ifjkdf$$Ifl40# % 04 lf4$Ifjkd-g$$Ifl40# % 04 lf4$Ifjkdg$$Ifl40# % 04 lf4&$Ifvkd]h$$Ifl40# % 04 lf4p 3 $Ifjkd i$$Ifl40# % 04 lf4ڡ$Ifjkdi$$Ifl40# % 04 lf4$Ifjkd*cHcHdhdhGӡdh-***++$Ifjkd$$Ifl40# % 04 lf4++,+-+/+A+M+$Ifjkd/$$Ifl40# % 04 lf4M+N+a++$Ifvkd$$Ifl40# % 04 lf4p++++,,FG$Eƀ+ʡfIf$Ifjkdv$$Ifl40# % 04 lf4,0,@,V,o'G$Eƀ+ʡfIfG$Eƀ+ʡfIfG$Eƀ+ʡfIfV,v,,,,--oiiii$IfG$Eƀ+ʡfIfG$Eƀ+ʡfIf----$Ifjkd$$Ifl40# % 04 lf4----$Ifjkd$$Ifl40# % 04 lf4--.#.$Ifjkd>$$Ifl40# % 04 lf4#.$.9.0/$Ifjkd$$Ifl40# % 04 lf40/1/2/D/P/$Ifjkdn$$Ifl40# % 04 lf4P/Q/d//$Ifvkd$$Ifl40# % 04 lf4p////T0}00M1i1$Ifjkd$$Ifl40# % 04 lf4i1j1111$IfjkdM$$Ifl40# % 04 lf41111$Ifjkd$$Ifl40# % 04 lf41111$Ifjkd}$$Ifl40# % 04 lf4112D3$Ifjkd$$Ifl40# % 04 lf4D3E3F3H3Z3f3$Ifjkd$$Ifl40# % 04 lf4f3g3z33$IfvkdE$$Ifl40# % 04 lf4p3333&5]5556$Ifjkd$$Ifl40# % 04 lf4336/6;6R6]6z6778888888919D;c;o;;;;<<==)=====>ӷtXӷ6Hhˡfh@fh!cHcHdhdhGӡdh)h@fh!cHcHdhdhˡfdh,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh"66/6:6;6$Ifjkd$$Ifl40# % 04 lf4;6<6R6]6$Ifjkd$$$Ifl40# % 04 lf4]6^6z67$Ifjkd$$Ifl40# % 04 lf47778$IfjkdT$$Ifl40# % 04 lf488888$Ifjkd$$Ifl40# % 04 lf48889$Ifvkd$$Ifl40# % 04 lf4p9919K999$:(;D;$Ifjkd3$$Ifl40# % 04 lf4D;E;c;n;o;$Ifjkd$$Ifl40# % 04 lf4o;p;;;$Ifjkdc$$Ifl40# % 04 lf4;;;<$Ifjkd$$Ifl40# % 04 lf4<<<=$Ifjkd$$Ifl40# % 04 lf4=====>$Ifjkd+$$Ifl40# % 04 lf4>>>f>>mBBBBBBBC8DNDDDDDDDE?EbE)FI?ISIIIJJBLҽҽҽҽҽҽҽsҽҽsҽҽҽҽҽsҽҽs,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph, *h@fh!cHcHdhdhGӡdh)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh,h@fh!6cHcHdhdhGӡdh->>>f>$Ifvkd$$Ifl40# % 04 lf4pf>g>>>??@FG$Eƀ+ʡfIf$Ifjkdr$$Ifl40# % 04 lf4@@)@P@~@ABoiiii$IfG$Eƀ+ʡfIfG$Eƀ+ʡfIfBBBB$Ifjkd $$Ifl40# % 04 lf4BBBB$Ifjkd$$Ifl40# % 04 lf4BBC8D$Ifjkd:$$Ifl40# % 04 lf48D9DNDD$Ifjkd$$Ifl40# % 04 lf4DDDDD$Ifjkdj$$Ifl40# % 04 lf4DDE?E$Ifvkd$$Ifl40# % 04 lf4p?E@EbEpEEE>FG-G$Ifjkd$$Ifl40# % 04 lf4-G.GLGWGXG$IfjkdI$$Ifl40# % 04 lf4XGYGoGzG$Ifjkd$$Ifl40# % 04 lf4zG{GG5H$Ifjkdy$$Ifl40# % 04 lf45H6HKHI$Ifjkd$$Ifl40# % 04 lf4III!I3I?I$Ifjkd$$Ifl40# % 04 lf4?I@ISII$IfvkdA$$Ifl40# % 04 lf4pIIIII'JMJKBL$Ifjkd$$Ifl40# % 04 lf4BLCLaLlLmL$Ifjkd$$Ifl40# % 04 lf4BLaLmLLLLMMONeNOOOOOOOOO"PPPPPQQQQQ R}RRhSiSlS~SSSS T/TVVVVWWqXXlYmYnYYYYӼӠӼӉӉӠӠ,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph,h@fh!6cHcHdhdhGӡdh)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh6mLnLLL$Ifjkd $$Ifl40# % 04 lf4LLLON$Ifjkd$$Ifl40# % 04 lf4ONPNeNO$IfjkdP$$Ifl40# % 04 lf4OOOOO$Ifjkd$$Ifl40# % 04 lf4OOOO$Ifvkd$$Ifl40# % 04 lf4pOP"PUPPPQoQQ$Ifjkd/$$Ifl40# % 04 lf4QQQQQ$Ifjkd$$Ifl40# % 04 lf4QQQQ$Ifjkd_$$Ifl40# % 04 lf4QQ R}R$Ifjkd$$Ifl40# % 04 lf4}R~RRhS$Ifjkd$$Ifl40# % 04 lf4hSiSjSlS~SS$Ifjkd'$$Ifl40# % 04 lf4SSS T$Ifvkd$$Ifl40# % 04 lf4p T T/T=TxTTTFG$Eƀ+ʡfIf$Ifjkdn$$Ifl40# % 04 lf4T!UUU&VVoiii$IfG$Eƀ+ʡfIfG$Eƀ+ʡfIfVVVVV$Ifjkd$$Ifl40# % 04 lf4VVVW$Ifjkd$$Ifl40# % 04 lf4WWWqX$Ifjkd6$$Ifl40# % 04 lf4qXrXXlY$Ifjkd$$Ifl40# % 04 lf4lYmYnYYY$Ifjkdf$$Ifl40# % 04 lf4YYYEZ$Ifvkd$$Ifl40# % 04 lf4pYYEZhZ]]^^5^R^2_H_______`g``c c+cBc^c{cd3deeeeeeeeӷӷm6Hhʡfh@fh!cHcHdhdhGӡdh,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh$EZFZhZvZZ[[y\]$Ifjkd$$Ifl40# % 04 lf4]]]^$IfjkdE$$Ifl40# % 04 lf4^^^5^$Ifjkd$$Ifl40# % 04 lf45^6^R^2_$Ifjkdu$$Ifl40# % 04 lf42_3_H__$Ifjkd $$Ifl40# % 04 lf4_____$Ifjkd$$Ifl40# % 04 lf4__`g`$Ifvkd=$$Ifl40# % 04 lf4pg`h```aa>bbc$Ifjkd$$Ifl40# % 04 lf4cc c+c$Ifjkd$$Ifl40# % 04 lf4+c,cBc^c$Ifjkd$$Ifl40# % 04 lf4^c_c{cd$Ifjkd$$Ifl40# % 04 lf4dd3de$IfjkdL$$Ifl40# % 04 lf4eeeee$Ifjkd$$Ifl40# % 04 lf4eeef$Ifvkd|$$Ifl40# % 04 lf4pee=fDfYfff ghii5iQiniNjdj2k3k6kHkSkȬȗkkkkkkO8,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph-h@fh!CJcHcHdhdhGӡdh)h@fh!cHcHdhdhGӡdh)h@fh!cHcHdhdhʡfdh6Hhˡfh@fh!cHcHdhdhGӡdh6Hhʡfh@fh!cHcHdhdhGӡdh6Hhʡfh@fh!cHcHdhdhGӡdhff g.gg0hmhhh$Ifjkd+$$Ifl40# % 04 lf4hhiii$Ifjkd$$Ifl40# % 04 lf4ii5iQi$Ifjkd[$$Ifl40# % 04 lf4QiRiniNj$Ifjkd$$Ifl40# % 04 lf4NjOjdj2k$Ifjkd$$Ifl40# % 04 lf42k3k4k6kHkTk$Ifjkd#$$Ifl40# % 04 lf4TkUkhkk$Ifvkd$$Ifl40# % 04 lf4pSkUkhkkkEmcmpmmmmnoooooopp~rrrrrrs#ss tuuu.u9u:uNuuunyyyyyyzҽҽҽҽҽҽҽҽsҽҽҽҽҽҽҽҽҽҽ, *h@fh!cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh,h@fh!6cHcHdhdhGӡdh-kkkllllllDm$Ifjkdj$$Ifl40# % 04 lf4DmEmcmnmom$Ifjkd$$Ifl40# % 04 lf4ompmmm$Ifjkd$$Ifl40# % 04 lf4mmmn$Ifjkd2$$Ifl40# % 04 lf4nnoo$Ifjkd$$Ifl40# % 04 lf4ooooo$Ifjkdb$$Ifl40# % 04 lf4ooop$Ifvkd$$Ifl40# % 04 lf4pppppq%qiqGr~rr$Ifjkd$$Ifl40# % 04 lf4 rrrrr$IfjkdA$$Ifl40# % 04 lf4rrrs$Ifjkd$$Ifl40# % 04 lf4ss#ss$Ifjkdq$$Ifl40# % 04 lf4ssss tu$Ifjkd $$Ifl40# % 04 lf4uuuu.u:u$Ifjkd$$Ifl40# % 04 lf4:u;uNuu$Ifvkd9$$Ifl40# % 04 lf4puuuuvvvxny$Ifjkd$$Ifl40# % 04 lf4nyoyyyy$Ifjkd$$Ifl40# % 04 lf4yyyy$Ifjkd$$Ifl40# % 04 lf4yyyz$Ifjkd$$Ifl40# % 04 lf4zzzX{$IfjkdH$$Ifl40# % 04 lf4zzX{Y{Z{l{w{x{{{|l~~~~~~hil~:]'gх(ijk}*5RsӷӷӠӷ,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh6X{Y{Z{l{x{$Ifjkd$$Ifl40# % 04 lf4x{y{{{$Ifvkdx$$Ifl40# % 04 lf4p{{|(|\|||t}l~$Ifjkd'$$Ifl40# % 04 lf4l~m~~~~$Ifjkd$$Ifl40# % 04 lf4~~~~$IfjkdW$$Ifl40# % 04 lf4~~~$Ifjkd$$Ifl40# % 04 lf4h$Ifjkd$$Ifl40# % 04 lf4hijl~$Ifjkd $$Ifl40# % 04 lf4:$Ifvkd $$Ifl40# % 04 lf4p:;]y˄g$Ifjkdf $$Ifl40# % 04 lf4gh$Ifjkd $$Ifl40# % 04 lf4$Ifjkd $$Ifl40# % 04 lf4х$Ifjkd. $$Ifl40# % 04 lf4(i$Ifjkd $$Ifl40# % 04 lf4ijk}$Ifjkd^ $$Ifl40# % 04 lf4$Ifvkd $$Ifl40# % 04 lf4pTvȊ$Ifjkd$$Ifl40# % 04 lf4$Ifjkd=$$Ifl40# % 04 lf4*5$Ifjkd$$Ifl40# % 04 lf456Rs$Ifjkdm$$Ifl40# % 04 lf4st~$Ifjkd$$Ifl40# % 04 lf4~3VkՐ#%8 -C`|ĕVhrtݖ균균균r,h@fh!<cHcHdhdhGӡdh,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph-h@fh!CJcHcHdhdhGӡdh)h@fh!cHcHdhdhGӡdh,~$Ifjkd$$Ifl40# % 04 lf43$Ifvkd5$$Ifl40# % 04 lf4p34V Ek$Ifjkd$$Ifl40# % 04 lf4kl$Ifjkd|$$Ifl40# % 04 lf4$Ifjkd$$Ifl40# % 04 lf4Ր$Ifjkd$$Ifl40# % 04 lf4$IfjkdD$$Ifl40# % 04 lf4$$Ifjkd$$Ifl40# % 04 lf4$%8$Ifvkdt$$Ifl40# % 04 lf4py$Ifjkd#$$Ifl40# % 04 lf4 +,$Ifjkd$$Ifl40# % 04 lf4,-C_$IfjkdS$$Ifl40# % 04 lf4_`|$Ifjkd$$Ifl40# % 04 lf4ĕ/$Ifjkd$$Ifl40# % 04 lf4/013UVhs$Ifjkd$$Ifl40# % 04 lf4stܖ$Ifvkd$$Ifl40# % 04 lf4pܖݖ {>$Ifjkdb$$Ifl40# % 04 lf4  $Ifjkd$$Ifl40# % 04 lf4 #/Ki~EWacvěݝ*F%:ӟnפqrs ȩөӷӠӷӷ,h@fh!5cHcHdhdhGӡdh,h@fh!6cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh6  #.$Ifjkd$$Ifl40# % 04 lf4./Kh$Ifjkd*$$Ifl40# % 04 lf4hi~"$Ifjkd$$Ifl40# % 04 lf4"#$DEWb$IfjkdZ$$Ifl40# % 04 lf4bcvÛ$Ifvkd$$Ifl40# % 04 lf4pÛěMܝ$Ifjkd$$Ifl40# % 04 lf4ܝݝ$Ifjkd9 $$Ifl40# % 04 lf4)$Ifjkd $$Ifl40# % 04 lf4)*F$$Ifjkdi!$$Ifl40# % 04 lf4$%:$Ifjkd"$$Ifl40# % 04 lf4$Ifjkd"$$Ifl40# % 04 lf4ӟ$Ifvkd1#$$Ifl40# % 04 lf4pZ:n$Ifjkd#$$Ifl40# % 04 lf4no$Ifjkdx$$$Ifl40# % 04 lf4$Ifjkd%$$Ifl40# % 04 lf4פ$Ifjkd%$$Ifl40# % 04 lf4q$Ifjkd@&$$Ifl40# % 04 lf4qrs$Ifjkd&$$Ifl40# % 04 lf4$Ifvkdp'$$Ifl40# % 04 lf4p 0Tv $Ifjkd($$Ifl40# % 04 lf4$Ifjkd($$Ifl40# % 04 lf4ȩө$IfjkdO)$$Ifl40# % 04 lf4өԩ$Ifjkd)$$Ifl40# % 04 lf4i$Ifjkd*$$Ifl40# % 04 lf4ijk}59Xczy/dճ3Ph~`adu[zŹghi균균균,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph-h@fh!CJcHcHdhdhGӡdh)h@fh!cHcHdhdhGӡdh6ijk}$Ifjkd+$$Ifl40# % 04 lf4$Ifvkd+$$Ifl40# % 04 lf4p5k*9$Ifjkd^,$$Ifl40# % 04 lf49:Xc$Ifjkd,$$Ifl40# % 04 lf4cdz$Ifjkd-$$Ifl40# % 04 lf4y$Ifjkd&.$$Ifl40# % 04 lf4yz$Ifjkd.$$Ifl40# % 04 lf4$IfjkdV/$$Ifl40# % 04 lf4/d$Ifvkd/$$Ifl40# % 04 lf4pdeճ$Ifjkd0$$Ifl40# % 04 lf4ճֳ$Ifjkd51$$Ifl40# % 04 lf43$Ifjkd1$$Ifl40# % 04 lf434Ph$Ifjkde2$$Ifl40# % 04 lf4hi~`$Ifjkd2$$Ifl40# % 04 lf4`abdu$Ifjkd3$$Ifl40# % 04 lf4$Ifvkd-4$$Ifl40# % 04 lf4p&P[$Ifjkd4$$Ifl40# % 04 lf4[\z$Ifjkdt5$$Ifl40# % 04 lf4$Ifjkd 6$$Ifl40# % 04 lf4Ź$Ifjkd6$$Ifl40# % 04 lf4g$Ifjkd<7$$Ifl40# % 04 lf4ghi{$Ifjkd7$$Ifl40# % 04 lf4i{+BMj̿DcoPf/;Rs  ͶͶͶͶ)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph6$Ifvkdl8$$Ifl40# % 04 lf4p?̼$Ifjkd9$$Ifl40# % 04 lf4*+$Ifjkd9$$Ifl40# % 04 lf4+,BM$IfjkdK:$$Ifl40# % 04 lf4MNj$Ifjkd:$$Ifl40# % 04 lf4̿$Ifjkd{;$$Ifl40# % 04 lf4$Ifjkd<$$Ifl40# % 04 lf4$Ifvkd<$$Ifl40# % 04 lf4pUD$IfjkdZ=$$Ifl40# % 04 lf4DEcno$Ifjkd=$$Ifl40# % 04 lf4op$Ifjkd>$$Ifl40# % 04 lf4P$Ifjkd"?$$Ifl40# % 04 lf4PQf$Ifjkd?$$Ifl40# % 04 lf4$IfjkdR@$$Ifl40# % 04 lf4$Ifvkd@$$Ifl40# % 04 lf4p&g$IfjkdA$$Ifl40# % 04 lf4/:;$Ifjkd1B$$Ifl40# % 04 lf4;<Rs$IfjkdB$$Ifl40# % 04 lf4st$IfjkdaC$$Ifl40# % 04 lf4$IfjkdC$$Ifl40# % 04 lf4 $IfjkdD$$Ifl40# % 04 lf4  \$Ifvkd)E$$Ifl40# % 04 lf4p ]3?[ *,?*!=QbmnZyӷӷm6Hhˡfh@fh!cHcHdhdhGӡdh,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh*\]#W|$IfjkdE$$Ifl40# % 04 lf4$IfjkdpF$$Ifl40# % 04 lf43>$IfjkdG$$Ifl40# % 04 lf4>?[$IfjkdG$$Ifl40# % 04 lf4 $Ifjkd8H$$Ifl40# % 04 lf4   +$IfjkdH$$Ifl40# % 04 lf4+,?$IfvkdhI$$Ifl40# % 04 lf4p*9r$IfjkdJ$$Ifl40# % 04 lf4$IfjkdJ$$Ifl40# % 04 lf4 $IfjkdGK$$Ifl40# % 04 lf4 !=$IfjkdK$$Ifl40# % 04 lf4M$IfjkdwL$$Ifl40# % 04 lf4MNOQbn$IfjkdM$$Ifl40# % 04 lf4no$IfvkdM$$Ifl40# % 04 lf4pBgZ$IfjkdVN$$Ifl40# % 04 lf4Z[y$IfjkdN$$Ifl40# % 04 lf4$IfjkdO$$Ifl40# % 04 lf4$IfjkdP$$Ifl40# % 04 lf4$IfjkdP$$Ifl40# % 04 lf4 "5-I .@KM` ,=OZ\oӷӷӷӷ,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdh6!$IfjkdNQ$$Ifl40# % 04 lf4!"5$IfvkdQ$$Ifl40# % 04 lf4p&d$IfjkdR$$Ifl40# % 04 lf4$Ifjkd-S$$Ifl40# % 04 lf4,$IfjkdS$$Ifl40# % 04 lf4,-I$Ifjkd]T$$Ifl40# % 04 lf4 *$IfjkdT$$Ifl40# % 04 lf4*+,.@L$IfjkdU$$Ifl40# % 04 lf4LM`$Ifvkd%V$$Ifl40# % 04 lf4pJ$IfjkdV$$Ifl40# % 04 lf4$IfjkdlW$$Ifl40# % 04 lf4$IfjkdX$$Ifl40# % 04 lf4$IfjkdX$$Ifl40# % 04 lf4$Ifjkd4Y$$Ifl40# % 04 lf4$IfjkdY$$Ifl40# % 04 lf4 $IfvkddZ$$Ifl40# % 04 lf4p  ,Df$Ifjkd[$$Ifl40# % 04 lf4$Ifjkd[$$Ifl40# % 04 lf4$IfjkdC\$$Ifl40# % 04 lf4$Ifjkd\$$Ifl40# % 04 lf49$Ifjkds]$$Ifl40# % 04 lf49:;=O[$Ifjkd ^$$Ifl40# % 04 lf4[\o$Ifvkd^$$Ifl40# % 04 lf4pb<v$IfjkdR_$$Ifl40# % 04 lf4wrPr/MZp|/PӷoR9HhHӡh@fh!5CJcHdhdhdh2HhHӡh@fh!cHdhdhdh,h@fh!6cHcHdhdhGӡdh,h@fh!5cHcHdhdhGӡdh6h@fh!B*CJcHcHdhdhGӡdhph)h@fh!cHcHdhdhGӡdh-h@fh!CJcHcHdhdhGӡdhvw$Ifjkd_$$Ifl40# % 04 lf4$Ifjkd`$$Ifl40# % 04 lf4q$Ifjkda$$Ifl40# % 04 lf4qr$Ifjkda$$Ifl40# % 04 lf4$IfjkdJb$$Ifl40# % 04 lf4O$Ifvkdb$$Ifl40# % 04 lf4pOPrT.$Ifjkdc$$Ifl40# % 04 lf4./MXY$Ifjkd)d$$Ifl40# % 04 lf4YZp{$Ifjkdd$$Ifl40# % 04 lf4{|$IfjkdYe$$Ifl40# % 04 lf4.$Ifjkde$$Ifl40# % 04 lf4./Pa $$Ifa$jkdf$$Ifl40# % 04 lf4UOOO$Ifkd!g$$Ifl44Ft"X 0    4 laf4p|vvv$Ifkdh$$Ifl4Ft"X 0    4 laf4 fg8 c+EFmn  ʓʓʓʓ}Hh h0)u0JUHh h0)u9HhHӡh@fh!5CJcHdhdhdh2HhJӡh@fh!cHdhdhdh2HhHӡh@fh!cHdhdhdh6HhHӡh@fh!CJcHdhdhdh)|vvv$Ifkdh$$Ifl4Ft"X 0    4 laf4|vvv$Ifkdyi$$Ifl4Ft"X 0    4 laf4|vvv$Ifkd'j$$Ifl4Ft"X 0    4 laf4|vvv$Ifkdj$$Ifl4Ft"X 0    4 laf4|vvv$Ifkdk$$Ifl4Ft"X 0    4 laf4^g|vvv$Ifkd1l$$Ifl4Ft"X 0    4 laf4ghk|vvv$Ifkdl$$Ifl4Ft"X 0    4 laf4+4|vvv$Ifkdm$$Ifl4Ft"X 0    4 laf4459|vvv$Ifkd;n$$Ifl4Ft"X 0    4 laf4|vvv$Ifkdn$$Ifl4Ft"X 0    4 laf4OX|vvv$Ifkdo$$Ifl4Ft"X 0    4 laf4XY]|vvv$IfkdEp$$Ifl4Ft"X 0    4 laf4js|vvv$Ifkdp$$Ifl4Ft"X 0    4 laf4stx|vvv$Ifkdq$$Ifl4Ft"X 0    4 laf4 |vvv$IfkdOr$$Ifl4Ft"X 0    4 laf4|vvv$Ifkdr$$Ifl4Ft"X 0    4 laf48I|75, $$Ifa$DC$EƀJӡkds$$Ifl4Ft"X 0    4 laf4IoLFFF$IfkdYt$$Ifl44Ft"X 0    4 laf4p $$Ifa$ |75, $$Ifa$DC$EƀJӡkdUu$$Ifl4Ft"X 0    4 laf4AbcfLFFF$Ifkdv$$Ifl44Ft"X 0    4 laf4p $$Ifa$|75, $$Ifa$DC$EƀJӡkdv$$Ifl4Ft"X 0    4 laf4 *+.ajLFFF$Ifkdw$$Ifl44Ft"X 0    4 laf4p $$Ifa$jkn|vvv$Ifkdx$$Ifl4Ft"X 0    4 laf4=F|vvv$IfkdWy$$Ifl4Ft"X 0    4 laf4FGJ|vvv$Ifkdz$$Ifl4Ft"X 0    4 laf4|vvv$Ifkdz$$Ifl4Ft"X 0    4 laf4 #cl|vvv$Ifkda{$$Ifl4Ft"X 0    4 laf4lmn|75, $$Ifa$DC$EƀJӡkd|$$Ifl4Ft"X 0    4 laf4.7LFFF$Ifkd|$$Ifl44Ft"X 0    4 laf4p $$Ifa$78< |vvv$Ifkd}$$Ifl4Ft"X 0    4 laf4 |vvv$Ifkdg~$$Ifl4Ft"X 0    4 laf4|vvv$Ifkd$$Ifl4Ft"X 0    4 laf4$|vvv$Ifkd$$Ifl4Ft"X 0    4 laf4$%)`i|vvv$Ifkdq$$Ifl4Ft"X 0    4 laf4ijn|vvv$Ifkd$$Ifl4Ft"X 0    4 laf4|4#v:GC$Eƀ gd0)ukd́$$Ifl4Ft"X 0    4 laf4-g#v:g#v:GC$Eƀ gd0)uPC$Eƀ!gdQo!d&F.cd67>?@AM#$*tuv[\]qɼ֯ɼ֜ɏ֏~p~p~֏Hh h0)uOJQJ!Hh hS_h0)uOJQJHh hS_h0)u%Hh h*h0)uOJQJ^JHh h^]Kh0)uHh h*h0)uHh hDh0)uHh h0)uHh h0)u*Hh h0)uh0)u ƃ*0JU&-.cd#v:k#v:#v:k#v:#v:#v:#v:KC$Eƀ `gd0)uGC$Eƀ gd0)u67#v:k#v:GC$Eƀ gd0)uKC$Eƀ ^gd0)u7@Ad#v:GC$Eƀ gd0)uS$C$Eƀ a$gd0)uo d&FAMN g#v:g#v:g#v:g#1g#1g#1g#1g#1g#1g#1GC$Eƀ gd0)uPC$Eƀ gd0)uo d&F #$*+uv#1#1#v:g#v:#v:#v:#1#1#1#1PC$Eƀ gd0)uo d&FGC$Eƀ gd0)u 0<HM\]#1#1#1#1#1#1#1#1#v:l#[l#[l#[K & F%C$Eƀ gd0)uGC$Eƀ gd0)u #[#Y#[l#v:GC$Eƀ gd0)uK & F%C$Eƀ gd0)u,;?w{g#v:g#v:g#v:g#1g#1g#1g#1g#1g#1g#1GC$Eƀ gd0)uPC$Eƀ gd0)uo d&F       # l m n            7 =     )JPqrŻudu!Hh h+3h0)uOJQJHh h+3h0)u!Hh h^]Kh0)uOJQJHh h^]Kh0)u5Hh h0)u5Hh h^]Kh0)uHh h0)uHh h0)uCJ$aJ$Hh hDh0)uHh h0)uOJQJ!Hh hDh0)uOJQJ#+  #1#v:#v:#v:o#GC$Eƀ gd0)uGC$Eƀ gd0)u   # $ m n      g#v:g#v:g#v:g#v:g#v:g#1g#1g#1g#1g#v:GC$Eƀ gd0)uPC$Eƀ gd0)uo d&F1      U V k    g#v:g#v:g#v:g#1g#1g#1g#1g#1g#1g#1GC$Eƀ gd0)uPC$Eƀ!gd0)uo!d&F     qr#1#v:g#v:#v:#v:#1#1#1#1#1PC$Eƀ!gd0)uo!d&FGC$Eƀ gd0)u #1#1#1#1#1#1#1#1l#J$C$Eƀ!a$gd0)uGC$Eƀ gd0)u r89E  >?@))*xzɼɯɼɯɯɯɯɯɯɼɼɼyyɼ%Hh hsLh0)uOJQJ^JHh h0)uOJQJ^J%Hh h*h0)uOJQJ^JHh h*h0)uHh hsLh0)uHh h0)uHh h^]Kh0)uHh!h0)uCJ$aJ$!Hh h2xh0)uOJQJ/89d#v:GC$Eƀ gd0)uS$C$Eƀ!a$gd0)uo!d&F9EFg#v:g#v:g#v:g#v:g#v:GC$Eƀ gd0)uPC$Eƀ!gd0)uo!d&F*  #[#[#[#[#Yh#v:KhC$Eƀ ^hgd0)uK & F!C$Eƀ gd0)u ?@()?@o#v:#v:#1#1#1#1#1#1#1#v:#v:#1#1#1#1#1#1#v:#v:#1#1GC$Eƀ gd0)u&()V cfg#1#1#1#1#1#1#1#1#1#1#v:#v:#v:#1#1#1#1#1#1#1#1GC$Eƀ gd0)u ]>jk#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#v:GC$Eƀ gd0)ud#v:GC$Eƀ gd0)uS$C$Eƀ!a$gd0)uo!d&F1g#v:g#v:g#v:g#1g#1g#1g#1g#v:g#v:GC$Eƀ gd0)uPC$Eƀ!gd0)uo!d&F z1BDEF   !!!!9":">"?"""K$L$^$_$`$$$$&%v%w%x%跤zzi!Hh h1Uh0)uOJQJHh h1Uh0)u5Hh h1Uh0)uHh!h0)uCJ$aJ$%Hh h*h0)uOJQJ^JHh h*h0)u!Hh hsLh0)uOJQJ%Hh hsLh0)uOJQJ^JHh h0)uHh hsLh0)u)EF#v:#1#1#1#1#1#v:g#v:#v:#v:PC$Eƀ!gd0)uo!d&FGC$Eƀ gd0)u FT  !#1#1#1#1#1#v:g#v:#v:#v:#1PC$Eƀ!gd0)uo!d&FGC$Eƀ gd0)u !!!&!(!/!_!a!r!u!!!!!!!#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1GC$Eƀ gd0)u!!!#aS$C$Eƀ!a$gd0)uo!d&F1J$C$Eƀ!a$gd0)u!!!!L$M$#v:g#v:#v:#v:PC$Eƀ!gd0)uo!d&FGC$Eƀ gd0)uM$_$`$$$$$%%&%'%5%g#v:g#v:g#v:g#1g#1g#1g#1g#1g#v:GC$Eƀ gd0)uPC$Eƀ!gdo!d&F 5%6%w%x%%%%%%%%%%%%%&"&+&;&=&?&#v:#v:#v:#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#v:GC$Eƀ gd0)ux%=&&&&&''')'*'+'d'e'f'y'''''7(8(9((((n*o****++ ,h,j,----- ...r0s0t0x0y00000000Ƹ׫ממממ!Hh hfuh0)uOJQJHh h|h0)uHh hfuh0)uHh h0)uOJQJ!Hh hqsh0)uOJQJHh h0)uHh h1Uh0)u!Hh h1Uh0)uOJQJ7?&N&O&&&&&&&&&'g#v:g#v:g#1g#1g#1g#1g#v:g#v:g#v:GC$Eƀ gd0)uPC$Eƀ!gdo!d&F '''('*'+'e'f'y'z'''#v:#1#1#1#1#v:#v:#1#v:g#v:PC$Eƀ!gdo!d&FGC$Eƀ gd0)u '''''''((8(9(N(#v:#v:#1#1#1#v:g#v:#v:#v:#1PC$Eƀ!gdo!d&FGC$Eƀ gd0)u N(X(h((((((((((((((((n*o*#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#v:#v:GC$Eƀ gd0)uo********++++g#v:g#v:g#v:g#1g#1g#1g#1g#1g#1g#1GC$Eƀ gd0)uPC$Eƀ!gdo!d&F ++++++++,#1#1#1#1#1#1#v:dS$C$Eƀ!a$gdo!d&F1GC$Eƀ gd0)u, , ,,g#v:g#v:GC$Eƀ gd0)uPC$Eƀ!gd!oo!d&F,,,B-S-----#[#[#[#[#[#[#[l#v:GC$Eƀ gd0)uK & F$C$Eƀ gd0)u- . .H.g#v:g#v:GC$Eƀ gd0)uPC$Eƀ!gd!oo!d&FH......#[l#1l#1l#1l#v:GC$Eƀ gd0)uK & F"C$Eƀ gd0)u.W//s0#v:h#[h#K & F"C$Eƀ gd0)uKC$Eƀ ^gd0)us0t000000000O1n1o1#v:#1#1#1#1#1#1#1#v:l#[#1#v:K & F#C$Eƀ gd0)uGC$Eƀ gd0)u 000S1T1n1111112222222S3p3q3r3t3u3w3x3z3{3}33333333໮ɡɡɐzvlfl[lh-<0JmHnHu hQ0JjhQ0JUhQ hQCJht 4jht 4Uh@f!Hh hh0)uOJQJHh hh0)uHh hfuh0)uHh!h!oCJ$aJ$Hh h0)uHh h|h0)u!Hh hfuh0)uOJQJHh h0)uOJQJ#o1112#[l#1l#1GC$Eƀ gd0)uK & F#C$Eƀ gd0)u222#aS$C$Eƀ!a$gd!oo!d&F1J$C$Eƀ!a$gd0)u22D3E3R3S3f3p3q3s3t3v3w3#v:#v:#v:#v:#v:#1#1ommmmH & FC$EƀIӡGC$Eƀ gd0)u w3y3z3|3}33334444 5 555'5(5Q5R5S5T5U5V5W5)$a$)-*. $$dNa$ )$&dPa$334444444444444 5 5 555&5(5Q5T5U5Y5j5555ɭygL5HhKӡhQh0)ucHdhdhdh h"hQcHdhdhdhKӡh hQCJht 4 hQCJjhQUmHnHu*hQcHdhdhdhʡfmHnHu7HhʡfhQcHdhdhdhDӡmHnHuHhLӡhQmHnHujhQUh-<0JmHnHujhQ0JUhQ hQ0JW5X5Y5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{5|5}5~555555,]5555555555555555Ⱦx_B,+hQ5B*cHdhdhdhˡfph8Hh$ˡfhQ5B*cHdhdhdhKӡph1hQh0)u5B*cHdhdhdh ph+hQ5B*cHdhdhdhKӡphHh hQ5B*ph>HhKӡhQh0)u5B*cHdhdhdh phhQ5B*ph hQ5 hQCJ( hQCJ(h hQhHh hQh(hQh0)ucHdhdhdh h5555556 6$6>6Y6Z6[66666666666Ǧ|pf^j{hQUhQB*CJphhQ5B*CJphhQ5OJQJh@f8hQh@fCJcHcHdhdhDӡdhmHnHuAHhLӡhQh@fCJcHdhdhdhmHnHu"Hh hQCJmHnHu hQCJjhQCJU hQ6hQhQ5B*OJQJph55555[6\6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6A$a$r6s6t6u6v6w6x6y6z6{6|6}6~666666666666666661$7$8$H$,66666H & FC$EƀIӡ6 00&PP/ =!"#8$8%@@+0&P/ =!^"#8$8%@@(&P/ =!^"#8$8%@@DyK src9472ens6412@rit.eduyK .mailto:src9472@rit.eduDyK ens6412tmk1698@rit.eduyK .mailto:ens6412@rit.eduDyK ens6412@rit.eduyK .mailto:ens6412@rit.edu"$$If]!vh5 555N #v #v#v#vN :V l (%%%%05 555N 4a]p(%%%%$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]$$If]!vh5 555N #v #v#v#vN :V l05 555N 4a]"$$Ifl!vh5 5` 55#v #v` #v#v:V l (%%%%05 5` 554alp(%%%%tDeCheck1$$Ifl!vh5 5` 55#v #v` #v#v:V l05 5` 554alhDe$$Ifl!vh5 5` 55#v #v` #v#v:V l05 5` 554alhDe$$Ifl!vh5 5` 55#v #v` #v#v:V l05 5` 554al}DyK _Toc126789276}DyK _Toc126789276}DyK _Toc126789277}DyK _Toc126789277}DyK _Toc126789278}DyK _Toc126789278}DyK _Toc126789279}DyK _Toc126789279}DyK _Toc126789280}DyK _Toc126789280}DyK _Toc126789281}DyK _Toc126789281}DyK _Toc126789282}DyK _Toc126789282}DyK _Toc126789283}DyK _Toc126789283}DyK _Toc126789284}DyK _Toc126789284}DyK _Toc126789285}DyK _Toc126789285}DyK _Toc126789286}DyK _Toc126789286}DyK _Toc126789287}DyK _Toc126789287}DyK _Toc126789288}DyK _Toc126789288}DyK _Toc126789289}DyK _Toc126789289}DyK _Toc126789290}DyK _Toc126789290}DyK _Toc126789291}DyK _Toc126789291}DyK _Toc126789292}DyK _Toc126789292}DyK _Toc126789293}DyK _Toc126789293}DyK _Toc126789294}DyK _Toc126789294}DyK _Toc126789295}DyK _Toc126789295}DyK _Toc126789296}DyK _Toc126789296}DyK _Toc126789297}DyK _Toc126789297}DyK _Toc126789298}DyK _Toc126789298}DyK _Toc126789299}DyK _Toc126789299}DyK _Toc126789300}DyK _Toc126789300}DyK _Toc126789301}DyK _Toc126789301}DyK _Toc126789302}DyK _Toc126789302}DyK _Toc126789303}DyK _Toc126789303}DyK _Toc126789304}DyK _Toc126789304}DyK _Toc126789305}DyK _Toc126789305}DyK _Toc126789306}DyK _Toc126789306$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4p$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5 5#v #v:V l405 54af4$$If!vh5X55 #vX#v#v :V l44 05X55 4f4p$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l44 05X55 4f4p$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l44 05X55 4f4p$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l44 05X55 4f4p$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l44 05X55 4f4p$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4$$If!vh5X55 #vX#v#v :V l405X55 4f4Ddx ` SYR  c .A logob娢x !pn娢x !pPNG  IHDRx'"sBITO`PLTE:hNp|*\7bqeCiꤱZxYxw~ebKGDHIDATx[뚣 UPQ}"e:ѺqME8&!7,KHHHHHHHHHP( Fݷ14"@⫝̸jɢjp叜,jYOɊfbe/#rXRjV{6`ͥbjA{%+}եR^ p}ڃ,^t O;ݼ4XhHYhq+V 8=2ȺNW[p<35"Xx ?-ҪIOh 8 a)pb7ifux^ږ.em?NʂVsN9ӷR`QLuWDQ˓©ObUzBX~ Go6Hi@%uc T/B-ԬƂd//{8B‹,FD@:ԔꚌb;aM}"pTWtb"\G6)A/] -jll=#rM:q-ݕ-yad9T*\}ʼn+)@> Page NumberOJQJtH uHOH Main Body Copy Level 2fO!f !Main Body Copy Level 2 - 1st Para ^nOAn Body Copy Bullets Level 2! & F ^`@@@ TOC 1 xx5;OJQJ\:@: TOC 2 ^ :OJQJ<@< TOC 3 ^6OJQJ]>@> TOC 4 !X^XCJOJQJaJ>@> TOC 5 " ^ CJOJQJaJ>@> TOC 6 #^CJOJQJaJ>@> TOC 7 $^CJOJQJaJ>@> TOC 8 %x^xCJOJQJaJ>@> TOC 9 &@^@CJOJQJaJNY@rN  Document Map'-D M OJQJ>O>  Hidden Text( <B*ph4@4 Header ) !4 @4 Footer * !NON Cover Title+X5B*CJ OJQJphPOPCover Subtitle,_HmHnHsH tH uNON Document Title -$da$ CJOJQJ<O< copyright .$da$CJ,O, URL/$a$5LOL  Graphic Label0B*CJOJQJphJO!"J Major Head - Medium 1 & FD"@D Caption2*xx`* 5CJ\VO2V Bullets 23 & F<<OJQJ_HmH sH tH B1@BB List Number4 & F<<BORB Owners5dBQ]OJQJ4OQb4 Cover Date6CJFB@rF Body Text 7(x_HmH sH tH fOrf Heading 08$$$*5@ CJ$OJQJ_HmHnHsH tH u6U@6 Hyperlink >*B*phXOaX Appendix Head - Large Char : & FH.@H  TOA Heading;x5CJ\^JaJFV@F FollowedHyperlink >*B* ph0K@0 Salutation=FOF  Pull Quote >dH 6@CJPOP Caption-Italic?$a$@B* CJphPO!P Main Body Copy Level 3 @p^p@O@ SubjectA$x]a$CJZO!Z Main Body Copy CharOJQJ_HmH sH tH ufO2f  TableHeadingC$$PPa$5CJOJQJ_HmH sH tH FOBF  TableText D_HmH sH tH \C@R\ Body Text Indent E^6B*CJ]aJph6@b6  Footnote TextF@&@q@ Footnote ReferenceH*0O0 Normal-1H0O0 Normal-3I<DP@D Body Text 2J< B*CJphbOb Appendix Head - SmallK$a$5CJOJQJ\^JB'@B Comment ReferenceCJaJfOrf Header Line 2M !B<#5@ CJOJQJ_HmH sH tH dOdFooter StatementN#CJOJQJ_HmHnHsH tH u8O8 bullet O & FOJQJzOz Open Issue<P & F h8x&d P ^`5CJOJQJBOB Bullet2Q & F (xOJQJDO"D Bullet R$_HmH sH tH 4@24  Comment TextSH@BH  Balloon TextTCJOJQJ^JaJxOQx Major Head - Large Char Char(B*CJ OJQJ_HmH phsH tH uVORaV Appendix Head - Large Char Char@j@12@ Comment SubjectW5\RR@R Body Text Indent 2Xhdx^h@+@@  Endnote TextYxOJQJ>*@> Endnote ReferenceH*ZS@Z Body Text Indent 3[dh^ CJ^JaJPOP Org Name\d@(B*CJEHOJQJphJ>@J Title]5CJ8OJQJ_HmH sH tH @Q@@ Body Text 3^$a$OJQJO ctePOP Char Char2"5CJ OJQJ_HmH sH tH u4O4 TableRow a<<8O"8 BodyText bxxCJF0@2F List Bulletc & FxxCJJOBJ Normal Table Textd CJOJQJ !"#$%&'()*      !"#$%&'()*+,-..+;0A,a123   4 9(/- 5<+67` d$7#86!:)9.":$;,1 &< 2*=->)%%(0&'8 "34'5#/!*=>?@.?B@ !"#$%&'()*      !"#$%&'()*+,-.1      !"#$%&'()*+,-./0123456789:;<=>?@AB!"#.,+!"#&-w.8e  !"#$%&'()*+,->?g:zTX{CD?@DHe9:FJ`mny}RS[_oZ[cgu ! ) - ; g h i 2   1 C L Q R W g y z {  F D5CMPYhw0. $:ey>suw,-de  ?@Nx}&'Kwx AE !"""""7#8#X#t######$$$% %5%j%v%|%~%%%%;'<'Z'i'x'y''''''''''(((((((())))U*** + +I+t+v+++++,,, - -9-x-y-h.i....... /]//////Z0[0x0000-10111P1o1111111'2P2j2m222234353V3f3y3z33333S5T5W5s5w5x5556666666666888M8V88888899999999):+:<:?:Z:d:h:q:::::::==)=*==========>A>B>S>c>e>f>w>>>>>>>>>>>?? ???J?K?u????????????/@0@C@D@X@Y@@@@@@@@@AAA"A2AJAKAUAeApAqA{AAAAAAAAA8C9CNCOCCCCCCCC\DbDrDDDDDDDDDDD}EEEF FaFFFFFFGcGxGGGG$HaH@IAIRInIsIIIIIIJ;JOPPPQQQQQQQ1R2RTRuRRSVSSTT=THTITJT`TkTlTTUUUTVUVVVXVjVuVvVVVVVVWWXFYWZXZvZZZZZZZZ3\4\I\]] ] ]]'](];]s]t]]]^^^__``````````aaabbbbcccmcnccc4ddcee{f|ffffffffgggiiiiiiiJjKjmj{jakk?llBmCmamlmmmmmmmnnnppp'p2p3pFpppqpppqqqqqq r!r1r=rFrUrrr_s`s~sssssssstttuvvvv%v&v9vvvvvwy6y7yUy`yaybyxyyyyVzWzlz{{{,{7{8{K{{{{{||||||}}+}D}\}}}}0~[~\~z~~~~~~~~!"7RSTVhtuفMr[ăŃ,-I؅مˆ̆߆4X"am҉݉މ+-./ALM`Ԏc̏Bɐʐ 3hij|4Iȕӕԕ& 3 ڙ %Қ'̝͝ΝABd8qPƣѣңӣѥVWXjuv .I'u;lBϫګ۫ܫ¬ !4{|HqBJKituvcdydzȳ۳*+Mh?[5@A]ѹܹݹ,-Ojк׺9ps̽ͽν vmnzrs!,-@7DEcno{| 3@fE-%z^ J012CQRe L7|}<=R +,?=HIJ`kl#$978Z)xu+78K /af_`~uv[\]nz{@l8%%&Hs+w*56R$z{0tklHIJ\hi|,t J p q         ] ^ _ t Z[}Kfg1"#?01Sn;yz{  c     `!|!}!!!!!!!!"""+#,#-#/#A#M#N#a#####$$0$@$V$v$$$$%%%%%%%%%&#&$&9&0'1'2'D'P'Q'd'''''T(}((M)i)j)))))))))))*D+E+F+H+Z+f+g+z+++++&-]---../.:.;.<.R.].^.z.///00000001111K111$2(3D3E3c3n3o3p3333344455555666f6g6667788)8P8~89::::::::;8<9<N<<<<<<<=?=@=b=p===>>?-?.?L?W?X?Y?o?z?{??5@6@K@AAA!A3A?A@ASAAAAAA'BMBCBDCDaDlDmDnDDDDDOFPFeFGGGGGGGGH"HUHHHIoIIIIIIIIII J}J~JJhKiKjKlK~KKKK L L/L=LxLLL!MMM&NNNNNNNNOOOqPrPPlQmQnQQQQQERFRhRvRRSSyTUUUVVV5V6VRV2W3WHWWWWWWWXgXhXXXYY>ZZ[[ [+[,[B[^[_[{[\\3\]]]]]]]^^ _.__0`m````aaaa5aQaRanaNbObdb2c3c4c6cHcTcUchccccdlddddDeEeceneoepeeeeeffgggggggghhhhi%iiiGj~jjjjjjjjkk#kkkkk lmmmm.m:m;mNmmmmmnnnpnqoqqqqqqqqqrrrXsYsZslsxsysssst(t\ttttulvmvvvvvvvvvwwwhxixjxlx~xxxx:y;y]yyyz{||g}h}}}}}}}}}(ijk}TvȂ*56Rst~34V EklՈ$%8y +,-C_`|č/013UVhst܎ݎ {>   #./Khi~"#$DEWbcvÓēMܕݕ)*F$%:ӗZ:noלqrs 0Tv ȡӡԡijk}5k*9:Xcdzyz/deի֫34Phi~`abdu&P[\zűghi{?̴*+,BMNj̷ȸɸʸ̸޸UDEcnopPQf&g/:;<Rst  \]#W|3>?[   +,?*9r !=MNOQbnoBgZ[y!"5&d,-I *+,.@LM`J  ,Df9:;=O[\ob<vwqrOPrT./MXYZp{|./Pa^ghk+459OXY]jstx 8Io Abcf *+.ajkn=FGJ #clmn.78< $%)`ijn-.cd67@AMN #$*+uv0<HM\],;?w{+  #$mn  UVkqr89EF*    ? @      ( )    ? @ o       &()V cfg ]>jkEFT&(/_aruLM_`&'56wx"+;=?NO(*+efyz  8 9 N X h                n"o""""""""###########$ $ $$$$B%S%%%%% & &H&&&&&&W''s(t(((((((((O)n)o)))****D+E+R+S+f+p+q++++,,,, - ---'-U-V-Y-j-------[..........00000000000000000000000000000000000000000000-0-0-0-0-0-0-00z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z 0z00z00z00z00z00z00z00z00z00z0000i 70i 70i 70i 70i 70i C0i  C0i  C0i  C0i  0i  D0i  D0i  D0i  D0i  0i  D0i  D0i  D0i  D0i  0i  D0i  D0i  D0i  D0i  0i  70i K0i 0i 0i 0i 0i  0i  0i  0i 0i  0i  0i 0i  0i  0i 0i  0i  0i  0i  0i 0i  0i  0i  0i  0i  0i  0i  0i  0i 0i  0i  0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i % 0i % 0i % 0i % 0i % 0i % 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i ! 0i ! 0i ! 0i ! 0i ! 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i $ 0i $ 0i $ 0i $ 0i $ 0i $ 0i $ 0i 0i 0i 0i 0i " 0i 0i 0i 0i 0i 0i " 0i " 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i # 0i 0i 0i # 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i 0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i )0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i )0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i )0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i )0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i )0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i 0i 0i 0i 0i 0i (0i (0i (0i 0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i (0i 0i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 0i 0i 80i 80i 80i 80i 80i 80i 80i 80i 0i 0i 80i 80i 80i 80i 80i 80i 80i 80i 0i 0i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 0i 0i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i 80i  0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i  0i 07( 070A0A0A0A0A0A0A0A0A0A0A0A0A( 070000000000000000% 0% 0% 0% 0 % 0 % 0 0( 0Y0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D 10Yi 0000000000( 00e0e0e0e0e0e0e0e0e0e0e0e( 00K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K 0i 0( 0000( 000! 0! 0! 0! 0! 0 0000000000000000000000000000000000000000000000000000000000000000 10Yi 0F( 0FF0Q0Q0Q0Q0Q0Q0Q( 0FF0D0D0D0D0D0D0D0D0D( 0FF000000000( 0FF0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ 10Yi 0V( 0VV0b0b0b( 0VV000000000( 0VV000000000000000000000( 0VV0000000( 0VV0T0T0T0T0T0T0T0T0T0T0T( 0VV0000000( 0VV00000000000000000000000( 0VV0"0"0"0"0"0"0"0"0"0"0"0"0"0"0"0"0" 10Yi ( 0##0#0#$ 0#$ 0#$ 0 #$ 0 #$ 0 #$ 0 #$ 0 #0#( 0##0%0%" 0%0%0%0%0%0%" 0%" 0%0%0%0%0%0%0%0%0%0%# 0%0%0%# 0%0%0%0% 10Yi 00000000@)000(`c@0@.000(c@0@.0@-000(`c@)000(c@)0 0@?00c?00$ c0?00$ c]0]0,0,0?00 cA0?00,0?00@\c0H?00@c0?00@c000  !"#$%&'()*+,->?g:zTX{CD?@DHe9:FJ`mny}RS[_oZ[cgu ! ) - ; g h i 2   1 C L Q R W g y z {   $:ey>suw,-de  ?@Nx}&'Kwx AE !"""""7#8#X#t######$$$% %5%j%v%|%~%%%%;'<'Z'i'x'y''''''''''(((((((())))U*** + +I+t+v+++++,,, - -9-x-y-h.i....... /]//////Z0[0x0000-10111P1o1111111'2P2j2m222234353V3f3y3z33333S5T5W5s5w5x5556666666666888M8V88888899999999):+:<:?:Z:d:h:q:::::::==)=*==========>A>B>S>c>e>f>w>>>>>>>>>>>?? ???J?K?u????????????/@0@C@D@X@Y@@@@@@@@@AAA"A2AJAKAUAeApAqA{AAAAAAAAA8C9CNCOCCCCCCCC\DbDrDDDDDDDDDDD}EEEF FaFFFFFFGcGxGGGG$HaH@IAIRInIsIIIIIIJ;JOPPPQQQQQQQ1R2RTRuRRSVSSTT=THTITJT`TkTlTTUUUTVUVVVXVjVuVvVVVVVVWWXFYWZXZvZZZZZZZZ3\4\I\]] ] ]]'](];]s]t]]]^^^__``````````aaabbbbcccmcnccc4ddcee{f|ffffffffgggiiiiiiiJjKjmj{jakk?llBmCmamlmmmmmmmnnnppp'p2p3pFpppqpppqqqqqq r!r1r=rFrUrrr_s`s~sssssssstttuvvvv%v&v9vvvvvwy6y7yUy`yaybyxyyyyVzWzlz{{{,{7{8{K{{{{{||||||}}+}D}\}}}}0~[~\~z~~~~~~~~!"7RSTVhtuفMr[ăŃ,-I؅مˆ̆߆4X"am҉݉މ+-./ALM`Ԏc̏Bɐʐ 3hij|4Iȕӕԕ& 3 ڙ %Қ'̝͝ΝABd8qPƣѣңӣѥVWXjuv .I'u;lBϫګ۫ܫ¬ !4{|HqBJKituvcdydzȳ۳*+Mh?[5@A]ѹܹݹ,-Ojк׺9ps̽ͽν vmnzrs!,-@7DEcno{| 3@fE-%z^ J012CQRe L7|}<=R +,?=HIJ`kl#$978Z)xu+78K /af_`~uv[\]nz{@l8%%&Hs+w*56R$z{0tklHIJ\hi|,t J p q         ] ^ _ t Z[}Kfg1"#?01Sn;yz{  c     `!|!}!!!!!!!!"""+#,#-#/#A#M#N#a#####$$0$@$V$v$$$$%%%%%%%%%&#&$&9&0'1'2'D'P'Q'd'''''T(}((M)i)j)))))))))))*D+E+F+H+Z+f+g+z+++++&-]---../.:.;.<.R.].^.z.///00000001111K111$2(3D3E3c3n3o3p3333344455555666f6g6667788)8P8~89::::::::;8<9<N<<<<<<<=?=@=b=p===>>?-?.?L?W?X?Y?o?z?{??5@6@K@AAA!A3A?A@ASAAAAAA'BMBCBDCDaDlDmDnDDDDDOFPFeFGGGGGGGGH"HUHHHIoIIIIIIIIII J}J~JJhKiKjKlK~KKKK L L/L=LxLLL!MMM&NNNNNNNNOOOqPrPPlQmQnQQQQQERFRhRvRRSSyTUUUVVV5V6VRV2W3WHWWWWWWWXgXhXXXYY>ZZ[[ [+[,[B[^[_[{[\\3\]]]]]]]^^ _.__0`m````aaaa5aQaRanaNbObdb2c3c4c6cHcTcUchccccdlddddDeEeceneoepeeeeeffgggggggghhhhi%iiiGj~jjjjjjjjkk#kkkkk lmmmm.m:m;mNmmmmmnnnpnqoqqqqqqqqqrrrXsYsZslsxsysssst(t\ttttulvmvvvvvvvvvwwwhxixjxlx~xxxx:y;y]yyyz{||g}h}}}}}}}}}(ijk}TvȂ*56Rst~34V EklՈ$%8y +,-C_`|č/013UVhst܎ݎ {>   #./Khi~"#$DEWbcvÓēMܕݕ)*F$%:ӗZ:noלqrs 0Tv ȡӡԡijk}5k*9:Xcdzyz/deի֫34Phi~`abdu&P[\zűghi{?̴*+,BMNj̷ȸɸʸ̸޸UDEcnopPQf&g/:;<Rst  \]#W|3>?[   +,?*9r !=MNOQbnoBgZ[y!"5&d,-I *+,.@LM`J  ,Df9:;=O[\ob<vwqrOPrT./MXYZp{|./Pa^ghk+459OXY]jstx 8Io Abcf *+.ajkn=FGJ #clmn.78< $%)`ijn-.cd67@AMN #$*+uv0<HM\],;?w{+  #$mn  UVkqr89EF*    ? @      ( )    ? @ o       &()V cfg ]>jkEFT&(/_aruLM_`&'56wx"+;=?NO(*+efyz  8 9 N X h                n"o""""""""###########$ $$$$B%S%%%% &H&&&&&&W''t(((((((((O)n)o)))***q+U-.00000000000000000000000000000000000000000000-0-0-0-0-0-0-00z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z000i 70i 70i 70i 70i 70i C0i C0i C0i C0i 0i D0i D0i D0i D0i 0i D0i D0i D0i D0i 0i D0i D0i D0i D0i 0i 70i K0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 0i 000000000000000000000000000000000000000000000% 0% 0% 0% 0% 0% 0000000000000000000000000000000000000000000000000000000000000000000! 0! 0! 0! 0! 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000$ 0$ 0$ 0$ 0$ 0$ 0$ 00000" 000000" 0" 0000000000# 000# 0000000000000000000000000000000000000000G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G000L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L00dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS0dS00?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y0?Y00_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_00of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of0of00bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl0bl00uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq0uq000w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w00}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}0}000000000000000000000000000000ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ0ĉ000N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N00(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(000000000000000000000000000000000000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j0j000[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[0[00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)00000000000000000000000000000h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0t0000000000000000000000000000000000000000000000000000000000000L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0000000000000000000000000000000@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@00: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!00&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&000<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,0<,00)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)30)3000z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z70z700=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A00G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G0G00;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N0;N00S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S000Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y0Y00^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^000uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc0uc00i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i0i000n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n00w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w00|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|00`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕0͕00Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś0Ś00X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0000000000000000000000000000000é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é0é000%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%0%00C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F00g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g000000000000000000000000000000]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.00000000000000000000000000000000000000000000000000000000000000000000000000000000z0z0z0z0z0z0z0z000N0N0N0N0N0N0N0N00000000000000000000000000000000000000000000000000000000000000000000000000000 00( 00000000000000( 00000000000000000% 0% 0% 0% 0 % 0 % 0 0( 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0  100Z0Z0Z0Z0Z0Z0Z0Z0Z0Z( 0ZZ0*0*0*0*0*0*0*0*0*0*0*0*( 0ZZ00000000000000000 00w( 0Zw000( 0Zw0N0N! 0N! 0N! 0N! 0N! 0 N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N0N 100 ( 0  0 0 0 0 0 0 0 ( 0  0 0 0 0 0 0 0 0 0 ( 0  0a 0a 0a 0a 0a 0a 0a 0a 0a ( 0  0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0! 100( 00'0'0'( 0000000000( 0000000000000000000000( 00000000( 000000000000( 00000000( 00L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L0L( 000000000000000000 10000000000000000000000000000000000000000 0000000000000000000000000@0 031@00R?0?0  yu$@Tblo&x09OMv!T$+w5AGQ[Te`sǙܯvh)3>BLYeSkzi rzx%03556 !#%+06;=>?@BCDEFGHIJKLNOPQRSTUVWXY[\]_dhmsx 2ASly|-F]t   { ? 9 mRZ gQgDPe !"##&%&X+;//12609V;s=@qBEFGI8KL}MOO@Q;RRZTTVV!WXYY1Z\I\k\]T^u^^Wbbb3de'esehhhijkmk{nnnoqqJrBuluuvx2xpxyy1zUz{{|~%~~6aV7\!Rtċ,؍ˎݑ-Lɘhӝ̥AҫVu ۳ {Jucǻ*@,mr,Dn{f0Q|< +Ik#77 _u[z%5z   k Hhp^Zf " !""0#$$%&y'''())*++M++,V,---#.0/P//i1111D3f336;6]67889D;o;;<=>f>@BBB8DDD?E-GXGzG5HI?IIBLmLLONOOOQQQ}RhSS TTVVWqXlYYEZ]^5^2___g`c+c^cdeefhiQiNj2kTkkDmommnooprrssu:uunyyyzX{x{{l~~~h:gi5s~3k$,_/sܖ .h"bÛܝ)$nqөi9cydճ3h`[g+MDoP;s \> + MnZ!,*L 9[vqO.Y{.g4XsIjFl7 $i-7A    9 F!!!M$5%?&''N(o*+,,-H..s0o122w3W55r666"$&'()*,-./12345789:<AMZ^`abcefgijklnopqrtuvwyz{|}~     !"#$%&'()*+,-./013456789:;<=>?@BCDEFGHIJKLMNOPQRTUVWXYZ[\]^_`abcdefghijkmnopqrstuvwxz{}~      !"#$%&'()*+,./0123456789:;<=>?@ABCDEGHIJKLMNOPQRSTUVWXYZ[\^_`abcdefghijklmnopqrsuvwxyz{|}~   6h;axg w  % A C D F f v #?ABDdw0235Ug">@ACc,HJKMm{/KMNPp'7SVWYy 1Fbefh:Uqtuw*-.0Pa} (+,.Nfs.XXXG G G  X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%̕!#!,!!10` ,2$pE,bzp52|Q"0 k8Yn@  ( &) n  c $f"  t +"  S"  zBPC DEF\  PP   @`+"ZB  S D\"+"n  c $\" bB  c $DfjJ"P  3 :Zo"V  C :Zo[}"P  3 :Zo"V  C k8Yn"b + C +"  , B," :_ D  !"#$#%&'()*+,-,.-/0/12+324546474898:;:<=<>=?@?A4B8C:DE=FEG=HGIHJKJLMLNOPOQ(  / n ` c $`\" b a C a" n d c $df" H c $3f ?.`'uan(ud'u,at+O .g(P4u%'pu` Hpu0 pupu'u ' up' u'pu _Toc66209120 _Toc66238998 _Toc66239511 _Toc66239556 _Toc66239968 _Toc66240028 _Toc66240162 _Toc126789276 _Toc126789277 _Toc126789278Check129923683706141876116817375307381207390391394173339631338226727214871488148914901571165616601173315741676343346350354359357629431153951539644544644843843944945017344544554574604614634654664684691559132047218717187154754874764784774794804854865926096824894904933176496498 _Toc124270132 _Toc455891253 _Toc455894781 _Toc455943269 _Toc460758284 _Toc124270133 _Toc124270134 _Toc124270135 _Toc124270136 _Toc126789279 _Toc126789280 _Toc126789281 _Toc126789282 _Toc126789283 _Toc126789284 _Toc126789285 _Toc126789286 _Toc126789287 _Toc126789288 _Toc126789289 _Toc126789290 _Toc126789291 _Toc126789292 _Toc126789293 _Toc126789294 _Toc126789295 _Toc126789296 _Toc126789297 _Toc126789298 _Toc126789299 _Toc126789300 _Toc126789301 _Toc126789302 _Toc126789303 _Toc126789304 _Toc126789305 _Toc126789306-zi h ""t#####%%%%&U&'(((-)-)))))T**+y-/m234x55678::: ;_;<=*==>? ??????D@Y@@@AB8COCCDDD5E}EEEFF`FFFFG$H`HI?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`\abcdefghijklmnopqrstuvwxyz{|}~= x ""t#####%%%%&U&'(((-)-)))))T**+y-/m234x55678::: ;_;<=*==>? ??????D@Y@@@AB8COCCDDD5E}EEEFF`FFFFG$H`HIQx (dOg"svo,&%~'PN)x;,3y/tyUiU0P'u!1N45=23"PV|303wK7~*K"LWIVNIQdLZzE*OfFPp].,Gz^(1 AffX1+pj6md7Bq^լT7sL*O;>sZvnh88^8`. hh^h`OJQJo(h 88^8`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h88^8`OJQJo(hHh^`OJQJ^Jo(hHoh  ^ `OJQJo(hHh  ^ `OJQJo(hHhxx^x`OJQJ^Jo(hHohHH^H`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH >^`>o(hH20 0^`0o(hH. 0^`0o(hH.. 88^8`o(hH... `^``o(hH .... ^`o(hH ..... ^`o(hH ......  pp^p`o(hH.......   ( ^ `(o(hH........90^`056789;<B*CJ H*CJ S*TXo(hH90^`056789;<B*CJ H*CJ S*TXo(hH. 0^`0o(hH.. 88^8`o(hH... 88^8`o(hH .... `^``o(hH ..... `^``o(hH ......  ^`o(hH.......  ^`o(hH........h^`.h ^`OJQJo(hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh ^`o(hH. ^`hH. pLp^p`Lo(hH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH. >^`>o(0^`0o(.0^`0o(..88^8`o(... `^``o( .... ^`o( ..... ^`o( ...... pp^p`o(.......  ( ^ `(o(........h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(^`OJQJ^Jo(- ^`OJQJo(o pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(:P^`P56789;<CJ H*OJQJS*TXo(hH:^`56789;<CJ H*OJQJS*TXo(hH. 0^`0o(hH.. ``^``o(hH... ^`o(hH .... ^`o(hH ..... ^`o(hH ......  `^``o(hH.......  00^0`o(hH........h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH^`OJPJQJ^Jo(- ^`OJQJo(o pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`OJQJo(h hh^h`o(hH.h 88^8`hH.^`OJPJQJ^Jo(h   ^ `hH.h   ^ `hH.h xLx^x`LhH.h HH^H`hH.h ^`hH.h L^`LhH.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(%mD  V|3Gz^T7s=23Oa27Bq;>s)M8'KFdLUiU0x vNIT7s+pjA.'u!1wK7FPp]y/AfE*O"LWIOg")p ;,lo,&%$                                             Qt 4-<!o0)u@f!-?zTX{CD?@DHe9:FJ`mny}RS[_oZ[cgu ! ) - ; g h   1 C L Q R W g y z {  OLZL[LnLLLLNNNNNO!O"O>OPPPQQQQQQQ1R2RTRTT=TITJT`TkTlTTUUUTVUVVVXVjVuVvVVVVVWZXZvZZZZZZZ3\4\I\] ] ]]'](];]s]t]]`````````aaabbbbcccmcncc{f|ffffffffgggiiiiiiiJjKjmjBmCmamlmmmmmmmnnnppp'p2p3pFpppqpp_s`s~ssssssstttvvvv%v&v9vvvv6y7yUyaybyxyyyyVzWzlz{{{,{7{8{K{{{{[~\~z~~~~~~~!"7RSTVhtuفăŃ,-I؅مˆ̆߆4҉݉މ-./ALM`ɐʐ 3hij|ȕӕԕ&ڙ %Қ̝͝ΝABdƣңӣѥVWXjuv .ϫ۫ܫ¬ !4{|JKiuvcdydzȳ۳*+M5@A]ѹܹݹ,-Oͽν mnrs!,-@DEcno{| 3%012CQRe|}<=R +,?=IJ`kl#$978Z+78K /_`~uv[\]nz{8%%&H*56R$z{klHIJ\hi|p q        ^ _ t Z[}fg"#?01S;yz{ |!}!!!!!!!!"""+#,#-#/#A#M#N#a####%%%%%%%%&#&$&9&0'1'2'D'P'Q'd''''i)j))))))))))*D+E+F+H+Z+f+g+z++++../.;.<.R.].^.z.///00000001111D3E3c3o3p3333344455555666f6g66::::::::;8<9<N<<<<<<<=?=@=b=-?.?L?X?Y?o?z?{??5@6@K@AAA!A3A?A@ASAAAABDCDaDmDnDDDDDOFPFeFGGGGGGGGH"HIIIIIIII J}J~JJhKiKjKlK~KKKK L L/LNNNNNNOOOqPrPPlQmQnQQQQQERFRhRUUUVVV5V6VRV2W3WHWWWWWWWXgXhXX[[ [+[,[B[^[_[{[\\3\]]]]]]]^^ _``aaa5aQaRanaNbObdb2c3c4c6cHcTcUchccccDeEeceoepeeeeeffgggggggghhhjjjjjjkk#kkk lmmmm.m:m;mNmmmmnqoqqqqqqqqrrrXsYsZslsxsysssstlvmvvvvvvvvwwwhxixjxlx~xxxx:y;y]yg}h}}}}}}}}(ijk}*56Rst~34VklՈ$%8 ,-C_`|č/0UVhst܎ݎ  #./Khi~"#DEWbcvÓēܕݕ)*F$%:ӗnoלqrs ȡӡԡijk}59:Xcdzyz/deի֫34Phi~`abdu[\zűghi{+,BMNj̷ȸɸʸ̸޸DEcopPQf/;<Rst  \]3>?[   +,?* !=MNOQbnoZ[y!"5,-I *+,.@LM`  ,9:;=O[\ovwqrOPr./MYZp{|./Pa^ghk+459OXY]jstx 8Io Abcf *+.ajkn=FGJ #clmn.78< $%)`ijnq+s+v+y+|+,q,U--..0y 0=======================11111)DC@.0@UnknownStevescoad Elaine N Simone Alan Farmer Gz Times New Roman5Symbol3& z Arial?5 z Courier New3z Times;& z Helvetica?& Arial Black5& zaTahoma;Wingdings#1Ȉh!!Lӡ RR!4dV*V*2QH?N*@frC:\Documents and Settings\tz8nnx\Application Data\Microsoft\Templates\DW-TMP-DW General Document Template-v1.0.dot Vic StachuraSteve$                           ! " # Oh+'0D T` |   ss Vic Stachuraoic +General multipage document with coversheeto)DW-TMP-DW General Document Template-v1.0toSteve-D6evMicrosoft Word 10.0@e@3"@bi)@Ƭj)R՜.+,D՜.+,@ px  eEDSV*O  Title X4<$ , 8 l    _PID_HLINKS_AdHocReviewCycleID_NewReviewCycle_EmailSubject _AuthorEmail_AuthorEmailDisplayName_PreviousAdHocReviewCycleID _ReviewingToolsShownOnceA <_Toc126789306<_Toc126789305<_Toc126789304<_Toc126789303<_Toc126789302<_Toc126789301<_Toc126789300=_Toc126789299=_Toc126789298=_Toc126789297=_Toc126789296=_Toc126789295=}_Toc126789294=w_Toc126789293=q_Toc126789292=k_Toc126789291=e_Toc126789290=__Toc126789289=Y_Toc126789288=S_Toc126789287=M_Toc126789286=G_Toc126789285=A_Toc126789284=;_Toc126789283=5_Toc126789282=/_Toc126789281=)_Toc126789280=#_Toc126789279=_Toc126789278=_Toc126789277=_Toc126789276@dmailto:ens6412@rit.edu@dmailto:ens6412@rit.eduUbmailto:src9472@rit.edulRev*Michelle's Detailed Requirements Feedback_Rmichelle.whalen@eds.comWhalen, Michelle F.hal  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry F`*j)Data 31TableE5WordDocumentSummaryInformation(DocumentSummaryInformation8CompObjj  FMicrosoft Word Document MSWordDocWord.Document.89q