diff options
author | Ben Hilburn <ben.hilburn@ettus.com> | 2013-10-10 10:17:27 -0700 |
---|---|---|
committer | Ben Hilburn <ben.hilburn@ettus.com> | 2013-10-10 10:17:27 -0700 |
commit | 0df4b801a34697f2058b4a7b95e08d2a0576c9db (patch) | |
tree | be10e78d1a97c037a9e7492360a178d1873b9c09 /fpga/usrp2 | |
parent | 6e7bc850b66e8188718248b76b729c7cf9c89700 (diff) | |
download | uhd-0df4b801a34697f2058b4a7b95e08d2a0576c9db.tar.gz uhd-0df4b801a34697f2058b4a7b95e08d2a0576c9db.tar.bz2 uhd-0df4b801a34697f2058b4a7b95e08d2a0576c9db.zip |
Squashed B200 FPGA Source. Code from Josh Blum, Ian Buckley, and Matt Ettus.
Diffstat (limited to 'fpga/usrp2')
102 files changed, 10308 insertions, 0 deletions
diff --git a/fpga/usrp2/coregen/_xmsgs/pn_parser.xmsgs b/fpga/usrp2/coregen/_xmsgs/pn_parser.xmsgs new file mode 100644 index 000000000..e7bbdb9d5 --- /dev/null +++ b/fpga/usrp2/coregen/_xmsgs/pn_parser.xmsgs @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- IMPORTANT: This is an internal file that has been generated --> +<!-- by the Xilinx ISE software. Any direct editing or --> +<!-- changes made to this file may result in unpredictable --> +<!-- behavior or data corruption. It is strongly advised that --> +<!-- users do not edit the contents of this file. --> +<!-- --> +<!-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. --> + +<messages> +<msg type="info" file="ProjectMgmt" num="1062" ><arg fmt="%s" index="1">Parsing Verilog file "/home/jblum/src/ettus/fpga_b200/usrp2/coregen/pll_100_40_75.v" into library work</arg> +</msg> + +<msg type="info" file="ProjectMgmt" num="1062" ><arg fmt="%s" index="1">Parsing Verilog file "/home/jblum/src/ettus/fpga_b200/usrp2/coregen/pll_100_40_75/example_design/pll_100_40_75_exdes.v" into library work</arg> +</msg> + +</messages> + diff --git a/fpga/usrp2/coregen/coregen_s6.cgc b/fpga/usrp2/coregen/coregen_s6.cgc new file mode 100644 index 000000000..90b359eab --- /dev/null +++ b/fpga/usrp2/coregen/coregen_s6.cgc @@ -0,0 +1,2352 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:design xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xilinx="http://www.xilinx.com" > + <spirit:vendor>xilinx.com</spirit:vendor> + <spirit:library>project</spirit:library> + <spirit:name>coregen_s6</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:componentInstances> + <spirit:componentInstance> + <spirit:instanceName>fifo_s6_1Kx36_2clk</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="6.1" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_s6_1Kx36_2clk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">1022</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">1024</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Block_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">11</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_DBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">10</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">1024</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_RESET_SYNCHRONIZATION">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">No_Programmable_Full_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_SBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">11</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">1023</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc6slx75</xilinx:device> + <xilinx:deviceFamily>spartan6</xilinx:deviceFamily> + <xilinx:package>csg484</xilinx:package> + <xilinx:speedGrade>-3</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>true</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>fifo_s6_2Kx36_2clk</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="6.1" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_s6_2Kx36_2clk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">2046</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">2048</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Block_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">12</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_DBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">11</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">2048</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_RESET_SYNCHRONIZATION">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">No_Programmable_Full_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_SBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">12</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">2047</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc6slx75</xilinx:device> + <xilinx:deviceFamily>spartan6</xilinx:deviceFamily> + <xilinx:package>csg484</xilinx:package> + <xilinx:speedGrade>-3</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>true</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>fifo_s6_512x36_2clk</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="6.1" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_s6_512x36_2clk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">510</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">512</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Block_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">10</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_DBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">9</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">512</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_RESET_SYNCHRONIZATION">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">No_Programmable_Full_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_SBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">10</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">511</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc6slx75</xilinx:device> + <xilinx:deviceFamily>spartan6</xilinx:deviceFamily> + <xilinx:package>csg484</xilinx:package> + <xilinx:speedGrade>-3</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>true</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>fifo_xlnx_16x19_2clk</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="4.3" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_xlnx_16x19_2clk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">14</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">19</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">16</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Distributed_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">16</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">No_Programmable_Full_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">15</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">19</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s2000</xilinx:device> + <xilinx:deviceFamily>spartan3</xilinx:deviceFamily> + <xilinx:package>fg456</xilinx:package> + <xilinx:speedGrade>-5</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>false</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>fifo_xlnx_16x40_2clk</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="4.3" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_xlnx_16x40_2clk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">14</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">40</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">16</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Distributed_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">16</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">No_Programmable_Full_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">15</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">40</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s2000</xilinx:device> + <xilinx:deviceFamily>spartan3</xilinx:deviceFamily> + <xilinx:package>fg456</xilinx:package> + <xilinx:speedGrade>-5</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>false</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>fifo_xlnx_2Kx36_2clk</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="4.3" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_xlnx_2Kx36_2clk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">2046</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">2048</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Block_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">12</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">12</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">2048</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">No_Programmable_Full_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">12</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">2047</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s2000</xilinx:device> + <xilinx:deviceFamily>spartan3</xilinx:deviceFamily> + <xilinx:package>fg456</xilinx:package> + <xilinx:speedGrade>-5</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>VHDL</xilinx:designEntry> + <xilinx:asySymbol>true</xilinx:asySymbol> + <xilinx:flowVendor>Foundation_ISE</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>VHDL_and_Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>fifo_xlnx_32x36_2clk</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="6.1" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_xlnx_32x36_2clk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">23</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">32</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Distributed_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_DBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">32</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_RESET_SYNCHRONIZATION">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">Single_Programmable_Full_Threshold_Constant</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_SBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">24</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s2000</xilinx:device> + <xilinx:deviceFamily>spartan3</xilinx:deviceFamily> + <xilinx:package>fg456</xilinx:package> + <xilinx:speedGrade>-5</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>false</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Structural</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>fifo_xlnx_512x36_2clk</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="4.3" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_xlnx_512x36_2clk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">510</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">512</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Block_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">10</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">10</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">512</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">No_Programmable_Full_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">10</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">511</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s2000</xilinx:device> + <xilinx:deviceFamily>spartan3</xilinx:deviceFamily> + <xilinx:package>fg456</xilinx:package> + <xilinx:speedGrade>-5</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>false</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>fifo_xlnx_512x36_2clk_18to36</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="6.1" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_xlnx_512x36_2clk_18to36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">1014</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">1024</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Block_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">10</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_DBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">10</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">512</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_RESET_SYNCHRONIZATION">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">Single_Programmable_Full_Threshold_Constant</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_SBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">9</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">1015</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">18</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s2000</xilinx:device> + <xilinx:deviceFamily>spartan3</xilinx:deviceFamily> + <xilinx:package>fg456</xilinx:package> + <xilinx:speedGrade>-5</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>false</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>fifo_xlnx_512x36_2clk_36to18</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="6.1" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_xlnx_512x36_2clk_36to18</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">508</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">18</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">512</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Block_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">9</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_DBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">9</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">1024</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_RESET_SYNCHRONIZATION">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">No_Programmable_Full_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_SBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">10</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">509</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s2000</xilinx:device> + <xilinx:deviceFamily>spartan3</xilinx:deviceFamily> + <xilinx:package>fg456</xilinx:package> + <xilinx:speedGrade>-5</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>false</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>fifo_xlnx_512x36_2clk_prog_full</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="6.1" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_xlnx_512x36_2clk_prog_full</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">499</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">512</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Block_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">9</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_DBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">9</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">512</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_RESET_SYNCHRONIZATION">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">Single_Programmable_Full_Threshold_Constant</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_SBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">9</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s2000</xilinx:device> + <xilinx:deviceFamily>spartan3</xilinx:deviceFamily> + <xilinx:package>fg456</xilinx:package> + <xilinx:speedGrade>-5</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>false</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>fifo_xlnx_64x36_2clk</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="4.3" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo_xlnx_64x36_2clk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">62</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">64</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Distributed_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">7</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">7</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">64</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">No_Programmable_Full_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">7</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">First_Word_Fall_Through</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">63</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">36</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties xmlns:xilinx="http://www.xilinx.com"> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s2000</xilinx:device> + <xilinx:deviceFamily>spartan3</xilinx:deviceFamily> + <xilinx:package>fg456</xilinx:package> + <xilinx:speedGrade>-5</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>false</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-04-24+06:33</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>pll_100_40_75</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="clk_wiz" spirit:version="3.5" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">pll_100_40_75</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_FREQ_SYNTH">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_PHASE_ALIGNMENT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_MIN_POWER">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DYN_PHASE_SHIFT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DYN_RECONFIG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.JITTER_SEL">No_Jitter</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_SPREAD_SPECTRUM">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_IN_FREQ">40.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.IN_FREQ_UNITS">Units_MHz</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.IN_JITTER_UNITS">Units_UI</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RELATIVE_INCLK">REL_PRIMARY</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_IN_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.JITTER_OPTIONS">UI</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN1_UI_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN2_UI_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_IN_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_IN_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN1_JITTER_PS">250.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN2_JITTER_PS">100.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_USED">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_USED">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_USED">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_USED">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_USED">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_USED">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.NUM_OUT_CLKS">3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT1_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT2_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT3_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT4_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT5_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT6_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT7_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIMARY_PORT">CLK_IN1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT1_PORT">CLK_OUT1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT2_PORT">CLK_OUT2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT3_PORT">CLK_OUT3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT4_PORT">CLK_OUT4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT5_PORT">CLK_OUT5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT6_PORT">CLK_OUT6</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT7_PORT">CLK_OUT7</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DADDR_PORT">DADDR</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCLK_PORT">DCLK</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DRDY_PORT">DRDY</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DWE_PORT">DWE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DIN_PORT">DIN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_PORT">DOUT</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DEN_PORT">DEN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSCLK_PORT">PSCLK</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSEN_PORT">PSEN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSINCDEC_PORT">PSINCDEC</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSDONE_PORT">PSDONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_OUT_FREQ">40.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_OUT_FREQ">75.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_OUT_FREQ">75.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_MAX_I_JITTER">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_MIN_O_JITTER">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_INCLK_SWITCHOVER">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_PORT">CLK_IN2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FEEDBACK_SOURCE">FDBK_AUTO</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_SIGNALING">SINGLE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_PORT">CLKFB_IN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_P_PORT">CLKFB_IN_P</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_N_PORT">CLKFB_IN_N</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_OUT_PORT">CLKFB_OUT</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_OUT_P_PORT">CLKFB_OUT_P</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_OUT_N_PORT">CLKFB_OUT_N</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLATFORM">lin</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SUMMARY_STRINGS">empty</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_LOCKED">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CALC_DONE">DONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_POWER_DOWN">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_STATUS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_FREEZE">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_CLK_VALID">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_INCLK_STOPPED">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_CLKFB_STOPPED">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PORT">RESET</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.LOCKED_PORT">LOCKED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POWER_DOWN_PORT">POWER_DOWN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_VALID_PORT">CLK_VALID</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.STATUS_PORT">STATUS</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_IN_SEL_PORT">CLK_IN_SEL</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_CLK_STOPPED_PORT">INPUT_CLK_STOPPED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_STOPPED_PORT">CLKFB_STOPPED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERRIDE_MMCM">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_NOTES">None</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_DIVCLK_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_MULT_F">4.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKIN1_PERIOD">10.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKIN2_PERIOD">10.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_CASCADE">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLOCK_HOLD">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_COMPENSATION">ZHOLD</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_REF_JITTER1">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_REF_JITTER2">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_STARTUP_WAIT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DIVIDE_F">4.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERRIDE_DCM">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_NOTES">None</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKDV_DIVIDE">2.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKFX_DIVIDE">2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKFX_MULTIPLY">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKIN_DIVIDE_BY_2">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKIN_PERIOD">25.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKOUT_PHASE_SHIFT">NONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_DESKEW_ADJUST">SYSTEM_SYNCHRONOUS</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_PHASE_SHIFT">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLK_FEEDBACK">1X</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_STARTUP_WAIT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLK_OUT1_PORT">CLKFX</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLK_OUT2_PORT">CLK0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLK_OUT3_PORT">CLKFX</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLK_OUT4_PORT">CLKFX</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLK_OUT5_PORT">CLK0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLK_OUT6_PORT">CLK0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERRIDE_DCM_CLKGEN">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKGEN_NOTES">None</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKGEN_CLKFX_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKGEN_CLKFX_MULTIPLY">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKGEN_CLKFXDV_DIVIDE">2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKGEN_CLKFX_MD_MAX">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKGEN_STARTUP_WAIT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKGEN_CLKIN_PERIOD">10.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKGEN_SPREAD_SPECTRUM">NONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKGEN_CLK_OUT1_PORT">CLKFX</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKGEN_CLK_OUT2_PORT">CLKFX</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_CLKGEN_CLK_OUT3_PORT">CLKFX</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERRIDE_PLL">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_NOTES">None</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKFBOUT_MULT">15</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLK_FEEDBACK">CLKFBOUT</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_DIVCLK_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKIN_PERIOD">25.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_COMPENSATION">SYSTEM_SYNCHRONOUS</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_REF_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT0_DIVIDE">6</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT0_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT1_DIVIDE">15</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT1_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT2_DIVIDE">8</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT2_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT3_DIVIDE">8</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT3_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT4_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT4_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT5_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT5_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCM_PLL_CASCADE">NONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLOCK_MGR_TYPE">AUTO</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIMTYPE_SEL">DCM_SP</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIMITIVE">MMCM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_USED">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_USED">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_USED">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_USED">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_USED">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_USED">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMPONENT_NAME">pll_100_40_75</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLATFORM">lin</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FREQ_SYNTH">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_IN_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_IN_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_JITTER_SEL">No_Jitter</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_MIN_POWER">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_MIN_O_JITTER">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_MAX_I_JITTER">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DYN_RECONFIG">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIMTYPE_SEL">PLL_BASE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLK_VALID">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_IN_FREQ">40.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IN_FREQ_UNITS">Units_MHz</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_IN_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FEEDBACK_SOURCE">FDBK_AUTO</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING">SINGLE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_RESET">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_LOCKED">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_INCLK_STOPPED">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLKFB_STOPPED">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_POWER_DOWN">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_STATUS">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FREEZE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NUM_OUT_CLKS">3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INCLK_SUM_ROW1">__primary__________40.000____________0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INCLK_SUM_ROW2">no_secondary_input_clock </spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW1">CLK_OUT1___100.000______0.000______50.0______252.791____220.216</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW2">CLK_OUT2____40.000______0.000______50.0______309.264____220.216</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW3">CLK_OUT3____75.000______0.000______50.0______269.846____220.216</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW4">no_CLK_OUT4_output</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW5">no_CLK_OUT5_output</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW6">no_CLK_OUT6_output</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW7">no_CLK_OUT7_output </spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_OUT_FREQ">40.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_OUT_FREQ">75.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_OUT_FREQ">75.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_OUT_FREQ">40.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_OUT_FREQ">75.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_OUT_FREQ">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_OUT_FREQ">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_OUT_FREQ">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_OUT_FREQ">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_PHASE">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_PHASE">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_PHASE">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_PHASE">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_DUTY_CYCLE">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_DUTY_CYCLE">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_DUTY_CYCLE">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_DUTY_CYCLE">N/A</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_NOTES">None</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_MULT_F">4.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKIN1_PERIOD">10.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKIN2_PERIOD">10.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_CASCADE">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLOCK_HOLD">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_COMPENSATION">ZHOLD</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_DIVCLK_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_REF_JITTER1">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_REF_JITTER2">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_STARTUP_WAIT">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DIVIDE_F">4.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_NOTES">None</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLK_FEEDBACK">CLKFBOUT</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKFBOUT_MULT">15</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKIN_PERIOD">25.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_COMPENSATION">SYSTEM_SYNCHRONOUS</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_DIVCLK_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_REF_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT0_DIVIDE">6</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT1_DIVIDE">15</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT2_DIVIDE">8</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT3_DIVIDE">8</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT4_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT5_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT0_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT1_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT2_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT3_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT4_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT5_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_NOTES">None</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKDV_DIVIDE">2.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKFX_DIVIDE">2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKFX_MULTIPLY">5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKIN_DIVIDE_BY_2">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKIN_PERIOD">25.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKOUT_PHASE_SHIFT">NONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLK_FEEDBACK">1X</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLK_FEEDBACK_PORT">CLKOUT2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_DESKEW_ADJUST">SYSTEM_SYNCHRONOUS</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_PHASE_SHIFT">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_STARTUP_WAIT">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLK_OUT1_PORT">CLKFX</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLK_OUT2_PORT">CLK0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLK_OUT3_PORT">CLKFX</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLK_OUT4_PORT">NONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLK_OUT5_PORT">NONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLK_OUT6_PORT">NONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKGEN_NOTES">None</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKGEN_CLKFXDV_DIVIDE">2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKGEN_CLKFX_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKGEN_CLKFX_MULTIPLY">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKGEN_CLKIN_PERIOD">25.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKGEN_CLKFX_MD_MAX">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKGEN_SPREAD_SPECTRUM">NONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKGEN_STARTUP_WAIT">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKGEN_CLK_OUT1_PORT">CLKFX</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKGEN_CLK_OUT2_PORT">CLKFX</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_CLKGEN_CLK_OUT3_PORT">CLKFX</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLOCK_MGR_TYPE">AUTO</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERRIDE_MMCM">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERRIDE_PLL">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERRIDE_DCM">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERRIDE_DCM_CLKGEN">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCM_PLL_CASCADE">NONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIMARY_PORT">CLK_IN1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_PORT">CLK_IN2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT1_PORT">CLK_OUT1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT2_PORT">CLK_OUT2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT3_PORT">CLK_OUT3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT4_PORT">CLK_OUT4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT5_PORT">CLK_OUT5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT6_PORT">CLK_OUT6</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT7_PORT">CLK_OUT7</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RESET_PORT">RESET</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOCKED_PORT">LOCKED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_PORT">CLKFB_IN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_P_PORT">CLKFB_IN_P</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_N_PORT">CLKFB_IN_N</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_OUT_PORT">CLKFB_OUT</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_OUT_P_PORT">CLKFB_OUT_P</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_OUT_N_PORT">CLKFB_OUT_N</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_POWER_DOWN_PORT">POWER_DOWN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DADDR_PORT">DADDR</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCLK_PORT">DCLK</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DRDY_PORT">DRDY</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DWE_PORT">DWE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_PORT">DIN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DOUT_PORT">DOUT</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEN_PORT">DEN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSCLK_PORT">PSCLK</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSEN_PORT">PSEN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSINCDEC_PORT">PSINCDEC</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSDONE_PORT">PSDONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_VALID_PORT">CLK_VALID</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_STATUS_PORT">STATUS</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_IN_SEL_PORT">CLK_IN_SEL</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INPUT_CLK_STOPPED_PORT">INPUT_CLK_STOPPED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_STOPPED_PORT">CLKFB_STOPPED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKIN1_JITTER_PS">250.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKIN2_JITTER_PS">100.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIMITIVE">MMCM</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc6slx75</xilinx:device> + <xilinx:deviceFamily>spartan6</xilinx:deviceFamily> + <xilinx:package>csg484</xilinx:package> + <xilinx:speedGrade>-3</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>true</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2011-12-28+09:11</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + <xilinx:generationHistory> + <xilinx:fileSet> + <xilinx:name>apply_current_project_options_generator</xilinx:name> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>customization_generator</xilinx:name> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>model_parameter_resolution_generator</xilinx:name> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>ip_xco_generator</xilinx:name> + <xilinx:file> + <xilinx:name>./pll_100_40_75.xco</xilinx:name> + <xilinx:userFileType>xco</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:52 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x7F9C6649</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>tcl_flow_generator</xilinx:name> + <xilinx:file> + <xilinx:name>./pll_100_40_75/example_design/pll_100_40_75_exdes.ucf</xilinx:name> + <xilinx:userFileType>ucf</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:01 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xB54DEDD1</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/example_design/pll_100_40_75_exdes.v</xilinx:name> + <xilinx:userFileType>verilog</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:54 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xF0E263D1</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/example_design/pll_100_40_75_exdes.xdc</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>xdc</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:02 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x8A9C2191</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/implement.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:01 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x847BA9AE</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/implement.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:01 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xEF940814</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_ise.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:00 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x6966A508</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_ise.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:00 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x7F8B5943</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_ise.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:00 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x6D5DA0FA</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_rdn.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:00 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xB9373CFA</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_rdn.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:00 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xDCE9D96C</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_rdn.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:01 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x9E6E156D</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/xst.prj</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:02 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x7EF6AFD3</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/xst.scr</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:02 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x7BC1F2CC</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simcmds.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:58 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x80B0E436</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_isim.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:58 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x3B0D2786</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_isim.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:58 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x3479DE2E</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_mti.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:56 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x23E49D4C</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_mti.do</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:56 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x196566F3</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_mti.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:56 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xA92E962D</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_ncsim.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:57 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x414DA0D8</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_vcs.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:59 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x040C0268</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/ucli_commands.key</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:59 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x957E258B</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/vcs_session.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:59 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x859D76CE</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/wave.do</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:57 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xF6D99A50</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/wave.sv</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:58 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x5BAF49BA</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/pll_100_40_75_tb.v</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>verilog</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:54 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x338F9EC4</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/pll_100_40_75_tb.v</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>verilog</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:55 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xF8A7FBD8</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/sdf_cmd_file</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:57 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xE37E41C3</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simcmds.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:58 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x59F13085</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_isim.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:58 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x513F3CD7</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_mti.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:56 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x6032836B</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_mti.do</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:56 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x8556A6D6</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_mti.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:56 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xF19800C9</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_ncsim.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:57 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xEFFEEFB9</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_vcs.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:59 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xE87CCB6C</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/ucli_commands.key</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:59 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x9DC0E037</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/vcs_session.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:00 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x28340249</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/wave.do</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:57 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x251C4591</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75.ucf</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>ucf</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:01 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x4904DEF4</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75.v</xilinx:name> + <xilinx:userFileType>verilog</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:53 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xF7DE77A9</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75.veo</xilinx:name> + <xilinx:userFileType>veo</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:55 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xC3431095</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75.xdc</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>xdc</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:01 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x590C1CA7</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75_xmdf.tcl</xilinx:name> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:21:55 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x970F3026</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>associated_files_generator</xilinx:name> + <xilinx:file> + <xilinx:name>./pll_100_40_75/clk_wiz_v3_5_readme.txt</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>txt</xilinx:userFileType> + <xilinx:timeStamp>Tue Apr 24 06:24:06 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x1BF90E4F</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>ejava_generator</xilinx:name> + <xilinx:file> + <xilinx:name>./pll_100_40_75/example_design/pll_100_40_75_exdes.ucf</xilinx:name> + <xilinx:userFileType>ucf</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xB54DEDD1</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/example_design/pll_100_40_75_exdes.v</xilinx:name> + <xilinx:userFileType>verilog</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xF0E263D1</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/example_design/pll_100_40_75_exdes.xdc</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>xdc</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x8A9C2191</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/implement.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x847BA9AE</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/implement.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xEF940814</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_ise.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x6966A508</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_ise.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x7F8B5943</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_ise.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x6D5DA0FA</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_rdn.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xB9373CFA</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_rdn.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xDCE9D96C</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/planAhead_rdn.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x9E6E156D</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/xst.prj</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x7EF6AFD3</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/implement/xst.scr</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x7BC1F2CC</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simcmds.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x80B0E436</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_isim.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x3B0D2786</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_isim.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x3479DE2E</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_mti.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x23E49D4C</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_mti.do</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x196566F3</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_mti.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xA92E962D</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_ncsim.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x414DA0D8</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/simulate_vcs.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x040C0268</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/ucli_commands.key</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x957E258B</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/vcs_session.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x859D76CE</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/wave.do</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xF6D99A50</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/functional/wave.sv</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x5BAF49BA</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/pll_100_40_75_tb.v</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>verilog</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x338F9EC4</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/pll_100_40_75_tb.v</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>verilog</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xF8A7FBD8</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/sdf_cmd_file</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xE37E41C3</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simcmds.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x59F13085</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_isim.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x513F3CD7</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_mti.bat</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x6032836B</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_mti.do</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x8556A6D6</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_mti.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xF19800C9</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_ncsim.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xEFFEEFB9</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/simulate_vcs.sh</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xE87CCB6C</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/ucli_commands.key</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x9DC0E037</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/vcs_session.tcl</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x28340249</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/simulation/timing/wave.do</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x251C4591</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75.ucf</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>ucf</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x4904DEF4</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75.v</xilinx:name> + <xilinx:userFileType>verilog</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:03 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xF7DE77A9</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75.veo</xilinx:name> + <xilinx:userFileType>veo</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xC3431095</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75.xdc</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>xdc</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x590C1CA7</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75_xmdf.tcl</xilinx:name> + <xilinx:userFileType>tcl</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:04 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x970F3026</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>all_documents_generator</xilinx:name> + <xilinx:file> + <xilinx:name>./pll_100_40_75/doc/clk_wiz_gsg521.pdf</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>pdf</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:08 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x7660EFEE</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/doc/clk_wiz_v3_5_readme.txt</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>txt</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:08 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x1BF90E4F</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75/doc/clk_wiz_v3_5_vinfo.html</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:08 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xD0135075</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>readme_documents_generator</xilinx:name> + <xilinx:file> + <xilinx:name>./pll_100_40_75/doc/clk_wiz_v3_5_readme.txt</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>txt</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:09 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x1BF90E4F</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>asy_generator</xilinx:name> + <xilinx:file> + <xilinx:name>./pll_100_40_75.asy</xilinx:name> + <xilinx:userFileType>asy</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:17 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x61F47740</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>ise_generator</xilinx:name> + <xilinx:file> + <xilinx:name>./_xmsgs/pn_parser.xmsgs</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>unknown</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:24 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xEDD97934</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75.gise</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>gise</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:25 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x3AB6E652</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + <xilinx:file> + <xilinx:name>./pll_100_40_75.xise</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>xise</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:25 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0xAD3860B6</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>deliver_readme_generator</xilinx:name> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>flist_generator</xilinx:name> + <xilinx:file> + <xilinx:name>./pll_100_40_75_flist.txt</xilinx:name> + <xilinx:userFileType>ignore</xilinx:userFileType> + <xilinx:userFileType>txtFlist</xilinx:userFileType> + <xilinx:userFileType>txt</xilinx:userFileType> + <xilinx:timeStamp>Mon Jun 25 01:22:25 GMT 2012</xilinx:timeStamp> + <xilinx:checkSum>0x4D0B8946</xilinx:checkSum> + <xilinx:generationId>generationID_4013899584</xilinx:generationId> + </xilinx:file> + </xilinx:fileSet> + <xilinx:fileSet> + <xilinx:name>view_readme_generator</xilinx:name> + </xilinx:fileSet> + </xilinx:generationHistory> + </spirit:vendorExtensions> + </spirit:componentInstance> + </spirit:componentInstances> + <spirit:vendorExtensions> + <xilinx:instanceProperties> + <xilinx:projectOptions> + <xilinx:projectName>coregen_s6</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc6slx75</xilinx:device> + <xilinx:deviceFamily>spartan6</xilinx:deviceFamily> + <xilinx:package>csg484</xilinx:package> + <xilinx:speedGrade>-3</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>Verilog</xilinx:designEntry> + <xilinx:asySymbol>true</xilinx:asySymbol> + <xilinx:flowVendor>Other</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + </xilinx:instanceProperties> + </spirit:vendorExtensions> +</spirit:design> + diff --git a/fpga/usrp2/coregen/coregen_s6.cgp b/fpga/usrp2/coregen/coregen_s6.cgp new file mode 100644 index 000000000..1abd1b021 --- /dev/null +++ b/fpga/usrp2/coregen/coregen_s6.cgp @@ -0,0 +1,22 @@ +# Date: Fri May 4 20:42:23 2012 + +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc6slx75 +SET devicefamily = spartan6 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = csg484 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = true +SET vhdlsim = false +SET workingdirectory = ./tmp/ + +# CRC: f7d4ca66 diff --git a/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.asy b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.asy new file mode 100644 index 000000000..9664f3a57 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.asy @@ -0,0 +1,49 @@ +Version 4 +SymbolType BLOCK +TEXT 32 32 LEFT 4 fifo_s6_1Kx36_2clk +RECTANGLE Normal 32 32 544 768 +LINE Wide 0 80 32 80 +PIN 0 80 LEFT 36 +PINATTR PinName din[35:0] +PINATTR Polarity IN +LINE Normal 0 144 32 144 +PIN 0 144 LEFT 36 +PINATTR PinName wr_en +PINATTR Polarity IN +LINE Normal 0 176 32 176 +PIN 0 176 LEFT 36 +PINATTR PinName wr_clk +PINATTR Polarity IN +LINE Normal 0 240 32 240 +PIN 0 240 LEFT 36 +PINATTR PinName rd_en +PINATTR Polarity IN +LINE Normal 0 272 32 272 +PIN 0 272 LEFT 36 +PINATTR PinName rd_clk +PINATTR Polarity IN +LINE Normal 144 800 144 768 +PIN 144 800 BOTTOM 36 +PINATTR PinName rst +PINATTR Polarity IN +LINE Wide 576 80 544 80 +PIN 576 80 RIGHT 36 +PINATTR PinName dout[35:0] +PINATTR Polarity OUT +LINE Normal 576 208 544 208 +PIN 576 208 RIGHT 36 +PINATTR PinName full +PINATTR Polarity OUT +LINE Wide 576 368 544 368 +PIN 576 368 RIGHT 36 +PINATTR PinName wr_data_count[10:0] +PINATTR Polarity OUT +LINE Normal 576 432 544 432 +PIN 576 432 RIGHT 36 +PINATTR PinName empty +PINATTR Polarity OUT +LINE Wide 576 592 544 592 +PIN 576 592 RIGHT 36 +PINATTR PinName rd_data_count[10:0] +PINATTR Polarity OUT + diff --git a/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.gise b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.gise new file mode 100644 index 000000000..90240bfb2 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.gise @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<generated_project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema">
+
+ <!-- -->
+
+ <!-- For tool use only. Do not edit. -->
+
+ <!-- -->
+
+ <!-- ProjectNavigator created generated project file. -->
+
+ <!-- For use in tracking generated file and other information -->
+
+ <!-- allowing preservation of process status. -->
+
+ <!-- -->
+
+ <!-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. -->
+
+ <version xmlns="http://www.xilinx.com/XMLSchema">11.1</version>
+
+ <sourceproject xmlns="http://www.xilinx.com/XMLSchema" xil_pn:fileType="FILE_XISE" xil_pn:name="fifo_s6_1Kx36_2clk.xise"/>
+
+ <files xmlns="http://www.xilinx.com/XMLSchema">
+ <file xil_pn:fileType="FILE_ASY" xil_pn:name="fifo_s6_1Kx36_2clk.asy" xil_pn:origination="imported"/>
+ <file xil_pn:fileType="FILE_VEO" xil_pn:name="fifo_s6_1Kx36_2clk.veo" xil_pn:origination="imported"/>
+ </files>
+
+ <transforms xmlns="http://www.xilinx.com/XMLSchema"/>
+
+</generated_project>
diff --git a/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.ngc b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.ngc new file mode 100644 index 000000000..f7e21b27e --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.ngc @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$7:`40<,[o}e~g`n;"2*726&;$:,)?40893456789:;8=5?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>7;1234=678;1;495?892;?5>?81:3<<>409:3<5>7092;4=6?4:2;BC7<9:1:"=?i;029MKVR\3zycjQjmqvz[qnumzb757>127924?OIX\^1|ah_dosp|Ys`{oxdRo|sdpw8<<76;<0==4FNQWW>uthoVof|ywPtipfwmYimnki1750?3f?46=AGZ^X7~}of]eqijX|axne26:1<11>772@D[YY4rne\bpjkW}byi~fParqfvq:>294996??:HLSQQ<wzfmTjxbc_ujqavnXflmjxh26:1<2=>772F__\XZ5d`vb[firf}626=0>d:32>JSSX\^1~iQkauc\gjsi|5;;6=0>d:32>JSSX\^1{Qkauc\gjsi|5;;6=0>4:37>LHW]]0JHI\N<0194;7338>1EC^ZT;CG@WD;9:0;2<5=1191<=>?0123456789:24>4FIHKJML6?012345753:81EC^ZT;FJE956294:>6==:HLSQQ<CAK68=7>112906?IR\Y__6IAN<2394;743:81CXZ_UU8GKG:493:5=?5<6;KMTPR=l`d7?84?>06873<H]]Z^X7j`uu>01?69981?6D@_UU8GMUG;;3:5=<5;:HLSQQ<CAYH7?7>11197>LHW]]0\IL2<:1<24>2=AGZ^X7YJB=194;753=0DYY^ZT;FLTD:4294:>6:5OTVSQQ<CGYH7?7>14:7650><=<?><9>?1:41?3?33?32:559984:23?682<25;7968;52<0>1?80:L:46@CB<>0FIHKJML??;7CBEDGFIHKJMLONAd95wi~0=jyl85:"3394B==0NOL3<=>>;908<52<09:;==570123456789:;<=>;;90751=?<;;?75K7A09:0>?780805;64974:2<?19912:;799845=<0>>?397L<7;@CBE3GFI11JHI\N<1<:?DBCZH6:<374AEFQE976601JHI\N<00=f>GCL[K7=>4?>89B@ATF489546OKDSC?5;><IMNYM1<18:CG@WG;;720MIJ]A=6=<>GCL[K79364AEFQE90902KOH_O37?:8EABUI52546OKDSC?=;><IMNYN1>19:CG@WD;99427LJKRC>25;?<IMNYN1?=>c9B@ATE4891<374AEFQF974611JHI\M<0<;?DBCZK69255NDEPA868?3HNO^O2;>99B@ATE4<437LJKRC>5:==FLMXI0:07;@FGVG:?611JHI\M<8<1?DC43HFG56O\YOA\V@A53K:87O[=8:@VWZOINF;0O<>4CBA@GFED>JIHONML2:AF57=D@LI@SAGLEOQF[Q_WM;1HE95LLJC7?FJLJ:1H@_74CNONMQRBL8>0OB\J_FGMAWGSAFDTECH@7:AQADRBL81O>6J7c:FBPDYPAM^CSLm4D@VB[ROC\AUI>6JF6:FJE969?2NBM1??>69GMD:697=0HDO313<4?AOF4895;6JFA=37:2=CAH6:9394DHC?53803MCJ0<917:FJE97?6>1OEL2>9?48@LG;97=0HDO321<4?AOF4;;5;6JFA=01:2=CAH69?394DHC?61803MCJ0?;17:FJE9416>1OEL2=7?58@LG;:14<7IGN<3;=2>BNI585;6JFA=13:<=CAH68=7>17:FJE9566?1OEL2<>79GMD:36?1OEL2:>79GMD:16?1OEL28>79GMD:?6?1OEL26>79GMG:76>1OEO2>0?58@LD;984<7IGM<00=3>BNJ5;82:5KIC>20;1<L@H7=808;EKA8409?2NBN1?8>69GMG:607=0HDL318<5?AOE484<7IGM<32=3>BNJ58:2:5KIC>16;1<L@H7>>08;EKA8729?2NBN1<:>69GMG:5>7=0HDL326<4?AOE4;25;6JFB=0::3=CAK692:5KIC>04;?<L@H7?<4?>69GMG:497<0HDL33?48@LD;<7<0HDL35?48@LD;>7<0HDL37?48@LD;07<0HDL39?58@LVF494<7IG_A=3=3>BNXH69245KIQC?7?69?2NB\L2<>69GMUD;87=0HD^M<0<4?AOWJ58556JFPC>0>5803MC[N1=16:FLE969?2NDM1??>69GKD:697=0HBO313<4?AIF4895;6J@A=37:2=CGH6:9394DNC?53803MEJ0<917:FLE97?6>1OCL2>9?48@JG;97=0HBO321<4?AIF4;;5;6J@A=01:2=CGH69?394DNC?61803MEJ0?;17:FLE9416>1OCL2=7?58@JG;:14<7IAN<3;=2>BHI585;6J@A=13:<=CGH68=7>17:FLE9566?1OCL2<>79GKD:36?1OCL2:>79GKD:16?1OCL28>79GKD:?6?1OCL26>69GKDYUMN<0HBL30?58@JD;994<7IAM<03=3>BHJ5;92:5KOC>27;1<LFH7=908;EMA8439?2NDN1?9>69GKG:6?7=0HBL319<4?AIE4835:6J@B=3=3>BHJ58;2:5KOC>15;1<LFH7>?08;EMA8759?2NDN1<;>69GKG:5=7=0HBL327<4?AIE4;=5;6J@B=0;:2=CGK695384DN@?6;1<LFH7?=06;EMA867=87=0HBL330<5?AIE4:4=7IAM<5<5?AIE4<4=7IAM<7<5?AIE4>4=7IAM<9<5?AIE404<7IAM_SGD3>BHXH6;2:5KOQC?5;1<LFZJ0?06;EMSE95=87=0HB^N<2<4?AIWJ5:5;6J@PC>2:2=CGYH7>374DNRA86<76>1OC]L33?68AD0502OJML8N2@18AKG43LDIn6KA_SQWVDKXIk1NBR\\TSCN[G3<NHFXI?5ID29E@F2<NMIN?6HKP59E@UC33ONYI<>4FGDE6654NOLM<=>?8:DEBC329<20JKHI7GDE5>A43NDO=6G=;H21?L753@897D==;H61?L3?3@DBX]Q?099JJLRWW9;37D@FTQ]36==NF@^[S==7;HLJPUY7<11BBDZ__17;?LHN\YU;:55FNHVS[51>3@DBX^ZNTD58MKOSW9:<7D@FT^223>OIA]U;>:5FNHV\461<AGC_S=:8;HLJPZ62?2CEEYQ?669JJLRX8>=0ECG[_1:4?LHN\V:2;6GAIU]3E2=NF@^T<O94IOKW[5E03@DBXR>K7:KMMQY7M>1BBDZP0G58MKOSW8:<7D@FT^323>OIA]U:>:5FNHV\561<AGC_S<:8;HLJPZ72?2CEEYQ>669JJLRX9>=0ECG[_0:4?LHN\V;2;6GAIU]2E2=NF@^T=O94IOKW[4E03@DBXR?K7:KMMQY6M>1BBDZP1G58MKOSW;:<7D@FT^023>OIA]U9>:5FNHV\661<AGC_S?:8;HLJPZ42?2CEEYQ=669JJLRX:>=0ECG[_3:4?LHN\V82;6GAIU]1E2=NF@^T>O94IOKW[7E03@DBXR<K7:KMMQY5M>1BBDZP2G58MKOSW::<7D@FT^123>OIA]U8>:5FNHV\761<AGC_S>:8;HLJPZ52?2CEEYQ<669JJLRX;>=0ECG[_2:4?LHN\V92;6GAIU]0E2=NF@^T?O94IOKW[6E03@DBXR=K7:KMMQY4M>1BBDZP3G48MKOSWH<0ECG[_C;8MKOSWOCGI>5FNW08HL0<DFKOII94LNEJGDJ33E__>95CUU17?ISS<=1GYY;;;MWW20=J[NEE96CZXB[`?Hgmg{\n~~g`nb9Nmkiu^lxxeb`=;O30?K77;2D:=95A1007?K76;=1E=<:;;O3211=I98<?7C?>759M54>33G;:5>5A1368J447<2D:><:4N0010>H6::>0B<<;4:L2602<F88=86@>2668J44?<2D:>4=4N017?K748=1E=>?;;O3061=I9:9?7C?<459M56333G;8:95A1257?K740=1E=>7<;O370>H6<9>0B<:>4:L2072<F8>886@>4568J422<2D:8;:4N0640>H6<190B<;;;O3666=I9?>0B<894:L2222<F8<386@>6818J4133G;<<95A1637?K70:=1E=:=;;O3401=I9>??7C?8659M52133G;<495A16;0?K7?<2D:4=:4N0:20>H60;>0B<6<4:L2<12<F82>86@>8768J4>0;2D:5>5A2118J7743G89?6@=329M615<F;?87C<93:L136=I:190B?7<;O137>H49:1E??=4N210?K53;2D89>5A3718J6143G93?6@<929M055<F=;87C:=3:L776=I<=90B9;<;O657>H3?:1E85<4N408J34<F>80B5<4N8d8JGYE]ZZBBR^]OQQ4?KCS_FX@86@@ND38K7=HC81[86^NRUc8TLHXJ\YBHUl4PHL\FPUIIDO27]EPHMWWJH5<X[O:7\?4R`9QEHD6>K]N^;5]EFAFE3=UMNINN95]SUC7?WUSJ>1Y_YZVPDg8VVRXX[CD^DZV_@g8VVRXX[CD^DZV_C38W45<[@GTOBBCIRKLJZEOMJAj7^GB_EGUMFC13ZE^^NK7;RRBVQGI>>1X^[OC_@58WWPFDVH?7^WAC59WVPC33]S[I>j4U1-dvc(un&mht#mcky-N|jtXZMU[BY\T0\]Q@ZVI\[Q:QRV@R^40[jYg5:5=>j4U1-dvc(un&mht#mcky-N|jtXZMU[BY\T1\]Q@ZVI\[Q9QRV@R^41[jYg5:5=>j4U1-dvc(un&mht#mcky-N|jtXZMU[BY\T2\]Q@ZVI\[Q8QRV@R^42[jYg5:5=>j4U1-dvc(un&mht#mcky-N|jtXZMU[BY\T3\]Q@ZVI\[Q?QRV@R^43[jYg5:5=>j4U1-dvc(un&mht#mcky-N|jtXZMU[BY\T4\]Q@ZVI\[Q>QRV@R^7:[jYg5:5=>j4U1-dvc(un&mht#mcky-N|jtXZMU[BY\T5\]Q@ZVI\[Q=QRV@R^7;[jYg5:5=>j4U1-dvc(un&mht#mcky-N|jtXZMU[BY\T6\]Q@ZVI\[Q<QRV@R^74[jYg5:5=>j4U1-dvc(un&mht#mcky-N|jtXZMU[BY\T7\]Q@ZVI\[Q3QRV@R^75[jYg5:5=>j4U1-dvc(un&mht#mcky-N|jtXZMU[BY\T8\]Q@ZVI\[Q2QRV@R^76[jYg5:5=>m4U1-dvc(un&mht#mcky-N|jtX_[U[BY\T0\]TVZVI\[Q:QRV@R^;\kZ~h494:?n5Z0.eqb+ta'nis"nbdx.O{kwYPZVZEX_U>]^UQ[UHSZR8VSUA]_9]l[}i;87;8o6[?/fpe*w`(ojr%oaew/LzlvZQUWYD_^V<R_VP\TKRUS:WTTB\P7^m\|j:7689h7X> gsd-vc)`kq$h`fv Mymq[RTXXG^YW>SPWS]SJQT\<TUSC_Q9_n]{k9699:i0Y=!hrg,qb*adp'iggu!Bxnp\SWYWF]XP8PQXR^RMPW]2UVRD^R;Po^zl8586;j1^<"i}f/pe+be&jf`t"Cwos]TVZVI\[Q>QRY]_QLWV^0ZWQEYS9Q`_ym?4;74k2_;#j|i.sd,cf~)keas#@v`r^UQ[UHSZR<VSZ\PPOVQ_2[XPFXT?RaPxn>3:45d3\:$kh!rg-dg}(ddbr$Aua}_VP\TKRUS>WT[_Q_NUPX<XY_G[U9SbQwo=2=56e<]9%l~k }f.e`|+ekcq%Ftb|PWS]SJQT\0TU\^R^ATSY:YZ^HZV;TcRv`<1<274=R8&myj#|i/fa{*fjlp&XOS]@[RZ2^[WBXXG^YW<SPXNP\26Yh;81^<"i}f/pe+be&jf`t"\K_QLWV^7ZW[NT\CZ][3_\\JTX>;Ud?<5Z0.eqb+ta'nis"nbdx.PG[UHSZR8VS_JPPOVQ_6[XPFXT:<Q`309V4*aun'xm#jmw.bnh|*TCWYD_^V=R_SF\TKRUS=WTTB\P61]l74=R8&myj#|i/fa{*fjlp&XOS]@[RZ6^[WBXXG^YW8SPXNP\1<Yh;81^<"i}f/pe+be&jf`t"\K_QLWV^3ZW[NT\CZ][7_\\JTX=1Ud?<5Z0.eqb+ta'nis"nbdx.PG[UHSZR<VS_JPPOVQ_2[XPFXT9:Q`309V4*aun'xm#jmw.bnh|*TCWYD_^V9R_SF\TKRUS1WTTB\P57]l74=R8&myj#|i/fa{*fjlp&XOS]@[RZ:^[WBXXG^YW4SPXNP\10Yh;91^<"i}f/pe+be&jf`t"Y]_QLWV^6ZW^XT\CZ][0_\\JTX1Ve8<6[?/fpe*w`(ojr%oaew/VP\TKRUS8WT[_Q_NUPX6XY_G[U3Sb=?;T2,cw`)zo%lou lljz,SWYWF]XP>PQXR^RMPW]4UVRD^R9Po228Q5)`zo$yj"ilx/aoo})PZVZEX_U<]^UQ[UHSZR>VSUA]_7]l75=R8&myj#|i/fa{*fjlp&]YS]@[RZ6^[RTXXG^YW8SPXNP\1Zi482_;#j|i.sd,cf~)keas#Z\PPOVQ_0[X_[U[BY\T6\][KWY3Wf9;7X> gsd-vc)`kq$h`fv WS]SJQT\>TU\^R^ATSY4YZ^HZV9Tc>>4U1-dvc(un&mht#mcky-TVZVI\[Q<QRY]_QLWV^>ZWQEYS?Q`319V4*aun'xm#jmw.bnh|*QUWYD_^V6R_VP\TKRUS0WTTB\P1^m15>S7'nxm"h gbz-gim'{nT|cz}_ckm858592_;#j|i.sd,cf~)keas#jPpovq[goi4849=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0?0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<2<15>S7'nxm"h gbz-gim'{nT|cz}_ckm818592_;#j|i.sd,cf~)keas#jPpovq[goi4<49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0;0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<6<15>S7'nxm"h gbz-gim'{nT|cz}_ckm8=8592_;#j|i.sd,cf~)keas#jPpovq[goi4049<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS=<?;T2,cw`)zo%lou lljz,vaYwf}xTnd`P1328Q5)`zo$yj"ilx/aoo})ulVzexQmio]165=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ5582_;#j|i.sd,cf~)keas#jPpovq[goiW=8;7X> gsd-vc)`kq$h`fv re]sjqtXj`dT9?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ9219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^514>S7'nxm"h gbz-gim'{nT|cz}_ckm[=473\:$kh!rg-dg}(ddbr$~iQnup\flhX1;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k5:5>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0<0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm32?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>0:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg929:91^<"i}f/pe+be&jf`t"|k_qlwvZad4<49<6[?/fpe*w`(ojr%oaew/sf\tkruWni7:3<?;T2,cw`)zo%lou lljz,vaYwf}xTkn28>328Q5)`zo$yj"ilx/aoo})ulVzexQhc=:=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`8<86n2_;#j|i.sd,cf~)keas#jPpovq[beX88l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV;:j6[?/fpe*w`(ojr%oaew/sf\tkruWniT><h4U1-dvc(un&mht#mcky-q`Zvi|{UloR=>f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP40d8Q5)`zo$yj"ilx/aoo})ulVzexQhc^72b>S7'nxm"h gbz-gim'{nT|cz}_fa\24`<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ16n2_;#j|i.sd,cf~)keas#jPpovq[beX08l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV39:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=2=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6:2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?6;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol0>0=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc929:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij2:>348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;>78=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<6<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo525>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>::73<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT<?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\573<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT>?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\773<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT8?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\173<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT:?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\373<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT4?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\=7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2?>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86:2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:56;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>0:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2;>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86>2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:16;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>4:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<27>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8622>74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4]>UVxnhxmj_ymq[41Xg:k0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0Y:YZtbl|inSua}_05\k45>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?T9\]qaasdmVrd~R?7_n1b?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;P5PQ}eew`aZ~hzV;3Sb?<f:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6S0WT~hjzcd]{kwY618Usc1>112;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8Q2QR|jdtaf[}iuW83Tc>h4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4]>UVxnhxmj_ymq[766Wqe7<3?<9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6S0WT~hjzcd]{kwY58Ve8j6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2_<[Xzln~ohQwos]154Yg5:5=>74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4]>UVxnhxmj_ymq[77Xg:o0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0Y:YZtbl|inSua}_302[}i;87>97X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3X=XYummhiRv`r^015Z~h494T_Z><9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6S0WT~hjzcd]{kwY5:Ve8i6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2_<[Xzln~ohQwos]174Yg5:58?5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5^?ZW{ooynkPxnp\667Xpf6;2R]X02;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8Q2QR|jdtaf[}iuW;9Tc>k4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4]>UVxnhxmj_ymq[726Wqe7<3=6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7\1TUyii{le^zlvZ43Wf9n7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3X=XYummhiRv`r^065Z~h494?>6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2_<[Xzln~ohQwos]114Yg5:5S^Y?389V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc9R3VSkkubg\|jtX:<Ud>55Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5Z6502_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj>_00;?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;T>?64U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4Y4:11^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1^61<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S8<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X>;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]46==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R6=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W08:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7<3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`31?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?6;463\:$kh!rg-dg}(ddbr${Qnup\flh;;78:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d783<>;T2,cw`)zo%lou lljz,swYwf}xTnd`35?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?2;463\:$kh!rg-dg}(ddbr${Qnup\flh;?78:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d743<>;T2,cw`)zo%lou lljz,swYwf}xTnd`39?03?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\476<]9%l~k }f.e`|+ekcq%|~R~ats]amkY6:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV89<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS><?;T2,cw`)zo%lou lljz,swYwf}xTnd`P4328Q5)`zo$yj"ilx/aoo})pzVzexQmio]665=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ0582_;#j|i.sd,cf~)keas#z|Ppovq[goiW>8;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT4?>4U1-dvc(un&mht#mcky-tvZvi|{UiecQ6219V4*aun'xm#jmw.bnh|*quWyd~Ril<1<14>S7'nxm"h gbz-gim'~xT|cz}_fa?5;473\:$kh!rg-dg}(ddbr${Qnup\cf:56;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k595>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh090=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm35?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>5:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg919:91^<"i}f/pe+be&jf`t"y}_qlwvZad4149<6[?/fpe*w`(ojr%oaew/vp\tkruWni753?i;T2,cw`)zo%lou lljz,swYwf}xTknQ?1g9V4*aun'xm#jmw.bnh|*quWyd~Ril_03e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]15c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[67a3\:$kh!rg-dg}(ddbr${Qnup\cfY39o1^<"i}f/pe+be&jf`t"y}_qlwvZadW<;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU==k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS:?i;T2,cw`)zo%lou lljz,swYwf}xTknQ71g9V4*aun'xm#jmw.bnh|*quWyd~Ril_805?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4949:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=3=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn692?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?7;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol090=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc939:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij29>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;?78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<9<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo535>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]360=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU:>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]160=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU8>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]760=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU>>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]560=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU<>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef];60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU2>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5969:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59>9:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=;=7`=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=V7R_sggqfcXpfxT==?Pxn>3:14<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<U6]^pf`pebWqeyS<>>_ym?4;YT_9927X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3X=XYummhiRv`r^33[j5b3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?T9\]qaasdmVrd~R?>1^zl858412_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>[8_\v`brklUscQ>1^m0a>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:W4SPrdfvg`Yg{U:><Qwo=2=07=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=V7R_sggqfcXpfxT=??Pxn>3:ZUP8:30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0Y:YZtbl|inSua}_00\k6><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<U6]^pf`pebWqeyS9Q`389V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9R3VSkkubg\|jtX<Ve:?55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5^?ZW{ooynkPxnp\1Zi412_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>[8_\v`brklUscQ:_n30a>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:W4SPrdfvg`Yg{U==Rv`<1<27==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=V7R_sggqfcXpfxT:Ra<e:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6S0WT~hjzcd]{kwY09Vrd0=0>399V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9R3VSkkubg\|jtX?Ve8i6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2_<[Xzln~ohQwos];5Z~h494:?55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5^?ZW{ooynkPxnp\<Zi4l2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>[8_\v`brklUscQ61^zl858392_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>[8_\v`brklUscQ61^zl858X[^:846[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2_<[Xzln~ohQwos]:[j4?3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?P03:8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8U:>55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z4502_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>_20;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;T8?64U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4Y2:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^41<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S:<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X0;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]:0g=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*KflmUoekhPws]q`^77UVMEHR68_n]b`aY4WF__Snw31?6`?P6(o{l%~k!hl1,q`*au9'myhn<!rea,IdbcWmcmjRy}_sfX55[XOGNT4:Q`_`fg[6YH]]Ugyy2=>5a8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NeabXl`lmSz|PreY24XY@FMU3;RaPaef\7ZIR\Vf~x1=14b9V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.Ob`aYcaolT{Q}dZ33YZAILV2<SbQnde]0[JSSWe090;c:W3+bta&{l$ka>!re-dv4(`zmi9"jl/Lcg`ZbnnoU|~R|k[02^[BHCW1=TcRokd^1\KPRXd|~793:l;T2,cw`)zo%l`= }d.eq5+aulj8%~im M`fg[aoanV}ySjT11_\CKBX0>UdSljk_2]LQQYk}}6=29m4U1-dvc(un&mg<#|k/fp2*btck;$yhn!Baef\`l`aW~xT~iU>0\]DJAY??VeTmijP3^MVPZjr|5=58n5Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"Cnde]gmc`X{UyhV??]^EM@Z>0WfUjhiQ<_NWW[iss414?o6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@okd^fjbcYpzVxoW<>R_FLG[=1XgVkohR=POTV\hpr;17><7X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A`{w_ekebZquW{nP==SPGOF\<2YhWdsS8Q@UU3202=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*Kj}qUoekhPws]q`^77UVMEHR68_n]nq}Y2WF__?<:8;T2,cw`)zo%l`= }d.eq5+aulj8%~im Mlw{[aoanV}ySjT11_\CKBX0>UdS`{w_4]LQQ26<>1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&GfyuQkigd\swYulR;;QRIAD^:4[jYj}qU>SB[[501;?P6(o{l%~k!hl1,q`*au9'myhn<!rea,IvseWmcmjRy}_sf\phvXkp6;2>64U1-dvc(un&mg<#|k/fp2*btck;$yhn!Bst`\`l`aW~xT~iQ{mq]`}979;11^<"i}f/pe+bj7&{n$k?!gsf`6+tck&GxyoQkigd\swYulV~f|Rmv<3<0<>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWjs7?3=7;T2,cw`)zo%l`= }d.eq5+aulj8%~im Mrwa[aoanV}ySjPtlr\g|:36:20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}Qly=7=7==R8&myj#|i/fn3*wb(o{;%kjl2/pgg*Kt}kUoekhPws]q`ZrjxVir0;0<8:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[f;?7937X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pcx>;:6?<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)J{|hThdhi_vp\vaYseyUgyy2?>2;8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NwpdXl`lmSz|Pre]wiuYk}}6:2>74U1-dvc(un&mg<#|k/fp2*btck;$yhn!Bst`\`l`aW~xT~iQ{mq]oqq:56:30Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}Qcuu>0:6?<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)J{|hThdhi_vp\vaYseyUgyy2;>2;8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NwpdXl`lmSz|Pre]wiuYk}}6>2>74U1-dvc(un&mg<#|k/fp2*btck;$yhn!Bst`\`l`aW~xT~iQ{mq]oqq:16:30Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}Qcuu>4:6?<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)J{|hThdhi_vp\vaYseyUgyy27>2;8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NwpdXl`lmSz|Pre]wiuYk}}622>74U1-dvc(un&mg<#|k/fp2*btck;$yhn!Bst`\`l`aW~xT~iQ{mq]{kw:76:30Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}Qwos>2:6?<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)J{|hThdhi_vp\vaYseyUsc2=>2;8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NwpdXl`lmSz|Pre]wiuYg{682>74U1-dvc(un&mg<#|k/fp2*btck;$yhn!Bst`\`l`aW~xT~iQ{mq]{kw:36:30Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}Qwos>6:6?<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)J{|hThdhi_vp\vaYseyUsc29>2;8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NwpdXl`lmSz|Pre]wiuYg{6<2>74U1-dvc(un&mg<#|k/fp2*btck;$yhn!Bst`\`l`aW~xT~iQ{mq]{kw:?6:30Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}Qwos>::15<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)caolT{Q}dZ33YZAILV2<SbQbuy]6[JSS494?86[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#igif^uq[wb\99WTKCJP86]l[hsW<UDYY2>0?65?P6(o{l%~k!hl1,q`*au9'myhn<!rea,`l`aW~xT~iU>0\]DJAY??VeTaxvP5^MVP9776:;?m6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#igif^uq[wb\99WTKCJP86]l[hsW<UDYY2>0?12[VQ6<11^<"i}f/pe+bj7&{n$k?!gsf`6+tck&nbjkQxr^pg_46ZWNDOS59Po^ov|Z3XG\^7==0PSV37=>S7'nxm"h gm2-va)`z8$l~im=.sf`+aoanV}ySjT11_\CKBX0>UdS`{w_4]LQQ:687Uihi:;3:W3+bta&{l$ka>!re-dv4(`zmi9"jl/ekebZquW{nP==SPGOF\<2YhWdsS8Q@UU>2:15<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)caolT{Q}dZ33YZAILV2<SbQbuy]6[JSS4;4??6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#igif^uq[wb\99WTKCJP86]l[hsW<UDYY2<>518Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-gmc`X{UyhV??]^EM@Z>0WfUfyuQ:_NWW8183<2_;#j|i.sd,ci6)zm%l~< hrea1*wbd'mcmjRy}_sfX55[XOGNT4:Q`_lw{[0YH]]6?2<:<;T2,cw`)zo%l`= }d.eq5+aulj8%~im dhde[rtXzmQ:<PQHNE];3ZiXe|rT9RAZT=7=01=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*bnnoU|~R|k[02^[BHCW1=TcRczx^7\KPR;=7;??6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#igif^uq[wb\99WTKCJP86]l[hsW<UDYY29>568Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-gmc`X{UyhV??]^EM@Z>0WfUfyuQ:_NWW8386<:1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&nbjkQxr^pg_46ZWNDOS59Po^ov|Z3XG\^7;3:;;T2,cw`)zo%l`= }d.eq5+aulj8%~im dhde[rtXzmQ:<PQHNE];3ZiXe|rT9RAZT=5=515<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)caolT{Q}dZ33YZAILV2<SbQbuy]6[JSS414?;6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#igif^uq[wb\99WTKCJP86]l[hsW<UDYY27>^QT415<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)caolT{Q}dZ33YZAILV2<SbQbuy]6[JSS404?;6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#igif^uq[wb\99WTKCJP86]l[hsW<UDYY26>^QT566<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)caolT{Q}d^vnt969:01^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi=2=6d=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTe1??>3;8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-q`ZbdW`6:2?74U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[l:56;30Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h>0:7?<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)ulVnhSd2;>3;8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-q`ZbdW`6>2?74U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[l:16;30Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h>4:7?<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)ulVnhSd27>3;8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-q`ZbdW`622?64U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lY7:11^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi^31=>S7'nxm"h gm2-va)`z8$l~im=.sf`+wbXljUbS<>=8:W3+bta&{l$ka>!re-dv4(`zmi9"jl/sf\`fYnW;837X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$~iQkc^k\77><]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)ulVnhSdQ;299V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.pg[aeXaV?946[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#jPdb]j[34?3\:$kh!rg-dh5(ul&my=#i}db0-vae(zmUooRgP73:8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-q`ZbdW`U3>55Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"|k_ea\mZ?482_;#j|i.sd,ci6)zm%l~< }fvdw+HkrpVXJAR\K_DL\BR@S98>?7X> gsd-vc)`d9$yh"i}1/pescr(EdsSjafnf]fiur~Wo}mxR^XR^14[jYJ]QU>:Ra>13;8Q5)`zo$yj"ic0/pg+bt6&{l|jy!]AL]QABIR\VOE=>=4U1-dvc(un&mg<#|k/fp2*w`pn}%hy|Pfvdw[vrf|lUM_@QIFe302>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_GQN[C@c9$Ce?:5Z0.eqb+ta'nf;"j gs3-vcqa|&i~~Qiwgv\wqgsmVLXARHId0/Jj4543\:$kh!rg-dh5(ul&my=#|iwgv,gptuWo}mxR}{aug\BVKXNOn9?;5Z0.eqb+ta'nf;"j gs3-vcqa|&i~~Qiwgv\wqgsmVLXARHId3/Jj61<]9%l~k }f.eo4+tc'nx:"hxfu-`qwtXn~lS~zntd]EWHYANm8&Ec?=8:W3+bta&{l$ka>!re-dv4(un~l#hctx]escrXnk8<7X> gsd-vc)`d9$yh"i}1/pescr(mdzuRhxfu]j7a=R8&myj#|i/fn3*wb(o{;%~kyit.elmkaXmdzuRhxfu]SSWY4?VeTAXVP57]l60=R8&myj#|i/fn3*wb(o{;%~kyit.wpawYqieco>h5Z0.eqb+ta'nf;"j gscp*wus{&i;#jczx/abvwim}6;2?k4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"ibuy,`ewt~fl~7=3<j;T2,cw`)zo%l`= }d.eqev(u{}y$o=!hmtz-gdtuqgo0?0=e:W3+bta&{l$ka>!re-dvdu)zz~x#n> glw{*fguzpdnx1=12g9V4*aun'xm#jb?.sf,cwgt&{y"m?/fov|+ajS9W%k`?!m00e?P6(o{l%~k!hl1,q`*auiz$yy} c1-dip~)odQ:Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'mfW?S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g5)`e|r%k`U<]/enw+kt:o1^<"i}f/pe+bj7&{n$ko|.sqww*e7'ng~t#ib[5_-chu)ez887X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1>1259V4*aun'xm#jb?.sf,cwgt&{y"m?/w3?4;75;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(~86:2?:4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"x><0<266=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;:78?7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1<11318Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t28685<2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(~8682<<<;T2,cw`)zo%l`= }d.eqev(u{}y$o=!y1=6=61=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;<7;9i6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$k`{w.bcqv|hb|5:5>h5Z0.eqb+ta'nf;"j gscp*wus{&i:#jczx/abvwim}6:2?k4U1-dvc(un&mg<#|k/fpbw+tt|z%h="ibuy,`ewt~fl~7>3<j;T2,cw`)zo%l`= }d.eqev(u{}y$o<!hmtz-gdtuqgo0>0=f:W3+bta&{l$ka>!re-dvdu)zz~x#n? glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`5*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:0=0=4:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0>3:4443\:$kh!rg-dh5(ul&mym~ }suq,g4)q95;5>95Z0.eqb+ta'nf;"j gscp*wus{&i:#{?31?317>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:56;>0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:0?0>229V4*aun'xm#jb?.sf,cwgt&{y"m>/w3?7;433\:$kh!rg-dh5(ul&mym~ }suq,g4)q9595=?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><5<10>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:3688;7X> gsd-vc)`d9$yh"i}ar,qwqu(kfg{<?j4U1-dvc(un&mg<#|k/fpbw+tt|z%hc`~?_bmnt4YHZV<Tc?k4U1-dvc(un&mg<#|k/fpbw+tt|z%hc`~?_bmnt4YHZV<Tc<<?;T2,cw`)zo%l`= }d.eqev(u{}y$obc13;8Q5)`zo$yj"ic0/pg+btf{'xxx~!}al]fiur~WohTe>k4U1-dvc(un&mg<#|k/srmpw)Je|rTkn>!cnwmp^?ZWNDOS:;Po^ov|Z4XG\^:<<=i;T2,cw`)zo%l`= }d.psjqt(EdsSjm?.bmvjq]>UVMEHR9:_n]nq}Y5WF__===>429V4*aun'xm#jb?.sf,vuhsz&GfyuQhc1,`kphsS0WTKCJP74]l[hsW;UDYY?>_HLU[55c3\:$kh!rg-dh5(ul&x{by| Mlw{[be7&je~byU6]^EM@Z12WfUfyuQ=_NWW645c3\:$kh!rg-dh5(ul&x{by| Mlw{[be7&je~byU6]^EM@Z12WfUfyuQ=_NWW745b3\:$kh!rg-dh5(ul&x{by| Mlw{[be7&je~byU6]^EM@Z12WfUfyuQ=_NWW0474l2_;#j|i.sd,ci6)zm%y|cz}/Lov|Zad8'idyczT9\]DJAY0=VeTaxvP2^MVP144l2_;#j|i.sd,ci6)zm%y|cz}/Lov|Zad8'idyczT9\]DJAY0=VeTaxvP2^MVP074l2_;#j|i.sd,ci6)zm%y|cz}/Lov|Zad8'idyczT9\]DJAY0=VeTaxvP2^MVP374l2_;#j|i.sd,ci6)zm%y|cz}/Lov|Zad8'idyczT9\]DJAY0=VeTaxvP2^MVP274l2_;#j|i.sd,ci6)zm%y|cz}/Lov|Zad8'idyczT9\]DJAY0=VeTaxvP2^MVP=74m2_;#j|i.sd,ci6)zm%y|cz}/Lov|Zad8'idyczT9\]DJAY0=VeTaxvP2^MVP=76;m1^<"i}f/pe+bj7&{n$~}`{r.Onq}Y`k9$hcx`{[8_\CKBX?<UdS`{w_3]LQQ?69h1^<"i}f/pe+bj7&{n$~}`{r.L264g<]9%l~k }f.eo4+tc'{zex!A173b?P6(o{l%~k!hl1,q`*twf}x$B<9=3:W3+bta&{l$ka>!re-qtkru'ni;"naznu>3:75<]9%l~k }f.eo4+tc'{zex!hc1,`kphs4849?6[?/fpe*w`(oe:%~i!}povq+be7&je~by2=>318Q5)`zo$yj"ic0/pg+wvi|{%lo= lotlw8685;2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}6?2?=4U1-dvc(un&mg<#|k/srmpw)`k9$hcx`{<4<17>S7'nxm"h gm2-va)uxg~y#jm?.bmvjq:16;90Y=!hrg,qb*ak8'xo#~ats-dg5(dg|d0:0=3:W3+bta&{l$ka>!re-qtkru'ni;"naznu>;:75<]9%l~k }f.eo4+tc'{zex!hc1,`kphs404856[?/fpe*w`(oe:%~i!}povq+be7&je~byU6]^EM@Z12WfUfyuQ=_NWW858412_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Q2QRIAD^56[jYj}qU9SB[[<0<0=>S7'nxm"h gm2-va)uxg~y#jm?.bmvjq]>UVMEHR9:_n]nq}Y5WF__0?0<9:W3+bta&{l$ka>!re-qtkru'ni;"naznuY:YZAILV=>SbQbuy]1[JSS4:4856[?/fpe*w`(oe:%~i!}povq+be7&je~byU6]^EM@Z12WfUfyuQ=_NWW818412_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Q2QRIAD^56[jYj}qU9SB[[<4<0=>S7'nxm"h gm2-va)uxg~y#jm?.bmvjq]>UVMEHR9:_n]nq}Y5WF__0;0<9:W3+bta&{l$ka>!re-qtkru'ni;"naznuY:YZAILV=>SbQbuy]1[JSS4>4856[?/fpe*w`(oe:%~i!}povq+be7&je~byU6]^EM@Z12WfUfyuQ=_NWW8=8412_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Q2QRIAD^56[jYj}qU9SB[[<8<16>S7'nxm"h gm2-va)uxg~y#jm?.bmvjqY7:;1^<"i}f/pe+bj7&{n$~}`{r.e`4+eh}g~T=?<4U1-dvc(un&mg<#|k/srmpw)`k9$hcx`{_301?P6(o{l%~k!hl1,q`*twf}x$kn>!cnwmpZ55:2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}U?>?5Z0.eqb+ta'nf;"j rqlwv*ad8'idyczP5308Q5)`zo$yj"ic0/pg+wvi|{%lo= lotlw[3453\:$kh!rg-dh5(ul&x{by| gb2-gjsi|V=9>6[?/fpe*w`(oe:%~i!}povq+be7&je~byQ7239V4*aun'xm#jb?.sf,vuhsz&mh<#m`uov\=70<]9%l~k }f.eo4+tc'{zex!hc1,`kphsWm;7<3<9;T2,cw`)zo%l`= }d.psjqt(oj:%ob{at^f28485>2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Uo=1<1279V4*aun'xm#jb?.sf,vuhsz&mh<#m`uov\`4:46;<0Y=!hrg,qb*ak8'xo#~ats-dg5(dg|dSi?34?05?P6(o{l%~k!hl1,q`*twf}x$kn>!cnwmpZb64<49:6[?/fpe*w`(oe:%~i!}povq+be7&je~byQk1=4=63=R8&myj#|i/fn3*wb(zyd~"il0/alqkrXl86<2?84U1-dvc(un&mg<#|k/srmpw)`k9$hcx`{_e3?<;413\:$kh!rg-dh5(ul&x{by| gb2-gjsi|Vn:040=5:W3+bta&{l$ka>!re-qtkru'ni;"naznu]g5Z65=2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Uo=R?=5:W3+bta&{l$ka>!re-qtkru'ni;"naznu]g5Z45=2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Uo=R==5:W3+bta&{l$ka>!re-qtkru'ni;"naznu]g5Z25=2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Uo=R;=5:W3+bta&{l$ka>!re-qtkru'ni;"naznu]g5Z05=2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Uo=R9=5:W3+bta&{l$ka>!re-qtkru'ni;"naznu]g5Z>5=2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Uo=R7<9:W3+bta&{l$ka>!ws-dsdu)z~x#@czx^aliu7XOGNT5<Q`_LW[[27Xg8;9i6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.bcqv|hb|5:5>h5Z0.eqb+ta'nf;"z| gvcp*rus{&i:#jczx/abvwim}6:2?k4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,`ewt~fl~7>3<j;T2,cw`)zo%l`= xr.etev(p{}y$o<!hmtz-gdtuqgo0>0=f:W3+bta&{l$ka>!ws-dsdu)z~x#n? glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:0=0=4:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>3:4443\:$kh!rg-dh5(pz&m|m~ xsuq,g4)q95;5>95Z0.eqb+ta'nf;"z| gvcp*rus{&i:#{?31?317>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:56;>0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:0?0>229V4*aun'xm#jb?.vp,crgt&~y"m>/w3?7;433\:$kh!rg-dh5(pz&m|m~ xsuq,g4)q9595=?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><5<10>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:3688n7X> gsd-vc)`d9$|~"ixar,twqu(k;%laxv!c`pq}kcs4949i6[?/fpe*w`(oe:%{!hw`q-svrt'j8$k`{w.bcqv|hb|5;5>h5Z0.eqb+ta'nf;"z| gvcp*rus{&i9#jczx/abvwim}692?k4U1-dvc(un&mg<#y}/fubw+qt|z%h>"ibuy,`ewt~fl~7?3<i;T2,cw`)zo%l`= xr.etev(p{}y$o?!hmtz-ch]7U'mf=#c>2g9V4*aun'xm#jb?.vp,crgt&~y"m=/fov|+ajS8W%k`}!mr0e?P6(o{l%~k!hl1,tv*apiz$|y} c3-dip~)odQ9Q#ibs/op6c=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+bkrp'mfW>S!glq-iv4a3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)`e|r%k`U;]/enw+kt::1^<"i}f/pe+bj7&~x$kzo|.vqww*e5';7<3<;;T2,cw`)zo%l`= xr.etev(p{}y$o?!y1=2=575<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p6484986[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2>>000?P6(o{l%~k!hl1,tv*apiz$|y} c3-u5949:=1^<"i}f/pe+bj7&~x$kzo|.vqww*e5';7>3?=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>0:72<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64:4:>>5Z0.eqb+ta'nf;"z| gvcp*rus{&i9#{?34?07?P6(o{l%~k!hl1,tv*apiz$|y} c3-u59299;:0Y=!hrg,qb*ak8'}y#jyns/uppv)dgdz:??5Z0.eqb+ta'nf;"z| gvcp*rus{&ida}?PGOF\=4YhWD_SS:?Po328Q5)`zo$yj"ic0/uq+bqf{'}xx~!lolr16==R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZ`rdeUmnRg=5:W3+bta&{l$ka>!ws-dsdu)z~x#ob_gwohZo3i2_;#j|i.sd,ci6){%l{im>.vf`a}r(EhnoSigif^uq[wb\99WTKCJP92]l[dbcW=UDYYQly=3=0d=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HgclVnbjkQxr^pg_46ZWNDOS4=Po^cg`Z2XG\^Tot26>5a8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.Ob`aYcaolT{Q}dZ33YZAILV38SbQnde]7[JSSWjs753?>4c9V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZbnnoU|~R|k[02^[BHCW09TcRokd^6\KPRXd|~7>3:m;T2,cw`)zo%l`= xr.et`f7)minty!Baef\`l`aW~xT~iU>0\]DJAY>;VeTmijP4^MVPZjr|5958o5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^fjbcYpzVxoW<>R_FLG[<5XgVkohR:POTV\hpr;<7>i7X> gsd-vc)`d9$|~"ixdb3-saebp}%FmijPdhde[rtXzmQ:<PQHNE]:7ZiXimnT8RAZT^nvp939<k1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRjffg]tvZtcS8:VSJ@K_81\kZgclV>TCXZPltv?2;2e3\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnThdhi_vp\va]68TULBIQ63^m\eabX<VE^XRbzt=5=0g=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HgclVnbjkQxr^pg_46ZWNDOS4=Po^cg`Z2XG\^T`xz38?6a?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NeabXl`lmSz|PreY24XY@FMU2?RaPaef\0ZIR\Vf~x171529V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZbnnoU|~R|k[02^[BHCW09TcRokd^6\KPRXpfx7=3?>_HLU[52c3\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnThdhi_vp\va]68TULBIQ63^m\eabX<VE^XRv`r=0=542c3\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnThdhi_vp\va]68TULBIQ63^m\eabX<VE^XRv`r=1=542c3\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnThdhi_vp\va]68TULBIQ63^m\eabX<VE^XRv`r=6=542c3\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnThdhi_vp\va]68TULBIQ63^m\eabX<VE^XRv`r=7=542c3\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnThdhi_vp\va]68TULBIQ63^m\eabX<VE^XRv`r=4=542c3\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnThdhi_vp\va]68TULBIQ63^m\eabX<VE^XRv`r=5=54353\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnThdhi_vp\va]68TULBIQ63^m\eabX<VE^XRv`r=5=547X[^:>>6[?/fpe*w`(oe:%{!hwea2*rbdmq~$Aljk_ekebZquW{nP==SPGOF\=6YhWhnoS9Q@UU]{kw:068;:S^Y=539V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZbnnoU|~R|k[02^[BHCW09TcRokd^6\KPRXpfx7;3?>1^QT71b<]9%l~k }f.eo4+qu'n}oo< xdbg{p*KflmUoekhPws]q`^77UVMEHR7<_n]b`aY3WF__Sua}<9<251b<]9%l~k }f.eo4+qu'n}oo< xdbg{p*KflmUoekhPws]q`^77UVMEHR7<_n]b`aY3WF__Sua}<8<2561<]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVir0=0<7:W3+bta&{l$ka>!ws-dsae6&~nhiuz Mrwa[aoanV}ySjPtlr\g|:66:=0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rmv<3<03>S7'nxm"h gm2-sw)`mi:"zjleyv,IvseWmcmjRy}_sf\phvXkp682>94U1-dvc(un&mg<#y}/fugg4(pljosx"C|uc]gmc`X{UyhRzbp^az8184?2_;#j|i.sd,ci6){%l{im>.vf`a}r(EziSigif^uq[wbX|dzTot2:>258Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.OpqgYcaolT{Q}d^vntZe~4?48;6[?/fpe*w`(oe:%{!hwea2*rbdmq~$A~{m_ekebZquW{nTx`~Pcx>4:61<]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVir050<8:W3+bta&{l$ka>!ws-dsae6&~nhiuz Mrwa[aoanV}ySjPtlr\hpr;87937X> gsd-vc)`d9$|~"ixdb3-saebp}%FxlPdhde[rtXzmUa}Qcuu>2:6><]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVf~x1<1399V4*aun'xm#jb?.vp,crbd9'}oohv{/LqvfZbnnoU|~R|k_uos[iss4:4846[?/fpe*w`(oe:%{!hwea2*rbdmq~$A~{m_ekebZquW{nTx`~Pltv?0;5?3\:$kh!rg-dh5(pz&m|hn?!weaf|q)J{|hThdhi_vp\vaYseyUgyy2:>2:8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.OpqgYcaolT{Q}d^vntZjr|5<5?55Z0.eqb+ta'nf;"z| gvf`5+qcklr#@}zb^fjbcYpzVxoSyc_mww828402_;#j|i.sd,ci6){%l{im>.vf`a}r(EziSigif^uq[wbX|dzT`xz38?1;?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NwpdXl`lmSz|Pre]wiuYk}}622>64U1-dvc(un&mg<#y}/fugg4(pljosx"C|uc]gmc`X{UyhRzbp^zlv969;11^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'Dy~nRjffg]tvZtcW}g{Sua}<0<0<>S7'nxm"h gm2-sw)`mi:"zjleyv,IvseWmcmjRy}_sf\phvXpfx7>3=7;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]{kw:46:20Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rv`r=6=7==R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HurjVnbjkQxr^pg[qkwWqey080<8:W3+bta&{l$ka>!ws-dsae6&~nhiuz Mrwa[aoanV}ySjPtlr\|jt;>7937X> gsd-vc)`d9$|~"ixdb3-saebp}%FxlPdhde[rtXzmUa}Qwos>4:6><]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVrd~161399V4*aun'xm#jb?.vp,crbd9'}oohv{/LqvfZbnnoU|~R|k_uos[}iu404?>6[?/fpe*w`(oe:%{!hwea2*rbdmq~$hdhi_vp\va]68TULBIQ63^m\eabX<VE^X1?1439V4*aun'xm#jb?.vp,crbd9'}oohv{/ekebZquW{nP==SPGOF\=6YhWhnoS9Q@UU>1:14<]9%l~k }f.eo4+qu'n}oo< xdbg{p*bnnoU|~R|k[02^[BHCW09TcRokd^6\KPR;;7>97X> gsd-vc)`d9$|~"ixdb3-saebp}%oekhPws]q`^77UVMEHR7<_n]b`aY3WF__090;2:W3+bta&{l$ka>!ws-dsae6&~nhiuz dhde[rtXzmQ:<PQHNE]:7ZiXimnT8RAZT=7=07=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+aoanV}ySjT11_\CKBX1:UdSljk_5]LQQ:16=80Y=!hrg,qb*ak8'}y#jykc0,t`fc|&nbjkQxr^pg_46ZWNDOS4=Po^cg`Z2XG\^7;3:=;T2,cw`)zo%l`= xr.et`f7)minty!kigd\swYulR;;QRIAD^;0[jYflmU?SB[[<9<76>S7'nxm"h gm2-sw)`mi:"zjleyv,`l`aW~xT~iU>0\]DJAY>;VeTmijP4^MVP9?9:o1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'mcmjRy}_sf\phv;879;7X> gsd-vc)`d9$|~"ixdb3-saebp}%|~Rjnt`]`kphsW`6;2>?4U1-dvc(un&mg<#y}/fugg4(pljosx"y}_ecweZeh}g~Te1??>228Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.uq[agsiVidyczPi=3=75=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+rtXlh~jSnaznu]j878482_;#j|i.sd,ci6){%l{im>.vf`a}r({UomyoPcnwmpZo;;79;7X> gsd-vc)`d9$|~"ixdb3-saebp}%|~Rjnt`]`kphsW`6?2>>4U1-dvc(un&mg<#y}/fugg4(pljosx"y}_ecweZeh}g~Te1;1319V4*aun'xm#jb?.vp,crbd9'}oohv{/vp\`drfWje~byQf<7<04>S7'nxm"h gm2-sw)`mi:"zjleyv,swYci}kTob{at^k?3;573\:$kh!rg-dh5(pz&m|hn?!weaf|q)pzVnjxlQlotlw[l:?6::0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&}ySio{a^alqkrXa535>k5Z0.eqb+ta'nf;"z| gvf`5+qcklr#z|Pd`vb[firf}UbS=<i;T2,cw`)zo%l`= xr.et`f7)minty!xr^fbpdYdg|dSdQ>319V4*aun'xm#jb?.vp,crbd9'}oohv{/vp\`drfWje~byQf_021b>S7'nxm"h gm2-sw)`mi:"zjleyv,swYci}kTob{at^k\67`<]9%l~k }f.eo4+qu'n}oo< xdbg{p*quWmkmRm`uov\mZ55n2_;#j|i.sd,ci6){%l{im>.vf`a}r({UomyoPcnwmpZoX<;l0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&}ySio{a^alqkrXaV?9j6[?/fpe*w`(oe:%{!hwea2*rbdmq~${Qkauc\gjsi|VcT:?h4U1-dvc(un&mg<#y}/fugg4(pljosx"y}_ecweZeh}g~TeR9=f:W3+bta&{l$ka>!ws-dsae6&~nhiuz ws]geqgXkfexRgP83d8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.uq[agsiVidyczPi^;2`>S7'nxm"h gm2-sw)uidU|~Rka_h37<>S7'nxm"h gm2-sw)pxg~y#@czx^ejg5(`k9$hcx`{[8_\CKBX00UdS`{w_3]LQQ76W@D]S=:=;T2,cw`)zo%l`= xr.usjqt(EdsSjgl0/e`4+eh}g~P5PQHNE];=ZiXe|rT>RAZT3376>S7'nxm"h gm2-sw)pxg~y#@czx^ejg5(`k9$hcx`{[8_\CKBX00UdS`{w_3]LQQ56:11^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{<1<1<>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~7=3<7;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjq:56;20Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at=1=6==R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|d090=8:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkr;=7837X> gsd-vc)`d9$|~"ynup,cle7∋"naznu>5:7><]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfex191299V4*aun'xm#jb?.vp,suhsz&mbo= hc1,`kphs414946[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov?=;5b3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byU6]^EM@Z>>WfUfyuQ=_NWW8584m2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczT9\]DJAY?1VeTaxvP2^MVP979;l1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{[8_\CKBX00UdS`{w_3]LQQ:56:o0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{atZ;^[BHCW13TcRczx^0\KPR;;7>;7X> gsd-vc)`d9$|~"ynup,cle7∋"naznuY:YZAILV22SbQbuy]1[JSS4:4:=>h4U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmp^?ZWNDOS57Po^ov|Z4XG\^7?3<;3:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkr\1TULBIQ79^m\ip~X:VE^X1=1_cfg46c<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexV7R_FLG[=?XgVg~tR<POTV?0;5a3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byU6]^EM@Z>>WfUfyuQ=_NWW8186;l1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{[8_\CKBX00UdS`{w_3]LQQ:26:l0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{atZ;^[BHCW13TcRczx^0\KPR;=7;8i6[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uovX=XY@FMU35RaPmtz\6ZIR\5<5?k5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw_<[XOGNT44Q`_lw{[7YH]]6=2<=j;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjq]>UVMEHR66_n]nq}Y5WF__0:0<f:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkr\1TULBIQ79^m\ip~X:VE^X19112g8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|R3VSJ@K_9;\kZkrpV8TCXZ38?61?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}Q2QRIAD^::[jYj}qU9SB[[<9<\WR64m2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczT9\]DJAY?1VeTaxvP2^MVP9?9<;1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{[8_\CKBX00UdS`{w_3]LQQ:>6VY\<?94U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZ65?2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczP1358Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|V89;6[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov\771<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexR:=7:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkrX=;=0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^413>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~T;?94U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZ>5?2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczP93`8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|Vn:0=0=b:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkrXl86:2?l4U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZb64;49n6[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov\`4:46;h0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^f28185j2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczPd0>6:7d<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexRj><7<1f>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~Th<28>3`8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|Vn:050=b:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkrXl8622?o4U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZb6W98j7X> gsd-vc)`d9$|~"ynup,cle7∋"naznu]g5Z75i2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczPd0]16d=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dSi?P33c8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|Vn:S9<n;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjqYc9V?9m6[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov\`4Y1:h1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{_e3\37g<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexRj>_90b?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}Uo=R7=b:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkrXl;6;2?l4U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZb54849n6[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov\`7:56;h0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^f18685j2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczPd3>7:7d<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexRj=<4<1f>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~Th?29>3`8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|Vn90:0=b:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkrXl;632?l4U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZb54049m6[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov\`7Y7:h1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{_e0\57g<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexRj=_30b?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}Uo>R==a:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkrXl;U?>l5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw[a4X=;k0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^f1[34f3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byQk2^51e>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~Th?Q72`9V4*aun'xm#jb?.vp,suhsz&mbo= hc1,`kphsWm8T5<94U1-dvc(un&gna"j`uu]j858602_;#j|i.sd,i`k(lfSd2>0?3;?P6(o{l%~k!bel-gkprXa5;:2<64U1-dvc(un&gna"j`uu]j8449911^<"i}f/pe+hcj'me~xRg312<2<>S7'nxm"h mdo,`jssW`6:83?7;T2,cw`)zo%fi`!kotv\m9726820Y=!hrg,qb*kbe&ndyyQf<04=5==R8&myj#|i/lgn+air|Vc7=:0>8:W3+bta&{l$ahc dnww[l:607;37X> gsd-vc)jmd%ocxzPi=3::41<]9%l~k }f.ofi*bh}}Ub0<0>8:W3+bta&{l$ahc dnww[l:587;37X> gsd-vc)jmd%ocxzPi=02:4><]9%l~k }f.ofi*bh}}Ub0?<1199V4*aun'xm#`kb/emvpZo;::4:46[?/fpe*w`(elg$hb{{_h>10;7?3\:$kh!rg-nah)cg|~Te1<:>0:8Q5)`zo$yj"cjm.flqqYn4;<5=55Z0.eqb+ta'dof#iazt^k?628602_;#j|i.sd,i`k(lfSd2=8?3;?P6(o{l%~k!bel-gkprXa5822<94U1-dvc(un&gna"j`uu]j878602_;#j|i.sd,i`k(lfSd2<0?3;?P6(o{l%~k!bel-gkprXa59:2<64U1-dvc(un&gna"j`uu]j8649911^<"i}f/pe+hcj'me~xRg332<2<>S7'nxm"h mdo,`jssW`6883?7;T2,cw`)zo%fi`!kotv\m95268=0Y=!hrg,qb*kbe&ndyyQf<2<23>S7'nxm"h mdo,`jssW`6?2<94U1-dvc(un&gna"j`uu]j8086?2_;#j|i.sd,i`k(lfSd29>058Q5)`zo$yj"cjm.flqqYn4>4:;6[?/fpe*w`(elg$hb{{_h>;:41<]9%l~k }f.ofi*bh}}Ub040>6:W3+bta&{l$ahc dnww[lY79?1^<"i}f/pe+hcj'me~xRgP1058Q5)`zo$yj"cjm.flqqYnW8::;6[?/fpe*w`(elg$hb{{_h]2541<]9%l~k }f.ofi*bh}}UbS<<>7:W3+bta&{l$ahc dnww[lY6;8=0Y=!hrg,qb*kbe&ndyyQf_0623>S7'nxm"h mdo,`jssW`U:9<94U1-dvc(un&gna"j`uu]j[406?2_;#j|i.sd,i`k(lfSdQ>7058Q5)`zo$yj"cjm.flqqYnW82:;6[?/fpe*w`(elg$hb{{_h]2=40<]9%l~k }f.ofi*bh}}UbS??8;T2,cw`)zo%fi`!kotv\mZ479>1^<"i}f/pe+hcj'me~xRgP2034?P6(o{l%~k!bel-gkprXaV89=:5Z0.eqb+ta'dof#iazt^k\66703\:$kh!rg-nah)cg|~TeR<;169V4*aun'xm#`kb/emvpZoX:<;<7X> gsd-vc)jmd%ocxzPi^0552=R8&myj#|i/lgn+air|VcT>:?8;T2,cw`)zo%fi`!kotv\mZ4?9>1^<"i}f/pe+hcj'me~xRgP2835?P6(o{l%~k!bel-gkprXaV9:;6[?/fpe*w`(elg$hb{{_h]0441<]9%l~k }f.ofi*bh}}UbS>?>7:W3+bta&{l$ahc dnww[lY4:8=0Y=!hrg,qb*kbe&ndyyQf_2123>S7'nxm"h mdo,`jssW`U88<94U1-dvc(un&gna"j`uu]j[636>2_;#j|i.sd,i`k(lfSdQ;179V4*aun'xm#`kb/emvpZoX=8<0Y=!hrg,qb*kbe&ndyyQf_735?P6(o{l%~k!bel-gkprXaV=::6[?/fpe*w`(elg$hb{{_h];53=R8&myj#|i/lgn+air|VcT59=4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'me~xoQf<1<70>S7'nxm"h mdo,cgk)okgl"jlbg`,mc`ed&kgl#obd_lgn[bcim{kc!kotva[l:687>?7X> gsd-vc)jmd%ln` hble-cgk`i'dlinm!ble,fimXelgTkh`jr`vlv*bh}}hTe1?>>568Q5)`zo$yj"cjm.eai+aeen$ln`in.oefgf(een%i`fQbel]dakcui}ey#iaztc]j8449<=1^<"i}f/pe+hcj'nhf"jlbg/eaibg)fnoho#lbg.`ooZkbeVmnbh|ntnp,`jssjVc7=>0;4:W3+bta&{l$ahc gco-cgk`&nhfkl agda`*gk`'kf`S`kb_fgmawgsg{%ocxzm_h>20;233\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.flqqdXa5;>29:4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'me~xoQf<04=01=R8&myj#|i/lgn+bdj&nhfk#immfc-jbcdk'hfk"lck^ofiZabflxjxb| dnwwfZo;9>4?86[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)cg|~iSd2>8?67?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"j`uu`\m97>6=90Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+air|kUb0<0;4:W3+bta&{l$ahc gco-cgk`&nhfkl agda`*gk`'kf`S`kb_fgmawgsg{%ocxzm_h>14;233\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.flqqdXa58:29:4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'me~xoQf<30=01=R8&myj#|i/lgn+bdj&nhfk#immfc-jbcdk'hfk"lck^ofiZabflxjxb| dnwwfZo;::4?86[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)cg|~iSd2=4?67?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"j`uu`\m9426=>0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+air|kUb0?81459V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$hb{{b^k?6283<2_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-gkpreW`6943:;;T2,cw`)zo%fi`!hbl,dfha)okglm#`heba-fha(jeaTahcPgdlfvdrhz&ndyylPi=0::15<]9%l~k }f.ofi*aee'miaj hbleb*kabkj$iaj!mlj]nahY`mgoymya}/emvpgYn4;4?86[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)cg|~iSd2<0?67?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"j`uu`\m9566=>0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+air|kUb0><1459V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$hb{{b^k?7683<2_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-gkpreW`6883:;;T2,cw`)zo%fi`!hbl,dfha)okglm#`heba-fha(jeaTahcPgdlfvdrhz&ndyylPi=16:15<]9%l~k }f.ofi*aee'miaj hbleb*kabkj$iaj!mlj]nahY`mgoymya}/emvpgYn4:4??6[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)cg|~iSd2;>518Q5)`zo$yj"cjm.eai+aeen$ln`in.oefgf(een%i`fQbel]dakcui}ey#iaztc]j8083;2_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-gkpreW`6=29=4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'me~xoQf<6<77>S7'nxm"h mdo,cgk)okgl"jlbg`,mc`ed&kgl#obd_lgn[bcim{kc!kotva[l:?6=90Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+air|kUb04088:W3+bta&{l$ahc gco-cgk`&nhfkl agda`*gk`'kf`S`kb_fgmawgsg{%}magk.bqwv*tfeeed|V>R.scn*w)t>Vddecg{.scn+VBW&ZCF\AKPPSKN5=(uid=37X> gsd-vc)jmd%ln` hble-cgk`i'dlinm!ble,fimXelgTkh`jr`vlv*pfd`n%o~z}/scnhjiwS8W%~lc!r.q5[kinf`~%~lc SER-WLKWDLU[^DC>8/pbi4`<]9%l~k }f.ofi*aee'~f|R|nm^pg[`h582_;#j|i.sd,i`k(okg%x`~Pr`o\vaYbf8;87X> gsd-vc)uidUyhRka169V4*aun'xm#ob_sgdkprXmg;87X> gsd-vc)uidU|~Rka1e9V4*aun'xm#}{bmi,VVRXN\FGSJKA299V4*aun'xm#}{bmi,cwusl8$l~~zPftno*wusWm;946[?/fpe*w`(zz~i`f!hrrvg5+au{}Umyab!rrv\`74?3\:$kh!rg-qwqdkc&myyj>.fpppZ`rde$yyQk33a8Q5)`zo$yj"||tcnh+kapzmxxx#i}su,q`Ztt|Vxnk1>12b9V4*aun'xm#}{bmi,jbqul{y"j||t/pg[wusW{ol0<0=c:W3+bta&{l$~~zmlj-mcrtczz~%k}{.sf\vvrXzlm7>3<m;T2,cw`)zo%yylck.ldswbu{}$l~~z!re]qwqYumnU;>o5Z0.eqb+ta'{ynae nfuq`wus&nxxx#|k_sqw[wc`W88i7X> gsd-vc)u{}hgg"`hwsfqwq(`zz~%~iQ}su]qabY5:j1^<"i}f/pe+wusjea$bjy}dsqw*btt|'}yS}{_sgd8585k2_;#j|i.sd,vvredb%ekz|krrv-cwus&~xT~~zPrde?5;4e3\:$kh!rg-qwqdkc&dl{j}su,dvvr){UyyQ}ef]36g=R8&myj#|i/sqwfim(fn}yh}{.fppp+quW{ySkh_03g?P6(o{l%~k!}su`oo*tcW{ySl}}ef03?P6(o{l%~k!}su`oo*tcW{ySl}}ef]g576<]9%l~k }f.pppgjl'{nT~~zParpfcZb59j1^<"i}f/pe+wusjea$~iQ}su]`khd6l2_;#j|i.sd,vvredb%yhR||t^alig76l2_;#j|i.sd,vvredb%|~R||t^cpv`a582_;#j|i.sd,vvredb%|~R||t^cpv`aXl88;7X> gsd-vc)u{}hgg"y}_sqw[duumnUo>?:4U1-dvc(un&xxxobd/vp\vvrXizxnkR||tqmw5f=R8&myj#|i/sqwfim({UyyQlol`2`>S7'nxm"h rrvahn)pzVxxxRm`mc3b?PUBZVKGEL]l;TQFVZPN[@HGI>5YCB;8RLCPW]S[I;5XE@>3:3=PMH6:2;5XE@>1:==PMH686=09;VGB86813^OI0=09;VGA84813^OI0?07;VGA86<76?1\IO2<>c9TVLRBWOCY_Ym4WSKWAZKHLLUJo6Y]IUG\IJBBWK;o7UGCIOZ.\AD'8';+_Y[M 1,2$DUDA@?0TB\LY79[WQJNJ>1S_YQHNE58\VRX^JIi7UQLOSG\MK@H>2RonRGkf:ZglZVuad\n~~g`n028\akXEh`d~[k}shmm55=_ldUFeca}Vdppmjh3j2UTSUBAM^]\4ZYX]9%l~k }f.eo4+tc'{zex!Bmtz\cf6)kfexV7R_FLG[23XgVg~tR<POTV6510<WVUS@CCP_^33[ZYR8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e^DPIZ@Al8'Bb<:9;^]\\IHJWVU:=RQPU1-dvc(un&mg<#|k/fp2*w`pn}%hy|Pfvdw[vrf|lUM_@QIFe0.Mk73k2UTSUBAM^]\57YXW\:$kh!rg-dh5(ul&x{by| Mlw{[be7&je~byU6]^EM@Z12WfUfyuQ=_NWW742>3VUTTA@B_^]27ZYX]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<U6]^pf`pebWqeyS<6Po075?ZYXPEDFSRQ>4^]\Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-Nip~Xl`lmSz|PreY24XY@FMU3;RaPmtz\1ZIR\:;>=6QP_YNMIZYX9<UTSX> gsd-vc)`d9$|~"ynup,cle7∋"naznuY:YZAILV22SbQbuy]1[JSS414T_Z>;8:]\[]JIEVUT=;QP_T2,cw`)zo%l`= xr.etev(p{}y$A`{w_bmnt4Y@FMU2=RaPMTZ\34Yh98?:7RQPXMLN[ZY6?VUTY=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0Y:YZtbl|inSua}_022[}i;87UX[==<;^]\\IHJWVU:4RQPU1-dvc(un&xxxobd/vp\vvrXizxnkR||tqmw0f=XWVRGB@QP_0;\[ZS7'nxm"h gbz-gim'Drd~R\K_QLWV^6ZW[NT\CZ][0_\\JTX>:UdSua30?361>YXWQFEARQP1^]\Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-Nip~Xl`lmSz|PreY24XY@FMU3;RaPmtz\1ZIR\<;?n6QP_YNMIZYX:9UTSX> gsd-vc)`kq$h`fv Mymq[RTXXG^YW=SPWS]SJQT\9TUSC_Q6_n]{k9699=i0SRQWLOO\[Z46WVU^<"i}f/pe+be&jf`t"Cwos]Q@ZVI\[Q<QR\K_QLWV^>ZWQEYS88Po^zl8586<k1TSRVCNL]\[74XWV_;#j|i.sd,cf~)keas#@v`r^UQ[UHSZR=VSZ\PPOVQ_=[XPFXT>RaPxn>3:42d3VUTTA@B_^]17ZYX]9%l~k }f.e`|+ekcq%Ftb|PRE]SJQT\:TUYHR^ATSY0YZ^HZV<:SbQwo=2=51e<WVUS@CCP_^07[ZYR8&myj#|i/fa{*fjlp&GscQ]D^RMPW]3UVXOS]@[RZ7^[]IUW<3TcRv`<1<20g=XWVRGB@QP_37\[ZS7'nxm"h gbz-gim'Drd~RY]_QLWV^4ZW^XT\CZ][2_\\JTX?VeTtb2?>06a?ZYXPEDFSRQ=6^]\Q5)`zo$yj"ilx/aoo})JpfxT[_Q_NUPX0XYPZVZEX_U:]^ZLVZ3XgVrd0=0>4e9\[Z^KFDUTS?QP_T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjq]>UVMEHR66_n]nq}Y5WF__090>2d9\[Z^KFDUTS>QP_T2,cw`)zo%fi`!hbl,wiuYuidUyhRka1428[ZY_DGGTSR:P_^W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6S0WT~hjzcd]{kwY6:8Usc1>1_RU315=XWVRGB@QP_4]\[P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;P5PQ}eew`aZ~hzV8>=Rv`<1<\WR62j2UTSUBAM^]\2ZYX]9%l~k }f.eo4+qu'n}oo< xdbg{p*KflmUoekhPws]q`^77UVMEHR7<_n]b`aY3WF__Sua}<2<251e<WVUS@CCP_^5\[ZS7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:W4SPrdfvg`Yg{U<=Rv`<1<215=XWVRGB@QP_9]\[P6(o{l%~k!hl1,tv*qwf}x$A`{w_fk`4+ad8'idyczT9\]DJAY?1VeTaxvP2^MVP67282UTSUBAM^]\=ZYX]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<U6]^pf`pebWqeyS?=>_ym?4;YT_9i0mac`su]fiur~j2kgab}{_gwoh3=eija~|i5mabivtZkfzboy?6mcke9geqgXkfex%>&d:fbpdYdg|d$<'k;ecweZeh}g~#>$j4d`vb[firf}"8%i5kauc\gjsi|!>"h6jnt`]`kphs <#o7io{a^alqkr/> n0hlzn_bmvjq.0!m1omyoPcnwmp->.l2njxlQlotlw,</a3mkmRm`uov?=?69?2nieyk}r79gmk.7!?1oec&>)69gmk.68 =0hd`'10+4?aoi 88";6jfn)30-2=cag":8$94dhl+50/03mce$<8&7:fjj-70!>1oec&>8(58`lh/90#=7iga(3+4?aoi ;:";6jfn)02-2=cag"9>$94dhl+66/03mce$?:&7:fjj-42!>1oec&=6(58`lh/:>#<7iga(3:*3>bnf!82%;5kio*0-2=cag"8<$94dhl+74/03mce$><&7:fjj-54!>1oec&<4(58`lh/;<#=7iga(5+5?aoi <#=7iga(7+5?aoi >#=7iga(9+5?aoi 0#=7iga<1<4?aoi48:5;6jfn=32:2=cag6:>394dhl?56803mce0<:17:fjj9726>1oec2>6?58`lh;9>4<7iga<0:=3>bnf5;22;5kio>2:2=cag69<394dhl?64803mce0?<17:fjj9446>1oec2=4?58`lh;:<4<7iga<34=3>bnf58<2:5kio>1<;1<l`d7>409;ekm87803mce0>>17:fjj9566>1oec2<2?58`lh;;:4<7iga<26==>bnf59>6=08;ekm8639>2nbb1=16:fjj929>2nbb1;16:fjj909>2nbb1916:fjj9>9>2nbb1717:flqq.7!>1ocxz'1(:8`jss 8:"46j`uu*25,><lf$<<&8:flqq.6; 20hb{{(06*<>bh}}":9$64dnww,40.02ndyy&>7(:8`jss 82"46j`uu*2=,1<lf$?'7;emvp-47!11ocxz'20+;?air|!89%55kotv+66/?3me~x%<;)99gkpr/:<#37iazt)05-==cg|~#>:'7;emvp-4?!11ocxz'28+4?air|!9"46j`uu*04,><lf$>?&8:flqq.4: 20hb{{(21*<>bh}}"88$64dnww,63.?2ndyy&;)69gkpr/= =0hb{{(7+4?air|!=";6j`uu*;-2=cg|~#5$94dnww858?3me~x1??>99gkpr;98437iazt=31:==cg|~7=>07;emvp973611ocxz314<;?air|5;=255kotv?528?3me~x1?7>99gkpr;904<7iazt=3=<>bh}}69<364dnww877902ndyy2=2?:8`jss4;9546j`uu>10;><lf0?;18:flqq:5>720hb{{<35=<>bh}}694364dnww87?9?2ndyy2=>99gkpr;;9437iazt=12:==cg|~7??07;emvp954611ocxz335<b?air|59>6=07;emvp9526>1ocxz33?58`jss4=4<7iazt=7=3>bh}}6=2:5kotv?3;1<lf0508;emvp9?902ooek<age78ahvsq;l0jdh`_fgmawgsg{U}:R?# Ykomk~'KFXN,Jkaescwkw&6:';:>6hffn]p2Z7Lp:<T>nbd319emciX{?U:Gu=9_3aoo)`nnfUlick}aumq[s0X9%DDBH"AOOG0b7=aaoeT;Q>Ky15[7ekc%lbjbQheogqeqiuW<T=!ul_icp[lhsWjf`1="l_icp[vtt|4:'oR|k_gpfu87+kVoemobj_sqw[vik4;'oRfns^pg[agsiVidycz21-a\`lhX`nd0=9,b]kevYpzVnjxlQlotlw94*dWog`Rhcafq\vvrX~hf6=!mPilroahci|h~bccQ{yqg>6)eX}zoTi`ljdegg[wc`59&hSz|Pfsgr94*dW|ynSiazt^ppp87+kVehh|ilnu\hjq:8%iTdl}Powgqbiip59&hS}|jlncg[igsmgir1="l_emvpZqnl}b6?;"l_lqdkkYqie7: nQ}d^fftqn:998? nQjrsmq[lhmmj~bccQ{yqg>4)eX`hyTycjjrgnls86+kVbjRocmnqw[cskd4:'oRfns^ppp87+kVnjxlQlotlw[roc|a7:<!mPh`q\swYfkb7; nQzsd]fgf;7$jUhc`c`n^aokfm:8%iT{Qncj]okr;7$jUyhR~ats]tmaro58:'oR{|e^dtbqYci}kTob{at<3/gZnf{Vkgab}{_dosp|;7$jUyhRjnt`]`kphsW~coxe3>1-a\kscunee|Saax=1.`[rtXxg~ySzgkti?24)eXx{elShctx]w}uc:8%iT{Qkauc\gjsi|V}bhyf210.`[utbdfkoSkhs<3/gZbh}}UyyQyam?3(fYoizUomyoPcnwmp86+kVzycjQiumn\pmtb{aUeijo{e^tbh877:;&hSz|Pddrwl877:=&hS}|`g^gntqX|axneQaefcwaZpfd4?'oR~}of]fiur~W}byi~fParqfvqYqie7? nQgar]ueioc59&hS}|`g^dvhiYs`{oxdRo|sdpw[sgk58:9?!m`mqmmakrXfhgn1kgio^q5[4M;?U9oae#c^tbhlbXdf}6<!mPpskn[coagV~r|h3>ky15(fYwzfmTjxbc_u{sa86+kVgnab|v_u{sa87+u;i0jdh`_r4\5N~4>V8h`fQiigm\c`hbzh~d~Rx9_0]{wqY6<2l~`aj4iohfgqbea}oy~i5fnkg`pvdn|lxy;6gat^aoo==iojh~eaj7;ntfvcjhh1{~biPelrw}42<x{elShctx]wlwct`!:"=95rne\ahvsqV~c~h}g(0+20>vugnUna}zv_ujqavn/: ;?7}|`g^gntqX|axne&<)068twi`Wlg{xtQ{hsgpl-2.9=1{~biPelrw}Zrozlyc$8'>4:rqkbYbey~rSyf}erj+2,733yxdkRkbpu{\pmtb{a"<%<:4psmd[`kw|pUdk|h):*51=wzfmTi`~{y^vkv`uo 0#::6~}of]fiur~W}byi~f39;2=5g=wzfmTi`~{y^vkv`uoWhyxiz'0(3a?uthoVof|ywPtipfwmYf{zoyx%?&1c9svjaXmdzuRzgrdqk[dutm{~#>$?m;qplcZcjx}sTxe|jsi]bwvcu|!9"=o5rne\ahvsqV~c~h}g_`qpawr/< ;i7}|`g^gntqX|axneQnsrgqp-3.9k1{~biPelrw}ZrozlycSl}|esv+2,7e3yxdkRkbpu{\pmtb{aUj~k}t)5*5g=wzfmTi`~{y^vkv`uoWhyxiz'8(3a?uthoVof|ywPtipfwmYf{zoyx%7&1e9svjaXmdzuRzgrdqk[dutm{~757>11c9svjaXmdzuRzgrdqk[kc`i}o#<$?m;qplcZcjx}sTxe|jsi]mabgsm!;"=o5rne\ahvsqV~c~h}g_ogdeqc/: ;i7}|`g^gntqX|axneQaefcwa-5.9k1{~biPelrw}ZrozlycSckhaug+0,7e3yxdkRkbpu{\pmtb{aUeijo{e)7*5g=wzfmTi`~{y^vkv`uoWgolmyk'6(3a?uthoVof|ywPtipfwmYimnki%9&1c9svjaXmdzuRzgrdqk[kc`i}o#4$?m;qplcZcjx}sTxe|jsi]mabgsm!3"=i5rne\ahvsqV~c~h}g_ogdeqc;13:556~}of]eqij6;2zycjQiumn\pmtb{a";%<=4psmd[cskdV~c~h}g(0+27>vugnUmyabPtipfwm.5!890|ah_gwohZrozlyc$>'>3:rqkbYa}efTxe|jsi*7-45<x{elSk{cl^vkv`uo <#:?6~}of]eqijX|axne&9)018twi`Wog`Rzgrdqk,2/6;2zycjQiumn\pmtb{a"3%<=4psmd[cskdV~c~h}g(8+21>vugnUmyabPtipfwm:>294:m6~}of]eqijX|axneQnsrgqp-6.9h1{~biPftno[qnumzbTm~}jru*2-4g<x{elSk{cl^vkv`uoWhyxiz'2(3b?uthoVl~`aQ{hsgplZgt{lx$>'>a:rqkbYa}efTxe|jsi]bwvcu|!>"=l5rne\bpjkW}byi~fParqfvq.2!8k0|ah_gwohZrozlycSl}|esv+2,7f3yxdkRhzlm]wlwct`Vkxh|{(6+2e>vugnUmyabPtipfwmYf{zoyx%6&1`9svjaXn|fgSyf}erj\evubz}"2%<m4psmd[cskdV~c~h}g_`qpawr;13:5=l5rne\bpjkW}byi~fPndebp`.7!8k0|ah_gwohZrozlycSckhaug+5,7f3yxdkRhzlm]wlwct`Vdnklzj(3+2e>vugnUmyabPtipfwmYimnki%=&1`9svjaXn|fgSyf}erj\j`af|l"?%<o4psmd[cskdV~c~h}g_ogdeqc/= ;j7}|`g^dvhiYs`{oxdR`jg`vf,3/6i2zycjQiumn\pmtb{aUeijo{e)5*5d=wzfmTjxbc_ujqavnXflmjxh&7)0c8twi`Wog`Rzgrdqk[kc`i}o#5$?l;qplcZ`rdeUdk|h^lfcdrb400;2;5}d^aoo46<zmUomyoPcnwmp-6.991yhRjnt`]`kphs 8#:=6|k_ecweZeh}g~#=='>0:pg[agsiVidycz'2(33?wbXlh~jSnaznu*0-46<zmUomyoPcnwmp-2.991yhRjnt`]`kphs <#:<6|k_ecweZeh}g~#:$??;sf\`drfWje~by&8)028vaYci}kTob{at):*55=ulVnjxlQlotlw,</682xoSio{a^alqkr;87;87jPd`vb[firf}6:<7>1109q`Zbf|hUhcx`{<02=55=ulVnjxlQlotlw848682xoSio{a^alqkr;:7;;7jPd`vb[firf}682<>4re]geqgXkfex1:1119q`Zbf|hUhcx`{<4<24>tcWmkmRm`uov?2;773{nThlzn_bmvjq:068:0~iQkauc\gjsi|525==5}d^fbpdYdg|d040:;sf\ak0<zmUyy=4rrv4?vdn|lxy86}}su3f?qkw'Vil#kgio^q5[4M;?U9oae!nfm:?phcm{lgcz;4v`nj`3=pzVkhg;5xr^aoo46<{UomyoPcnwmp-6.991|~Rjnt`]`kphs 8#:=6y}_ecweZeh}g~#=='>0:uq[agsiVidycz'2(33?rtXlh~jSnaznu*0-46<{UomyoPcnwmp-2.991|~Rjnt`]`kphs <#:<6y}_ecweZeh}g~#:$??;vp\`drfWje~by&8)028swYci}kTob{at):*55=pzVnjxlQlotlw,</682}ySio{a^alqkr;87;87z|Pd`vb[firf}6:<7>1109tvZbf|hUhcx`{<02=55=pzVnjxlQlotlw848682}ySio{a^alqkr;:7;;7z|Pd`vb[firf}682<>4ws]geqgXkfex1:1119tvZbf|hUhcx`{<4<24>quWmkmRm`uov?2;773~xThlzn_bmvjq:068:0{Qkauc\gjsi|525==5xr^fbpdYdg|d040:;vp\ak0<{UyysO@qd`7>FGp?<n6K4;:0yP35<1890i6<=<02`;>647;kqe99>51:l604<13-?8i7;<8:P2`<1890i6<=<02`;>647;k1X=:9561`94?74;99i47==0768W3c=>9h1<7?<311a<?558??0h;><:182>4}T?90=<=4m:01046d?2:8;?o5yT320>5<6280:j<u\718545<e2898<>l7:2037g=#=;k1=:64V41e>7}r91:1=6{>8083?x"6n808=6l90283>33=;3<>wE;=8:X51?2|9o0:i7?<:069y!4713<;?6*:3e8547=n>?31<75f69c94?=h>9=1<75`61394?=n>>81<75f67`94?=h=m>1<7*>f286b2=i9o81<65`5e194?"6n:0>j:5a1g095>=h=m81<7*>f286b2=i9o81>65`5e394?"6n:0>j:5a1g097>=h=m:1<7*>f286b2=i9o81865`5bd94?"6n:0>j:5a1g091>=h=jn1<7*>f286b2=i9o81:65`5ba94?"6n:0>j:5a1g093>=h=jh1<7*>f286b2=i9o81465`5bc94?"6n:0>j:5a1g09=>=h=j31<7*>f286b2=i9o81m65`5b:94?"6n:0>j:5a1g09f>=h=j=1<7*>f286b2=i9o81o65`5b494?"6n:0>j:5a1g09`>=h=j?1<7*>f286b2=i9o81i65`5b694?"6n:0>j:5a1g09b>=h=j81<7*>f286b2=i9o81==54o4a2>5<#9o919k94n0d1>47<3f?h<7>5$0d0>0`03g;m>7?=;:m6fc<72-;m?7;i7:l2b7<6;21d9ok50;&2b6<2n>1e=k<51598k0dc290/=k=55g58j4`528?07b;mc;29 4`42<l<7c?i2;35?>i2jk0;6)?i3;7e3>h6n;0:;65`5cc94?"6n:0>j:5a1g095==<g<h26=4+1g191c1<f8l96<74;n7ge?6=,8l868h8;o3e6?7f32e>h44?:%3e7?3a?2d:j?4>b:9l1a>=83.:j>4:f69m5c4=9j10c8j8:18'5c5==o=0b<h=:0f8?j3c>3:1(<h<:4d4?k7a:3;n76a:d483>!7a;3?m;6`>f382b>=h=jo1<7*>f286b2=i9o81>=54o4a0>5<#9o919k94n0d1>77<3f?i47>5$0d0>0`03g;m>7<=;:m6f2<72-;m?7;i7:l2b7<5;21b95l50;&2b6<2il1e=k<50:9j1=g=83.:j>4:ad9m5c4=921b95750;&2b6<2il1e=k<52:9j1=>=83.:j>4:ad9m5c4=;21b95950;&2b6<2il1e=k<54:9j1=0=83.:j>4:ad9m5c4==21b95:50;&2b6<2il1e=k<56:9j1=5=83.:j>4:ad9m5c4=?21b95<50;&2b6<2il1e=k<58:9j1=7=83.:j>4:ad9m5c4=121b95>50;&2b6<2il1e=k<5a:9j12`=83.:j>4:ad9m5c4=j21b9:k50;&2b6<2il1e=k<5c:9j12b=83.:j>4:ad9m5c4=l21b9:m50;&2b6<2il1e=k<5e:9j12d=83.:j>4:ad9m5c4=n21b9:750;&2b6<2il1e=k<51198m01?290/=k=55`g8j4`528;07d;87;29 4`42<kn7c?i2;31?>o2??0;6)?i3;7ba>h6n;0:?65f56794?"6n:0>mh5a1g0951=<a<=?6=4+1g191dc<f8l96<;4;h747?6=,8l868oj;o3e6?7132c>;?4?:%3e7?3fm2d:j?4>7:9j127=83.:j>4:ad9m5c4=9110e89?:18'5c5==ho0b<h=:0;8?l3>93:1(<h<:4cf?k7a:3;j76g:9183>!7a;3?ji6`>f382f>=n=1l1<7*>f286e`=i9o81=n54i4:f>5<#9o919lk4n0d1>4b<3`?3h7>5$0d0>0gb3g;m>7?j;:k6<f<72-;m?7;ne:l2b7<6n21b95;50;&2b6<2il1e=k<52198m01f290/=k=55`g8j4`52;;07d;9f;29 4`42<kn7c?i2;01?>o2>l0;6)?i3;7ba>h6n;09?65`64694?"6n:0=9h5a1g094>=h><i1<7*>f2851`=i9o81=65`64`94?"6n:0=9h5a1g096>=h><k1<7*>f2851`=i9o81?65`64;94?"6n:0=9h5a1g090>=h><21<7*>f2851`=i9o81965`64594?"6n:0=9h5a1g092>=h><<1<7*>f2851`=i9o81;65`64794?"6n:0=9h5a1g09<>=h><91<7*>f2851`=i9o81565`64094?"6n:0=9h5a1g09e>=h>>?1<7*>f2853c=i9o81<65`66f94?"6n:0=;k5a1g095>=h>>i1<7*>f2853c=i9o81>65`66`94?"6n:0=;k5a1g097>=h>>k1<7*>f2853c=i9o81865`66;94?"6n:0=;k5a1g091>=h>>21<7*>f2853c=i9o81:65`66594?"6n:0=;k5a1g093>=h>><1<7*>f2853c=i9o81465`66694?"6n:0=;k5a1g09=>=h>>91<7*>f2853c=i9o81m65f64394?=e=;31<7?50;2xL04?3-8;57;=9:m2b5<722wi=??50;394?6|@<837)<?9;315>i6:90;66sm6583>gc=9h<1=k?tH40;?_0228<ph7m5e;31>c<683;:6<h51d827?7328o1o7j5e;d955<693;96<h512820?{#:931:=84$7;9252<,?l1:=;4$0ga>4ca3`<9>7>5$0d0>3443g;m>7>4;h415?6=,8l86;<<;o3e6?7<3`<9<7>5$0d0>3443g;m>7<4;h42b?6=,8l86;<<;o3e6?5<3`<:i7>5$0d0>3443g;m>7:4;h42`?6=,8l86;<<;o3e6?3<3`<:o7>5$0d0>3443g;m>784;h42f?6=,8l86;<<;o3e6?1<3`<:m7>5$0d0>3443g;m>764;h42=?6=,8l86;<<;o3e6??<3`<;57>5;h45e?6=3`<=h7>5;n444?6=3`<:;7>5$0d0>37?3g;m>7>4;h422?6=,8l86;?7;o3e6?7<3`<:97>5$0d0>37?3g;m>7<4;h420?6=,8l86;?7;o3e6?5<3`<:?7>5$0d0>37?3g;m>7:4;h426?6=,8l86;?7;o3e6?3<3`<:=7>5$0d0>37?3g;m>784;h424?6=,8l86;?7;o3e6?1<3`<;j7>5$0d0>37?3g;m>764;h43a?6=,8l86;?7;o3e6??<3`<=57>5;n43g?6=3`<9h7>5$0d0>34b3g;m>7>4;h41g?6=,8l86;<j;o3e6?7<3`<9n7>5$0d0>34b3g;m>7<4;h41e?6=,8l86;<j;o3e6?5<3`<957>5$0d0>34b3g;m>7:4;h41<?6=,8l86;<j;o3e6?3<3`<9;7>5$0d0>34b3g;m>784;h412?6=,8l86;<j;o3e6?1<3`<997>5$0d0>34b3g;m>764;h410?6=,8l86;<j;o3e6??<3f?>i7>5;n75f?6=,8l8688l;o3e6?6<3f?=m7>5$0d0>00d3g;m>7?4;n75=?6=,8l8688l;o3e6?4<3f?=47>5$0d0>00d3g;m>7=4;n753?6=,8l8688l;o3e6?2<3f?=:7>5$0d0>00d3g;m>7;4;n751?6=,8l8688l;o3e6?0<3f?=87>5$0d0>00d3g;m>794;n757?6=,8l8688l;o3e6?><3f?=>7>5$0d0>00d3g;m>774;n41b?6=3`<3m7>5;h40=?6=,8l86;=n;o3e6?6<3`<847>5$0d0>35f3g;m>7?4;h403?6=,8l86;=n;o3e6?4<3`<8:7>5$0d0>35f3g;m>7=4;h401?6=,8l86;=n;o3e6?2<3`<887>5$0d0>35f3g;m>7;4;h407?6=,8l86;=n;o3e6?0<3`<8>7>5$0d0>35f3g;m>794;h405?6=,8l86;=n;o3e6?><3`<8<7>5$0d0>35f3g;m>774;n433?6=3f<;=7>5;h446?6=3`?=<7>5;h470?6=,8l86;::;o3e6?6<3`<??7>5$0d0>3223g;m>7?4;h476?6=,8l86;::;o3e6?4<3`<?=7>5$0d0>3223g;m>7=4;h474?6=,8l86;::;o3e6?2<3`<8j7>5$0d0>3223g;m>7;4;h40a?6=,8l86;::;o3e6?0<3`<8h7>5$0d0>3223g;m>794;h40g?6=,8l86;::;o3e6?><3`<8n7>5$0d0>3223g;m>774;h47b?6=,8l86;;?;o3e6?6<3`<?i7>5$0d0>3373g;m>7?4;h47`?6=,8l86;;?;o3e6?4<3`<?o7>5$0d0>3373g;m>7=4;h47f?6=,8l86;;?;o3e6?2<3`<?m7>5$0d0>3373g;m>7;4;h47=?6=,8l86;;?;o3e6?0<3`<?47>5$0d0>3373g;m>794;h473?6=,8l86;;?;o3e6?><3`<?:7>5$0d0>3373g;m>774;n76`?6=3`<;m7>5;h755?6=3`<3n7>5;n45g?6=3f<<=7>5;h45f?6=3f?o87>5$0d0>0`03g;m>7>4;n7g7?6=,8l868h8;o3e6?7<3f?o>7>5$0d0>0`03g;m>7<4;n7g5?6=,8l868h8;o3e6?5<3f?o<7>5$0d0>0`03g;m>7:4;n7`b?6=,8l868h8;o3e6?3<3f?hh7>5$0d0>0`03g;m>784;n7`g?6=,8l868h8;o3e6?1<3f?hn7>5$0d0>0`03g;m>764;n7`e?6=,8l868h8;o3e6??<3f?h57>5$0d0>0`03g;m>7o4;n7`<?6=,8l868h8;o3e6?d<3f?h;7>5$0d0>0`03g;m>7m4;n7`2?6=,8l868h8;o3e6?b<3f?h97>5$0d0>0`03g;m>7k4;n7`0?6=,8l868h8;o3e6?`<3f?h>7>5$0d0>0`03g;m>7??;:m6g4<72-;m?7;i7:l2b7<6921d9n>50;&2b6<2n>1e=k<51398k0da290/=k=55g58j4`528907b;me;29 4`42<l<7c?i2;37?>i2jm0;6)?i3;7e3>h6n;0:965`5ca94?"6n:0>j:5a1g0953=<g<hi6=4+1g191c1<f8l96<94;n7ae?6=,8l868h8;o3e6?7?32e>n44?:%3e7?3a?2d:j?4>9:9l1ag=83.:j>4:f69m5c4=9h10c8j6:18'5c5==o=0b<h=:0`8?j3c03:1(<h<:4d4?k7a:3;h76a:d683>!7a;3?m;6`>f382`>=h=m<1<7*>f286b2=i9o81=h54o4f6>5<#9o919k94n0d1>4`<3f?hi7>5$0d0>0`03g;m>7<?;:m6g6<72-;m?7;i7:l2b7<5921d9o650;&2b6<2n>1e=k<52398k0d0290/=k=55g58j4`52;907d;7b;29 4`42<kn7c?i2;28?l3?i3:1(<h<:4cf?k7a:3;07d;79;29 4`42<kn7c?i2;08?l3?03:1(<h<:4cf?k7a:3907d;77;29 4`42<kn7c?i2;68?l3?>3:1(<h<:4cf?k7a:3?07d;74;29 4`42<kn7c?i2;48?l3?;3:1(<h<:4cf?k7a:3=07d;72;29 4`42<kn7c?i2;:8?l3?93:1(<h<:4cf?k7a:3307d;70;29 4`42<kn7c?i2;c8?l30n3:1(<h<:4cf?k7a:3h07d;8e;29 4`42<kn7c?i2;a8?l30l3:1(<h<:4cf?k7a:3n07d;8c;29 4`42<kn7c?i2;g8?l30j3:1(<h<:4cf?k7a:3l07d;89;29 4`42<kn7c?i2;33?>o2?10;6)?i3;7ba>h6n;0:=65f56594?"6n:0>mh5a1g0957=<a<==6=4+1g191dc<f8l96<=4;h741?6=,8l868oj;o3e6?7332c>;94?:%3e7?3fm2d:j?4>5:9j125=83.:j>4:ad9m5c4=9?10e89=:18'5c5==ho0b<h=:058?l3093:1(<h<:4cf?k7a:3;376g:7183>!7a;3?ji6`>f382=>=n=0;1<7*>f286e`=i9o81=l54i4;3>5<#9o919lk4n0d1>4d<3`?3j7>5$0d0>0gb3g;m>7?l;:k6<`<72-;m?7;ne:l2b7<6l21b95j50;&2b6<2il1e=k<51d98m0>d290/=k=55`g8j4`528l07d;75;29 4`42<kn7c?i2;03?>o2?h0;6)?i3;7ba>h6n;09=65f57d94?"6n:0>mh5a1g0967=<a<<n6=4+1g191dc<f8l96?=4;h76b?6=3f<>87>5$0d0>33b3g;m>7>4;n46g?6=,8l86;;j;o3e6?7<3f<>n7>5$0d0>33b3g;m>7<4;n46e?6=,8l86;;j;o3e6?5<3f<>57>5$0d0>33b3g;m>7:4;n46<?6=,8l86;;j;o3e6?3<3f<>;7>5$0d0>33b3g;m>784;n462?6=,8l86;;j;o3e6?1<3f<>97>5$0d0>33b3g;m>764;n467?6=,8l86;;j;o3e6??<3f<>>7>5$0d0>33b3g;m>7o4;n441?6=,8l86;9i;o3e6?6<3f<<h7>5$0d0>31a3g;m>7?4;n44g?6=,8l86;9i;o3e6?4<3f<<n7>5$0d0>31a3g;m>7=4;n44e?6=,8l86;9i;o3e6?2<3f<<57>5$0d0>31a3g;m>7;4;n44<?6=,8l86;9i;o3e6?0<3f<<;7>5$0d0>31a3g;m>794;n442?6=,8l86;9i;o3e6?><3f<<87>5$0d0>31a3g;m>774;n447?6=,8l86;9i;o3e6?g<3f<;h7>5;h43<?6=3f?=h7>5;h465?6=3f<=j7>5;c70f?6=93:1<v*=088264=O=:k0D8<7;n314?6=3th>?n4?:083>5}#:9319?74H41b?M3502e:j=4?::a7=3=83>1<7>t$32:>47f3A?8m6F:299'567=i2c=:7>5;h52>5<<a8l>6=44o0d5>5<<uk9m?7>54;294~"5800:=l5G52c8L04?3-;8=7o4i7494?=n?80;66g>f483>>i6n?0;66sm3g094?2=83:p(?>6:03b?M34i2B>>55+1239e>o1>3:17d9>:188m4`22900c<h9:188yg37m3:187>50z&14<<6911C9>o4H40;?!7493;0e;850;9j2a<722c<=7>5;n3e2?6=3th>=h4?:283>5}#:931=<94H41b?M3502B=>6*>7d814==#9:;1=6g96;29?l162900c<h9:188yg35;3:1?7>50z&14<<69>1C9>o4H40;?M053-;<i7<?8:&274<63`<=6=44i6394?=h9o<1<75rb432>5<3290;w)<?9;32e>N2;h1C9?64H708 41b2;:37)?<1;c8m30=831b;<4?::k2b0<722e:j;4?::a14b=8391<7>t$32:>4703A?8m6F:299K27=#9>o1>=64$012>4=n>?0;66g81;29?j7a>3:17pl:2383>6<729q/>=751058L05f3A?946F92:&23`<5811/=>?51:k52?6=3`=:6=44o0d5>5<<uk?:<7>54;294~"5800:=l5G52c8L04?3-;<i7<?8:J56>"6;80j7d89:188m27=831b=k;50;9l5c0=831vn8?8:187>5<7s-8;57?>a:J67d=O=;20(<=>:`9j23<722c<=7>5;h3e1?6=3f;m:7>5;|`653<72=0;6=u+21;954g<@<9j7E;=8:&274<f3`<=6=44i6394?=n9o?1<75`1g494?=zj<;>6=4;:183!4713;:m6F:3`9K17><,89:6l5f6783>>o093:17d?i5;29?j7a>3:17pl:1b83>0<729q/>=7510`8L05f3A?946F92:&23`<5811b:;4?::k5<?6=3`=:6=44i0d6>5<<g8l=6=44}c72f?6=<3:1<v*=08825d=O=:k0D8<7;%305?g<a?<1<75f7083>>o6n<0;66a>f783>>{e=8k1<7:50;2x 76>28;j7E;<a:J66==#9:;1m6g96;29?l162900e<h::188k4`12900qo;?f;290?6=8r.9<44>1`9K16g<@<837E8=;%34a?4702.:?<4n;h45>5<<a>;1<75f1g794?=h9o<1<75rb5f`>5<2290;w)<?9;32g>N2;h1C9?64$012>4=n>?0;66g98;29?l162900e<h8:188k4`12900qo:kb;291?6=8r.9<44>1b9K16g<@<837)?<1;38m30=831b:54?::k45?6=3`;m;7>5;n3e2?6=3th?hl4?:483>5}#:931=<m4H41b?M3502.:?<4>;h45>5<<a?21<75f7083>>o6n>0;66a>f783>>{e<m31<7;50;2x 76>28;h7E;<a:J66==#9:;1=6g96;29?l0?2900e:?50;9j5c1=831d=k850;9~f1b?290>6=4?{%03=?76k2B>?l5G53:8 456281b:;4?::k5<?6=3`=:6=44i0d4>5<<g8l=6=44}c6g3?6==3:1<v*=08825f=O=:k0D8<7;%305?7<a?<1<75f6983>>o093:17d?i7;29?j7a>3:17pl;d483>0<729q/>=7510a8L05f3A?946*>3082?l012900e;650;9j34<722c:j:4?::m2b3<722wi8i:50;794?6|,;:26<?l;I70e>N2:11/=>?51:k52?6=3`<36=44i6394?=n9o=1<75`1g494?=zj=n86=4::183!4713;:o6F:3`9K17><,89:6<5f6783>>o103:17d9>:188m4`02900c<h9:188yg2c:3:197>50z&14<<69j1C9>o4H40;?!7493;0e;850;9j2=<722c<=7>5;h3e3?6=3f;m:7>5;|`7`4<72<0;6=u+21;954e<@<9j7E;=8:&274<63`<=6=44i7:94?=n?80;66g>f683>>i6n?0;66sm4e294?3=83:p(?>6:03`?M34i2B>>55+12395>o1>3:17d87:188m27=831b=k950;9l5c0=831vn9mi:186>5<7s-8;57?>c:J67d=O=;20(<=>:09j23<722c=47>5;h52>5<<a8l<6=44o0d5>5<<uk>hi7>55;294~"5800:=n5G52c8L04?3-;8=7?4i7494?=n>10;66g81;29?l7a?3:17b?i6;29?xd3km0;684?:1y'65?=98i0D8=n;I71<>"6;80:7d89:188m3>=831b;<4?::k2b2<722e:j;4?::a0fe=83?1<7>t$32:>47d3A?8m6F:299'567=92c=:7>5;h4;>5<<a>;1<75f1g594?=h9o<1<75rb5ab>5<2290;w)<?9;32g>N2;h1C9?64$012>4=n>?0;66g98;29?l162900e<h8:188k4`12900qo:l9;291?6=8r.9<44>1b9K16g<@<837)?<1;38m30=831b:54?::k45?6=3`;m;7>5;n3e2?6=3th?o54?:483>5}#:931=<m4H41b?M3502.:?<4>;h45>5<<a?21<75f7083>>o6n>0;66a>f783>>{e<j=1<7;50;2x 76>28;h7E;<a:J66==#9:;1=6g96;29?l0?2900e:?50;9j5c1=831d=k850;9~f1e1290>6=4?{%03=?76k2B>?l5G53:8 456281b:;4?::k5<?6=3`=:6=44i0d4>5<<g8l=6=44}c6`1?6==3:1<v*=08825f=O=:k0D8<7;%305?7<a?<1<75f6983>>o093:17d?i7;29?j7a>3:17pl;c583>0<729q/>=7510a8L05f3A?946*>3082?l012900e;650;9j34<722c:j:4?::m2b3<722wi8n=50;794?6|,;:26<?l;I70e>N2:11/=>?51:k52?6=3`<36=44i6394?=n9o=1<75`1g494?=zj=i96=4::183!4713;:o6F:3`9K17><,89:6<5f6783>>o103:17d9>:188m4`02900c<h9:188yg2d93:197>50z&14<<69j1C9>o4H40;?!7493;0e;850;9j2=<722c<=7>5;h3e3?6=3f;m:7>5;|`7a7<72<0;6=u+21;954e<@<9j7E;=8:&274<63`<=6=44i7:94?=n?80;66g>f683>>i6n?0;66sm4d394?3=83:p(?>6:03`?M34i2B>>55+12395>o1>3:17d87:188m27=831b=k950;9l5c0=831vn9k?:186>5<7s-8;57?>c:J67d=O=;20(<=>:09j23<722c=47>5;h52>5<<a8l<6=44o0d5>5<<uk>oj7>55;294~"5800:=n5G52c8L04?3-;8=7?4i7494?=n>10;66g81;29?l7a?3:17b?i6;29?xd3ll0;684?:1y'65?=98i0D8=n;I71<>"6;80:7d89:188m3>=831b;<4?::k2b2<722e:j;4?::a0ab=83?1<7>t$32:>47d3A?8m6F:299'567=92c=:7>5;h4;>5<<a>;1<75f1g594?=h9o<1<75rb5f5>5<2290;w)<?9;32g>N2;h1C9?64$012>4=n>?0;66g98;29?l162900e<h8:188k4`12900qo:lb;291?6=8r.9<44>1b9K16g<@<837)?<1;38m30=831b:54?::k45?6=3`;m;7>5;n3e2?6=3th?o=4?:483>5}#:931=<m4H41b?M3502.:?<4>;h45>5<<a?21<75f7083>>o6n>0;66a>f783>>{e<kl1<7;50;2x 76>28;h7E;<a:J66==#9:;1=6g96;29?l0?2900e:?50;9j5c1=831d=k850;9~f6b6290?6=4?{%03=?70n2B>?l5G53:8m3g=831b;84?::k145<722e:ih4?::a7a6=83>1<7>t$32:>41a3A?8m6F:299j2d<722c<97>5;h034?6=3f;ni7>5;|`0gc<72=0;6=u+21;952`<@<9j7E;=8:k5e?6=3`=>6=44i323>5<<g8on6=44}c1`a?6=<3:1<v*=08823c=O=:k0D8<7;h4b>5<<a>?1<75f21294?=h9lo1<75rb2ag>5<3290;w)<?9;34b>N2;h1C9?64i7c94?=n?<0;66g=0183>>i6ml0;66sm3d694?2=83:p(?>6:05e?M34i2B>>55f6`83>>o0=3:17d<?0;29?j7bm3:17pl<e283>1<729q/>=7516d8L05f3A?946g9a;29?l122900e?>?:188k4cb2900qo=j2;290?6=8r.9<44>7g9K16g<@<837d8n:188m23=831b>=>50;9l5`c=831vn>k>:187>5<7s-8;57?8f:J67d=O=;20e;o50;9j30<722c9<=4?::m2a`<722wi?h>50;694?6|,;:26<9i;I70e>N2:11b:l4?::k41?6=3`8;<7>5;n3fa?6=3th8:>4?:583>5}#:931=:h4H41b?M3502c=m7>5;h56>5<<a;:;6=44o0gf>5<<uk9=>7>54;294~"5800:;k5G52c8L04?3`<j6=44i6794?=n:9:1<75`1dg94?=zj:<:6=4;:183!4713;<j6F:3`9K17><a?k1<75f7483>>o5890;66a>ed83>>{e;?:1<7:50;2x 76>28=m7E;<a:J66==n>h0;66g85;29?l4783:17b?je;29?xd4=o0;694?:1y'65?=9>l0D8=n;I71<>o1i3:17d9::188m7672900c<kj:188yg50>3:187>50z&14<<6?o1C9>o4H40;?l0f2900e:;50;9j656=831d=hk50;9~f612290?6=4?{%03=?70n2B>?l5G53:8m3g=831b;84?::k145<722e:ih4?::a722=83>1<7>t$32:>41a3A?8m6F:299j2d<722c<97>5;h034?6=3f;ni7>5;|`036<72=0;6=u+21;952`<@<9j7E;=8:k5e?6=3`=>6=44i323>5<<g8on6=44}c146?6=<3:1<v*=08823c=O=:k0D8<7;h4b>5<<a>?1<75f21294?=h9lo1<75rb202>5<4290;w)<?9;70=>N2;h1C9?64i7c94?=n9><1<75`1dg94?=zj:;<6=4<:183!4713;<56F:3`9K17><,89:6>l4i000>5<<a88?6=44o0gf>5<<uk99<7>53;294~"5800>?45G52c8L04?3`<j6=44i055>5<<g8on6=44}c13`?6=<3:1<v*=08823c=O=:k0D8<7;h4b>5<<a>?1<75f21294?=h9lo1<75rb235>5<4290;w)<?9;34=>N2;h1C9?64$012>6d<a8886=44i007>5<<g8on6=44}c12b?6=;3:1<v*=08867<=O=:k0D8<7;h4b>5<<a8==6=44o0gf>5<<uk9;o7>54;294~"5800:;k5G52c8L04?3`<j6=44i6794?=n:9:1<75`1dg94?=zj:;>6=4<:183!4713;<56F:3`9K17><,89:6>l4i000>5<<a88?6=44o0gf>5<<uk9:i7>53;294~"5800>?45G52c8L04?3`<j6=44i055>5<<g8on6=44}c13f?6=<3:1<v*=08823c=O=:k0D8<7;h4b>5<<a>?1<75f21294?=h9lo1<75rb237>5<4290;w)<?9;34=>N2;h1C9?64$012>6d<a8886=44i007>5<<g8on6=44}c12`?6=;3:1<v*=08867<=O=:k0D8<7;h4b>5<<a8==6=44o0gf>5<<uk9;m7>54;294~"5800:;k5G52c8L04?3`<j6=44i6794?=n:9:1<75`1dg94?=zj:;86=4<:183!4713;<56F:3`9K17><,89:6>l4i000>5<<a88?6=44o0gf>5<<uk9:o7>53;294~"5800>?45G52c8L04?3`<j6=44i055>5<<g8on6=44}c13=?6=<3:1<v*=08823c=O=:k0D8<7;h4b>5<<a>?1<75f21294?=h9lo1<75rb231>5<4290;w)<?9;34=>N2;h1C9?64$012>6d<a8886=44i007>5<<g8on6=44}c12f?6=;3:1<v*=08867<=O=:k0D8<7;h4b>5<<a8==6=44o0gf>5<<uk9;47>54;294~"5800:;k5G52c8L04?3`<j6=44i6794?=n:9:1<75`1dg94?=zj:;:6=4<:183!4713;<56F:3`9K17><,89:6>l4i000>5<<a88?6=44o0gf>5<<uk9:m7>53;294~"5800>?45G52c8L04?3`<j6=44i055>5<<g8on6=44}c133?6=<3:1<v*=08823c=O=:k0D8<7;h4b>5<<a>?1<75f21294?=h9lo1<75rb233>5<4290;w)<?9;34=>N2;h1C9?64$012>6d<a8886=44i007>5<<g8on6=44}c12=?6=;3:1<v*=08867<=O=:k0D8<7;h4b>5<<a8==6=44o0gf>5<<uk9;:7>54;294~"5800:;k5G52c8L04?3`<j6=44i6794?=n:9:1<75`1dg94?=zj::m6=4<:183!4713;<56F:3`9K17><,89:6>l4i000>5<<a88?6=44o0gf>5<<uk9:47>53;294~"5800>?45G52c8L04?3`<j6=44i055>5<<g8on6=44}c131?6=<3:1<v*=08823c=O=:k0D8<7;h4b>5<<a>?1<75f21294?=h9lo1<75rb22f>5<4290;w)<?9;34=>N2;h1C9?64$012>6d<a8886=44i007>5<<g8on6=44}c171?6=<3:1<v*=08825==O=:k0D8<7;%305?7<a?<1<75f6e83>>o093:17b?i6;29?xd4<m0;694?:1y'65?=9820D8=n;I71<>"6;80:7d89:188m3b=831b;<4?::m2b3<722wi?9m50;694?6|,;:26<?7;I70e>N2:11/=>?51:k52?6=3`<o6=44i6394?=h9o<1<75rb26a>5<3290;w)<?9;32<>N2;h1C9?64$012>4=n>?0;66g9d;29?l162900c<h9:188yg53i3:187>50z&14<<6911C9>o4H40;?!7493;0e;850;9j2a<722c<=7>5;n3e2?6=3th8844?:583>5}#:931=<64H41b?M3502.:?<4>;h45>5<<a?n1<75f7083>>i6n?0;66sm35:94?2=83:p(?>6:03;?M34i2B>>55+12395>o1>3:17d8k:188m27=831d=k850;9~f620290?6=4?{%03=?7602B>?l5G53:8 456281b:;4?::k5`?6=3`=:6=44o0d5>5<<uk9?:7>54;294~"5800:=55G52c8L04?3-;8=7?4i7494?=n>m0;66g81;29?j7a>3:17pl<4583>1<729q/>=7510:8L05f3A?946*>3082?l012900e;j50;9j34<722e:j;4?::a715=83>1<7>t$32:>47?3A?8m6F:299'567=92c=:7>5;h4g>5<<a>;1<75`1g494?=zj:i<6=4::183!4713;:56F:3`9K17><,89:6<5f6783>>o103:17d8k:188m27=831d=k850;9~f6e1290>6=4?{%03=?7612B>?l5G53:8 456281b:;4?::k5<?6=3`<o6=44i6394?=h9o<1<75rb2a6>5<2290;w)<?9;32=>N2;h1C9?64$012>4=n>?0;66g98;29?l0c2900e:?50;9l5c0=831vn>m;:186>5<7s-8;57?>9:J67d=O=;20(<=>:09j23<722c=47>5;h4g>5<<a>;1<75`1g494?=zj:i86=4::183!4713;:56F:3`9K17><,89:6<5f6783>>o103:17d8k:188m27=831d=k850;9~f6e5290>6=4?{%03=?7612B>?l5G53:8 456281b:;4?::k5<?6=3`<o6=44i6394?=h9o<1<75rb2a2>5<2290;w)<?9;32=>N2;h1C9?64$012>4=n>?0;66g98;29?l0c2900e:?50;9l5c0=831vn>m?:186>5<7s-8;57?>9:J67d=O=;20(<=>:09j23<722c=47>5;h4g>5<<a>;1<75`1g494?=zj:hm6=4::183!4713;:56F:3`9K17><,89:6<5f6783>>o103:17d8k:188m27=831d=k850;9~f6db290>6=4?{%03=?7612B>?l5G53:8 456281b:;4?::k5<?6=3`<o6=44i6394?=h9o<1<75rb2`0>5<2290;w)<?9;32=>N2;h1C9?64$012>4=n>?0;66g98;29?l0c2900e:?50;9l5c0=831vn>l=:186>5<7s-8;57?>9:J67d=O=;20(<=>:09j23<722c=47>5;h4g>5<<a>;1<75`1g494?=zj:h:6=4::183!4713;:56F:3`9K17><,89:6<5f6783>>o103:17d8k:188m27=831d=k850;9~f6d7290>6=4?{%03=?7612B>?l5G53:8 456281b:;4?::k5<?6=3`<o6=44i6394?=h9o<1<75rb2ce>5<2290;w)<?9;32=>N2;h1C9?64$012>4=n>?0;66g98;29?l0c2900e:?50;9l5c0=831vn>oj:186>5<7s-8;57?>9:J67d=O=;20(<=>:09j23<722c=47>5;h4g>5<<a>;1<75`1g494?=zj:ko6=4::183!4713;:56F:3`9K17><,89:6<5f6783>>o103:17d8k:188m27=831d=k850;9~f6gd290>6=4?{%03=?7612B>?l5G53:8 456281b:;4?::k5<?6=3`<o6=44i6394?=h9o<1<75rb2ca>5<2290;w)<?9;32=>N2;h1C9?64$012>4=n>?0;66g98;29?l0c2900e:?50;9l5c0=831vn>on:186>5<7s-8;57?>b:J67d=O=;20(<=>:`9j23<722c=47>5;h52>5<<a8l>6=44o0d5>5<<uk9>87>54;294~"5800:=55G52c8L04?3-;8=7?4i7494?=n>m0;66g81;29?j7a>3:17pl<5083>1<729q/>=7510:8L05f3A?946*>3082?l012900e;j50;9j34<722e:j;4?::a70g=83>1<7>t$32:>47?3A?8m6F:299'567=92c=:7>5;h4g>5<<a>;1<75`1g494?=zj:?36=4;:183!4713;:m6F:3`9K17><,89:6l5f6783>>o093:17d?i5;29?j7a>3:17pl<5683>1<729q/>=7510c8L05f3A?946*>308b?l012900e:?50;9j5c3=831d=k850;9~f14029086=4?{%03=?3412B>?l5G53:8m3g=831b=:850;9l5`c=831vn9?k:180>5<7s-8;57?89:J67d=O=;20(<=>:2`8m4442900e<<;:188k4cb2900qo:=6;297?6=8r.9<44:389K16g<@<837d8n:188m4112900c<kj:188yg26;3:187>50z&14<<6?o1C9>o4H40;?l0f2900e:;50;9j656=831d=hk50;9~f17d29086=4?{%03=?7012B>?l5G53:8 4562:h0e<<<:188m4432900c<kj:188yg25=3:1?7>50z&14<<2;01C9>o4H40;?l0f2900e<99:188k4cb2900qo:>2;290?6=8r.9<44>7g9K16g<@<837d8n:188m23=831b>=>50;9l5`c=831vn9?m:180>5<7s-8;57?89:J67d=O=;20(<=>:2`8m4442900e<<;:188k4cb2900qo:=4;297?6=8r.9<44:389K16g<@<837d8n:188m4112900c<kj:188yg2693:187>50z&14<<6?o1C9>o4H40;?l0f2900e:;50;9j656=831d=hk50;9~f17f29086=4?{%03=?7012B>?l5G53:8 4562:h0e<<<:188m4432900c<kj:188yg25;3:1?7>50z&14<<2;01C9>o4H40;?l0f2900e<99:188k4cb2900qo:>0;290?6=8r.9<44>7g9K16g<@<837d8n:188m23=831b>=>50;9l5`c=831vn9?6:180>5<7s-8;57?89:J67d=O=;20(<=>:2`8m4442900e<<;:188k4cb2900qo:=2;297?6=8r.9<44:389K16g<@<837d8n:188m4112900c<kj:188yg27n3:187>50z&14<<6?o1C9>o4H40;?l0f2900e:;50;9j656=831d=hk50;9~f17?29086=4?{%03=?7012B>?l5G53:8 4562:h0e<<<:188m4432900c<kj:188yg2593:1?7>50z&14<<2;01C9>o4H40;?l0f2900e<99:188k4cb2900qo:?e;290?6=8r.9<44>7g9K16g<@<837d8n:188m23=831b>=>50;9l5`c=831vn9?8:180>5<7s-8;57?89:J67d=O=;20(<=>:2`8m4442900e<<;:188k4cb2900qo:=0;297?6=8r.9<44:389K16g<@<837d8n:188m4112900c<kj:188yg27l3:187>50z&14<<6?o1C9>o4H40;?l0f2900e:;50;9j656=831d=hk50;9~f17129086=4?{%03=?7012B>?l5G53:8 4562:h0e<<<:188m4432900c<kj:188yg26n3:1?7>50z&14<<2;01C9>o4H40;?l0f2900e<99:188k4cb2900qo:?c;290?6=8r.9<44>7g9K16g<@<837d8n:188m23=831b>=>50;9l5`c=831vn9?::180>5<7s-8;57?89:J67d=O=;20(<=>:2`8m4442900e<<;:188k4cb2900qo:>e;297?6=8r.9<44:389K16g<@<837d8n:188m4112900c<kj:188yg27j3:187>50z&14<<6?o1C9>o4H40;?l0f2900e:;50;9j656=831d=hk50;9~f17329086=4?{%03=?7012B>?l5G53:8 4562:h0e<<<:188m4432900c<kj:188yg24n3:187>50z&14<<6911C9>o4H40;?!7493;0e;850;9j2a<722c<=7>5;n3e2?6=3th?8:4?:583>5}#:931=<64H41b?M3502.:?<4>;h45>5<<a?n1<75f7083>>i6n?0;66sm45494?2=83:p(?>6:03;?M34i2B>>55+12395>o1>3:17d8k:188m27=831d=k850;9~f122290?6=4?{%03=?7602B>?l5G53:8 456281b:;4?::k5`?6=3`=:6=44o0d5>5<<uk>?87>54;294~"5800:=55G52c8L04?3-;8=7?4i7494?=n>m0;66g81;29?j7a>3:17pl;4283>1<729q/>=7510:8L05f3A?946*>3082?l012900e;j50;9j34<722e:j;4?::a014=83>1<7>t$32:>47?3A?8m6F:299'567=92c=:7>5;h4g>5<<a>;1<75`1g494?=zj=>:6=4;:183!4713;:46F:3`9K17><,89:6<5f6783>>o1l3:17d9>:188k4`12900qo:;0;290?6=8r.9<44>199K16g<@<837)?<1;38m30=831b:i4?::k45?6=3f;m:7>5;|`77`<72=0;6=u+21;954><@<9j7E;=8:&274<63`<=6=44i7f94?=n?80;66a>f783>>{e<:n1<7:50;2x 76>28;37E;<a:J66==#9:;1=6g96;29?l0c2900e:?50;9l5c0=831vn97n:186>5<7s-8;57?>9:J67d=O=;20(<=>:09j23<722c=47>5;h4g>5<<a>;1<75`1g494?=zj=326=4::183!4713;:56F:3`9K17><,89:6<5f6783>>o103:17d8k:188m27=831d=k850;9~f1??290>6=4?{%03=?7612B>?l5G53:8 456281b:;4?::k5<?6=3`<o6=44i6394?=h9o<1<75rb5;4>5<2290;w)<?9;32=>N2;h1C9?64$012>4=n>?0;66g98;29?l0c2900e:?50;9l5c0=831vn979:186>5<7s-8;57?>9:J67d=O=;20(<=>:09j23<722c=47>5;h4g>5<<a>;1<75`1g494?=zj=3>6=4::183!4713;:56F:3`9K17><,89:6<5f6783>>o103:17d8k:188m27=831d=k850;9~f1?3290>6=4?{%03=?7612B>?l5G53:8 456281b:;4?::k5<?6=3`<o6=44i6394?=h9o<1<75rb5;0>5<2290;w)<?9;32=>N2;h1C9?64$012>4=n>?0;66g98;29?l0c2900e:?50;9l5c0=831vn97=:186>5<7s-8;57?>9:J67d=O=;20(<=>:09j23<722c=47>5;h4g>5<<a>;1<75`1g494?=zj=3:6=4::183!4713;:56F:3`9K17><,89:6<5f6783>>o103:17d8k:188m27=831d=k850;9~f1>1290>6=4?{%03=?7612B>?l5G53:8 456281b:;4?::k5<?6=3`<o6=44i6394?=h9o<1<75rb5:6>5<2290;w)<?9;32=>N2;h1C9?64$012>4=n>?0;66g98;29?l0c2900e:?50;9l5c0=831vn96;:186>5<7s-8;57?>9:J67d=O=;20(<=>:09j23<722c=47>5;h4g>5<<a>;1<75`1g494?=zj=286=4::183!4713;:56F:3`9K17><,89:6<5f6783>>o103:17d8k:188m27=831d=k850;9~f1>5290>6=4?{%03=?7612B>?l5G53:8 456281b:;4?::k5<?6=3`<o6=44i6394?=h9o<1<75rb5:2>5<2290;w)<?9;32=>N2;h1C9?64$012>4=n>?0;66g98;29?l0c2900e:?50;9l5c0=831vn96?:186>5<7s-8;57?>9:J67d=O=;20(<=>:09j23<722c=47>5;h4g>5<<a>;1<75`1g494?=zj==m6=4::183!4713;:56F:3`9K17><,89:6<5f6783>>o103:17d8k:188m27=831d=k850;9~f11b290>6=4?{%03=?7612B>?l5G53:8 456281b:;4?::k5<?6=3`<o6=44i6394?=h9o<1<75rb55g>5<2290;w)<?9;32f>N2;h1C9?64$012>d=n>?0;66g98;29?l162900e<h::188k4`12900qo:82;291?6=8r.9<44>189K16g<@<837)?<1;38m30=831b:54?::k5`?6=3`=:6=44o0d5>5<<uk><=7>55;294~"5800:=45G52c8L04?3-;8=7?4i7494?=n>10;66g9d;29?l162900c<h9:188yg2083:197>50z&14<<6901C9>o4H40;?!7493;0e;850;9j2=<722c=h7>5;h52>5<<g8l=6=44}c65b?6==3:1<v*=08825<=O=:k0D8<7;%305?7<a?<1<75f6983>>o1l3:17d9>:188k4`12900qo:9e;291?6=8r.9<44>189K16g<@<837)?<1;38m30=831b:54?::k5`?6=3`=:6=44o0d5>5<<uk>=h7>55;294~"5800:=45G52c8L04?3-;8=7?4i7494?=n>10;66g9d;29?l162900c<h9:188yg21k3:197>50z&14<<6901C9>o4H40;?!7493;0e;850;9j2=<722c=h7>5;h52>5<<g8l=6=44}c65f?6==3:1<v*=08825<=O=:k0D8<7;%305?7<a?<1<75f6983>>o1l3:17d9>:188k4`12900qo:9a;291?6=8r.9<44>1c9K16g<@<837)?<1;c8m30=831b:54?::k45?6=3`;m97>5;n3e2?6=3th?:44?:483>5}#:931=<74H41b?M3502.:?<4>;h45>5<<a?21<75f6e83>>o093:17b?i6;29?xd5i?0;694?:1y'65?=9820D8=n;I71<>"6;80:7d89:188m3b=831b;<4?::m2b3<722wi>l;50;694?6|,;:26<?7;I70e>N2:11/=>?51:k52?6=3`<o6=44i6394?=h9o<1<75rb3c7>5<3290;w)<?9;32<>N2;h1C9?64$012>4=n>?0;66g9d;29?l162900c<h9:188yg4f;3:187>50z&14<<6911C9>o4H40;?!7493;0e;850;9j2a<722c<=7>5;n3e2?6=3th9m?4?:583>5}#:931=<64H41b?M3502.:?<4>;h45>5<<a?n1<75f7083>>i6n?0;66sm2`394?2=83:p(?>6:03;?M34i2B>>55+12395>o1>3:17d8k:188m27=831d=k850;9~f7g7290?6=4?{%03=?7602B>?l5G53:8 456281b:;4?::k5`?6=3`=:6=44o0d5>5<<uk82j7>54;294~"5800:=55G52c8L04?3-;8=7?4i7494?=n>m0;66g81;29?j7a>3:17pl=9d83>1<729q/>=7510:8L05f3A?946*>3082?l012900e;j50;9j34<722e:j;4?::a6<b=83>1<7>t$32:>47?3A?8m6F:299'567=92c=:7>5;h4g>5<<a>;1<75`1g494?=zj;>:6=4;:183!4713;:46F:3`9K17><,89:6<5f6783>>o1l3:17d9>:188k4`12900qo<;0;290?6=8r.9<44>199K16g<@<837)?<1;38m30=831b:i4?::k45?6=3f;m:7>5;|`17c<72=0;6=u+21;954><@<9j7E;=8:&274<63`<=6=44i7f94?=n?80;66a>f783>>{e::o1<7:50;2x 76>28;37E;<a:J66==#9:;1=6g96;29?l0c2900e:?50;9l5c0=831vn?=k:187>5<7s-8;57?>8:J67d=O=;20(<=>:09j23<722c=h7>5;h52>5<<g8l=6=44}c00g?6=<3:1<v*=08825==O=:k0D8<7;%305?7<a?<1<75f6e83>>o093:17b?i6;29?xd5;k0;694?:1y'65?=9820D8=n;I71<>"6;80:7d89:188m3b=831b;<4?::m2b3<722wi>>o50;694?6|,;:26<?7;I70e>N2:11/=>?51:k52?6=3`<o6=44i6394?=h9o<1<75rb31:>5<3290;w)<?9;32<>N2;h1C9?64$012>4=n>?0;66g9d;29?l162900c<h9:188yg4403:187>50z&14<<6911C9>o4H40;?!7493;0e;850;9j2a<722c<=7>5;n3e2?6=3th9j:4?:583>5}#:931=<64H41b?M3502.:?<4>;h45>5<<a?n1<75f7083>>i6n?0;66sm2g494?2=83:p(?>6:03;?M34i2B>>55+12395>o1>3:17d8k:188m27=831d=k850;9~f7`2290?6=4?{%03=?7602B>?l5G53:8 456281b:;4?::k5`?6=3`=:6=44o0d5>5<<uk8m87>54;294~"5800:=55G52c8L04?3-;8=7?4i7494?=n>m0;66g81;29?j7a>3:17pl=f283>1<729q/>=7510:8L05f3A?946*>3082?l012900e;j50;9j34<722e:j;4?::a6c4=83>1<7>t$32:>47?3A?8m6F:299'567=92c=:7>5;h4g>5<<a>;1<75`1g494?=zj;l:6=4;:183!4713;:46F:3`9K17><,89:6<5f6783>>o1l3:17d9>:188k4`12900qo<i0;290?6=8r.9<44>199K16g<@<837)?<1;38m30=831b:i4?::k45?6=3f;m:7>5;|`1ac<72=0;6=u+21;954><@<9j7E;=8:&274<63`<=6=44i7f94?=n?80;66a>f783>>{e:lo1<7:50;2x 76>28;37E;<a:J66==#9:;1=6g96;29?l0c2900e:?50;9l5c0=831vn?7=:187>5<7s-8;57?>8:J67d=O=;20(<=>:09j23<722c=h7>5;h52>5<<g8l=6=44}c0:5?6=<3:1<v*=08825==O=:k0D8<7;%305?7<a?<1<75f6e83>>o093:17b?i6;29?xd5190;694?:1y'65?=9820D8=n;I71<>"6;80:7d89:188m3b=831b;<4?::m2b3<722wi>5h50;694?6|,;:26<?7;I70e>N2:11/=>?51:k52?6=3`<o6=44i6394?=h9o<1<75rb3:f>5<3290;w)<?9;32<>N2;h1C9?64$012>4=n>?0;66g9d;29?l162900c<h9:188yg4?l3:187>50z&14<<6911C9>o4H40;?!7493;0e;850;9j2a<722c<=7>5;n3e2?6=3th94n4?:583>5}#:931=<64H41b?M3502.:?<4>;h45>5<<a?n1<75f7083>>i6n?0;66sm29`94?2=83:p(?>6:03;?M34i2B>>55+12395>o1>3:17d8k:188m27=831d=k850;9~f7>f290?6=4?{%03=?7602B>?l5G53:8 456281b:;4?::k5`?6=3`=:6=44o0d5>5<<uk8357>54;294~"5800:=55G52c8L04?3-;8=7?4i7494?=n>m0;66g81;29?j7a>3:17pl=cd83>1<729q/>=7510:8L05f3A?946F92:&23`<5811/=>?51:k52?6=3`<o6=44i6394?=h9o<1<75rb3ag>5<3290;w)<?9;32<>N2;h1C9?64H708 41b2;:37)?<1;38m30=831b:i4?::k45?6=3f;m:7>5;|`1gf<72=0;6=u+21;954><@<9j7E;=8:J56>"6?l09<55+12395>o1>3:17d8k:188m27=831d=k850;9~f7ee290?6=4?{%03=?7602B>?l5G53:8L34<,8=n6?>7;%305?7<a?<1<75f6e83>>o093:17b?i6;29?xd5kh0;694?:1y'65?=9820D8=n;I71<>N1:2.:;h4=099'567=92c=:7>5;h4g>5<<a>;1<75`1g494?=zj;i26=4;:183!4713;:46F:3`9K17><@?80(<9j:32;?!7493;0e;850;9j2a<722c<=7>5;n3e2?6=3th9o54?:583>5}#:931=<64H41b?M3502B=>6*>7d814==#9:;1=6g96;29?l0c2900e:?50;9l5c0=831vn?m8:187>5<7s-8;57?>8:J67d=O=;20D;<4$05f>76?3-;8=7?4i7494?=n>m0;66g81;29?j7a>3:17pl=c783>1<729q/>=7510:8L05f3A?946F92:&23`<5811/=>?51:k52?6=3`<o6=44i6394?=h9o<1<75rb3a6>5<3290;w)<?9;32<>N2;h1C9?64H708 41b2;:37)?<1;38m30=831b:i4?::k45?6=3f;m:7>5;|`12<<72=0;6=u+21;954><@<9j7E;=8:J56>"6?l09<55+12395>o1>3:17d8k:188m27=831d=k850;9~f70?290?6=4?{%03=?7602B>?l5G53:8L34<,8=n6?>7;%305?7<a?<1<75f6e83>>o093:17b?i6;29?xd5>>0;694?:1y'65?=9820D8=n;I71<>N1:2.:;h4=099'567=92c=:7>5;h4g>5<<a>;1<75`1g494?=zj;<=6=4;:183!4713;:46F:3`9K17><@?80(<9j:32;?!7493;0e;850;9j2a<722c<=7>5;n3e2?6=3th9:84?:583>5}#:931=<64H41b?M3502B=>6*>7d814==#9:;1=6g96;29?l0c2900e:?50;9l5c0=831vn?8;:187>5<7s-8;57?>8:J67d=O=;20D;<4$05f>76?3-;8=7?4i7494?=n>m0;66g81;29?j7a>3:17pl=6283>1<729q/>=7510:8L05f3A?946F92:&23`<5811/=>?51:k52?6=3`<o6=44i6394?=h9o<1<75rb341>5<3290;w)<?9;32<>N2;h1C9?64H708 41b2;:37)?<1;38m30=831b:i4?::k45?6=3f;m:7>5;|`124<72=0;6=u+21;954><@<9j7E;=8:J56>"6?l09<55+12395>o1>3:17d8k:188m27=831d=k850;9~f707290?6=4?{%03=?7602B>?l5G53:8L34<,8=n6?>7;%305?7<a?<1<75f6e83>>o093:17b?i6;29?xd5=<0;694?:1y'65?=9820D8=n;I71<>"6;80:7d89:188m3b=831b;<4?::m2b3<722wi>8:50;694?6|,;:26<?7;I70e>N2:11/=>?51:k52?6=3`<o6=44i6394?=h9o<1<75rb370>5<3290;w)<?9;32<>N2;h1C9?64$012>4=n>?0;66g9d;29?l162900c<h9:188yg42:3:187>50z&14<<6911C9>o4H40;?!7493;0e;850;9j2a<722c<=7>5;n3e2?6=3th99<4?:583>5}#:931=<64H41b?M3502.:?<4>;h45>5<<a?n1<75f7083>>i6n?0;66sm24294?2=83:p(?>6:03;?M34i2B>>55+12395>o1>3:17d8k:188m27=831d=k850;9~f72a290?6=4?{%03=?7602B>?l5G53:8 456281b:;4?::k5`?6=3`=:6=44o0d5>5<<uk8?i7>54;294~"5800:=55G52c8L04?3-;8=7?4i7494?=n>m0;66g81;29?j7a>3:17pl=4e83>1<729q/>=7510:8L05f3A?946*>3082?l012900e;j50;9j34<722e:j;4?::a61e=83>1<7>t$32:>47?3A?8m6F:299'567=92c=:7>5;h4g>5<<a>;1<75`1g494?=zj;hj6=4;:183!4713;:46F:3`9K17><,89:6<5f6783>>o1l3:17d9>:188k4`12900qo<m9;290?6=8r.9<44>199K16g<@<837)?<1;38m30=831b:i4?::k45?6=3f;m:7>5;|`1f=<72=0;6=u+21;954><@<9j7E;=8:&274<63`<=6=44i7f94?=n?80;66a>f783>>{e:k=1<7:50;2x 76>28;37E;<a:J66==#9:;1=6g96;29?l0c2900e:?50;9l5c0=831vn?l9:187>5<7s-8;57?>8:J67d=O=;20(<=>:09j23<722c=h7>5;h52>5<<g8l=6=44}c0a1?6=<3:1<v*=08825==O=:k0D8<7;%305?7<a?<1<75f6e83>>o093:17b?i6;29?xd5j=0;694?:1y'65?=9820D8=n;I71<>"6;80:7d89:188m3b=831b;<4?::m2b3<722wi>o=50;694?6|,;:26<?7;I70e>N2:11/=>?51:k52?6=3`<o6=44i6394?=h9o<1<75rb3`1>5<3290;w)<?9;32<>N2;h1C9?64$012>4=n>?0;66g9d;29?l162900c<h9:188yg4e93:187>50z&14<<6911C9>o4H40;?!7493;0e;850;9j2a<722c<=7>5;n3e2?6=3th?854?:283>5}#:931=:74H41b?M3502.:?<4>7:&2b1<2<01b=?=50;9j572=831d=hk50;9~f6e?290=6=4?{%03=?70k2B>?l5G53:8 4562;=0(<h;:46:?l75;3:17d?=4;29?l75=3:17d?=6;29?l75?3:17b?je;29?xd2:90;6>4?:1y'65?=9>30D8=n;I71<>"6;80:;6g>2283>>o6:=0;66a>ed83>>{e=;<1<7=50;2x 76>28=27E;<a:J66==#9:;1=:5+1g6911d<a8886=44i007>5<<g8on6=44}c1gf?6==3:1<v*=08823g=O=:k0D8<7;%305?5d3`;9?7>5;h310?6=3`;997>5;h312?6=3f;ni7>5;|`0`<<72<0;6=u+21;952d<@<9j7E;=8:&274<4k2c:>>4?::k261<722c:>84?::k263<722e:ih4?::a7a1=83?1<7>t$32:>41e3A?8m6F:299'567=;j1b=?=50;9j572=831b=?;50;9j570=831d=hk50;9~f6b2290>6=4?{%03=?70j2B>?l5G53:8 4562:i0e<<<:188m4432900e<<::188m4412900c<kj:188yg5c;3:197>50z&14<<6?k1C9>o4H40;?!74939h7d?=3;29?l75<3:17d?=5;29?l75>3:17b?je;29?xd4ml0;684?:1y'65?=9>h0D8=n;I71<>"6;808o6g>2283>>o6:=0;66g>2483>>o6:?0;66a>ed83>>{e;li1<7;50;2x 76>28=i7E;<a:J66==#9:;1?n5f13194?=n9;>1<75f13794?=n9;<1<75`1dg94?=zj:oj6=4::183!4713;<n6F:3`9K17><,89:6>m4i000>5<<a88?6=44i006>5<<a88=6=44o0gf>5<<uk9n47>55;294~"5800:;o5G52c8L04?3-;8=7=l;h317?6=3`;987>5;h311?6=3`;9:7>5;n3fa?6=3th8i;4?:483>5}#:931=:l4H41b?M3502.:?<4<c:k266<722c:>94?::k260<722c:>;4?::m2a`<722wi?;j50;794?6|,;:26<9m;I70e>N2:11/=>?53b9j575=831b=?:50;9j573=831b=?850;9l5`c=831vn>8m:186>5<7s-8;57?8b:J67d=O=;20(<=>:2a8m4442900e<<;:188m4422900e<<9:188k4cb2900qo=99;291?6=8r.9<44>7c9K16g<@<837)?<1;1`?l75;3:17d?=4;29?l75=3:17d?=6;29?j7bm3:17pl<6683>0<729q/>=7516`8L05f3A?946*>3080g>o6::0;66g>2583>>o6:<0;66g>2783>>i6ml0;66sm37794?3=83:p(?>6:05a?M34i2B>>55+12397f=n9;91<75f13694?=n9;?1<75f13494?=h9lo1<75rb2:3>5<2290;w)<?9;34f>N2;h1C9?64$012>6e<a8886=44i007>5<<a88>6=44i005>5<<g8on6=44}c14a?6==3:1<v*=08823g=O=:k0D8<7;%305?5d3`;9?7>5;h310?6=3`;997>5;h312?6=3f;ni7>5;|`03f<72<0;6=u+21;952d<@<9j7E;=8:&274<4k2c:>>4?::k261<722c:>84?::k263<722e:ih4?::a72g=83?1<7>t$32:>41e3A?8m6F:299'567=;01b=?=50;9j572=831b=?;50;9j570=831d=hk50;9~f61?290>6=4?{%03=?70j2B>?l5G53:8 4562:20e<<<:188m4432900e<<::188m4412900c<kj:188yg55<3:197>50z&14<<6?k1C9>o4H40;?!74939=7d?=3;29?l75<3:17d?=5;29?l75>3:17b?je;29?xd4:j0;6:4?:1y'65?=9>n0D8=n;I71<>"6;8037d?=3;29?l75<3:17d?=5;29?l75>3:17d?=7;29?l7503:17b?je;29?xd4;;0;6:4?:1y'65?=9>n0D8=n;I71<>"6;8037d?=3;29?l75<3:17d?=5;29?l75>3:17d?=7;29?l7503:17b?je;29?xd4880;694?:1y'65?=9>k0D8=n;I71<>"6;80?<6*>f58602=n9;91<75f13694?=n9;?1<75`1dg94?=zj::86=4::183!4713;<n6F:3`9K17><,89:6;5+1g6911b<a8886=44i007>5<<a88>6=44i005>5<<g8on6=44}c130?6=>3:1<v*=08823f=O=:k0D8<7;%305?1<,8l?68:k;h317?6=3`;987>5;h311?6=3`;9:7>5;h313?6=3f;ni7>5;|`047<72=0;6=u+21;952g<@<9j7E;=8:&274<23-;m87;;7:k266<722c:>94?::k260<722e:ih4?::a7<7=83<1<7>t$32:>41d3A?8m6F:299'567=98l0e<<<:188m4432900e<<::188m4412900e<<8:188k4cb2900qo=77;292?6=8r.9<44>7b9K16g<@<837)?<1;68m4442900e<<;:188m4422900e<<9:188m4402900c<kj:188yg5?n3:1:7>50z&14<<6?j1C9>o4H40;?!7493>:7d?=3;29?l75<3:17d?=5;29?l75>3:17d?=7;29?j7bm3:17pl<8883>6<729q/>=7516;8L05f3A?946*>3081<>"6n=0>885f13194?=n9;>1<75`1dg94?=zj:2j6=4;:183!4713;<m6F:3`9K17><,89:6?j4$0d7>0223`;9?7>5;h310?6=3`;997>5;n3fa?6=3th84o4?:583>5}#:931=:o4H41b?M3502.:?<4<2:k266<722c:>94?::k260<722e:ih4?::a7<4=83?1<7>t$32:>41e3A?8m6F:299'567=98:0e<<<:188m4432900e<<::188m4412900c<kj:188yg5?>3:1:7>50z&14<<6?j1C9>o4H40;?!7493;:=6g>2283>>o6:=0;66g>2483>>o6:?0;66g>2683>>i6ml0;66sm34294?2=83:p(?>6:05b?M34i2B>>55+123926=#9o>199:4i000>5<<a88?6=44i006>5<<g8on6=44}c162?6=<3:1<v*=08823d=O=:k0D8<7;%305?073-;m87;;4:k266<722c:>94?::k260<722e:ih4?::a71`=83?1<7>t$32:>41e3A?8m6F:299'567=;h1/=k:55518m4442900e<<;:188m4422900e<<9:188k4cb2900qo=:3;291?6=8r.9<44>7c9K16g<@<837)?<1;;8 4`32<>87d?=3;29?l75<3:17d?=5;29?l75>3:17b?je;29?xd4<l0;684?:1y'65?=9>h0D8=n;I71<>"6;809:6*>f58613=n9;91<75f13694?=n9;?1<75f13494?=h9lo1<75rb527>5<0290;w)<?9;34`>N2;h1C9?64$012>66<a8886=44i007>5<<a88>6=44i005>5<<a88<6=44i00;>5<<g8on6=44}c637?6=>3:1<v*=08823f=O=:k0D8<7;%305?543`;9?7>5;h310?6=3`;997>5;h312?6=3`;9;7>5;n3fa?6=3th?<?4?:483>5}#:931=:l4H41b?M3502.:?<4=e:&2b1<2=01b=?=50;9j572=831b=?;50;9j570=831d=hk50;9~f166290?6=4?{%03=?70i2B>?l5G53:8 4562;n0(<h;:47:?l75;3:17d?=4;29?l75=3:17b?je;29?xd3890;6>4?:1y'65?=9>30D8=n;I71<>"6;80946g>2283>>o6:=0;66a>ed83>>{e<<k1<7:50;2x 76>28=j7E;<a:J66==#9:;1??5+1g6910d<a8886=44i007>5<<a88>6=44o0gf>5<<uk>=>7>56;294~"5800:;n5G52c8L04?3-;8=7:>;h317?6=3`;987>5;h311?6=3`;9:7>5;h313?6=3f;ni7>5;|`721<72>0;6=u+21;952b<@<9j7E;=8:&274<1?2c:>>4?::k261<722c:>84?::k263<722c:>:4?::k26=<722e:ih4?::a01d=83>1<7>t$32:>41f3A?8m6F:299'567=:m1/=k:554`8m4442900e<<;:188m4422900c<kj:188yg23i3:1?7>50z&14<<6?01C9>o4H40;?!7493837d?=3;29?l75<3:17b?je;29?xd5?<0;6>4?:1y'65?=9>30D8=n;I71<>"6;80946*>f58603=n9;91<75f13694?=h9lo1<75rb354>5<3290;w)<?9;34e>N2;h1C9?64$012>6b<,8l?68:9;h317?6=3`;987>5;h311?6=3f;ni7>5;|`1a7<72:0;6=u+21;952?<@<9j7E;=8:&274<502c:>>4?::k261<722e:ih4?::a6`2=83>1<7>t$32:>41f3A?8m6F:299'567=;m1/=k:554c8m4442900e<<;:188m4422900c<kj:188yg46j3:1?7>50z&14<<6?01C9>o4H40;?!7493837)?i4;764>o6::0;66g>2583>>i6ml0;66sm20c94?5=83:p(?>6:05:?M34i2B>>55+12396==#9o>198>4i000>5<<a88?6=44o0gf>5<<uk8:57>53;294~"5800:;45G52c8L04?3-;8=7<7;h317?6=3`;987>5;n3fa?6=3th9=54?:283>5}#:931=:74H41b?M3502.:?<4=8:&2b1<2==1b=?=50;9j572=831d=hk50;9~f77029086=4?{%03=?7012B>?l5G53:8 4562;20(<h;:477?l75;3:17d?=4;29?j7bm3:17pl=1783>6<729q/>=7516;8L05f3A?946*>3081<>"6n=0>9>5f13194?=n9;>1<75`1dg94?=zj;;>6=4<:183!4713;<56F:3`9K17><,89:6?64$0d7>0343`;9?7>5;h310?6=3f;ni7>5;|`157<72:0;6=u+21;952?<@<9j7E;=8:&274<502.:j94:4g9j575=831b=?:50;9l5`c=831vn??;:180>5<7s-8;57?89:J67d=O=;20(<=>:3:8 4`32<>n7d?=3;29?l75<3:17b?je;29?xd59:0;6>4?:1y'65?=9>30D8=n;I71<>"6;80946*>f5860`=n9;91<75f13694?=h9lo1<75rb332>5<4290;w)<?9;34=>N2;h1C9?64$012>7><,8l?68:i;h317?6=3`;987>5;n3fa?6=3th9==4?:283>5}#:931=:74H41b?M3502.:?<4=8:k266<722c:>94?::m2a`<722wi>=h50;194?6|,;:26<96;I70e>N2:11/=>?5299'5c2==<80e<<<:188m4432900c<kj:188yg47m3:1?7>50z&14<<6?01C9>o4H40;?!7493837)?i4;766>o6::0;66g>2583>>i6ml0;66sm21f94?5=83:p(?>6:05:?M34i2B>>55+12396==#9o>198?4i000>5<<a88?6=44o0gf>5<<uk8;o7>53;294~"5800:;45G52c8L04?3-;8=7<7;%3e0?3292c:>>4?::k261<722e:ih4?::a65d=8391<7>t$32:>41>3A?8m6F:299'567=:11/=k:555a8m4442900e<<;:188k4cb2900qo<?a;297?6=8r.9<44>789K16g<@<837)?<1;0;?!7a<3??o6g>2283>>o6:=0;66a>ed83>>{e:>21<7;50;2x 76>28=i7E;<a:J66==#9:;1>l5+1g6910><a8886=44i007>5<<a88>6=44i005>5<<g8on6=44}c04e?6=>3:1<v*=08823f=O=:k0D8<7;%305?5b3-;m87;:c:k266<722c:>94?::k260<722c:>;4?::k262<722e:ih4?::a62e=83=1<7>t$32:>41c3A?8m6F:299'567=:j1b=?=50;9j572=831b=?;50;9j570=831b=?950;9j57>=831d=hk50;9~f7c2290>6=4?{%03=?70j2B>?l5G53:8 4562;k0(<h;:474?l75;3:17d?=4;29?l75=3:17d?=6;29?j7bm3:17pl=e683>3<729q/>=7516a8L05f3A?946*>3080a>"6n=0>9l5f13194?=n9;>1<75f13794?=n9;<1<75f13594?=h9lo1<75rb3g:>5<0290;w)<?9;34`>N2;h1C9?64$012>7e<a8886=44i007>5<<a88>6=44i005>5<<a88<6=44i00;>5<<g8on6=44}c100?6=;3:1<v*=08823<=O=:k0D8<7;%305?533`;9?7>5;h310?6=3f;ni7>5;|`076<72>0;6=u+21;952b<@<9j7E;=8:&274<602c:>>4?::k261<722c:>84?::k263<722c:>:4?::k26=<722e:ih4?::a03>=83>1<7>t$32:>41f3A?8m6F:299'567=;<1/=k:555:8m4442900e<<;:188m4422900c<kj:188yg21?3:1;7>50z&14<<6?m1C9>o4H40;?!7493<<7d?=3;29?l75<3:17d?=5;29?l75>3:17d?=7;29?l7503:17b?je;29?xd3>?0;6>4?:1y'65?=9>30D8=n;I71<>"6;80886*>f5860==n9;91<75f13694?=h9lo1<75rb546>5<0290;w)<?9;34`>N2;h1C9?64$012>31<a8886=44i007>5<<a88>6=44i005>5<<a88<6=44i00;>5<<g8on6=44}c0;3?6=>3:1<v*=08823f=O=:k0D8<7;%305?4e3-;m87;:8:k266<722c:>94?::k260<722c:>;4?::k262<722e:ih4?::a6=0=83=1<7>t$32:>41c3A?8m6F:299'567=;o1b=?=50;9j572=831b=?;50;9j570=831b=?950;9j57>=831d=hk50;9~f7ba290=6=4?{%03=?70k2B>?l5G53:8 4562;h0(<h;:474?l75;3:17d?=4;29?l75=3:17d?=6;29?l75?3:17b?je;29?xd5ll0;6:4?:1y'65?=9>n0D8=n;I71<>"6;808j6g>2283>>o6:=0;66g>2483>>o6:?0;66g>2683>>o6:10;66a>ed83>>{e:>l1<7=50;2x 76>28=27E;<a:J66==#9:;1>55f13194?=n9;>1<75`1dg94?=zj;=n6=48:183!4713;<h6F:3`9K17><,89:6?m4i000>5<<a88?6=44i006>5<<a88=6=44i004>5<<a8836=44o0gf>5<<uk83>7>54;294~"5800:;l5G52c8L04?3-;8=7<6;%3e0?32k2c:>>4?::k261<722c:>84?::m2a`<722wi>5?50;594?6|,;:26<9k;I70e>N2:11/=>?53g9j575=831b=?:50;9j573=831b=?850;9j571=831b=?650;9l5`c=831vn?6;:184>5<7s-8;57?8d:J67d=O=;20(<=>:3a8m4442900e<<;:188m4422900e<<9:188m4402900e<<7:188k4cb2900qo<jc;297?6=8r.9<44>789K16g<@<837)?<1;0;?!7a<3??m6g>2283>>o6:=0;66a>ed83>>{e:lh1<7950;2x 76>28=o7E;<a:J66==#9:;1>n5f13194?=n9;>1<75f13794?=n9;<1<75f13594?=n9;21<75`1dg94?=zj;nj6=4;:183!4713;<m6F:3`9K17><,89:6?74$0d7>02f3`;9?7>5;h310?6=3`;997>5;n3fa?6=3th9h44?:683>5}#:931=:j4H41b?M3502.:?<4<f:k266<722c:>94?::k260<722c:>;4?::k262<722c:>54?::m2a`<722wi>im50;594?6|,;:26<9k;I70e>N2:11/=>?52b9j575=831b=?:50;9j573=831b=?850;9j571=831b=?650;9l5`c=831vn8<;:187>5<7s-8;57?8a:J67d=O=;20(<=>:608 4`32<>i7d?=3;29?l75<3:17d?=5;29?j7bm3:17pl:2083>1<729q/>=7510c8L05f3A?946F92:&23`<5811b:;4?::k45?6=3`;m97>5;n3e2?6=3th8>h4?:683>5}#:931=:j4H41b?M3502.:?<4>9:k266<722c:>94?::k260<722c:>;4?::k262<722c:>54?::m2a`<722wi?>850;594?6|,;:26<9k;I70e>N2:11/=>?5369j575=831b=?:50;9j573=831b=?850;9j571=831b=?650;9l5`c=831vn>=::184>5<7s-8;57?8d:J67d=O=;20(<=>:99j575=831b=?:50;9j573=831b=?850;9j571=831b=?650;9l5`c=831vn><9:184>5<7s-8;57?8d:J67d=O=;20(<=>:258m4442900e<<;:188m4422900e<<9:188m4402900e<<7:188k4cb2900qo==3;293?6=8r.9<44>7e9K16g<@<837)?<1;14?l75;3:17d?=4;29?l75=3:17d?=6;29?l75?3:17d?=8;29?j7bm3:17pl<2483>1<729q/>=7516c8L05f3A?946*>30801>o6::0;66g>2583>>o6:<0;66a>ed83>>{e;::1<7950;2x 76>28=o7E;<a:J66==#9:;146g>2283>>o6:=0;66g>2483>>o6:?0;66g>2683>>o6:10;66a>ed83>>{e;191<7950;2x 76>28=o7E;<a:J66==#9:;1=<j4i000>5<<a88?6=44i006>5<<a88=6=44i004>5<<a8836=44o0gf>5<<uk>;:7>55;294~"5800:;o5G52c8L04?3-;8=7=9;h317?6=3`;987>5;h311?6=3`;9:7>5;n3fa?6=3th?<l4?:683>5}#:931=:j4H41b?M3502.:?<4<0:k266<722c:>94?::k260<722c:>;4?::k262<722c:>54?::m2a`<722wi?k850;594?6|,;:26<9k;I70e>N2:11/=>?5369j575=831b=?:50;9j573=831b=?850;9j571=831b=?650;9l5`c=831vn9>8:187>5<7s-8;57?8a:J67d=O=;20(<=>:278m4442900e<<;:188m4422900c<kj:188yg2713:1;7>50z&14<<6?m1C9>o4H40;?!74939;7d?=3;29?l75<3:17d?=5;29?l75>3:17d?=7;29?l7503:17b?je;29?xd3810;6>4?:1y'65?=9>30D8=n;I71<>"6;80886g>2283>>o6:=0;66a>ed83>>{e<9?1<7950;2x 76>28=o7E;<a:J66==#9:;1?=5f13194?=n9;>1<75f13794?=n9;<1<75f13594?=n9;21<75`1dg94?=zj:3;6=48:183!4713;<h6F:3`9K17><,89:6;94i000>5<<a88?6=44i006>5<<a88=6=44i004>5<<a8836=44o0gf>5<<uk93o7>55;294~"5800:;o5G52c8L04?3-;8=7<j;%3e0?33:2c:>>4?::k261<722c:>84?::k263<722e:ih4?::a00d=83?1<7>t$32:>41e3A?8m6F:299'567=:l1/=k:55478m4442900e<<;:188m4422900e<<9:188k4cb2900qo;?a;292?6=8r.9<44>7b9K16g<@<837)?<1;32a>"6n=0>9;5f13194?=n9;>1<75f13794?=n9;<1<75f13594?=h9lo1<75rb2:g>5<1290;w)<?9;34g>N2;h1C9?64$012>7`<,8l?68:=;h317?6=3`;987>5;h311?6=3`;9:7>5;h313?6=3f;ni7>5;|`71`<72?0;6=u+21;952e<@<9j7E;=8:&274<5n2.:j94:549j575=831b=?:50;9j573=831b=?850;9j571=831d=hk50;9~f6>b290<6=4?{%03=?70l2B>?l5G53:8 4562::0e<<<:188m4432900e<<::188m4412900e<<8:188m44?2900c<kj:188yg2183:1;7>50z&14<<6?m1C9>o4H40;?!74939;7d?=3;29?l75<3:17d?=5;29?l75>3:17d?=7;29?l7503:17b?je;29?xd4010;6?4?:1y'65?=9>?0D8=n;I71<>o6:;0;66a>ed83>>{e;ol1<7<50;2x 76>28=>7E;<a:J66==n9;81<75`1dg94?=zj=>26=4=:183!4713;<96F:3`9K17><a8896=44o0gf>5<<uk?;47>5bb83>5}#:931=k64H41b?M3502P=97mt21816?7d28?1=;4>b;07>77=:<0:h7<<:0c9yk142880b::5139ma6<73g;;97>4$037>4713-;:97<?8:&140<53-;957=4$00b>6=#9;h1?6*>2b80?!75l390(<<j:29'57`=;2.:?=4<;%306?5<,8986>5+12697>"6;<087)?<6;18 4502:1/=>653:&27<<43-;8m7=4$01a>6=#9:i1?6*>3e80?!74m390(<=i:29'516=;2.:8<4<;%376?5<,8>86>5+15697>"6<<087)?;6;18 4202:1/=9653:&20<<43-;?m7=4$06a>6=#9=i1?6*>4e80?!73m390(<:i:29'506=;2.:9<4<;%366?5<,8?86>5+14697>"6=<087)?:6;18 4302:1/=8653:&21<<43-;>m7=4$07a>6=#9<i1?6*>5e80?!72m390(<;i:29'536=;2.::<4<;%356?5<,8<86>5+17697>"6><087)?96;18 4002:1/=;653:&22<<43-;=m7=4$04a>6=#9?i1?6*>6e80?!71m390(<8i:29'526=;2.:;<4<;%340?7bl2.:ji4=069'5cc=>11/=kh5699'657=>81/>=<52168 4152;1/=:=52:&673<2;<1/9>955278 7612;1b=k750;9j2g<722c:=>4?::k2bf<722c=o7>5;h3ee?6=3`;mn7>5;h326?6=3`hh6=4+1g19fg=i9o81<65fb`83>!7a;3hi7c?i2;38?ld>290/=k=5bc9m5c4=:21bn54?:%3e7?de3g;m>7=4;h71b?6=,8l868<j;o3e6?6<3`?9h7>5$0d0>04b3g;m>7?4;h71g?6=,8l868<j;o3e6?4<3`?9n7>5$0d0>04b3g;m>7=4;nfa>5<#9o91hl5a1g094>=hl00;6)?i3;fb?k7a:3;07bj8:18'5c5=lh1e=k<52:9l`3<72-;m?7jn;o3e6?5<3fn>6=4+1g19`d=i9o81865`d583>!7a;3nj7c?i2;78?jb4290/=k=5d`9m5c4=>21dh?4?:%3e7?bf3g;m>794;nf2>5<#9o91hl5a1g09<>=hl90;6)?i3;fb?k7a:3307bmi:18'5c5=lh1e=k<5a:9lg`<72-;m?7jn;o3e6?d<3fih6=4+1g19`d=i9o81o65`cc83>!7a;3nj7c?i2;f8?jef290/=k=5d`9m5c4=m21do44?:%3e7?bf3g;m>7h4;na;>5<#9o91hl5a1g0955=<gj=1<7*>f28ge>h6n;0:=65`c783>!7a;3nj7c?i2;31?>id=3:1(<h<:ec8j4`528907bm;:18'5c5=lh1e=k<51598kf5=83.:j>4ka:l2b7<6=21di?4?:%3e7?bf3g;m>7?9;:mf5?6=,8l86io4n0d1>41<3fo;6=4+1g19`d=i9o81=554oed94?"6n:0om6`>f382=>=hll0;6)?i3;fb?k7a:3;j76akd;29 4`42mk0b<h=:0`8?jbd290/=k=5d`9m5c4=9j10ci650;&2b6<ci2d:j?4>d:9lga<72-;m?7jn;o3e6?7b32eh>7>5$0d0>ag<f8l96<h4;h64>5<#9o918;5a1g094>=n<<0;6)?i3;65?k7a:3;07d:;:18'5c5=<?1e=k<52:9j06<72-;m?7:9;o3e6?5<3`?;6=4+1g1903=i9o81865f4g83>!7a;3>=7c?i2;78?l2b290/=k=5479m5c4=>21b8i4?:%3e7?213g;m>794;h6`>5<#9o918;5a1g09<>=n<k0;6)?i3;65?k7a:3307d:n:18'5c5=<?1e=k<5a:9j0<<72-;m?7:9;o3e6?d<3`>36=4+1g1903=i9o81o65f4383>!7a;3>=7c?i2;f8?l31290/=k=5549m5c4=821b994?:%3e7?323g;m>7?4;h70>5<#9o91985a1g096>=n=;0;6)?i3;76?k7a:3907d;i:18'5c5==<1e=k<54:9j1`<72-;m?7;:;o3e6?3<3`?o6=4+1g1910=i9o81:65f5b83>!7a;3?>7c?i2;58?l3e290/=k=5549m5c4=021b9l4?:%3e7?323g;m>774;h7:>5<#9o91985a1g09e>=n=10;6)?i3;76?k7a:3h07d;8:18'5c5==<1e=k<5c:9j14<72-;m?7;:;o3e6?b<3`h;6=4+1g19ec=i9o81<65fad83>!7a;3km7c?i2;38?lgd290/=k=5ag9m5c4=:21bmo4?:%3e7?ga3g;m>7=4;hcb>5<#9o91mk5a1g090>=ni00;6)?i3;ce?k7a:3?07do7:18'5c5=io1e=k<56:9je2<72-;m?7oi;o3e6?1<3`k=6=4+1g19ec=i9o81465fa483>!7a;3km7c?i2;;8?lg3290/=k=5ag9m5c4=i21bm>4?:%3e7?ga3g;m>7l4;hc2>5<#9o91mk5a1g09g>=ni90;6)?i3;ce?k7a:3n07d7i:18'5c5=io1e=k<5e:9j=`<72-;m?7oi;o3e6?`<3`3o6=4+1g19ec=i9o81==54i8a94?"6n:0jj6`>f3825>=n1k0;6)?i3;ce?k7a:3;976g6a;29 4`42hl0b<h=:018?l?>290/=k=5ag9m5c4=9=10e4650;&2b6<fn2d:j?4>5:9jf2<72-;m?7oi;o3e6?7132ci:7>5$0d0>d`<f8l96<94;h`6>5<#9o91mk5a1g095==<ak>1<7*>f28bb>h6n;0:565fb283>!7a;3km7c?i2;3b?>oe:3:1(<h<:`d8j4`528h07dl>:18'5c5=io1e=k<51b98mdb=83.:j>4nf:l2b7<6l21bm?4?:%3e7?ga3g;m>7?j;:k:3?6=,8l86lh4n0d1>4`<3f;;m7>5$0d0>46>3g;m>7>4;n33<?6=,8l86<>6;o3e6?7<3f;;;7>5$0d0>46>3g;m>7<4;n332?6=,8l86<>6;o3e6?5<3`i:6=4+1g19g5=i9o81<65fbg83>!7a;3i;7c?i2;38?ldb290/=k=5c19m5c4=:21bni4?:%3e7?e73g;m>7=4;n33b?6=,8l86<>j;o3e6?6<3f;;h7>5$0d0>46b3g;m>7?4;n33g?6=,8l86<>j;o3e6?4<3f;;n7>5$0d0>46b3g;m>7=4;ndg>5<#9o91jn5a1g094>=hnk0;6)?i3;d`?k7a:3;07bh6:18'5c5=nj1e=k<52:9lb=<72-;m?7hl;o3e6?5<3fl<6=4+1g19bf=i9o81865`f783>!7a;3lh7c?i2;78?j`2290/=k=5fb9m5c4=>21dj94?:%3e7?`d3g;m>794;nd0>5<#9o91jn5a1g09<>=hn;0;6)?i3;d`?k7a:3307bh>:18'5c5=nj1e=k<5a:9lb5<72-;m?7hl;o3e6?d<3fon6=4+1g19bf=i9o81o65`ee83>!7a;3lh7c?i2;f8?jcd290/=k=5fb9m5c4=m21dio4?:%3e7?`d3g;m>7h4;ngb>5<#9o91jn5a1g0955=<gl31<7*>f28eg>h6n;0:=65`e983>!7a;3lh7c?i2;31?>ib?3:1(<h<:ga8j4`528907bk9:18'5c5=nj1e=k<51598k`3=83.:j>4ic:l2b7<6=21d==:50;&2b6<ak2d:j?4>6:9l555=83.:j>4ic:l2b7<6?21d==<50;&2b6<ak2d:j?4>8:9l557=83.:j>4ic:l2b7<6121d==>50;&2b6<ak2d:j?4>a:9lbc<72-;m?7hl;o3e6?7e32emi7>5$0d0>ce<f8l96<m4;ndb>5<#9o91jn5a1g095a=<gll1<7*>f28eg>h6n;0:i65`e583>!7a;3lh7c?i2;3e?>o2;=0;6)?i3;707>h6n;0;76g:3383>!7a;3?8?6`>f382?>o2;80;6)?i3;707>h6n;0976g:3183>!7a;3?8?6`>f380?>o?n3:1(<h<:9g8j4`52910e5j50;&2b6<?m2d:j?4>;:k;f?6=,8l865k4n0d1>7=<a1k1<7*>f28;a>h6n;0876g79;29 4`421o0b<h=:598m=>=83.:j>47e:l2b7<232c3;7>5$0d0>=c<f8l96;54i9494?"6n:03i6`>f384?>o?=3:1(<h<:9g8j4`52110e5:50;&2b6<?m2d:j?46;:k;7?6=,8l865k4n0d1>d=<a181<7*>f28;a>h6n;0i76g70;29 4`421o0b<h=:b98m2`=83.:j>47e:l2b7<c32c<i7>5$0d0>=c<f8l96h54i6f94?"6n:03i6`>f38e?>o0k3:1(<h<:9g8j4`528:07d9m:18'5c5=0l1e=k<51098m2g=83.:j>47e:l2b7<6:21b;44?:%3e7?>b3g;m>7?<;:k4<?6=,8l865k4n0d1>42<3`=<6=4+1g19<`=i9o81=854i8494?"6n:03i6`>f3822>=n1<0;6)?i3;:f?k7a:3;<76g64;29 4`421o0b<h=:0:8?l?4290/=k=58d9m5c4=9010e4<50;&2b6<?m2d:j?4>a:9j=4<72-;m?76j;o3e6?7e32c2<7>5$0d0>=c<f8l96<m4;h:`>5<#9o914h5a1g095a=<a1;1<7*>f28;a>h6n;0:i65f7783>!7a;32n7c?i2;3e?>{e=9=1<7ll:183!4713;m46F:3`9K17><R??1ov<?:3095f<6=3;=6<l525815?4228n1>>4>a;m36<6:2d<87?=;og0>5=i99?1<6*>158253=#98?1>=64$326>7=#9;31?6*>2`80?!75j390(<<l:29'57b=;2.:>h4<;%31b?5<,89;6>5+12097>"6;:087)?<4;18 4522:1/=>853:&272<43-;847=4$01:>6=#9:k1?6*>3c80?!74k390(<=k:29'56c=;2.:?k4<;%374?5<,8>:6>5+15097>"6<:087)?;4;18 4222:1/=9853:&202<43-;?47=4$06:>6=#9=k1?6*>4c80?!73k390(<:k:29'51c=;2.:8k4<;%364?5<,8?:6>5+14097>"6=:087)?:4;18 4322:1/=8853:&212<43-;>47=4$07:>6=#9<k1?6*>5c80?!72k390(<;k:29'50c=;2.:9k4<;%354?5<,8<:6>5+17097>"6>:087)?94;18 4022:1/=;853:&222<43-;=47=4$04:>6=#9?k1?6*>6c80?!71k390(<8k:29'53c=;2.::k4<;%344?5<,8=:6>5+16695`b<,8lo6?>8;%3ea?0?3-;mj787;%035?063-8;>7<?4:&237<53-;<?7<4$415>0523-?8;7;<5:&143<53`;m57>5;h4a>5<<a8;86=44i0d`>5<<a?i1<75f1gc94?=n9oh1<75f10094?=njj0;6)?i3;`a?k7a:3:07dln:18'5c5=jk1e=k<51:9jf<<72-;m?7lm;o3e6?4<3`h36=4+1g19fg=i9o81?65f53d94?"6n:0>>h5a1g094>=n=;n1<7*>f2866`=i9o81=65f53a94?"6n:0>>h5a1g096>=n=;h1<7*>f2866`=i9o81?65`dc83>!7a;3nj7c?i2;28?jb>290/=k=5d`9m5c4=921dh:4?:%3e7?bf3g;m>7<4;nf5>5<#9o91hl5a1g097>=hl<0;6)?i3;fb?k7a:3>07bj;:18'5c5=lh1e=k<55:9l`6<72-;m?7jn;o3e6?0<3fn96=4+1g19`d=i9o81;65`d083>!7a;3nj7c?i2;:8?jb7290/=k=5d`9m5c4=121dok4?:%3e7?bf3g;m>7o4;naf>5<#9o91hl5a1g09f>=hkj0;6)?i3;fb?k7a:3i07bmm:18'5c5=lh1e=k<5d:9lgd<72-;m?7jn;o3e6?c<3fi26=4+1g19`d=i9o81j65`c983>!7a;3nj7c?i2;33?>id?3:1(<h<:ec8j4`528;07bm9:18'5c5=lh1e=k<51398kf3=83.:j>4ka:l2b7<6;21do94?:%3e7?bf3g;m>7?;;:m`7?6=,8l86io4n0d1>43<3fo96=4+1g19`d=i9o81=;54od394?"6n:0om6`>f3823>=hm90;6)?i3;fb?k7a:3;376akf;29 4`42mk0b<h=:0;8?jbb290/=k=5d`9m5c4=9h10cij50;&2b6<ci2d:j?4>b:9l`f<72-;m?7jn;o3e6?7d32eo47>5$0d0>ag<f8l96<j4;nag>5<#9o91hl5a1g095`=<gj81<7*>f28ge>h6n;0:j65f4683>!7a;3>=7c?i2;28?l22290/=k=5479m5c4=921b894?:%3e7?213g;m>7<4;h60>5<#9o918;5a1g097>=n=90;6)?i3;65?k7a:3>07d:i:18'5c5=<?1e=k<55:9j0`<72-;m?7:9;o3e6?0<3`>o6=4+1g1903=i9o81;65f4b83>!7a;3>=7c?i2;:8?l2e290/=k=5479m5c4=121b8l4?:%3e7?213g;m>7o4;h6:>5<#9o918;5a1g09f>=n<10;6)?i3;65?k7a:3i07d:=:18'5c5=<?1e=k<5d:9j13<72-;m?7;:;o3e6?6<3`??6=4+1g1910=i9o81=65f5283>!7a;3?>7c?i2;08?l35290/=k=5549m5c4=;21b9k4?:%3e7?323g;m>7:4;h7f>5<#9o91985a1g091>=n=m0;6)?i3;76?k7a:3<07d;l:18'5c5==<1e=k<57:9j1g<72-;m?7;:;o3e6?><3`?j6=4+1g1910=i9o81565f5883>!7a;3?>7c?i2;c8?l3?290/=k=5549m5c4=j21b9:4?:%3e7?323g;m>7m4;h72>5<#9o91985a1g09`>=nj90;6)?i3;ce?k7a:3:07doj:18'5c5=io1e=k<51:9jef<72-;m?7oi;o3e6?4<3`ki6=4+1g19ec=i9o81?65fa`83>!7a;3km7c?i2;68?lg>290/=k=5ag9m5c4==21bm54?:%3e7?ga3g;m>784;hc4>5<#9o91mk5a1g093>=ni?0;6)?i3;ce?k7a:3207do::18'5c5=io1e=k<59:9je1<72-;m?7oi;o3e6?g<3`k86=4+1g19ec=i9o81n65fa083>!7a;3km7c?i2;a8?lg7290/=k=5ag9m5c4=l21b5k4?:%3e7?ga3g;m>7k4;h;f>5<#9o91mk5a1g09b>=n1m0;6)?i3;ce?k7a:3;;76g6c;29 4`42hl0b<h=:038?l?e290/=k=5ag9m5c4=9;10e4o50;&2b6<fn2d:j?4>3:9j=<<72-;m?7oi;o3e6?7332c247>5$0d0>d`<f8l96<;4;h`4>5<#9o91mk5a1g0953=<ak<1<7*>f28bb>h6n;0:;65fb483>!7a;3km7c?i2;3;?>oe<3:1(<h<:`d8j4`528307dl<:18'5c5=io1e=k<51`98mg4=83.:j>4nf:l2b7<6j21bn<4?:%3e7?ga3g;m>7?l;:kb`?6=,8l86lh4n0d1>4b<3`k96=4+1g19ec=i9o81=h54i8594?"6n:0jj6`>f382b>=h99k1<7*>f2824<=i9o81<65`11:94?"6n:0:<45a1g095>=h99=1<7*>f2824<=i9o81>65`11494?"6n:0:<45a1g097>=nk80;6)?i3;a3?k7a:3:07dli:18'5c5=k91e=k<51:9jf`<72-;m?7m?;o3e6?4<3`ho6=4+1g19g5=i9o81?65`11d94?"6n:0:<h5a1g094>=h99n1<7*>f2824`=i9o81=65`11a94?"6n:0:<h5a1g096>=h99h1<7*>f2824`=i9o81?65`fe83>!7a;3lh7c?i2;28?j`e290/=k=5fb9m5c4=921dj44?:%3e7?`d3g;m>7<4;nd;>5<#9o91jn5a1g097>=hn>0;6)?i3;d`?k7a:3>07bh9:18'5c5=nj1e=k<55:9lb0<72-;m?7hl;o3e6?0<3fl?6=4+1g19bf=i9o81;65`f283>!7a;3lh7c?i2;:8?j`5290/=k=5fb9m5c4=121dj<4?:%3e7?`d3g;m>7o4;nd3>5<#9o91jn5a1g09f>=hml0;6)?i3;d`?k7a:3i07bkk:18'5c5=nj1e=k<5d:9laf<72-;m?7hl;o3e6?c<3foi6=4+1g19bf=i9o81j65`e`83>!7a;3lh7c?i2;33?>ib13:1(<h<:ga8j4`528;07bk7:18'5c5=nj1e=k<51398k`1=83.:j>4ic:l2b7<6;21di;4?:%3e7?`d3g;m>7?;;:mf1?6=,8l86km4n0d1>43<3f;;87>5$0d0>ce<f8l96<84;n337?6=,8l86km4n0d1>41<3f;;>7>5$0d0>ce<f8l96<64;n335?6=,8l86km4n0d1>4?<3f;;<7>5$0d0>ce<f8l96<o4;nde>5<#9o91jn5a1g095g=<goo1<7*>f28eg>h6n;0:o65`f`83>!7a;3lh7c?i2;3g?>ibn3:1(<h<:ga8j4`528o07bk;:18'5c5=nj1e=k<51g98m053290/=k=55218j4`52910e8==:18'5c5==:90b<h=:098m056290/=k=55218j4`52;10e8=?:18'5c5==:90b<h=:298m=`=83.:j>47e:l2b7<732c3h7>5$0d0>=c<f8l96<54i9`94?"6n:03i6`>f381?>o?i3:1(<h<:9g8j4`52:10e5750;&2b6<?m2d:j?4;;:k;<?6=,8l865k4n0d1>0=<a1=1<7*>f28;a>h6n;0=76g76;29 4`421o0b<h=:698m=3=83.:j>47e:l2b7<?32c387>5$0d0>=c<f8l96454i9194?"6n:03i6`>f38b?>o?:3:1(<h<:9g8j4`52k10e5>50;&2b6<?m2d:j?4l;:k4b?6=,8l865k4n0d1>a=<a>o1<7*>f28;a>h6n;0n76g8d;29 4`421o0b<h=:g98m2e=83.:j>47e:l2b7<6821b;o4?:%3e7?>b3g;m>7?>;:k4e?6=,8l865k4n0d1>44<3`=26=4+1g19<`=i9o81=>54i6:94?"6n:03i6`>f3820>=n?>0;6)?i3;:f?k7a:3;>76g66;29 4`421o0b<h=:048?l?2290/=k=58d9m5c4=9>10e4:50;&2b6<?m2d:j?4>8:9j=6<72-;m?76j;o3e6?7>32c2>7>5$0d0>=c<f8l96<o4;h;2>5<#9o914h5a1g095g=<a0:1<7*>f28;a>h6n;0:o65f8b83>!7a;32n7c?i2;3g?>o?93:1(<h<:9g8j4`528o07d99:18'5c5=0l1e=k<51g98yv3fn3:1>vP:8c9>15>=j01v8ok:181[3?i27><548c:p1de=838pR866;<73<?1e3ty>mo4?:3y]1=><5<:36:o4}r7be?6=:rT>4:5251:93<=z{<k26=4={_7;2>;2810<46s|5`594?4|V<2?70;?8;54?xu2i?0;6?uQ5918906?20<0q~;n5;296~X20;169=65949~w0g32909wS;71:?64=<e02wx9l=50;0xZ0>734?;477;;|q6e7<72;qU9:h4=42;><5<uz?j=7>52z\63`=:=9215?5rs4c3>5<5sW?<h63:098:5>{t=0l1<7<t^45`?837033;7p}:9d83>7}Y=>h018>7:9a8yv3>k3:1>vP:789>15>=081v87m:181[30027><5486:p1<g=838pR898;<733?d>3ty>544?:3y]120<5<:<6:m4}r7:<?6=:rT>;85251593g=z{<3<6=4={_740>;28>0<m6s|58494?4|V<=870;?7;5:?xu21<0;6?uQ560890602>20q~;64;296~X2?8169=95769~w0?42909wS;80:?642<>>2wx9o850;0xZ0?634?;;77:;|q6f0<72;qU94>4=424>g><uz?i87>52z\6<c=:=9=1595rs4`0>5<5sW?3i63:068:7>{t=k81<7<t^4:g?837?3397p}:b083>7}Y=1i018>8:838yv3e83:1>vP:849>151=191v8o7:181[30i27><:47c:p1<b=838pR88i;<733?>63ty>5?4?:3y]13c<5<:<6:84}r465?6=?hqU:8?4=2:6>30<5<;n6;84=43g>30<5<;<6;84=435>30<5<;>6;84=43`>30<5=nh6;84=5fa>30<5=nj6;84=5f:>30<5=n36;84=5f4>30<5=n>6;84=5f7>30<5=n86;84=5f1>30<5=n:6;84=5f3>30<5=im6;84=5af>30<5=io6;84=5a`>30<5=ij6;84=5a:>30<5=i36;84=5a4>30<5=i=6;84=5a6>30<5=i?6;84=5a0>30<5=i96;84=5a2>30<5=o96;84=5g2>30<5=o;6;84=5fe>30<5=nn6;84=5fg>30<5=n=6;84=5aa>30<5=i;6;84=5`e>30<5:>>6;84=26g>30<5:>h6;84=26a>30<5:>j6;84=26:>30<5:>36;84=264>30<5:>=6;84=267>30<5:>86;84=2a4>30<5:i=6;84=2a6>30<5:i?6;84=2a0>30<5:i96;84=2a2>30<5:i;6;84=2`e>30<5:hn6;84=2`0>30<5:h96;84=2`2>30<5:h;6;84=2ce>30<5:kn6;84=2cg>30<5:kh6;84=2ca>30<5:kj6;84=277>30<5:?:6;84=27b>30<5:?36;84=274>30<5;k=6;84=3c6>30<5;k?6;84=3c0>30<5;k96;84=3c2>30<5;k;6;84=3;e>30<5;3n6;84=3;g>30<5;l<6;84=3d5>30<5;l>6;84=3d7>30<5;l86;84=3d1>30<5;l:6;84=3d3>30<5;om6;84=3gf>30<5;in6;84=3ag>30<5;ih6;84=3aa>30<5;ij6;84=3a:>30<5;i36;84=3a4>30<5;i=6;84=3a6>30<5;?>6;84=377>30<5;?86;84=371>30<5;?:6;84=373>30<5;>m6;84=36f>30<5;>o6;84=36`>30<5<:36;m4=424>3e<uz<=57>58z\52<=:;<:1=?=4=275>442349?j7?=6:?016<6:<16?9k5134896>4288870;?a;312>{t>?h1<79t^74a?837m3<o70;>1;3e1>;2990:j85250a95c3<5<:m6<h:;<715?7a=2wx::<50;7e[00:278j>496:?0b7<1>27><h496:?666<1>27>=<496:?667<1>27>==496:?65g<1>27>=l496:?64c<1>27??k496:?702<1>27?8;496:?700<1>27?89496:?706<1>27?8?496:?704<1>27?8=496:?77`<1>27??i496:?7=d<1>27?54496:?7==<1>27?5:496:?7=3<1>27?58496:?7=1<1>27?5>496:?7=7<1>27?5<496:?7<3<1>27?48496:?7<1<1>27?4>496:?7<7<1>27?4<496:?7<5<1>27?;k496:?73`<1>27?;i496:?737<1>27?;<496:?735<1>27?:k496:?72`<1>27?:i496:?72f<1>27?:o496:?72d<1>27?:4496:?104<1>2798=496:?17c<1>279?h496:?17a<1>279?n496:?17g<1>279?l496:?17<<1>279?5496:?1=7<1>2795<496:?1=5<1>2794k496:?1<`<1>2794i496:?1<f<1>2794o496:?1<d<1>27944496:?12<<1>279:5496:?122<1>279:;496:?120<1>279:9496:?126<1>279:?496:?124<1>279:=496:?1fd<1>279n4496:?1f=<1>279n:496:?1f3<1>279n8496:?1f1<1>279n>496:?1f7<1>279n<496:?664<1>27><549b:?642<1j2wx:5o50;1xZ3>f34>?47?=3:?0g=<6:?1v88k:18af~X2>k1U9;o4^44:?[3102T>::5Q5748Z0023W?=86P:629]134<V<?o7S;:e:\54f=Y>9n0R;<i;_444>X1>o1U::?4^74`?[31l27>?o4>219>141=?8169<85709>143=?8169<m5709>14d=?8169<o5709>15`=?816?i?5749>7a6=?<16?nh5749>7fc=?<16?nj5749>7`2=?<16?h=5749>7`4=?<16?h?5749>7`6=?<16?;=5749>734=?<16?;?5749>736=?<16?8h5749>720=?<16?:;5749>722=?<16?:=5749>724=?<169?:51368906?28l270;?8;3ee>;2810:jo5251:9ff=:=921nl5251:90d=:=921845251:90==:=9218?5251:91<=:=921955251:912=:=9219<5251:9f5=:=921mh5251:9ef=:=921mo5251:9ed=:=921m45251:9e==:=921m:5251:9e3=:=921m85251:9e1=:=921m>5251:9e4=:=921m=5251:9=c=:=9215h5251:9=a=:=9215n5251:9=g=:=9215l5251:9=<=:=921555251:9f2=:=921n;5251:9f0=:=921n95251:9f6=:=921n?5251:9f4=:=921mi5251:9e7=:=9215:5251:9g4=:=921nk5251:9f`=:=921ni5251:9162<5<:368==;<73<?34927><54:319>15>=0o169=658e9>15>=0k169=658`9>15>=00169=65899>15>=0>169=65879>15>=0<169=65859>15>=0:169=65839>15>=09169=657g9>15>=?l169=657e9>151=9o3018>8:0db?837?3;mn63:068ag>;28>0im63:0687e>;28>0?563:0687<>;28>0?>63:0686=>;28>0>463:06863>;28>0>=63:068a4>;28>0ji63:068bg>;28>0jn63:068be>;28>0j563:068b<>;28>0j;63:068b2>;28>0j963:068b0>;28>0j?63:068b5>;28>0j<63:068:b>;28>02i63:068:`>;28>02o63:068:f>;28>02m63:068:=>;28>02463:068a3>;28>0i:63:068a1>;28>0i863:068a7>;28>0i>63:068a5>;28>0jh63:068b6>;28>02;63:068`5>;28>0ij63:068aa>;28>0ih63:068671=:=9=19><4=424>05634?;;7;<0:?642<?n27><:47d:?642<?j27><:47a:?642<?127><:478:?642<??27><:476:?642<?=27><:474:?642<?;27><:472:?642<?827><:48f:?642<0m27><:48d:p0g1=838pR8j;;<6gg?7a>2wx8o850;0xZ0b434>on7?i6:p0g3=838pR8j=;<6ge?7a>2wx8o:50;0xZ0b634>o57?i6:p0g5=838pR8j?;<6g<?7a>2wx8o<50;0xZ0ea34>o;7?i6:p0g6=838pR8mk;<6g1?7a>2wx8lh50;0xZ0ed34>o87?i6:p0dc=838pR8mm;<6g7?7a>2wx8lj50;0xZ0ef34>o>7?i6:p0de=838pR8m6;<6g5?7a>2wx8ll50;0xZ0e?34>o<7?i6:p0dg=838pR8m8;<6`b?7a>2wx8l750;0xZ0e134>hi7?i6:p0d>=838pR8m:;<6``?7a>2wx8l950;0xZ0e334>ho7?i6:p0d3=838pR8m=;<6`e?7a>2wx8l:50;0xZ0e634>h57?i6:p0d5=838pR8m?;<6`<?7a>2wx8l<50;0xZ0da34>h;7?i6:p0d7=838pR8lj;<6`2?7a>2wx8l>50;0xZ0dc34>h97?i6:p0<`=838pR8ll;<6`0?7a>2wx84k50;0xZ0de34>h?7?i6:p0<b=838pR8ln;<6`6?7a>2wx84m50;0xZ0d>34>h=7?i6:p0gc=838pR8jn;<6f6?7a>2wx8oj50;0xZ0b>34>n=7?i6:p0ge=838pR8j7;<6f4?7a>2wx8ol50;0xZ0b034>oj7?i6:p0gg=838pR8j9;<6ga?7a>2wx8o750;0xZ0b234>oh7?i6:p0g>=838pR8mj;<6g2?7a>2wx8o?50;0xZ0e434>hn7?i6:p0d0=838pR8l7;<6`4?7a>2wx84l50;0xZ0d034>ij7?i6:p76?=838pR;;;;<171?7a>2wx?9<50;0xZ33d349?h7?i6:p717=838pR;;m;<17g?7a>2wx?9>50;0xZ33f349?n7?i6:p76`=838pR;;6;<17e?7a>2wx?>k50;0xZ33?349?57?i6:p76b=838pR;;8;<17<?7a>2wx?>m50;0xZ331349?;7?i6:p76d=838pR;;:;<172?7a>2wx?>o50;0xZ334349?87?i6:p76>=838pR;;=;<177?7a>2wx8>=50;0xZ31234>8j7?i6:p06e=838pR;9k;<673?7a>2wx8>l50;0xZ31d34>?:7?i6:p06g=838pR;9m;<671?7a>2wx8>750;0xZ31f34>?87?i6:p06>=838pR;96;<677?7a>2wx8>950;0xZ31?34>?>7?i6:p060=838pR;98;<675?7a>2wx8>;50;0xZ31134>?<7?i6:p062=838pR;9;;<60a?7a>2wx8><50;0xZ31434>8h7?i6:p70>=838pR;>>;<16<?7a>2wx?k=50;0xZ360349m?7?i6:p5=4=833p18=l:0d3?85dl3<j70=j0;4b?852n3<j70=82;4b?85603<j70=?5;4b?826m3<j70:?b;4b?xu40;0;6?u2397934=:;191=hk4}r720?6=:?q6?5;51g78907028l=70=;5;4g?853l3<o70=;c;4g?853j3<o70=;a;4g?85313<o70=;8;4g?853?3<o70=;6;4g?853<3<o70=;3;4g?85d?3<o70=l6;4g?85d=3<o70=l4;4g?85d;3<o70=l2;4g?85d93<o70=l0;4g?85en3<o70=me;4g?85e;3<o70=m2;4g?85e93<o70=m0;4g?85fn3<o70=ne;4g?85fl3<o70=nc;4g?85fj3<o70=na;3e1>;4==0=h63<5085`>;4=h0=h63<5982b0=:;<=1=k;4}r1;1?6==r78484>f79>705=9;<01>:j:000?85?;3;9863:0`8266=z{:l;6=4<{<1e7?16349m>79>;<1`<?7bm2wx9<>50;6x96`428l>70=i2;3e1>;2980<=63:1182b3=z{:l96=4<{<1e6?7a>27?854>259>7f>=9;?0q~;>1;296~;28l0<=63:1082b3=z{<:n6=4={<73a?7a>278o54>229~w07c2908w0;>e;52?836l3;m:63:1b85<>{t=8o1<7<t=43f>4`134?9<7?=4:p174=839p18<<:638904528l=70;=4;317>{t=;91<7<t=400>4`134?9:7?=4:p14e=839p18?k:638907d28l=70;=0;317>{t=;;1<7:t=401>27<5<8=6<<<;<710?75=27>><4>f79~w06a2909w0;>0;52?837n3;m:6s|50d94?2|5<;<6<h:;<722?7a=27>=84>f49>176=9lo0q~;>3;296<}:=8<1=k84=3c5>3b<5;k>6;j4=3c7>3b<5;k86;j4=3c1>3b<5;k:6;j4=3c3>3b<5;3m6;j4=3;f>3b<5;3o6;j4=3d4>3b<5;l=6;j4=3d6>3b<5;l?6;j4=3d0>3b<5;l96;j4=3d2>3b<5;l;6;j4=3ge>3b<5;on6;j4=3af>3b<5;io6;j4=3a`>3b<5;ii6;j4=3ab>3b<5;i26;j4=3a;>3b<5;i<6;j4=3a5>3b<5;i>6;j4=376>3b<5;??6;j4=370>3b<5;?96;j4=372>3b<5;?;6;j4=36e>3b<5;>n6;j4=36g>3b<5;>h6;j4}r726?6=:1q69<;51g4891bd28l<70:kb;3e3>;3lh0:j:524e;95c1<5=n36<h8;<6g3?7a?27?h84>f69>0a2=9o=019j<:0d4?82c:3;m;63;d082b2=:<m:1=k94=5ae>4`034>hi7?i7:?7ga<6n>168nm51g5891ef28l<70:l9;3e3>;3k10:j:524b595c1<5=i=6<h8;<6`1?7a?27?o94>f69>0f5=9o=019m=:0d4?82d93;m;63;e382b2=:<l;1=k94=5g3>4`034>oj7?i7:?7``<6n>168ij51g5891b128l<70:lb;3e3>;3k90:j:524cd95c1<5<:j6<<8;<73<?7ak27><:4>fb9~w0422908w0;>b;3e1>;29h0:j85253495`c<uz?:57>52`y>14d=9o<019=i:7f891202?n019:9:7f891222?n019:;:7f891242?n019:=:7f891262?n019:?:7f8915b2?n019=k:7f891?f2?n01976:7f891??2?n01978:7f891?12?n0197::7f891?32?n0197<:7f891?52?n0197>:7f891>12?n0196::7f891>32?n0196<:7f891>52?n0196>:7f891>72?n0199i:7f8911b2?n0199k:0d6?820:3<o70:81;4g?82083<o70:9f;4g?821m3<o70:9d;4g?821k3<o70:9b;4g?821i3;m963;6885`>{t=821<7<6{<72e?7a>2798<49d:?105<1l279?k49d:?17`<1l279?i49d:?17f<1l279?o49d:?17d<1l279?449d:?17=<1l2795?49d:?1=4<1l2795=49d:?1<c<1l2794h49d:?1<a<1l2794n49d:?1<g<1l2794l49d:?1<<<1l279:449d:?12=<1l279::49d:?123<1l279:849d:?121<1l279:>49d:?127<1l279:<49d:?125<1l279nl49d:?1f<<1l279n549d:?1f2<1l279n;49d:?1f0<1l279n949d:?1f6<1l279n?49d:?1f4<1l2wx9=m50;0682ck3<370:kb;4;?82ci3<370:k9;4;?82c03<370:k7;4;?82c=3<370:k4;4;?82c;3<370:k2;4;?82c93<370:k0;4;?82dn3<370:le;4;?82dl3<370:lc;4;?82di3<370:l9;4;?82d03<370:l7;4;?82d>3<370:l5;4;?82d<3<370:l3;4;?82d:3<370:l1;4;?82b:3<370:j1;4;?82b83<370:kf;4;?82cm3<370:kd;4;?82c>3<370:lb;4;?82d83<370:mf;4;?85283;ni6s|4gd94?4|5=nh6:?4=42;>46d3ty?jh4?:3y>0ad=?8169=65e`9~w1`c2909w0:ka;52?83703o27p};fb83>7}:<m31;<5251:9a==z{=li6=4={<6g<?1634?;47k8;|q7bd<72;q68i95709>15>=m?1v9h7:18182c=3=:70;?8;g6?xu3n>0;6?u24e6934=:=921==:4}r6e2?6=:r7?h>481:?64=<68:1v9h::18182c:3=:70;?8;33f>{t<o>1<7<t=5f2>27<5<:36<>=;|q7b6<72;q68i>5709>15>=99;0q~:i2;296~;3ko0<=63:098245=z{=l:6=4={<6`a?1634?;47hi;|q7b5<72;q68nj5709>15>=nl1v9ki:18182dk3=:70;?8;db?xu3mm0;6?u24bc934=:=921ik5rs5g`>5<5s4>h579>;<73<?c33ty?io4?:3y>0f>=?8169=9511a8yv2bi3:1>v3;c6845>;28>0nm6s|4d;94?4|5=i=6:?4=424>`?<uz>n47>52z?7g0<0927><:4j8:p0`1=838p19m;:63890602l=0q~:j6;296~;3k:0<=63:068f2>{t<l?1<7<t=5a1>27<5<:<6h;4}r6f0?6=:r7?o<481:?642<68=1v8>9:18182b:3=:70;?7;337>{t=9?1<7<t=5g2>27<5<:<6<>m;|q641<72;q68h>5709>151=9980q~;?3;296~;3lo0<=63:068244=z{<:96=4={<6ga?1634?;;7??0:p157=838p19jk:63890602ol0q~;?0;296~;3l?0<=63:068ea>{t<o31<7<t=5aa>27<5<:<6ko4}r6fa?6=:r7?o=481:?642<bn2wx8h=50;0x91da2>;018>8:d68yv5dk3:1>v3<d085e>;4l90:ih5rs2fb>5<5s49o=7<?0:?0`g<6ml1v>ki:18185c93;ni63<c98262=z{:ii6=4={<1g4?0f349hj7?je:p7a>=838p1>j?:323?85c13;ni6s|3bc94?4|5:im6;o4=2af>4cb3ty8h;4?:3y>7f`=:9:01>j8:0gf?xu4k00;6?u23bg92d=:;jn1=hk4}r1g0?6=:r78oh4=019>7a3=9lo0q~=k2;296~;4km09<=523e195`c<uz9oj7>52z?0a1<1i278i>4>ed9~w6cc2909w0=j4;034>;4ml0:ih5rs2d2>5<5s49n87?je:?0g=<6:=1v>jj:18185b;3<j70=j2;3fa>{t;lh1<7<t=2g0>767349no7?je:p7ab=838p1>k=:7c896c628on7p}<e883>7}:;l81>=>4=2gb>4cb3ty8hn4?:3y>7`7=>h16?h>51dg8yv5b?3:1>v3<e08145=:;l21=hk4}r1f1?6=:r78i=4=019>7`0=9lo0q~=:e;296~;4>:0=m63<6382a`=z{:<h6=4={<157?478278:i4>ed9~w6>62909w0=93;3fa>;40:0:>:5rs27g>5<5s49=>78n;<155?7bm2wx?;o50;0x96052;:;70=9b;3fa>{t;<i1<7<t=242>3g<5:<;6<kj;|q02=<72;q6?;?52128960>28on7p}<5c83>7}:;?:1:l5234d95`c<uz9=:7>52z?025<58916?;951dg8yv51<3:1>v3<5g8145=:;??1=hk4}r145?6=:r78;;49a:?030<6ml1v>9i:181850>38;<63<8182a`=z{:2?6=4={<142?7bm2784>4>299~w6172909w0=85;4b?850<3;ni6s|36f94?4|5:=>6?>?;<14a?7bm2wx?;h50;0x96132?k01>9<:0gf?xu4?k0;6?u23669656<5:=h6<kj;|q02`<72;q6?:=56`9>724=9lo0q~=89;296~;4?:09<=5236c95`c<uz9<;7>52z?037<58916?:651dg8yv57l3:1>v3<2085e>;48m0:ih5rs234>5<5s499=7?86:?052<6ml1v>>?:18085593;ni63<348260=:;;91=?=4}r0:g?6=<r78=:4>229>6d0=9o<01>8k:007?85?83;986s|3cf94?1|5:;<6<<;;<1`3?7a>27998481:?02a<6::16><<51368906?2<<018>8:448yv57k3:1?v3<2185e>;48m0=m63<0b82a`=z{:;=6=4<{<114?70>278<i4=019>740=9lo0q~<if;290~;4:90:ih523219572<5:9>6<<9;<117?75<2wx>4l50;7x966c2>?01>?9:000?84f=3;m:63<6e8263=:;1:1=?84}r1ag?6=?r78=;4>259>7f0=9o<01>8k:006?846:3;9?63=108261=:=9219952515911=z{::i6=4<{<12b?0f349;o78n;<13f?7bm2wx?<;50;1x967a28==70=?c;034>;49<0:ih5rs3df>5<2s49:j7?je:?077<6:<16?>=513789652288<70==3;311>{t:0k1<7;t=22`>23<5:;>6<<<;<0b0?7a>278:o4>259>72c=9;>0q~=mb;293~;49<0:>9523b795c0<5:<i6<<<;<025?75;279==4>259>15>==:169=95529~w66f2908w0=>e;4b?857j3<j70=?a;3fa>{t;8>1<7=t=23f>411349;n7<?0:?051<6ml1v?hk:185856m3;ni63<338263=:;:91=?84=215>4443499?7?=6:?075<6:<1v?76:186857j3=>70=>4;317>;5i:0:j;5237`9570<5:=n6<<9;|q0fd<72>q6?<:5136896e328l=70=9b;311>;5990:>>5221d9572<5<:368<4=424>04<uz9;57>53z?05a<1i278<l49a:?04<<6ml1v>?<:180856l3;<:63<0`8145=:;891=hk4}r0eg?6=?r78=i4>ed9>764=9;=01>=<:004?855m3;9463<378261=:;;91=?94=213>4413ty9554?:4y>75g=?<16?<=5131897g528l=70=99;310>;4?j0:>95rs2`:>5<0s49:?7?=4:?0g6<6n?16?;751318976a288870<?e;310>;2810>j63:0686b>{t;921<7=t=23`>3g<5::26;o4=22;>4cb3ty8=?4?:2y>74e=9><01>>6:323?856:3;ni6s|2g`94?1|5:;h6<kj;<110?75;278>n4>249>77c=9;>01>=9:006?855>3;9963<318262=z{;3<6=4:{<13=?12349:>7?=3:?1e4<6n?16?;751348961d288=7p}<b983>2}:;881=?:4=2a1>4`1349=57?=5:?14`<6::16>=j51368906?2<o018>8:4g8yv57?3:1?v3<1c85e>;4810=m63<0682a`=z{:;:6=4<{<12f?70>278<54=019>747=9lo0q~<ia;29<~;49k0:ih523369570<5:8h6<<7;<130?75=278>h4>249>760=9;<01><9:005?855=3;9?6s|28494?3|5::36:;4=232>444348j<7?i6:?022<6:=16?:o51368yv5e?3:1;v3<108261=:;j;1=k84=244>444348;h7?=3:?14f<6:=169=655e9>151==m1v>>9:180856i3<j70=?7;4b?857>3;ni6s|30294?5|5:;j6<99;<133?478278==4>ed9~w7`>2902w0=>a;3fa>;4:=0:>85233a9571<5::86<<9;<130?75?278>h4>279>760=9;=01><9:004?855=3;986s|28794?3|5::<6:;4=233>4443482j7?i6:?022<6:?16?:o51318yv5e>3:1;v3<118261=:;j:1=k84=244>442348;o7?=3:?14g<6:=169=655b9>151==j1v>>::18085613<j70=?6;4b?857=3;ni6s|31d94?5|5:;26<99;<132?478278<k4>ed9~w7`?290jw0=>9;3fa>;4:=0:>95233a9570<5::86<<:;<130?75>278<?4>249>77c=9;=01>=9:00;?855>3;9463<248260=z{;3?6=4:{<132?12349;j7?=3:?1=`<6n?16?;;51368961?288?7p}<b483>2}:;9l1=?:4=2`e>4`1349=97?=3:?14g<6::16>=o51368906?2<h018>8:4`8yv57m3:1?v3<198233=:;9?1>=>4=22f>4cb3ty8?:4?:3y>74>=9lo01>>>:006?xu51:0;68u2317930=:;9o1=?=4=3;g>4`1349=97?=6:?03=<6::1v>l;:185857m3;9863<bd82b3=:;??1=?;4=32b>44434?;47;n;<733?3f3ty8>>4?:3y>713=?816??=51dg8yv54=3:1>v3<4e845>;4;<0:ih5rs210>5<5s49?o79>;<107?7bm2wx?>?50;0x962e2>;01>==:0gf?xu4:o0;6?u235c934=:;::1=hk4}r11`?6=:r7884481:?06`<6ml1v><m:18185303=:70==c;3fa>{t;;k1<7<t=264>27<5::?6<kj;|q06<<72;q6?985709>755=9lo0q~==8;296~;4<=0<=63<0382a`=z{:896=4={<177?16349;=7?je:p15d=83;>w0=l7;4;?85d>3<370=l5;4;?85d<3<370=l3;4;?85d:3<370=l1;4;?85d83<370=mf;4;?85em3<370=m3;4;?85e:3<370=m1;4;?85e83<370=nf;4;?85fm3<370=nd;4;?85fk3<370=nb;4;?85fi3<370=;e;3fa>{t;0l1<7:t=2a4>27<5:h86<h9;<1;4?75;2784;4>229~w6?b290>w0=l6;52?85e:3;m:63<818260=:;081=?=4=2:5>4433ty85i4?:7y>7f3=?816?o?51g48961b288870=62;310>;40?0:>8523829572<uz92o7>57z?0g1<09278n=4>f79>72c=9;?01>7>:000?85??3;9863<8g8266=:;0:1=?=4}r1:f?6=0r78o>481:?0ec<6n?16?:m5131896?6288?70=77;317>;40o0:>9523829570<5:2n6<<<;|q0=d<720q6?n<5709>7dc=9o<01>9l:006?85>93;9963<868263=:;1l1=?84=2;3>4403493h7?=3:?0<`<6:=1v>76:18b85d93=:70=nd;3e2>;4?h0:>;523839570<5:2<6<<:;<1;b?75=2785=4>249>7=e=9;901>6k:007?85?m3;996s|38:94?>|5:i;6:?4=2c`>4`1349<m7?=5:?0<d<6::16?5l5131896>d288=70=7d;313>;40l0:>55rs2;4>5<>s49ij79>;<1bf?7a>278;54>249>7=?=9;>01>6n:006?85?j3;9863<8b8260=:;1n1=?84=2:f>4403ty85;4?:`y>7gc=?816?lo51g48961?288=70=79;317>;40h0:>95239`9573<5:2h6<<;;<1;`?75=2784h4>279>7=>=9;80q~=n9;296~;4j:0<=63<8782a`=z{:k36=4={<1a6?163492>7?je:p7d1=838p1>l>:63896?728on7p}<a783>7}:;k:1;<5239d95`c<uz9j97>52z?0ec<092784h4>ed9~w6g32909w0=ne;52?85?l3;ni6s|3`194?4|5:ko6:?4=2:`>4cb3ty8m?4?:3y>7de=?816?5o51dg8yv5f93:1>v3<ac845>;4000:ih5rs2c3>5<5s49jm79>;<1;<?7bm2wx?8;50;1x96332>;01>;n:638963128on7p}<5583>=}:;<>1=k84=273>443349>:7?=4:?00c<6:=16?8=51368962b288?70=73;311>;28h0:>95rs271>5<5s49>=79>;<167?7bm2wx?8?50;3185293;m:63<2b8261=:;:81=?:4=222>443349;?7?=3:?041<6::16?=<513689637288>70=:6;317>;4<o0:>8523419575<5:>n6<<:;<100?75<278?84>259>770=9;>01>=?:007?85?;3;9:63:0`8260=z{:?j6=4m{<16e?7a>278>n4>229>764=9;901>>>:000?857;3;9863<058261=:;981=?=4=217>444349897?=3:?063<6::16?>>51318yv5213:1?v3<59845>;4=>0<=63<4g82a`=z{:?<6=4={<163?7a>2788k4>229~w1742909w0:=7;4b?826;3;ni6s|40f94?4|5=8<6<99;<62`?7bm2wx?kk50;1x914028on70:?a;317>;4n?0:>>5rs5;3>5<1s4>:h7?=3:?7=d<6n?16>oo5709>64d=9;>018>7:55890602==0q~<<7;290~;39m0:>95225395c0<5:ni6<<<;<1fa?75;2wx8<<50;1x91412?k019?<:7c8917528on7p};1b83>6}:<;<1=:84=530>76734>:o7?je:p7cb=83>p19<9:0gf?827i3;9863<f78261=:<931=?=4}r6;b?6=?r7?=>485:?75f<6::1684751g48977e288870<>a;310>;2810?963:06871>{t::<1<7:t=53`>443348?<7?i6:?0`g<6:<16?hk51378yv2693:1?v3;2485e>;39;0=m63;1082a`=z{=;i6=4<{<611?70>27?=?4=019>04d=9lo0q~=ic;291~;3:<0:ih5241c9573<5:l=6<<:;<63=?75<27?<84>229~w1>b290<w0:>2;56?826j3;9?63;9982b3=::8k1=?=4=33:>44334?;47:;;<733?233ty9?84?:5y>04d=9;>01?=i:0d5?85c13;9?63<eb8266=z{=;;6=4<{<610?0f34>:=78n;<624?7bm2wx8<o50;1x914328==70:>1;034>;39h0:ih5rs2da>5<1s4>987?je:?741<6::168=o5134896`1288=70:?9;311>;38<0:>95rs5:g>5<0s4>:=79:;<62e?75;27?5:4>f79>64?=9;901??7:007?83703>870;?7;60?xu5;=0;69u240c9572<5;9n6<h9;<1g=?75=278in4>249~w16a2908w0:=3;4b?82683<j70:?f;3fa>{t<831<7=t=500>41134>:<7<?0:?75<<6ml1v>hn:184825;3;ni63;05826==:<991=?94=52b>440349m:7?=7:?74<<6:?168=;51378yv2?k3:1;v3;11841>;3900:>>5248495c0<5;;36<<<;<023?75<27><54:0:?642<282wx>>=50;6x917>288?70<<d;3e2>;4l>0:>>523dc9575<uz>;i7>53z?767<1i27?<k49a:?74`<6ml1v9?7:180825:3;<:63;0g8145=:<821=hk4}r1e=?6=?r7?>?4>ed9>052=9;=019><:000?827:3;9?63;078266=:<931=?94=526>4413ty?4o4?:6y>05`=?<168<65136891?228l=70<>7;317>;59?0:>95251:90c=:=9=18k5rs311>5<3s4>:47?=3:?17f<6n?16?i95137896cf288>7p};0e83>6}:<;;1:l5241g92d=:<9n1=hk4}r623?6=;r7?><4>779>05c=:9:019?8:0gf?xu4n10;65u243395`c<5=:?6<<9;<637?75<27?<?4>279>057=9;9019>9:007?827?3;9?63;048262=z{=2j6=48{<63a?1234>:;7?=4:?7=1<6n?16><8513189772288?70;?8;6f?837?3>n7p}=3083>1}:<8=1=?=4=31a>4`1349o97?=3:?0a=<6::1v9>l:18082583<j70:?d;4b?827k3;ni6s|40494?5|5=8;6<99;<63`?47827?=;4>ed9~w6`02902w0:=0;3fa>;38=0:>8524119573<5=:96<<:;<635?75=27?<=4>229>050=9;?019>8:007?82703;9?6s|49;94?1|5=:o6:;4=535>44334>2?7?i6:?150<6::16><:51368906?2=n018>8:5f8yv4483:18v3;178266=:::k1=k84=2f6>442349n47?=5:p05d=839p19?i:7c8916d2?k019>m:0gf?xu39<0;6>u240d9520<5=:h6?>?;<621?7bm2wx?k:50;cx917a28on70:?4;310>;38:0:>;524109572<5=::6<<;;<634?75<27?<;4>279>051=9;?019>7:007?85an3;9>6s|49:94?1|5=:h6:;4=536>44334>2>7?i6:?151<6::16><=51368906?2=i018>8:5a8yv45n3:18v3;148266=:::31=k84=2f0>444349n:7?=3:p042=839p19?j:055?827j38;<63;1582a`=z{=9:6=4={<62a?7bm27??i481:p0=1=83<p19>m:6789173288?70:61;3e2>;59:0:>>5251:90g=:=9=18o5rs30f>5<3s4>:87?=3:?17=<6n?16?i=5137896c1288>7p}<f483>7}:<:l1;<523g495`c<uz>8<7>52z?702<0927?<l4>ed9~w14a2909w0:;6;52?82713;ni6s|43g94?4|5=>>6:?4=526>4cb3ty?>i4?:3y>012=?8168=:51dg8yv25k3:1>v3;42845>;38:0:ih5rs50a>5<5s4>?>79>;<636?7bm2wx8?o50;0x91262>;019>>:0gf?xu3:00;6?u2452934=:<9:1=hk4}r61<?6=:r7??h481:?0bc<6ml1v8>k:181=~;31h0=463;9885<>;3110=463;9685<>;31?0=463;9485<>;31=0=463;9285<>;31;0=463;9085<>;30?0=463;8485<>;30=0=463;8285<>;30;0=463;8085<>;3090=463;7g85<>;3?l0=463;7e85<>;3?;0=463;7085<>;3?90=463;6g85<>;3>l0=463;6e85<>;3>j0=463;6c85<>;3>h0=463;6885<>;3<10:ih5251:9544<5<:368<i;<73<?35l27><54:2b9>15>==;h018>8:031?837?3?9j63:06866a=:=9=19?m4=424>04e3ty?;n4?:2y>0<g=?81685851g4896be288?7p};7c83>6}:<031;<5249795c0<5:ni6<<9;|q73d<72:q68465709>0=2=9o<01>j6:007?xu3?00;6>u2485934=:<191=k84=2f:>4413ty?;54?:2y>0<0=?81685<51g4896b0288?7p};7683>6}:<0?1;<5249395c0<5:n<6<<9;|q733<72:q684:5709>0=6=9o<01>j::007?xu3?<0;6>u2481934=:<>l1=k84=2f6>4413ty?;94?:2y>0<4=?8168:k51g4896b4288?7p};7283>6}:<0;1;<5246f95c0<5:n86<<9;|q710<72=q68585709>024=9o<01>kj:007?821?3;986s|44694?3|5=2>6:?4=552>4`1349ni7?=6:?722<6:?168;;51368yv22;3:1:v3;85845>;3?90:j;523da9572<5=<?6<<;;<65<?75=27?:;4>259~w135290<w0:73;52?821n3;m:63<eb8263=:<?81=?=4=547>44134>=;7?=7:?720<6:?1v9;>:18;82?:3=:70:9e;3e2>;4mh0:>9524709572<5=<?6<<<;<65<?75<27?:;4>229>036=9;90q~::0;29=~;3080<=63;6e82b3=:;lk1=?84=541>44134>=87?=7:?722<6:<168;;51378913b288870:90;311>{t<=l1<7ot=5:3>27<5=<h6<h9;<1f<?75<27?:?4>249>032=9;?01987:000?821=3;9;63;5c8266=:<<o1=?:4=543>4433ty?8h4?:9y>02`=?8168;l51g4896c?288=70::a;311>;3<k0:>>5244`9570<5=?n6<<8;<654?7502wx89j50;;x911b2>;0198n:0d5?85b>3;9863;5`8261=:<=h1=?;4=56b>44434>>n7?=5:?71`<6:?168;>51358yv23k3:1mv3;7e845>;3>00:j;523d49570<5=?j6<<<;<67f?75<27?8l4>259>00d=9;>019;j:006?82183;9:63;488267=z{=<<6=4={<646?1634>=;7?je:p033=838p199>:638910228on7p};6283>7}:<>:1;<5247695`c<uz>==7>52z?72c<0927?:?4>ed9~w13a2909w0:9e;52?82183;ni6s|44f94?4|5=<o6:?4=57f>4cb3ty?944?:3y>03e=?81688l51dg8yv2203:1>v3;6c845>;3<k0:ih5rs574>5<5s4>=m79>;<67e?7bm2wx88850;0x910>2>;019:6:0gf?xu5l10;6lu22`4934=::o=1=k84=3g1>443348n87?=5:?1a0<6:?16>h95135897c>288370<kf;310>;5mk0:>;522e;9571<uz8n=7>52z?1e0<09279i?4>ed9~w7c42909w0<n4;52?84b<3;ni6s|2d494?5|5;k86:?4=3g6>4cb348oo7?=8:p6`>=838p1?o=:63897c028on7p}=e`83>7}::h;1;<522d;95`c<uz8nh7>52z?1e5<09279io4>ed9~w7be2909w0<6f;52?84c13;ni6s|2ef94?4|5;3n6:?4=3f`>4cb3ty9i=4?:3y>6<b=?816>ik51dg8yv40;3:1mv3=40845>;51;0:j;522679572<5;=<6<<;;<04<?75>279;l4>269>62e=9;201?68:007?840m3;9:63=808262=z{;=?6=4={<074?16348<97?je:p620=838p1?=i:638971028on7p}=7883>6}:::o1;<5226:95`c<5;2?6<<7;|q13g<72;q6>>j5709>62g=9lo0q~<8d;296~;5;j0<=63=7b82a`=z{;2;6=4={<00f?16348<i7?je:p6=5=838p1?=n:63897>628on7p}=8483>7}:::31;<5229695`c<uz8347>52z?17=<092794;4>ed9~w7e32909w0<i7;52?84dm3;m:6s|2b194?4|5;l=6:?4=3ag>4`13ty9h:4?:8y>6c0=9o<01?k=:000?84b<3;9863=e48260=::l=1=?84=3g:>440348oj7?=5:?1ag<6:>16>io51318yv4d:3:1>v3=f4845>;5kj0:j;5rs3f5>5<?s48m97?i6:?1a1<6::16>h;5136897c0288>70<j9;312>;5lo0:>;522da9575<5;nj6<<;;|q1g4<72;q6>k:5709>6fd=9o<0q~<k5;293~;5n=0:j;522d79575<5;o<6<<;;<0f=?75=279hk4>269>6`e=9;>01?jn:006?xu5k90;6?u22g1934=::jk1=k84}r0g0?6=?r79j>4>f79>6`1=9;901?k6:007?84cm3;9963=ec8261=::m31=?;4=3f`>4423ty9nk4?:3y>6c4=?816>n751g48yv4c;3:1:v3=f382b3=::l31=?=4=3ff>441348nn7?=5:?1`<<6:?16>im51348yv4em3:1>v3=f0845>;5k10:j;5rs3f1>5<2s48m=7?i6:?1``<6::16>hl5131897b>288870<kc;317>{t:kn1<7<t=3d3>27<5;i<6<h9;|q1`4<72=q6>k>51g4897bb288?70<k9;310>;5lj0:>95rs3``>5<5s48nj79>;<0`2?7a>2wx>i>50;1x97ca28l=70<ke;313>;5lj0:>:5rs3`a>5<5s48ni79>;<0`1?7a>2wx>nh50;0x97cb28l=70<kf;317>{t:<l1<7<t=3;1>27<5;<26<h9;|q11`<72;q6>4?5709>63>=9o<0q~<82;29=~;5180:j;522679575<5;=<6<<<;<04<?75=279;l4>279>62e=9;=01?68:006?840m3;9;63=838266=z{;?o6=4={<0:4?16348=;7?i6:p627=832p1?7?:0d5?840?3;9963=798261=::>k1=?;4=35`>4413483;7?=6:?13c<6::16>5<51368yv42k3:1>v3=8g845>;5>?0:j;5rs353>5<0s483j7?i6:?13=<6::16>:o51368971d288>70<77;313>;5?o0:>9522909573<uz8>n7>52z?1<`<09279:84>f79~w70a290<w0<7e;3e2>;5?h0:>>5226a9572<5;2=6<<:;<04a?75<2794<4>249>6=2=9;?0q~<:a;296~;50m0<=63=6582b3=z{;<n6=49{<0;`?7a>279;n4>229>6=0=9;<01?9j:006?84?93;9:63=858263=z{;?26=4={<0;g?16348=?7?i6:p63b=83?p1?6l:0d5?84?>3;9?63=7d8266=::1;1=?=4=3:7>4443ty9954?:3y>6=d=?816>;<51g48yv41k3:18v3=8c82b3=::1<1=?:4=3:2>443348387?=4:p601=838p1?6n:638970628l=7p}=6c83>6}::1k1=k84=3:5>440348387?=7:p600=838p1?66:638970728l=7p}=6`83>7}::131=k84=3:4>4443ty9n=4?:3y>6fc=?816>oo51g48yv4fn3:1>v3=ce845>;5j00:j;5rs3cf>5<5s48ho79>;<0a<?7a>2wx>lj50;0x97ee2>;01?l8:0d5?xu5ij0;6?u22bc934=::k<1=k84}r0bf?6=:r79o4481:?1f0<6n?1v?on:18184d03=:70<m4;3e2>{t:h31<7<t=3a4>27<5;h86<h9;|q1e=<72;q6>n85709>6g4=9o<0q~<n7;296~;5k<0<=63=b082b3=z{;>i6=4={<05=?16348>97?i6:p61g=838p1?87:638973328l=7p}=4883>7}::?=1;<5224195c0<uz8?47>52z?123<092799?4>f79~w7202909w0<95;52?84293;m:6s|25494?4|5;<?6:?4=373>4`13ty9884?:3y>635=?816>9h51g48yv43<3:1>v3=63845>;5<l0:j;5rs360>5<5s48==79>;<07`?7a>2wx>9<50;0x97072>;01?:l:0d5?xu5:=0;6?u2246934=::881=hk4}r017?6=:r799>481:?154<6ml1v?<=:181842:3=:70<>0;3fa>{t:;;1<7<t=372>27<5;:m6<kj;|q165<72;q6>8>5709>65c=9lo0q~<>f;296~;5<o0<=63=0e82a`=z{;;n6=4={<07a?16348;o7?je:p64b=838p1?:k:638976e28on7p}=1b83>7}::=i1;<5221c95`c<uz89h7>52z?1f<<09279=o4>ed9~w74d2909w0<m8;52?846i3;ni6s|23`94?4|5;h<6:?4=33:>4cb3ty9>l4?:3y>6g0=?816><651dg8yv4513:1>v3=b4845>;59>0:ih5rs30;>5<5s48i879>;<022?7bm2wx>?950;0x97d42>;01??::0gf?xu5:?0;6?u22c0934=::8>1=hk4}r011?6=:r79n<481:?156<6ml1v><8:180855<3;ni63<33826==:;:91=?64}r1:1?6==r785<4>269>7=1=9;=01>6i:004?85?j3;ni63<91826==z{:3?6=4<{<1:5?7bm2785?4>279>7=0=9;=0q~=63;297~;40>0:ih523809573<5:2=6<<9;|q71f<72<q688o51dg89105288<70:94;31<>;3>>0:>552477957><uz;n;7>53z?071<6ml16?>=51318964b28887p}>e883>7}:<?21=hk4=544>4443ty:4>4?:3y>030=9lo0198::000?xu60m0;6?u229595`c<5;2=6<<7;|q2e6<72;q6>ih51dg897bb28837p}>ag83>7}::>l1=hk4=35f>44?3ty:nk4?:3y>6=4=9lo01?6>:00;?xu6kk0;6?u22da95`c<5;oi6<<7;|q2ga<72;q6>io51dg897b>28837p}:2583>7}:=;>1=hk4=402>27<uz;o?7>52z?073<6ml16?>;513:8yv7c=3:1>v3<2782a`=:;;91=?64}r3g3?6=:r78>84>ed9>766=9;20q~?k9;297~;38?0:ih5241c957><5:l=6<<7;|q2`a<72;q68=951dg8916>28837p}>dg83>7}:<921=hk4=526>44?3ty><44?:2y>15g=9lo018>7:030?837?3;:?6srs74a>5<5sW<=n6394;45f>"2:>0:i;5rs751>5<5sW<<>6394;446>"2:>0:i55rs772>5<5sW<>=6394;465>"2:>0:il5rs4ce>5<5sW?3n6394;7;f>"2:>0:495rs4cg>5<5sW?3m6394;7;e>"2:>0:4i5rs4c`>5<5sW?356394;7;=>"2:>0:555rs4ca>5<5sW?346394;7;<>"2:>0:m>5rs4cb>5<5sW?3;6394;7;3>"2:>0:mi5rs4c:>5<5sW?3:6394;7;2>"2:>0:mk5rs4c4>5<5sW?386394;7;0>"2:>0:n95rs4c5>5<5sW?3?6394;7;7>"2:>0:nk5rs4c6>5<5sW?3>6394;7;6>"2:>0:o55rs4c7>5<5sW?3=6394;7;5>"2:>0:o45rs4c0>5<5sW?3<6394;7;4>"2:>0:ol5rs4c1>5<5sW?<j6394;74b>"2:>0:oo5rs4c2>5<5sW?<i6394;74a>"2:>0:on5rs4c3>5<5sW?<h6394;74`>"2:>0:oi5rs4;e>5<5sW?<o6394;74g>"2:>0:oh5rs4;f>5<5sW?<n6394;74f>"2:>0:ok5rs4;`>5<5sW?<56394;74=>"2:>0:h=5rs4;a>5<5sW?<46394;74<>"2:>0:h<5rs4;b>5<5sW?<;6394;743>"2:>0:h?5rs4;:>5<5sW?<:6394;742>"2:>0:h>5rs4;;>5<5sW?<96394;741>"2:>0:h95rs4;4>5<5sW?<86394;740>"2:>0:h85rs4;5>5<5sW?<?6394;747>"2:>0:h;5rs4;6>5<5sW?<>6394;746>"2:>0:h:5rs4;7>5<5sW?<=6394;745>"2:>0:h55rs4;0>5<5sW?<<6394;744>"2:>0:h45rs4`5>5<5sW?2=6394;7:5>"2:>0:hl5rs4`6>5<5sW?2<6394;7:4>"2:>0:ho5rs4`7>5<5sW?3j6394;7;b>"2:>0:hn5rs4`0>5<5sW?3i6394;7;a>"2:>0:hi5rs4`1>5<5sW?3h6394;7;`>"2:>0:hh5rs4`2>5<5sW?3o6394;7;g>"2:>0:hk5rs4`3>5<5sW?396394;7;1>"2:>0:i=5rs4c;>5<5sW?<m6394;74e>"2:>0:i<5rs4;g>5<5sW?=j6394;75b>"2:>0:i?5rs4;1>5<5sW?=i6394;75a>"2:>0:i>5rs7:b>5<5sW<3m6394;4;e>"2:>0:i95rs74:>5<5sW<=56394;45=>"2:>0:i85rs4d;>5<5sW?o86394;7g0>"2:>0:485rs4d5>5<5sW?o?6394;7g7>"2:>0:4;5rs4d6>5<5sW?o>6394;7g6>"2:>0:4:5rs4d7>5<5sW?o=6394;7g5>"2:>0:455rs4d0>5<5sW?o<6394;7g4>"2:>0:445rs4d1>5<5sW?hj6394;7`b>"2:>0:4l5rs4d3>5<5sW?hh6394;7``>"2:>0:4o5rs4ge>5<5sW?ho6394;7`g>"2:>0:4n5rs4gf>5<5sW?hn6394;7`f>"2:>0:4h5rs4gg>5<5sW?hm6394;7`e>"2:>0:4k5rs4g`>5<5sW?h56394;7`=>"2:>0:5=5rs4ga>5<5sW?h46394;7`<>"2:>0:5<5rs4gb>5<5sW?h;6394;7`3>"2:>0:5?5rs4g:>5<5sW?h:6394;7`2>"2:>0:5>5rs4g;>5<5sW?h96394;7`1>"2:>0:595rs4g4>5<5sW?h86394;7`0>"2:>0:585rs4g6>5<5sW?h>6394;7`6>"2:>0:5;5rs4g7>5<5sW?h=6394;7`5>"2:>0:5:5rs4g0>5<5sW?h<6394;7`4>"2:>0:545rs4g1>5<5sW?ij6394;7ab>"2:>0:5l5rs4g2>5<5sW?ii6394;7aa>"2:>0:5o5rs4g3>5<5sW?ih6394;7a`>"2:>0:5n5rs4fe>5<5sW?io6394;7ag>"2:>0:5i5rs4ff>5<5sW?in6394;7af>"2:>0:5h5rs4fg>5<5sW?im6394;7ae>"2:>0:5k5rs4f`>5<5sW?i56394;7a=>"2:>0:m=5rs4de>5<5sW?om6394;7ge>"2:>0:m<5rs4df>5<5sW?o56394;7g=>"2:>0:m?5rs4dg>5<5sW?o46394;7g<>"2:>0:m95rs4d`>5<5sW?o;6394;7g3>"2:>0:m85rs4da>5<5sW?o:6394;7g2>"2:>0:m;5rs4db>5<5sW?o96394;7g1>"2:>0:m:5rs4d:>5<5sW?hi6394;7`a>"2:>0:m55rs4d2>5<5sW?h?6394;7`7>"2:>0:m45rs4g5>5<5sW?i46394;7a<>"2:>0:ml5rs4fa>5<5sW?i;6394;7a3>"2:>0:mo5rs724>5<5sW<;;6394;433>"2:>0:mn5rs722>5<5sW<;=6394;435>"2:>0:mh5rs77e>5<5sW<>86394;460>"2:>0:n=5rs74;>5<5sW<>o6394;46g>"2:>0:n<5rs744>5<5sW<>n6394;46f>"2:>0:n?5rs745>5<5sW<>m6394;46e>"2:>0:n>5rs746>5<5sW<>56394;46=>"2:>0:n85rs747>5<5sW<>46394;46<>"2:>0:n;5rs740>5<5sW<>;6394;463>"2:>0:n:5rs741>5<5sW<>:6394;462>"2:>0:n55rs742>5<5sW<>96394;461>"2:>0:n45rs743>5<5sW<>?6394;467>"2:>0:nl5rs77g>5<5sW<>>6394;466>"2:>0:no5rs7:3>5<5sW<<96394;441>"2:>0:nn5rs7::>5<5sW<<h6394;44`>"2:>0:ni5rs7:;>5<5sW<<o6394;44g>"2:>0:nh5rs7:4>5<5sW<<n6394;44f>"2:>0:o=5rs7:5>5<5sW<<m6394;44e>"2:>0:o<5rs7:6>5<5sW<<56394;44=>"2:>0:o?5rs7:7>5<5sW<<46394;44<>"2:>0:o>5rs7:0>5<5sW<<;6394;443>"2:>0:o95rs7:1>5<5sW<<:6394;442>"2:>0:o85rs7:2>5<5sW<<86394;440>"2:>0:o;5rs75f>5<5sW<<?6394;447>"2:>0:o:5r}of5`?6=:rB>>55rne4f>5<5sA?946sad7d94?4|@<837p`k7183>7}O=;20qcj81;296~N2:11vbi9=:181M3502weh:=50;0xL04?3tdo;94?:3yK17><ugn<97>52zJ66==zfm==6=4={I71<>{il>=1<7<tH40;?xhc?10;6?uG53:8ykb013:1>vF:299~ja1f2909wE;=8:m`2d=838pD8<7;|lg3f<72;qC9?64}of4`?6=:rB>>55rne5f>5<5sA?946sad6d94?4|@<837p`k8183>7}O=;20qcj71;296~N2:11vbi6=:181M3502weh5=50;0xL04?3tdo494?:3yK17><ugn397>52zJ66==zfm2=6=4={I71<>{il1=1<7<tH40;?xhc010;6?uG53:8ykb?13:1>vF:299~ja>f2909wE;=8:m`=d=838pD8<7;|lg<f<72;qC9?64}of;`?6=:rB>>55rne:f>5<5sA?946sad9d94?4|@<837p`k9183>7}O=;20qcj61;296~N2:11vbi7=:181M3502weh4=50;0xL04?3tdo594?:3yK17><ugn297>52zJ66==zfm3=6=4={I71<>{il0=1<7<tH40;?xhc110;6?uG53:8ykb>13:1>vF:299~ja?f2909wE;=8:m`<d=838pD8<7;|lg=f<72;qC9?64}of:`?6=:rB>>55rne;f>5<5sA?946sad8d94?4|@<837p`ka183>7}O=;20qcjn1;296~N2:11vbio=:181M3502wehl=50;0xL04?3tdom94?:3yK17><ugnj97>52zJ66==zfmk=6=4={I71<>{ilh=1<7<tH40;?xhci10;6?uG53:8ykbf13:1>vF:299~jagf2909wE;=8:m`dd=838pD8<7;|lgef<72;qC9?64}ofb`?6=:rB>>55rnecf>5<5sA?946sad`d94?4|@<837p`kb183>7}O=;20qcjm1;296~N2:11vbil=:181M3502weho=50;0xL04?3tdon94?:3yK17><ugni97>52zJ66==zfmh=6=4={I71<>{ilk=1<7<tH40;?xhcj10;6?uG53:8ykbe13:1>vF:299~jadf2909wE;=8:m`gd=838pD8<7;|lgff<72;qC9?64}ofa`?6=:rB>>55rne`f>5<5sA?946sadcd94?4|@<837p`kc183>7}O=;20qcjl1;296~N2:11vbim=:181M3502wehn=50;0xL04?3tdoo94?:3yK17><ugnh97>52zJ66==zfmi=6=4={I71<>{ilj=1<7<tH40;?xhck10;6?uG53:8ykbd13:1>vF:299~jaef2909wE;=8:m`fd=838pD8<7;|lggf<72;qC9?64}of``?6=:rB>>55rneaf>5<5sA?946sadbd94?4|@<837p`kd183>7}O=;20qcjk1;296~N2:11vboo::182M3502wenh<50;3xL04?3tdii>4?:0yK17><ughn87>51zJ66==zfko>6=4>{I71<>{ijl<1<7?tH40;?xhem>0;6<uG53:8ykdb03:1=vF:299~jgc>290:wE;=8:mf`g=83;pD8<7;|laag<728qC9?64}o`fg?6=9rB>>55rncgg>5<6sA?946sabdg94?7|@<837p`meg83>4}O=;20qcli0;295~N2:11vboh>:182M3502wenk<50;3xL04?3tdij>4?:0yK17><ughm87>51zJ66==zfkl>6=4>{I71<>{ijo<1<7?tH40;?xhen>0;6<uG53:8ykda03:1=vF:299~jg`>290:wE;=8:mfcg=83;pD8<7;|labg<728qC9?64}o`eg?6=9rB>>55rncdg>5<6sA?946sabgg94?7|@<837p`mfg83>4}O=;20qcm?0;295~N2:11vbn>>:182M3502weo=<50;3xL04?3tdh<>4?:0yK17><ugi;87>51zJ66==zfj:>6=4>{I71<>{ik9<1<7?tH40;?xhd8>0;6<uG53:8yke703:1=vF:299~jf6>290:wE;=8:mg5g=83;pD8<7;|l`4g<728qC9?64}oa3g?6=9rB>>55rnb2g>5<6sA?946sac1g94?7|@<837p`l0g83>4}O=;20qcm>0;295~N2:11vbn?>:182M3502weo<<50;3xL04?3tdh=>4?:0yK17><ugi:87>51zJ66==zfj;>6=4>{I71<>{ik8<1<7?tH40;?xhd9>0;6<uG53:8yke603:1=vF:299~jf7>290:wE;=8:mg4g=83;pD8<7;|l`5g<728qC9?64}oa2g?6=9rB>>55rnb3g>5<6sA?946sac0g94?7|@<837p`l1g83>4}O=;20qcm=0;295~N2:11vbn<>:182M3502weo?<50;3xL04?3tdh>>4?:0yK17><ugi987>51zJ66==zfj8>6=4>{I71<>{ik;<1<7?tH40;?xhd:>0;6<uG53:8yke503:1=vF:299~jf4>290:wE;=8:mg7g=83;pD8<7;|l`6g<728qC9?64}oa1g?6=9rB>>55rnb0g>5<6sA?946sac3g94?7|@<837p`l2g83>4}O=;20qcm<0;295~N2:11vbn=>:182M3502weo><50;3xL04?3tdh?>4?:0yK17><ugi887>51zJ66==zfj9>6=4>{I71<>{ik:<1<7?tH40;?xhd;>0;6<uG53:8yke403:1=vF:299~jf5>290:wE;=8:mg6g=83;pD8<7;|l`7g<728qC9?64}oa0g?6=9rB>>55rnb1g>5<6sA?946sac2g94?7|@<837p`l3g83>4}O=;20qcm;0;295~N2:11vbn:>:182M3502weo9<50;3xL04?3tdh8>4?:0yK17><ugi?87>51zJ66==zfj>>6=4>{I71<>{ik=<1<7?tH40;?xhd<>0;6<uG53:8yke303:1=vF:299~jf2>290:wE;=8:mg1g=83;pD8<7;|l`0g<728qC9?64}oa7g?6=9rB>>55rnb6g>5<6sA?946sac5g94?7|@<837p`l4g83>4}O=;20qcm:0;295~N2:11vbn;>:182M3502weo8<50;3xL04?3tdh9>4?:0yK17><ugi>87>51zJ66==zfj?>6=4>{I71<>{ik<<1<7?tH40;?xhd=>0;6<uG53:8yke203:1=vF:299~jf3>290:wE;=8:mg0g=83;pD8<7;|l`1g<728qC9?64}oa6g?6=9rB>>55rnb7g>5<6sA?946sac4g94?7|@<837p`l5g83>4}O=;20qcm90;295~N2:11vbn8>:182M3502weo;<50;3xL04?3tdh:>4?:0yK17><ugi=87>51zJ66==zfj<>6=4>{I71<>{ik?<1<7?tH40;?xhd>>0;6<uG53:8yke103:1=vF:299~jf0>290:wE;=8:mg3g=83;pD8<7;|l`2g<728qC9?64}oa5g?6=9rB>>55rnb4g>5<6sA?946sac7g94?7|@<837p`l6g83>4}O=;20qcm80;295~N2:11vbn9>:182M3502weo:<50;3xL04?3tdh;>4?:0yK17><ugi<87>51zJ66==zfj=>6=4>{I71<>{ik><1<7?tH40;?xhd?>0;6<uG53:8yke003:1=vF:299~jf1>290:wE;=8:mg2g=83;pD8<7;|l`3g<728qC9?64}oa4g?6=9rB>>55rnb5g>5<6sA?946sac6g94?7|@<837p`l7g83>4}O=;20qcm70;295~N2:11vbn6>:182M3502weo5<50;3xL04?3tdh4>4?:0yK17><ugi387>51zJ66==zfj2>6=4>{I71<>{ik1<1<7?tH40;?xhd0>0;6<uG53:8yke?03:1=vF:299~jf>>290:wE;=8:mg=g=83;pD8<7;|l`<g<728qC9?64}oa;g?6=9rB>>55rnb:g>5<6sA?946sac9g94?7|@<837p`l8g83>4}O=;20qcm60;295~N2:11vbn7>:182M3502weo4<50;3xL04?3tdh5>4?:0yK17><ugi287>51zJ66==zfj3>6=4>{I71<>{ik0<1<7?tH40;?xhd1>0;6<uG53:8yke>03:1=vF:299~jf?>290:wE;=8:mg<g=83;pD8<7;|l`=g<728qC9?64}oa:g?6=9rB>>55rnb;g>5<6sA?946sac8g94?7|@<837p`l9g83>4}O=;20qcmn0;295~N2:11vbno>:182M3502weol<50;3xL04?3tdhm>4?:0yK17><ugij87>51zJ66==zfjk>6=4>{I71<>{ikh<1<7?tH40;?xhdi>0;6<uG53:8ykef03:1=vF:299~jfg>290:wE;=8:mgdg=83;pD8<7;|l`eg<728qC9?64}oabg?6=9rB>>55rnbcg>5<6sA?946sac`g94?7|@<837p`lag83>4}O=;20qcmm0;295~N2:11vbnl>:182M3502weoo<50;3xL04?3tdhn>4?:0yK17><ugii87>51zJ66==zfjh>6=4>{I71<>{ikk<1<7?tH40;?xhdj>0;6<uG53:8ykee03:1=vF:299~jfd>290:wE;=8:mggg=83;pD8<7;|l`fg<728qC9?64}oaag?6=9rB>>55rnb`g>5<6sA?946saccg94?7|@<837p`lbg83>4}O=;20qcml0;295~N2:11vbnm>:182M3502weon<50;3xL04?3tdho>4?:0yK17><ugih87>51zJ66==zfji>6=4>{I71<>{ikj<1<7?tH40;?xhdk>0;6<uG53:8yked03:1=vF:299~jfe>290:wE;=8:mgfg=83;pD8<7;|l`gg<728qC9?64}oa`g?6=9rB>>55rnbag>5<6sA?946sacbg94?7|@<837p`lcg83>4}O=;20qcmk0;295~N2:11vbnj>:182M3502weoi<50;3xL04?3tdhh>4?:0yK17><ugio87>51zJ66==zfjn>6=4>{I71<>{ikm<1<7?tH40;?xhdl>0;6<uG53:8ykec03:1=vF:299~jfb>290:wE;=8:mgag=83;pD8<7;|l``g<728qC9?64}oagg?6=9rB>>55rnbfg>5<6sA?946saceg94?7|@<837p`ldg83>4}O=;20qcmj0;295~N2:11vbnk>:182M3502weoh<50;3xL04?3tdhi>4?:0yK17><ugin87>51zJ66==zfjo>6=4>{I71<>{ikl<1<7?tH40;?xhdm>0;6<uG53:8ykeb03:1=vF:299~jfc>290:wE;=8:mg`g=83;pD8<7;|l`ag<728qC9?64}oafg?6=9rB>>55rnbgg>5<6sA?946sacdg94?7|@<837p`leg83>4}O=;20qcmi0;295~N2:11vbnh>:182M3502weok<50;3xL04?3tdhj>4?:0yK17><ugim87>51zJ66==zfjl>6=4>{I71<>{iko<1<7?tH40;?xhdn>0;6<uG53:8ykea03:1=vF:299~jf`>290:wE;=8:mgcg=83;pD8<7;|l`bg<728qC9?64}oaeg?6=9rB>>55rnbdg>5<6sA?946sacgg94?7|@<837p`lfg83>4}O=;20qcj?0;295~N2:11vbi>>:182M3502weh=<50;3xL04?3tdo<>4?:0yK17><ugn;87>51zJ66==zfm:>6=4>{I71<>{il9<1<7?tH40;?xhc8>0;6<uG53:8ykb703:1=vF:299~ja6>290:wE;=8:m`5g=83;pD8<7;|lg4g<728qC9?64}of3g?6=9rB>>55rne2g>5<6sA?946sad1g94?7|@<837p`k0g83>4}O=;20qcj>0;295~N2:11vbi?>:182M3502weh<<50;3xL04?3tdo=>4?:0yK17><ugn:87>51zJ66==zfm;>6=4>{I71<>{il8<1<7?tH40;?xhc9>0;6<uG53:8ykb603:1=vF:299~ja7>290:wE;=8:m`4g=83;pD8<7;|lg5g<728qC9?64}of2g?6=9rB>>55rne3g>5<6sA?946sad0g94?7|@<837p`k1g83>4}O=;20qcj=0;295~N2:11vbi<>:182M3502weh?<50;3xL04?3tdo>>4?:0yK17><ugn987>51zJ66==zfm8>6=4>{I71<>{il;<1<7?tH40;?xhc:>0;6<uG53:8ykb503:1=vF:299~ja4>290:wE;=8:m`7g=83;pD8<7;|lg6g<728qC9?64}of1g?6=9rB>>55rne0g>5<6sA?946sad3g94?7|@<837p`k2g83>4}O=;20qcj<0;295~N2:11vbi=>:182M3502weh><50;3xL04?3tdo?>4?:0yK17><ugn887>51zJ66==zfm9>6=4>{I71<>{il:<1<7?tH40;?xhc;>0;6<uG53:8ykb403:1=vF:299~ja5>290:wE;=8:m`6g=83;pD8<7;|lg7g<728qC9?64}of0g?6=9rB>>55rne1g>5<6sA?946sad2g94?7|@<837p`k3g83>4}O=;20qcj;0;295~N2:11vbi:>:182M3502weh9<50;3xL04?3tdo8>4?:0yK17><ugn?87>51zJ66==zfm>>6=4>{I71<>{il=<1<7?tH40;?xhc<>0;6<uG53:8ykb303:1=vF:299~ja2>290:wE;=8:m`1g=83;pD8<7;|lg0g<728qC9?64}of7g?6=9rB>>55rne6g>5<6sA?946sad5g94?7|@<837p`k4g83>4}O=;20qcj:0;295~N2:11vbi;>:182M3502weh8<50;3xL04?3tdo9>4?:0yK17><ugn>87>51zJ66==zfm?>6=4>{I71<>{il<<1<7?tH40;?xhc=>0;6<uG53:8ykb203:1=vF:299~ja3>290:wE;=8:m`0g=83;pD8<7;|lg1g<728qC9?64}of6g?6=9rB>>55rne7g>5<6sA?946sad4g94?7|@<837p`k5g83>4}O=;20qcj90;295~N2:11vbi8>:182M3502weh;<50;3xL04?3tdo:>4?:0yK17><ugn=87>51zJ66==zfm<>6=4>{I71<>{il?<1<7?tH40;?xhc>>0;6<uG53:8ykb103:1=vF:299~ja0>290:wE;=8:m`3g=83;pD8<7;|lg2g<728qC9?64}of5g?6=9rB>>55r}|CDF}ak:0>:<=i81c~DED|8tJK\vsO@
\ No newline at end of file diff --git a/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.v b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.v new file mode 100644 index 000000000..593d3f82c --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.v @@ -0,0 +1,173 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The synthesis directives "translate_off/translate_on" specified below are +// supported by Xilinx, Mentor Graphics and Synplicity synthesis +// tools. Ensure they are correct for your synthesis tool(s). + +// You must compile the wrapper file fifo_s6_1Kx36_2clk.v when simulating +// the core, fifo_s6_1Kx36_2clk. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + +`timescale 1ns/1ps + +module fifo_s6_1Kx36_2clk( + rst, + wr_clk, + rd_clk, + din, + wr_en, + rd_en, + dout, + full, + empty, + rd_data_count, + wr_data_count); + + +input rst; +input wr_clk; +input rd_clk; +input [35 : 0] din; +input wr_en; +input rd_en; +output [35 : 0] dout; +output full; +output empty; +output [10 : 0] rd_data_count; +output [10 : 0] wr_data_count; + +// synthesis translate_off + + FIFO_GENERATOR_V6_1 #( + .C_COMMON_CLOCK(0), + .C_COUNT_TYPE(0), + .C_DATA_COUNT_WIDTH(10), + .C_DEFAULT_VALUE("BlankString"), + .C_DIN_WIDTH(36), + .C_DOUT_RST_VAL("0"), + .C_DOUT_WIDTH(36), + .C_ENABLE_RLOCS(0), + .C_ENABLE_RST_SYNC(1), + .C_ERROR_INJECTION_TYPE(0), + .C_FAMILY("spartan6"), + .C_FULL_FLAGS_RST_VAL(1), + .C_HAS_ALMOST_EMPTY(0), + .C_HAS_ALMOST_FULL(0), + .C_HAS_BACKUP(0), + .C_HAS_DATA_COUNT(0), + .C_HAS_INT_CLK(0), + .C_HAS_MEMINIT_FILE(0), + .C_HAS_OVERFLOW(0), + .C_HAS_RD_DATA_COUNT(1), + .C_HAS_RD_RST(0), + .C_HAS_RST(1), + .C_HAS_SRST(0), + .C_HAS_UNDERFLOW(0), + .C_HAS_VALID(0), + .C_HAS_WR_ACK(0), + .C_HAS_WR_DATA_COUNT(1), + .C_HAS_WR_RST(0), + .C_IMPLEMENTATION_TYPE(2), + .C_INIT_WR_PNTR_VAL(0), + .C_MEMORY_TYPE(1), + .C_MIF_FILE_NAME("BlankString"), + .C_MSGON_VAL(1), + .C_OPTIMIZATION_MODE(0), + .C_OVERFLOW_LOW(0), + .C_PRELOAD_LATENCY(0), + .C_PRELOAD_REGS(1), + .C_PRIM_FIFO_TYPE("1kx36"), + .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), + .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), + .C_PROG_EMPTY_TYPE(0), + .C_PROG_FULL_THRESH_ASSERT_VAL(1023), + .C_PROG_FULL_THRESH_NEGATE_VAL(1022), + .C_PROG_FULL_TYPE(0), + .C_RD_DATA_COUNT_WIDTH(11), + .C_RD_DEPTH(1024), + .C_RD_FREQ(1), + .C_RD_PNTR_WIDTH(10), + .C_UNDERFLOW_LOW(0), + .C_USE_DOUT_RST(1), + .C_USE_ECC(0), + .C_USE_EMBEDDED_REG(0), + .C_USE_FIFO16_FLAGS(0), + .C_USE_FWFT_DATA_COUNT(1), + .C_VALID_LOW(0), + .C_WR_ACK_LOW(0), + .C_WR_DATA_COUNT_WIDTH(11), + .C_WR_DEPTH(1024), + .C_WR_FREQ(1), + .C_WR_PNTR_WIDTH(10), + .C_WR_RESPONSE_LATENCY(1)) + inst ( + .RST(rst), + .WR_CLK(wr_clk), + .RD_CLK(rd_clk), + .DIN(din), + .WR_EN(wr_en), + .RD_EN(rd_en), + .DOUT(dout), + .FULL(full), + .EMPTY(empty), + .RD_DATA_COUNT(rd_data_count), + .WR_DATA_COUNT(wr_data_count), + .BACKUP(), + .BACKUP_MARKER(), + .CLK(), + .SRST(), + .WR_RST(), + .RD_RST(), + .PROG_EMPTY_THRESH(), + .PROG_EMPTY_THRESH_ASSERT(), + .PROG_EMPTY_THRESH_NEGATE(), + .PROG_FULL_THRESH(), + .PROG_FULL_THRESH_ASSERT(), + .PROG_FULL_THRESH_NEGATE(), + .INT_CLK(), + .INJECTDBITERR(), + .INJECTSBITERR(), + .ALMOST_FULL(), + .WR_ACK(), + .OVERFLOW(), + .ALMOST_EMPTY(), + .VALID(), + .UNDERFLOW(), + .DATA_COUNT(), + .PROG_FULL(), + .PROG_EMPTY(), + .SBITERR(), + .DBITERR()); + + +// synthesis translate_on + +endmodule + diff --git a/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.veo b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.veo new file mode 100644 index 000000000..e348767a3 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.veo @@ -0,0 +1,53 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG +fifo_s6_1Kx36_2clk YourInstanceName ( + .rst(rst), + .wr_clk(wr_clk), + .rd_clk(rd_clk), + .din(din), // Bus [35 : 0] + .wr_en(wr_en), + .rd_en(rd_en), + .dout(dout), // Bus [35 : 0] + .full(full), + .empty(empty), + .rd_data_count(rd_data_count), // Bus [10 : 0] + .wr_data_count(wr_data_count)); // Bus [10 : 0] + +// INST_TAG_END ------ End INSTANTIATION Template --------- + +// You must compile the wrapper file fifo_s6_1Kx36_2clk.v when simulating +// the core, fifo_s6_1Kx36_2clk. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + diff --git a/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.xco b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.xco new file mode 100644 index 000000000..14ad27c2a --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.xco @@ -0,0 +1,84 @@ +############################################################## +# +# Xilinx Core Generator version 12.1 +# Date: Fri May 4 20:49:07 2012 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc6slx75 +SET devicefamily = spartan6 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = csg484 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT Fifo_Generator family Xilinx,_Inc. 6.1 +# END Select +# BEGIN Parameters +CSET almost_empty_flag=false +CSET almost_full_flag=false +CSET component_name=fifo_s6_1Kx36_2clk +CSET data_count=false +CSET data_count_width=10 +CSET disable_timing_violations=false +CSET dout_reset_value=0 +CSET empty_threshold_assert_value=4 +CSET empty_threshold_negate_value=5 +CSET enable_ecc=false +CSET enable_int_clk=false +CSET enable_reset_synchronization=true +CSET fifo_implementation=Independent_Clocks_Block_RAM +CSET full_flags_reset_value=1 +CSET full_threshold_assert_value=1023 +CSET full_threshold_negate_value=1022 +CSET inject_dbit_error=false +CSET inject_sbit_error=false +CSET input_data_width=36 +CSET input_depth=1024 +CSET output_data_width=36 +CSET output_depth=1024 +CSET overflow_flag=false +CSET overflow_sense=Active_High +CSET performance_options=First_Word_Fall_Through +CSET programmable_empty_type=No_Programmable_Empty_Threshold +CSET programmable_full_type=No_Programmable_Full_Threshold +CSET read_clock_frequency=1 +CSET read_data_count=true +CSET read_data_count_width=11 +CSET reset_pin=true +CSET reset_type=Asynchronous_Reset +CSET underflow_flag=false +CSET underflow_sense=Active_High +CSET use_dout_reset=true +CSET use_embedded_registers=false +CSET use_extra_logic=true +CSET valid_flag=false +CSET valid_sense=Active_High +CSET write_acknowledge_flag=false +CSET write_acknowledge_sense=Active_High +CSET write_clock_frequency=1 +CSET write_data_count=true +CSET write_data_count_width=11 +# END Parameters +GENERATE +# CRC: 5f5a2e48 diff --git a/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.xise b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.xise new file mode 100644 index 000000000..b6109869c --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk.xise @@ -0,0 +1,392 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema"> + + <header> + <!-- ISE source project file created by Project Navigator. --> + <!-- --> + <!-- This file contains project source information including a list of --> + <!-- project source files, project and process properties. This file, --> + <!-- along with the project source files, is sufficient to open and --> + <!-- implement in ISE Project Navigator. --> + <!-- --> + <!-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. --> + </header> + + <version xil_pn:ise_version="12.1" xil_pn:schema_version="2"/> + + <files> + <file xil_pn:name="fifo_s6_1Kx36_2clk.ngc" xil_pn:type="FILE_NGC"> + <association xil_pn:name="BehavioralSimulation"/> + <association xil_pn:name="Implementation"/> + </file> + <file xil_pn:name="fifo_s6_1Kx36_2clk.v" xil_pn:type="FILE_VERILOG"> + <association xil_pn:name="BehavioralSimulation"/> + <association xil_pn:name="Implementation"/> + <association xil_pn:name="PostMapSimulation"/> + <association xil_pn:name="PostRouteSimulation"/> + <association xil_pn:name="PostTranslateSimulation"/> + </file> + </files> + + <properties> + <property xil_pn:name="AES Initial Vector spartan6" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="AES Key (Hex String) spartan6" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Add I/O Buffers" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Logic Optimization Across Hierarchy" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow SelectMAP Pins to Persist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unexpanded Blocks" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unmatched LOC Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unmatched Timing Group Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Asynchronous To Synchronous" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Auto Implementation Compile Order" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Auto Implementation Top" xil_pn:value="false" xil_pn:valueState="non-default"/> + <property xil_pn:name="Automatic BRAM Packing" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Automatically Insert glbl Module in the Netlist" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Automatically Run Generate Target PROM/ACE File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Autosignature Generation" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="BRAM Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Bring Out Global Set/Reset Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Bring Out Global Tristate Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Bus Delimiter" xil_pn:value="<>" xil_pn:valueState="default"/> + <property xil_pn:name="Case" xil_pn:value="Maintain" xil_pn:valueState="default"/> + <property xil_pn:name="Case Implementation Style" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Change Device Speed To" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Change Device Speed To Post Trace" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Clock Enable" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Collapsing Input Limit (4-40)" xil_pn:value="32" xil_pn:valueState="default"/> + <property xil_pn:name="Collapsing Pterm Limit (3-56)" xil_pn:value="28" xil_pn:valueState="default"/> + <property xil_pn:name="Combinatorial Logic Optimization" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Compile CPLD Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile EDK Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile SIMPRIM (Timing) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile UNISIM (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile XilinxCoreLib (CORE Generator) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile for HDL Debugging" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile uni9000 (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin Done" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin Program" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Rate spartan6" xil_pn:value="2" xil_pn:valueState="default"/> + <property xil_pn:name="Correlate Output to Input Design" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create ASCII Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Binary Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Bit File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Create I/O Pads from Ports" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create IEEE 1532 Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create IEEE 1532 Configuration File spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Logic Allocation File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Mask File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create ReadBack Data Files" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Cross Clock Analysis" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="DSP Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Default Powerup Value of Registers" xil_pn:value="Low" xil_pn:valueState="default"/> + <property xil_pn:name="Delay Values To Be Read from SDF" xil_pn:value="Setup Time" xil_pn:valueState="default"/> + <property xil_pn:name="Device" xil_pn:value="xc6slx75" xil_pn:valueState="non-default"/> + <property xil_pn:name="Device Family" xil_pn:value="Spartan6" xil_pn:valueState="non-default"/> + <property xil_pn:name="Device Speed Grade/Select ABS Minimum" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Do Not Escape Signal and Instance Names in Netlist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Done (Output Events)" xil_pn:value="Default (4)" xil_pn:valueState="default"/> + <property xil_pn:name="Drive Awake Pin During Suspend/Wake Sequence spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Drive Done Pin High" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable BitStream Compression" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Cyclic Redundancy Checking (CRC) spartan6" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Debugging of Serial Mode BitStream" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable External Master Clock spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Internal Done Pipe" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Message Filtering" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Multi-Pin Wake-Up Suspend Mode spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Multi-Threading" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Multi-Threading par" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Outputs (Output Events)" xil_pn:value="Default (5)" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Suspend/Wake Global Set/Reset spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Encrypt Bitstream spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Encrypt Key Select spartan6" xil_pn:value="BBRAM" xil_pn:valueState="default"/> + <property xil_pn:name="Equivalent Register Removal Map" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Equivalent Register Removal XST" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Exclude Compilation of Deprecated EDK Cores" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Exclude Compilation of EDK Sub-Libraries" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Exhaustive Fit Mode" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Extra Cost Tables Map" xil_pn:value="0" xil_pn:valueState="default"/> + <property xil_pn:name="Extra Effort (Highest PAR level only)" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="FPGA Start-Up Clock" xil_pn:value="CCLK" xil_pn:valueState="default"/> + <property xil_pn:name="FSM Encoding Algorithm" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="FSM Style" xil_pn:value="LUT" xil_pn:valueState="default"/> + <property xil_pn:name="Filter Files From Compile Order" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Flatten Output Netlist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Function Block Input Limit (4-40)" xil_pn:value="38" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language ArchWiz" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language Coregen" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language Schematic" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="GTS Cycle During Suspend/Wakeup Sequence spartan6" xil_pn:value="4" xil_pn:valueState="default"/> + <property xil_pn:name="GWE Cycle During Suspend/Wakeup Sequence spartan6" xil_pn:value="5" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Architecture Only (No Entity Declaration)" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Asynchronous Delay Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Clock Region Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Constraints Interaction Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Constraints Interaction Report Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Datasheet Section" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Datasheet Section Post Trace" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Detailed MAP Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Detailed Package Parasitics" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Multiple Hierarchical Netlist Files" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Fit Power Data" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Fit Simulation Model" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Place & Route Power Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Place & Route Simulation Model" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate RTL Schematic" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Generate SAIF File for Power Optimization/Estimation Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Testbench File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Timegroups Section" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Timegroups Section Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generics, Parameters" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Global Optimization Goal" xil_pn:value="AllClockNets" xil_pn:valueState="default"/> + <property xil_pn:name="Global Optimization map" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Global Set/Reset Port Name" xil_pn:value="GSR_PORT" xil_pn:valueState="default"/> + <property xil_pn:name="Global Tristate Port Name" xil_pn:value="GTS_PORT" xil_pn:valueState="default"/> + <property xil_pn:name="HDL Equations Style" xil_pn:value="Source" xil_pn:valueState="default"/> + <property xil_pn:name="Hierarchy Separator" xil_pn:value="/" xil_pn:valueState="default"/> + <property xil_pn:name="I/O Voltage Standard" xil_pn:value="LVCMOS18" xil_pn:valueState="default"/> + <property xil_pn:name="ISim UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Ignore User Timing Constraints Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Ignore User Timing Constraints Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Implementation Stop View" xil_pn:value="Structural" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Template" xil_pn:value="Optimize Density" xil_pn:valueState="default"/> + <property xil_pn:name="Implementation Top" xil_pn:value="Module|fifo_s6_1Kx36_2clk" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top File" xil_pn:value="fifo_s6_1Kx36_2clk.ngc" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top Instance Path" xil_pn:value="/fifo_s6_1Kx36_2clk" xil_pn:valueState="non-default"/> + <property xil_pn:name="Include 'uselib Directive in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include SIMPRIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include UNISIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include sdf_annotate task in Verilog File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Incremental Compilation" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Input and tristate I/O Termination Mode" xil_pn:value="Keeper" xil_pn:valueState="default"/> + <property xil_pn:name="Insert Buffers to Prevent Pulse Swallowing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Instantiation Template Target Language Xps" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TCK" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TDI" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TDO" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TMS" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Keep Hierarchy" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Keep Hierarchy CPLD" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="LUT Combining Map" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="LUT Combining Xst" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Language" xil_pn:value="VHDL" xil_pn:valueState="default"/> + <property xil_pn:name="Logic Optimization" xil_pn:value="Density" xil_pn:valueState="default"/> + <property xil_pn:name="Macro Preserve" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Manual Implementation Compile Order" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Map Slice Logic into Unused Block RAMs" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Mask Pins for Multi-Pin Wake-Up Suspend Mode spartan6" xil_pn:value="0x00" xil_pn:valueState="default"/> + <property xil_pn:name="Max Fanout" xil_pn:value="100000" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Compression" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Number of Lines in Report" xil_pn:value="1000" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Signal Name Length" xil_pn:value="20" xil_pn:valueState="default"/> + <property xil_pn:name="Move First Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Move Last Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Next Configuration Mode spartan6" xil_pn:value="001" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Starting Address for Golden Configuration spartan6" xil_pn:value="0x00000000" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Starting Address for Next Configuration spartan6" xil_pn:value="0x00000000" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Use New Mode for Next Configuration spartan6" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: User-Defined Register for Failsafe Scheme spartan6" xil_pn:value="0x0000" xil_pn:valueState="default"/> + <property xil_pn:name="Mux Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Netlist Hierarchy" xil_pn:value="As Optimized" xil_pn:valueState="default"/> + <property xil_pn:name="Netlist Translation Type" xil_pn:value="Timestamp" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Clock Buffers" xil_pn:value="16" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Paths in Error/Verbose Report" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Paths in Error/Verbose Report Post Trace" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Effort" xil_pn:value="Normal" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Goal" xil_pn:value="Speed" xil_pn:valueState="default"/> + <property xil_pn:name="Optimize Instantiated Primitives" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Other Bitgen Command Line Options spartan6" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other CPLD Fitter Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Fit" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Par" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compxlib Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Map Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other NETGEN Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Ngdbuild Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Place & Route Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Programming Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Behavioral" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Fit" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Route" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Timing Report Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other XPWR Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other XST Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Output Extended Identifiers" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Output File Name" xil_pn:value="fifo_s6_1Kx36_2clk" xil_pn:valueState="default"/> + <property xil_pn:name="Output Slew Rate" xil_pn:value="Fast" xil_pn:valueState="default"/> + <property xil_pn:name="Overwrite Compiled Libraries" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Pack I/O Registers into IOBs" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Pack I/O Registers/Latches into IOBs" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Package" xil_pn:value="csg484" xil_pn:valueState="default"/> + <property xil_pn:name="Perform Advanced Analysis" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Perform Advanced Analysis Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Place & Route Effort Level (Overall)" xil_pn:value="High" xil_pn:valueState="default"/> + <property xil_pn:name="Place And Route Mode" xil_pn:value="Normal Place and Route" xil_pn:valueState="default"/> + <property xil_pn:name="Place MultiBoot Settings into Bitstream spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Placer Effort Level Map" xil_pn:value="High" xil_pn:valueState="default"/> + <property xil_pn:name="Placer Extra Effort Map" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Port to be used" xil_pn:value="Auto - default" xil_pn:valueState="default"/> + <property xil_pn:name="Post Map Simulation Model Name" xil_pn:value="fifo_s6_1Kx36_2clk_map.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Place & Route Simulation Model Name" xil_pn:value="fifo_s6_1Kx36_2clk_timesim.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Synthesis Simulation Model Name" xil_pn:value="fifo_s6_1Kx36_2clk_synthesis.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Translate Simulation Model Name" xil_pn:value="fifo_s6_1Kx36_2clk_translate.v" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Xst" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Preferred Language" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Preserve Unused Inputs" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Produce Advanced Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Produce Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Project Generator" xil_pn:value="CoreGen" xil_pn:valueState="non-default"/> + <property xil_pn:name="Property Specification in Project File" xil_pn:value="Store all values" xil_pn:valueState="default"/> + <property xil_pn:name="RAM Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="RAM Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="ROM Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="ROM Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Read Cores" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Reduce Control Sets" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Regenerate Core" xil_pn:value="Under Current Project Setting" xil_pn:valueState="default"/> + <property xil_pn:name="Register Balancing" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Register Duplication Map" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Register Duplication Xst" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Release Write Enable (Output Events)" xil_pn:value="Default (6)" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Design Instance in Testbench File to" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Architecture To" xil_pn:value="Structure" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Entity to" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Module To" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Report Fastest Path(s) in Each Constraint" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Report Fastest Path(s) in Each Constraint Post Trace" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Report Paths by Endpoint" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Report Paths by Endpoint Post Trace" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Report Type" xil_pn:value="Verbose Report" xil_pn:valueState="default"/> + <property xil_pn:name="Report Type Post Trace" xil_pn:value="Verbose Report" xil_pn:valueState="default"/> + <property xil_pn:name="Report Unconstrained Paths" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Report Unconstrained Paths Post Trace" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Reset On Configuration Pulse Width" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Resource Sharing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Retain Hierarchy" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Retiming Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Retry Configuration if CRC Error Occurs spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Run Design Rules Checker (DRC)" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Map" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Par" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Translate" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Safe Implementation" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Security" xil_pn:value="Enable Readback and Reconfiguration" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Behavioral" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Route" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Source Node" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Set SPI Configuration Bus Width spartan6" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Setup External Master Clock Division spartan6" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Shift Register Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Shift Register Minimum Size spartan6" xil_pn:value="2" xil_pn:valueState="default"/> + <property xil_pn:name="Show All Models" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Model Target" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time ISim" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Map" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Par" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Translate" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Slice Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Specify 'define Macro Name and Value" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Behavioral" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Fit" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Map" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Route" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Translate" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Speed Grade" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Starting Placer Cost Table (1-100) Map" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Synthesis Tool" xil_pn:value="XST (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Target Simulator" xil_pn:value="Please Specify" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Mode Map" xil_pn:value="Performance Evaluation" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Mode Par" xil_pn:value="Performance Evaluation" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Report Format" xil_pn:value="Summary" xil_pn:valueState="default"/> + <property xil_pn:name="Top-Level Module Name in Output Netlist" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Top-Level Source Type" xil_pn:value="HDL" xil_pn:valueState="default"/> + <property xil_pn:name="Trim Unconnected Signals" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Tristate On Configuration Pulse Width" xil_pn:value="0" xil_pn:valueState="default"/> + <property xil_pn:name="Unused I/O Pad Termination Mode" xil_pn:value="Keeper" xil_pn:valueState="default"/> + <property xil_pn:name="Unused IOB Pins" xil_pn:value="Pull Down" xil_pn:valueState="default"/> + <property xil_pn:name="Use Clock Enable" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Fit" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Route" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Behav" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Fit" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use DSP Block spartan6" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Data Gate" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Direct Input for Input Registers" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Global Clocks" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Global Output Enables" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Global Set/Reset" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use LOC Constraints" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Location Constraints" xil_pn:value="Always" xil_pn:valueState="default"/> + <property xil_pn:name="Use Multi-level Logic Optimization" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use RLOC Constraints" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Use Smart Guide" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synchronous Reset" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synchronous Set" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synthesis Constraints File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Timing Constraints" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="UserID Code (8 Digit Hexadecimal)" xil_pn:value="0xFFFFFFFF" xil_pn:valueState="default"/> + <property xil_pn:name="VCCAUX Voltage Level spartan6" xil_pn:value="2.5V" xil_pn:valueState="default"/> + <property xil_pn:name="VHDL Source Analysis Standard" xil_pn:value="VHDL-93" xil_pn:valueState="default"/> + <property xil_pn:name="Value Range Check" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Verilog 2001 Xst" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Verilog Macros" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="WYSIWYG" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Wait for DCM and PLL Lock (Output Events) spartan6" xil_pn:value="Default (NoWait)" xil_pn:valueState="default"/> + <property xil_pn:name="Wakeup Clock spartan6" xil_pn:value="Startup Clock" xil_pn:valueState="default"/> + <property xil_pn:name="Watchdog Timer Value spartan6" xil_pn:value="0xFFFF" xil_pn:valueState="default"/> + <property xil_pn:name="Working Directory" xil_pn:value="." xil_pn:valueState="default"/> + <property xil_pn:name="Write Timing Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="XOR Preserve" xil_pn:value="true" xil_pn:valueState="default"/> + <!-- --> + <!-- The following properties are for internal use only. These should not be modified.--> + <!-- --> + <property xil_pn:name="PROP_BehavioralSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_DesignName" xil_pn:value="fifo_s6_1Kx36_2clk" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan6" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_FPGAConfiguration" xil_pn:value="FPGAConfiguration" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostFitSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostMapSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostParSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostSynthSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostXlateSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_intProjectCreationTimestamp" xil_pn:value="2012-05-04T13:49:09" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWbtProjectID" xil_pn:value="334FF80B875B41AA9C000F6D67B92F9C" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirLocWRTProjDir" xil_pn:value="Same" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirUsed" xil_pn:value="No" xil_pn:valueState="non-default"/> + </properties> + + <bindings/> + + <libraries/> + + <autoManagedFiles> + <!-- The following files are identified by `include statements in verilog --> + <!-- source files and are automatically managed by Project Navigator. --> + <!-- --> + <!-- Do not hand-edit this section, as it will be overwritten when the --> + <!-- project is analyzed based on files automatically identified as --> + <!-- include files. --> + </autoManagedFiles> + +</project> diff --git a/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk_flist.txt b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk_flist.txt new file mode 100644 index 000000000..4f5b34b9b --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk_flist.txt @@ -0,0 +1,13 @@ +# Output products list for <fifo_s6_1Kx36_2clk> +_xmsgs/pn_parser.xmsgs +fifo_generator_ug175.pdf +fifo_s6_1Kx36_2clk.asy +fifo_s6_1Kx36_2clk.gise +fifo_s6_1Kx36_2clk.ngc +fifo_s6_1Kx36_2clk.v +fifo_s6_1Kx36_2clk.veo +fifo_s6_1Kx36_2clk.xco +fifo_s6_1Kx36_2clk.xise +fifo_s6_1Kx36_2clk_flist.txt +fifo_s6_1Kx36_2clk_readme.txt +fifo_s6_1Kx36_2clk_xmdf.tcl diff --git a/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk_readme.txt b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk_readme.txt new file mode 100644 index 000000000..b101bd8cf --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk_readme.txt @@ -0,0 +1,51 @@ +The following files were generated for 'fifo_s6_1Kx36_2clk' in directory +/home/matt/fpgapriv/usrp2/coregen/ + +fifo_generator_ug175.pdf: + Please see the core data sheet. + +fifo_s6_1Kx36_2clk.asy: + Graphical symbol information file. Used by the ISE tools and some + third party tools to create a symbol representing the core. + +fifo_s6_1Kx36_2clk.gise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_s6_1Kx36_2clk.ngc: + Binary Xilinx implementation netlist file containing the information + required to implement the module in a Xilinx (R) FPGA. + +fifo_s6_1Kx36_2clk.v: + Verilog wrapper file provided to support functional simulation. + This file contains simulation model customization data that is + passed to a parameterized simulation model for the core. + +fifo_s6_1Kx36_2clk.veo: + VEO template file containing code that can be used as a model for + instantiating a CORE Generator module in a Verilog design. + +fifo_s6_1Kx36_2clk.xco: + CORE Generator input file containing the parameters used to + regenerate a core. + +fifo_s6_1Kx36_2clk.xise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_s6_1Kx36_2clk_readme.txt: + Text file indicating the files generated and how they are used. + +fifo_s6_1Kx36_2clk_xmdf.tcl: + ISE Project Navigator interface file. ISE uses this file to determine + how the files output by CORE Generator for the core can be integrated + into your ISE project. + +fifo_s6_1Kx36_2clk_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + + +Please see the Xilinx CORE Generator online help for further details on +generated files and how to use them. + diff --git a/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk_xmdf.tcl b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk_xmdf.tcl new file mode 100644 index 000000000..f9a9ac233 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_1Kx36_2clk_xmdf.tcl @@ -0,0 +1,72 @@ +# The package naming convention is <core_name>_xmdf +package provide fifo_s6_1Kx36_2clk_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is <core_name>_xmdf +namespace eval ::fifo_s6_1Kx36_2clk_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::fifo_s6_1Kx36_2clk_xmdf::xmdfInit { instance } { +# Variable containg name of library into which module is compiled +# Recommendation: <module_name> +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_s6_1Kx36_2clk +} +# ::fifo_s6_1Kx36_2clk_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::fifo_s6_1Kx36_2clk_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be magically +# available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_1Kx36_2clk.asy +utilities_xmdf::xmdfSetData $instance FileSet $fcount type asy +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_1Kx36_2clk.ngc +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_1Kx36_2clk.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_1Kx36_2clk.veo +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_1Kx36_2clk.xco +utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_1Kx36_2clk_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_s6_1Kx36_2clk +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.asy b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.asy new file mode 100644 index 000000000..0b429a886 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.asy @@ -0,0 +1,49 @@ +Version 4 +SymbolType BLOCK +TEXT 32 32 LEFT 4 fifo_s6_2Kx36_2clk +RECTANGLE Normal 32 32 544 768 +LINE Wide 0 80 32 80 +PIN 0 80 LEFT 36 +PINATTR PinName din[35:0] +PINATTR Polarity IN +LINE Normal 0 144 32 144 +PIN 0 144 LEFT 36 +PINATTR PinName wr_en +PINATTR Polarity IN +LINE Normal 0 176 32 176 +PIN 0 176 LEFT 36 +PINATTR PinName wr_clk +PINATTR Polarity IN +LINE Normal 0 240 32 240 +PIN 0 240 LEFT 36 +PINATTR PinName rd_en +PINATTR Polarity IN +LINE Normal 0 272 32 272 +PIN 0 272 LEFT 36 +PINATTR PinName rd_clk +PINATTR Polarity IN +LINE Normal 144 800 144 768 +PIN 144 800 BOTTOM 36 +PINATTR PinName rst +PINATTR Polarity IN +LINE Wide 576 80 544 80 +PIN 576 80 RIGHT 36 +PINATTR PinName dout[35:0] +PINATTR Polarity OUT +LINE Normal 576 208 544 208 +PIN 576 208 RIGHT 36 +PINATTR PinName full +PINATTR Polarity OUT +LINE Wide 576 368 544 368 +PIN 576 368 RIGHT 36 +PINATTR PinName wr_data_count[11:0] +PINATTR Polarity OUT +LINE Normal 576 432 544 432 +PIN 576 432 RIGHT 36 +PINATTR PinName empty +PINATTR Polarity OUT +LINE Wide 576 592 544 592 +PIN 576 592 RIGHT 36 +PINATTR PinName rd_data_count[11:0] +PINATTR Polarity OUT + diff --git a/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.gise b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.gise new file mode 100644 index 000000000..d90a25595 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.gise @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<generated_project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema">
+
+ <!-- -->
+
+ <!-- For tool use only. Do not edit. -->
+
+ <!-- -->
+
+ <!-- ProjectNavigator created generated project file. -->
+
+ <!-- For use in tracking generated file and other information -->
+
+ <!-- allowing preservation of process status. -->
+
+ <!-- -->
+
+ <!-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. -->
+
+ <version xmlns="http://www.xilinx.com/XMLSchema">11.1</version>
+
+ <sourceproject xmlns="http://www.xilinx.com/XMLSchema" xil_pn:fileType="FILE_XISE" xil_pn:name="fifo_s6_2Kx36_2clk.xise"/>
+
+ <files xmlns="http://www.xilinx.com/XMLSchema">
+ <file xil_pn:fileType="FILE_ASY" xil_pn:name="fifo_s6_2Kx36_2clk.asy" xil_pn:origination="imported"/>
+ <file xil_pn:fileType="FILE_VEO" xil_pn:name="fifo_s6_2Kx36_2clk.veo" xil_pn:origination="imported"/>
+ </files>
+
+ <transforms xmlns="http://www.xilinx.com/XMLSchema"/>
+
+</generated_project>
diff --git a/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.ngc b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.ngc new file mode 100644 index 000000000..994b767ea --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.ngc @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$7d540<,[o}e~g`n;"2*726&;$:,)?40893456789:;8=5?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>>0:234567892;<=>?01:8456709:;>6>74:2;<5><812;4=6?1193<=6?81:3<5>70927?5>AN81:?6?!032854<NFY__6}|`g^gntqX|axne2>0;2=62=693CE\XZ5psmd[`kw|pUdk|h^cpw`ts48:1<3<8;039MKVR\3zycjQjmqvz[qnumzbTbhintd>24?699o1:=7GAPTV9twi`Wog`Rzgrdqk846=878=7<?5IORVP?vugnUmyabPtipfwmYf{zoyx1??:1<12>762@D[YY4rne\bpjkW}byi~fPndebp`:683:5=l5>1;MVPUSS2mkmRm`uov?55<768n0=?4@UURVP?tcWmkmRm`uov?54<768n0=?4@UURVP?quWmkmRm`uov?54<768>0=94FNQWW>DBCZH6:?7>115920?OIX\^1MIJ]B=30>5863;;;7?ONA@CBE=6789:;<<<4338JJUSS2MCJ0>?50?31?64=AGZ^X7JFB=12>586;2996B[[PTV9@JG;;80;2<=4338LQQVR\3NDN1=>:1<26>512@D[YY4kio>01?699=18:7AZTQWW>air|59>6=0>1:69MKVR\3NB\L2<:1<25>2=AGZ^X7JFPC>0>58682>1EC^ZT;UFE95=87;;794FNQWW>RCE4:0;2<<44;MVPUSS2ME[M1=50?31?1<H]]Z^X7J@PC>0>5833<?:955:547305663?80:4:468;5<>0>1?3=:4??;7;:2<0110<=5;766395E1=1IHK37;ONA@CBE46<>HKJMLONA@CBEDGFm2<x`u9:cre7<1+4:2=M869IFG33?2@ANOLMJ5>?0123446<?OLMJKHIFGDEBC@A922975>;;9234==?89:;<=>>0::3456789:;<=>?0133?=6?81:3<=67092;41=?:=;?75:=1028<=>?0123>56789:;0>>B0H;0595601;1?<0?30<=5;766028=30>>03=:479974:55=>IHKJMLONA@CBEDG53H837LONA7CBE==FLMXJ0=06;@FGVD:68730MIJ]A=32:<=FLMXJ0<<1b:CG@WG;9:0;245NDEPB845902KOH_O31?:8EABUI58546OKDSC?7;><IMNYM1:18:CG@WG;=720MIJ]A=4=<>GCL[K7;364AEFQE9>902KOH_O39?:8EABUJ5:556OKDS@?558>3HNO^O2>1?;8EABUJ5;92o5NDEPA845=8730MIJ]B=30:==FLMXI0<07;@FGVG:5611JHI\M<2<;?DBCZK6?255NDEPA808?3HNO^O29>99B@ATE4>437LJKRC>;:==FLMXI040=;@G0?DJK12KXUCMPRDE1?G643K_946LZS^KMBJ7<K;1HI<<4CIG@OZJNKLDXIRZVPD08GL2<KEAJ86MCKC18GIT>3JEFADZ[EE37?FIUMVMNBH\NTHMM[LHAG>1H^HO[EE38@f=CI]KT[DJ[H^C`?AGSIV]BHYFPB99GBDG?IHK:<6JIA@CBED>FIHKJML<4DH48@LG;87=0HDO311<4?AOF48;5;6JFA=31:2=CAH6:?394DHC?51803MCJ0<;17:FJE9716>1OEL2>7?58@LG;914<7IGN<0;=2>BNI5;5;6JFA=03:2=CAH69=394DHC?67803MCJ0?=17:FJE9436>1OEL2=5?58@LG;:?4<7IGN<35=3>BNI5832:5KI@>1=;0<L@K7>394DHC?758>3MCJ0>?50?58@LG;;84=7IGN<2<5?AOF4=4=7IGN<4<5?AOF4?4=7IGN<6<5?AOF414=7IGN<8<5?AOE494<7IGM<02=3>BNJ5;:2:5KIC>26;1<L@H7=>08;EKA8429?2NBN1?:>69GMG:6>7=0HDL316<4?AOE4825;6JFB=3::3=CAK6:2:5KIC>14;1<L@H7><08;EKA8749?2NBN1<<>69GMG:5<7=0HDL324<4?AOE4;<5;6JFB=04:2=CAK694394DH@?6<813MCI0?08;EKA866912NBN1=>:1<4?AOE4:;5:6JFB=1=2>BNJ5>5:6JFB=7=2>BNJ5<5:6JFB=5=2>BNJ525:6JFB=;=3>BNXH6;2:5KIQC?5;1<L@ZJ0?06;EKSE95=87=0HD^N<2<4?AOWJ5:5;6JFPC>2:2=CAYH7>374DHRA86<76>1OE]L33?48@JG;87=0HBO311<4?AIF48;5;6J@A=31:2=CGH6:?394DNC?51803MEJ0<;17:FLE9716>1OCL2>7?58@JG;914<7IAN<0;=2>BHI5;5;6J@A=03:2=CGH69=394DNC?67803MEJ0?=17:FLE9436>1OCL2=5?58@JG;:?4<7IAN<35=3>BHI5832:5KO@>1=;0<LFK7>394DNC?758>3MEJ0>?50?58@JG;;84=7IAN<2<5?AIF4=4=7IAN<4<5?AIF4?4=7IAN<6<5?AIF414=7IAN<8<4?AIFW[OL:6J@B=2=3>BHJ5;;2:5KOC>25;1<LFH7=?08;EMA8459?2NDN1?;>69GKG:6=7=0HBL317<4?AIE48=5;6J@B=3;:2=CGK6:5384DN@?5;1<LFH7>=08;EMA8779?2NDN1<=>69GKG:5;7=0HBL325<4?AIE4;?5;6J@B=05:2=CGK69;394DN@?6=803MEI0?716:FLF949?2NDN1=?>89GKG:493:5;6J@B=12:3=CGK682;5KOC>7:3=CGK6>2;5KOC>5:3=CGK6<2;5KOC>;:3=CGK622:5KOC]QAB1<LFZJ0=08;EMSE979?2ND\L2=>89GKUG;;3:5;6J@P@>0:2=CGYH7<394DNRA84803ME[N1<19:FLTG:4294<7IA_B=1=6>C3;2OEM>5JNC`8AKYU[]XJAROm;DL\VVRUIDUI==5I0G2E4C600O:M<K>:;GCOW@4<NM90JIM;;GF@A6=ALY>0JI^J4:DGV@773OLMJ?=<3GDEB567811MJKH:5072?B5<OGN:7D<4I108M44<A;80E><4I508M0><AGC_\R>?8:KMMQVX8820ECG[P^21<>OIA]ZT<>64IOKWTZ6302CEEY^P04:8MKOSXV:=46GAIUR\42?<AGC__YO[E69JJLRX89=0ECG[_134?LHN\V:9;6GAIU]372=NF@^T<994IOKW[5303@DBXR>97:KMMQY7?>1BBDZP0958MKOSW93<7D@FT^2B3>OIA]U;N:5FNHV\4F1<AGC_S=J8;HLJPZ6B?2CEEYQ?F69JJLRX99=0ECG[_034?LHN\V;9;6GAIU]272=NF@^T=994IOKW[4303@DBXR?97:KMMQY6?>1BBDZP1958MKOSW83<7D@FT^3B3>OIA]U:N:5FNHV\5F1<AGC_S<J8;HLJPZ7B?2CEEYQ>F69JJLRX:9=0ECG[_334?LHN\V89;6GAIU]172=NF@^T>994IOKW[7303@DBXR<97:KMMQY5?>1BBDZP2958MKOSW;3<7D@FT^0B3>OIA]U9N:5FNHV\6F1<AGC_S?J8;HLJPZ4B?2CEEYQ=F69JJLRX;9=0ECG[_234?LHN\V99;6GAIU]072=NF@^T?994IOKW[6303@DBXR=97:KMMQY4?>1BBDZP3958MKOSW:3<7D@FT^1B3>OIA]U8N:5FNHV\7F1<AGC_S>J8;HLJPZ5B?2CEEYQ<F79JJLRXI?1BBDZPB89JJLRXN@FN?6GAV39OM3=KGHNNH:5COFK@EI2<D\^986BZT268HPR3<2F^X8:4LTV51>KTOFD>7@[WCXa8Idlhz_oydaac:OjjjtQm{ybcc<4N018J4643G;:86@>1968J47>;2D:>95A1327?K759=1E=?<;;O3171=I9;>?7C?=559M57033G;9;95A13:7?K751:1E=>:4N0130>H6;8>0B<==4:L2762<F89?86@>3468J451<2D:?::4N01;0>H6;090B<:;;O3741=I9=;?7C?;259M51533G;?895A1577?K73>=1E=99;;O37<1=I9=387C?:4:L2152<F8?:86@>5368J434<2D:99:4N07;7>H6>:1E=::4N0500>H6?=>0B<9:4:L2332<F8=<86@>7968J41>;2D:495A1927?K7?9=1E=5<;;O3;71=I91>?7C?7559M5=033G;3;95A19:7?K7?1:1E=4:4N0;30>H618>0B<7=4:L2=62<F83?86@>9468J4?1:2D9?6@=029M645<F;887C<<3:L106=I:<90B?8<;O047>H50:1E>4=4N220?K56;2D8>>5A3218J6243G9>?6@<629M725<F:287C=62:L77>H38:1E8<=4N500?K24;2D?8>5A4418J1043G><?6@;839M16=I=990B8<=;O51?K>53G3m7CLPBTQSMKYWZFZX;6@JTVMQO1=IGGO:7B<4OJ38T1=WI[^j7]GA_CWPMA^e3YCESO[\N@OF=>VLWAF^XCC<;QPF5>W63[k0^LCM17@TAW0<ZLMHIL84RDE@AG2<ZZ^J86\\TC58VVRSQYOn7_][_QPJKWOSQVKn7_][_QPJKWOSQVH:7^?<;RKN[FIKD@YBCCQLHDAHe>UNEVNNZDMJ6:QLQWEB02Y[M_ZNN758WWPFDVK<7^\YAM]A0>U^FJ>0X_[J4:VZT@5c3\:$kh!rg-dg}(ddbr$Aua}_SF\TKRUS9WT^IQ_NUPX5XY_G[U<9RaPxn>3:45c3\:$kh!rg-dg}(ddbr$Aua}_SF\TKRUS8WT^IQ_NUPX6XY_G[U<8RaPxn>3:45c3\:$kh!rg-dg}(ddbr$Aua}_SF\TKRUS;WT^IQ_NUPX7XY_G[U<?RaPxn>3:45c3\:$kh!rg-dg}(ddbr$Aua}_SF\TKRUS:WT^IQ_NUPX0XY_G[U<>RaPxn>3:45c3\:$kh!rg-dg}(ddbr$Aua}_SF\TKRUS=WT^IQ_NUPX1XY_G[U<=RaPxn>3:45c3\:$kh!rg-dg}(ddbr$Aua}_SF\TKRUS<WT^IQ_NUPX2XY_G[U<<RaPxn>3:45c3\:$kh!rg-dg}(ddbr$Aua}_SF\TKRUS?WT^IQ_NUPX3XY_G[U=5RaPxn>3:45c3\:$kh!rg-dg}(ddbr$Aua}_SF\TKRUS>WT^IQ_NUPX<XY_G[U=4RaPxn>3:45c3\:$kh!rg-dg}(ddbr$Aua}_SF\TKRUS1WT^IQ_NUPX=XY_G[U=;RaPxn>3:45b3\:$kh!rg-dg}(ddbr$Aua}_SF\TKRUS0WT^IQ_NUPX55[XPFXT:;Q`_ym?4;74l2_;#j|i.sd,cf~)keas#@v`r^UQ[UHSZR:VSZ\PPOVQ_4[XPFXT==Q`_ym?4;74k2_;#j|i.sd,cf~)keas#@v`r^UQ[UHSZR;VSZ\PPOVQ_7[XPFXT5RaPxn>3:45d3\:$kh!rg-dg}(ddbr$Aua}_VP\TKRUS;WT[_Q_NUPX7XY_G[U3SbQwo=2=56e<]9%l~k }f.e`|+ekcq%Ftb|PWS]SJQT\;TU\^R^ATSY7YZ^HZV=TcRv`<1<27f=R8&myj#|i/fa{*fjlp&GscQXR^RMPW]3UV]YS]@[RZ7^[]IUW?UdSua30?30g>S7'nxm"h gbz-gim'Drd~RY]_QLWV^3ZW^XT\CZ][7_\\JTX=VeTtb2?>01`?P6(o{l%~k!hcy,`hn~(EqeySZ\PPOVQ_3[X_[U[BY\T7\][KWY3WfUsc1>112a8Q5)`zo$yj"ilx/aoo})JpfxT[_Q_NUPX3XYPZVZEX_U7]^ZLVZ5XgVrd0=0>3b9V4*aun'xm#jmw.bnh|*Kg{U\^R^ATSY;YZQUWYD_^V7R_YMQ[7YhWqe7<3?<d:W3+bta&{l$knv!cmi{+H~hzV]YS]@[RZ;^[RTXXG^YW<>R_YMQ[4YhWqe7<3?<1:W3+bta&{l$knv!cmi{+WBXXG^YW=SPRE]SJQT\9TUSC_Q85^m05>S7'nxm"h gbz-gim'[NT\CZ][0_\VAYWF]XP>PQWOS]40Zi492_;#j|i.sd,cf~)keas#_JPPOVQ_7[XZMU[BY\T3\][KWY0;Ve8=6[?/fpe*w`(ojr%oaew/SF\TKRUS:WT^IQ_NUPX0XY_G[U<>Ra<1:W3+bta&{l$knv!cmi{+WBXXG^YW9SPRE]SJQT\=TUSC_Q81^m05>S7'nxm"h gbz-gim'[NT\CZ][4_\VAYWF]XP:PQWOS]44Zi492_;#j|i.sd,cf~)keas#_JPPOVQ_3[XZMU[BY\T7\][KWY11Ve8=6[?/fpe*w`(ojr%oaew/SF\TKRUS>WT^IQ_NUPX<XY_G[U=4Ra<1:W3+bta&{l$knv!cmi{+WBXXG^YW5SPRE]SJQT\1TUSC_Q97^m06>S7'nxm"h gbz-gim'[NT\CZ][8_\VAYWF]XP==SPXNP\23Yh;81^<"i}f/pe+be&jf`t"Y]_QLWV^6ZW^XT\CZ][0_\\JTX99Ud?=5Z0.eqb+ta'nis"nbdx.UQ[UHSZR;VSZ\PPOVQ_7[XPFXT5Ra<0:W3+bta&{l$knv!cmi{+RTXXG^YW?SPWS]SJQT\;TUSC_Q7_n13?P6(o{l%~k!hcy,`hn~(_[U[BY\T3\]TVZVI\[Q?QRV@R^5\k66<]9%l~k }f.e`|+ekcq%\^R^ATSY7YZQUWYD_^V;R_YMQ[3Yh;91^<"i}f/pe+be&jf`t"Y]_QLWV^3ZW^XT\CZ][7_\\JTX=Ve8<6[?/fpe*w`(ojr%oaew/VP\TKRUS?WT[_Q_NUPX3XY_G[U?Sb=?;T2,cw`)zo%lou lljz,SWYWF]XP;PQXR^RMPW]?UVRD^R=Po228Q5)`zo$yj"ilx/aoo})PZVZEX_U7]^UQ[UHSZR3VSUA]_3]l74=R8&myj#|i/fa{*fjlp&]YS]@[RZ;^[RTXXG^YW<>R_YMQ[4Yh:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf5:5>?5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1??>338Q5)`zo$yj"ilx/aoo})ulVzexQmio>2:77<]9%l~k }f.e`|+ekcq%yhR~ats]amk:56;;0Y=!hrg,qb*adp'iggu!}d^rmpwYeag682??4U1-dvc(un&mht#mcky-q`Zvi|{Uiec2;>338Q5)`zo$yj"ilx/aoo})ulVzexQmio>6:77<]9%l~k }f.e`|+ekcq%yhR~ats]amk:16;;0Y=!hrg,qb*adp'iggu!}d^rmpwYeag6<2??4U1-dvc(un&mht#mcky-q`Zvi|{Uiec27>338Q5)`zo$yj"ilx/aoo})ulVzexQmio>::76<]9%l~k }f.e`|+ekcq%yhR~ats]amkY7:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV;9=6[?/fpe*w`(ojr%oaew/sf\tkruWkceS<>=0:W3+bta&{l$knv!cmi{+wbXxg~ySoga_303?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\776<]9%l~k }f.e`|+ekcq%yhR~ats]amkY3:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV?9<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS;<?;T2,cw`)zo%lou lljz,vaYwf}xTnd`P7328Q5)`zo$yj"ilx/aoo})ulVzexQmio];65=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ?582_;#j|i.sd,cf~)keas#jPpovq[be;878:7X> gsd-vc)`kq$h`fv re]sjqtXoj6:<3<?;T2,cw`)zo%lou lljz,vaYwf}xTkn2>>328Q5)`zo$yj"ilx/aoo})ulVzexQhc=0=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`868582_;#j|i.sd,cf~)keas#jPpovq[be;<78;7X> gsd-vc)`kq$h`fv re]sjqtXoj6>2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo181219V4*aun'xm#jmw.bnh|*tcWyd~Ril<6<14>S7'nxm"h gbz-gim'{nT|cz}_fa?<;473\:$kh!rg-dg}(ddbr$~iQnup\cf:>68l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV::j6[?/fpe*w`(ojr%oaew/sf\tkruWniT=?>4U1-dvc(un&mht#mcky-q`Zvi|{UloR??1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_33e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]05c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[17a3\:$kh!rg-dg}(ddbr$~iQnup\cfY29o1^<"i}f/pe+be&jf`t"|k_qlwvZadW?;m7X> gsd-vc)`kq$h`fv re]sjqtXojU<=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS5?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ6279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:76;=0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi311<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo5;5>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>1:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm7?3<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8185>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1;1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:16;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi37?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4149:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=;=60=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnU;>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]263=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnU:<?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\673<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT??;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\073<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT9?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\273<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT;?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\<73<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT5?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:76;k0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>24;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?31?0:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;7>3<6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7;;7827X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3?0;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?35?0:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;7:3<6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7;?7827X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3?<;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?39?1b?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;P==SPrdfvg`Yg{U:4Ra<b:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6S8:VSkkubg\|jtX91Ud=>o4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4]68TUyii{le^zlvZ7>Wf9i7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3X55[Xzln~ohQwos]2=Zi6<91^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1Z33YZtbl|inSua}_322[}i;87;8m6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2_46ZW{ooynkPxnp\65Yh<91^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1Z33YZtbl|inSua}_332[}i;87;8m6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2_46ZW{ooynkPxnp\64Yh<91^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1Z33YZtbl|inSua}_302[}i;87;8m6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2_46ZW{ooynkPxnp\67Yh;o1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1Z33YZtbl|inSua}_312[}i;87>87X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3X55[Xzln~ohQwos]174Yg5:5S^Y?3`9V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc9R;;QR|jdtaf[}iuW;9Tc>h4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4]68TUyii{le^zlvZ439Vrd0=0;3:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6S8:VSkkubg\|jtX:=;Ttb2?>^QT46g<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<U>0\]qaasdmVrd~R<;_n1e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;P==SPrdfvg`Yg{U99<Qwo=2=06=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=V??]^pf`pebWqeyS?;>_ym?4;YT_99j7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3X55[Xzln~ohQwos]11Zi4n2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj>[02^[wcc}joTtb|P273\|j:76=90Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0Y24XYummhiRv`r^055Z~h494T_Z><a:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6S8:VSkkubg\|jtX:?Ud?k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5^77UVxnhxmj_ymq[716Wqe7<3:<;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7\99WT~hjzcd]{kwY5?8Usc1>1_RU37d=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=V??]^pf`pebWqeyS?9Po3:8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8U;>55Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5Z7512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj>_021<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S?<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X;;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]76==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R;=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W?837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\37><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<Q7299V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc9V39=6[?/fpe*w`(ojr%oaew/vp\tkruWkce0=0=2:W3+bta&{l$knv!cmi{+rtXxg~ySoga<02=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj979:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf585><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1=1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=6=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj939:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf5<5><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb191209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=:=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj9?9:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV:9<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS<<>;T2,cw`)zo%lou lljz,swYwf}xTnd`P1103?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\676<]9%l~k }f.e`|+ekcq%|~R~ats]amkY4:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV>9<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS8<?;T2,cw`)zo%lou lljz,swYwf}xTnd`P6328Q5)`zo$yj"ilx/aoo})pzVzexQmio]465=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ>582_;#j|i.sd,cf~)keas#z|Ppovq[goiW08;7X> gsd-vc)`kq$h`fv ws]sjqtXoj6;2??4U1-dvc(un&mht#mcky-tvZvi|{Ulo1??>328Q5)`zo$yj"ilx/aoo})pzVzexQhc=3=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`878582_;#j|i.sd,cf~)keas#z|Ppovq[be;;78;7X> gsd-vc)`kq$h`fv ws]sjqtXoj6?2?>4U1-dvc(un&mht#mcky-tvZvi|{Ulo1;1219V4*aun'xm#jmw.bnh|*quWyd~Ril<7<14>S7'nxm"h gbz-gim'~xT|cz}_fa?3;473\:$kh!rg-dg}(ddbr${Qnup\cf:?6;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k535=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS=?i;T2,cw`)zo%lou lljz,swYwf}xTknQ>219V4*aun'xm#jmw.bnh|*quWyd~Ril_022b>S7'nxm"h gbz-gim'~xT|cz}_fa\64`<]9%l~k }f.e`|+ekcq%|~R~ats]dgZ56n2_;#j|i.sd,cf~)keas#z|Ppovq[beX<8l0Y=!hrg,qb*adp'iggu!xr^rmpwY`kV?:j6[?/fpe*w`(ojr%oaew/vp\tkruWniT:<h4U1-dvc(un&mht#mcky-tvZvi|{UloR9>f:W3+bta&{l$knv!cmi{+rtXxg~ySjmP80d8Q5)`zo$yj"ilx/aoo})pzVzexQhc^;12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5:5>:5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>24;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol0<0=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc949:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij2<>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;<78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<4<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5<5>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>4:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm743<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8<85=2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkR>=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZ75>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkR??249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY5:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ<249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY3:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ:249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY1:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ8249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY?:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ6289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95:5>l5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59776;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>2:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2=>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8682?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:36;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>6:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<29>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86<2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:?6;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>::6`<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<U>0\]qaasdmVrd~R??1^zl8583;2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>[02^[wcc}joTtb|P113\|j:76VY\<>o4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4]68TUyii{le^zlvZ77Wf9m7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3X55[Xzln~ohQwos]254Yg5:58>5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5^77UVxnhxmj_ymq[476Wqe7<3Q\W11b?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;P==SPrdfvg`Yg{U:=Ra<f:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6S8:VSkkubg\|jtX9;;Ttb2?>518Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8Q:<PQ}eew`aZ~hzV;9=Rv`<1<\WR64i2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>[02^[wcc}joTtb|P13]l7c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=V??]^pf`pebWqeyS<=>_ym?4;243\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?T11_\v`brklUscQ>30]{k969WZ];?l5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5^77UVxnhxmj_ymq[45Xg:30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0Y24XYummhiRv`r^6\k6g<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<U>0\]qaasdmVrd~R:Po01:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;P==SPrdfvg`Yg{U>Sb=n;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7\99WT~hjzcd]{kwY2Wf;8j6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2_46ZW{ooynkPxnp\24Yg5:5=>74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4]68TUyii{le^zlvZ0Xg:l0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0Y24XYummhiRv`r^52[}i;87;856[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2_46ZW{ooynkPxnp\3Zi4n2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>[02^[wcc}joTtb|P80]{k9699:30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0Y24XYummhiRv`r^:\k6c<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<U>0\]qaasdmVrd~R7>_ym?4;253\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?T11_\v`brklUscQ61^zl858X[^:856[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2_46ZW{ooynkPxnp\=Zi502_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>_10;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;T=?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4Y68;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]16==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R==8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W=837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\17><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<Q9299V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9V=946[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2[=4?3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?P95`8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NeabXl`lmSz|PreY25XY@FMU2>RaPaef\7ZIR\Vir0<0;d:W3+bta&{l$ka>!re-dv4(`zmi9"jl/Lcg`ZbnnoU|~R|k[03^[BHCW08TcRokd^1\KPRXd|~7==0;c:W3+bta&{l$ka>!re-dv4(`zmi9"jl/Lcg`ZbnnoU|~R|k[03^[BHCW08TcRokd^1\KPRXd|~7>3:l;T2,cw`)zo%l`= }d.eq5+aulj8%~im M`fg[aoanV}ySjT10_\CKBX1;UdSljk_2]LQQYk}}6829m4U1-dvc(un&mg<#|k/fp2*btck;$yhn!Baef\`l`aW~xT~iU>1\]DJAY>:VeTmijP3^MVPZjr|5>58n5Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"Cnde]gmc`X{UyhV?>]^EM@Z?5WfUjhiQ<_NWW[iss4<4?o6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@okd^fjbcYpzVxoW<?R_FLG[<4XgVkohR=POTV\hpr;>7>h7X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$Aljk_ekebZquW{nP=<SPGOF\=7YhWhnoS>Q@UU]oqq:06=i0Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FmijPdhde[rtXzmQ:=PQHNE]:6ZiXimnT?RAZT^nvp9>9<j1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&GjhiQkigd\swYulR;:QRIAD^;1[jYflmU8SB[[_mww8<83?2_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dg~tRjffg]tvZtcS8;VSJ@K_80\kZkrpV?TCXZ>1558Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-Nip~Xl`lmSz|PreY25XY@FMU2>RaPmtz\1ZIR\=;?;6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@czx^fjbcYpzVxoW<?R_FLG[<4XgVg~tR;POTV6511<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)Je|rThdhi_vp\va]69TULBIQ62^m\ip~X=VE^X;?<8:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[f;87937X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pcx>2:6><]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)J{|hThdhi_vp\vaYseyUhu1<1399V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.OpqgYcaolT{Q}d^vntZe~4:4846[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_b{?0;5?3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzTot2:>2:8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NwpdXl`lmSz|Pre]wiuYdq5<5?55Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"C|uc]gmc`X{UyhRzbp^az828402_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Snw38?1;?P6(o{l%~k!hl1,q`*au9'myhn<!rea,IvseWmcmjRy}_sf\phvXkp622>74U1-dvc(un&mg<#|k/fp2*btck;$yhn!Bst`\`l`aW~xT~iQ{mq]oqq:76:k0Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}Qcuu>24;5>3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzT`xz31?1:?P6(o{l%~k!hl1,q`*au9'myhn<!rea,IvseWmcmjRy}_sf\phvXd|~7>3=6;T2,cw`)zo%l`= }d.eq5+aulj8%~im Mrwa[aoanV}ySjPtlr\hpr;;7927X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pltv?0;5>3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzT`xz35?1:?P6(o{l%~k!hl1,q`*au9'myhn<!rea,IvseWmcmjRy}_sf\phvXd|~7:3=6;T2,cw`)zo%l`= }d.eq5+aulj8%~im Mrwa[aoanV}ySjPtlr\hpr;?7927X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pltv?<;5>3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzT`xz39?1:?P6(o{l%~k!hl1,q`*au9'myhn<!rea,IvseWmcmjRy}_sf\phvXpfx7<3=n;T2,cw`)zo%l`= }d.eq5+aulj8%~im Mrwa[aoanV}ySjPtlr\|jt;994856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_ymq848412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sua}<3<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWqey0>0<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[}iu4=4856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_ymq808412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sua}<7<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWqey0:0<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[}iu414856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_ymq8<83;2_;#j|i.sd,ci6)zm%l~< hrea1*wbd'mcmjRy}_sfX54[XOGNT5?Q`_lw{[0YH]]6;29:4U1-dvc(un&mg<#|k/fp2*btck;$yhn!kigd\swYulR;:QRIAD^;1[jYj}qU>SB[[<02=03=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*bnnoU|~R|k[03^[BHCW08TcRczx^7\KPR;9948=9o4U1-dvc(un&mg<#|k/fp2*btck;$yhn!kigd\swYulR;:QRIAD^;1[jYj}qU>SB[[<02=74YT_8>37X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$hdhi_vp\va]69TULBIQ62^m\ip~X=VE^X1??>^QT41?<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)caolT{Q}dZ32YZAILV39SbQbuy]6[JSS48:5Sojk4568Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-gmc`X{UyhV?>]^EM@Z?5WfUfyuQ:_NWW8479<11^<"i}f/pe+bj7&{n$k?!gsf`6+tck&nbjkQxr^pg_47ZWNDOS4<Po^ov|Z3XG\^7=<0PSV277>S7'nxm"h gm2-va)`z8$l~im=.sf`+aoanV}ySjT10_\CKBX1;UdS`{w_4]LQQ:66=90Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%oekhPws]q`^76UVMEHR7=_n]nq}Y2WF__0?0;3:W3+bta&{l$ka>!re-dv4(`zmi9"jl/ekebZquW{nP=<SPGOF\=7YhWdsS8Q@UU>0:15<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)caolT{Q}dZ32YZAILV39SbQbuy]6[JSS4=4?86[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#igif^uq[wb\98WTKCJP93]l[hsW<UDYY2;>060?P6(o{l%~k!hl1,q`*au9'myhn<!rea,`l`aW~xT~iU>1\]DJAY>:VeTaxvP5^MVP939<=1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&nbjkQxr^pg_47ZWNDOS4<Po^ov|Z3XG\^793?;3:W3+bta&{l$ka>!re-dv4(`zmi9"jl/ekebZquW{nP=<SPGOF\=7YhWdsS8Q@UU>5:12<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)caolT{Q}dZ32YZAILV39SbQbuy]6[JSS4?4:8>5Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"jffg]tvZtcS8;VSJ@K_80\kZkrpV?TCXZ37?67?P6(o{l%~k!hl1,q`*au9'myhn<!rea,`l`aW~xT~iU>1\]DJAY>:VeTaxvP5^MVP9199=90Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%oekhPws]q`^76UVMEHR7=_n]nq}Y2WF__050;7:W3+bta&{l$ka>!re-dv4(`zmi9"jl/ekebZquW{nP=<SPGOF\=7YhWdsS8Q@UU>;:ZUP8=90Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%oekhPws]q`^76UVMEHR7=_n]nq}Y2WF__040;7:W3+bta&{l$ka>!re-dv4(`zmi9"jl/ekebZquW{nP=<SPGOF\=7YhWdsS8Q@UU>::ZUP9::0Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%oekhPws]q`Zrjx5:5>45Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"|k_ea\m969:h1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi=33:7g<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)ulVnhSd2>1?0:?P6(o{l%~k!hl1,q`*au9'myhn<!rea,vaYckVc7=3<6;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZo;:7827X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$~iQkc^k?7;4>3\:$kh!rg-dh5(ul&my=#i}db0-vae(zmUooRg34?0:?P6(o{l%~k!hl1,q`*au9'myhn<!rea,vaYckVc793<6;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZo;>7827X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$~iQkc^k?3;4>3\:$kh!rg-dh5(ul&my=#i}db0-vae(zmUooRg38?0:?P6(o{l%~k!hl1,q`*au9'myhn<!rea,vaYckVc753<7;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZoX8;20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]26<=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeR??289V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.pg[aeXaV;:>55Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"|k_ea\mZ4502_;#j|i.sd,ci6)zm%l~< hrea1*wbd'{nThnQf_20;?P6(o{l%~k!hl1,q`*au9'myhn<!rea,vaYckVcT8?64U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lY2:11^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi^41<>S7'nxm"h gm2-va)`z8$l~im=.sf`+wbXljUbS:<7;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZoX0;20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]:75=R8&myj#|i/fn3*wb(o{;%~kyit.Onq}YUIDUYHRKA_GUEP473<2_;#j|i.sd,ci6)zm%l~< }fvdw+HkrpVmdeciPelrw}Z`pn}U[[_Q;1^m\IP^X=>Ud=<<6;T2,cw`)zo%l`= }d.eq5+tao~$^LCPRDELQQYBF8987X> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXNZGTJKj>379V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}kiRH\M^DE`4+Nf:=0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`YA[DUMJi?"Io307>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_GQN[C@c::<0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`YA[DUMJi<"Io14?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPFRO\BCb5%@d:>55Z0.eqb+ta'nf;"j gs3-vcqa|&of|ywPfvdw[cd5?2_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPi2f8Q5)`zo$yj"ic0/pg+bt6&{l|jy!hohld[`kw|pUm{kzPPVP\04YhWD_SS89Po378Q5)`zo$yj"ic0/pg+bt6&{l|jy!zsdp\rdjnl;o0Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&mfyu laspzj`r;878n7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%laxv!c`pq}kcs4849i6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$k`{w.bcqv|hb|585>h5Z0.eqb+ta'nf;"j gscp*wus{&i;#jczx/abvwim}682?k4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"ibuy,`ewt~fl~783<i;T2,cw`)zo%l`= }d.eqev(u{}y$o=!hmtz-ch]7U'mf=#c>2g9V4*aun'xm#jb?.sf,cwgt&{y"m?/fov|+ajS8W%k`}!mr0e?P6(o{l%~k!hl1,q`*auiz$yy} c1-dip~)odQ9Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'mfW>S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g5)`e|r%k`U;]/enw+kt:o1^<"i}f/pe+bj7&{n$ko|.sqww*e7'ng~t#ib[4_-chu)ez887X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1>1259V4*aun'xm#jb?.sf,cwgt&{y"m?/w3?4;75;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(~86:2?:4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"x><0<266=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;:78?7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1<11318Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t28685<2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(~8682<<<;T2,cw`)zo%l`= }d.eqev(u{}y$o=!y1=6=61=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;<7;9?6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z<2:>368Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t28086:l1^<"i}f/pe+bj7&{n$ko|.sqww*e6'ng~t#mnrs{maq:76;o0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&mfyu laspzj`r;978n7X> gsd-vc)`d9$yh"i}ar,qwqu(k8%laxv!c`pq}kcs4;49i6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$k`{w.bcqv|hb|595>h5Z0.eqb+ta'nf;"j gscp*wus{&i:#jczx/abvwim}6?2?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h="ibuy,di^6Z&ng:"`?=f:W3+bta&{l$ka>!re-dvdu)zz~x#n? glw{*bk\9T$la~ bs3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR8V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP?P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`5*aj}q$laV:R.fop*hu5n2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(ods"jcT5\,div(j{;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:0=0=4:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0>3:4443\:$kh!rg-dh5(ul&mym~ }suq,g4)q95;5>95Z0.eqb+ta'nf;"j gscp*wus{&i:#{?31?317>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:56;>0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:0?0>229V4*aun'xm#jb?.sf,cwgt&{y"m>/w3?7;433\:$kh!rg-dh5(ul&mym~ }suq,g4)q9595=?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><5<10>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:368887X> gsd-vc)`d9$yh"i}ar,qwqu(k8%}=1;1259V4*aun'xm#jb?.sf,cwgt&{y"m>/w3?1;7582_;#j|i.sd,ci6)zm%l~l}!rrvp+fijx98o7X> gsd-vc)`d9$yh"i}ar,qwqu(kfg{<Rm`mq3\KWY1Wf8n7X> gsd-vc)`d9$yh"i}ar,qwqu(kfg{<Rm`mq3\KWY1Wf;9<6[?/fpe*w`(oe:%~i!hr`q-vvrt'jef|<<6;T2,cw`)zo%l`= }d.eqev(u{}y$~lcPelrw}Z`eW`9m7X> gsd-vc)`d9$yh"|nup,IhsWni;"naznuY24XY@FMU<5RaPmtz\6ZIR\8::?k5Z0.eqb+ta'nf;"j rqlwv*Kj}qUlo= lotlw_46ZWNDOS:7Po^ov|Z4XG\^:=<:;;T2,cw`)zo%l`= }d.psjqt(EdsSjm?.bmvjq]68TULBIQ89^m\ip~X:VE^X<?PIOT\46b<]9%l~k }f.eo4+tc'{zex!Bmtz\cf6)kfexV??]^EM@Z1>WfUfyuQ=_NWW617<]9%l~k }f.eo4+tc'{zex!Bmtz\cf6)kfexV??]^EM@Z1>WfUfyuQ=_NWW6ZUP8:o0Y=!hrg,qb*ak8'xo#~ats-Nip~Xoj:%ob{atZ33YZAILV=2SbQbuy]1[JSS;89n7X> gsd-vc)`d9$yh"|nup,IhsWni;"naznuY24XY@FMU<5RaPmtz\6ZIR\=;8j6[?/fpe*w`(oe:%~i!}povq+HkrpVmh<#m`uovX55[XOGNT;4Q`_lw{[7YH]]?:=>k4U1-dvc(un&mg<#|k/srmpw)Je|rTkn>!cnwmp^77UVMEHR96_n]nq}Y5WF__9?=j;T2,cw`)zo%l`= }d.psjqt(EdsSjm?.bmvjq]68TULBIQ89^m\ip~X:VE^X;?<e:W3+bta&{l$ka>!re-qtkru'Dg~tRil0/alqkr\99WTKCJP78]l[hsW;UDYY9>3g9V4*aun'xm#jb?.sf,vuhsz&GfyuQhc1,`kphsS8:VSJ@K_6;\kZkrpV8TCXZ7101f?P6(o{l%~k!hl1,q`*twf}x$A`{w_fa3*firf}Q:<PQHNE]4=ZiXe|rT>RAZT900a>S7'nxm"h gm2-va)uxg~y#@czx^e`4+eh}g~P==SPGOF\3<YhWdsS?Q@UU;27c=R8&myj#|i/fn3*wb(zyd~"Cbuy]dg5(dg|dW<>R_FLG[2?XgVg~tR<POTV:647f3\:$kh!rg-dh5(ul&x{by| N062e>S7'nxm"h gm2-va)uxg~y#C?6189V4*aun'xm#jb?.sf,vuhsz&D?>>5Z0.eqb+ta'nf;"j rqlwv*ad8'idycz30?07?P6(o{l%~k!hl1,q`*twf}x$kn>!cnwmp9776;90Y=!hrg,qb*ak8'xo#~ats-dg5(dg|d0<0=3:W3+bta&{l$ka>!re-qtkru'ni;"naznu>1:75<]9%l~k }f.eo4+tc'{zex!hc1,`kphs4:49?6[?/fpe*w`(oe:%~i!}povq+be7&je~by2;>318Q5)`zo$yj"ic0/pg+wvi|{%lo= lotlw8085;2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}6=2?=4U1-dvc(un&mg<#|k/srmpw)`k9$hcx`{<6<17>S7'nxm"h gm2-va)uxg~y#jm?.bmvjq:?6;90Y=!hrg,qb*ak8'xo#~ats-dg5(dg|d040<a:W3+bta&{l$ka>!re-qtkru'ni;"naznuY24XY@FMU<5RaPmtz\6ZIR\5:5?o5Z0.eqb+ta'nf;"j rqlwv*ad8'idyczT11_\CKBX?0UdS`{w_3]LQQ:6879j7X> gsd-vc)`d9$yh"|nup,cf6)kfexV??]^EM@Z1>WfUfyuQ=_NWW8484i2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Q:<PQHNE]4=ZiXe|rT>RAZT=0=7d=R8&myj#|i/fn3*wb(zyd~"il0/alqkr\99WTKCJP78]l[hsW;UDYY2<>2c8Q5)`zo$yj"ic0/pg+wvi|{%lo= lotlw_46ZWNDOS:7Po^ov|Z4XG\^783=n;T2,cw`)zo%l`= }d.psjqt(oj:%ob{atZ33YZAILV=2SbQbuy]1[JSS4<48m6[?/fpe*w`(oe:%~i!}povq+be7&je~byU>0\]DJAY01VeTaxvP2^MVP909;h1^<"i}f/pe+bj7&{n$~}`{r.e`4+eh}g~P==SPGOF\3<YhWdsS?Q@UU>4:6g<]9%l~k }f.eo4+tc'{zex!hc1,`kphsS8:VSJ@K_6;\kZkrpV8TCXZ38?1b?P6(o{l%~k!hl1,q`*twf}x$kn>!cnwmp^77UVMEHR96_n]nq}Y5WF__040=2:W3+bta&{l$ka>!re-qtkru'ni;"naznu]367=R8&myj#|i/fn3*wb(zyd~"il0/alqkrX9;90Y=!hrg,qb*ak8'xo#~ats-dg5(dg|dS<>=2:W3+bta&{l$ka>!re-qtkru'ni;"naznu]167=R8&myj#|i/fn3*wb(zyd~"il0/alqkrX;;80Y=!hrg,qb*ak8'xo#~ats-dg5(dg|dS9<=;T2,cw`)zo%l`= }d.psjqt(oj:%ob{at^716>S7'nxm"h gm2-va)uxg~y#jm?.bmvjqY1:;1^<"i}f/pe+bj7&{n$~}`{r.e`4+eh}g~T;?<4U1-dvc(un&mg<#|k/srmpw)`k9$hcx`{_901?P6(o{l%~k!hl1,q`*twf}x$kn>!cnwmpZ?5>2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Uo=1>1269V4*aun'xm#jb?.sf,vuhsz&mh<#m`uov\`4:6878=7X> gsd-vc)`d9$yh"|nup,cf6)kfexRj><0<12>S7'nxm"h gm2-va)uxg~y#jm?.bmvjqYc9585>;5Z0.eqb+ta'nf;"j rqlwv*ad8'idyczPd0>0:70<]9%l~k }f.eo4+tc'{zex!hc1,`kphsWm;783<9;T2,cw`)zo%l`= }d.psjqt(oj:%ob{at^f28085>2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Uo=181279V4*aun'xm#jb?.sf,vuhsz&mh<#m`uov\`4:06;<0Y=!hrg,qb*ak8'xo#~ats-dg5(dg|dSi?38?05?P6(o{l%~k!hl1,q`*twf}x$kn>!cnwmpZb6404996[?/fpe*w`(oe:%~i!}povq+be7&je~byQk1^211>S7'nxm"h gm2-va)uxg~y#jm?.bmvjqYc9V;9:6[?/fpe*w`(oe:%~i!}povq+be7&je~byQk1^3360=R8&myj#|i/fn3*wb(zyd~"il0/alqkrXl8U9>85Z0.eqb+ta'nf;"j rqlwv*ad8'idyczPd0]060=R8&myj#|i/fn3*wb(zyd~"il0/alqkrXl8U?>85Z0.eqb+ta'nf;"j rqlwv*ad8'idyczPd0]660=R8&myj#|i/fn3*wb(zyd~"il0/alqkrXl8U=>85Z0.eqb+ta'nf;"j rqlwv*ad8'idyczPd0]460=R8&myj#|i/fn3*wb(zyd~"il0/alqkrXl8U3>85Z0.eqb+ta'nf;"j rqlwv*ad8'idyczPd0]:7<=R8&myj#|i/fn3*rt(o~kx"z}{s.Onq}Ydgdz:SJ@K_84\kZKRPV=8Sb?>2d9V4*aun'xm#jb?.vp,crgt&~y"m>/fov|+efz{seiy2?>3g8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(di{xrbhz31?0f?P6(o{l%~k!hl1,tv*apiz$|y} c0-dip~)khxyuck{<3<1a>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&jky~t`jt=1=6`=R8&myj#|i/fn3*rt(o~kx"z}{s.a2+bkrp'ij~waeu>7:7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV>R.fo2*h75n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT1\,div(j{;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ0^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX7X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^2Z&ngx"`}=f:W3+bta&{l$ka>!ws-dsdu)z~x#n? glw{*bk\=T$la~ bs318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28585<2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~86;2<<<;T2,cw`)zo%l`= xr.etev(p{}y$o<!y1=3=61=R8&myj#|i/fn3*rt(o~kx"z}{s.a2+s7;97;9?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2=>368Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28786::1^<"i}f/pe+bj7&~x$kzo|.vqww*e6';7?3<;;T2,cw`)zo%l`= xr.etev(p{}y$o<!y1=1=575<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64=4986[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2;>000?P6(o{l%~k!hl1,tv*apiz$|y} c0-u5939:=1^<"i}f/pe+bj7&~x$kzo|.vqww*e6';793?=e:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*fguzpdnx1>12d9V4*aun'xm#jb?.vp,crgt&~y"m=/fov|+efz{seiy2>>3g8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(di{xrbhz32?0f?P6(o{l%~k!hl1,tv*apiz$|y} c3-dip~)khxyuck{<2<1a>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&jky~t`jt=6=6c=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+bkrp'mfW=S!gl3-i44a3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)`e|r%k`U>]/enw+kt:o1^<"i}f/pe+bj7&~x$kzo|.vqww*e5'ng~t#ib[3_-chu)ez8m7X> gsd-vc)`d9$|~"ixar,twqu(k;%laxv!glY0Y+aj{'gx>k5Z0.eqb+ta'nf;"z| gvcp*rus{&i9#jczx/en_1[)ody%a~<i;T2,cw`)zo%l`= xr.etev(p{}y$o?!hmtz-ch]2U'mf#c|229V4*aun'xm#jb?.vp,crgt&~y"m=/w3?4;433\:$kh!rg-dh5(pz&m|m~ xsuq,g7)q95:5=?=4U1-dvc(un&mg<#y}/fubw+qt|z%h>"x><0<10>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:668887X> gsd-vc)`d9$|~"ixar,twqu(k;%}=1<1259V4*aun'xm#jb?.vp,crgt&~y"m=/w3?6;75;2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8682?:4U1-dvc(un&mg<#y}/fubw+qt|z%h>"x><2<266=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+s7;<78?7X> gsd-vc)`d9$|~"ixar,twqu(k;%}=1:11318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28085<2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~86>2<<?;T2,cw`)zo%l`= xr.etev(p{}y$obc1208Q5)`zo$yj"ic0/uq+bqf{'}xx~!lolr2[BHCW0<TcRCZX^50[j473\:$kh!rg-dh5(pz&m|m~ xsuq,gjkw:;20Y=!hrg,qb*ak8'}y#jyns/uppv)uidUmyabPfc]j60=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZ`rdeUb8o5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^fjbcYpzVxoW<?R_FLG[<>XgVkohR:POTV\g|:687>o7X> gsd-vc)`d9$|~"ixdb3-saebp}%FmijPdhde[rtXzmQ:=PQHNE]:<ZiXimnT8RAZT^az846998>j7X> gsd-vc)`d9$|~"ixdb3-saebp}%FmijPdhde[rtXzmQ:=PQHNE]:<ZiXimnT8RAZT^az8483k2_;#j|i.sd,ci6){%l{im>.vf`a}r(EhnoSigif^uq[wb\98WTKCJP99]l[dbcW=UDYYQcuu>24;2e3\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnThdhi_vp\va]69TULBIQ68^m\eabX<VE^XRbzt=0=0g=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HgclVnbjkQxr^pg_47ZWNDOS46Po^cg`Z2XG\^T`xz33?6a?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NeabXl`lmSz|PreY25XY@FMU24RaPaef\0ZIR\Vf~x1:14c9V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZbnnoU|~R|k[03^[BHCW02TcRokd^6\KPRXd|~793:m;T2,cw`)zo%l`= xr.et`f7)minty!Baef\`l`aW~xT~iU>1\]DJAY>0VeTmijP4^MVPZjr|5<58o5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^fjbcYpzVxoW<?R_FLG[<>XgVkohR:POTV\hpr;?7>i7X> gsd-vc)`d9$|~"ixdb3-saebp}%FmijPdhde[rtXzmQ:=PQHNE]:<ZiXimnT8RAZT^nvp9>9<k1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRjffg]tvZtcS8;VSJ@K_8:\kZgclV>TCXZPltv?=;2b3\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnThdhi_vp\va]69TULBIQ68^m\eabX<VE^XRv`r=33:472:2_;#j|i.sd,ci6){%l{im>.vf`a}r(EhnoSigif^uq[wb\98WTKCJP99]l[dbcW=UDYYQwos>24;76WZ];9>5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^fjbcYpzVxoW<?R_FLG[<>XgVkohR:POTV\|jt;97;:SD@Y_16g?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NeabXl`lmSz|PreY25XY@FMU24RaPaef\0ZIR\Vrd~1<1106g?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NeabXl`lmSz|PreY25XY@FMU24RaPaef\0ZIR\Vrd~1=1106f?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NeabXl`lmSz|PreY25XY@FMU24RaPaef\0ZIR\Vrd~1:110366>S7'nxm"h gm2-sw)`mi:"zjleyv,IdbcWmcmjRy}_sfX54[XOGNT55Q`_`fg[1YH]]Usc2;>032[VQ7<m1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRjffg]tvZtcS8;VSJ@K_8:\kZgclV>TCXZPxnp?0;75<m1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRjffg]tvZtcS8;VSJ@K_8:\kZgclV>TCXZPxnp?1;76<m1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRjffg]tvZtcS8;VSJ@K_8:\kZgclV>TCXZPxnp?2;76<m1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRjffg]tvZtcS8;VSJ@K_8:\kZgclV>TCXZPxnp?3;76<m1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRjffg]tvZtcS8;VSJ@K_8:\kZgclV>TCXZPxnp?<;76<m1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRjffg]tvZtcS8;VSJ@K_8:\kZgclV>TCXZPxnp?=;76=81^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRjffg]tvZtcS8;VSJ@K_8:\kZgclV>TCXZPxnp?=;76WZ];?:5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@}zb^fjbcYpzVxoSyc_b{?4;503\:$kh!rg-dh5(pz&m|hn?!weaf|q)J{|hThdhi_vp\vaYseyUhu1?1369V4*aun'xm#jb?.vp,crbd9'}oohv{/LqvfZbnnoU|~R|k_uos[f;:79<7X> gsd-vc)`d9$|~"ixdb3-saebp}%FxlPdhde[rtXzmUa}Qly=1=72=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HurjVnbjkQxr^pg[qkwWjs783=8;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]`}939;>1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'Dy~nRjffg]tvZtcW}g{Snw36?14?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NwpdXl`lmSz|Pre]wiuYdq5=5?:5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@}zb^fjbcYpzVxoSyc_b{?<;503\:$kh!rg-dh5(pz&m|hn?!weaf|q)J{|hThdhi_vp\vaYseyUhu171399V4*aun'xm#jb?.vp,crbd9'}oohv{/LqvfZbnnoU|~R|k_uos[iss494856[?/fpe*w`(oe:%{!hwea2*rbdmq~$A~{m_ekebZquW{nTx`~Pltv?558402_;#j|i.sd,ci6){%l{im>.vf`a}r(EziSigif^uq[wbX|dzT`xz31?1;?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NwpdXl`lmSz|Pre]wiuYk}}692>64U1-dvc(un&mg<#y}/fugg4(pljosx"C|uc]gmc`X{UyhRzbp^nvp959;11^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'Dy~nRjffg]tvZtcW}g{Sa{{<5<0<>S7'nxm"h gm2-sw)`mi:"zjleyv,IvseWmcmjRy}_sf\phvXd|~793=7;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]oqq:16:20Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rbzt=5=7==R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HurjVnbjkQxr^pg[qkwWe050<8:W3+bta&{l$ka>!ws-dsae6&~nhiuz Mrwa[aoanV}ySjPtlr\hpr;17937X> gsd-vc)`d9$|~"ixdb3-saebp}%FxlPdhde[rtXzmUa}Qwos>3:6?<]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVrd~1??>2:8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.OpqgYcaolT{Q}d^vntZ~hz5;5?55Z0.eqb+ta'nf;"z| gvf`5+qcklr#@}zb^fjbcYpzVxoSyc_ymq878402_;#j|i.sd,ci6){%l{im>.vf`a}r(EziSigif^uq[wbX|dzTtb|33?1;?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NwpdXl`lmSz|Pre]wiuYg{6?2>64U1-dvc(un&mg<#y}/fugg4(pljosx"C|uc]gmc`X{UyhRzbp^zlv939;11^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'Dy~nRjffg]tvZtcW}g{Sua}<7<0<>S7'nxm"h gm2-sw)`mi:"zjleyv,IvseWmcmjRy}_sf\phvXpfx7;3=7;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]{kw:?6:20Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rv`r=;=65=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+K03;2_;#j|i.sd,ci6){%l{im>.vf`a}r(l`lmSz|PreY25XY@FMU24RaPaef\0ZIR\5;;29<4U1-dvc(un&mg<#y}/fugg4(pljosx"jffg]tvZtcS8;VSJ@K_8:\kZgclV>TCXZ31?61?P6(o{l%~k!hl1,tv*aplj;%{imjxu-gmc`X{UyhV?>]^EM@Z??WfUjhiQ;_NWW8783:2_;#j|i.sd,ci6){%l{im>.vf`a}r(l`lmSz|PreY25XY@FMU24RaPaef\0ZIR\5958?5Z0.eqb+ta'nf;"z| gvf`5+qcklr#igif^uq[wb\98WTKCJP99]l[dbcW=UDYY2;>508Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.fjbcYpzVxoW<?R_FLG[<>XgVkohR:POTV?1;253\:$kh!rg-dh5(pz&m|hn?!weaf|q)caolT{Q}dZ32YZAILV33SbQnde]7[JSS4?4?>6[?/fpe*w`(oe:%{!hwea2*rbdmq~$hdhi_vp\va]69TULBIQ68^m\eabX<VE^X191439V4*aun'xm#jb?.vp,crbd9'}oohv{/ekebZquW{nP=<SPGOF\==YhWhnoS9Q@UU>;:14<]9%l~k }f.eo4+qu'n}oo< xdbg{p*bnnoU|~R|k[03^[BHCW02TcRokd^6\KPR;178m7X> gsd-vc)`d9$|~"ixdb3-saebp}%oekhPws]q`Zrjx5:5?=5Z0.eqb+ta'nf;"z| gvf`5+qcklr#z|Pd`vb[firf}Ub0=0<1:W3+bta&{l$ka>!ws-dsae6&~nhiuz ws]geqgXkfexRg311<05>S7'nxm"h gm2-sw)`mi:"zjleyv,swYci}kTob{at^k?548482_;#j|i.sd,ci6){%l{im>.vf`a}r({UomyoPcnwmpZo;979;7X> gsd-vc)`d9$|~"ixdb3-saebp}%|~Rjnt`]`kphsW`692>>4U1-dvc(un&mg<#y}/fugg4(pljosx"y}_ecweZeh}g~Te1=1319V4*aun'xm#jb?.vp,crbd9'}oohv{/vp\`drfWje~byQf<5<04>S7'nxm"h gm2-sw)`mi:"zjleyv,swYci}kTob{at^k?1;573\:$kh!rg-dh5(pz&m|hn?!weaf|q)pzVnjxlQlotlw[l:16::0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&}ySio{a^alqkrXa5=5?=5Z0.eqb+ta'nf;"z| gvf`5+qcklr#z|Pd`vb[firf}Ub050<0:W3+bta&{l$ka>!ws-dsae6&~nhiuz ws]geqgXkfexRg39?0e?P6(o{l%~k!hl1,tv*aplj;%{imjxu-tvZbf|hUhcx`{_h]36c=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+rtXlh~jSnaznu]j[4573\:$kh!rg-dh5(pz&m|hn?!weaf|q)pzVnjxlQlotlw[lY68::0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&}ySio{a^alqkrXaV;:>k5Z0.eqb+ta'nf;"z| gvf`5+qcklr#z|Pd`vb[firf}UbS?<i;T2,cw`)zo%l`= xr.et`f7)minty!xr^fbpdYdg|dSdQ<2g9V4*aun'xm#jb?.vp,crbd9'}oohv{/vp\`drfWje~byQf_50e?P6(o{l%~k!hl1,tv*aplj;%{imjxu-tvZbf|hUhcx`{_h]66c=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+rtXlh~jSnaznu]j[34a3\:$kh!rg-dh5(pz&m|hn?!weaf|q)pzVnjxlQlotlw[lY0:o1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'~xThlzn_bmvjqYnW18m7X> gsd-vc)`d9$|~"ixdb3-saebp}%|~Rjnt`]`kphsW`U2=i5Z0.eqb+ta'nf;"z| r`o\swYbfVc:895Z0.eqb+ta'nf;"z| wqlwv*Kj}qUlen>!gb2-gjsi|R;;QRIAD^;7[jYj}qU9SB[[11370>S7'nxm"h gm2-sw)pxg~y#@czx^ejg5(`k9$hcx`{[02^[BHCW0>TcRczx^0\KPR698>27X> gsd-vc)`d9$|~"ynup,IhsWnch<#il0/alqkr\99WTKCJP95]l[hsW;UDYY?>_HLU[5253\:$kh!rg-dh5(pz&}{by| Mlw{[bod8'mh<#m`uovX55[XOGNT59Q`_lw{[7YH]]8?:6[?/fpe*w`(oe:%{!xpovq+HkrpVmbo= hc1,`kphsS8:VSJ@K_86\kZkrpV8TCXZ=_RU306=R8&myj#|i/fn3*rt(yd~"Cbuy]dmf6)oj:%ob{atZ33YZAILV3?SbQbuy]1[JSS;8>87X> gsd-vc)`d9$|~"ynup,IhsWnch<#il0/alqkr\99WTKCJP95]l[hsW;UDYY:>459V4*aun'xm#jb?.vp,suhsz&GfyuQhib2-cf6)kfexV??]^EM@Z?3WfUfyuQ=_NWW1473;2_;#j|i.sd,ci6){%||cz}/Lov|Zank9$lo= lotlw_46ZWNDOS4:Po^ov|Z4XG\^>>9=4U1-dvc(un&mg<#y}/vrmpw)Je|rTkdm?.fa3*firf}Q:<PQHNE]:0ZiXe|rT>RAZT7377>S7'nxm"h gm2-sw)pxg~y#@czx^ejg5(`k9$hcx`{[02^[BHCW0>TcRczx^0\KPR09=>0Y=!hrg,qb*ak8'}y#z~ats-Nip~Xo`i;"jm?.bmvjq]68TULBIQ64^m\ip~X:VE^X5?>429V4*aun'xm#jb?.vp,suhsz&GfyuQhib2-cf6)kfexV??]^EM@Z?3WfUfyuQ=_NWW<7243\:$kh!rg-dh5(pz&}{by| Mlw{[bod8'mh<#m`uovX55[XOGNT59Q`_lw{[7YH]]3:895Z0.eqb+ta'nf;"z| wqlwv*Kj}qUlen>!gb2-gjsi|R;;QRIAD^;7[jYj}qU9SB[[9332e>S7'nxm"h gm2-sw)pxg~y#C?<1`9V4*aun'xm#jb?.vp,suhsz&D:4<74U1-dvc(un&mg<#y}/vrmpw)I<;20Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at=2=6<=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|d0<>1299V4*aun'xm#jb?.vp,suhsz&mbo= hc1,`kphs484946[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov?6;4?3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~by2<>3:8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|5>5>55Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw808502_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idycz36?0;?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}6<2?64U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmp9>9:11^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{<8<0b>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~P==SPGOF\=1YhWdsS?Q@UU>3:16<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexV??]^EM@Z?3WfUfyuQ=_NWW8469;o1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{[02^[BHCW0>TcRczx^0\KPR;979m7X> gsd-vc)`d9$|~"ynup,cle7∋"naznuY24XY@FMU28RaPmtz\6ZIR\585?k5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw_46ZWNDOS4:Po^ov|Z4XG\^7?3=i;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjq]68TULBIQ64^m\ip~X:VE^X1:13g9V4*aun'xm#jb?.vp,suhsz&mbo= hc1,`kphsS8:VSJ@K_86\kZkrpV8TCXZ35?1e?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}Q:<PQHNE]:0ZiXe|rT>RAZT=4=7c=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dW<>R_FLG[<2XgVg~tR<POTV?3;5a3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byU>0\]DJAY><VeTaxvP2^MVP9>9;o1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{[02^[BHCW0>TcRczx^0\KPR;178<7X> gsd-vc)`d9$|~"ynup,cle7∋"naznu]362=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dS<<7;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjqY68;=0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^013>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~T??94U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZ25?2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczP5358Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|V<9;6[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov\371<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexR6=7:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkrX1;h0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^f28585k2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczPd0>24;4e3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byQk1=3=6g=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dSi?32?0a?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}Uo=1=12c9V4*aun'xm#jb?.vp,suhsz&mbo= hc1,`kphsWm;783<m;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjqYc95?5>o5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw[a7;>78i7X> gsd-vc)`d9$|~"ynup,cle7∋"naznu]g5919:k1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{_e3?<;4e3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byQk1=;=6d=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dSi?P03c8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|Vn:S<<m;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjqYc9V;;>l5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw[a7X:;k0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^f2[64f3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byQk1^61e>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~Th<Q:2`9V4*aun'xm#jb?.vp,suhsz&mbo= hc1,`kphsWm;T:?o4U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZb6W>8j7X> gsd-vc)`d9$|~"ynup,cle7∋"naznu]g5Z>5i2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczPd0]:6g=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dSi<30?0`?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}Uo>1??>3`8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|Vn90<0=b:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkrXl;692?l4U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZb54:49n6[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov\`7:36;h0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^f18085j2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczPd3>5:7d<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexRj=<6<1f>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~Th?27>3`8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|Vn9040=a:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkrXl;U;>l5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw[a4X9;h0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^f1[465i2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczPd3]16d=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dSi<P33c8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|Vn9S9<n;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjqYc:V?9m6[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov\`7Y1:h1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{_e0\37g<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexRj=_90b?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}Uo>R7>7:W3+bta&{l$ahc dnww[l:76820Y=!hrg,qb*kbe&ndyyQf<02=5==R8&myj#|i/lgn+air|Vc7=<0>8:W3+bta&{l$ahc dnww[l:6:7;37X> gsd-vc)jmd%ocxzPi=30:4><]9%l~k }f.ofi*bh}}Ub0<:1199V4*aun'xm#`kb/emvpZo;9<4:46[?/fpe*w`(elg$hb{{_h>22;7?3\:$kh!rg-nah)cg|~Te1?8>0:8Q5)`zo$yj"cjm.flqqYn4825=55Z0.eqb+ta'dof#iazt^k?5<86?2_;#j|i.sd,i`k(lfSd2>>0:8Q5)`zo$yj"cjm.flqqYn4;:5=55Z0.eqb+ta'dof#iazt^k?648602_;#j|i.sd,i`k(lfSd2=2?3;?P6(o{l%~k!bel-gkprXa5882<64U1-dvc(un&gna"j`uu]j8729911^<"i}f/pe+hcj'me~xRg324<2<>S7'nxm"h mdo,`jssW`69:3?7;T2,cw`)zo%fi`!kotv\m9406820Y=!hrg,qb*kbe&ndyyQf<3:=5==R8&myj#|i/lgn+air|Vc7>40>7:W3+bta&{l$ahc dnww[l:56820Y=!hrg,qb*kbe&ndyyQf<22=5==R8&myj#|i/lgn+air|Vc7?<0>8:W3+bta&{l$ahc dnww[l:4:7;37X> gsd-vc)jmd%ocxzPi=10:4><]9%l~k }f.ofi*bh}}Ub0>:1199V4*aun'xm#`kb/emvpZo;;<4:;6[?/fpe*w`(elg$hb{{_h>0:41<]9%l~k }f.ofi*bh}}Ub090>7:W3+bta&{l$ahc dnww[l:268=0Y=!hrg,qb*kbe&ndyyQf<7<23>S7'nxm"h mdo,`jssW`6<2<94U1-dvc(un&gna"j`uu]j8=86?2_;#j|i.sd,i`k(lfSd26>048Q5)`zo$yj"cjm.flqqYnW9;=7X> gsd-vc)jmd%ocxzPi^323>S7'nxm"h mdo,`jssW`U:<<94U1-dvc(un&gna"j`uu]j[476?2_;#j|i.sd,i`k(lfSdQ>2058Q5)`zo$yj"cjm.flqqYnW89:;6[?/fpe*w`(elg$hb{{_h]2041<]9%l~k }f.ofi*bh}}UbS<;>7:W3+bta&{l$ahc dnww[lY6>8=0Y=!hrg,qb*kbe&ndyyQf_0523>S7'nxm"h mdo,`jssW`U:4<94U1-dvc(un&gna"j`uu]j[4?6>2_;#j|i.sd,i`k(lfSdQ=169V4*aun'xm#`kb/emvpZoX:9;<7X> gsd-vc)jmd%ocxzPi^0252=R8&myj#|i/lgn+air|VcT>??8;T2,cw`)zo%fi`!kotv\mZ449>1^<"i}f/pe+hcj'me~xRgP2534?P6(o{l%~k!bel-gkprXaV8>=:5Z0.eqb+ta'dof#iazt^k\63703\:$kh!rg-nah)cg|~TeR<8169V4*aun'xm#`kb/emvpZoX:1;<7X> gsd-vc)jmd%ocxzPi^0:53=R8&myj#|i/lgn+air|VcT?<94U1-dvc(un&gna"j`uu]j[666?2_;#j|i.sd,i`k(lfSdQ<1058Q5)`zo$yj"cjm.flqqYnW:8:;6[?/fpe*w`(elg$hb{{_h]0741<]9%l~k }f.ofi*bh}}UbS>:>7:W3+bta&{l$ahc dnww[lY4=8<0Y=!hrg,qb*kbe&ndyyQf_535?P6(o{l%~k!bel-gkprXaV?::6[?/fpe*w`(elg$hb{{_h]553=R8&myj#|i/lgn+air|VcT;<84U1-dvc(un&gna"j`uu]j[=713\:$kh!rg-nah)cg|~TeR7;3:W3+bta&{l$ahc gco-cgk`&nhfkl agda`*gk`'kf`S`kb_fgmawgsg{%ocxzm_h>3:12<]9%l~k }f.ofi*aee'miaj hbleb*kabkj$iaj!mlj]nahY`mgoymya}/emvpgYn48:5895Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(lfnRg310<70>S7'nxm"h mdo,cgk)okgl"jlbg`,mc`ed&kgl#obd_lgn[bcim{kc!kotva[l:6:7>?7X> gsd-vc)jmd%ln` hble-cgk`i'dlinm!ble,fimXelgTkh`jr`vlv*bh}}hTe1?<>568Q5)`zo$yj"cjm.eai+aeen$ln`in.oefgf(een%i`fQbel]dakcui}ey#iaztc]j8429<=1^<"i}f/pe+hcj'nhf"jlbg/eaibg)fnoho#lbg.`ooZkbeVmnbh|ntnp,`jssjVc7=80;4:W3+bta&{l$ahc gco-cgk`&nhfkl agda`*gk`'kf`S`kb_fgmawgsg{%ocxzm_h>22;233\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.flqqdXa5;<29:4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'me~xoQf<0:=01=R8&myj#|i/lgn+bdj&nhfk#immfc-jbcdk'hfk"lck^ofiZabflxjxb| dnwwfZo;904??6[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)cg|~iSd2>>568Q5)`zo$yj"cjm.eai+aeen$ln`in.oefgf(een%i`fQbel]dakcui}ey#iaztc]j8769<=1^<"i}f/pe+hcj'nhf"jlbg/eaibg)fnoho#lbg.`ooZkbeVmnbh|ntnp,`jssjVc7><0;4:W3+bta&{l$ahc gco-cgk`&nhfkl agda`*gk`'kf`S`kb_fgmawgsg{%ocxzm_h>16;233\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.flqqdXa58829:4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'me~xoQf<36=01=R8&myj#|i/lgn+bdj&nhfk#immfc-jbcdk'hfk"lck^ofiZabflxjxb| dnwwfZo;:<4?86[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)cg|~iSd2=6?67?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"j`uu`\m9406=>0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+air|kUb0?61459V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$hb{{b^k?6<83;2_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-gkpreW`6929:4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'me~xoQf<22=01=R8&myj#|i/lgn+bdj&nhfk#immfc-jbcdk'hfk"lck^ofiZabflxjxb| dnwwfZo;;84?86[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)cg|~iSd2<2?67?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"j`uu`\m9546=>0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+air|kUb0>:1459V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$hb{{b^k?7083;2_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-gkpreW`6829=4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'me~xoQf<5<77>S7'nxm"h mdo,cgk)okgl"jlbg`,mc`ed&kgl#obd_lgn[bcim{kc!kotva[l:26=90Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+air|kUb0;0;3:W3+bta&{l$ahc gco-cgk`&nhfkl agda`*gk`'kf`S`kb_fgmawgsg{%ocxzm_h>4:15<]9%l~k }f.ofi*aee'miaj hbleb*kabkj$iaj!mlj]nahY`mgoymya}/emvpgYn414??6[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)cg|~iSd26>6:8Q5)`zo$yj"cjm.eai+aeen$ln`in.oefgf(een%i`fQbel]dakcui}ey#{ocie,`wqt(zhggcb~T0\,qeh(u'z<Tbbgaiu,qeh)TLY$XE@^CE^RQMH7?&{kf;55Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehjhgyQ:Q#|nm/p,w3Yig`dbx#|nm.QGT+UNEYFNS]\FM0:-vdk002_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-ueioc&jy~"|nmmmlt^4Z&{kf"!|6^llmkos&{kf#^J_.RKNTICXX[CF=5 }al5;?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"xnlhf-gvru'{kf`ba[2_-vdk)z&y=Scafnhv-vdk([MZ%_DC_LD]SVLK60'xja<h4U1-dvc(un&gna"imm/vntZtfeVxoSh`=0:W3+bta&{l$ahc gco-phvXzhgT~iQjn030?P6(o{l%~k!}al]q`Zci9>1^<"i}f/pe+wgjW{olcxzPeo30?P6(o{l%~k!}al]tvZci9m1^<"i}f/pe+wusjea$^^ZPFTNO[BCI:11^<"i}f/pe+wusjea$k}{d0,dvvrXn|fg"}{_e31<>S7'nxm"h rrvahn)`zz~o=#i}su]eqij)zz~Th?<7;T2,cw`)zo%yylck.eqwqb6&nxxxRhzlm,qwqYc;;i0Y=!hrg,qb*tt|kf`#cixreppp+au{}$yhR||t^pfc969:j1^<"i}f/pe+wusjea$bjy}dsqw*btt|'xoS}{_sgd8485k2_;#j|i.sd,vvredb%ekz|krrv-cwus&{nT~~zPrde?6;4e3\:$kh!rg-qwqdkc&dl{j}su,dvvr)zmUyyQ}ef]36g=R8&myj#|i/sqwfim(fn}yh}{.fppp+tcW{ySkh_00a?P6(o{l%~k!}su`oo*h`{nyy hrrv-vaYu{}UyijQ=2b9V4*aun'xm#}{bmi,jbqul{y"j||t/uq[wusW{ol0=0=c:W3+bta&{l$~~zmlj-mcrtczz~%k}{.vp\vvrXzlm7=3<m;T2,cw`)zo%yylck.ldswbu{}$l~~z!ws]qwqYumnU;>o5Z0.eqb+ta'{ynae nfuq`wus&nxxx#y}_sqw[wc`W8;o7X> gsd-vc)u{}hgg"|k_sqw[duumn8;7X> gsd-vc)u{}hgg"|k_sqw[duumnUo=?>4U1-dvc(un&xxxobd/sf\vvrXizxnkRj=1b9V4*aun'xm#}{bmi,vaYu{}Uhc`l>d:W3+bta&{l$~~zmlj-q`Ztt|Vidao?>d:W3+bta&{l$~~zmlj-tvZtt|Vkx~hi=0:W3+bta&{l$~~zmlj-tvZtt|Vkx~hiPd003?P6(o{l%~k!}su`oo*quW{ySl}}ef]g672<]9%l~k }f.pppgjl'~xT~~zParpfcZtt|ye=n5Z0.eqb+ta'{ynae ws]qwqYdgdh:h6[?/fpe*w`(zz~i`f!xr^pppZehek;j7X]JR^COMDUd3\YN^RXFSH@OA6=QKJ30ZDKX_U[SA3=PMH6;2;5XE@>2:3=PMH69255XE@>0>5813^OJ0>09;VGA85813^OI0<09;VGA878?3^OI0>4?>79TAG:46k1\^DZJ_GKQWQe<_[C_IRC@DD]Bg>QUA]OTABJJ_C3g?]OKAGR&TIL/0/3#WQSE(9$:,L]LIH78\JTDQ?1S_YBFB69[WQY@FM=0T^ZPVBAa?]YDG[OTECH@6:ZgfZOcn2RodR^}ilTfvvohf8:0TicPM`hlvScu{`ee==5Wdl]Nmkiu^lxxeb`:1:]\[]JIEVUT<RQPU1-dvc(un&mg<#y}/vrmpw)Je|rTkdm?.fa3*firf}Q:<PQHNE]:0ZiXe|rT>RAZT7372>YXWQFEARQP11]\[P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPFRO\BCb5%@d:9?5P_^ZOJHYXW8;TSR[?/fpe*w`(oe:%{!xpovq+HkrpVmbo= hc1,`kphsS8:VSJ@K_86\kZkrpV8TCXZ<15f8[ZY_DGGTSR?=_^]V4*aun'xm#jb?.sf,vuhsz&GfyuQhc1,`kphsS8:VSJ@K_6;\kZkrpV8TCXZ;15;8[ZY_DGGTSR?<_^]V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9R;;QR|jdtaf[}iuW<Ud=9o4_^][HKKXWV;?SRQZ0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5^77UVxnhxmj_ymq[4?Xg8?=7RQPXMLN[ZY6=VUTY=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FaxvPdhde[rtXzmQ:=PQHNE]:6ZiXe|rT9RAZT537<>YXWQFEARQP17]\[P6(o{l%~k!hl1,tv*apiz$|y} Mlw{[fijx8ULBIQ66^m\IP^X?:Ud=<;>;^]\\IHJWVU:;RQPU1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4]68TUyii{le^zlvZ?6Wqe7<3Q\W171?ZYXPEDFSRQ>8^]\Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8Q:<PQ}eew`aZ~hzV8?=Rv`<1<\WR64;2UTSUBAM^]\5<YXW\:$kh!rg-qwqdkc&}yS}{_`qqabYu{}zdx9m4_^][HKKXWV;TSR[?/fpe*w`(oe:%~i!}povq+HkrpVmh<#m`uovX55[XOGNT;4Q`_lw{[7YH]]<:8n5P_^ZOJHYXW;:TSR[?/fpe*w`(ojr%oaew/LzlvZTCWYD_^V>R_SF\TKRUS8WTTB\P74]l[}i;87;?o6QP_YNMIZYX:8UTSX> gsd-vc)`kq$h`fv Mymq[RTXXG^YW=SPWS]SJQT\9TUSC_Q>0^m\|j:768>h7RQPXMLN[ZY5:VUTY=!hrg,qb*adp'iggu!Bxnp\VAYWF]XP4PQ]D^RMPW]>UVRD^R88_n]{k9699=h0SRQWLOO\[Z44WVU^<"i}f/pe+be&jf`t"Cwos]TVZVI\[Q3QRY]_QLWV^?ZWQEYS?Q`_ym?4;73k2UTSUBAM^]\61YXW\:$kh!rg-dg}(ddbr$Aua}_SF\TKRUS;WT^IQ_NUPX7XY_G[U<?RaPxn>3:42d3VUTTA@B_^]11ZYX]9%l~k }f.e`|+ekcq%Ftb|PRE]SJQT\=TUYHR^ATSY5YZ^HZV=;SbQwo=2=51d<WVUS@CCP_^05[ZYR8&myj#|i/fa{*fjlp&GscQXR^RMPW]5UV]YS]@[RZ1^[]IUW1UdSua30?37f>YXWQFEARQP26]\[P6(o{l%~k!hcy,`hn~(EqeySZ\PPOVQ_0[X_[U[BY\T6\][KWY2WfUsc1>11478[ZY_DGGTSR<P_^W3+bta&{l$ka>!re-dv4(`zmi9"jl/Lov|ZbnnoU|~R|k[03^[BHCW08TcRczx^7\KPR19<;0SRQWLOO\[Z5XWV_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>[02^[wcc}joTtb|P133\|j:76VY\<8?4_^][HKKXWV>TSR[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2_46ZW{ooynkPxnp\637Xpf6;2R]X03g8[ZY_DGGTSR;P_^W3+bta&{l$ahc gco-phvXzhgT~iQjn06g?ZYXPEDFSRQ9_^]V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9R;;QR|jdtaf[}iuW>;Ttb2?>06f?ZYXPEDFSRQ8_^]V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc9R;;QR|jdtaf[}iuW;;:Sua30?36f>YXWQFEARQP8^]\Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.Ob`aYcaolT{Q}dZ32YZAILV33SbQnde]7[JSSWqey090>2578[ZY_DGGTSR7P_^W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nSK]B_GDg5(Oi9j1j``a|t^gntqe3hffc~zPftno2>dfkb{h6lncjws[hguclx87nbdd:fbpdYdg|d$='k;ecweZeh}g~#=$k4d`vb[firf}":<$j4d`vb[firf}"9%i5kauc\gjsi|!9"h6jnt`]`kphs =#o7io{a^alqkr/= n0hlzn_bmvjq.1!m1omyoPcnwmp-1.l2njxlQlotlw,=/c3mkmRm`uov+=,773mkmRm`uov?55<76>1ondzjrs48`lh/8 <0hd`'1(58`lh/99#<7iga(03*3>bnf!;9%:5kio*27,1<l`d#=9'8;ekm,43.?2nbb%?9)69gmk.6? =0hd`'19+4?aoi 83":6jfn)0*3>bnf!8;%:5kio*15,1<l`d#>?'8;ekm,75.?2nbb%<;)69gmk.5= =0hd`'27+4?aoi ;=";6jfn)0;-2=cag"95$84dhl+7,1<l`d#?='8;ekm,67.?2nbb%==)69gmk.4; =0hd`'35+4?aoi :?":6jfn)6*2>bnf!?":6jfn)4*2>bnf!=":6jfn):*2>bnf!3":6jfn=2=3>bnf5;;2:5kio>25;1<l`d7=?08;ekm8459?2nbb1?;>69gmk:6=7=0hd`317<4?aoi48=5;6jfn=3;:2=cag6:5384dhl?5;1<l`d7>=08;ekm8779?2nbb1<=>69gmk:5;7=0hd`325<4?aoi4;?5;6jfn=05:2=cag69;394dhl?6=803mce0?716:fjj949?2nbb1=?>69gmk:497=0hd`333<4?aoi4:95;6jfn=17:<=cag6897>17:fjj9526?1oec2<>79gmk:36?1oec2:>79gmk:16?1oec28>79gmk:?6?1oec26>69gkpr/8 =0hb{{(0+;?air|!;;%55kotv+54/?3me~x%?=)99gkpr/9:#37iazt)37-==cg|~#=8'7;emvp-71!11ocxz'16+;?air|!;3%55kotv+5</03me~x%<&8:flqq.58 20hb{{(33*<>bh}}"9>$64dnww,75.02ndyy&=4(:8`jss ;?"46j`uu*12,><lf$?9&8:flqq.50 20hb{{(3;*3>bh}}"8%55kotv+75/?3me~x%=>)99gkpr/;;#37iazt)10-==cg|~#?9'7;emvp-52!>1ocxz'4(58`jss <#<7iazt)4*3>bh}}"<%:5kotv+<,1<lf$4'8;emvp96902ndyy2>0?:8`jss48;546j`uu>26;><lf0<=18:flqq:6<720hb{{<07=<>bh}}6::364dnww841902ndyy2>8?:8`jss4835;6j`uu>2:==cg|~7>=07;emvp946611ocxz323<;?air|588255kotv?618?3me~x1<:>99gkpr;:?437iazt=04:==cg|~7>507;emvp94>6>1ocxz32?:8`jss4::546j`uu>05;><lf0><18:flqq:4;720hb{{<26=e>bh}}6897>18:flqq:4=7=0hb{{<2<4?air|5>5;6j`uu>6:2=cg|~7:394dnww82803me~x1617:flqq:>611nhdh=nff6?`kw|p8m7kgio^efj`tf|fxTz;Q>,!Zjhlh(JEYI-Ijndpbpjt'9;$:=?5iigm\w3Y5Cq9=S?mck228bl`hWz<T>Fv<6^0`hn*aaoeTkh`jr`vlvZp1W8&ECCK#NNLF7c4<n`ldS~8P2Jz02Z4ddb&mekaPgdlfvdrhzV|=S<"tc^jbwZoi|Vigg0>#c^jbwZuu{}7; nQ}d^dqat;6$jUnbllce^pppZu~fj7: nQgar]q`Zbf|hUhcx`{=0.`[aoiW~coxe3<6-a\lduX{UomyoPcnwmp87+kVl~`aQil`ep[wusWkg1<"l_hosh`kbf}keb`Ptxrf97*dW|ynShcmeeff`Ztbo4:'oRy}_gpfu87+kVxiRj`uu]qwq;6$jU~bik}fmmt[iip59&hSeo|_ntfvcjh4:'oR~}emmb`Zjf|ldhu0>#c^flqqYpam~c1>8#c^opcjhX~hf6=!mPre]gauro5;:?4!mPesplvZoiblieb`Ptxrf95*dWakxSx`kesdokr;7$jUcm~QnllmppZ`rde7; nQgar]qwq;6$jUomyoPcnwmpZqnl}b6=<"l_icp[rtXija6<!mPurg\afe:8%iTobcboo]`hjel59&hSz|Pabi\hjq:8%iT~iQnup\slbs`4;: nQzsd]escrXlh~jSnaznu?2(fYoizUj``a|t^gntq:8%iT~iQkauc\gjsi|V}bhyf213.`[jpbzofd{Rb`w<2/gZquWyd~Ryfduj>54*dWyxdkRkbpu{\p|vb59&hSz|Pd`vb[firf}U|eizg=00/gZvumeejhR|jgr?2(fYcg|~T~~zPv`n>4)eX`hyThlzn_bmvjq;7$jU{~biPftno[qnumzbTbhintd]uei;58=<'oRy}_egspm;58=2'oR~}of]fiur~W}byi~fPndebp`Yqie7> nQrne\ahvsqV~c~h}g_`qpawrX~hf68!mPh`q\rdjnl4:'oR~}of]eqijX|axneQnsrgqpZpfd48;8:"lolrlj`hsWgkfi0hffn]p2Z4Lp:<T>nbd,b]ueiocWee|1="l_qpjiZ`nnfUu}k22jz2<)eXx{elSk{cl^vzt`;7$jUfi`a}y^vzt`;6$t8h7kgio^q5[7M;?U9oaePfhdl[bcim{kcQy6^3\|vrX9=1myabk;hliafrcj`~n~j4iohfgquea}oy~:5fnu]`hn><fniiydbk8:muaw`kg~k0|ah_dosp|733yxdkRkbpu{\pmtb{a";%<:4psmd[`kw|pUdk|h)3*50=wzfmTi`~{y^vkv`uo 8:"=95rne\ahvsqV~c~h}g(3+20>vugnUna}zv_ujqavn/; ;?7}|`g^gntqX|axne&;)068twi`Wlg{xtQ{hsgpl-3.9=1{~biPelrw}Zrozlyc$;'>4:rqkbYbey~rSyf}erj+3,733yxdkRkbpu{\pmtb{a"3%<:4psmd[`kw|pUdk|h);*52=wzfmTi`~{y^vkv`uo48:1<3?m;qplcZcjx}sTxe|jsi]bwvcu|!:"=o5rne\ahvsqV~c~h}g_`qpawr/9 ;h7}|`g^gntqX|axneQnsrgqp-77!8h0|ah_dosp|Ys`{oxdRo|sdpw,7/6j2zycjQjmqvz[qnumzbTm~}jru*0-4d<x{elShctx]wlwct`Vkxh|{(5+2f>vugnUna}zv_ujqavnXizyn~y&:)0`8twi`Wlg{xtQ{hsgplZgt{lx$;'>b:rqkbYbey~rSyf}erj\evubz}"<%<l4psmd[`kw|pUdk|h^cpw`ts 1#:n6~}of]fiur~W}byi~fParqfvq.>!8o0|ah_dosp|Ys`{oxdRo|sdpw846=87;i7}|`g^gntqX|axneQaefcwa-6.9k1{~biPelrw}ZrozlycSckhaug+5,7d3yxdkRkbpu{\pmtb{aUeijo{e)33-4d<x{elShctx]wlwct`Vdnklzj(3+2f>vugnUna}zv_ujqavnXflmjxh&<)0`8twi`Wlg{xtQ{hsgplZhboh~n$9'>b:rqkbYbey~rSyf}erj\j`af|l">%<l4psmd[`kw|pUdk|h^lfcdrb ?#:n6~}of]fiur~W}byi~fPndebp`.0!8h0|ah_dosp|Ys`{oxdR`jg`vf,=/6j2zycjQjmqvz[qnumzbTbhintd*:-4c<x{elShctx]wlwct`Vdnklzj<0294;?<x{elSk{cl018twi`Wog`Rzgrdqk,5/6;2zycjQiumn\pmtb{a":%<:4psmd[cskdV~c~h}g(02*56=wzfmTjxbc_ujqavn/: ;87}|`g^dvhiYs`{oxd%=&129svjaXn|fgSyf}erj+0,743yxdkRhzlm]wlwct`!?"=>5rne\bpjkW}byi~f'6(30?uthoVl~`aQ{hsgpl-1.9:1{~biPftno[qnumzb#4$?<;qplcZ`rdeUdk|h);*53=wzfmTjxbc_ujqavn;990;2<o4psmd[cskdV~c~h}g_`qpawr/8 ;j7}|`g^dvhiYs`{oxdRo|sdpw,4/6j2zycjQiumn\pmtb{aUj~k}t)33-4g<x{elSk{cl^vkv`uoWhyxiz'2(3b?uthoVl~`aQ{hsgplZgt{lx$>'>a:rqkbYa}efTxe|jsi]bwvcu|!>"=l5rne\bpjkW}byi~fParqfvq.2!8k0|ah_gwohZrozlycSl}|esv+2,7f3yxdkRhzlm]wlwct`Vkxh|{(6+2e>vugnUmyabPtipfwmYf{zoyx%6&1`9svjaXn|fgSyf}erj\evubz}"2%<j4psmd[cskdV~c~h}g_`qpawr;990;2<o4psmd[cskdV~c~h}g_ogdeqc/8 ;j7}|`g^dvhiYs`{oxdR`jg`vf,4/6j2zycjQiumn\pmtb{aUeijo{e)33-4g<x{elSk{cl^vkv`uoWgolmyk'2(3b?uthoVl~`aQ{hsgplZhboh~n$>'>a:rqkbYa}efTxe|jsi]mabgsm!>"=l5rne\bpjkW}byi~fPndebp`.2!8k0|ah_gwohZrozlycSckhaug+2,7f3yxdkRhzlm]wlwct`Vdnklzj(6+2e>vugnUmyabPtipfwmYimnki%6&1`9svjaXn|fgSyf}erj\j`af|l"2%<j4psmd[cskdV~c~h}g_ogdeqc;990;2;5}d^aoo46<zmUomyoPcnwmp-6.991yhRjnt`]`kphs 8#:=6|k_ecweZeh}g~#=='>1:pg[agsiVidycz'10+24>tcWmkmRm`uov+6,773{nThlzn_bmvjq.4!8:0~iQkauc\gjsi|!>"==5}d^fbpdYdg|d$8'>0:pg[agsiVidycz'6(33?wbXlh~jSnaznu*4-46<zmUomyoPcnwmp->.991yhRjnt`]`kphs 0#:<6|k_ecweZeh}g~7<3?>;sf\`drfWje~by2>0?30?wbXlh~jSnaznu>25?69981yhRjnt`]`kphs48;5==5}d^fbpdYdg|d0<0>0:pg[agsiVidycz32?33?wbXlh~jSnaznu>0:46<zmUomyoPcnwmp929991yhRjnt`]`kphs4<4:<6|k_ecweZeh}g~7:3??;sf\`drfWje~by28>028vaYci}kTob{at=:=55=ulVnjxlQlotlw8<823{nTic84re]qwq5<zz~<7~lftdpq0>uu{};n7yc/^ad+coagVy=S?Ew37]1gim)fne27x`kesdokr3<~hfbh;5xr^c`o3=pzVigg<>4ws]geqgXkfex%>&119tvZbf|hUhcx`{(0+25>quWmkmRm`uov+55/692}ySio{a^alqkr/98#:<6y}_ecweZeh}g~#>$??;vp\`drfWje~by&<)028swYci}kTob{at)6*55=pzVnjxlQlotlw,0/682}ySio{a^alqkr/> ;;7z|Pd`vb[firf}"<%<>4ws]geqgXkfex%6&119tvZbf|hUhcx`{(8+24>quWmkmRm`uov?4;763~xThlzn_bmvjq:687;87z|Pd`vb[firf}6:=7>1109tvZbf|hUhcx`{<03=55=pzVnjxlQlotlw848682}ySio{a^alqkr;:7;;7z|Pd`vb[firf}682<>4ws]geqgXkfex1:1119tvZbf|hUhcx`{<4<24>quWmkmRm`uov?2;773~xThlzn_bmvjq:068:0{Qkauc\gjsi|525==5xr^fbpdYdg|d040:;vp\ak0<{UyysO@q31e4=GHq<o:7H54;3xW23=>?:1o7?<311a<?55:lkpb87j:09m1<`=>2.>5n4:979~W25=>?:1o7?<311a<?55:lk0_<9l:74a>5<6;::8n54<23ga?V142?<i6=4>3220f=<4:;oh7i893;295?7|[>?1:;>5c;30755e0399>ho4vU03`?6=93;1><ktS679236=k3;8?==m8;116`g<,<236<9k;W7:`?4|}82>6<5z19494>{#9oh1?<5m67194?002:0=;vF:879Y2g<3s8l1=h4>4;36>x"59:0=:>5+58`9234<a?n:6=44i7d7>5<<g?<<6=44o742>5<<a?nj6=44i7f0>5<<g?9?6=4+1gf9201<f8lh6=54o710>5<#9on1:894n0d`>4=<g?996=4+1gf9201<f8lh6?54o712>5<#9on1:894n0d`>6=<g?9;6=4+1gf9201<f8lh6954o70e>5<#9on1:894n0d`>0=<g?8o6=4+1gf9201<f8lh6;54o70`>5<#9on1:894n0d`>2=<g?8i6=4+1gf9201<f8lh6554o70b>5<#9on1:894n0d`><=<g?826=4+1gf9201<f8lh6l54o70;>5<#9on1:894n0d`>g=<g?8<6=4+1gf9201<f8lh6n54o705>5<#9on1:894n0d`>a=<g?8>6=4+1gf9201<f8lh6h54o707>5<#9on1:894n0d`>c=<g?896=4+1gf9201<f8lh6<>4;n415?6=,8lo6;;8;o3eg?7632e=>=4?:%3e`?02?2d:jn4>2:9l24`=83.:ji49569m5ce=9:10c;?j:18'5cb=><=0b<hl:068?j06l3:1(<hk:774?k7ak3;>76a91b83>!7al3<>;6`>fb822>=h>8h1<7*>fe8512=i9oi1=:54o73b>5<#9on1:894n0d`>4><3f<:57>5$0dg>3303g;mo7?6;:m57d<72-;mh78:7:l2bf<6i21d:>750;&2ba<1=>1e=km51c98k35?290/=kj56458j4`d28i07b8<7;29 4`c2??<7c?ic;3g?>i1;?0;6)?id;463>h6nj0:i65`62794?"6nm0=9:5a1ga95c=<g?8n6=4+1gf9201<f8lh6?>4;n417?6=,8lo6;;8;o3eg?4632e==54?:%3e`?02?2d:jn4=2:9l241=83.:ji49569m5ce=::10e8km:18'5cb=>9o0b<hl:198m0cf290/=kj561g8j4`d2810e8k6:18'5cb=>9o0b<hl:398m0c?290/=kj561g8j4`d2:10e8k8:18'5cb=>9o0b<hl:598m0c1290/=kj561g8j4`d2<10e8k;:18'5cb=>9o0b<hl:798m0c4290/=kj561g8j4`d2>10e8k=:18'5cb=>9o0b<hl:998m0c6290/=kj561g8j4`d2010e8k?:18'5cb=>9o0b<hl:`98m0ba290/=kj561g8j4`d2k10e8jj:18'5cb=>9o0b<hl:b98m0bc290/=kj561g8j4`d2m10e8jl:18'5cb=>9o0b<hl:d98m0be290/=kj561g8j4`d2o10e8j6:18'5cb=>9o0b<hl:028?l3c03:1(<hk:72f?k7ak3;:76g:d683>!7al3<;i6`>fb826>=n=m<1<7*>fe854`=i9oi1=>54i4f6>5<#9on1:=k4n0d`>42<3`?o87>5$0dg>36b3g;mo7?:;:k6`6<72-;mh78?e:l2bf<6>21b9i<50;&2ba<18l1e=km51698m0b6290/=kj561g8j4`d28207d;k0;29 4`c2?:n7c?ic;3:?>o2n80;6)?id;43a>h6nj0:m65f5g294?"6nm0=<h5a1ga95g=<a<om6=4+1gf925c<f8lh6<m4;h7fa?6=,8lo6;>j;o3eg?7c32c>ii4?:%3e`?07m2d:jn4>e:9j1`e=83.:ji490d9m5ce=9o10e8k::18'5cb=>9o0b<hl:328?l3ci3:1(<hk:72f?k7ak38:76g:cg83>!7al3<;i6`>fb816>=n=jo1<7*>fe854`=i9oi1>>54o7`a>5<#9on1:n84n0d`>5=<g?hj6=4+1gf92f0<f8lh6<54o7a0>5<#9on1:n84n0d`>7=<g?i96=4+1gf92f0<f8lh6>54o7a2>5<#9on1:n84n0d`>1=<g?i;6=4+1gf92f0<f8lh6854o7`e>5<#9on1:n84n0d`>3=<g?hn6=4+1gf92f0<f8lh6:54o7`g>5<#9on1:n84n0d`>==<g?hh6=4+1gf92f0<f8lh6454o7`:>5<#9on1:n84n0d`>d=<g?h36=4+1gf92f0<f8lh6o54o7ff>5<#9on1:h74n0d`>5=<g?no6=4+1gf92`?<f8lh6<54o7g5>5<#9on1:h74n0d`>7=<g?o>6=4+1gf92`?<f8lh6>54o7g7>5<#9on1:h74n0d`>1=<g?o86=4+1gf92`?<f8lh6854o7g1>5<#9on1:h74n0d`>3=<g?o:6=4+1gf92`?<f8lh6:54o7g3>5<#9on1:h74n0d`>==<g?nm6=4+1gf92`?<f8lh6454o7f`>5<#9on1:h74n0d`>d=<g?ni6=4+1gf92`?<f8lh6o54i7`4>5<<j<2<6=4>:183M3?>2.9=>4:869l5cg=831vn<<9:182>5<7sA?3:6*=128263=h9;?1<75rb7c94?e028n>6??j{I7;2>\1j3;=wh4k:g827?7728;1=?4>f;3f>42=9<0:i7j5e;d955<693;96<=51g820?722t.9=>49679'2`<1>=1/;949649'5c3=9o30e;9l:18'5cb=>1?0b<hl:198m3>3290/=kj56978j4`d2810e;6<:18'5cb=>1?0b<hl:398m3>5290/=kj56978j4`d2:10e;6>:18'5cb=>1?0b<hl:598m3>7290/=kj56978j4`d2<10e;9i:18'5cb=>1?0b<hl:798m31b290/=kj56978j4`d2>10e;9k:18'5cb=>1?0b<hl:998m31e290/=kj56978j4`d2010e;9n:18'5cb=>1?0b<hl:`98m30>2900e;j=:188m3b22900c;j7:188m317290/=kj566;8j4`d2910e;97:18'5cb=>>30b<hl:098m310290/=kj566;8j4`d2;10e;99:18'5cb=>>30b<hl:298m312290/=kj566;8j4`d2=10e;9;:18'5cb=>>30b<hl:498m314290/=kj566;8j4`d2?10e;9=:18'5cb=>>30b<hl:698m316290/=kj566;8j4`d2110e;8i:18'5cb=>>30b<hl:898m30b290/=kj566;8j4`d2h10e;j>:188k30d2900e;67:18'5cb=>0;0b<hl:198m3?7290/=kj56838j4`d2810e;6i:18'5cb=>0;0b<hl:398m3>b290/=kj56838j4`d2:10e;6k:18'5cb=>0;0b<hl:598m3>d290/=kj56838j4`d2<10e;6m:18'5cb=>0;0b<hl:798m3>f290/=kj56838j4`d2>10e;66:18'5cb=>0;0b<hl:998m3>0290/=kj56838j4`d2010e;69:18'5cb=>0;0b<hl:`98k0dc2900c8m<:18'5cb==ji0b<hl:198k0ee290/=kj55ba8j4`d2810c8mn:18'5cb==ji0b<hl:398k0e>290/=kj55ba8j4`d2:10c8m7:18'5cb==ji0b<hl:598k0e0290/=kj55ba8j4`d2<10c8m9:18'5cb==ji0b<hl:798k0e2290/=kj55ba8j4`d2>10c8m;:18'5cb==ji0b<hl:998k0e5290/=kj55ba8j4`d2010c8m>:18'5cb==ji0b<hl:`98k3?52900e;h;:188m3?2290/=kj568g8j4`d2910e;7k:18'5cb=>0o0b<hl:098m3?d290/=kj568g8j4`d2;10e;7m:18'5cb=>0o0b<hl:298m3?f290/=kj568g8j4`d2=10e;76:18'5cb=>0o0b<hl:498m3??290/=kj568g8j4`d2?10e;78:18'5cb=>0o0b<hl:698m3?1290/=kj568g8j4`d2110e;7;:18'5cb=>0o0b<hl:898m3?4290/=kj568g8j4`d2h10c;88:188k3062900e;jn:188m0da2900e;o>:18'5cb=>hk0b<hl:198m3g>290/=kj56`c8j4`d2810e;o7:18'5cb=>hk0b<hl:398m3g0290/=kj56`c8j4`d2:10e;o9:18'5cb=>hk0b<hl:598m3g2290/=kj56`c8j4`d2<10e;o;:18'5cb=>hk0b<hl:798m3g4290/=kj56`c8j4`d2>10e;o=:18'5cb=>hk0b<hl:998m3g7290/=kj56`c8j4`d2010e;7i:18'5cb=>hk0b<hl:`98m3gc290/=kj56c48j4`d2910e;l::18'5cb=>k<0b<hl:098m3d3290/=kj56c48j4`d2;10e;l<:18'5cb=>k<0b<hl:298m3d5290/=kj56c48j4`d2=10e;l>:18'5cb=>k<0b<hl:498m3d7290/=kj56c48j4`d2?10e;oi:18'5cb=>k<0b<hl:698m3gb290/=kj56c48j4`d2110e;ol:18'5cb=>k<0b<hl:898m3ge290/=kj56c48j4`d2h10c8ll:188m30f2900e8m?:188m3`22900c;j;:188k3b>2900e;j<:188k353290/=kj56458j4`d2910c;=<:18'5cb=><=0b<hl:098k355290/=kj56458j4`d2;10c;=>:18'5cb=><=0b<hl:298k357290/=kj56458j4`d2=10c;<i:18'5cb=><=0b<hl:498k34c290/=kj56458j4`d2?10c;<l:18'5cb=><=0b<hl:698k34e290/=kj56458j4`d2110c;<n:18'5cb=><=0b<hl:898k34>290/=kj56458j4`d2h10c;<7:18'5cb=><=0b<hl:c98k340290/=kj56458j4`d2j10c;<9:18'5cb=><=0b<hl:e98k342290/=kj56458j4`d2l10c;<;:18'5cb=><=0b<hl:g98k345290/=kj56458j4`d28:07b8=1;29 4`c2??<7c?ic;32?>i1:90;6)?id;463>h6nj0:>65`60d94?"6nm0=9:5a1ga956=<g?;n6=4+1gf9201<f8lh6<:4;n42`?6=,8lo6;;8;o3eg?7232e==n4?:%3e`?02?2d:jn4>6:9l24d=83.:ji49569m5ce=9>10c;?n:18'5cb=><=0b<hl:0:8?j0613:1(<hk:774?k7ak3;276a93`83>!7al3<>;6`>fb82e>=h>:31<7*>fe8512=i9oi1=o54o71;>5<#9on1:894n0d`>4e<3f<8;7>5$0dg>3303g;mo7?k;:m573<72-;mh78:7:l2bf<6m21d:>;50;&2ba<1=>1e=km51g98k34b290/=kj56458j4`d2;:07b8=3;29 4`c2??<7c?ic;02?>i1910;6)?id;463>h6nj09>65`60594?"6nm0=9:5a1ga966=<a<oi6=4+1gf925c<f8lh6=54i4gb>5<#9on1:=k4n0d`>4=<a<o26=4+1gf925c<f8lh6?54i4g;>5<#9on1:=k4n0d`>6=<a<o<6=4+1gf925c<f8lh6954i4g5>5<#9on1:=k4n0d`>0=<a<o?6=4+1gf925c<f8lh6;54i4g0>5<#9on1:=k4n0d`>2=<a<o96=4+1gf925c<f8lh6554i4g2>5<#9on1:=k4n0d`><=<a<o;6=4+1gf925c<f8lh6l54i4fe>5<#9on1:=k4n0d`>g=<a<nn6=4+1gf925c<f8lh6n54i4fg>5<#9on1:=k4n0d`>a=<a<nh6=4+1gf925c<f8lh6h54i4fa>5<#9on1:=k4n0d`>c=<a<n26=4+1gf925c<f8lh6<>4;h7g<?6=,8lo6;>j;o3eg?7632c>h:4?:%3e`?07m2d:jn4>2:9j1a0=83.:ji490d9m5ce=9:10e8j::18'5cb=>9o0b<hl:068?l3c<3:1(<hk:72f?k7ak3;>76g:d283>!7al3<;i6`>fb822>=n=m81<7*>fe854`=i9oi1=:54i4f2>5<#9on1:=k4n0d`>4><3`?o<7>5$0dg>36b3g;mo7?6;:k6b4<72-;mh78?e:l2bf<6i21b9k>50;&2ba<18l1e=km51c98m0ca290/=kj561g8j4`d28i07d;je;29 4`c2?:n7c?ic;3g?>o2mm0;6)?id;43a>h6nj0:i65f5da94?"6nm0=<h5a1ga95c=<a<o>6=4+1gf925c<f8lh6?>4;h7ge?6=,8lo6;>j;o3eg?4632c>ok4?:%3e`?07m2d:jn4=2:9j1fc=83.:ji490d9m5ce=::10e8lj:188k3de290/=kj56b48j4`d2910c;ln:18'5cb=>j<0b<hl:098k3e4290/=kj56b48j4`d2;10c;m=:18'5cb=>j<0b<hl:298k3e6290/=kj56b48j4`d2=10c;m?:18'5cb=>j<0b<hl:498k3da290/=kj56b48j4`d2?10c;lj:18'5cb=>j<0b<hl:698k3dc290/=kj56b48j4`d2110c;ll:18'5cb=>j<0b<hl:898k3d>290/=kj56b48j4`d2h10c;l7:18'5cb=>j<0b<hl:c98k3bb290/=kj56d;8j4`d2910c;jk:18'5cb=>l30b<hl:098k3c1290/=kj56d;8j4`d2;10c;k::18'5cb=>l30b<hl:298k3c3290/=kj56d;8j4`d2=10c;k<:18'5cb=>l30b<hl:498k3c5290/=kj56d;8j4`d2?10c;k>:18'5cb=>l30b<hl:698k3c7290/=kj56d;8j4`d2110c;ji:18'5cb=>l30b<hl:898k3bd290/=kj56d;8j4`d2h10c;jm:18'5cb=>l30b<hl:c98k30c2900e;87:188k0ec2900e;l8:188k3b02900n876:182>5<7s-8:?7?=6:J6===O=1<0c<<::188yg3>i3:1=7>50z&156<20>1C9464H4:5?j7ai3:17pl<bc83>1<729q/><=51328L0??3A?3:6*>378a?l0d2900e:850;9j5c`=831d>=>50;9~f15?290?6=4?{%027?7582B>555G5948 4512k1b:n4?::k42?6=3`;mj7>5;n034?6=3th??:4?:583>5}#:891=?>4H4;;?M3?>2.:?;4m;h4`>5<<a><1<75f1gd94?=h:9:1<75rb44`>5<3290;w)<>3;32a>N2111C9584$015>4=n>j0;66g82;29?l112900c?>?:188yg30k3:1?7>50z&156<69m1C9464H4:5?M0?3-;3?7<>2:&273<63`<h6=44i6494?=h:9:1<75rb4:2>5<4290;w)<>3;32`>N2111C9584H7:8 4>42;;97)?<6;38m3e=831b;;4?::m145<722wi9;h50;694?6|,;;86<<?;I7:<>N20?1C:55+1919644<,89=6o5f6b83>>o0>3:17d?if;29?j4783:17pl:7c83>6<729q/><=510f8L0??3A?3:6F98:&2<6<59;1/=>851:k5g?6=3`==6=44o323>5<<uk?3<7>53;294~"59:0:=i5G58:8L0>13A<37)?73;026>"6;?0:7d8l:188m20=831d>=>50;9~f00b290?6=4?{%027?7582B>555G5948 4>42;;97E87;%302?d<a?i1<75f7783>>o6no0;66a=0183>>{e=>?1<7:50;2x 774288;7E;68:J6<3=#9:<1n6g9c;29?l112900e<hi:188k7672900qo;84;290?6=8r.9=>4>219K1<><@<2=7)?<6;`8m3e=831b;;4?::k2bc<722e9<=4?::a125=83>1<7>t$330>4473A?246F:879'560=j2c=o7>5;h55>5<<a8lm6=44o323>5<<uk?<m7>55;294~"59:0:><5G58:8L0>13A<37)?73;026>o1k3:17d8k:188m20=831b=kh50;9l656=831vn896:187>5<7s-8:?7?=0:J6===O=1<0(<=9:c9j2f<722c<:7>5;h3eb?6=3f8;<7>5;|`63=<72=0;6=u+2019576<@<337E;76:&273<e3`<h6=44i6494?=n9ol1<75`21294?=zj<<o6=4;:183!46;3;9<6F:999K1=0<@?20(<6<:331?!74>3h0e;m50;9j33<722c:jk4?::m145<722wi9>650;794?6|,;;86<<=;I7:<>N20?1/=>851:k5g?6=3`<o6=44i6494?=n:9;1<75`21294?=zj<9<6=4::183!46;3;9>6F:999K1=0<,89=6<5f6b83>>o1l3:17d99:188m7662900c?>?:188yg34>3:197>50z&156<6:;1C9464H4:5?!74>3;0e;m50;9j2a<722c<:7>5;h035?6=3f8;<7>5;|`670<72<0;6=u+2019574<@<337E;76:&273<63`<h6=44i7f94?=n??0;66g=0083>>i5890;66sm52694?3=83:p(??<:001?M3>02B>4;5+12495>o1k3:17d8k:188m20=831b>=?50;9l656=831vn8=<:186>5<7s-8:?7?=2:J6===O=1<0(<=9:09j2f<722c=h7>5;h55>5<<a;::6=44o323>5<<uk?8=7>55;294~"59:0:>?5G58:8L0>13-;8:7?4i7a94?=n>m0;66g86;29?l4793:17b<?0;29?xd2;90;684?:1y'645=9;80D877;I7;2>"6;?0:7d8l:188m3b=831b;;4?::k144<722e9<=4?::a17`=83?1<7>t$330>4453A?246F:879'560=92c=o7>5;h4g>5<<a><1<75f21394?=h:9:1<75rb40f>5<2290;w)<>3;316>N2111C9584$015>4=n>j0;66g9d;29?l112900e?>>:188k7672900qo;=d;291?6=8r.9=>4>239K1<><@<2=7)?<6;38m3e=831b:i4?::k42?6=3`8;=7>5;n034?6=3th>>n4?:483>5}#:891=?<4H4;;?M3?>2.:?;4>;h4`>5<<a?n1<75f7783>>o5880;66a=0183>>{e=;h1<7;50;2x 77428897E;68:J6<3=#9:<1=6g9c;29?l0c2900e:850;9j657=831d>=>50;9~f04f290>6=4?{%027?75:2B>555G5948 451281b:n4?::k5`?6=3`==6=44i322>5<<g;:;6=44}c71=?6==3:1<v*=128267=O=020D869;%302?7<a?i1<75f6e83>>o0>3:17d<?1;29?j4783:17pl:2983>0<729q/><=51308L0??3A?3:6*>3782?l0d2900e;j50;9j33<722c9<<4?::m145<722wi9?850;794?6|,;;86<<=;I7:<>N20?1/=>851:k5g?6=3`<o6=44i6494?=n:9;1<75`21294?=zj<8>6=4::183!46;3;9>6F:999K1=0<,89=6<5f6b83>>o1l3:17d99:188m7662900c?>?:188yg35<3:197>50z&156<6:;1C9464H4:5?!74>3;0e;m50;9j2a<722c<:7>5;h035?6=3f8;<7>5;|`666<72<0;6=u+2019574<@<337E;76:&273<63`<h6=44i7f94?=n??0;66g=0083>>i5890;66sm53094?3=83:p(??<:001?M3>02B>4;5+12495>o1k3:17d8k:188m20=831b>=?50;9l656=831vn8<>:186>5<7s-8:?7?=2:J6===O=1<0(<=9:09j2f<722c=h7>5;h55>5<<a;::6=44o323>5<<uk?9<7>55;294~"59:0:>?5G58:8L0>13-;8:7?4i7a94?=n>m0;66g86;29?l4793:17b<?0;29?xd29o0;684?:1y'645=9;80D877;I7;2>"6;?0:7d8l:188m3b=831b;;4?::k144<722e9<=4?::a14c=83?1<7>t$330>4453A?246F:879'560=92c=o7>5;h4g>5<<a><1<75f21394?=h:9:1<75rb43g>5<2290;w)<>3;316>N2111C9584$015>4=n>j0;66g9d;29?l112900e?>>:188k7672900qo;<e;291?6=8r.9=>4>239K1<><@<2=7)?<6;38m3e=831b:i4?::k42?6=3`8;=7>5;n034?6=3th>?i4?:483>5}#:891=?<4H4;;?M3?>2.:?;4>;h4`>5<<a?n1<75f7783>>o5880;66a=0183>>{e=:i1<7;50;2x 77428897E;68:J6<3=#9:<1=6g9c;29?l0c2900e:850;9j657=831d>=>50;9~f05e290>6=4?{%027?75:2B>555G5948 451281b:n4?::k5`?6=3`==6=44i322>5<<g;:;6=44}c70e?6==3:1<v*=128267=O=020D869;%302?7<a?i1<75f6e83>>o0>3:17d<?1;29?j4783:17pl:3883>0<729q/><=51308L0??3A?3:6*>3782?l0d2900e;j50;9j33<722c9<<4?::m145<722wi9><50;794?6|,;;86<<=;I7:<>N20?1/=>851:k5g?6=3`<o6=44i6494?=n:9;1<75`21294?=zj<8<6=4::183!46;3;9>6F:999K1=0<,89=6<5f6b83>>o1l3:17d99:188m7662900c?>?:188yg36k3:197>50z&156<6:;1C9464H4:5?!74>3;0e;m50;9j2a<722c<:7>5;h035?6=3f8;<7>5;|`65g<72<0;6=u+2019574<@<337E;76:&273<63`<h6=44i7f94?=n??0;66g=0083>>i5890;66sm41d94?2=83:p(??<:0:7?M3>02B>4;5f6g83>>o0j3:17d<?a;29?j7a03:17pl;0d83>1<729q/><=51968L0??3A?3:6g9f;29?l1e2900e?>n:188k4`?2900qo:?d;290?6=8r.9=>4>859K1<><@<2=7d8i:188m2d=831b>=o50;9l5c>=831vn9>l:187>5<7s-8:?7?74:J6===O=1<0e;h50;9j3g<722c9<l4?::m2b=<722wi8=l50;694?6|,;;86<6;;I7:<>N20?1b:k4?::k4f?6=3`8;m7>5;n3e<?6=3th?==4?:583>5}#:891=5:4H4;;?M3?>2c=j7>5;h5a>5<<a;:j6=44o0d;>5<<uk>9:7>54;294~"59:0:495G58:8L0>13`<m6=44i6`94?=n:9k1<75`1g:94?=zj=8>6=4;:183!46;3;386F:999K1=0<a?l1<75f7c83>>o58h0;66a>f983>>{e<;>1<7:50;2x 774282?7E;68:J6<3=n>o0;66g8b;29?l47i3:17b?i8;29?xd3::0;694?:1y'645=91>0D877;I7;2>o1n3:17d9m:188m76f2900c<h7:188yg25:3:187>50z&156<60=1C9464H4:5?l0a2900e:l50;9j65g=831d=k650;9~f140290?6=4?{%027?7?<2B>555G5948m3`=831b;o4?::k14d<722e:j54?::a7<4=83>1<7>t$330>4>33A?246F:879j2c<722c<n7>5;h03e?6=3f;m47>5;|`0=4<72=0;6=u+20195=2<@<337E;76:k5b?6=3`=i6=44i32b>5<<g8l36=44}c1:4?6=<3:1<v*=1282<1=O=020D869;h4e>5<<a>h1<75f21c94?=h9o21<75rb2:e>5<3290;w)<>3;3;0>N2111C9584i7d94?=n?k0;66g=0`83>>i6n10;66sm39g94?2=83:p(??<:0:7?M3>02B>4;5f6g83>>o0j3:17d<?a;29?j7a03:17pl<9283>1<729q/><=51968L0??3A?3:6g9f;29?l1e2900e?>n:188k4`?2900qo=n9;290?6=8r.9=>4>859K1<><@<2=7d8i:188m2d=831b>=o50;9l5c>=831vn>o7:187>5<7s-8:?7?74:J6===O=1<0e;h50;9j3g<722c9<l4?::m2b=<722wi?l950;694?6|,;;86<6;;I7:<>N20?1b:k4?::k4f?6=3`8;m7>5;n3e<?6=3th8m;4?:583>5}#:891=5:4H4;;?M3?>2c=j7>5;h5a>5<<a;:j6=44o0d;>5<<uk9j97>54;294~"59:0:495G58:8L0>13`<m6=44i6`94?=n:9k1<75`1g:94?=zj:kj6=4;:183!46;3;386F:999K1=0<a?l1<75f7c83>>o58h0;66a>f983>>{e;=81<7=50;2x 7742<3<7E;68:J6<3=n>o0;66g>7c83>>i6n10;66sm32594?5=83:p(??<:05f?M3>02B>4;5+124905=n9;21<75f13;94?=h9o21<75rb26a>5<4290;w)<>3;7:3>N2111C9584i7d94?=n9>h1<75`1g:94?=zj:9>6=4;:183!46;3;386F:999K1=0<a?l1<75f7c83>>o58h0;66a>f983>>{e;=:1<7=50;2x 77428=n7E;68:J6<3=#9:<18=5f13:94?=n9;31<75`1g:94?=zj:>j6=4<:183!46;3?2;6F:999K1=0<a?l1<75f16`94?=h9o21<75rb217>5<3290;w)<>3;3;0>N2111C9584i7d94?=n?k0;66g=0`83>>i6n10;66sm32d94?5=83:p(??<:05f?M3>02B>4;5+124905=n9;21<75f13;94?=h9o21<75rb26:>5<4290;w)<>3;7:3>N2111C9584i7d94?=n9>h1<75`1g:94?=zj:986=4;:183!46;3;386F:999K1=0<a?l1<75f7c83>>o58h0;66a>f983>>{e;:o1<7=50;2x 77428=n7E;68:J6<3=#9:<18=5f13:94?=n9;31<75`1g:94?=zj:>36=4<:183!46;3?2;6F:999K1=0<a?l1<75f16`94?=h9o21<75rb211>5<3290;w)<>3;3;0>N2111C9584i7d94?=n?k0;66g=0`83>>i6n10;66sm32f94?5=83:p(??<:05f?M3>02B>4;5+124905=n9;21<75f13;94?=h9o21<75rb264>5<4290;w)<>3;7:3>N2111C9584i7d94?=n9>h1<75`1g:94?=zj:9:6=4;:183!46;3;386F:999K1=0<a?l1<75f7c83>>o58h0;66a>f983>>{e;:i1<7=50;2x 77428=n7E;68:J6<3=#9:<18=5f13:94?=n9;31<75`1g:94?=zj:>=6=4<:183!46;3?2;6F:999K1=0<a?l1<75f16`94?=h9o21<75rb213>5<3290;w)<>3;3;0>N2111C9584i7d94?=n?k0;66g=0`83>>i6n10;66sm32`94?5=83:p(??<:05f?M3>02B>4;5+124905=n9;21<75f13;94?=h9o21<75rb266>5<4290;w)<>3;7:3>N2111C9584i7d94?=n9>h1<75`1g:94?=zj:8m6=4;:183!46;3;386F:999K1=0<a?l1<75f7c83>>o58h0;66a>f983>>{e;:k1<7=50;2x 77428=n7E;68:J6<3=#9:<18=5f13:94?=n9;31<75`1g:94?=zj:>?6=4<:183!46;3?2;6F:999K1=0<a?l1<75f16`94?=h9o21<75rb20f>5<3290;w)<>3;3;0>N2111C9584i7d94?=n?k0;66g=0`83>>i6n10;66sm32;94?5=83:p(??<:05f?M3>02B>4;5+124905=n9;21<75f13;94?=h9o21<75rb260>5<4290;w)<>3;7:3>N2111C9584i7d94?=n9>h1<75`1g:94?=zj:8o6=4;:183!46;3;386F:999K1=0<a?l1<75f7c83>>o58h0;66a>f983>>{e;:21<7=50;2x 77428=n7E;68:J6<3=#9:<18=5f13:94?=n9;31<75`1g:94?=zj:>:6=4<:183!46;3?2;6F:999K1=0<a?l1<75f16`94?=h9o21<75rb20`>5<3290;w)<>3;3;0>N2111C9584i7d94?=n?k0;66g=0`83>>i6n10;66sm32494?5=83:p(??<:05f?M3>02B>4;5+124905=n9;21<75f13;94?=h9o21<75rb250>5<3290;w)<>3;32a>N2111C9584$015>4=n>j0;66g82;29?l112900c?>?:188yg50:3:187>50z&156<69l1C9464H4:5?!74>3;0e;m50;9j37<722c<:7>5;n034?6=3th8;o4?:583>5}#:891=<k4H4;;?M3?>2.:?;4>;h4`>5<<a>81<75f7783>>i5890;66sm36c94?2=83:p(??<:03f?M3>02B>4;5+12495>o1k3:17d9=:188m20=831d>=>50;9~f61>290?6=4?{%027?76m2B>555G5948 451281b:n4?::k46?6=3`==6=44o323>5<<uk9<47>54;294~"59:0:=h5G58:8L0>13-;8:7?4i7a94?=n?;0;66g86;29?j4783:17pl<7683>1<729q/><=510g8L0??3A?3:6*>3782?l0d2900e:<50;9j33<722e9<=4?::a720=83>1<7>t$330>47b3A?246F:879'560=92c=o7>5;h51>5<<a><1<75`21294?=zj:=>6=4;:183!46;3;:i6F:999K1=0<,89=6<5f6b83>>o0:3:17d99:188k7672900qo=84;290?6=8r.9=>4>1d9K1<><@<2=7)?<6;38m3e=831b;?4?::k42?6=3f8;<7>5;|`034<72=0;6=u+201954c<@<337E;76:&273<63`<h6=44i6094?=n??0;66a=0183>>{e;>:1<7:50;2x 77428;n7E;68:J6<3=#9:<1=6g9c;29?l152900e:850;9l656=831vn>hl:186>5<7s-8:?7?>f:J6===O=1<0(<=9:09j2f<722c=h7>5;h51>5<<a><1<75`21294?=zj=:?6=4::183!46;3;:j6F:999K1=0<,89=6<5f6b83>>o1l3:17d9=:188m20=831d>=>50;9~f164290>6=4?{%027?76n2B>555G5948 451281b:n4?::k5`?6=3`=96=44i6494?=h:9:1<75rb521>5<2290;w)<>3;32b>N2111C9584$015>4=n>j0;66g9d;29?l152900e:850;9l656=831vn9>>:186>5<7s-8:?7?>f:J6===O=1<0(<=9:09j2f<722c=h7>5;h51>5<<a><1<75`21294?=zj=:;6=4::183!46;3;:j6F:999K1=0<,89=6<5f6b83>>o1l3:17d9=:188m20=831d>=>50;9~f6`a290>6=4?{%027?76n2B>555G5948 451281b:n4?::k5`?6=3`=96=44i6494?=h:9:1<75rb2df>5<2290;w)<>3;32b>N2111C9584$015>4=n>j0;66g9d;29?l152900e:850;9l656=831vn>hk:186>5<7s-8:?7?>f:J6===O=1<0(<=9:09j2f<722c=h7>5;h51>5<<a><1<75`21294?=zj:li6=4::183!46;3;:j6F:999K1=0<,89=6<5f6b83>>o1l3:17d9=:188m20=831d>=>50;9~f6`f290>6=4?{%027?76n2B>555G5948 451281b:n4?::k5`?6=3`=96=44i6494?=h:9:1<75rb2g5>5<2290;w)<>3;32b>N2111C9584$015>4=n>j0;66g9d;29?l152900e:850;9l656=831vn>kj:186>5<7s-8:?7?>f:J6===O=1<0(<=9:09j2f<722c=h7>5;h51>5<<a><1<75`21294?=zj:oo6=4::183!46;3;:j6F:999K1=0<,89=6<5f6b83>>o1l3:17d9=:188m20=831d>=>50;9~f6cd290>6=4?{%027?76n2B>555G5948 451281b:n4?::k5`?6=3`=96=44i6494?=h:9:1<75rb2ga>5<2290;w)<>3;32b>N2111C9584$015>4=n>j0;66g9d;29?l152900e:850;9l656=831vn>kn:186>5<7s-8:?7?>f:J6===O=1<0(<=9:09j2f<722c=h7>5;h51>5<<a><1<75`21294?=zj:o26=4::183!46;3;:j6F:999K1=0<,89=6<5f6b83>>o1l3:17d9=:188m20=831d>=>50;9~f6c?290>6=4?{%027?76n2B>555G5948 451281b:n4?::k5`?6=3`=96=44i6494?=h:9:1<75rb2g4>5<2290;w)<>3;32b>N2111C9584$015>4=n>j0;66g9d;29?l152900e:850;9l656=831vn>k::186>5<7s-8:?7?>f:J6===O=1<0(<=9:09j2f<722c=h7>5;h51>5<<a><1<75`21294?=zj:o?6=4::183!46;3;9=6F:999K1=0<,89=6o5f6b83>>o1l3:17d99:188m4`a2900c?>?:188yg5?:3:187>50z&156<69l1C9464H4:5?!74>3;0e;m50;9j37<722c<:7>5;n034?6=3th8;k4?:583>5}#:891=<k4H4;;?M3?>2.:?;4>;h4`>5<<a>81<75f7783>>i5890;66sm39:94?2=83:p(??<:03f?M3>02B>4;5+12495>o1k3:17d9=:188m20=831d>=>50;9~f6>1290?6=4?{%027?7582B>555G5948 4512k1b:n4?::k42?6=3`;mj7>5;n034?6=3th8484?:583>5}#:891=?>4H4;;?M3?>2.:?;4m;h4`>5<<a><1<75f1gd94?=h:9:1<75rb54:>5<4290;w)<>3;7:3>N2111C9584i7d94?=n9>h1<75`1g:94?=zj=?n6=4<:183!46;3;<i6F:999K1=0<,89=69>4i00;>5<<a8826=44o0d;>5<<uk><>7>53;294~"59:0>5:5G58:8L0>13`<m6=44i05a>5<<g8l36=44}c66g?6=<3:1<v*=1282<1=O=020D869;h4e>5<<a>h1<75f21c94?=h9o21<75rb544>5<4290;w)<>3;34a>N2111C9584$015>16<a8836=44i00:>5<<g8l36=44}c645?6=;3:1<v*=1286=2=O=020D869;h4e>5<<a8=i6=44o0d;>5<<uk>>n7>54;294~"59:0:495G58:8L0>13`<m6=44i6`94?=n:9k1<75`1g:94?=zj=<=6=4<:183!46;3;<i6F:999K1=0<,89=69>4i00;>5<<a8826=44o0d;>5<<uk><<7>53;294~"59:0>5:5G58:8L0>13`<m6=44i05a>5<<g8l36=44}c66e?6=<3:1<v*=1282<1=O=020D869;h4e>5<<a>h1<75f21c94?=h9o21<75rb546>5<4290;w)<>3;34a>N2111C9584$015>16<a8836=44i00:>5<<g8l36=44}c65b?6=;3:1<v*=1286=2=O=020D869;h4e>5<<a8=i6=44o0d;>5<<uk>>57>54;294~"59:0:495G58:8L0>13`<m6=44i6`94?=n:9k1<75`1g:94?=zj=<?6=4<:183!46;3;<i6F:999K1=0<,89=69>4i00;>5<<a8826=44o0d;>5<<uk>=i7>53;294~"59:0>5:5G58:8L0>13`<m6=44i05a>5<<g8l36=44}c66<?6=<3:1<v*=1282<1=O=020D869;h4e>5<<a>h1<75f21c94?=h9o21<75rb540>5<4290;w)<>3;34a>N2111C9584$015>16<a8836=44i00:>5<<g8l36=44}c65`?6=;3:1<v*=1286=2=O=020D869;h4e>5<<a8=i6=44o0d;>5<<uk>>;7>54;294~"59:0:495G58:8L0>13`<m6=44i6`94?=n:9k1<75`1g:94?=zj=<96=4<:183!46;3;<i6F:999K1=0<,89=69>4i00;>5<<a8826=44o0d;>5<<uk>=o7>53;294~"59:0>5:5G58:8L0>13`<m6=44i05a>5<<g8l36=44}c662?6=<3:1<v*=1282<1=O=020D869;h4e>5<<a>h1<75f21c94?=h9o21<75rb542>5<4290;w)<>3;34a>N2111C9584$015>16<a8836=44i00:>5<<g8l36=44}c65f?6=;3:1<v*=1286=2=O=020D869;h4e>5<<a8=i6=44o0d;>5<<uk>>97>54;294~"59:0:495G58:8L0>13`<m6=44i6`94?=n:9k1<75`1g:94?=zj=<;6=4<:183!46;3;<i6F:999K1=0<,89=69>4i00;>5<<a8826=44o0d;>5<<uk>=m7>53;294~"59:0>5:5G58:8L0>13`<m6=44i05a>5<<g8l36=44}c660?6=<3:1<v*=1282<1=O=020D869;h4e>5<<a>h1<75f21c94?=h9o21<75rb57e>5<4290;w)<>3;34a>N2111C9584$015>16<a8836=44i00:>5<<g8l36=44}c65<?6=;3:1<v*=1286=2=O=020D869;h4e>5<<a8=i6=44o0d;>5<<uk>>?7>54;294~"59:0:495G58:8L0>13`<m6=44i6`94?=n:9k1<75`1g:94?=zj=?o6=4<:183!46;3;<i6F:999K1=0<,89=69>4i00;>5<<a8826=44o0d;>5<<uk>3i7>54;294~"59:0:=h5G58:8L0>13-;8:7?4i7a94?=n?;0;66g86;29?j4783:17pl;8e83>1<729q/><=510g8L0??3A?3:6*>3782?l0d2900e:<50;9j33<722e9<=4?::a0<0=83>1<7>t$330>47b3A?246F:879'560=92c=o7>5;h51>5<<a><1<75`21294?=zj=3>6=4;:183!46;3;:i6F:999K1=0<,89=6<5f6b83>>o0:3:17d99:188k7672900qo:64;290?6=8r.9=>4>1d9K1<><@<2=7)?<6;38m3e=831b;?4?::k42?6=3f8;<7>5;|`7=6<72=0;6=u+201954c<@<337E;76:&273<63`<h6=44i6094?=n??0;66a=0183>>{e<081<7:50;2x 77428;n7E;68:J6<3=#9:<1=6g9c;29?l152900e:850;9l656=831vn97>:187>5<7s-8:?7?>e:J6===O=1<0(<=9:09j2f<722c<>7>5;h55>5<<g;:;6=44}c6:4?6=<3:1<v*=12825`=O=020D869;%302?7<a?i1<75f7383>>o0>3:17b<?0;29?xd30o0;694?:1y'645=98o0D877;I7;2>"6;?0:7d8l:188m24=831b;;4?::m145<722wi85m50;694?6|,;;86<?j;I7:<>N20?1/=>851:k5g?6=3`=96=44i6494?=h:9:1<75rb5:a>5<3290;w)<>3;32a>N2111C9584$015>4=n>j0;66g82;29?l112900c?>?:188yg2bm3:197>50z&156<69o1C9464H4:5?!74>3;0e;m50;9j2a<722c<>7>5;h55>5<<g;:;6=44}c6e2?6==3:1<v*=12825c=O=020D869;%302?7<a?i1<75f6e83>>o0:3:17d99:188k7672900qo:i5;291?6=8r.9=>4>1g9K1<><@<2=7)?<6;38m3e=831b:i4?::k46?6=3`==6=44o323>5<<uk>m87>55;294~"59:0:=k5G58:8L0>13-;8:7?4i7a94?=n>m0;66g82;29?l112900c?>?:188yg2a;3:197>50z&156<69o1C9464H4:5?!74>3;0e;m50;9j2a<722c<>7>5;h55>5<<g;:;6=44}c6e6?6==3:1<v*=12825c=O=020D869;%302?7<a?i1<75f6e83>>o0:3:17d99:188k7672900qo:i1;291?6=8r.9=>4>1g9K1<><@<2=7)?<6;38m3e=831b:i4?::k46?6=3`==6=44o323>5<<uk>m<7>55;294~"59:0:=k5G58:8L0>13-;8:7?4i7a94?=n>m0;66g82;29?l112900c?>?:188yg2bn3:197>50z&156<69o1C9464H4:5?!74>3;0e;m50;9j2a<722c<>7>5;h55>5<<g;:;6=44}c6f`?6==3:1<v*=12825c=O=020D869;%302?7<a?i1<75f6e83>>o0:3:17d99:188k7672900qo:jc;291?6=8r.9=>4>1g9K1<><@<2=7)?<6;38m3e=831b:i4?::k46?6=3`==6=44o323>5<<uk>o47>55;294~"59:0:=k5G58:8L0>13-;8:7?4i7a94?=n>m0;66g82;29?l112900c?>?:188yg2b83:197>50z&156<69o1C9464H4:5?!74>3;0e;m50;9j2a<722c<>7>5;h55>5<<g;:;6=44}c6gb?6==3:1<v*=12825c=O=020D869;%302?7<a?i1<75f6e83>>o0:3:17d99:188k7672900qo:ke;291?6=8r.9=>4>1g9K1<><@<2=7)?<6;38m3e=831b:i4?::k46?6=3`==6=44o323>5<<uk>oh7>55;294~"59:0:=k5G58:8L0>13-;8:7?4i7a94?=n>m0;66g82;29?l112900c?>?:188yg2ck3:197>50z&156<69o1C9464H4:5?!74>3;0e;m50;9j2a<722c<>7>5;h55>5<<g;:;6=44}c6gf?6==3:1<v*=12825c=O=020D869;%302?7<a?i1<75f6e83>>o0:3:17d99:188k7672900qo:ka;291?6=8r.9=>4>1g9K1<><@<2=7)?<6;38m3e=831b:i4?::k46?6=3`==6=44o323>5<<uk>o57>55;294~"59:0:=k5G58:8L0>13-;8:7?4i7a94?=n>m0;66g82;29?l112900c?>?:188yg2c?3:197>50z&156<69o1C9464H4:5?!74>3;0e;m50;9j2a<722c<>7>5;h55>5<<g;:;6=44}c6g2?6==3:1<v*=128264=O=020D869;%302?d<a?i1<75f6e83>>o0>3:17d?if;29?j4783:17pl;c383>0<729q/><=510d8L0??3A?3:6*>3782?l0d2900e;j50;9j37<722c<:7>5;n034?6=3th?ol4?:483>5}#:891=<h4H4;;?M3?>2.:?;4>;h4`>5<<a?n1<75f7383>>o0>3:17b<?0;29?xd3k00;684?:1y'645=98l0D877;I7;2>"6;?0:7d8l:188m3b=831b;?4?::k42?6=3f8;<7>5;|`7g=<72<0;6=u+201954`<@<337E;76:&273<63`<h6=44i7f94?=n?;0;66g86;29?j4783:17pl;c683>0<729q/><=510d8L0??3A?3:6*>3782?l0d2900e;j50;9j37<722c<:7>5;n034?6=3th?o;4?:483>5}#:891=<h4H4;;?M3?>2.:?;4>;h4`>5<<a?n1<75f7383>>o0>3:17b<?0;29?xd3k<0;684?:1y'645=98l0D877;I7;2>"6;?0:7d8l:188m3b=831b;?4?::k42?6=3f8;<7>5;|`7g1<72<0;6=u+201954`<@<337E;76:&273<63`<h6=44i7f94?=n?;0;66g86;29?j4783:17pl;c283>0<729q/><=510d8L0??3A?3:6*>3782?l0d2900e;j50;9j37<722c<:7>5;n034?6=3th?o<4?:483>5}#:891=??4H4;;?M3?>2.:?;4m;h4`>5<<a?n1<75f7783>>o6no0;66a=0183>>{e<j:1<7;50;2x 77428;m7E;68:J6<3=#9:<1=6g9c;29?l0c2900e:<50;9j33<722e9<=4?::a6gg=83>1<7>t$330>47b3A?246F:879'560=92c=o7>5;h51>5<<a><1<75`21294?=zj;i96=4;:183!46;3;:i6F:999K1=0<,89=6<5f6b83>>o0:3:17d99:188k7672900qo<l1;290?6=8r.9=>4>1d9K1<><@<2=7)?<6;38m3e=831b;?4?::k42?6=3f8;<7>5;|`1g5<72=0;6=u+201954c<@<337E;76:&273<63`<h6=44i6094?=n??0;66a=0183>>{e:kl1<7:50;2x 77428;n7E;68:J6<3=#9:<1=6g9c;29?l152900e:850;9l656=831vn?lj:187>5<7s-8:?7?>e:J6===O=1<0(<=9:09j2f<722c<>7>5;h55>5<<g;:;6=44}c0a`?6=<3:1<v*=12825`=O=020D869;%302?7<a?i1<75f7383>>o0>3:17b<?0;29?xd5jj0;694?:1y'645=98o0D877;I7;2>"6;?0:7d8l:188m24=831b;;4?::m145<722wi>ol50;694?6|,;;86<?j;I7:<>N20?1/=>851:k5g?6=3`=96=44i6494?=h:9:1<75rb3`:>5<3290;w)<>3;32a>N2111C9584$015>4=n>j0;66g82;29?l112900c?>?:188yg4e03:187>50z&156<69l1C9464H4:5?!74>3;0e;m50;9j37<722c<:7>5;n034?6=3th9844?:583>5}#:891=<k4H4;;?M3?>2.:?;4>;h4`>5<<a>81<75f7783>>i5890;66sm24394?2=83:p(??<:03f?M3>02B>4;5+12495>o1k3:17d9=:188m20=831d>=>50;9~f737290?6=4?{%027?76m2B>555G5948 451281b:n4?::k46?6=3`==6=44o323>5<<uk8?j7>54;294~"59:0:=h5G58:8L0>13-;8:7?4i7a94?=n?;0;66g86;29?j4783:17pl=4d83>1<729q/><=510g8L0??3A?3:6*>3782?l0d2900e:<50;9j33<722e9<=4?::a61b=83>1<7>t$330>47b3A?246F:879'560=92c=o7>5;h51>5<<a><1<75`21294?=zj;>h6=4;:183!46;3;:i6F:999K1=0<,89=6<5f6b83>>o0:3:17d99:188k7672900qo<;b;290?6=8r.9=>4>1d9K1<><@<2=7)?<6;38m3e=831b;?4?::k42?6=3f8;<7>5;|`10d<72=0;6=u+201954c<@<337E;76:&273<63`<h6=44i6094?=n??0;66a=0183>>{e:=21<7:50;2x 77428;n7E;68:J6<3=#9:<1=6g9c;29?l152900e:850;9l656=831vn?:8:187>5<7s-8:?7?>e:J6===O=1<0(<=9:09j2f<722c<>7>5;h55>5<<g;:;6=44}c121?6=<3:1<v*=12825`=O=020D869;%302?7<a?i1<75f7383>>o0>3:17b<?0;29?xd49m0;694?:1y'645=98o0D877;I7;2>"6;?0:7d8l:188m24=831b;;4?::m145<722wi?<m50;694?6|,;;86<?j;I7:<>N20?1/=>851:k5g?6=3`=96=44i6494?=h:9:1<75rb23a>5<3290;w)<>3;32a>N2111C9584$015>4=n>j0;66g82;29?l112900c?>?:188yg56i3:187>50z&156<69l1C9464H4:5?!74>3;0e;m50;9j37<722c<:7>5;n034?6=3th8=44?:583>5}#:891=<k4H4;;?M3?>2.:?;4>;h4`>5<<a>81<75f7783>>i5890;66sm30:94?2=83:p(??<:03f?M3>02B>4;5+12495>o1k3:17d9=:188m20=831d>=>50;9~f670290?6=4?{%027?76m2B>555G5948 451281b:n4?::k46?6=3`==6=44o323>5<<uk9::7>54;294~"59:0:=h5G58:8L0>13-;8:7?4i7a94?=n?;0;66g86;29?j4783:17pl<1583>1<729q/><=510g8L0??3A?3:6*>3782?l0d2900e:<50;9j33<722e9<=4?::a745=83>1<7>t$330>47b3A?246F:879'560=92c=o7>5;h51>5<<a><1<75`21294?=zj;k?6=4;:183!46;3;:i6F:999K1=0<,89=6<5f6b83>>o0:3:17d99:188k7672900qo<nc;290?6=8r.9=>4>1d9K1<><@<2=7)?<6;38m3e=831b;?4?::k42?6=3f8;<7>5;|`1eg<72=0;6=u+201954c<@<337E;76:&273<63`<h6=44i6094?=n??0;66a=0183>>{e:hk1<7:50;2x 77428;n7E;68:J6<3=#9:<1=6g9c;29?l152900e:850;9l656=831vn?o6:187>5<7s-8:?7?>e:J6===O=1<0(<=9:09j2f<722c<>7>5;h55>5<<g;:;6=44}c0b<?6=<3:1<v*=12825`=O=020D869;%302?7<a?i1<75f7383>>o0>3:17b<?0;29?xd5i>0;694?:1y'645=98o0D877;I7;2>"6;?0:7d8l:188m24=831b;;4?::m145<722wi>l850;694?6|,;;86<?j;I7:<>N20?1/=>851:k5g?6=3`=96=44i6494?=h:9:1<75rb3c6>5<3290;w)<>3;32a>N2111C9584$015>4=n>j0;66g82;29?l112900c?>?:188yg4f;3:187>50z&156<69l1C9464H4:5?!74>3;0e;m50;9j37<722c<:7>5;n034?6=3th9m?4?:583>5}#:891=<k4H4;;?M3?>2.:?;4>;h4`>5<<a>81<75f7783>>i5890;66sm2d494?2=83:p(??<:03f?M3>02B>4;5G699'5=5=:880(<=9:09j2f<722c<>7>5;h55>5<<g;:;6=44}c0fa?6=<3:1<v*=12825`=O=020D869;I4;?!7?;38:>6*>3782?l0d2900e:<50;9j33<722e9<=4?::a6`b=83>1<7>t$330>47b3A?246F:879K2==#9191><<4$015>4=n>j0;66g82;29?l112900c?>?:188yg4bk3:187>50z&156<69l1C9464H4:5?M0?3-;3?7<>2:&273<63`<h6=44i6094?=n??0;66a=0183>>{e:lh1<7:50;2x 77428;n7E;68:J6<3=O>11/=5=52008 451281b:n4?::k46?6=3`==6=44o323>5<<uk8nm7>54;294~"59:0:=h5G58:8L0>13A<37)?73;026>"6;?0:7d8l:188m24=831b;;4?::m145<722wi>h750;694?6|,;;86<?j;I7:<>N20?1C:55+1919644<,89=6<5f6b83>>o0:3:17d99:188k7672900qo<j8;290?6=8r.9=>4>1d9K1<><@<2=7E87;%3;7?46:2.:?;4>;h4`>5<<a>81<75f7783>>i5890;66sm2d594?2=83:p(??<:03f?M3>02B>4;5G699'5=5=:880(<=9:09j2f<722c<>7>5;h55>5<<g;:;6=44}c0f1?6=<3:1<v*=12825`=O=020D869;I4;?!7?;38:>6*>3782?l0d2900e:<50;9j33<722e9<=4?::a6`2=83>1<7>t$330>47b3A?246F:879K2==#9191><<4$015>4=n>j0;66g82;29?l112900c?>?:188yg40=3:187>50z&156<69l1C9464H4:5?M0?3-;3?7<>2:&273<63`<h6=44i6094?=n??0;66a=0183>>{e:>n1<7:50;2x 77428;n7E;68:J6<3=O>11/=5=52008 451281b:n4?::k46?6=3`==6=44o323>5<<uk8<o7>54;294~"59:0:=h5G58:8L0>13A<37)?73;026>"6;?0:7d8l:188m24=831b;;4?::m145<722wi>:l50;694?6|,;;86<?j;I7:<>N20?1C:55+1919644<,89=6<5f6b83>>o0:3:17d99:188k7672900qo<8a;290?6=8r.9=>4>1d9K1<><@<2=7E87;%3;7?46:2.:?;4>;h4`>5<<a>81<75f7783>>i5890;66sm26;94?2=83:p(??<:03f?M3>02B>4;5G699'5=5=:880(<=9:09j2f<722c<>7>5;h55>5<<g;:;6=44}c04<?6=<3:1<v*=12825`=O=020D869;I4;?!7?;38:>6*>3782?l0d2900e:<50;9j33<722e9<=4?::a621=83>1<7>t$330>47b3A?246F:879K2==#9191><<4$015>4=n>j0;66g82;29?l112900c?>?:188yg40>3:187>50z&156<69l1C9464H4:5?M0?3-;3?7<>2:&273<63`<h6=44i6094?=n??0;66a=0183>>{e:>>1<7:50;2x 77428;n7E;68:J6<3=O>11/=5=52008 451281b:n4?::k46?6=3`==6=44o323>5<<uk8<?7>54;294~"59:0:=h5G58:8L0>13A<37)?73;026>"6;?0:7d8l:188m24=831b;;4?::m145<722wi>8h50;694?6|,;;86<?j;I7:<>N20?1/=>851:k5g?6=3`=96=44i6494?=h:9:1<75rb344>5<3290;w)<>3;32a>N2111C9584$015>4=n>j0;66g82;29?l112900c?>?:188yg41>3:187>50z&156<69l1C9464H4:5?!74>3;0e;m50;9j37<722c<:7>5;n034?6=3th9:84?:583>5}#:891=<k4H4;;?M3?>2.:?;4>;h4`>5<<a>81<75f7783>>i5890;66sm27694?2=83:p(??<:03f?M3>02B>4;5+12495>o1k3:17d9=:188m20=831d>=>50;9~f704290?6=4?{%027?76m2B>555G5948 451281b:n4?::k46?6=3`==6=44o323>5<<uk8=>7>54;294~"59:0:=h5G58:8L0>13-;8:7?4i7a94?=n?;0;66g86;29?j4783:17pl=6083>1<729q/><=510g8L0??3A?3:6*>3782?l0d2900e:<50;9j33<722e9<=4?::a636=83>1<7>t$330>47b3A?246F:879'560=92c=o7>5;h51>5<<a><1<75`21294?=zj;?n6=4;:183!46;3;:i6F:999K1=0<,89=6<5f6b83>>o0:3:17d99:188k7672900qo<:d;290?6=8r.9=>4>1d9K1<><@<2=7)?<6;38m3e=831b;?4?::k42?6=3f8;<7>5;|`1`5<72=0;6=u+201954c<@<337E;76:&273<63`<h6=44i6094?=n??0;66a=0183>>{e:m21<7:50;2x 77428;n7E;68:J6<3=#9:<1=6g9c;29?l152900e:850;9l656=831vn?j8:187>5<7s-8:?7?>e:J6===O=1<0(<=9:09j2f<722c<>7>5;h55>5<<g;:;6=44}c0g2?6=<3:1<v*=12825`=O=020D869;%302?7<a?i1<75f7383>>o0>3:17b<?0;29?xd5l<0;694?:1y'645=98o0D877;I7;2>"6;?0:7d8l:188m24=831b;;4?::m145<722wi>i:50;694?6|,;;86<?j;I7:<>N20?1/=>851:k5g?6=3`=96=44i6494?=h:9:1<75rb3f0>5<3290;w)<>3;32a>N2111C9584$015>4=n>j0;66g82;29?l112900c?>?:188yg4c:3:187>50z&156<69l1C9464H4:5?!74>3;0e;m50;9j37<722c<:7>5;n034?6=3th9h<4?:583>5}#:891=<k4H4;;?M3?>2.:?;4>;h4`>5<<a>81<75f7783>>i5890;66sm2bd94?2=83:p(??<:03f?M3>02B>4;5+12495>o1k3:17d9=:188m20=831d>=>50;9~f7eb290?6=4?{%027?76m2B>555G5948 451281b:n4?::k46?6=3`==6=44o323>5<<uk>2;7>53;294~"59:0:;h5G58:8L0>13-;8:7?7;%3ea?3f?2c:>54?::k26<<722e:j54?::a053=83<1<7>t$330>4>63A?246F:879'560=:>1/=kk55`58m44?2900e<<6:188m44f2900e<<m:188m44d2900c<h7:188yg30m3:1?7>50z&156<6?l1C9464H4:5?!74>3;37d?=8;29?l7513:17b?i8;29?xd20=0;6>4?:1y'645=9>o0D877;I7;2>"6;?0:46*>fd86ed=n9;21<75f13;94?=h9o21<75rb53b>5<2290;w)<>3;3;4>N2111C9584$015>17<a8836=44i00:>5<<a88j6=44i00a>5<<g8l36=44}c62<?6==3:1<v*=1282<5=O=020D869;%302?263`;947>5;h31=?6=3`;9m7>5;h31f?6=3f;m47>5;|`753<72<0;6=u+20195=6<@<337E;76:&273<392c:>54?::k26<<722c:>l4?::k26g<722e:j54?::a042=83?1<7>t$330>4>73A?246F:879'560=<81b=?650;9j57?=831b=?o50;9j57d=831d=k650;9~f175290>6=4?{%027?7?82B>555G5948 4512=;0e<<7:188m44>2900e<<n:188m44e2900c<h7:188yg26k3:1?7>50z&156<6?l1C9464H4:5?!74>3>;7d?=8;29?l7513:17b?i8;29?xd3;80;684?:1y'645=91:0D877;I7;2>"6;?0?=6g>2983>>o6:00;66g>2`83>>o6:k0;66a>f983>>{e<;l1<7;50;2x 774282;7E;68:J6<3=#9:<18<5f13:94?=n9;31<75f13c94?=n9;h1<75`1g:94?=zj=8o6=4::183!46;3;3<6F:999K1=0<,89=69?4i00;>5<<a8826=44i00b>5<<a88i6=44o0d;>5<<uk>9n7>55;294~"59:0:4=5G58:8L0>13-;8:7:>;h31<?6=3`;957>5;h31e?6=3`;9n7>5;n3e<?6=3th?>44?:483>5}#:891=5>4H4;;?M3?>2.:?;4;1:k26=<722c:>44?::k26d<722c:>o4?::m2b=<722wi8>=50;194?6|,;;86<9j;I7:<>N20?1/=>85419j57>=831b=?750;9l5c>=831vn>7k:186>5<7s-8:?7?70:J6===O=1<0(<=9:538m44?2900e<<6:188m44f2900e<<m:188k4`?2900qo=6b;291?6=8r.9=>4>819K1<><@<2=7)?<6;62?l7503:17d?=9;29?l75i3:17d?=b;29?j7a03:17pl<9883>0<729q/><=51928L0??3A?3:6*>37875>o6:10;66g>2883>>o6:h0;66g>2c83>>i6n10;66sm38594?3=83:p(??<:0:3?M3>02B>4;5+124904=n9;21<75f13;94?=n9;k1<75f13`94?=h9o21<75rb2;6>5<2290;w)<>3;3;4>N2111C9584$015>17<a8836=44i00:>5<<a88j6=44i00a>5<<g8l36=44}c1:b?6=;3:1<v*=12823`=O=020D869;%302?273`;947>5;h31=?6=3f;m47>5;|`0f1<72<0;6=u+20195=6<@<337E;76:&273<392c:>54?::k26<<722c:>l4?::k26g<722e:j54?::a7g4=83?1<7>t$330>4>73A?246F:879'560=<81b=?650;9j57?=831b=?o50;9j57d=831d=k650;9~f6d7290>6=4?{%027?7?82B>555G5948 4512=;0e<<7:188m44>2900e<<n:188m44e2900c<h7:188yg5fm3:197>50z&156<6091C9464H4:5?!74>39o7d?=8;29?l7513:17d?=a;29?l75j3:17b?i8;29?xd4ij0;684?:1y'645=91:0D877;I7;2>"6;?08o6g>2983>>o6:00;66g>2`83>>o6:k0;66a>f983>>{e;k<1<7=50;2x 77428=n7E;68:J6<3=#9:<18=5f13:94?=n9;31<75`1g:94?=zj:?n6=48:183!46;3;3>6F:999K1=0<,89=6>l4i00;>5<<a8826=44i00b>5<<a88i6=44i00`>5<<a88o6=44o0d;>5<<uk9?i7>55;294~"59:0:4=5G58:8L0>13-;8:7=<;h31<?6=3`;957>5;h31e?6=3`;9n7>5;n3e<?6=3th8954?:683>5}#:891=5<4H4;;?M3?>2.:?;46;h31<?6=3`;957>5;h31e?6=3`;9n7>5;h31g?6=3`;9h7>5;n3e<?6=3th8>54?:583>5}#:891=:h4H4;;?M3?>2.:?;4;6:&2b`<2i?1b=?650;9j57?=831b=?o50;9l5c>=831vn><n:186>5<7s-8:?7?70:J6===O=1<0(<=9:69'5cc==k>0e<<7:188m44>2900e<<n:188m44e2900c<h7:188yg55j3:1:7>50z&156<6081C9464H4:5?!74>320(<hj:4`7?l7503:17d?=9;29?l75i3:17d?=b;29?l75k3:17b?i8;29?xd4:00;694?:1y'645=9>l0D877;I7;2>"6;?0=7)?ie;7b2>o6:10;66g>2883>>o6:h0;66a>f983>>{e;j21<7850;2x 774282:7E;68:J6<3=#9:<18:5f13:94?=n9;31<75f13c94?=n9;h1<75f13a94?=h9o21<75rb2`g>5<0290;w)<>3;3;6>N2111C9584$015>2g<a8836=44i00:>5<<a88j6=44i00a>5<<a88h6=44i00g>5<<g8l36=44}c1ag?6=>3:1<v*=1282<4=O=020D869;%302?1>3`;947>5;h31=?6=3`;9m7>5;h31f?6=3`;9o7>5;n3e<?6=3th8ol4?:783>5}#:891=5?4H4;;?M3?>2.:?;4:;h31<?6=3`;957>5;h31e?6=3`;9n7>5;h31g?6=3f;m47>5;|`0g4<72:0;6=u+201952c<@<337E;76:&273<502.:jh4:a29j57>=831b=?750;9l5c>=831vn>m=:187>5<7s-8:?7?8f:J6===O=1<0(<=9:3f8 4`b2<k87d?=8;29?l7513:17d?=a;29?j7a03:17pl<c283>1<729q/><=516d8L0??3A?3:6*>37806>o6:10;66g>2883>>o6:h0;66a>f983>>{e;>o1<7:50;2x 77428=m7E;68:J6<3=#9:<1:45+1gg91d7<a8836=44i00:>5<<a88j6=44o0d;>5<<uk9387>54;294~"59:0:;k5G58:8L0>13-;8:789;%3ea?3f92c:>54?::k26<<722c:>l4?::m2b=<722wi?:j50;794?6|,;;86<6?;I7:<>N20?1/=>853g9'5cc==kh0e<<7:188m44>2900e<<n:188m44e2900c<h7:188yg5?93:197>50z&156<6091C9464H4:5?!74>3k0(<hj:4`a?l7503:17d?=9;29?l75i3:17d?=b;29?j7a03:17pl<7b83>0<729q/><=51928L0??3A?3:6*>37812>"6nl0>n:5f13:94?=n9;31<75f13c94?=n9;h1<75`1g:94?=zj=?;6=48:183!46;3;3>6F:999K1=0<,89=6<?m;h31<?6=3`;957>5;h31e?6=3`;9n7>5;h31g?6=3`;9h7>5;n3e<?6=3th?844?:583>5}#:891=:h4H4;;?M3?>2.:?;4=d:&2b`<2jh1b=?650;9j57?=831b=?o50;9l5c>=831vn9:n:187>5<7s-8:?7?8f:J6===O=1<0(<=9:208m44?2900e<<6:188m44f2900c<h7:188yg2303:1?7>50z&156<6?l1C9464H4:5?!74>3837d?=8;29?l7513:17b?i8;29?xd3i=0;6;4?:1y'645=91;0D877;I7;2>"6;?0?;6g>2983>>o6:00;66g>2`83>>o6:k0;66g>2b83>>i6n10;66sm48;94?1=83:p(??<:0:1?M3>02B>4;5+12493d=n9;21<75f13;94?=n9;k1<75f13`94?=n9;i1<75f13f94?=h9o21<75rb5;;>5<1290;w)<>3;3;5>N2111C9584$015>2?<a8836=44i00:>5<<a88j6=44i00a>5<<a88h6=44o0d;>5<<uk>j:7>56;294~"59:0:4<5G58:8L0>13-;8:7;4i00;>5<<a8826=44i00b>5<<a88i6=44i00`>5<<g8l36=44}c6:a?6=<3:1<v*=12823c=O=020D869;%302?4c3-;mi7;n2:k26=<722c:>44?::k26d<722e:j54?::a0<`=83>1<7>t$330>41a3A?246F:879'560=;;1b=?650;9j57?=831b=?o50;9l5c>=831vn97k:180>5<7s-8:?7?8e:J6===O=1<0(<=9:3:8 4`b2<k97d?=8;29?l7513:17b?i8;29?xd50h0;6>4?:1y'645=9>o0D877;I7;2>"6;?0946*>fd86e0=n9;21<75f13;94?=h9o21<75rb3:`>5<3290;w)<>3;34b>N2111C9584$015>14<,8ln68o:;h31<?6=3`;957>5;h31e?6=3f;m47>5;|`042<72:0;6=u+201952c<@<337E;76:&273<502.:jh4:a59j57>=831b=?750;9l5c>=831vn>>6:187>5<7s-8:?7?8f:J6===O=1<0(<=9:508 4`b2<k?7d?=8;29?l7513:17d?=a;29?j7a03:17pl=2683>6<729q/><=516g8L0??3A?3:6*>3781<>"6nl0>mk5f13:94?=n9;31<75`1g:94?=zj;8=6=4<:183!46;3;<i6F:999K1=0<,89=6?64$0df>0ga3`;947>5;h31=?6=3f;m47>5;|`160<72:0;6=u+201952c<@<337E;76:&273<502c:>54?::k26<<722e:j54?::a674=8391<7>t$330>41b3A?246F:879'560=:11b=?650;9j57?=831d=k650;9~f74329086=4?{%027?70m2B>555G5948 4512;20(<hj:4`0?l7503:17d?=9;29?j7a03:17pl=2283>6<729q/><=516g8L0??3A?3:6*>3781<>"6nl0>n>5f13:94?=n9;31<75`1g:94?=zj;8:6=4<:183!46;3;<i6F:999K1=0<,89=6?64$0df>0d53`;947>5;h31=?6=3f;m47>5;|`165<72:0;6=u+201952c<@<337E;76:&273<502.:jh4:b39j57>=831b=?750;9l5c>=831vn??k:180>5<7s-8:?7?8e:J6===O=1<0(<=9:3:8 4`b2<kn7d?=8;29?l7513:17b?i8;29?xd59o0;6>4?:1y'645=9>o0D877;I7;2>"6;?0946*>fd86ea=n9;21<75f13;94?=h9o21<75rb33f>5<4290;w)<>3;34a>N2111C9584$015>7><,8ln68ok;h31<?6=3`;957>5;n3e<?6=3th9=n4?:283>5}#:891=:k4H4;;?M3?>2.:?;4=8:&2b`<2il1b=?650;9j57?=831d=k650;9~f77e29086=4?{%027?70m2B>555G5948 4512;20e<<7:188m44>2900c<h7:188yg4603:1?7>50z&156<6?l1C9464H4:5?!74>3837d?=8;29?l7513:17b?i8;29?xd59h0;6>4?:1y'645=9>o0D877;I7;2>"6;?0946*>fd86f4=n9;21<75f13;94?=h9o21<75rb33:>5<4290;w)<>3;34a>N2111C9584$015>7><,8ln68l>;h31<?6=3`;957>5;n3e<?6=3th9=:4?:283>5}#:891=:k4H4;;?M3?>2.:?;4=8:&2b`<2j91b=?650;9j57?=831d=k650;9~f77129086=4?{%027?70m2B>555G5948 4512;20(<hj:4`3?l7503:17d?=9;29?j7a03:17pl=1483>6<729q/><=516g8L0??3A?3:6*>3781<>"6nl0>mn5f13:94?=n9;31<75`1g:94?=zj;;?6=4<:183!46;3;<i6F:999K1=0<,89=6?64$0df>0gd3`;947>5;h31=?6=3f;m47>5;|`1<a<72<0;6=u+20195=6<@<337E;76:&273<5i2.:jh4:b89j57>=831b=?750;9j57g=831b=?l50;9l5c>=831vn?6i:185>5<7s-8:?7?71:J6===O=1<0(<=9:518 4`b2<h27d?=8;29?l7513:17d?=a;29?l75j3:17d?=c;29?j7a03:17pl=9083>2<729q/><=51908L0??3A?3:6*>3781g>o6:10;66g>2883>>o6:h0;66g>2c83>>o6:j0;66g>2e83>>i6n10;66sm31c94?3=83:p(??<:0:3?M3>02B>4;5+12496d=#9oo19o64i00;>5<<a8826=44i00b>5<<a88i6=44o0d;>5<<uk9;o7>56;294~"59:0:4<5G58:8L0>13-;8:7:<;%3ea?3e02c:>54?::k26<<722c:>l4?::k26g<722c:>n4?::m2b=<722wi?=k50;594?6|,;;86<6=;I7:<>N20?1/=>852b9j57>=831b=?750;9j57g=831b=?l50;9j57e=831b=?j50;9l5c>=831vn>;?:186>5<7s-8:?7?70:J6===O=1<0(<=9:2:8m44?2900e<<6:188m44f2900e<<m:188k4`?2900qo=;d;293?6=8r.9=>4>839K1<><@<2=7)?<6;1a?l7503:17d?=9;29?l75i3:17d?=b;29?l75k3:17d?=d;29?j7a03:17pl<5283>0<729q/><=51928L0??3A?3:6*>3780<>o6:10;66g>2883>>o6:h0;66g>2c83>>i6n10;66sm34094?1=83:p(??<:0:1?M3>02B>4;5+12490>o6:10;66g>2883>>o6:h0;66g>2c83>>o6:j0;66g>2e83>>i6n10;66sm37294?5=83:p(??<:05f?M3>02B>4;5+124973=n9;21<75f13;94?=h9o21<75rb27e>5<0290;w)<>3;3;6>N2111C9584$015>6c<a8836=44i00:>5<<a88j6=44i00a>5<<a88h6=44i00g>5<<g8l36=44}c1`4?6=;3:1<v*=12823`=O=020D869;%302?513`;947>5;h31=?6=3f;m47>5;|`0fc<72>0;6=u+20195=4<@<337E;76:&273<0i2c:>54?::k26<<722c:>l4?::k26g<722c:>n4?::k26a<722e:j54?::a0<e=8391<7>t$330>41b3A?246F:879'560=;?1b=?650;9j57?=831d=k650;9~f1?e290<6=4?{%027?7?:2B>555G5948 4512>k0e<<7:188m44>2900e<<n:188m44e2900e<<l:188m44c2900c<h7:188yg4f83:1;7>50z&156<60;1C9464H4:5?!74>38h7d?=8;29?l7513:17d?=a;29?l75j3:17d?=c;29?l75l3:17b?i8;29?xd51o0;6:4?:1y'645=9180D877;I7;2>"6;?09o6g>2983>>o6:00;66g>2`83>>o6:k0;66g>2b83>>o6:m0;66a>f983>>{e;9>1<7950;2x 77428297E;68:J6<3=#9:<1>n5f13:94?=n9;31<75f13c94?=n9;h1<75f13a94?=n9;n1<75`1g:94?=zj::86=48:183!46;3;3>6F:999K1=0<,89=6?m4i00;>5<<a8826=44i00b>5<<a88i6=44i00`>5<<a88o6=44o0d;>5<<uk8287>53;294~"59:0:;h5G58:8L0>13-;8:7<7;%3ea?3f12c:>54?::k26<<722e:j54?::a6<5=83=1<7>t$330>4>53A?246F:879'560=:j1b=?650;9j57?=831b=?o50;9j57d=831b=?m50;9j57b=831d=k650;9~f7?0290?6=4?{%027?70n2B>555G5948 4512;30(<hj:4c:?l7503:17d?=9;29?l75i3:17b?i8;29?xd51?0;6:4?:1y'645=9180D877;I7;2>"6;?0?86g>2983>>o6:00;66g>2`83>>o6:k0;66g>2b83>>o6:m0;66a>f983>>{e:0k1<7;50;2x 774282;7E;68:J6<3=#9:<1>l5+1gg91g0<a8836=44i00:>5<<a88j6=44i00a>5<<g8l36=44}c0:=?6=?3:1<v*=1282<7=O=020D869;%302?4d3`;947>5;h31=?6=3`;9m7>5;h31f?6=3`;9o7>5;h31`?6=3f;m47>5;|`1=a<72?0;6=u+20195=7<@<337E;76:&273<5j2.:jh4:b79j57>=831b=?750;9j57g=831b=?l50;9j57e=831d=k650;9~f7?d290<6=4?{%027?7?:2B>555G5948 4512=>0e<<7:188m44>2900e<<n:188m44e2900e<<l:188m44c2900c<h7:188yg4aj3:187>50z&156<6?o1C9464H4:5?!74>3827)?ie;7b<>o6:10;66g>2883>>o6:h0;66a>f983>>{e:ok1<7950;2x 77428297E;68:J6<3=#9:<1895f13:94?=n9;31<75f13c94?=n9;h1<75f13a94?=n9;n1<75`1g:94?=zj:;:6=4<:183!46;3;<i6F:999K1=0<,89=6?64$0df>0g?3`;947>5;h31=?6=3f;m47>5;|`055<72>0;6=u+20195=4<@<337E;76:&273<5k2c:>54?::k26<<722c:>l4?::k26g<722c:>n4?::k26a<722e:j54?::a6cc=83?1<7>t$330>4>73A?246F:879'560=:h1/=kk55c78m44?2900e<<6:188m44f2900e<<m:188k4`?2900qo<id;293?6=8r.9=>4>839K1<><@<2=7)?<6;0`?l7503:17d?=9;29?l75i3:17d?=b;29?l75k3:17d?=d;29?j7a03:17pl<0083>3<729q/><=51938L0??3A?3:6*>3781f>"6nl0>n85f13:94?=n9;31<75f13c94?=n9;h1<75f13a94?=h9o21<75rb223>5<0290;w)<>3;3;6>N2111C9584$015>12<a8836=44i00:>5<<a88j6=44i00a>5<<a88h6=44i00g>5<<g8l36=44}c7;6?6=<3:1<v*=12823c=O=020D869;%302?76>2.:jh4:a`9j57>=831b=?750;9j57g=831d=k650;9~f01a290?6=4?{%027?7582B>555G5948L3><,8286??=;h4`>5<<a><1<75f1gd94?=h:9:1<75rb56`>5<2290;w)<>3;3;4>N2111C9584$015>7c<,8ln68ln;h31<?6=3`;957>5;h31e?6=3`;9n7>5;n3e<?6=3th?8i4?:783>5}#:891=5?4H4;;?M3?>2.:?;4=f:k26=<722c:>44?::k26d<722c:>o4?::k26f<722e:j54?::a70g=83=1<7>t$330>4>53A?246F:879'560=901b=?650;9j57?=831b=?o50;9j57d=831b=?m50;9j57b=831d=k650;9~f12b290<6=4?{%027?7?:2B>555G5948 4512:>0e<<7:188m44>2900e<<n:188m44e2900e<<l:188m44c2900c<h7:188yg51:3:1;7>50z&156<60;1C9464H4:5?!74>39j7d?=8;29?l7513:17d?=a;29?l75j3:17d?=c;29?l75l3:17b?i8;29?xd4>80;6:4?:1y'645=9180D877;I7;2>"6;?027d?=8;29?l7513:17d?=a;29?l75j3:17d?=c;29?l75l3:17b?i8;29?xd3<?0;6;4?:1y'645=91;0D877;I7;2>"6;?0856g>2983>>o6:00;66g>2`83>>o6:k0;66g>2b83>>i6n10;66sm45794?1=83:p(??<:0:1?M3>02B>4;5+124975=n9;21<75f13;94?=n9;k1<75f13`94?=n9;i1<75f13f94?=h9o21<75rb51b>5<0290;w)<>3;3;6>N2111C9584$015>6g<a8836=44i00:>5<<a88j6=44i00a>5<<a88h6=44i00g>5<<g8l36=44}c666?6==3:1<v*=1282<5=O=020D869;%302?5?3`;947>5;h31=?6=3`;9m7>5;h31f?6=3f;m47>5;|`714<72>0;6=u+20195=4<@<337E;76:&273<482c:>54?::k26<<722c:>l4?::k26g<722c:>n4?::k26a<722e:j54?::a71`=83>1<7>t$330>41a3A?246F:879'560=;>1b=?650;9j57?=831b=?o50;9l5c>=831vn>;l:184>5<7s-8:?7?72:J6===O=1<0(<=9:89j57>=831b=?750;9j57g=831b=?l50;9j57e=831b=?j50;9l5c>=831vn9:m:180>5<7s-8:?7?8e:J6===O=1<0(<=9:248m44?2900e<<6:188k4`?2900qo:;f;293?6=8r.9=>4>839K1<><@<2=7)?<6;13?l7503:17d?=9;29?l75i3:17d?=b;29?l75k3:17d?=d;29?j7a03:17pl<b883>2<729q/><=51908L0??3A?3:6*>378266=n9;21<75f13;94?=n9;k1<75f13`94?=n9;i1<75f13f94?=h9o21<75rb2a:>5<0290;w)<>3;3;6>N2111C9584$015>13<a8836=44i00:>5<<a88j6=44i00a>5<<a88h6=44i00g>5<<g8l36=44}c6b1?6=?3:1<v*=1282<7=O=020D869;%302?223`;947>5;h31=?6=3`;9m7>5;h31f?6=3`;9o7>5;h31`?6=3f;m47>5;|`0g2<72>0;6=u+20195=4<@<337E;76:&273<4=2c:>54?::k26<<722c:>l4?::k26g<722c:>n4?::k26a<722e:j54?::a0d5=83=1<7>t$330>4>53A?246F:879'560=;<1b=?650;9j57?=831b=?o50;9j57d=831b=?m50;9j57b=831d=k650;9~f6e3290>6=4?{%027?7?82B>555G5948 4512;o0(<hj:4ca?l7503:17d?=9;29?l75i3:17d?=b;29?j7a03:17pl;a183>0<729q/><=51928L0??3A?3:6*>3781a>"6nl0>m=5f13:94?=n9;31<75f13c94?=n9;h1<75`1g:94?=zj<<36=49:183!46;3;3=6F:999K1=0<,89=6<<;;%3ea?3e?2c:>54?::k26<<722c:>l4?::k26g<722c:>n4?::m2b=<722wi?n;50;494?6|,;;86<6>;I7:<>N20?1/=>852g9'5cc==hh0e<<7:188m44>2900e<<n:188m44e2900e<<l:188k4`?2900qo:n1;292?6=8r.9=>4>809K1<><@<2=7)?<6;0e?!7am3?j<6g>2983>>o6:00;66g>2`83>>o6:k0;66g>2b83>>i6n10;66sm3b494?1=83:p(??<:0:1?M3>02B>4;5+124975=n9;21<75f13;94?=n9;k1<75f13`94?=n9;i1<75f13f94?=h9o21<75rb5c1>5<0290;w)<>3;3;6>N2111C9584$015>66<a8836=44i00:>5<<a88j6=44i00a>5<<a88h6=44i00g>5<<g8l36=44}c1aa?6=:3:1<v*=12823d=O=020D869;h313?6=3f;m47>5;|`702<72;0;6=u+201952g<@<337E;76:k262<722e:j54?::a0<g=8381<7>t$330>41f3A?246F:879j571=831d=k650;9~f001290io7>50z&156<58;1C9464H4:5?_0e2jq9<7<=:0a953<6?3;i6?:520811?7c2;91=l4rn659=>h00330bh750:l24g<73-;:57?>c:&25d<59;1/>=h52:&26`<43-;9j7=4$013>6=#9:;1?6*>3380?!74;390(<=;:29'563=;2.:?:4<;%30<?5<,8926>5+12c97>"6;k087)?<c;18 45c2:1/=>k53:&27c<43-;?<7=4$062>6=#9=81?6*>4280?!73<390(<:::29'510=;2.:8:4<;%37<?5<,8>26>5+15c97>"6<k087)?;c;18 42c2:1/=9k53:&20c<43-;><7=4$072>6=#9<81?6*>5280?!72<390(<;::29'500=;2.:9:4<;%36<?5<,8?26>5+14c97>"6=k087)?:c;18 43c2:1/=8k53:&21c<43-;=<7=4$042>6=#9?81?6*>6280?!71<390(<8::29'530=;2.:::4<;%35<?5<,8<26>5+17c97>"6>k087)?9c;18 40c2:1/=;k53:&22c<43-;<<7=4$052>6=#9>81?6*>7280?!70<390(<9::29'520=;2.:;44>f69'651=:8;0(?>7:7f8 76>2?n0(?>m:758 76d2;:n7)?87;08 41?2;1/94:55818 0?22<387)<>0;08m7642900e:>50;9j54>=831b>=850;9j34<722c9<94?::k140<722c:=:4?::k`6?6=,8lo6n?4n0d`>5=<aj:1<7*>fe8`5>h6nj0:76gmf;29 4`c2j;0b<hl:398mgc=83.:ji4l1:l2bf<432c>4i4?:%3e`?3?k2d:jn4?;:k6<g<72-;mh7;7c:l2bf<632c>4l4?:%3e`?3?k2d:jn4=;:k6<<<72-;mh7;7c:l2bf<432en=7>5$0dg>`6<f8lh6=54oed94?"6nm0n<6`>fb82?>icl3:1(<hk:d28j4`d2;10cim50;&2ba<b82d:jn4<;:mgf?6=,8lo6h>4n0d`>1=<gmk1<7*>fe8f4>h6nj0>76ak9;29 4`c2l:0b<hl:798ka>=83.:ji4j0:l2bf<032eo;7>5$0dg>`6<f8lh6554oe494?"6nm0n<6`>fb8:?>ic=3:1(<hk:d28j4`d2h10ci:50;&2ba<b82d:jn4m;:mg6?6=,8lo6h>4n0d`>f=<gm;1<7*>fe8f4>h6nj0o76ak0;29 4`c2l:0b<hl:d98kf`=83.:ji4j0:l2bf<a32ehi7>5$0dg>`6<f8lh6<>4;nag>5<#9on1i=5a1ga954=<gji1<7*>fe8f4>h6nj0:>65`cc83>!7al3o;7c?ic;30?>idi3:1(<hk:d28j4`d28>07bm6:18'5cb=m91e=km51498k`>=83.:ji4j0:l2bf<6>21di:4?:%3e`?c73g;mo7?8;:mf2?6=,8lo6h>4n0d`>4><3fo>6=4+1gf9a5=i9oi1=454od694?"6nm0n<6`>fb82e>=hm:0;6)?id;g3?k7ak3;i76aj2;29 4`c2l:0b<hl:0a8?jbb290/=kj5e19m5ce=9m10ci=50;&2ba<b82d:jn4>e:9lg=<72-;mh7k?;o3eg?7a32c?h7>5$0dg>1e<f8lh6=54i5`94?"6nm0?o6`>fb82?>o3i3:1(<hk:5a8j4`d2;10e9750;&2ba<3k2d:jn4<;:k62?6=,8lo69m4n0d`>1=<a<?1<7*>fe87g>h6nj0>76g:4;29 4`c2=i0b<hl:798m05=83.:ji4;c:l2bf<032c>>7>5$0dg>1e<f8lh6554i4394?"6nm0?o6`>fb8:?>o283:1(<hk:5a8j4`d2h10e9h50;&2ba<3k2d:jn4m;:k7a?6=,8lo69m4n0d`>f=<a=21<7*>fe87g>h6nj0o76g:c;29 4`c2<h0b<hl:198m0g=83.:ji4:b:l2bf<632c>57>5$0dg>0d<f8lh6?54i4:94?"6nm0>n6`>fb80?>o1=3:1(<hk:4`8j4`d2=10e;:50;&2ba<2j2d:jn4:;:k57?6=,8lo68l4n0d`>3=<a?81<7*>fe86f>h6nj0<76g91;29 4`c2<h0b<hl:998m36=83.:ji4:b:l2bf<>32c>j7>5$0dg>0d<f8lh6l54i4g94?"6nm0>n6`>fb8a?>o2l3:1(<hk:4`8j4`d2j10e8950;&2ba<2j2d:jn4k;:ka2?6=,8lo6o;4n0d`>5=<ak>1<7*>fe8a1>h6nj0:76gm2;29 4`c2k?0b<hl:398mg7=83.:ji4m5:l2bf<432ci<7>5$0dg>g3<f8lh6954i`d94?"6nm0i96`>fb86?>ofm3:1(<hk:c78j4`d2?10elj50;&2ba<e=2d:jn48;:kbg?6=,8lo6o;4n0d`>==<ahh1<7*>fe8a1>h6nj0276gna;29 4`c2k?0b<hl:`98md?=83.:ji4m5:l2bf<e32cj;7>5$0dg>g3<f8lh6n54i`494?"6nm0i96`>fb8g?>of=3:1(<hk:c78j4`d2l10el:50;&2ba<e=2d:jn4i;:kb7?6=,8lo6o;4n0d`>46<3`k96=4+1gf9f0=i9oi1=<54i`394?"6nm0i96`>fb826>=ni90;6)?id;`6?k7ak3;876g6f;29 4`c2k?0b<hl:068?l?b290/=kj5b49m5ce=9<10eoj50;&2ba<e=2d:jn4>6:9jff<72-;mh7l:;o3eg?7032cin7>5$0dg>g3<f8lh6<64;h`b>5<#9on1n85a1ga95<=<ak31<7*>fe8a1>h6nj0:m65fb983>!7al3h>7c?ic;3a?>oe?3:1(<hk:c78j4`d28i07dl<:18'5cb=j<1e=km51e98md>=83.:ji4m5:l2bf<6m21b5i4?:%3e`?d23g;mo7?i;:m255<72-;mh7??f:l2bf<732e:<h4?:%3e`?77n2d:jn4>;:m24a<72-;mh7??f:l2bf<532e:<n4?:%3e`?77n2d:jn4<;:k`3?6=,8lo6n84n0d`>5=<aj?1<7*>fe8`2>h6nj0:76gl4;29 4`c2j<0b<hl:398mf5=83.:ji4l6:l2bf<432e:=84?:%3e`?76<2d:jn4?;:m256<72-;mh7?>4:l2bf<632e:=?4?:%3e`?76<2d:jn4=;:m254<72-;mh7?>4:l2bf<432e:<>4?:%3e`?77:2d:jn4?;:m244<72-;mh7??2:l2bf<632emj7>5$0dg>4653g;mo7<4;ndf>5<#9on1==<4n0d`>6=<gon1<7*>fe8247=i9oi1865`fb83>!7al3;;>6`>fb86?>iaj3:1(<hk:021?k7ak3<07bhn:18'5cb=9980b<hl:698kc?=83.:ji4>039m5ce=021dj54?:%3e`?77:2d:jn46;:me3?6=,8lo6<>=;o3eg?g<3fl=6=4+1gf9554<f8lh6o54og694?"6nm0:<?5a1ga9g>=hn:0;6)?id;336>h6nj0o76ai2;29 4`c28:97c?ic;g8?j`6290/=kj51108j4`d2o10ck>50;&2ba<68;1e=km51198k``=83.:ji4>039m5ce=9810chk50;&2ba<68;1e=km51398k`b=83.:ji4>039m5ce=9:10chm50;&2ba<68;1e=km51598k`d=83.:ji4>039m5ce=9<10c<>n:18'5cb=9980b<hl:048?j7713:1(<hk:021?k7ak3;<76a>0983>!7al3;;>6`>fb82<>=h99=1<7*>fe8247=i9oi1=454o025>5<#9on1==<4n0d`>4g<3f;;97>5$0dg>4653g;mo7?m;:m241<72-;mh7??2:l2bf<6k21d==>50;&2ba<68;1e=km51e98kc3=83.:ji4>039m5ce=9l10cho50;&2ba<68;1e=km51g98m0?5290/=kj55838j4`d2910e87?:18'5cb==0;0b<hl:098m0>a290/=kj55838j4`d2;10e86j:18'5cb==0;0b<hl:298m<3=83.:ji464:l2bf<732c2?7>5$0dg><2<f8lh6<54i8394?"6nm0286`>fb81?>o>83:1(<hk:868j4`d2:10e5h50;&2ba<><2d:jn4;;:k;a?6=,8lo64:4n0d`>0=<a1n1<7*>fe8:0>h6nj0=76g7c;29 4`c20>0b<hl:698m=d=83.:ji464:l2bf<?32c3m7>5$0dg><2<f8lh6454i9;94?"6nm0286`>fb8b?>o?03:1(<hk:868j4`d2k10e5850;&2ba<><2d:jn4l;:k;1?6=,8lo64:4n0d`>a=<a1>1<7*>fe8:0>h6nj0n76g73;29 4`c20>0b<hl:g98m=4=83.:ji464:l2bf<6821b4<4?:%3e`??33g;mo7?>;:k;4?6=,8lo64:4n0d`>44<3`=m6=4+1gf9=1=i9oi1=>54i6g94?"6nm0286`>fb820>=n?m0;6)?id;;7?k7ak3;>76g6c;29 4`c20>0b<hl:048?l?e290/=kj5959m5ce=9>10e4o50;&2ba<><2d:jn4>8:9j=<<72-;mh77;;o3eg?7>32c247>5$0dg><2<f8lh6<o4;h;4>5<#9on1595a1ga95g=<a0<1<7*>fe8:0>h6nj0:o65f9383>!7al33?7c?ic;3g?>o??3:1(<hk:868j4`d28o07d9l:18'5cb=1=1e=km51g98yg31=3:1nn4?:1y'645=:980D877;I7;2>\1j3ip>=4=2;3`>40=9>0:n7<;:33960<6l3886<o5}o54><=i?1027ck6:19m55d=82.:=44>1b9'54g=:880(?>i:39'57c=;2.:>k4<;%304?5<,89:6>5+12097>"6;:087)?<4;18 4522:1/=>953:&27=<43-;857=4$01b>6=#9:h1?6*>3b80?!74l390(<=j:29'56`=;2.:8=4<;%375?5<,8>96>5+15197>"6<=087)?;5;18 4212:1/=9953:&20=<43-;?57=4$06b>6=#9=h1?6*>4b80?!73l390(<:j:29'51`=;2.:9=4<;%365?5<,8?96>5+14197>"6==087)?:5;18 4312:1/=8953:&21=<43-;>57=4$07b>6=#9<h1?6*>5b80?!72l390(<;j:29'50`=;2.::=4<;%355?5<,8<96>5+17197>"6>=087)?95;18 4012:1/=;953:&22=<43-;=57=4$04b>6=#9?h1?6*>6b80?!71l390(<8j:29'53`=;2.:;=4<;%345?5<,8=96>5+16197>"6?=087)?85;18 4112:1/=:751g58 7602;;:7)<?8;4g?!4713<o7)<?b;44?!47k38;i6*>7681?!700380(87;:4;0?!3>=3?2?6*=1181?l47;3:17d9?:188m47?2900e?>9:188m27=831b>=:50;9j653=831b=<950;9jg7<72-;mh7m>;o3eg?6<3`i;6=4+1gf9g4=i9oi1=65fbg83>!7al3i:7c?ic;08?ldb290/=kj5c09m5ce=;21b95j50;&2ba<20j1e=km50:9j1=d=83.:ji4:8b9m5ce=921b95o50;&2ba<20j1e=km52:9j1=?=83.:ji4:8b9m5ce=;21di<4?:%3e`?c73g;mo7>4;nfe>5<#9on1i=5a1ga95>=hlm0;6)?id;g3?k7ak3807bjl:18'5cb=m91e=km53:9l`g<72-;mh7k?;o3eg?2<3fnj6=4+1gf9a5=i9oi1965`d883>!7al3o;7c?ic;48?jb?290/=kj5e19m5ce=?21dh:4?:%3e`?c73g;mo764;nf5>5<#9on1i=5a1ga9=>=hl<0;6)?id;g3?k7ak3k07bj;:18'5cb=m91e=km5b:9l`7<72-;mh7k?;o3eg?e<3fn:6=4+1gf9a5=i9oi1h65`d183>!7al3o;7c?ic;g8?jea290/=kj5e19m5ce=n21doh4?:%3e`?c73g;mo7??;:m``?6=,8lo6h>4n0d`>47<3fih6=4+1gf9a5=i9oi1=?54ob`94?"6nm0n<6`>fb827>=hkh0;6)?id;g3?k7ak3;?76al9;29 4`c2l:0b<hl:078?jc?290/=kj5e19m5ce=9?10ch950;&2ba<b82d:jn4>7:9la3<72-;mh7k?;o3eg?7?32en97>5$0dg>`6<f8lh6<74;ng7>5<#9on1i=5a1ga95d=<gl91<7*>fe8f4>h6nj0:n65`e383>!7al3o;7c?ic;3`?>icm3:1(<hk:d28j4`d28n07bj<:18'5cb=m91e=km51d98kf>=83.:ji4j0:l2bf<6n21b8i4?:%3e`?2d3g;mo7>4;h6a>5<#9on18n5a1ga95>=n<h0;6)?id;6`?k7ak3807d:6:18'5cb=<j1e=km53:9j13<72-;mh7:l;o3eg?2<3`?>6=4+1gf90f=i9oi1965f5583>!7al3>h7c?ic;48?l34290/=kj54b9m5ce=?21b9?4?:%3e`?2d3g;mo764;h72>5<#9on18n5a1ga9=>=n=90;6)?id;6`?k7ak3k07d:i:18'5cb=<j1e=km5b:9j0`<72-;mh7:l;o3eg?e<3`>36=4+1gf90f=i9oi1h65f5b83>!7al3?i7c?ic;28?l3f290/=kj55c9m5ce=921b944?:%3e`?3e3g;mo7<4;h7;>5<#9on19o5a1ga97>=n><0;6)?id;7a?k7ak3>07d8;:18'5cb==k1e=km55:9j26<72-;mh7;m;o3eg?0<3`<96=4+1gf91g=i9oi1;65f6083>!7al3?i7c?ic;:8?l07290/=kj55c9m5ce=121b9k4?:%3e`?3e3g;mo7o4;h7f>5<#9on19o5a1ga9f>=n=m0;6)?id;7a?k7ak3i07d;8:18'5cb==k1e=km5d:9jf3<72-;mh7l:;o3eg?6<3`h?6=4+1gf9f0=i9oi1=65fb383>!7al3h>7c?ic;08?ld6290/=kj5b49m5ce=;21bn=4?:%3e`?d23g;mo7:4;hce>5<#9on1n85a1ga91>=nil0;6)?id;`6?k7ak3<07dok:18'5cb=j<1e=km57:9jef<72-;mh7l:;o3eg?><3`ki6=4+1gf9f0=i9oi1565fa`83>!7al3h>7c?ic;c8?lg>290/=kj5b49m5ce=j21bm:4?:%3e`?d23g;mo7m4;hc5>5<#9on1n85a1ga9`>=ni<0;6)?id;`6?k7ak3o07do;:18'5cb=j<1e=km5f:9je6<72-;mh7l:;o3eg?7732cj>7>5$0dg>g3<f8lh6<?4;hc2>5<#9on1n85a1ga957=<ah:1<7*>fe8a1>h6nj0:?65f9g83>!7al3h>7c?ic;37?>o>m3:1(<hk:c78j4`d28?07dlk:18'5cb=j<1e=km51798mge=83.:ji4m5:l2bf<6?21bno4?:%3e`?d23g;mo7?7;:kae?6=,8lo6o;4n0d`>4?<3`h26=4+1gf9f0=i9oi1=l54ic:94?"6nm0i96`>fb82f>=nj>0;6)?id;`6?k7ak3;h76gm3;29 4`c2k?0b<hl:0f8?lg?290/=kj5b49m5ce=9l10e4j50;&2ba<e=2d:jn4>f:9l546=83.:ji4>0g9m5ce=821d==k50;&2ba<68o1e=km51:9l55b=83.:ji4>0g9m5ce=:21d==m50;&2ba<68o1e=km53:9jg2<72-;mh7m9;o3eg?6<3`i>6=4+1gf9g3=i9oi1=65fc583>!7al3i=7c?ic;08?le4290/=kj5c79m5ce=;21d=<;50;&2ba<69=1e=km50:9l545=83.:ji4>159m5ce=921d=<<50;&2ba<69=1e=km52:9l547=83.:ji4>159m5ce=;21d===50;&2ba<68;1e=km50:9l557=83.:ji4>039m5ce=921djk4?:%3e`?77:2d:jn4=;:mea?6=,8lo6<>=;o3eg?5<3flo6=4+1gf9554<f8lh6954oga94?"6nm0:<?5a1ga91>=hnk0;6)?id;336>h6nj0=76aia;29 4`c28:97c?ic;58?j`>290/=kj51108j4`d2110ck650;&2ba<68;1e=km59:9lb2<72-;mh7??2:l2bf<f32em:7>5$0dg>4653g;mo7l4;nd7>5<#9on1==<4n0d`>f=<go91<7*>fe8247=i9oi1h65`f383>!7al3;;>6`>fb8f?>ia93:1(<hk:021?k7ak3l07bh?:18'5cb=9980b<hl:028?jca290/=kj51108j4`d28;07bkj:18'5cb=9980b<hl:008?jcc290/=kj51108j4`d28907bkl:18'5cb=9980b<hl:068?jce290/=kj51108j4`d28?07b??a;29 4`c28:97c?ic;35?>i6800;6)?id;336>h6nj0:;65`11:94?"6nm0:<?5a1ga95==<g8:<6=4+1gf9554<f8lh6<74;n332?6=,8lo6<>=;o3eg?7f32e:<84?:%3e`?77:2d:jn4>b:9l552=83.:ji4>039m5ce=9j10c<>?:18'5cb=9980b<hl:0f8?j`2290/=kj51108j4`d28o07bkn:18'5cb=9980b<hl:0d8?l3>:3:1(<hk:4;2?k7ak3:07d;60;29 4`c2<3:7c?ic;38?l3?n3:1(<hk:4;2?k7ak3807d;7e;29 4`c2<3:7c?ic;18?l?2290/=kj5959m5ce=821b5>4?:%3e`??33g;mo7?4;h;2>5<#9on1595a1ga96>=n190;6)?id;;7?k7ak3907d6i:18'5cb=1=1e=km54:9j<`<72-;mh77;;o3eg?3<3`2o6=4+1gf9=1=i9oi1:65f8b83>!7al33?7c?ic;58?l>e290/=kj5959m5ce=021b4l4?:%3e`??33g;mo774;h::>5<#9on1595a1ga9e>=n010;6)?id;;7?k7ak3h07d69:18'5cb=1=1e=km5c:9j<0<72-;mh77;;o3eg?b<3`2?6=4+1gf9=1=i9oi1i65f8283>!7al33?7c?ic;d8?l>5290/=kj5959m5ce=9910e5?50;&2ba<><2d:jn4>1:9j<5<72-;mh77;;o3eg?7532c<j7>5$0dg><2<f8lh6<=4;h5f>5<#9on1595a1ga951=<a>n1<7*>fe8:0>h6nj0:965f9b83>!7al33?7c?ic;35?>o>j3:1(<hk:868j4`d28=07d7n:18'5cb=1=1e=km51998m<?=83.:ji464:l2bf<6121b554?:%3e`??33g;mo7?n;:k:3?6=,8lo64:4n0d`>4d<3`3=6=4+1gf9=1=i9oi1=n54i8094?"6nm0286`>fb82`>=n0>0;6)?id;;7?k7ak3;n76g8c;29 4`c20>0b<hl:0d8?xd2>=0;6om50;2x 7742;:97E;68:J6<3=]>k0hw?>52382g?7128=1=o4=4;02>73=9m09?7?n:|l43??<f>2156`j9;28j46e291/=<7510a8 47f2;;97)<?f;08 44b2:1/=?h53:&275<43-;8=7=4$011>6=#9:91?6*>3580?!74=390(<=8:29'56>=;2.:?44<;%30e?5<,89i6>5+12a97>"6;m087)?<e;18 45a2:1/=9>53:&204<43-;?>7=4$060>6=#9=>1?6*>4480?!73>390(<:8:29'51>=;2.:844<;%37e?5<,8>i6>5+15a97>"6<m087)?;e;18 42a2:1/=8>53:&214<43-;>>7=4$070>6=#9<>1?6*>5480?!72>390(<;8:29'50>=;2.:944<;%36e?5<,8?i6>5+14a97>"6=m087)?:e;18 43a2:1/=;>53:&224<43-;=>7=4$040>6=#9?>1?6*>6480?!71>390(<88:29'53>=;2.::44<;%35e?5<,8<i6>5+17a97>"6>m087)?9e;18 40a2:1/=:>53:&234<43-;<>7=4$050>6=#9>>1?6*>7480?!70>390(<96:0d4?!47?38:=6*=0985`>"5800=h6*=0c853>"58j09<h5+16596>"6?1097);64;7:7>"21<0>5>5+20296>o58:0;66g80;29?l7603:17d<?6;29?l162900e?>;:188m7622900e<?8:188mf4=83.:ji4l1:l2bf<732ch<7>5$0dg>f7<f8lh6<54icd94?"6nm0h=6`>fb81?>oem3:1(<hk:b38j4`d2:10e86k:18'5cb==1i0b<hl:198m0>e290/=kj559a8j4`d2810e86n:18'5cb==1i0b<hl:398m0>>290/=kj559a8j4`d2:10ch?50;&2ba<b82d:jn4?;:mgb?6=,8lo6h>4n0d`>4=<gmn1<7*>fe8f4>h6nj0976akc;29 4`c2l:0b<hl:298kad=83.:ji4j0:l2bf<332eom7>5$0dg>`6<f8lh6854oe;94?"6nm0n<6`>fb85?>ic03:1(<hk:d28j4`d2>10ci950;&2ba<b82d:jn47;:mg2?6=,8lo6h>4n0d`><=<gm?1<7*>fe8f4>h6nj0j76ak4;29 4`c2l:0b<hl:c98ka4=83.:ji4j0:l2bf<d32eo=7>5$0dg>`6<f8lh6i54oe294?"6nm0n<6`>fb8f?>idn3:1(<hk:d28j4`d2o10cnk50;&2ba<b82d:jn4>0:9lga<72-;mh7k?;o3eg?7632eho7>5$0dg>`6<f8lh6<<4;naa>5<#9on1i=5a1ga956=<gjk1<7*>fe8f4>h6nj0:865`c883>!7al3o;7c?ic;36?>ib03:1(<hk:d28j4`d28<07bk8:18'5cb=m91e=km51698k`0=83.:ji4j0:l2bf<6021di84?:%3e`?c73g;mo7?6;:mf0?6=,8lo6h>4n0d`>4g<3fo86=4+1gf9a5=i9oi1=o54od094?"6nm0n<6`>fb82g>=hll0;6)?id;g3?k7ak3;o76ak3;29 4`c2l:0b<hl:0g8?je?290/=kj5e19m5ce=9o10e9j50;&2ba<3k2d:jn4?;:k7f?6=,8lo69m4n0d`>4=<a=k1<7*>fe87g>h6nj0976g;9;29 4`c2=i0b<hl:298m00=83.:ji4;c:l2bf<332c>97>5$0dg>1e<f8lh6854i4694?"6nm0?o6`>fb85?>o2;3:1(<hk:5a8j4`d2>10e8<50;&2ba<3k2d:jn47;:k65?6=,8lo69m4n0d`><=<a<:1<7*>fe87g>h6nj0j76g;f;29 4`c2=i0b<hl:c98m1c=83.:ji4;c:l2bf<d32c?47>5$0dg>1e<f8lh6i54i4a94?"6nm0>n6`>fb83?>o2i3:1(<hk:4`8j4`d2810e8750;&2ba<2j2d:jn4=;:k6<?6=,8lo68l4n0d`>6=<a??1<7*>fe86f>h6nj0?76g94;29 4`c2<h0b<hl:498m35=83.:ji4:b:l2bf<132c=>7>5$0dg>0d<f8lh6:54i7394?"6nm0>n6`>fb8;?>o183:1(<hk:4`8j4`d2010e8h50;&2ba<2j2d:jn4n;:k6a?6=,8lo68l4n0d`>g=<a<n1<7*>fe86f>h6nj0h76g:7;29 4`c2<h0b<hl:e98mg0=83.:ji4m5:l2bf<732ci87>5$0dg>g3<f8lh6<54ic094?"6nm0i96`>fb81?>oe93:1(<hk:c78j4`d2:10eo>50;&2ba<e=2d:jn4;;:kbb?6=,8lo6o;4n0d`>0=<aho1<7*>fe8a1>h6nj0=76gnd;29 4`c2k?0b<hl:698mde=83.:ji4m5:l2bf<?32cjn7>5$0dg>g3<f8lh6454i`c94?"6nm0i96`>fb8b?>of13:1(<hk:c78j4`d2k10el950;&2ba<e=2d:jn4l;:kb2?6=,8lo6o;4n0d`>a=<ah?1<7*>fe8a1>h6nj0n76gn4;29 4`c2k?0b<hl:g98md5=83.:ji4m5:l2bf<6821bm?4?:%3e`?d23g;mo7?>;:kb5?6=,8lo6o;4n0d`>44<3`k;6=4+1gf9f0=i9oi1=>54i8d94?"6nm0i96`>fb820>=n1l0;6)?id;`6?k7ak3;>76gmd;29 4`c2k?0b<hl:048?ldd290/=kj5b49m5ce=9>10eol50;&2ba<e=2d:jn4>8:9jfd<72-;mh7l:;o3eg?7>32ci57>5$0dg>g3<f8lh6<o4;h`;>5<#9on1n85a1ga95g=<ak=1<7*>fe8a1>h6nj0:o65fb283>!7al3h>7c?ic;3g?>of03:1(<hk:c78j4`d28o07d7k:18'5cb=j<1e=km51g98k477290/=kj511d8j4`d2910c<>j:18'5cb=99l0b<hl:098k46c290/=kj511d8j4`d2;10c<>l:18'5cb=99l0b<hl:298mf1=83.:ji4l6:l2bf<732ch97>5$0dg>f0<f8lh6<54ib694?"6nm0h:6`>fb81?>od;3:1(<hk:b48j4`d2:10c<?::18'5cb=98>0b<hl:198k474290/=kj51068j4`d2810c<?=:18'5cb=98>0b<hl:398k476290/=kj51068j4`d2:10c<><:18'5cb=9980b<hl:198k466290/=kj51108j4`d2810ckh50;&2ba<68;1e=km52:9lb`<72-;mh7??2:l2bf<432emh7>5$0dg>4653g;mo7:4;nd`>5<#9on1==<4n0d`>0=<goh1<7*>fe8247=i9oi1:65`f`83>!7al3;;>6`>fb84?>ia13:1(<hk:021?k7ak3207bh7:18'5cb=9980b<hl:898kc1=83.:ji4>039m5ce=i21dj;4?:%3e`?77:2d:jn4m;:me0?6=,8lo6<>=;o3eg?e<3fl86=4+1gf9554<f8lh6i54og094?"6nm0:<?5a1ga9a>=hn80;6)?id;336>h6nj0m76ai0;29 4`c28:97c?ic;33?>ibn3:1(<hk:021?k7ak3;:76aje;29 4`c28:97c?ic;31?>ibl3:1(<hk:021?k7ak3;876ajc;29 4`c28:97c?ic;37?>ibj3:1(<hk:021?k7ak3;>76a>0`83>!7al3;;>6`>fb822>=h9931<7*>fe8247=i9oi1=:54o02;>5<#9on1==<4n0d`>4><3f;;;7>5$0dg>4653g;mo7?6;:m243<72-;mh7??2:l2bf<6i21d==;50;&2ba<68;1e=km51c98k463290/=kj51108j4`d28i07b??0;29 4`c28:97c?ic;3g?>ia=3:1(<hk:021?k7ak3;n76aja;29 4`c28:97c?ic;3e?>o21;0;6)?id;7:5>h6nj0;76g:9183>!7al3?2=6`>fb82?>o20o0;6)?id;7:5>h6nj0976g:8d83>!7al3?2=6`>fb80?>o>=3:1(<hk:868j4`d2910e4=50;&2ba<><2d:jn4>;:k:5?6=,8lo64:4n0d`>7=<a0:1<7*>fe8:0>h6nj0876g7f;29 4`c20>0b<hl:598m=c=83.:ji464:l2bf<232c3h7>5$0dg><2<f8lh6;54i9a94?"6nm0286`>fb84?>o?j3:1(<hk:868j4`d2110e5o50;&2ba<><2d:jn46;:k;=?6=,8lo64:4n0d`>d=<a121<7*>fe8:0>h6nj0i76g76;29 4`c20>0b<hl:b98m=3=83.:ji464:l2bf<c32c387>5$0dg><2<f8lh6h54i9194?"6nm0286`>fb8e?>o?:3:1(<hk:868j4`d28:07d6>:18'5cb=1=1e=km51098m=6=83.:ji464:l2bf<6:21b;k4?:%3e`??33g;mo7?<;:k4a?6=,8lo64:4n0d`>42<3`=o6=4+1gf9=1=i9oi1=854i8a94?"6nm0286`>fb822>=n1k0;6)?id;;7?k7ak3;<76g6a;29 4`c20>0b<hl:0:8?l?>290/=kj5959m5ce=9010e4650;&2ba<><2d:jn4>a:9j=2<72-;mh77;;o3eg?7e32c2:7>5$0dg><2<f8lh6<m4;h;1>5<#9on1595a1ga95a=<a1=1<7*>fe8:0>h6nj0:i65f7b83>!7al33?7c?ic;3e?>{e=?91<7ll:183!46;38;>6F:999K1=0<R?h1ov<?:3095f<6>3;<6<l525815?4228n1>>4>a;m32<>3g=3645ae883?k77j3:0(<?6:03`?!76i38:>6*=0g81?!75m390(<<i:29'566=;2.:?<4<;%306?5<,8986>5+12697>"6;<087)?<7;18 45?2:1/=>753:&27d<43-;8n7=4$01`>6=#9:n1?6*>3d80?!74n390(<:?:29'517=;2.:8?4<;%377?5<,8>?6>5+15797>"6<?087)?;7;18 42?2:1/=9753:&20d<43-;?n7=4$06`>6=#9=n1?6*>4d80?!73n390(<;?:29'507=;2.:9?4<;%367?5<,8??6>5+14797>"6=?087)?:7;18 43?2:1/=8753:&21d<43-;>n7=4$07`>6=#9<n1?6*>5d80?!72n390(<8?:29'537=;2.::?4<;%357?5<,8<?6>5+17797>"6>?087)?97;18 40?2:1/=;753:&22d<43-;=n7=4$04`>6=#9?n1?6*>6d80?!71n390(<9?:29'527=;2.:;?4<;%347?5<,8=?6>5+16797>"6??087)?89;3e3>"58>09=<5+21:92a=#:931:i5+21`922=#:9i1>=k4$054>7=#9>21>6*:9586=6=#=0?194=4$333>7=n:991<75f7183>>o6910;66g=0783>>o093:17d<?4;29?l47=3:17d?>7;29?le5290/=kj5c09m5ce=821bo=4?:%3e`?e63g;mo7?4;h`e>5<#9on1o<5a1ga96>=njl0;6)?id;a2?k7ak3907d;7d;29 4`c2<2h7c?ic;28?l3?j3:1(<hk:4:`?k7ak3;07d;7a;29 4`c2<2h7c?ic;08?l3?13:1(<hk:4:`?k7ak3907bk>:18'5cb=m91e=km50:9l`c<72-;mh7k?;o3eg?7<3fno6=4+1gf9a5=i9oi1>65`db83>!7al3o;7c?ic;18?jbe290/=kj5e19m5ce=<21dhl4?:%3e`?c73g;mo7;4;nf:>5<#9on1i=5a1ga92>=hl10;6)?id;g3?k7ak3=07bj8:18'5cb=m91e=km58:9l`3<72-;mh7k?;o3eg??<3fn>6=4+1gf9a5=i9oi1m65`d583>!7al3o;7c?ic;`8?jb5290/=kj5e19m5ce=k21dh<4?:%3e`?c73g;mo7j4;nf3>5<#9on1i=5a1ga9a>=hko0;6)?id;g3?k7ak3l07bmj:18'5cb=m91e=km51198kfb=83.:ji4j0:l2bf<6921don4?:%3e`?c73g;mo7?=;:m`f?6=,8lo6h>4n0d`>45<3fij6=4+1gf9a5=i9oi1=954ob;94?"6nm0n<6`>fb821>=hm10;6)?id;g3?k7ak3;=76aj7;29 4`c2l:0b<hl:058?jc1290/=kj5e19m5ce=9110ch;50;&2ba<b82d:jn4>9:9la1<72-;mh7k?;o3eg?7f32en?7>5$0dg>`6<f8lh6<l4;ng1>5<#9on1i=5a1ga95f=<gmo1<7*>fe8f4>h6nj0:h65`d283>!7al3o;7c?ic;3f?>id03:1(<hk:d28j4`d28l07d:k:18'5cb=<j1e=km50:9j0g<72-;mh7:l;o3eg?7<3`>j6=4+1gf90f=i9oi1>65f4883>!7al3>h7c?ic;18?l31290/=kj54b9m5ce=<21b984?:%3e`?2d3g;mo7;4;h77>5<#9on18n5a1ga92>=n=:0;6)?id;6`?k7ak3=07d;=:18'5cb=<j1e=km58:9j14<72-;mh7:l;o3eg??<3`?;6=4+1gf90f=i9oi1m65f4g83>!7al3>h7c?ic;`8?l2b290/=kj54b9m5ce=k21b854?:%3e`?2d3g;mo7j4;h7`>5<#9on19o5a1ga94>=n=h0;6)?id;7a?k7ak3;07d;6:18'5cb==k1e=km52:9j1=<72-;mh7;m;o3eg?5<3`<>6=4+1gf91g=i9oi1865f6583>!7al3?i7c?ic;78?l04290/=kj55c9m5ce=>21b:?4?:%3e`?3e3g;mo794;h42>5<#9on19o5a1ga9<>=n>90;6)?id;7a?k7ak3307d;i:18'5cb==k1e=km5a:9j1`<72-;mh7;m;o3eg?d<3`?o6=4+1gf91g=i9oi1o65f5683>!7al3?i7c?ic;f8?ld1290/=kj5b49m5ce=821bn94?:%3e`?d23g;mo7?4;h`1>5<#9on1n85a1ga96>=nj80;6)?id;`6?k7ak3907dl?:18'5cb=j<1e=km54:9jec<72-;mh7l:;o3eg?3<3`kn6=4+1gf9f0=i9oi1:65fae83>!7al3h>7c?ic;58?lgd290/=kj5b49m5ce=021bmo4?:%3e`?d23g;mo774;hcb>5<#9on1n85a1ga9e>=ni00;6)?id;`6?k7ak3h07do8:18'5cb=j<1e=km5c:9je3<72-;mh7l:;o3eg?b<3`k>6=4+1gf9f0=i9oi1i65fa583>!7al3h>7c?ic;d8?lg4290/=kj5b49m5ce=9910el<50;&2ba<e=2d:jn4>1:9je4<72-;mh7l:;o3eg?7532cj<7>5$0dg>g3<f8lh6<=4;h;e>5<#9on1n85a1ga951=<a0o1<7*>fe8a1>h6nj0:965fbe83>!7al3h>7c?ic;35?>oek3:1(<hk:c78j4`d28=07dlm:18'5cb=j<1e=km51998mgg=83.:ji4m5:l2bf<6121bn44?:%3e`?d23g;mo7?n;:ka<?6=,8lo6o;4n0d`>4d<3`h<6=4+1gf9f0=i9oi1=n54ic194?"6nm0i96`>fb82`>=ni10;6)?id;`6?k7ak3;n76g6d;29 4`c2k?0b<hl:0d8?j7683:1(<hk:02e?k7ak3:07b??e;29 4`c28:m7c?ic;38?j77l3:1(<hk:02e?k7ak3807b??c;29 4`c28:m7c?ic;18?le0290/=kj5c79m5ce=821bo84?:%3e`?e13g;mo7?4;ha7>5<#9on1o;5a1ga96>=nk:0;6)?id;a5?k7ak3907b?>5;29 4`c28;?7c?ic;28?j76;3:1(<hk:037?k7ak3;07b?>2;29 4`c28;?7c?ic;08?j7693:1(<hk:037?k7ak3907b??3;29 4`c28:97c?ic;28?j7793:1(<hk:021?k7ak3;07bhi:18'5cb=9980b<hl:398kcc=83.:ji4>039m5ce=;21dji4?:%3e`?77:2d:jn4;;:meg?6=,8lo6<>=;o3eg?3<3fli6=4+1gf9554<f8lh6;54ogc94?"6nm0:<?5a1ga93>=hn00;6)?id;336>h6nj0376ai8;29 4`c28:97c?ic;;8?j`0290/=kj51108j4`d2h10ck850;&2ba<68;1e=km5b:9lb1<72-;mh7??2:l2bf<d32em?7>5$0dg>4653g;mo7j4;nd1>5<#9on1==<4n0d`>`=<go;1<7*>fe8247=i9oi1j65`f183>!7al3;;>6`>fb824>=hmo0;6)?id;336>h6nj0:=65`ed83>!7al3;;>6`>fb826>=hmm0;6)?id;336>h6nj0:?65`eb83>!7al3;;>6`>fb820>=hmk0;6)?id;336>h6nj0:965`11c94?"6nm0:<?5a1ga953=<g8:26=4+1gf9554<f8lh6<94;n33<?6=,8lo6<>=;o3eg?7?32e:<:4?:%3e`?77:2d:jn4>9:9l550=83.:ji4>039m5ce=9h10c<>::18'5cb=9980b<hl:0`8?j77<3:1(<hk:021?k7ak3;h76a>0183>!7al3;;>6`>fb82`>=hn<0;6)?id;336>h6nj0:i65`e`83>!7al3;;>6`>fb82b>=n=081<7*>fe86=4=i9oi1<65f58294?"6nm0>5<5a1ga95>=n=1l1<7*>fe86=4=i9oi1>65f59g94?"6nm0>5<5a1ga97>=n1<0;6)?id;;7?k7ak3:07d7<:18'5cb=1=1e=km51:9j=4<72-;mh77;;o3eg?4<3`3;6=4+1gf9=1=i9oi1?65f8g83>!7al33?7c?ic;68?l>b290/=kj5959m5ce==21b4i4?:%3e`??33g;mo784;h:`>5<#9on1595a1ga93>=n0k0;6)?id;;7?k7ak3207d6n:18'5cb=1=1e=km59:9j<<<72-;mh77;;o3eg?g<3`236=4+1gf9=1=i9oi1n65f8783>!7al33?7c?ic;a8?l>2290/=kj5959m5ce=l21b494?:%3e`??33g;mo7k4;h:0>5<#9on1595a1ga9b>=n0;0;6)?id;;7?k7ak3;;76g71;29 4`c20>0b<hl:038?l>7290/=kj5959m5ce=9;10e:h50;&2ba<><2d:jn4>3:9j3`<72-;mh77;;o3eg?7332c<h7>5$0dg><2<f8lh6<;4;h;`>5<#9on1595a1ga953=<a0h1<7*>fe8:0>h6nj0:;65f9`83>!7al33?7c?ic;3;?>o>13:1(<hk:868j4`d28307d77:18'5cb=1=1e=km51`98m<1=83.:ji464:l2bf<6j21b5;4?:%3e`??33g;mo7?l;:k:6?6=,8lo64:4n0d`>4b<3`2<6=4+1gf9=1=i9oi1=h54i6a94?"6nm0286`>fb82b>=z{?:m6=4={_7ff>;2>?0ii6s|61f94?4|V<oj70;96;;b?xu18j0;6?uQ5d;890012030q~8?b;296~X2m1169;85999~w36f2909wS;j7:?623<>?2wx:=750;0xZ0c134?=:779;|q542<72;qU9h:4=445><4<uz<;:7>52z\6a6=:=?<14:5rs726>5<5sW?n>63:6784g>{t>9>1<7<t^4g2?831=3hn7p}90283>7}Y=l:0188::8c8yv07:3:1>vP:dg9>133=101v;>>:181[3cm27>:8468:p256=838pR8jk;<751??03ty>jk4?:3y]1ae<5<<>6484}r7ea?6=:rT>ho525779=7=z{<lh6=4={_7g=>;2><03;6s|5g`94?4|V<n370;95;5`?xu2nh0;6?uQ5e5890032ko0q~;i9;296~X2l?169;:59`9~w0`?2909wS;k5:?621<>12wx9k950;0xZ0b334?=8777;|q6b3<72;qU9i=4=447><1<uz?m97>52z\6`7=:=?>15;5rs4d7>5<5sW?o=63:658:6>{t=o91<7<t^4f3?831<32<7p}91783>7}Y=o;0188;:6a8yv06=3:1>vP:f19>135=jl1v;?;:181[3bn27>:>46a:p245=838pR8kj;<757??>3ty==?4?:3y]1`b<5<<86464}r425?6=:rT>in525719=2=z{?;;6=4={_7f1>;2>:02:6s|61:94?4|V<nj70;93;;1?xu2nm0;6?uQ5bd8900421=0q~;i2;296~X2kl169;=57b9~w3d02903?vP9b69>7gd=>j169:m56b9>12d=>j169:;56b9>122=>j169:=56b9>12g=>j169>656b9>161=>j169>856b9>163=>j169>:56b9>165=>j169>?56b9>166=>j169?h56b9>17c=>j169?j56b9>17e=>j169?l56b9>17g=>j169?756b9>17>=>j169?856b9>173=>j169?:56b9>175=>j169?<56b9>177=>j169?>56b9>14`=>j169<k56b9>14b=>j169>k56b9>16b=>j169>m56b9>16d=>j169>o56b9>16?=>j169><56b9>171=>j169<m56b9>14d=>j16?:=56b9>724=>j16?:l56b9>72g=>j16?:756b9>72>=>j16?:956b9>720=>j16?:;56b9>722=>j16?:?56b9>726=>j16?km56b9>052=>j168==56b9>054=>j168=?56b9>056=>j16?kh56b9>7cc=>j16?kj56b9>7cd=>j16?ko56b9>7`0=>j16?hk56b9>7`b=>j16?hm56b9>7`d=>j16?ho56b9>7`?=>j16?h656b9>7`1=>j16?h;56b9>7`2=>j16?5<56b9>72`=>j16?5656b9>7=0=>j16?5;56b9>6gg=>j16>n<56b9>6f7=>j16>n>56b9>6g`=>j16>ok56b9>6gb=>j16>om56b9>6gd=>j16>o756b9>6g>=>j16?<;56b9>74b=>j16?<m56b9>74d=>j16?<o56b9>74?=>j16?<656b9>741=>j16?<856b9>742=>j16?<=56b9>6`0=>j16>hk56b9>6`b=>j16>hm56b9>6`d=>j16>ho56b9>6`?=>j16>h656b9>6`1=>j16>h;56b9>6`2=>j16>8h56b9>631=>j16>;856b9>633=>j16>;:56b9>635=>j16>;<56b9>637=>j16>;>56b9>60c=>j16>8j56b9>130=?8169;;5709>132=?8169;=5709~w3b62903wS8k1:?03`<6:116?5:513c8961c288i70=71;31e>;4?j0:>o523c;957><5<<36<<m;|q5`6<72>qU:i=4=44`>24<5<<m6<hi;<75a?7an27>;l4>fg9>13b=9ol0189i:0de?xu1lh0;6;7t^7fb?82403<h70:<7;4`?831k3<h70;71;4`?831n3<h70;70;4`?831m3<h70;89;4`?83003<h70;9d;4`?82?m3<h70:7d;4`?82>>3<h70:65;4`?82><3<h70:63;4`?82>:3<h70:61;4`?82>83<h70:7f;4`?82?k3<h70:7b;4`?82bm3<h70:i6;4`?82a=3<h70:i4;4`?82a;3<h70:i2;4`?82a93<h70:i0;4`?82bn3<h70:jd;4`?82bk3<h70:k8;4`?82b83<h70:kf;4`?82cm3<h70:kd;4`?82ck3<h70:kb;4`?82ci3<h70:k9;4`?82c?3<h70:k6;4`?82d:3<h70:la;4`?82d13<h70:l8;4`?82d?3<h70:l6;4`?82d=3<h70:l4;4`?82d;3<h70:l1;4`?82d83<h70<;9;4`?84293<h70<:0;4`?843n3<h70<;e;4`?843l3<h70<;c;4`?843j3<h70<;a;4`?84303<h70<;7;4`?84f<3<h70<nc;4`?84fj3<h70<na;4`?84f13<h70<n8;4`?84f?3<h70<n6;4`?84f=3<h70<n3;4`?84f:3<h70<85;4`?840l3<h70<8c;4`?840j3<h70<8a;4`?84013<h70<88;4`?840?3<h70<86;4`?840<3<h70<83;4`?84c83<h70<k8;4`?84c?3<h70<k6;4`?84c=3<h70<k4;4`?84c;3<h70<k2;4`?84c93<h70<lf;4`?84dm3<h70;8f;4`?831>3=;70;95;53?831<3=;70;93;53?xu1n=0;6>uQ6g6891?0288370:?5;31f>{t=jn1<7?96z\6g6=Y=jh0R8mn;_7`=>X2k11U9n94^4a5?[3d=2T>o95Q5b08Z0e63W?io6P:be9]23e<V?<o7S862:\5`==Y>m=0R;j6;_4g0>X2km169475137890122><0189;:64890142><0189n:648901>2><01897:648900c2><019>i:6`8916b2>h019>k:6`8916d2>h019>m:6`891772>h019<9:6`891422>h019<;:6`891442>h019<=:6`891402>h01>7=:6`896?62>h01>7?:6`896>a2>h01>6j:6`896?42>h01>o6:6`896g?2>h01>o8:6`896g12>h01>o::6`896gf2>h0186=:00b?831>38;?63:678141=:=?<1>=;4=445>f4<5<<=6n>4=445>g`<5<<=69h4=445>1c<5<<=6964=445>0c<5<<=68j4=445>01<5<<=6o84=445>g2<5<<=6o<4=445>g7<5<<=6o>4=445>d`<5<<=6lk4=445>db<5<<=6lm4=445>dd<5<<=6lo4=445>d?<5<<=6l94=445>d0<5<<=6l;4=445>d2<5<<=6l=4=445>d4<5<<=6l?4=445>d6<5<<=64h4=445><c<5<<=6oj4=445>ge<5<<=6ol4=445>gg<5<<=6o74=445>g><5<<=6o94=445>g5<5<<=6l64=445><b<5<<=6n94=445>f3<5<<=6n:4=445>f5<5<<=687=;<752?3>827>:;4:8g9>130==1o01889:878900120901889:838900120:01889:9d8900121o01889:9f8900121i01889:9`8900121k01889:9;8900121201889:948900121?01889:968900121901889:908900121;01889:92890012>l01889:6g890012>n01889:8a8900120h0188::320?831=38;863:648140=:=??1o?525779g5=:=??1nk5257790c=:=??18h5257790==:=??19h5257791a=:=??19:525779f3=:=??1n9525779f7=:=??1n<525779f5=:=??1mk525779e`=:=??1mi525779ef=:=??1mo525779ed=:=??1m4525779e2=:=??1m;525779e0=:=??1m9525779e6=:=??1m?525779e4=:=??1m=525779=c=:=??15h525779fa=:=??1nn525779fg=:=??1nl525779f<=:=??1n5525779f2=:=??1n>525779e==:=??15i525779g2=:=??1o8525779g1=:=??1o>5257791<4<5<<>687?;<751?3?n27>:84:8d9>133=1<169;;5929>133=18169;;5919>133=0o169;;58d9>133=0m169;;58b9>133=0k169;;58`9>133=00169;;5899>133=0?169;;5849>133=0=169;;5829>133=0;169;;5809>133=09169;;57g9>133=?l169;;57e9>133=1j169;;59c9>132=:990188;:327?831<38;963:658`6>;2>=0h<63:658ab>;2>=0?j63:6587a>;2>=0?463:6586a>;2>=0>h63:65863>;2>=0i:63:658a0>;2>=0i>63:658a5>;2>=0i<63:658bb>;2>=0ji63:658b`>;2>=0jo63:658bf>;2>=0jm63:658b=>;2>=0j;63:658b2>;2>=0j963:658b0>;2>=0j?63:658b6>;2>=0j=63:658b4>;2>=02j63:658:a>;2>=0ih63:658ag>;2>=0in63:658ae>;2>=0i563:658a<>;2>=0i;63:658a7>;2>=0j463:658:`>;2>=0h;63:658`1>;2>=0h863:658`7>;2>=0>5?5257691<6<5<<?686i;<750?3?m27>:9465:?621<>;27>:9461:?621<>827>:947f:?621<?m27>:947d:?621<?k27>:947b:?621<?i27>:9479:?621<?027>:9476:?621<?=27>:9474:?621<?;27>:9472:?621<?927>:9470:?621<0n27>:948e:?621<0l27>:946c:?621<>j27>:>4=029>135=:9>0188<:326?831;3i970;93;a3?831;3hm70;93;6e?831;3>n70;93;6;?831;3?n70;93;7g?831;3?<70;93;`5?831;3h?70;93;`1?831;3h:70;93;`3?831;3km70;93;cf?831;3ko70;93;c`?831;3ki70;93;cb?831;3k270;93;c4?831;3k=70;93;c6?831;3k?70;93;c0?831;3k970;93;c2?831;3k;70;93;;e?831;33n70;93;`g?831;3hh70;93;`a?831;3hj70;93;`:?831;3h370;93;`4?831;3h870;93;c;?831;33o70;93;a4?831;3i>70;93;a7?831;3i870;93;7:6>;2>:0>5=5257191=`<5<<8686j;<757??234?=?77<;<757??634?=?77?;<757?>a34?=?76j;<757?>c34?=?76l;<757?>e34?=?76n;<757?>>34?=?767;<757?>134?=?76:;<757?>334?=?76<;<757?>534?=?76>;<757?>734?=?79i;<757?1b34?=?79k;<757??d34?=?77m;|q656<72;qU:>:4=41;>7673ty>=?4?:3y]265<5<9<6?>?;|q654<72;qU:><4=415>7673ty>==4?:3y]267<5<9>6?>?;|q64c<72;qU:>>4=417>7673ty><h4?:3y]27`<5<986?>?;|q64f<72;qU:?j4=412>7673ty><o4?:3y]27e<5<9;6?>?;|q64d<72;qU:?l4=40e>7673ty><44?:3y]27g<5<8n6?>?;|q64=<72;qU:?74=40g>7673ty><:4?:3y]27><5<8h6?>?;|q643<72;qU:?94=40a>7673ty><84?:3y]270<5<8j6?>?;|q641<72;qU:?;4=40:>7673ty><>4?:3y]272<5<836?>?;|q644<72;qU:?<4=405>7673ty><=4?:3y]277<5<8>6?>?;|q7bc<72;qU:?>4=407>7673ty?jh4?:3y]24`<5<886?>?;|q7ba<72;qU:<k4=401>7673ty?jn4?:3y]24b<5<8:6?>?;|q7bg<72;qU:<m4=403>7673ty?jl4?:3y]24d<5<;m6?>?;|q7b<<72;qU:<o4=43f>7673ty?j54?:3y]24?<5<;o6?>?;|q65d<72;qU:>o4=41f>7673ty>=44?:3y]26?<5<9o6?>?;|q65=<72;qU:>64=41`>7673ty>=:4?:3y]261<5<9i6?>?;|q653<72;qU:>84=41b>7673ty>=84?:3y]263<5<926?>?;|q651<72;qU:?k4=411>7673ty><i4?:3y]275<5<8<6?>?;|q647<72;qU:<64=43`>7673ty?j:4?:3y]241<5<;i6?>?;|q023<72;qU:ol4=250>7673ty8:84?:3y]2gg<5:=96?>?;|q02c<72;qU:n=4=25a>7673ty8:h4?:3y]2f4<5:=j6?>?;|q02a<72;qU:n?4=25:>7673ty8:n4?:3y]2f6<5:=36?>?;|q02g<72;qU:oh4=254>7673ty8:l4?:3y]2gc<5:==6?>?;|q02<<72;qU:oj4=256>7673ty8:54?:3y]2ge<5:=?6?>?;|q022<72;qU:o74=252>7673ty8:94?:3y]2g><5:=;6?>?;|q7<4<72;qU:ik4=5:f>7673ty?4=4?:3y]2ab<5=2o6?>?;|q7<d<72;qU:h84=5;5>7673ty?444?:3y]2`3<5=3>6?>?;|q7<=<72;qU:h:4=5;7>7673ty?4:4?:3y]2`5<5=386?>?;|q7<3<72;qU:h<4=5;1>7673ty?484?:3y]2`7<5=3:6?>?;|q7<1<72;qU:h>4=5;3>7673ty?4>4?:3y]2a`<5=2m6?>?;|q7<7<72;qU:im4=5:`>7673ty?;k4?:3y]2ad<5=2i6?>?;|q0<3<72;qU:;?4=2:5>7673ty??54?:3y]231<5=936?>?;|q2<2<720q694o51gc8916e2?l019<=:7d896>b2?l01>o::7d896262?l01><l:7d8910?2?l019;<:7d8yv5e03:1>v3<bc842>;4j00:j55rs451>5<51r78no4>fg9>123=:9:01>9<:60896152>801>9m:608961f2>801>96:608961?2>801>98:60896112>801>9::60896132>801>9>:60896172>801>hl:60891632>8019><:60891652>8019>>:60891672>801>hi:60896`b2>801>hk:60896`e2>801>hn:60896c12>801>kj:60896cc2>801>kl:60896ce2>801>kn:60896c>2>801>k7:60896c02>801>k::60896c328lm70=72;51?850n3=970=78;51?85?>3;mj63<8482bc=z{:hi6=4:{<1af?4782784<4>2c9>72e=9;201>l6:00:?83103;946s|42794?5|5=936:84=514>20<5=:>6<h7;|q62`<72=q68>651gd8915028lm70;9f;55?831m38;<6s|42594?5|5=9<6?>?;<6:3?75127?<84>2`9~w00a2909w0;9c;55?831n38;<6s|57a94?4|5<<h6?>?;<631?7502wx9:l50;1x901d2><0189m:323?830i3<o7p}:7b83>7}:=>i1>=>4=45f>44>3ty>4=4?:2y>1=7=??1695>5212890>528837p}:8083>7}:=1;1>=>4=4:7>44>3ty>;l4?:2y>12d=??169:o52128901b28837p}:7g83>1}:=1:1;;52596957><5<296<<6;<74b?4782wx9;j50;0x900b2><0188k:323?xu2?m0;69u256795c`<5<=?6<hi;<747?7an27>;h4>f99~w0162909hv3:758145=::kk1;?522b0937=::j;1;?522b2937=::kl1;?522cg937=::kn1;?522ca937=::kh1;?522c;937=::k21;?52307937=:;8n1;?5230a937=:;8h1;?5230c937=:;831;?5230:937=:;8=1;?52304937=:;8>1;?52301937=::l<1;?522dg937=::ln1;?522da937=::lh1;?522dc937=::l31;?522d:937=::l=1;?522d7937=::l>1;?5224d937=::?=1;?52274937=::??1;?52276937=::?91;?52270937=::?;1;?52272937=::<o1;?5224f937=z{<=;6=4=az?636<589169>65213890502;::70;<6;035>;2;<09<<525269657<5<986?>>;<705?47927>?=4=009>17`=:9;018<j:322?835l38;=63:2b8144=:=;h1>=?4=40b>76634?957<?1:?66=<588169?85213890422;::70;=4;035>;2::09<<525309657<5<8:6?>>;<714?47927>=k4=009>14c=:9;018?k:322?834m38;=63:3e8144=:=:i1>=?4=41a>76634?8m7<?1:?67<<588169><5213890402;::70;>c;035>;29k09<<5257:957e<5<<=6?>9;<751?47>27>:94=079>135=:9<0q~;73;297~;2?00:jk5256:95c`<5<2?6<h7;|q632<72;op1896:323?82?m3=970:7d;51?82>>3=970:65;51?82><3=970:63;51?82>:3=970:61;51?82>83=970:7f;51?82?k3=970:7b;51?82bm3=970:i6;51?82a=3=970:i4;51?82a;3=970:i2;51?82a93=970:i0;51?82bn3=970:jd;51?82bk3=970:k8;51?82b83=970:kf;51?82cm3=970:kd;51?82ck3=970:kb;51?82ci3=970:k9;51?82c?3=970:k6;3eb>;3k;0<>63;c`846>;3k00<>63;c9846>;3k>0<>63;c7846>;3k<0<>63;c5846>;3k:0<>63;c082bc=:<j:1;?5rs455>5<5lr7>;54=019>61?=?;16>8?5739>606=?;16>9h5739>61c=?;16>9j5739>61e=?;16>9l5739>61g=?;16>965739>611=?;16>l:5739>6de=?;16>ll5739>6dg=?;16>l75739>6d>=?;16>l95739>6d0=?;16>l;5739>6d5=?;16>l<5739>623=?;16>:j5739>62e=?;16>:l5739>62g=?;16>:75739>62>=?;16>:95739>620=?;16>::5739>625=?;16>i>5739>6a>=?;16>i95739>6a0=?;16>i;5739>6a2=?;16>i=5739>6a4=?;16>i?5739>6f`=?;16>nk5739~w00f29099v3:3985`>;2;>0=h63:3785`>;2;<0=h63:3585`>;2;:0=h63:3085`>;2;90=h63:2g85`>;2:l0=h63:2e85`>;2:j0=h63:2c85`>;2:h0=h63:2885`>;2:10=h63:2785`>;2:<0=h63:2585`>;2::0=h63:2385`>;2:80=h63:2185`>;29o0=h63:1d85`>;29m0=h63:3d85`>;2;m0=h63:3b85`>;2;k0=h63:3`85`>;2;00=h63:3385`>;2:>0=h63:1b85`>;29k0=h63<7d82b==z{<?i6=4={<70<?1134?=:7?>1:p10g=838p18=8:648900128:37p}:5883>7}:=:<1;;525749551<uz?>47>52z?670<0>27>:;4>079~w0302909w0;<4;55?831>3;;96s|54494?4|5<986:84=445>4633ty>994?:3y>167=??169;851128yv32;3:1>v3:31842>;2>?0m96s|54094?4|5<8m6:84=445>`g<uz?>=7>52z?66`<0>27>:84>109~w0372909w0;=d;55?831=3;;46s|55d94?4|5<8h6:84=446>4603ty>8h4?:3y>17d=??169;;51148yv33l3:1>v3:2`842>;2><0:<85rs46`>5<5s4?95799;<751?77<2wx99l50;0x904?2><0188::023?xu2<00;6?u2534933=:=??1j85rs46;>5<5s4?99799;<751?cf3ty>8:4?:3y>172=??169;:51038yv33>3:1>v3:22842>;2>=0:<55rs466>5<5s4?9>799;<750?77?2wx99:50;0x90462><0188;:025?xu2<:0;6?u2532933=:=?>1==;4}r776?6=:r7>=k486:?621<68=1v8:>:181836m3==70;94;334>{t==:1<7<t=43g>20<5<<?6k;4}r756?6=:r7>?h486:?621<bi2wx9;?50;0x905c2><0188<:032?xu2>90;6?u252a933=:=?91==64}r76b?6=:r7>?o486:?626<68>1v8;j:181834i3==70;93;332>{t=<n1<7<t=41:>20<5<<86<>:;|q61f<72;q69><5779>135=99>0q~;:5;296~;2:>0<:63:628245=z{<>j6=4={<72g?1134?=?7h:;|q67c<72;q69<l5779>135=mh1v9>6:181827n3<m70:?e;3e<>{t<831<7<t=52e>76f34>:m7?i8:p05g=838p19>i:0d;?82683<m7p};0983>7}:<9o1:k5241f95c><uz>:;7>52z?74`<58h168<651g:8yv27?3:1>v3;0e85b>;38j0:j55rs536>5<5s4>;h7<?a:?753<6n11v9>9:181827k3<m70:?b;3e<>{t<891<7<t=52`>76f34>:87?i8:p047=838p19>m:32b?826:3;m46s|40`94?4|5=;;6?>n;<62g?7a02wx8>:50;0x917728l370:?5;31g>{t<;:1<7<t=505>3`<5=8>6<h7;|q775<72;q68?8521c8915628l37p};2083>7}:<;<1=k64=504>3`<uz>:j7>52z?760<1n27?>94>f99~w14b2909w0:=5;03e>;3:o0:j55rs53f>5<5s4>9878i;<617?7a02wx8?m50;0x91432;:j70:=d;3e<>{t<8n1<7<t=500>3`<5=896<h7;|q76d<72;q68?=521c8914e28l37p};2983>7}:<;81>=o4=50:>4`?3ty???4?:3y>071=:9k019=<:0d;?xu3;?0;6?u243595c><5=:>6<<6;|q0<f<72;q6?4<56g9>7<7=9o20q~=6c;296~;41;09<l5238f95c><uz93h7>52z?0=7<6n116?4=56g9~w6>e2909w0=61;4e?85>83;m46s|38c94?4|5:3:6?>n;<1:f?7a02wx?5o50;0x96?72?l01>6i:0d;?xu4110;6?u2382965g<5:326<h7;|q0<<<72;q6?5h56g9>7=c=9o20q~=66;296~;40o09<l5238595c><uz9287>52z?0<`<58h16?4;51g:8yv5>m3:1>v3<92814d=:;0l1=k64}r1a3?6=:r785>4>f99>7g?=9;i0q~=n3;296~;4i00=j63<a982b==z{:h86=4={<1b=?47i278n94>f99~w6g32909w0=n9;3e<>;4ih0=j6s|3`094?4|5:k36;h4=2c4>4`?3ty8n<4?:3y>7d>=:9k01>l=:0d;?xu4i80;6?u23`592c=:;h<1=k64}r1bb?6=:r78m:4=0`9>7g6=9o20q~=n0;296~;4i?0=j63<a482b==z{:ko6=4={<1b2?47i278mh4>f99~w6ge2909w0=n5;03e>;4ij0:j55rs2`6>5<5s49jm7<?a:?0f3<6n11v>ln:18185fi3;m463<b8826a=z{:9>6=4={<176?0a349897?i8:p761=838p1>:=:05a?854?3;m46s|30d94?5|5:>96<h7;<17`?75i2789?4>299~w7gb290?w0=<7;31<>;5jh09<=5238d957?<5:h=6<<6;|q0b5<720q6?>9513;896`d2;:;70<:f;55?85>n3;9463=1e826==:=?<19n5257791f=:=?>19n5257191f=z{:9?6=4<{<17f?0a3498978i;<100?7a02wx?9>50;1x962e28=i70=<5;03e>;4<90:j55rs204>5<3s49?n7?i8:?00a<6:k16?8<513;89606288j7p}=b683>0}:;:?1;o52352957><5;i96?>?;<1:`?751278n94>289~w6`>2902w0=;0;31=>;38=09<=5238f957><5;;o6<<6;<02g?75127>:;4:a:?620<2i27>:94:a:?626<2i2wx?>=50;1x962f2?l01>=;:7d8965428l37p}<3g83>6}:;=k1=:l4=217>76f3498j7?i8:p770=83?p1>:n:0d;?85283;9463<53826d=:;<l1=?74=242>44e3ty9n;4?:4y>762=?k16?>h513:897e62;:;70=6d;31f>;4j=0:>o5rs2d;>5<>s498j7?=9:?746<58916?4j513c8977d288370<>b;31=>;2>?0>563:6486=>;2>=0>563:6286=>{t;:81<7=t=26:>3`<5:986;h4=211>4`?3ty8?h4?:2y>71?=9>h01>=<:32b?854m3;m46s|33794?0|5:>26<h7;<16a?75i2789=4>289>704=9;h01>;i:00a?85193;9o6s|2c794?3|5:986:l4=21f>44?348h<7<?0:?0=g<6:016?o<513;8yv5a?3:15v3<3d826<=:<981>=>4=2;a>44?348:n7?=8:?15d<6:0169;85599>133==1169;:5599>135==11v>=>:18085303<m70=<2;4e?85493;m46s|32f94?5|5:>36<9m;<106?47i278?i4>f99~w643290<w0=;8;3e<>;4=l0:>o52342957g<5:?86<<n;<16b?75k278:?4>2b9>70e=9;k0q~<m4;291~;4;;0<n63<3e826==::kl1>=>4=2;a>44e349i>7?=b:p7c0=833p1>=k:00:?827938;<63<9c826d=::8k1=?64=33:>44>34?=:78:;<751?0234?=878:;<757?023ty8?=4?:2y>711=>o16?>?56g9>766=9o20q~=<c;297~;4<>0:;o52323965g<5:9h6<h7;|q066<721q6?9951g:8963b288h70=:0;31f>;4=:0:>o5234d957g<5:?j6<<k;<156?75l2789n4>2c9~w7d4290>w0=<1;5a?854k3;9463=bd8145=:;031=?74=2`3>44>3ty8j84?:8y>76e=9;3019>?:323?85>13;9463=19826<=::831=?64=445>32<5<<>6;:4=447>32<5<<86;:4}r11b?6=;r788;49f:?075<1n278>k4>f99~w65e2908w0=;6;34f>;4;909<l5232`95c><uz99>7>56z?003<6n116?9k513:8963?288j70=:a;31=>;4>;0:>55234a957e<uz8i>7>55z?075<0j278?o4>299>6gb=:9:01>76:00a?85e83;9n6s|3g694??|5:9i6<<6;<1eb?478278544>2`9>64>=9;201??8:00:?831>3<870;95;40?831<3<870;93;40?xu4:l0;6>u235792c=:;;l1:k5233g95c><uz98m7>53z?000<6?k16??h521c8965f28l37p}<2083>2}:;=?1=k64=26f>44e349>47?=d:?06g<6:h16?8o513c89605288270=;f;31<>{t:k;1<7;t=20e>2d<5:9j6<<7;<0ag?4782785:4>289>7dc=9;30q~=i3;29=~;4;h0:>4523gg9656<5:3<6<<7;<023?750279=;4>289>130=>;169;;5639>132=>;169;=5639~w64c2908w0=;4;4e?855m3<m70==d;3e<>{t;:31<7=t=267>41e3499i7<?a:?07<<6n11v><?:18;853<3;m463<4d826d=:;<21=?m4=20b>44e3499n7?=c:?01d<6:j16?;<513`8962a28827p}=b183>0}:;;o1;o5232;957><5;hi6?>?;<1:3?75j278mh4>299~w6`52902w0=<9;31=>;4nm09<=52385957g<5;;=6<<7;<021?75127>:;491:?620<1927>:9491:?626<192wx??m50;1x96242?l01><k:7d8964d28l37p}<3983>6}:;=91=:l4=20g>76f349847?i8:p74c=833p1>:<:0d;?853m3;9563<59826g=:;;k1=?o4=20a>44e349957?=a:?01d<6:k16?;<513c8962a288j7p}=ag83>0}:;;n1;o5232:957><5;h26?>?;<1:1?751278mn4>289~w6`62902w0=<8;31=>;4nk09<=52387957><5;;>6<<7;<020?75127>:;490:?620<1827>:9490:?626<182wx?>850;1x962628=i70==c;03e>;4;?0:j55rs240>5<5s49?=7?i8:?06=<6:h1v?ok:186855k3=i70=<6;31<>;5j109<=52387957d<5:kh6<<7;|q0ac<721q6?>8513;896`f2;:;70=65;31e>;59=0:>55257491c=:=??19k5257691c=:=?919k5rs271>5<5s49<?799;<166?7a02wx?9j50;0x96152><01>:k:0d;?xu4>80;6?u236`933=:;?;1=k64}r16b?6=:r78;l486:?01c<6n11v>;k:18185013==70=:e;3e<>{t;<h1<7<t=25;>20<5:?h6<h7;|q01<<72;q6?:95779>70g=9o20q~=:7;296~;4??0<:63<5982b==z{:?=6=4={<141?113499n7?i8:p703=838p1>9;:648964f28l37p}<5583>7}:;>;1;;5233;95c><uz9?o7>52z?035<0>278>54>f99~w00>290:;v3<fb85`>;38=0=h63;0285`>;38;0=h63;0085`>;3890=h63<fg85`>;4nl0=h63<fe85`>;4nk0=h63<f`85`>;4m?0=h63<ed85`>;4mm0=h63<eb85`>;4mk0=h63<e`85`>;4m00=h63<e985`>;4m>0=h63<e485`>;4m=0=h63<7b82b==z{:im6=4;{<1eg?11349n:7<?0:?0f3<6:116?oh513:8yv5c03:19v3;05842>;4ml09<=523c6957><5:ho6<<7;<1ab?75k2wx?i950;4x91642><01>kk:323?85e<3;9m63<be826f=:;ki1=?64=2a3>44?3ty8h;4?:6y>054=??16?hm5212896d5288370=md;31f>;4jj0:>o523b2957?<5:i26<<7;|q0`0<720q68=?5779>7`d=:9:01>l=:00b?85d03;9463<be826d=:;ki1=?o4=2ab>44?349ij7?=a:?0g<<6:m1v>j;:18;82783==70=ja;034>;4j90:>5523b:957?<5:ij6<<6;<1`=?75j278o:4>2`9>7f0=9;20q~=k3;29=~;4no0<:63<e88145=:;k:1=?o4=2a;>44e349hm7?=b:?0g<<6:j16?n9513;896e2288370=l6;31=>{t;m81<7ot=2df>20<5:o36?>?;<1ba?75j278o54>2`9>7fg=9;k01>m6:00b?85d?3;9463<c5826==:;j?1=?74=2a5>44f3ty8h<4?:8y>7cb=??16?h95212896gb288j70=l2;31<>;4k:0:>5523b5957b<5:i?6<<m;<1`1?75k278o;4>2e9~w6b7290jw0=ib;55?85b=38;<63<ab826d=:;j;1=?74=2a1>44f349h?7?=9:?0g2<6:j16?n:513c896e2288i70=l6;31g>{t;jo1<7lt=2db>20<5:o?6?>?;<1bg?75j278o<4>299>7f4=9;301>m<:00b?85d?3;9n63<c5826<=:;j?1=?o4=2a5>44e349ii7?=7:p7ag=838p1>k9:64896da28l37p}<e283>7}:;lo1;;523cf95c><uz9n>7>52z?0aa<0>278nn4>f99~w6c62909w0=jc;55?85d13;m46s|3d294?4|5:oi6:84=2a;>4`?3ty8hk4?:3y>7`g=??16?n851g:8yv5cm3:1>v3<e8842>;4k<0:j55rs2fg>5<5s49n4799;<1`0?7a02wx?im50;0x96c02><01>m=:0d;?xu4lk0;6?u23d7933=:;j;1=k64}r1g=?6=:r78i9486:?0f`<6n11v>6<:18085?:3==70=78;55?85?<3;m46s|39094?>|5:296?>?;<14a?751278494>289>72b=9;301>6>:00:?850k3;9563<b8826d=:=?21=?74}r1;4?6=:r78;k486:?0<4<6n11v>9i:1827~;4?o09<=5234g957?<5:?36<<6;<11<?751278>l4>299>77d=9;201><6:00:?850m3;9m63<85826==:;>n1=?o4=2:2>44?349<o7?=a:?00a<6:016?8=513;89607288270=91;31=>;4=j0:>4523c;957d<5<<36<<n;|q0<=<72jq6?5652128963b288370=:8;31<>;4:10:>55233c957?<5:8i6<<6;<11=?7502788i4>299>705=9;201>8?:00;?85193;9463<5b826==z{:2<6=4<{<1;2?1134939799;<14`?7a02wx?5;50;0x96>22;:;70=8d;31<>{t<<i1<7<t=54:>3`<5=?h6<h7;|q71`<72;q68;7516`8913b28l37p};3b83>6}:<?31=k64=566>44?34>8m7?=8:p0`4=832p19;j:00;?82bm38;<63=d1842>;5:>0:>55257490a=:=??18i5257690a=:=?918i5rs31g>5<3s4>>i7?=9:?10<<589168<m513:8915428837p};5c83>6}:<>81:k5244a92c=:<<h1=k64}r653?6=;r7?;?4>7c9>00e=:9k01988:0d;?xu3<=0;69u246095c><5=>>6<<6;<60e?75127?9<4>299~w1ce2902w0::c;5a?821?3;9463;f78145=::;=1=?74=305>44>34?=:7:m;<751?2e34?=87:m;<757?2e3ty98;4?:5y>031=9;301?;>:323?826i3;9463;30826==z{=?j6=4<{<645?0a34>>n78i;<66e?7a02wx8;850;1x911628=i70::b;03e>;3>?0:j55rs560>5<2s4><=7?i8:?715<6:h1689;513c8915f288j70::1;31=>{t<lk1<77t=57a>2d<5=<=6<<7;<6e1?478279>;4>299>673=9;301889:5c890022=k0188;:5c890042=k0q~<;5;290~;3>?0:>4522429656<5=;j6<<n;<605?75i2wx88750;1x91172?l019;n:7d8913>28l37p};6483>6}:<>:1=:l4=57b>76f34>=97?i8:p014=83<p199?:0d;?82283;9n63;44826g=:<:k1=?l4=572>44f34>?j7?=8:p0`?=833p19;n:6`89102288370:i4;034>;5:<0:>552236957?<5<<=6974=446>1?<5<<?6974=440>1?<uz8?87>54z?720<6:016>9h52128917?288370:=f;31<>{t<<21<7=t=54e>3`<5=?26;h4=57;>4`?3ty?:94?:2y>03`=9>h019;6:32b?821<3;m46s|45394?1|5=<m6<h7;<664?75k27?8h4>2e9>013=9;i019=n:00`?82293;9n63;4g826<=z{=o36=46{<66=?1e34>=87?=9:?7b6<58916>?:513:89744288270;96;75?831=3?=70;94;75?831;3?=7p}=4283>1}:<?>1=?64=36f>76734>:47?=a:?76c<6:h1v9;8:180821m3<m70::8;4e?822?3;m46s|47194?5|5=<n6<9m;<66<?47i27?:>4>f99~w127290<w0:9e;3e<>;3=90:>55245f957><5=>n6<<7;<672?75027?9<4>2b9>01`=9;k0q~:j7;29=~;3=10<n63;62826<=:<o81>=>4=301>44>3489?7?=8:?623<2=27>:84:5:?621<2=27>:>4:5:p614=83>p198<:00;?843l38;<63;17826==:<;n1=?64}r662?6=;r7?:i49f:?712<1n27?9;4>f99~w1052908w0:9d;34f>;3=>09<l5247095c><uz>8j7>58z?72a<6n11688>513;8912d288370:;d;31=>;3<l0:>452454957?<5=?96<<7;<67b?75j2wx8h850;;x91302>h0198=:00:?82a938;<63=23826==::;;1=?74=445>02<5<<>68:4=447>02<5<<868:4}r075?6=<r7?:?4>299>61e=:9:019?9:00b?825l3;9m6s|44794?5|5=<h6;h4=575>3`<5=?>6<h7;|q724<72:q68;m516`891312;:j70:91;3e<>{t<:o1<77t=54`>4`?34>?57?=8:?70d<6:11689m513;8912c288j70:;e;31e>;3<?0:>l52440957?<5=>m6<<l;|q7a0<720q688857c9>037=9;3019h?:323?84593;9463=21826<=:=?<19>52577916=:=?>19>52571916=z{;>;6=4;{<655?7502798o4=019>042=9;2019<m:00;?xu3==0;6>u247`92c=:<<?1:k5244695c><uz>=<7>53z?72g<6?k1688;521c8910728l37p};3e83>d}:<?h1=k64=56:>44f34>?m7?=a:?70=<6:11689m513`8912c288h70:;e;31f>;3<?0:>o52440957g<5=>i6<<7;|q7a1<720q688;57c9>036=9;3019ki:323?84583;9463=1g826<=:=?<19?52577917=:=?>19?52571917=z{;9m6=4;{<654?7502798l4=019>042=9;k019<m:00b?xu3=:0;6>u247c92c=:<<>1:k5244195c><uz>>j7>53z?72d<6?k1688:521c8913a28l37p};3c83>g}:<?k1=k64=56:>44>34>?m7?=9:?70=<6:01689m513c8912c288i70:;e;31g>;3<?0:>n52440957d<5=>i6<<6;<673?75?2wx8h=50;;x91332>h019;i:00:?82bl38;<63=1g826==::8o1=?74=445>07<5<<>68?4=447>07<5<<868?4}r00a?6=<r7?9k4>299>61>=:9:019?=:00;?82513;946s|44f94?5|5=<36<9m;<667?47i27?9i4>f99~w11b2909w0:98;3e<>;30k0<:6s|4d394?>|5=?86:l4=57g>44>34>no7<?0:?15`<6:1169;85519>133==9169;:5519>135==91v?=l:187822l3;9463=468145=:<881=?o4=50:>44f3ty??44?:3y>0=c=??168>o51g:8yv20<3:1>v3;8e842>;3<<0:j55rs55g>5<5s4>2:799;<665?7a02wx8:m50;0x91?22><019;?:0d;?xu3?k0;6?u2486933=:<=l1=k64}r64e?6=:r7?5>486:?70`<6n11v996:18182>:3==70:;d;3e<>{t<>21<7<t=5;2>20<5=>h6<h7;|q732<72;q684>5779>01?=9o20q~:86;296~;30o0<:63;4982b==z{==>6=4={<6;g?1134>?;7?i8:p13d=839=w0:je;4g?82a>3<o70:i5;4g?82a<3<o70:i3;4g?82a:3<o70:i1;4g?82a83<o70:jf;4g?82bl3<o70:jc;4g?82c03<o70:j0;4g?82cn3<o70:ke;4g?82cl3<o70:kc;4g?82cj3<o70:ka;4g?82c13<o70:k7;4g?82c>3<o70:l2;4g?82di3<o70:l9;4g?82d03<o70:l7;4g?82d>3<o70:l5;4g?82d<3<o70:l3;4g?82d93<o70:l0;4g?82>?3;m463:678252=:=?<195j4=445>0>e34?=:7;7a:?623<200169;;5105890022<2o70;95;7;f>;2><0>4l5257791=?<5<<?6<?8;<750?3?l27>:94:8c9>132==1k0188;:4::?831;3;:;63:6286<a=:=?9195l4=440>0>f34?=?7;79:p0fe=839p19kj:64891b?2;:;70:>c;31=>{t<m?1<7=t=5d5>20<5=o;6?>?;<62e?7512wx8i:50;1x91`22><019ji:323?826i3;9n6s|4e194?5|5=l?6:84=5ff>76734>:47?=9:p0a4=839p19h<:64891bc2;:;70:>8;31f>{t<m;1<7=t=5d1>20<5=nh6?>?;<622?7512wx8i>50;1x91`62><019jm:323?826>3;9n6s|4bd94?5|5=l;6:84=5fb>76734>:87?=9:p0fc=839p19ki:64891b>2;:;70:>4;31f>{t<jn1<7=t=5gg>20<5=n<6?>?;<626?7512wx8nl50;1x91cd2><019j9:323?826:3;9n6s|4``94?2|5=n36:84=5a1>76734>8?7?=9:?7=g<6:11v9l;:18682b83==70:la;034>;3;80:>45248;957><5=3i6<<l;|q7f6<72?q68ih5779>0f?=:9:019=>:00a?82>13;9o63;99826==:<0i1=?64}r6a6?6=?r7?hh486:?7g=<589168?h513;891?>288i70:68;31f>;31j0:>4524`7957><uz>i=7>59z?7`a<0>27?o:4=019>07`=9;h019o;:00;?82>13;9m63;99826d=:<h<1=?64=5;a>44f34>j97?=d:p0g6=832p19jl:64891e12;:;70:=d;31=>;3i=0:>4524`4957?<5=k>6<<m;<6b7?75i27?m?4>299~w1ga2902w0:kb;55?82d=38;<63;2e826g=:<h>1=?l4=5c5>44e34>j97?=c:?7e6<6:0168l?513:891g528827p};ad83>d}:<mk1;;524b69656<5=8i6<<6;<6b0?75i27?m;4>2`9>0d3=9;k019o<:00;?82f83;9463;a0826<=:<h81=?o4}r6b`?6=1r7?h4486:?7g6<589168?l513`891?b288370:6f;31<>;3i:0:>i524`2957d<5=k:6<<l;<6b6?75l2wx8lm50;cx91b02><019m>:323?82513;9563;9d826d=:<0l1=?74=5;g>44?34>j?7?=c:?7e5<6:h168l?513`891g5288h7p};a`83>g}:<m<1;;524b29656<5=826<<m;<6:a?75127?5k4>2`9>0<b=9;3019o<:00a?82f83;9563;a0826d=:<h81=?l4=5;b>4403ty?n;4?:3y>0f4=??1684l51g:8yv2en3:1>v3;c`842>;3100:j55rs5`f>5<5s4>h5799;<6:<?7a02wx8oj50;0x91e?2><019o::0d;?xu3jj0;6?u24b5933=:<h>1=k64}r6af?6=:r7?o;486:?7e7<6n11v9ln:18182d=3==70:n1;3e<>{t<k31<7<t=5a7>20<5=k;6<h7;|q7f=<72;q68n=5779>0<c=9o20q~:m7;296~;3k80<:63;9e82b==z{=h>6=4={<6`4?1134>2m7?i8:p6c6=83ip1?ln:64896722;:;70=?7;31<>;4800:>45231c957><5::h6<<7;<13a?750278<>4>2c9>6cg=9;301>??:00;?84al3;9m63<01826g=z{::=6=4={<0`6?11349;;7?i8:p75>=838p1?m>:648966>28l37p}<0c83>7}::j:1;;5231c95c><uz9;h7>52z?1fc<0>278<n4>f99~w66a2909w0<me;55?857m3;m46s|30094?4|5;ho6:84=233>4`?3ty9jn4?:3y>6ge=??16>ko51g:8yv4an3:1>v3=bc842>;5nm0:j55rs221>5<5s48i5799;<134?7a02wx?=;50;0x97d?2><01>><:0d;?xu5?o0;6nu225;933=::h>1>=>4=3:b>44?3483o7?=8:?1<a<6:116>5h513:897?6288370<6f;31f>;51:0:>552284957?<5;326<<n;<0:g?75j2wx>5750;0x97362><01?6n:0d;?xu50k0;6?u2242933=::1i1=k64}r0;a?6=:r798k486:?1<a<6n11v?7?:181843m3==70<7f;3e<>{t:081<7<t=36g>20<5;3:6<h7;|q1=0<72;q6>9m5779>6<5=9o20q~<68;296~;5<k0<:63=9782b==z{;3i6=4={<07e?11348257?i8:p6<c=838p1?:7:64897?d28l37p}=a083>7}::==1;;5228d95c><uz8om7>52z?050<0>279i;4=019~w7c42909w0=>d;55?84bm38;<6s|2g;94?d|5:;o6?>?;<133?751278<44>2`9>75g=9;h01>>l:00`?857m3;9h63<05826d=::ok1=?m4=233>44e348mi7?=8:?044<6:01v?k=:181856k3==70<jd;034>{t:o21<7ot=23`>767349;57?=8:?04d<6:h16?=m513`8966b288h70=?4;31f>;5nk0:>552302957e<5;ln6<<6;<135?75i2wx>h?50;0x967e2><01?kl:323?xu5n>0;64u230`9656<5::j6<<6;<13g?75i278<h4>2c9>752=9;i01?hm:00:?85693;9463=fd826d=:;9;1=?l4}r0f4?6=:r78=l486:?1ag<5891v?h9:18;856i38;<63<0b826<=:;9o1=?o4=227>44c348mn7?=a:?054<6:016>kk513`89666288h7p}=dg83>7}:;831;;522dc9656<uz8m97>57z?05<<58916?=k513;89664288h70<ia;31e>;4990:>4522gf957d<5::;6<<l;|q1``<72;q6?<65779>6`?=:9:0q~<i4;292~;49109<=52316957><5;lj6<<m;<124?75i279ji4>2b9>757=9;20q~<kd;296~;49>0<:63=e98145=z{;l86=4:{<123?478278<>4>299>6cg=9;201?hk:00;?85783;946s|2ea94?4|5:;=6:84=3g4>7673ty9j?4?:5y>740=:9:01>><:00:?84al3;9563<01826<=z{;ni6=4={<120?11348n97<?0:p6c7=839p1>?;:323?857;3;9m63<01826d=z{;n26=4={<127?11348n87<?0:p6``=838p1>?<:323?857<3;956s|27;94?4|5;k?6:84=356>7673ty9;?4?:3y>6de=??16>:j52128yv4?03:1nv3=ab8145=::1k1=?74=3:`>44>3483h7?=b:?1<c<6:j16>4?513f897g7288j70<63;31f>;51?0:>n5228c957><5;3o6<<6;|q134<72;q6>ll5779>62e=:9:0q~<77;29e~;5ik09<=5229a957g<5;2o6<<n;<0;b?75j2795<4>2b9>6d6=9;h01?7<:00`?84>?3;9463=9`826<=::0n1=?o4}r044?6=:r79ml486:?13g<5891v?69:18:84fi38;<63=8e826<=::1l1=?o4=3;2>44e348j<7?=c:?1=1<6:116>49513;897?f288j70<6d;31f>{t:?l1<7<t=3c:>20<5;=j6?>?;|q1<0<721q6>l75212897>a288270<61;31e>;5i90:>i52286957?<5;3<6<<n;<0:e?75j2795i4>2b9~w70b2909w0<n8;55?840138;<6s|29694?1|5;k36?>?;<0:5?7512795k4>2b9>6<5=9;301?79:00b?84>13;9n63=9b826f=z{;<o6=4={<0b3?11348<47<?0:p6=5=83<p1?o8:323?84f83;9463=92826d=::0<1=?l4=3;:>44d3482h7?=8:p63e=838p1?o9:64897102;:;7p}=8383>0}::h<1>=>4=3;e>44?3482:7?=8:?1=<<6:116>4m513:8yv41j3:1>v3=a4842>;5??09<=5rs3:2>5<3s48j97<?0:?1=c<6:016>47513;897?d28827p}=6`83>7}::h91;;522669656<uz83<7>53z?1e6<58916>4h513c897?d288j7p}=6983>7}::h81;;522619656<uz8<i7>52z?1e7<58916>l>513;8yv4d<3:1>v3=e7842>;5l909<=5rs3ag>5<5s48ni799;<0g<?4782wx>nm50;0x97cc2><01?j8:323?xu5kk0;6?u22da933=::m<1>=>4}r0`e?6=:r79io486:?1`0<5891v?m6:18184bi3==70<k4;034>{t:j21<7<t=3g:>20<5;n86?>?;|q1g2<72;q6>h65779>6a4=:9:0q~<l6;296~;5m>0<:63=d08145=z{;i>6=4={<0f1?11348hj7<?0:p6f5=838p1?k;:64897eb2;:;7p}=5283>7}::>?1;;5224d9656<uz8>o7>52z?13a<0>279::4=019~w73e2909w0<8c;55?841>38;<6s|24c94?4|5;=i6:84=346>7673ty9944?:3y>62g=??16>;:52128yv4203:1>v3=78842>;5>:09<=5rs374>5<5s48<4799;<056?4782wx>8850;0x97102><01?8>:323?xu5=<0;6?u2264933=::?:1>=>4}r060?6=:r79;9486:?11`<5891v?;=:181840;3==70<:d;034>{t::;1<7<t=344>20<5;;o6<h7;|q175<72;q6>;85779>64e=9o20q~<=f;296~;5><0<:63=1c82b==z{;8n6=4={<050?11348:m7?i8:p67b=838p1?8<:648977>28l37p}=2b83>7}::?81;;5220:95c><uz89n7>52z?124<0>279=:4>f99~w74f2909w0<90;55?846>3;m46s|23;94?4|5;?n6:84=336>4`?3ty9>54?:3y>60b=??16><:51g:8yv44j3:1>v3=d9842>;5:>0:j55rs31b>5<5s48o;799;<012?7a02wx>>750;0x97b12><01?<::0d;?xu5;10;6?u22e7933=::;>1=k64}r003?6=:r79h9486:?166<6n11v?=9:18184c;3==70<=2;3e<>{t::?1<7<t=3f1>20<5;8:6<h7;|q171<72;q6>i?5779>676=9o20q~<<3;296~;5ko0<:63=1g82b==z{;996=4={<0`a?11348:i7?i8:p707=83?p1>;j:00g?853m3;m463<4e826a=:;<81=?j4=27e>44c3ty8on4?:5y>7f>=9;i01>mn:00`?85d;3;m463<c8826<=z{:io6=4;{<1a`?751278nn4>289>7g`=9;301>m8:0d;?xu4kk0;69u23cf957b<5:hh6<<l;<1`e?7a0278nk4>2e9~w1142909w0::0;31`>;3<h0:j55rs5c;>5<3s4>j87?=c:?7e3<6:j1684h51g:891g228827p};a883>1}:<031=?74=5;;>44>34>2n7?=9:?7e6<6n11v9o8:18782>13;9h63;99826f=:<h<1=k64=5;a>44c3ty:h=4?:3y>706=9o201>:k:00`?xu6m<0;6?u234195c><5:?96<<l;|q2b6<72:q6?;>51g:8963a288370=:a;31<>{t9121<7<t=2a3>4`?349ij7?=b:p5=e=838p197l:0d;?82>j3;9n6s|1`094?4|5;k;6<h7;<0:b?75l2wx=o:50;0x966328l370=?3;31`>{t9kn1<7<t=3;7>4`?3482?7?=d:p5a7=838p1?78:0d;?84>>3;9h6s|1e194?4|5;3j6<h7;<0:=?75l2wx=i;50;0x97?c28l370<6c;31`>{t9m=1<7<t=3da>4`?348mm7?=d:p5a?=838p1>?>:0d;?85683;9h6s|1e`94?4|5;ln6<h7;<0e`?75l2wx=ij50;0x966628l370=?0;31`>{t=181<7<t=4:1>4`?34?<j799;|q2a=<72;q6?;<51g:89606288o7p}>e`83>6}:<=<1=k64=566>44c34>8m7?=d:p5`c=838p19;=:0d;?82293;9h6s|1g294?4|5:>m6<h7;<16g?75l2wx=k?50;0x912e28l370:;f;31`>{t=?=1<7;t=44;>4`?34?=:7?>8:?620<691169;:510:8900428;37ps|6e194?4|V?n8708n:7f0?!3?=3;nj6s|6ec94?4|V?nj708n:7fb?!3?=3;m>6s|6c594?4|V?h<708n:7`4?!3?=3;m86s|61d94?4|V<oi708n:4ga?!3?=3;356s|61f94?4|V<oj708n:4gb?!3?=3;3o6s|61a94?4|V<o2708n:4g:?!3?=3;2;6s|61`94?4|V<o3708n:4g;?!3?=3;j>6s|61c94?4|V<o<708n:4g4?!3?=3;jh6s|61;94?4|V<o=708n:4g5?!3?=3;i86s|61594?4|V<o?708n:4g7?!3?=3;i96s|61494?4|V<o8708n:4g0?!3?=3;ih6s|61794?4|V<o9708n:4g1?!3?=3;h46s|61694?4|V<o:708n:4g2?!3?=3;o=6s|61194?4|V<o;708n:4g3?!3?=3;o>6s|61094?4|V<nm708n:4fe?!3?=3;o?6s|61394?4|V<nn708n:4ff?!3?=3;o86s|61294?4|V<no708n:4fg?!3?=3;o96s|5gd94?4|V<nh708n:4f`?!3?=3;o:6s|5gg94?4|V<ni708n:4fa?!3?=3;o;6s|5ga94?4|V<n2708n:4f:?!3?=3;o46s|5g`94?4|V<n3708n:4f;?!3?=3;o56s|5gc94?4|V<n<708n:4f4?!3?=3;om6s|5g;94?4|V<n=708n:4f5?!3?=3;on6s|5g:94?4|V<n>708n:4f6?!3?=3;oo6s|5g594?4|V<n?708n:4f7?!3?=3;oh6s|5g494?4|V<n8708n:4f0?!3?=3;oi6s|5g794?4|V<n9708n:4f1?!3?=3;oj6s|5g694?4|V<n:708n:4f2?!3?=3;n<6s|5g194?4|V<n;708n:4f3?!3?=3;n=6s|60494?4|V<l:708n:4d2?!3?=3;n>6s|60794?4|V<l;708n:4d3?!3?=3;n?6s|60694?4|V<om708n:4ge?!3?=3;n86s|60194?4|V<on708n:4gf?!3?=3;n:6s|60094?4|V<oo708n:4gg?!3?=3;n;6s|60394?4|V<oh708n:4g`?!3?=3;n46s|60294?4|V<o>708n:4g6?!3?=3;n56s|61:94?4|V<nj708n:4fb?!3?=3;nm6s|5gf94?4|V<im708n:4ae?!3?=3;nn6s|5g094?4|V<in708n:4af?!3?=3;no6s|6g694?4|V?l?708n:7d7?!3?=3;nh6s|6e394?4|V?n:708n:7f2?!3?=3;ni6s|64:94?4|V?9?708n:717?!3?=3;3m6s|64494?4|V?98708n:710?!3?=3;3n6s|64794?4|V?99708n:711?!3?=3;3h6s|64694?4|V?9:708n:712?!3?=3;3i6s|64194?4|V?9;708n:713?!3?=3;3j6s|64094?4|V?8m708n:70e?!3?=3;2<6s|64294?4|V?8o708n:70g?!3?=3;2=6s|65d94?4|V?8h708n:70`?!3?=3;2>6s|65g94?4|V?8i708n:70a?!3?=3;2?6s|65f94?4|V?8j708n:70b?!3?=3;286s|65a94?4|V?82708n:70:?!3?=3;296s|65`94?4|V?83708n:70;?!3?=3;2:6s|65c94?4|V?8<708n:704?!3?=3;246s|65;94?4|V?8=708n:705?!3?=3;256s|65:94?4|V?8>708n:706?!3?=3;2m6s|65594?4|V?8?708n:707?!3?=3;2n6s|65794?4|V?89708n:701?!3?=3;2o6s|65694?4|V?8:708n:702?!3?=3;2h6s|65194?4|V?8;708n:703?!3?=3;2i6s|65094?4|V?;m708n:73e?!3?=3;2j6s|65394?4|V?;n708n:73f?!3?=3;j<6s|65294?4|V?;o708n:73g?!3?=3;j=6s|62d94?4|V?;h708n:73`?!3?=3;j?6s|62g94?4|V?;i708n:73a?!3?=3;j86s|62f94?4|V?;j708n:73b?!3?=3;j96s|62a94?4|V?;2708n:73:?!3?=3;j:6s|64d94?4|V?9j708n:71b?!3?=3;j;6s|64g94?4|V?92708n:71:?!3?=3;j46s|64f94?4|V?93708n:71;?!3?=3;j56s|64a94?4|V?9<708n:714?!3?=3;jm6s|64`94?4|V?9=708n:715?!3?=3;jn6s|64c94?4|V?9>708n:716?!3?=3;jo6s|64;94?4|V?8n708n:70f?!3?=3;ji6s|64394?4|V?88708n:700?!3?=3;jj6s|65494?4|V?;3708n:73;?!3?=3;i<6s|62`94?4|V?;<708n:734?!3?=3;i=6s|67594?4|V?<<708n:744?!3?=3;i>6s|67394?4|V?<:708n:742?!3?=3;i?6s|6b594?4|V?hi708n:7`a?!3?=3;i:6s|6b794?4|V?hj708n:7`b?!3?=3;i;6s|6e294?4|V?i8708n:7a0?!3?=3;i46s|6bd94?4|V?i9708n:7a1?!3?=3;i56s|6bg94?4|V?i:708n:7a2?!3?=3;im6s|6bf94?4|V?i;708n:7a3?!3?=3;in6s|6ba94?4|V?hm708n:7`e?!3?=3;io6s|6b`94?4|V?hn708n:7`f?!3?=3;ii6s|6bc94?4|V?ho708n:7`g?!3?=3;ij6s|6b;94?4|V?hh708n:7``?!3?=3;h<6s|6b:94?4|V?h2708n:7`:?!3?=3;h=6s|6b694?4|V?h3708n:7`;?!3?=3;h>6s|6dc94?4|V?nn708n:7ff?!3?=3;h?6s|6d:94?4|V?no708n:7fg?!3?=3;h86s|6g194?4|V?o=708n:7g5?!3?=3;h96s|6g094?4|V?o>708n:7g6?!3?=3;h:6s|6g394?4|V?o?708n:7g7?!3?=3;h;6s|6g294?4|V?o8708n:7g0?!3?=3;h56s|6dd94?4|V?o9708n:7g1?!3?=3;hm6s|6dg94?4|V?o:708n:7g2?!3?=3;hn6s|6df94?4|V?o;708n:7g3?!3?=3;ho6s|6da94?4|V?nm708n:7fe?!3?=3;hh6s|6d`94?4|V?nh708n:7f`?!3?=3;hi6s|6d594?4|V?ni708n:7fa?!3?=3;hj6srn022g?6=:rB>4;5rn022`?6=:rB>4;5rn022a?6=:rB>4;5rn022b?6=:rB>4;5rn0214?6=:rB>4;5rn0215?6=:rB>4;5rn0216?6=:rB>4;5rn0217?6=:rB>4;5rn0210?6=:rB>4;5rn0211?6=:rB>4;5rn0212?6=:rB>4;5rn0213?6=:rB>4;5rn021<?6=:rB>4;5rn021=?6=:rB>4;5rn021e?6=:rB>4;5rn021f?6=:rB>4;5rn021g?6=:rB>4;5rn021`?6=:rB>4;5rn021a?6=:rB>4;5rn021b?6=:rB>4;5rn0204?6=:rB>4;5rn0205?6=:rB>4;5rn0206?6=:rB>4;5rn0207?6=:rB>4;5rn0200?6=:rB>4;5rn0201?6=:rB>4;5rn0202?6=:rB>4;5rn0203?6=:rB>4;5rn020<?6=:rB>4;5rn020=?6=:rB>4;5rn020e?6=:rB>4;5rn020f?6=:rB>4;5rn020g?6=:rB>4;5rn020`?6=:rB>4;5rn020a?6=:rB>4;5rn020b?6=:rB>4;5rn0274?6=:rB>4;5rn0275?6=:rB>4;5rn0276?6=:rB>4;5rn0277?6=:rB>4;5rn0270?6=:rB>4;5rn0271?6=:rB>4;5rn0272?6=:rB>4;5rn0273?6=:rB>4;5rn027<?6=:rB>4;5rn027=?6=:rB>4;5rn027e?6=:rB>4;5rn027f?6=:rB>4;5rn027g?6=:rB>4;5rn027`?6=:rB>4;5rn027a?6=:rB>4;5rn027b?6=:rB>4;5rn0264?6=:rB>4;5rn0265?6=:rB>4;5rn0266?6=:rB>4;5rn0267?6=:rB>4;5rn0260?6=:rB>4;5rn0261?6=:rB>4;5rn0262?6=:rB>4;5rn0263?6=:rB>4;5rn026<?6=:rB>4;5rn026=?6=:rB>4;5rn026e?6=:rB>4;5rn026f?6=:rB>4;5rn026g?6=:rB>4;5rn026`?6=:rB>4;5rn026a?6=:rB>4;5rn026b?6=:rB>4;5rn0254?6=:rB>4;5rn0255?6=:rB>4;5rn0256?6=:rB>4;5rn0257?6=:rB>4;5rn0250?6=:rB>4;5rn0251?6=:rB>4;5rn0252?6=:rB>4;5rn0253?6=:rB>4;5rn025<?6=:rB>4;5rn025=?6=:rB>4;5rn025e?6=:rB>4;5rn025f?6=:rB>4;5rn025g?6=:rB>4;5rn025`?6=:rB>4;5rn025a?6=:rB>4;5rn025b?6=:rB>4;5rn0244?6=:rB>4;5rn0245?6=:rB>4;5rn0246?6=:rB>4;5rn0247?6=:rB>4;5rn0240?6=:rB>4;5rn0241?6=:rB>4;5rn0242?6=:rB>4;5rn0243?6=:rB>4;5rn024<?6=:rB>4;5rn024=?6=:rB>4;5rn024e?6=:rB>4;5rn024f?6=:rB>4;5rn024g?6=:rB>4;5rn024`?6=:rB>4;5rn024a?6=:rB>4;5rn024b?6=:rB>4;5rn02;4?6=:rB>4;5rn02;5?6=:rB>4;5rn02;6?6=:rB>4;5rnd04>5<6sA?3:6sae7494?7|@<2=7p`j6683>4}O=1<0qck98;295~N20?1vbh86:182M3?>2wei;o50;3xL0>13tdn:o4?:0yK1=0<ugo=o7>51zJ6<3=zfl<o6=4>{I7;2>{im?o1<7?tH4:5?xhb>o0;6<uG5948ykc083:1=vF:879~j`16290:wE;76:ma24=83;pD869;|lf36<728qC9584}og40?6=9rB>4;5rnd56>5<6sA?3:6sae6494?7|@<2=7p`j7683>4}O=1<0qck88;295~N20?1vbh96:182M3?>2wei:o50;3xL0>13tdn;o4?:0yK1=0<ugo<o7>51zJ6<3=zfl=o6=4>{I7;2>{im>o1<7?tH4:5?xhb?o0;6<uG5948ykc?83:1=vF:879~j`>6290:wE;76:ma=4=83;pD869;|lf<6<728qC9584}og;0?6=9rB>4;5rnd:6>5<6sA?3:6sae9494?7|@<2=7p`j8683>4}O=1<0qck78;295~N20?1vbh66:182M3?>2wei5o50;3xL0>13tdn4o4?:0yK1=0<ugo3o7>51zJ6<3=zfl2o6=4>{I7;2>{im1o1<7?tH4:5?xhb0o0;6<uG5948ykc>83:1=vF:879~j`?6290:wE;76:ma<4=83;pD869;|lf=6<728qC9584}og:0?6=9rB>4;5rnd;6>5<6sA?3:6sae8494?7|@<2=7p`j9683>4}O=1<0qck68;295~N20?1vbh76:182M3?>2wei4o50;3xL0>13tdn5o4?:0yK1=0<ugo2o7>51zJ6<3=zfl3o6=4>{I7;2>{im0o1<7?tH4:5?xhb1o0;6<uG5948ykcf83:1=vF:879~j`g6290:wE;76:mad4=83;pD869;|lfe6<728qC9584}ogb0?6=9rB>4;5rndc6>5<6sA?3:6sae`494?7|@<2=7p`ja683>4}O=1<0qckn8;295~N20?1vbho6:182M3?>2weilo50;3xL0>13tdnmo4?:0yK1=0<ugojo7>51zJ6<3=zflko6=4>{I7;2>{imho1<7?tH4:5?xhbio0;6<uG5948ykce83:1=vF:879~j`d6290:wE;76:mag4=83;pD869;|lff6<728qC9584}oga0?6=9rB>4;5rnd`6>5<6sA?3:6saec494?7|@<2=7p`jb683>4}O=1<0qckm8;295~N20?1vbhl6:182M3?>2weioo50;3xL0>13tdnno4?:0yK1=0<ugoio7>51zJ6<3=zflho6=4>{I7;2>{imko1<7?tH4:5?xhbjo0;6<uG5948ykcd83:1=vF:879~j`e6290:wE;76:maf4=83;pD869;|lfg6<728qC9584}og`0?6=9rB>4;5rnda6>5<6sA?3:6saeb494?7|@<2=7p`jc683>4}O=1<0qckl8;295~N20?1vbhm6:182M3?>2weino50;3xL0>13tdnoo4?:0yK1=0<ugoho7>51zJ6<3=zflio6=4>{I7;2>{imjo1<7?tH4:5?xhbko0;6<uG5948ykcc83:1=vF:879~j`b6290:wE;76:maa4=83;pD869;|lf`6<728qC9584}ogg0?6=9rB>4;5rndf6>5<6sA?3:6saee494?7|@<2=7p`jd683>4}O=1<0qckk8;295~N20?1vbhj6:182M3?>2weiio50;3xL0>13tdnho4?:0yK1=0<ugooo7>51zJ6<3=zflno6=4>{I7;2>{immo1<7?tH4:5?xhblo0;6<uG5948ykcb83:1=vF:879~j`c6290:wE;76:ma`4=83;pD869;|lfa6<728qC9584}ogf0?6=9rB>4;5rndg6>5<6sA?3:6saed494?7|@<2=7p`je683>4}O=1<0qckj8;295~N20?1vbhk6:182M3?>2weiho50;3xL0>13tdnio4?:0yK1=0<ugono7>51zJ6<3=zfloo6=4>{I7;2>{imlo1<7?tH4:5?xhbmo0;6<uG5948ykca83:1=vF:879~j``6290:wE;76:mac4=83;pD869;|lfb6<728qC9584}oge0?6=9rB>4;5rndd6>5<6sA?3:6saeg494?7|@<2=7p`jf683>4}O=1<0qcki8;295~N20?1vbhh6:182M3?>2weiko50;3xL0>13tdnjo4?:0yK1=0<ugomo7>51zJ6<3=zfllo6=4>{I7;2>{imoo1<7?tH4:5?xhbno0;6<uG5948yk`783:1=vF:879~jc66290:wE;76:mb54=83;pD869;|le46<728qC9584}od30?6=9rB>4;5rng26>5<6sA?3:6saf1494?7|@<2=7p`i0683>4}O=1<0qch?8;295~N20?1vbk>6:182M3?>2wej=o50;3xL0>13tdm<o4?:0yK1=0<ugl;o7>51zJ6<3=zfo:o6=4>{I7;2>{in9o1<7?tH4:5?xha8o0;6<uG5948yk`683:1=vF:879~jc76290:wE;76:mb44=83;pD869;|le56<728qC9584}od20?6=9rB>4;5rng36>5<6sA?3:6saf0494?7|@<2=7p`i1683>4}O=1<0qch>8;295~N20?1vbk?6:182M3?>2wej<o50;3xL0>13tdm=o4?:0yK1=0<ugl:o7>51zJ6<3=zfo;o6=4>{I7;2>{in8o1<7?tH4:5?xha9o0;6<uG5948yk`583:1=vF:879~jc46290:wE;76:mb74=83;pD869;|le66<728qC9584}od10?6=9rB>4;5rng06>5<6sA?3:6saf3494?7|@<2=7p`i2683>4}O=1<0qch=8;295~N20?1vbk<6:182M3?>2wej?o50;3xL0>13tdm>o4?:0yK1=0<ugl9o7>51zJ6<3=zfo8o6=4>{I7;2>{in;o1<7?tH4:5?xha:o0;6<uG5948yk`483:1=vF:879~jc56290:wE;76:mb64=83;pD869;|le76<728qC9584}od00?6=9rB>4;5rng16>5<6sA?3:6saf2494?7|@<2=7p`i3683>4}O=1<0qch<8;295~N20?1vbk=6:182M3?>2wej>o50;3xL0>13tdm?o4?:0yK1=0<ugl8o7>51zJ6<3=zfo9o6=4>{I7;2>{in:o1<7?tH4:5?xha;o0;6<uG5948yk`383:1=vF:879~jc26290:wE;76:mb14=83;pD869;|le06<728qC9584}od70?6=9rB>4;5rng66>5<6sA?3:6saf5494?7|@<2=7p`i4683>4}O=1<0qch;8;295~N20?1vbk:6:182M3?>2wej9o50;3xL0>13tdm8o4?:0yK1=0<ugl?o7>51zJ6<3=zfo>o6=4>{I7;2>{in=o1<7?tH4:5?xha<o0;6<uG5948yk`283:1=vF:879~jc36290:wE;76:mb04=83;pD869;|le16<728qC9584}od60?6=9rB>4;5rng76>5<6sA?3:6saf4494?7|@<2=7p`i5683>4}O=1<0qch:8;295~N20?1vbk;6:182M3?>2wej8o50;3xL0>13tdm9o4?:0yK1=0<ugl>o7>51zJ6<3=zfo?o6=4>{I7;2>{in<o1<7?tH4:5?xha=o0;6<uG5948yk`183:1=vF:879~jc06290:wE;76:mb34=83;pD869;|le26<728qC9584}od50?6=9rB>4;5rng46>5<6sA?3:6saf7494?7|@<2=7p`i6683>4}O=1<0qch98;295~N20?1vbk86:182M3?>2wej;o50;3xL0>13tdm:o4?:0yK1=0<ugl=o7>51zJ6<3=zfo<o6=4>{I7;2>{in?o1<7?tH4:5?xha>o0;6<uG5948yk`083:1=vF:879~jc16290:wE;76:mb24=83;pD869;|le36<728qC9584}od40?6=9rB>4;5rng56>5<6sA?3:6saf6494?7|@<2=7p`i7683>4}O=1<0qch88;295~N20?1vbk96:182M3?>2wej:o50;3xL0>13tdm;o4?:0yK1=0<ugl<o7>51zJ6<3=zfo=o6=4>{I7;2>{in>o1<7?tH4:5?xha?o0;6<uG5948yk`?83:1=vF:879~jc>6290:wE;76:mb=4=83;pD869;|le<6<728qC9584}od;0?6=9rB>4;5rng:6>5<6sA?3:6saf9494?7|@<2=7p`i8683>4}O=1<0qch78;295~N20?1vbk66:182M3?>2wej5o50;3xL0>13tdm4o4?:0yK1=0<ugl3o7>51zJ6<3=zfo2o6=4>{I7;2>{in1o1<7?tH4:5?xha0o0;6<uG5948yk`>83:1=vF:879~jc?6290:wE;76:mb<4=83;pD869;|le=6<728qC9584}od:0?6=9rB>4;5rng;6>5<6sA?3:6saf8494?7|@<2=7p`i9683>4}O=1<0qch68;295~N20?1vbk76:182M3?>2wej4o50;3xL0>13tdm5o4?:0yK1=0<ugl2o7>51zJ6<3=zfo3o6=4>{I7;2>{in0o1<7?tH4:5?xha1o0;6<uG5948yk`f83:1=vF:879~jcg6290:wE;76:mbd4=83;pD869;|lee6<728qC9584}odb0?6=9rB>4;5rngc6>5<6sA?3:6saf`494?7|@<2=7p`ia683>4}O=1<0qchn8;295~N20?1vbko6:182M3?>2wejlo50;3xL0>13tdmmo4?:0yK1=0<ugljo7>51zJ6<3=zfoko6=4>{I7;2>{inho1<7?tH4:5?xhaio0;6<uG5948yk`e83:1=vF:879~jcd6290:wE;76:mbg4=83;pD869;|lef6<728qC9584}oda0?6=9rB>4;5rng`6>5<6sA?3:6safc494?7|@<2=7p`ib683>4}O=1<0qchm8;295~N20?1vbkl6:182M3?>2wejoo50;3xL0>13tdmno4?:0yK1=0<uglio7>51zJ6<3=zfoho6=4>{I7;2>{inko1<7?tH4:5?xhajo0;6<uG5948yk`d83:1=vF:879~jce6290:wE;76:mbf4=83;pD869;|leg6<728qC9584}od`0?6=9rB>4;5rnga6>5<6sA?3:6safb494?7|@<2=7p`ic683>4}O=1<0qchl8;295~N20?1vbkm6:182M3?>2wejno50;3xL0>13tdmoo4?:0yK1=0<uglho7>51zJ6<3=zfoio6=4>{I7;2>{injo1<7?tH4:5?xhako0;6<uG5948yk`c83:1=vF:879~jcb6290:wE;76:mba4=83;pD869;|le`6<728qC9584}odg0?6=9rB>4;5rngf6>5<6sA?3:6safe494?7|@<2=7p`id683>4}O=1<0qchk8;295~N20?1vbkj6:182M3?>2wejio50;3xL0>13tdmho4?:0yK1=0<ugloo7>51zJ6<3=zfono6=4>{I7;2>{inmo1<7?tH4:5?xhalo0;6<uG5948yk`b83:1=vF:879~jcc6290:wE;76:mb`4=83;pD869;|lea6<728qC9584}odf0?6=9rB>4;5rngg6>5<6sA?3:6safd494?7|@<2=7p`ie683>4}O=1<0qchj8;295~N20?1vbkk6:182M3?>2wejho50;3xL0>13tdmio4?:0yK1=0<uglno7>51zJ6<3=zfooo6=4>{I7;2>{inlo1<7?tH4:5?xhamo0;6<uG5948yk`a83:1=vF:879~jc`6290:wE;76:mbc4=83;pD869;|leb6<728qC9584}ode0?6=9rB>4;5rngd6>5<6sA?3:6safg494?7|@<2=7p`if683>4}O=1<0qchi8;295~N20?1vbkh6:182M3?>2wejko50;3xL0>13tdmjo4?:0yK1=0<uglmo7>51zJ6<3=zfolo6=4>{I7;2>{inoo1<7?tH4:5?xhano0;6<uG5948yk77890;6<uG5948yk77880;6<uG5948yk778;0;6<uG5948yk778:0;6<uG5948yk778=0;6<uG5948yk778<0;6<uG5948yk778?0;6<uG5948yk778>0;6<uG5948yk77810;6<uG5948yk77800;6<uG5948yk778h0;6<uG5948yk778k0;6<uG5948yk778j0;6<uG5948yk778m0;6<uG5948yk778l0;6<uG5948yk778o0;6<uG5948yk77990;6<uG5948yk77980;6<uG5948yk779;0;6<uG5948yk779:0;6<uG5948yk779=0;6<uG5948yk779<0;6<uG5948yk779?0;6<uG5948yk779>0;6<uG5948yk77910;6<uG5948yk77900;6<uG5948yk779h0;6<uG5948yk779k0;6<uG5948yx{zHIIp=?o>:g56bf5bmtJKNv>r@ARxyEF
\ No newline at end of file diff --git a/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.v b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.v new file mode 100644 index 000000000..9f2cc7d4e --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.v @@ -0,0 +1,173 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The synthesis directives "translate_off/translate_on" specified below are +// supported by Xilinx, Mentor Graphics and Synplicity synthesis +// tools. Ensure they are correct for your synthesis tool(s). + +// You must compile the wrapper file fifo_s6_2Kx36_2clk.v when simulating +// the core, fifo_s6_2Kx36_2clk. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + +`timescale 1ns/1ps + +module fifo_s6_2Kx36_2clk( + rst, + wr_clk, + rd_clk, + din, + wr_en, + rd_en, + dout, + full, + empty, + rd_data_count, + wr_data_count); + + +input rst; +input wr_clk; +input rd_clk; +input [35 : 0] din; +input wr_en; +input rd_en; +output [35 : 0] dout; +output full; +output empty; +output [11 : 0] rd_data_count; +output [11 : 0] wr_data_count; + +// synthesis translate_off + + FIFO_GENERATOR_V6_1 #( + .C_COMMON_CLOCK(0), + .C_COUNT_TYPE(0), + .C_DATA_COUNT_WIDTH(11), + .C_DEFAULT_VALUE("BlankString"), + .C_DIN_WIDTH(36), + .C_DOUT_RST_VAL("0"), + .C_DOUT_WIDTH(36), + .C_ENABLE_RLOCS(0), + .C_ENABLE_RST_SYNC(1), + .C_ERROR_INJECTION_TYPE(0), + .C_FAMILY("spartan6"), + .C_FULL_FLAGS_RST_VAL(1), + .C_HAS_ALMOST_EMPTY(0), + .C_HAS_ALMOST_FULL(0), + .C_HAS_BACKUP(0), + .C_HAS_DATA_COUNT(0), + .C_HAS_INT_CLK(0), + .C_HAS_MEMINIT_FILE(0), + .C_HAS_OVERFLOW(0), + .C_HAS_RD_DATA_COUNT(1), + .C_HAS_RD_RST(0), + .C_HAS_RST(1), + .C_HAS_SRST(0), + .C_HAS_UNDERFLOW(0), + .C_HAS_VALID(0), + .C_HAS_WR_ACK(0), + .C_HAS_WR_DATA_COUNT(1), + .C_HAS_WR_RST(0), + .C_IMPLEMENTATION_TYPE(2), + .C_INIT_WR_PNTR_VAL(0), + .C_MEMORY_TYPE(1), + .C_MIF_FILE_NAME("BlankString"), + .C_MSGON_VAL(1), + .C_OPTIMIZATION_MODE(0), + .C_OVERFLOW_LOW(0), + .C_PRELOAD_LATENCY(0), + .C_PRELOAD_REGS(1), + .C_PRIM_FIFO_TYPE("2kx18"), + .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), + .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), + .C_PROG_EMPTY_TYPE(0), + .C_PROG_FULL_THRESH_ASSERT_VAL(2047), + .C_PROG_FULL_THRESH_NEGATE_VAL(2046), + .C_PROG_FULL_TYPE(0), + .C_RD_DATA_COUNT_WIDTH(12), + .C_RD_DEPTH(2048), + .C_RD_FREQ(1), + .C_RD_PNTR_WIDTH(11), + .C_UNDERFLOW_LOW(0), + .C_USE_DOUT_RST(1), + .C_USE_ECC(0), + .C_USE_EMBEDDED_REG(0), + .C_USE_FIFO16_FLAGS(0), + .C_USE_FWFT_DATA_COUNT(1), + .C_VALID_LOW(0), + .C_WR_ACK_LOW(0), + .C_WR_DATA_COUNT_WIDTH(12), + .C_WR_DEPTH(2048), + .C_WR_FREQ(1), + .C_WR_PNTR_WIDTH(11), + .C_WR_RESPONSE_LATENCY(1)) + inst ( + .RST(rst), + .WR_CLK(wr_clk), + .RD_CLK(rd_clk), + .DIN(din), + .WR_EN(wr_en), + .RD_EN(rd_en), + .DOUT(dout), + .FULL(full), + .EMPTY(empty), + .RD_DATA_COUNT(rd_data_count), + .WR_DATA_COUNT(wr_data_count), + .BACKUP(), + .BACKUP_MARKER(), + .CLK(), + .SRST(), + .WR_RST(), + .RD_RST(), + .PROG_EMPTY_THRESH(), + .PROG_EMPTY_THRESH_ASSERT(), + .PROG_EMPTY_THRESH_NEGATE(), + .PROG_FULL_THRESH(), + .PROG_FULL_THRESH_ASSERT(), + .PROG_FULL_THRESH_NEGATE(), + .INT_CLK(), + .INJECTDBITERR(), + .INJECTSBITERR(), + .ALMOST_FULL(), + .WR_ACK(), + .OVERFLOW(), + .ALMOST_EMPTY(), + .VALID(), + .UNDERFLOW(), + .DATA_COUNT(), + .PROG_FULL(), + .PROG_EMPTY(), + .SBITERR(), + .DBITERR()); + + +// synthesis translate_on + +endmodule + diff --git a/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.veo b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.veo new file mode 100644 index 000000000..7657f41bc --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.veo @@ -0,0 +1,53 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG +fifo_s6_2Kx36_2clk YourInstanceName ( + .rst(rst), + .wr_clk(wr_clk), + .rd_clk(rd_clk), + .din(din), // Bus [35 : 0] + .wr_en(wr_en), + .rd_en(rd_en), + .dout(dout), // Bus [35 : 0] + .full(full), + .empty(empty), + .rd_data_count(rd_data_count), // Bus [11 : 0] + .wr_data_count(wr_data_count)); // Bus [11 : 0] + +// INST_TAG_END ------ End INSTANTIATION Template --------- + +// You must compile the wrapper file fifo_s6_2Kx36_2clk.v when simulating +// the core, fifo_s6_2Kx36_2clk. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + diff --git a/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.xco b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.xco new file mode 100644 index 000000000..659795e5f --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.xco @@ -0,0 +1,84 @@ +############################################################## +# +# Xilinx Core Generator version 12.1 +# Date: Fri May 4 20:55:54 2012 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc6slx75 +SET devicefamily = spartan6 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = csg484 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT Fifo_Generator family Xilinx,_Inc. 6.1 +# END Select +# BEGIN Parameters +CSET almost_empty_flag=false +CSET almost_full_flag=false +CSET component_name=fifo_s6_2Kx36_2clk +CSET data_count=false +CSET data_count_width=11 +CSET disable_timing_violations=false +CSET dout_reset_value=0 +CSET empty_threshold_assert_value=4 +CSET empty_threshold_negate_value=5 +CSET enable_ecc=false +CSET enable_int_clk=false +CSET enable_reset_synchronization=true +CSET fifo_implementation=Independent_Clocks_Block_RAM +CSET full_flags_reset_value=1 +CSET full_threshold_assert_value=2047 +CSET full_threshold_negate_value=2046 +CSET inject_dbit_error=false +CSET inject_sbit_error=false +CSET input_data_width=36 +CSET input_depth=2048 +CSET output_data_width=36 +CSET output_depth=2048 +CSET overflow_flag=false +CSET overflow_sense=Active_High +CSET performance_options=First_Word_Fall_Through +CSET programmable_empty_type=No_Programmable_Empty_Threshold +CSET programmable_full_type=No_Programmable_Full_Threshold +CSET read_clock_frequency=1 +CSET read_data_count=true +CSET read_data_count_width=12 +CSET reset_pin=true +CSET reset_type=Asynchronous_Reset +CSET underflow_flag=false +CSET underflow_sense=Active_High +CSET use_dout_reset=true +CSET use_embedded_registers=false +CSET use_extra_logic=true +CSET valid_flag=false +CSET valid_sense=Active_High +CSET write_acknowledge_flag=false +CSET write_acknowledge_sense=Active_High +CSET write_clock_frequency=1 +CSET write_data_count=true +CSET write_data_count_width=12 +# END Parameters +GENERATE +# CRC: e7a1c106 diff --git a/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.xise b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.xise new file mode 100644 index 000000000..c09cc4b35 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk.xise @@ -0,0 +1,392 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema"> + + <header> + <!-- ISE source project file created by Project Navigator. --> + <!-- --> + <!-- This file contains project source information including a list of --> + <!-- project source files, project and process properties. This file, --> + <!-- along with the project source files, is sufficient to open and --> + <!-- implement in ISE Project Navigator. --> + <!-- --> + <!-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. --> + </header> + + <version xil_pn:ise_version="12.1" xil_pn:schema_version="2"/> + + <files> + <file xil_pn:name="fifo_s6_2Kx36_2clk.ngc" xil_pn:type="FILE_NGC"> + <association xil_pn:name="BehavioralSimulation"/> + <association xil_pn:name="Implementation"/> + </file> + <file xil_pn:name="fifo_s6_2Kx36_2clk.v" xil_pn:type="FILE_VERILOG"> + <association xil_pn:name="BehavioralSimulation"/> + <association xil_pn:name="Implementation"/> + <association xil_pn:name="PostMapSimulation"/> + <association xil_pn:name="PostRouteSimulation"/> + <association xil_pn:name="PostTranslateSimulation"/> + </file> + </files> + + <properties> + <property xil_pn:name="AES Initial Vector spartan6" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="AES Key (Hex String) spartan6" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Add I/O Buffers" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Logic Optimization Across Hierarchy" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow SelectMAP Pins to Persist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unexpanded Blocks" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unmatched LOC Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unmatched Timing Group Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Asynchronous To Synchronous" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Auto Implementation Compile Order" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Auto Implementation Top" xil_pn:value="false" xil_pn:valueState="non-default"/> + <property xil_pn:name="Automatic BRAM Packing" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Automatically Insert glbl Module in the Netlist" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Automatically Run Generate Target PROM/ACE File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Autosignature Generation" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="BRAM Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Bring Out Global Set/Reset Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Bring Out Global Tristate Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Bus Delimiter" xil_pn:value="<>" xil_pn:valueState="default"/> + <property xil_pn:name="Case" xil_pn:value="Maintain" xil_pn:valueState="default"/> + <property xil_pn:name="Case Implementation Style" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Change Device Speed To" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Change Device Speed To Post Trace" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Clock Enable" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Collapsing Input Limit (4-40)" xil_pn:value="32" xil_pn:valueState="default"/> + <property xil_pn:name="Collapsing Pterm Limit (3-56)" xil_pn:value="28" xil_pn:valueState="default"/> + <property xil_pn:name="Combinatorial Logic Optimization" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Compile CPLD Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile EDK Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile SIMPRIM (Timing) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile UNISIM (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile XilinxCoreLib (CORE Generator) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile for HDL Debugging" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile uni9000 (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin Done" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin Program" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Rate spartan6" xil_pn:value="2" xil_pn:valueState="default"/> + <property xil_pn:name="Correlate Output to Input Design" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create ASCII Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Binary Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Bit File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Create I/O Pads from Ports" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create IEEE 1532 Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create IEEE 1532 Configuration File spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Logic Allocation File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Mask File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create ReadBack Data Files" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Cross Clock Analysis" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="DSP Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Default Powerup Value of Registers" xil_pn:value="Low" xil_pn:valueState="default"/> + <property xil_pn:name="Delay Values To Be Read from SDF" xil_pn:value="Setup Time" xil_pn:valueState="default"/> + <property xil_pn:name="Device" xil_pn:value="xc6slx75" xil_pn:valueState="non-default"/> + <property xil_pn:name="Device Family" xil_pn:value="Spartan6" xil_pn:valueState="non-default"/> + <property xil_pn:name="Device Speed Grade/Select ABS Minimum" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Do Not Escape Signal and Instance Names in Netlist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Done (Output Events)" xil_pn:value="Default (4)" xil_pn:valueState="default"/> + <property xil_pn:name="Drive Awake Pin During Suspend/Wake Sequence spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Drive Done Pin High" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable BitStream Compression" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Cyclic Redundancy Checking (CRC) spartan6" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Debugging of Serial Mode BitStream" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable External Master Clock spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Internal Done Pipe" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Message Filtering" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Multi-Pin Wake-Up Suspend Mode spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Multi-Threading" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Multi-Threading par" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Outputs (Output Events)" xil_pn:value="Default (5)" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Suspend/Wake Global Set/Reset spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Encrypt Bitstream spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Encrypt Key Select spartan6" xil_pn:value="BBRAM" xil_pn:valueState="default"/> + <property xil_pn:name="Equivalent Register Removal Map" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Equivalent Register Removal XST" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Exclude Compilation of Deprecated EDK Cores" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Exclude Compilation of EDK Sub-Libraries" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Exhaustive Fit Mode" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Extra Cost Tables Map" xil_pn:value="0" xil_pn:valueState="default"/> + <property xil_pn:name="Extra Effort (Highest PAR level only)" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="FPGA Start-Up Clock" xil_pn:value="CCLK" xil_pn:valueState="default"/> + <property xil_pn:name="FSM Encoding Algorithm" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="FSM Style" xil_pn:value="LUT" xil_pn:valueState="default"/> + <property xil_pn:name="Filter Files From Compile Order" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Flatten Output Netlist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Function Block Input Limit (4-40)" xil_pn:value="38" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language ArchWiz" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language Coregen" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language Schematic" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="GTS Cycle During Suspend/Wakeup Sequence spartan6" xil_pn:value="4" xil_pn:valueState="default"/> + <property xil_pn:name="GWE Cycle During Suspend/Wakeup Sequence spartan6" xil_pn:value="5" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Architecture Only (No Entity Declaration)" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Asynchronous Delay Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Clock Region Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Constraints Interaction Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Constraints Interaction Report Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Datasheet Section" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Datasheet Section Post Trace" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Detailed MAP Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Detailed Package Parasitics" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Multiple Hierarchical Netlist Files" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Fit Power Data" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Fit Simulation Model" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Place & Route Power Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Place & Route Simulation Model" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate RTL Schematic" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Generate SAIF File for Power Optimization/Estimation Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Testbench File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Timegroups Section" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Timegroups Section Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generics, Parameters" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Global Optimization Goal" xil_pn:value="AllClockNets" xil_pn:valueState="default"/> + <property xil_pn:name="Global Optimization map" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Global Set/Reset Port Name" xil_pn:value="GSR_PORT" xil_pn:valueState="default"/> + <property xil_pn:name="Global Tristate Port Name" xil_pn:value="GTS_PORT" xil_pn:valueState="default"/> + <property xil_pn:name="HDL Equations Style" xil_pn:value="Source" xil_pn:valueState="default"/> + <property xil_pn:name="Hierarchy Separator" xil_pn:value="/" xil_pn:valueState="default"/> + <property xil_pn:name="I/O Voltage Standard" xil_pn:value="LVCMOS18" xil_pn:valueState="default"/> + <property xil_pn:name="ISim UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Ignore User Timing Constraints Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Ignore User Timing Constraints Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Implementation Stop View" xil_pn:value="Structural" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Template" xil_pn:value="Optimize Density" xil_pn:valueState="default"/> + <property xil_pn:name="Implementation Top" xil_pn:value="Module|fifo_s6_2Kx36_2clk" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top File" xil_pn:value="fifo_s6_2Kx36_2clk.ngc" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top Instance Path" xil_pn:value="/fifo_s6_2Kx36_2clk" xil_pn:valueState="non-default"/> + <property xil_pn:name="Include 'uselib Directive in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include SIMPRIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include UNISIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include sdf_annotate task in Verilog File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Incremental Compilation" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Input and tristate I/O Termination Mode" xil_pn:value="Keeper" xil_pn:valueState="default"/> + <property xil_pn:name="Insert Buffers to Prevent Pulse Swallowing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Instantiation Template Target Language Xps" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TCK" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TDI" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TDO" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TMS" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Keep Hierarchy" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Keep Hierarchy CPLD" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="LUT Combining Map" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="LUT Combining Xst" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Language" xil_pn:value="VHDL" xil_pn:valueState="default"/> + <property xil_pn:name="Logic Optimization" xil_pn:value="Density" xil_pn:valueState="default"/> + <property xil_pn:name="Macro Preserve" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Manual Implementation Compile Order" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Map Slice Logic into Unused Block RAMs" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Mask Pins for Multi-Pin Wake-Up Suspend Mode spartan6" xil_pn:value="0x00" xil_pn:valueState="default"/> + <property xil_pn:name="Max Fanout" xil_pn:value="100000" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Compression" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Number of Lines in Report" xil_pn:value="1000" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Signal Name Length" xil_pn:value="20" xil_pn:valueState="default"/> + <property xil_pn:name="Move First Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Move Last Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Next Configuration Mode spartan6" xil_pn:value="001" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Starting Address for Golden Configuration spartan6" xil_pn:value="0x00000000" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Starting Address for Next Configuration spartan6" xil_pn:value="0x00000000" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Use New Mode for Next Configuration spartan6" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: User-Defined Register for Failsafe Scheme spartan6" xil_pn:value="0x0000" xil_pn:valueState="default"/> + <property xil_pn:name="Mux Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Netlist Hierarchy" xil_pn:value="As Optimized" xil_pn:valueState="default"/> + <property xil_pn:name="Netlist Translation Type" xil_pn:value="Timestamp" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Clock Buffers" xil_pn:value="16" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Paths in Error/Verbose Report" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Paths in Error/Verbose Report Post Trace" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Effort" xil_pn:value="Normal" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Goal" xil_pn:value="Speed" xil_pn:valueState="default"/> + <property xil_pn:name="Optimize Instantiated Primitives" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Other Bitgen Command Line Options spartan6" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other CPLD Fitter Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Fit" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Par" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compxlib Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Map Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other NETGEN Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Ngdbuild Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Place & Route Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Programming Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Behavioral" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Fit" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Route" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Timing Report Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other XPWR Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other XST Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Output Extended Identifiers" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Output File Name" xil_pn:value="fifo_s6_2Kx36_2clk" xil_pn:valueState="default"/> + <property xil_pn:name="Output Slew Rate" xil_pn:value="Fast" xil_pn:valueState="default"/> + <property xil_pn:name="Overwrite Compiled Libraries" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Pack I/O Registers into IOBs" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Pack I/O Registers/Latches into IOBs" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Package" xil_pn:value="csg484" xil_pn:valueState="default"/> + <property xil_pn:name="Perform Advanced Analysis" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Perform Advanced Analysis Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Place & Route Effort Level (Overall)" xil_pn:value="High" xil_pn:valueState="default"/> + <property xil_pn:name="Place And Route Mode" xil_pn:value="Normal Place and Route" xil_pn:valueState="default"/> + <property xil_pn:name="Place MultiBoot Settings into Bitstream spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Placer Effort Level Map" xil_pn:value="High" xil_pn:valueState="default"/> + <property xil_pn:name="Placer Extra Effort Map" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Port to be used" xil_pn:value="Auto - default" xil_pn:valueState="default"/> + <property xil_pn:name="Post Map Simulation Model Name" xil_pn:value="fifo_s6_2Kx36_2clk_map.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Place & Route Simulation Model Name" xil_pn:value="fifo_s6_2Kx36_2clk_timesim.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Synthesis Simulation Model Name" xil_pn:value="fifo_s6_2Kx36_2clk_synthesis.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Translate Simulation Model Name" xil_pn:value="fifo_s6_2Kx36_2clk_translate.v" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Xst" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Preferred Language" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Preserve Unused Inputs" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Produce Advanced Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Produce Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Project Generator" xil_pn:value="CoreGen" xil_pn:valueState="non-default"/> + <property xil_pn:name="Property Specification in Project File" xil_pn:value="Store all values" xil_pn:valueState="default"/> + <property xil_pn:name="RAM Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="RAM Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="ROM Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="ROM Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Read Cores" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Reduce Control Sets" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Regenerate Core" xil_pn:value="Under Current Project Setting" xil_pn:valueState="default"/> + <property xil_pn:name="Register Balancing" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Register Duplication Map" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Register Duplication Xst" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Release Write Enable (Output Events)" xil_pn:value="Default (6)" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Design Instance in Testbench File to" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Architecture To" xil_pn:value="Structure" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Entity to" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Module To" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Report Fastest Path(s) in Each Constraint" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Report Fastest Path(s) in Each Constraint Post Trace" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Report Paths by Endpoint" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Report Paths by Endpoint Post Trace" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Report Type" xil_pn:value="Verbose Report" xil_pn:valueState="default"/> + <property xil_pn:name="Report Type Post Trace" xil_pn:value="Verbose Report" xil_pn:valueState="default"/> + <property xil_pn:name="Report Unconstrained Paths" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Report Unconstrained Paths Post Trace" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Reset On Configuration Pulse Width" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Resource Sharing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Retain Hierarchy" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Retiming Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Retry Configuration if CRC Error Occurs spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Run Design Rules Checker (DRC)" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Map" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Par" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Translate" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Safe Implementation" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Security" xil_pn:value="Enable Readback and Reconfiguration" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Behavioral" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Route" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Source Node" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Set SPI Configuration Bus Width spartan6" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Setup External Master Clock Division spartan6" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Shift Register Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Shift Register Minimum Size spartan6" xil_pn:value="2" xil_pn:valueState="default"/> + <property xil_pn:name="Show All Models" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Model Target" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time ISim" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Map" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Par" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Translate" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Slice Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Specify 'define Macro Name and Value" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Behavioral" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Fit" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Map" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Route" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Translate" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Speed Grade" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Starting Placer Cost Table (1-100) Map" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Synthesis Tool" xil_pn:value="XST (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Target Simulator" xil_pn:value="Please Specify" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Mode Map" xil_pn:value="Performance Evaluation" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Mode Par" xil_pn:value="Performance Evaluation" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Report Format" xil_pn:value="Summary" xil_pn:valueState="default"/> + <property xil_pn:name="Top-Level Module Name in Output Netlist" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Top-Level Source Type" xil_pn:value="HDL" xil_pn:valueState="default"/> + <property xil_pn:name="Trim Unconnected Signals" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Tristate On Configuration Pulse Width" xil_pn:value="0" xil_pn:valueState="default"/> + <property xil_pn:name="Unused I/O Pad Termination Mode" xil_pn:value="Keeper" xil_pn:valueState="default"/> + <property xil_pn:name="Unused IOB Pins" xil_pn:value="Pull Down" xil_pn:valueState="default"/> + <property xil_pn:name="Use Clock Enable" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Fit" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Route" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Behav" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Fit" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use DSP Block spartan6" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Data Gate" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Direct Input for Input Registers" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Global Clocks" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Global Output Enables" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Global Set/Reset" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use LOC Constraints" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Location Constraints" xil_pn:value="Always" xil_pn:valueState="default"/> + <property xil_pn:name="Use Multi-level Logic Optimization" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use RLOC Constraints" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Use Smart Guide" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synchronous Reset" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synchronous Set" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synthesis Constraints File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Timing Constraints" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="UserID Code (8 Digit Hexadecimal)" xil_pn:value="0xFFFFFFFF" xil_pn:valueState="default"/> + <property xil_pn:name="VCCAUX Voltage Level spartan6" xil_pn:value="2.5V" xil_pn:valueState="default"/> + <property xil_pn:name="VHDL Source Analysis Standard" xil_pn:value="VHDL-93" xil_pn:valueState="default"/> + <property xil_pn:name="Value Range Check" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Verilog 2001 Xst" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Verilog Macros" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="WYSIWYG" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Wait for DCM and PLL Lock (Output Events) spartan6" xil_pn:value="Default (NoWait)" xil_pn:valueState="default"/> + <property xil_pn:name="Wakeup Clock spartan6" xil_pn:value="Startup Clock" xil_pn:valueState="default"/> + <property xil_pn:name="Watchdog Timer Value spartan6" xil_pn:value="0xFFFF" xil_pn:valueState="default"/> + <property xil_pn:name="Working Directory" xil_pn:value="." xil_pn:valueState="default"/> + <property xil_pn:name="Write Timing Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="XOR Preserve" xil_pn:value="true" xil_pn:valueState="default"/> + <!-- --> + <!-- The following properties are for internal use only. These should not be modified.--> + <!-- --> + <property xil_pn:name="PROP_BehavioralSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_DesignName" xil_pn:value="fifo_s6_2Kx36_2clk" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan6" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_FPGAConfiguration" xil_pn:value="FPGAConfiguration" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostFitSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostMapSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostParSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostSynthSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostXlateSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_intProjectCreationTimestamp" xil_pn:value="2012-05-04T13:55:55" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWbtProjectID" xil_pn:value="B3454C89F83BDEF9B4A09CDC070DE482" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirLocWRTProjDir" xil_pn:value="Same" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirUsed" xil_pn:value="No" xil_pn:valueState="non-default"/> + </properties> + + <bindings/> + + <libraries/> + + <autoManagedFiles> + <!-- The following files are identified by `include statements in verilog --> + <!-- source files and are automatically managed by Project Navigator. --> + <!-- --> + <!-- Do not hand-edit this section, as it will be overwritten when the --> + <!-- project is analyzed based on files automatically identified as --> + <!-- include files. --> + </autoManagedFiles> + +</project> diff --git a/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk_flist.txt b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk_flist.txt new file mode 100644 index 000000000..3466e5f91 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk_flist.txt @@ -0,0 +1,13 @@ +# Output products list for <fifo_s6_2Kx36_2clk> +_xmsgs/pn_parser.xmsgs +fifo_generator_ug175.pdf +fifo_s6_2Kx36_2clk.asy +fifo_s6_2Kx36_2clk.gise +fifo_s6_2Kx36_2clk.ngc +fifo_s6_2Kx36_2clk.v +fifo_s6_2Kx36_2clk.veo +fifo_s6_2Kx36_2clk.xco +fifo_s6_2Kx36_2clk.xise +fifo_s6_2Kx36_2clk_flist.txt +fifo_s6_2Kx36_2clk_readme.txt +fifo_s6_2Kx36_2clk_xmdf.tcl diff --git a/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk_readme.txt b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk_readme.txt new file mode 100644 index 000000000..3a017fbb0 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk_readme.txt @@ -0,0 +1,51 @@ +The following files were generated for 'fifo_s6_2Kx36_2clk' in directory +/home/matt/fpgapriv/usrp2/coregen/ + +fifo_generator_ug175.pdf: + Please see the core data sheet. + +fifo_s6_2Kx36_2clk.asy: + Graphical symbol information file. Used by the ISE tools and some + third party tools to create a symbol representing the core. + +fifo_s6_2Kx36_2clk.gise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_s6_2Kx36_2clk.ngc: + Binary Xilinx implementation netlist file containing the information + required to implement the module in a Xilinx (R) FPGA. + +fifo_s6_2Kx36_2clk.v: + Verilog wrapper file provided to support functional simulation. + This file contains simulation model customization data that is + passed to a parameterized simulation model for the core. + +fifo_s6_2Kx36_2clk.veo: + VEO template file containing code that can be used as a model for + instantiating a CORE Generator module in a Verilog design. + +fifo_s6_2Kx36_2clk.xco: + CORE Generator input file containing the parameters used to + regenerate a core. + +fifo_s6_2Kx36_2clk.xise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_s6_2Kx36_2clk_readme.txt: + Text file indicating the files generated and how they are used. + +fifo_s6_2Kx36_2clk_xmdf.tcl: + ISE Project Navigator interface file. ISE uses this file to determine + how the files output by CORE Generator for the core can be integrated + into your ISE project. + +fifo_s6_2Kx36_2clk_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + + +Please see the Xilinx CORE Generator online help for further details on +generated files and how to use them. + diff --git a/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk_xmdf.tcl b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk_xmdf.tcl new file mode 100644 index 000000000..63b4f2099 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_2Kx36_2clk_xmdf.tcl @@ -0,0 +1,72 @@ +# The package naming convention is <core_name>_xmdf +package provide fifo_s6_2Kx36_2clk_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is <core_name>_xmdf +namespace eval ::fifo_s6_2Kx36_2clk_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::fifo_s6_2Kx36_2clk_xmdf::xmdfInit { instance } { +# Variable containg name of library into which module is compiled +# Recommendation: <module_name> +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_s6_2Kx36_2clk +} +# ::fifo_s6_2Kx36_2clk_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::fifo_s6_2Kx36_2clk_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be magically +# available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_2Kx36_2clk.asy +utilities_xmdf::xmdfSetData $instance FileSet $fcount type asy +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_2Kx36_2clk.ngc +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_2Kx36_2clk.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_2Kx36_2clk.veo +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_2Kx36_2clk.xco +utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_2Kx36_2clk_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_s6_2Kx36_2clk +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/fpga/usrp2/coregen/fifo_s6_512x36_2clk.asy b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.asy new file mode 100644 index 000000000..5adf4bfb4 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.asy @@ -0,0 +1,49 @@ +Version 4 +SymbolType BLOCK +TEXT 32 32 LEFT 4 fifo_s6_512x36_2clk +RECTANGLE Normal 32 32 544 768 +LINE Wide 0 80 32 80 +PIN 0 80 LEFT 36 +PINATTR PinName din[35:0] +PINATTR Polarity IN +LINE Normal 0 144 32 144 +PIN 0 144 LEFT 36 +PINATTR PinName wr_en +PINATTR Polarity IN +LINE Normal 0 176 32 176 +PIN 0 176 LEFT 36 +PINATTR PinName wr_clk +PINATTR Polarity IN +LINE Normal 0 240 32 240 +PIN 0 240 LEFT 36 +PINATTR PinName rd_en +PINATTR Polarity IN +LINE Normal 0 272 32 272 +PIN 0 272 LEFT 36 +PINATTR PinName rd_clk +PINATTR Polarity IN +LINE Normal 144 800 144 768 +PIN 144 800 BOTTOM 36 +PINATTR PinName rst +PINATTR Polarity IN +LINE Wide 576 80 544 80 +PIN 576 80 RIGHT 36 +PINATTR PinName dout[35:0] +PINATTR Polarity OUT +LINE Normal 576 208 544 208 +PIN 576 208 RIGHT 36 +PINATTR PinName full +PINATTR Polarity OUT +LINE Wide 576 368 544 368 +PIN 576 368 RIGHT 36 +PINATTR PinName wr_data_count[9:0] +PINATTR Polarity OUT +LINE Normal 576 432 544 432 +PIN 576 432 RIGHT 36 +PINATTR PinName empty +PINATTR Polarity OUT +LINE Wide 576 592 544 592 +PIN 576 592 RIGHT 36 +PINATTR PinName rd_data_count[9:0] +PINATTR Polarity OUT + diff --git a/fpga/usrp2/coregen/fifo_s6_512x36_2clk.gise b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.gise new file mode 100644 index 000000000..2edb1c020 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.gise @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<generated_project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema">
+
+ <!-- -->
+
+ <!-- For tool use only. Do not edit. -->
+
+ <!-- -->
+
+ <!-- ProjectNavigator created generated project file. -->
+
+ <!-- For use in tracking generated file and other information -->
+
+ <!-- allowing preservation of process status. -->
+
+ <!-- -->
+
+ <!-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. -->
+
+ <version xmlns="http://www.xilinx.com/XMLSchema">11.1</version>
+
+ <sourceproject xmlns="http://www.xilinx.com/XMLSchema" xil_pn:fileType="FILE_XISE" xil_pn:name="fifo_s6_512x36_2clk.xise"/>
+
+ <files xmlns="http://www.xilinx.com/XMLSchema">
+ <file xil_pn:fileType="FILE_ASY" xil_pn:name="fifo_s6_512x36_2clk.asy" xil_pn:origination="imported"/>
+ <file xil_pn:fileType="FILE_VEO" xil_pn:name="fifo_s6_512x36_2clk.veo" xil_pn:origination="imported"/>
+ </files>
+
+ <transforms xmlns="http://www.xilinx.com/XMLSchema"/>
+
+</generated_project>
diff --git a/fpga/usrp2/coregen/fifo_s6_512x36_2clk.ngc b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.ngc new file mode 100644 index 000000000..523080a69 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.ngc @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$71`40<,[o}e~g`n;"2*726&;$:,)?40893456789:;8=5?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>>0:234567892;<=>?01084=2<812;46>781:3<5773923<5>7092;4=6?8=1;4KH>;0185+66k2;;6B[[PTV9vaYci}kTob{at=;94;7d38:1CXZ_UU8tvZbf|hUhcx`{<883:42<9=0BB][[:@FGVD:6;3:5=95>4;KMTPR=IMNYN1?<:1<2?7773;23456789:;<=>?0880??4FNQWW>AOF4:;1<3?=;209MKVR\3NBN1=>:1<27>552F__\XZ5DNC?74<76890??4@UURVP?BHJ59:6=0>2:15>LHW]]0oec2<5;2=51=4>3E^X][[:emvp952294:=6:5IORVP?BNXH686=0>1:69MKVR\3NB\O2<:1<24>2=AGZ^X7YJA=194;773=0BB][[:VGA86<7688087AZTQWW>AIWI591<3?=;58LQQVR\3ND\O2<:1<7?036=11>98;?4122?34<>0>0:4791195=<0>>?32:;799841?3G33?KJM559A@CBEDG682<JMLONA@CBEDGFIHo0:~bw74apc1>3%:80;K?4859;456?31:;<=>?0028<56789:;<=>?012355=?81:3<5>?892;4=63318?=9574337?=C?I812867?0808=3><1?<2:479119:23?110<=548667;2a>?=AGZ^X7~}of]fiur~W}byi~f38;2=60=>2@D[YY4rne\ahvsqV~c~h}g_`qpawr;03:5>856:HLSQQ<wzfmTi`~{y^vkv`uoWgolmyk38;2=5a=>2@D[YY4rne\bpjkW}byi~f38;2=61=>2@D[YY4rne\bpjkW}byi~fParqfvq:?29498675IORVP?vugnUmyabPtipfwmYimnki1650?3;?<<H]]Z^X7jnt`]`kphs410;2?5N299BEDG1IHK:<6ONA@CBED0FIHKJML64AEFQE96912KOH_O311<:?DBCZH6:=374AEFQE9756k1JHI\N<0194;?<IMNYM1?<>99B@ATF48437LJKR@>1:==FLMXJ0>07;@FGVD:3611JHI\N<4<;?DBCZH6=255NDEPB828?3HNO^L27>99B@ATF40437LJKRC>3:<=FLMXI0<>19:CG@WD;98427LJKRC>26;d<IMNYN1?<:1<:?DBCZK6:?364AEFQF97902KOH_L32?:8EABUJ59546OKDS@?0;><IMNYN1;18:CG@WD;>720MIJ]B=5=<>GCL[H74364AEFQF9?9:2KN?6OCL89BW\HDW[OL>6L?3:@V6==E]ZUBBKA>;B08G@753JBNOFQCIBGMW@YSQYO97NG;;BNHE1=DDBH87NB]9:ALIHOS\LN:86M@RD]DAKCUI]CDBRGAFN58GWCF\LN:7Im4D@VB[ROC\AUJo6JNT@]TMAROWK80HD84DHC?4;1<L@K7==08;EKB8479?2NBM1?=>69GMD:6;7=0HDO315<4?AOF48?5;6JFA=35:2=CAH6:;394DHC?5=803MCJ0<716:FJE979?2NBM1<?>69GMD:597=0HDO323<4?AOF4;95;6JFA=07:2=CAH699394DHC?63803MCJ0?917:FJE94?6>1OEL2=9?48@LG;:7=0HDO331<:?AOF4:;1<394DHC?74813MCJ0>09;EKB81813MCJ0809;EKB83813MCJ0:09;EKB8=813MCJ0409;EKA85803MCI0<>17:FJF9766>1OEO2>2?58@LD;9:4<7IGM<06=3>BNJ5;>2:5KIC>22;1<L@H7=:08;EKA84>9?2NBN1?6>79GMG:66>1OEO2=0?58@LD;:84<7IGM<30=3>BNJ5882:5KIC>10;1<L@H7>808;EKA8709?2NBN1<8>69GMG:507=0HDL328<5?AOE4;4<7IGM<22==>BNJ59:6=08;EKA8679>2NBN1=16:FJF929>2NBN1;16:FJF909>2NBN1916:FJF9>9>2NBN1717:FJTD:76>1OE]O31?58@LVF4;427IG_A=194;1<L@ZJ0>08;EKSF969?2NB\O2>>69GMUD;:730HD^M<283:2=CAYH7?384DNC?4;1<LFK7==08;EMB8479?2NDM1?=>69GKD:6;7=0HBO315<4?AIF48?5;6J@A=35:2=CGH6:;394DNC?5=803MEJ0<716:FLE979?2NDM1<?>69GKD:597=0HBO323<4?AIF4;95;6J@A=07:2=CGH699394DNC?63803MEJ0?917:FLE94?6>1OCL2=9?48@JG;:7=0HBO331<:?AIF4:;1<394DNC?74813MEJ0>09;EMB81813MEJ0809;EMB83813MEJ0:09;EMB8=813MEJ0408;EMB[WC@>2NDN1>17:FLF9776>1OCO2>1?58@JD;9;4<7IAM<01=3>BHJ5;?2:5KOC>21;1<LFH7=;08;EMA8419?2NDN1?7>69GKG:617<0HBL31?58@JD;:94<7IAM<33=3>BHJ5892:5KOC>17;1<LFH7>908;EMA8739?2NDN1<9>69GKG:5?7=0HBL329<4?AIE4;35:6J@B=0=3>BHJ59;245KOC>05?69?2NDN1=>>79GKG:46?1OCO2;>79GKG:26?1OCO29>79GKG:06?1OCO27>79GKG:>6>1OCOQ]EF58@JVF494<7IA_A=3=3>BHXH69245KOQC?7?69?2ND\L2<>69GKUD;87=0HB^M<0<4?AIWJ58556J@PC>0>5803ME[N1=12:G77>CII:1NBOl4EO]QWQTFEVKi7H@PRRVQEHYE=2LJ@^K=;GF0?CBD<2LOOH=4FER7?CBWM=1MH_K>0:DEBC44;:LMJK>?01:8BC@A=<;>=6I<;FLG5>O53@:97D?=;H01?L553@>97D;7;HLJPUY7811BBDZ__13;?LHN\YU;>55FNHVS[55?3@DBX]Q?499JJLRWW9?37D@FTQ]32==NF@^[S=96;HLJPVRF\L=0ECG[_124?LHN\V::;6GAIU]362=NF@^T<>94IOKW[5203@DBXR>:7:KMMQY7>>1BBDZP0658MKOSW92<7D@FT^2:3>OIA]U;M:5FNHV\4G1<AGC_S=M8;HLJPZ6C?2CEEYQ?E69JJLRX8O=0ECG[_024?LHN\V;:;6GAIU]262=NF@^T=>94IOKW[4203@DBXR?:7:KMMQY6>>1BBDZP1658MKOSW82<7D@FT^3:3>OIA]U:M:5FNHV\5G1<AGC_S<M8;HLJPZ7C?2CEEYQ>E69JJLRX9O=0ECG[_324?LHN\V8:;6GAIU]162=NF@^T>>94IOKW[7203@DBXR<:7:KMMQY5>>1BBDZP2658MKOSW;2<7D@FT^0:3>OIA]U9M:5FNHV\6G1<AGC_S?M8;HLJPZ4C?2CEEYQ=E69JJLRX:O=0ECG[_224?LHN\V9:;6GAIU]062=NF@^T?>94IOKW[6203@DBXR=:7:KMMQY4>>1BBDZP3658MKOSW:2<7D@FT^1:3>OIA]U8M:5FNHV\7G1<AGC_S>M8;HLJPZ5C?2CEEYQ<E69JJLRX;O<0ECG[_@48MKOSWK30ECG[_GKOA6=NF_80@D84LNCGAA1<DFMBOLB;;MWW61=K]]9?7A[[459OQQ333E__:85BSFMM1>KRPJSh7@oeosTfvvohfj1Feca}Vdppmjh53G;?7C??659M55133G;;495A11;0?K76<2D:==:4N0320>H69;>0B<?<4:L2512<F8;>86@>1768J470<2D:=5:4N03:7>H6:=1E=?>;;O3151=I9;8?7C?=359M57233G;9995A1347?K75?=1E=?6;;O31=6=I9:>0B<=?4:L2742<F89986@>3268J453<2D:?8:4N0150>H6;>>0B<=74:L27<5<F8>?7C?;059M51733G;?>95A1540?K72<2D:94=4N047?K718=1E=;?;;O3561=I9?9?7C?9459M53333G;=:95A1757?K710=1E=;7<;O340>H6?9>0B<9>4:L2372<F8=886@>7568J412<2D:;;:4N0540>H6?190B<6<;O3:6>H5;2D9<>5A2018J7443G88?6@=429M605<F;<87C<83:L1<6=I:090B>><;O127>H4::1E?>=4N260?K52;2D8:>5A3618J6>43G92>6@;3:L746=I<890B9<<;O607>H3<:1E88=4N540?K20;2D?4?5A539M37=I1o1ENRLZSQKM[UTHXZ=0BHZXOSI7?KIIM81D>6AD1:R7?UGU\h1[ECQMURKG\g=WAGUIY^@NMD;8TNYOD\^EA>5_RD38U4=Ui2XJAO?9BVGQ2>TBOJOJ:6\JGBGA0>TT\H>0^^ZM7:PPPQ_WMl1Y_YQ_RHMQMQ_XIl1Y_YQ_RHMQMQ_XJ81X=>5\IL]@KIJN[@EESNFJCJc8WLKXLL\BOH84SNWQG@><[YKYXL@97:QQRDJXI>1X^[OC_C68W\HD<2^YYH:4TXRF7a=R8&myj#|i/fa{*fjlp&GscQ]D^RMPW]7UVXOS]@[RZ3^[]IUW<8TcRv`<1<27a=R8&myj#|i/fa{*fjlp&GscQ]D^RMPW]6UVXOS]@[RZ0^[]IUW<;TcRv`<1<27a=R8&myj#|i/fa{*fjlp&GscQ]D^RMPW]5UVXOS]@[RZ1^[]IUW<:TcRv`<1<27a=R8&myj#|i/fa{*fjlp&GscQ]D^RMPW]4UVXOS]@[RZ6^[]IUW=3TcRv`<1<27a=R8&myj#|i/fa{*fjlp&GscQ]D^RMPW]3UVXOS]@[RZ7^[]IUW=2TcRv`<1<27a=R8&myj#|i/fa{*fjlp&GscQ]D^RMPW]2UVXOS]@[RZ4^[]IUW==TcRv`<1<27a=R8&myj#|i/fa{*fjlp&GscQ]D^RMPW]1UVXOS]@[RZ5^[]IUW=<TcRv`<1<27a=R8&myj#|i/fa{*fjlp&GscQ]D^RMPW]0UVXOS]@[RZ:^[]IUW=?TcRv`<1<27f=R8&myj#|i/fa{*fjlp&GscQXR^RMPW]7UV]YS]@[RZ3^[]IUW1UdSua30?30g>S7'nxm"h gbz-gim'Drd~RY]_QLWV^7ZW^XT\CZ][3_\\JTX?VeTtb2?>01`?P6(o{l%~k!hcy,`hn~(EqeySZ\PPOVQ_7[X_[U[BY\T3\][KWY1WfUsc1>112a8Q5)`zo$yj"ilx/aoo})JpfxT[_Q_NUPX7XYPZVZEX_U;]^ZLVZ3XgVrd0=0>3b9V4*aun'xm#jmw.bnh|*Kg{U\^R^ATSY7YZQUWYD_^V;R_YMQ[1YhWqe7<3?<c:W3+bta&{l$knv!cmi{+H~hzV]YS]@[RZ7^[RTXXG^YW;SPXNP\7ZiXpf6;2<=l;T2,cw`)zo%lou lljz,I}iuW^XT\CZ][7_\SWYWF]XP;PQWOS]1[jYg5:5=>m4U1-dvc(un&mht#mcky-N|jtX_[U[BY\T7\]TVZVI\[Q3QRV@R^3\kZ~h494:?<5Z0.eqb+ta'nis"nbdx.PG[UHSZR:VS_JPPOVQ_4[XPFXT9?Q`309V4*aun'xm#jmw.bnh|*TCWYD_^V?R_SF\TKRUS;WTTB\P50]l74=R8&myj#|i/fa{*fjlp&XOS]@[RZ0^[WBXXG^YW>SPXNP\15Yh;81^<"i}f/pe+be&jf`t"\K_QLWV^5ZW[NT\CZ][5_\\JTX<0Ud?<5Z0.eqb+ta'nis"nbdx.PG[UHSZR>VS_JPPOVQ_0[XPFXT85Q`309V4*aun'xm#jmw.bnh|*TCWYD_^V;R_SF\TKRUS?WTTB\P46]l74=R8&myj#|i/fa{*fjlp&XOS]@[RZ4^[WBXXG^YW:SPXNP\03Yh;81^<"i}f/pe+be&jf`t"\K_QLWV^1ZW[NT\CZ][9_\\JTX<<Ud?=5Z0.eqb+ta'nis"nbdx.UQ[UHSZR:VSZ\PPOVQ_4[XPFXT4Ra<0:W3+bta&{l$knv!cmi{+RTXXG^YW<SPWS]SJQT\:TUSC_Q8_n13?P6(o{l%~k!hcy,`hn~(_[U[BY\T2\]TVZVI\[Q8QRV@R^4\k66<]9%l~k }f.e`|+ekcq%\^R^ATSY0YZQUWYD_^V:R_YMQ[0Yh;91^<"i}f/pe+be&jf`t"Y]_QLWV^2ZW^XT\CZ][4_\\JTX<Ve8<6[?/fpe*w`(ojr%oaew/VP\TKRUS<WT[_Q_NUPX2XY_G[U8Sb=?;T2,cw`)zo%lou lljz,SWYWF]XP:PQXR^RMPW]0UVRD^R<Po228Q5)`zo$yj"ilx/aoo})PZVZEX_U8]^UQ[UHSZR2VSUA]_0]l64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj969:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf5;5><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1<1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=1=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj929:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf5?5><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb181209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=5=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj9>9:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV:9<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS<<?;T2,cw`)zo%lou lljz,vaYwf}xTnd`P2328Q5)`zo$yj"ilx/aoo})ulVzexQmio]065=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ2582_;#j|i.sd,cf~)keas#jPpovq[goiW<8;7X> gsd-vc)`kq$h`fv re]sjqtXj`dT:?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ8219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^:14>S7'nxm"h gbz-gim'{nT|cz}_fa?4;473\:$kh!rg-dg}(ddbr$~iQnup\cf:66;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k585>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0>0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm34?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>6:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg909:91^<"i}f/pe+be&jf`t"|k_qlwvZad4>49<6[?/fpe*w`(ojr%oaew/sf\tkruWni743?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ?1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_03e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]15c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[67a3\:$kh!rg-dg}(ddbr$~iQnup\cfY39o1^<"i}f/pe+be&jf`t"|k_qlwvZadW<;m7X> gsd-vc)`kq$h`fv re]sjqtXojU==k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS:?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ7279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:76;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi31?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4;49:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=1=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6?2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?1;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol0;0=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc919:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij27>378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX8;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP1378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX:;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP3378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX<;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP5378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX>;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP7378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX0;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>3:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2>>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8692?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:46;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>7:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2:>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86=2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:06;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>;:6?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<U7]^pf`pebWqeyS<8Po2c8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8Q3QR|jdtaf[}iuW8<Tc<=6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7\0TUyii{le^zlvZ70Wf9j7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3X<XYummhiRv`r^34[j74n2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj>[9_\v`brklUscQ>80]{k9699:30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0Y;YZtbl|inSua}_0:\k6`<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<U7]^pf`pebWqeyS<7>_ym?4;7412_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj>[9_\v`brklUscQ>9^m0b>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:W5SPrdfvg`Yg{U9<<Qwo=2=56?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<U7]^pf`pebWqeyS?>Po2g8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8Q3QR|jdtaf[}iuW;;:Sua30?1:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;P4PQ}eew`aZ~hzV8:Sb=j;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7\0TUyii{le^zlvZ459Vrd0=0;2:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6S1WT~hjzcd]{kwY5:8Usc1>1_RU37<=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=V6R_sggqfcXpfxT>?Q`3d9V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc9R2VSkkubg\|jtX::;Ttb2?>2;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8Q3QR|jdtaf[}iuW;9Tc?64U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4Y7:11^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1^31<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S?<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X;;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]76==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R;=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W?837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\37><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<Q7209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=2=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj979:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf585><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1=1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=6=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj939:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf5<5><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb191209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=:=65=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ6582_;#j|i.sd,cf~)keas#z|Ppovq[goiW88;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT>?>4U1-dvc(un&mht#mcky-tvZvi|{UiecQ<219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^614>S7'nxm"h gbz-gim'~xT|cz}_ckm[0473\:$kh!rg-dg}(ddbr${Qnup\flhX>;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU<>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR6=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm30?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>2:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg949:91^<"i}f/pe+be&jf`t"y}_qlwvZad4:49<6[?/fpe*w`(ojr%oaew/vp\tkruWni783<?;T2,cw`)zo%lou lljz,swYwf}xTkn2:>328Q5)`zo$yj"ilx/aoo})pzVzexQhc=4=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`828582_;#j|i.sd,cf~)keas#z|Ppovq[be;07;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS<?i;T2,cw`)zo%lou lljz,swYwf}xTknQ=1g9V4*aun'xm#jmw.bnh|*quWyd~Ril_23e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]75c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[07a3\:$kh!rg-dg}(ddbr${Qnup\cfY19o1^<"i}f/pe+be&jf`t"y}_qlwvZadW>;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU3>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>3:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm7=3<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8785>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1=1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:36;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi35?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4?49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=5=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn632?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\473<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT=?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\673<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT??;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\073<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT9?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\273<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT;?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\<7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2?>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86:2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:56;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>0:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2;>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86>2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:16;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>4:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<27>2g8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8Q3QR|jdtaf[}iuW8::Sua30?61?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;P4PQ}eew`aZ~hzV;;=Rv`<1<\WR6412_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>[9_\v`brklUscQ>0^m0a>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:W5SPrdfvg`Yg{U:=<Qwo=2=7<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=V6R_sggqfcXpfxT=<Q`399V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9R2VSkkubg\|jtX<Ve856[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2_=[Xzln~ohQwos]7[j7402_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>[9_\v`brklUscQ:_n1:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;P4PQ}eew`aZ~hzV?Tc<=j;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7\0TUyii{le^zlvZ06Wqe7<3?<8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6S1WT~hjzcd]{kwY1Wf9n7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3X<XYummhiRv`r^52[}i;87;846[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2_=[Xzln~ohQwos]4[j5b3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?T8\]qaasdmVrd~R6>_ym?4;7402_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>[9_\v`brklUscQ7_n1g?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;P4PQ}eew`aZ~hzV3:Sua30?1;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;P4PQ}eew`aZ~hzV3Tc?64U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4Y7:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^31<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S?<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X;;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]76==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R;=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W?837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\37><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<Q74`9V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.Ob`aYcaolT{Q}dZ;^[BHCW1?TcRokd^1\KPRXkp6:29l4U1-dvc(un&mg<#|k/fp2*btck;$yhn!Baef\`l`aW~xT~iU6]^EM@Z>2WfUjhiQ<_NWW[iss4;4?n6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@okd^fjbcYpzVxoW4SPGOF\<0YhWhnoS>Q@UU]oqq:46=h0Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FmijPdhde[rtXzmQ2QRIAD^:6[jYflmU8SB[[_mww8183j2_;#j|i.sd,ci6)zm%l~< hrea1*wbd'DkohRjffg]tvZtcS0WTKCJP84]l[dbcW:UDYYQcuu>6:1d<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)JimnThdhi_vp\va]>UVMEHR6:_n]b`aY4WF__Sa{{<7<7f>S7'nxm"h gm2-va)`z8$l~im=.sf`+HgclVnbjkQxr^pg_<[XOGNT48Q`_`fg[6YH]]Ugyy28>5`8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NeabXl`lmSz|PreY:YZAILV2>SbQnde]0[JSSWe050;6:W3+bta&{l$ka>!re-dv4(`zmi9"jl/Lov|ZbnnoU|~R|k[8_\CKBX0<UdS`{w_4]LQQ76<?1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&GfyuQkigd\swYulR3VSJ@K_97\kZkrpV?TCXZ=1548Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-Nip~Xl`lmSz|PreY:YZAILV2>SbQbuy]6[JSS;8>=7X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A`{w_ekebZquW{nP5PQHNE];1ZiXe|rT9RAZT530<>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWjs7<3=7;T2,cw`)zo%l`= }d.eq5+aulj8%~im Mrwa[aoanV}ySjPtlr\g|:66:20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}Qly=0=7==R8&myj#|i/fn3*wb(o{;%kjl2/pgg*Kt}kUoekhPws]q`ZrjxVir0>0<8:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[f;<7937X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pcx>6:6><]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)J{|hThdhi_vp\vaYseyUhu181399V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.OpqgYcaolT{Q}d^vntZe~4>4856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_mww858412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sa{{<0<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWe0?0<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[iss4:4856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_mww818412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sa{{<4<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWe0;0<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[iss4>4856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_mww8=8412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sua}<1<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWqey0<0<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[}iu4;4856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_ymq868412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sua}<5<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWqey080<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[}iu4?4856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_ymq828412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sua}<9<76>S7'nxm"h gm2-va)`z8$l~im=.sf`+aoanV}ySjT9\]DJAY?=VeTaxvP5^MVP969<;1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&nbjkQxr^pg_<[XOGNT48Q`_lw{[0YH]]6:29<4U1-dvc(un&mg<#|k/fp2*btck;$yhn!kigd\swYulR3VSJ@K_97\kZkrpV?TCXZ32?61?P6(o{l%~k!hl1,q`*au9'myhn<!rea,`l`aW~xT~iU6]^EM@Z>2WfUfyuQ:_NWW8683:2_;#j|i.sd,ci6)zm%l~< hrea1*wbd'mcmjRy}_sfX=XY@FMU39RaPmtz\1ZIR\5>5895Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"jffg]tvZtcS0WTKCJP84]l[hsW<UDYY2;>037<>S7'nxm"h gm2-va)`z8$l~im=.sf`+aoanV}ySjT9\]DJAY?=VeTaxvP5^MVP92998UX[=:<;T2,cw`)zo%l`= }d.eq5+aulj8%~im dhde[rtXzmQ2QRIAD^:6[jYj}qU>SB[[<5<102=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*bnnoU|~R|k[8_\CKBX0<UdS`{w_4]LQQ:36Vhoh=:=;T2,cw`)zo%l`= }d.eq5+aulj8%~im dhde[rtXzmQ2QRIAD^:6[jYj}qU>SB[[<4<77>S7'nxm"h gm2-va)`z8$l~im=.sf`+aoanV}ySjT9\]DJAY?=VeTaxvP5^MVP9399=80Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%oekhPws]q`^?ZWNDOS5;Po^ov|Z3XG\^7:3:<;T2,cw`)zo%l`= }d.eq5+aulj8%~im dhde[rtXzmQ2QRIAD^:6[jYj}qU>SB[[<7<207=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*bnnoU|~R|k[8_\CKBX0<UdS`{w_4]LQQ:06=20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%oekhPws]q`^?ZWNDOS5;Po^ov|Z3XG\^7;3?>_RU30==R8&myj#|i/fn3*wb(o{;%kjl2/pgg*bnnoU|~R|k[8_\CKBX0<UdS`{w_4]LQQ:068;T_Z?;8:W3+bta&{l$ka>!re-dv4(`zmi9"jl/ekebZquW{nP5PQHNE];1ZiXe|rT9RAZT=5=54YT_;>87X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$hdhi_vp\va]>UVMEHR6:_n]nq}Y2WF__0:0=439V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.fjbcYpzVxoW4SPGOF\<0YhWdsS8Q@UU>;:15<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)caolT{Q}dZ;^[BHCW1?TcRczx^7\KPR;07;?>6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#igif^uq[wb\1TULBIQ75^m\ip~X=VE^X171429V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.fjbcYpzVxoW4SPGOF\<0YhWdsS8Q@UU>::4573\:$kh!rg-dh5(ul&my=#i}db0-vae(l`lmSz|Pre]wiu:76;30Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h>3:7?<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)ulVnhSd2>>3;8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-q`ZbdW`692?74U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[l:46;30Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h>7:7?<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)ulVnhSd2:>3;8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-q`ZbdW`6=2?74U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[l:06;30Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h>;:7?<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)ulVnhSd26>3:8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-q`ZbdW`U;>55Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"|k_ea\mZ7502_;#j|i.sd,ci6)zm%l~< hrea1*wbd'{nThnQf_30;?P6(o{l%~k!hl1,q`*au9'myhn<!rea,vaYckVcT??64U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lY3:11^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi^71<>S7'nxm"h gm2-va)`z8$l~im=.sf`+wbXljUbS;<7;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZoX?;20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h];6==R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeR7<0:W3+bta&{l$ka>!re-dv4(un~l#@czx^PBIZTCWLDTJZH[1067?P6(o{l%~k!hl1,q`*au9'xm{kz Mlw{[binfnUna}zv_guepZVPZV9>SbQBUY]61Zi69;30Y=!hrg,qb*ak8'xo#j|>.sdtbq)UIDUYIJAZT^GM565<]9%l~k }f.eo4+tc'nx:"hxfu-`qwtXn~lS~zntd]EWHYANm;8:6[?/fpe*w`(oe:%~i!hr0,qbr`s'jy~Rhxfu]ppdrbWOYFSKHk1,Km72=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e^DPIZ@Al8'Bb<=<;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTJ^CPFGf173=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e^DPIZ@Al;'Bb>94U1-dvc(un&mg<#|k/fp2*w`pn}%hy|Pfvdw[vrf|lUM_@QIFe0.Mk7502_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPfc04?P6(o{l%~k!hl1,q`*au9'xm{kz elrw}Z`pn}Ub?i5Z0.eqb+ta'nf;"j gs3-vcqa|&mdeciPelrw}Z`pn}U[[_Q<5^m\IP^X=<Ud>85Z0.eqb+ta'nf;"j gs3-vcqa|&xiQyamkg6`=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'ij~waeu>3:7c<]9%l~k }f.eo4+tc'nxj#||tr-`4*aj}q$hm|vndv?5;4b3\:$kh!rg-dh5(ul&mym~ }suq,g5)`e|r%ol|}yogw8785m2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(ods"no}rxlfp959:o1^<"i}f/pe+bj7&{n$ko|.sqww*e7'ng~t#ib[1_-ch7)e88m7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%laxv!glY2Y+aj{'gx>k5Z0.eqb+ta'nf;"j gscp*wus{&i;#jczx/en_7[)ody%a~<i;T2,cw`)zo%l`= }d.eqev(u{}y$o=!hmtz-ch]4U'mf#c|2g9V4*aun'xm#jb?.sf,cwgt&{y"m?/fov|+ajS=W%k`}!mr00?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5969:=1^<"i}f/pe+bj7&{n$ko|.sqww*e7';7<3?=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>2:72<]9%l~k }f.eo4+tc'nxj#||tr-`4*p6484:>>5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?32?07?P6(o{l%~k!hl1,q`*auiz$yy} c1-u59499;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0>0=4:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>0:4443\:$kh!rg-dh5(ul&mym~ }suq,g5)q95>5>95Z0.eqb+ta'nf;"j gscp*wus{&i;#{?34?31a>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&jky~t`jt=2=6`=R8&myj#|i/fn3*wb(o{kx"}{s.a2+bkrp'ij~waeu>2:7c<]9%l~k }f.eo4+tc'nxj#||tr-`5*aj}q$hm|vndv?6;4b3\:$kh!rg-dh5(ul&mym~ }suq,g4)`e|r%ol|}yogw8685n2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(ods"jcT0\,di4(j9;l0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&mfyu hmZ3^*bkt&dy9j6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$k`{w.foX6X(`ez$f?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h="ibuy,di^5Z&ngx"`}=f:W3+bta&{l$ka>!re-dvdu)zz~x#n? glw{*bk\<T$la~ bs318Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t28585<2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~86;2<<<;T2,cw`)zo%l`= }d.eqev(u{}y$o<!y1=3=61=R8&myj#|i/fn3*wb(o{kx"}{s.a2+s7;97;9?6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$z<2=>368Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t28786::1^<"i}f/pe+bj7&{n$ko|.sqww*e6';7?3<;;T2,cw`)zo%l`= }d.eqev(u{}y$o<!y1=1=575<]9%l~k }f.eo4+tc'nxj#||tr-`5*p64=4986[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$z<2;>003?P6(o{l%~k!hl1,q`*auiz$yy} cnos47b<]9%l~k }f.eo4+tc'nxj#||tr-`khv7Wjef|<Q@R^4\k7c<]9%l~k }f.eo4+tc'nxj#||tr-`khv7Wjef|<Q@R^4\k4473\:$kh!rg-dh5(ul&mym~ }suq,gjkw9;30Y=!hrg,qb*ak8'xo#j|ns/pppv)uidUna}zv_g`\m15<]9%l~k }f.eo4+tc'{zex!Bmtz\cf6)kfexV6R_FLG[25XgVg~tR<POTV25ZOI^V:8h6[?/fpe*w`(oe:%~i!}povq+HkrpVmh<#m`uovX<XY@FMU<?RaPmtz\6ZIR\;;8h6[?/fpe*w`(oe:%~i!}povq+HkrpVmh<#m`uovX<XY@FMU<?RaPmtz\6ZIR\:;9?6[?/fpe*w`(oe:%~i!}povq+be7&je~by2?>318Q5)`zo$yj"ic0/pg+wvi|{%lo= lotlw8485;2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}692?=4U1-dvc(un&mg<#|k/srmpw)`k9$hcx`{<2<17>S7'nxm"h gm2-va)uxg~y#jm?.bmvjq:36;90Y=!hrg,qb*ak8'xo#~ats-dg5(dg|d080=3:W3+bta&{l$ka>!re-qtkru'ni;"naznu>5:75<]9%l~k }f.eo4+tc'{zex!hc1,`kphs4>49?6[?/fpe*w`(oe:%~i!}povq+be7&je~by27>2;8Q5)`zo$yj"ic0/pg+wvi|{%lo= lotlw_=[XOGNT;>Q`_lw{[7YH]]6;2>74U1-dvc(un&mg<#|k/srmpw)`k9$hcx`{[9_\CKBX?:UdS`{w_3]LQQ:66:30Y=!hrg,qb*ak8'xo#~ats-dg5(dg|dW5SPGOF\36YhWdsS?Q@UU>1:6?<]9%l~k }f.eo4+tc'{zex!hc1,`kphsS1WTKCJP72]l[hsW;UDYY2<>2`8Q5)`zo$yj"ic0/pg+wvi|{%lo= lotlw_=[XOGNT;>Q`_lw{[7YH]]682<?<a:W3+bta&{l$ka>!re-qtkru'ni;"naznuY;YZAILV=8SbQbuy]1[JSS4:49?h5Z0.eqb+ta'nf;"j rqlwv*ad8'idyczT8\]DJAY0;VeTaxvP2^MVP959Wkno<>74U1-dvc(un&mg<#|k/srmpw)`k9$hcx`{[9_\CKBX?:UdS`{w_3]LQQ:36:k0Y=!hrg,qb*ak8'xo#~ats-dg5(dg|dW5SPGOF\36YhWdsS?Q@UU>7:45>3\:$kh!rg-dh5(ul&x{by| gb2-gjsi|R2VSJ@K_61\kZkrpV8TCXZ35?1b?P6(o{l%~k!hl1,q`*twf}x$kn>!cnwmp^>ZWNDOS:=Po^ov|Z4XG\^793?<9:W3+bta&{l$ka>!re-qtkru'ni;"naznuY;YZAILV=8SbQbuy]1[JSS4?48m6[?/fpe*w`(oe:%~i!}povq+be7&je~byU7]^EM@Z14WfUfyuQ=_NWW8386;01^<"i}f/pe+bj7&{n$~}`{r.e`4+eh}g~P4PQHNE]47ZiXe|rT>RAZT=5=7d=R8&myj#|i/fn3*wb(zyd~"il0/alqkr\0TULBIQ83^m\ip~X:VE^X19112;8Q5)`zo$yj"ic0/pg+wvi|{%lo= lotlw_=[XOGNT;>Q`_lw{[7YH]]632>j4U1-dvc(un&mg<#|k/srmpw)`k9$hcx`{[9_\CKBX?:UdS`{w_3]LQQ:?6VY\<?<4U1-dvc(un&mg<#|k/srmpw)`k9$hcx`{_101?P6(o{l%~k!hl1,q`*twf}x$kn>!cnwmpZ75:2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}U9>?5Z0.eqb+ta'nf;"j rqlwv*ad8'idyczP3308Q5)`zo$yj"ic0/pg+wvi|{%lo= lotlw[1453\:$kh!rg-dh5(ul&x{by| gb2-gjsi|V?9>6[?/fpe*w`(oe:%~i!}povq+be7&je~byQ9239V4*aun'xm#jb?.sf,vuhsz&mh<#m`uov\374<]9%l~k }f.eo4+tc'{zex!hc1,`kphsW18=7X> gsd-vc)`d9$yh"|nup,cf6)kfexRj><1<12>S7'nxm"h gm2-va)uxg~y#jm?.bmvjqYc95;5>;5Z0.eqb+ta'nf;"j rqlwv*ad8'idyczPd0>1:70<]9%l~k }f.eo4+tc'{zex!hc1,`kphsWm;7?3<9;T2,cw`)zo%l`= }d.psjqt(oj:%ob{at^f28185>2_;#j|i.sd,ci6)zm%y|cz}/fa3*firf}Uo=1;1279V4*aun'xm#jb?.sf,vuhsz&mh<#m`uov\`4:16;<0Y=!hrg,qb*ak8'xo#~ats-dg5(dg|dSi?37?05?P6(o{l%~k!hl1,q`*twf}x$kn>!cnwmpZb6414996[?/fpe*w`(oe:%~i!}povq+be7&je~byQk1^211>S7'nxm"h gm2-va)uxg~y#jm?.bmvjqYc9V;996[?/fpe*w`(oe:%~i!}povq+be7&je~byQk1^011>S7'nxm"h gm2-va)uxg~y#jm?.bmvjqYc9V9996[?/fpe*w`(oe:%~i!}povq+be7&je~byQk1^611>S7'nxm"h gm2-va)uxg~y#jm?.bmvjqYc9V?996[?/fpe*w`(oe:%~i!}povq+be7&je~byQk1^411>S7'nxm"h gm2-va)uxg~y#jm?.bmvjqYc9V=996[?/fpe*w`(oe:%~i!}povq+be7&je~byQk1^:0=>S7'nxm"h gm2-sw)`hy%{~z|/Lov|Zehey;TKCJP88]l[HS_W?3Tc<?=e:W3+bta&{l$ka>!ws-dsdu)z~x#n? glw{*fguzpdnx1>12d9V4*aun'xm#jb?.vp,crgt&~y"m>/fov|+efz{seiy2>>3g8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(di{xrbhz32?0f?P6(o{l%~k!hl1,tv*apiz$|y} c0-dip~)khxyuck{<2<1b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP<P hm0,n57`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV?R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT2\,div(j{;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ1^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX0X(`ez$f?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><1<10>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:768887X> gsd-vc)`d9$|~"ixar,twqu(k8%}=1?1259V4*aun'xm#jb?.vp,crgt&~y"m>/w3?5;75;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8692?:4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><3<266=R8&myj#|i/fn3*rt(o~kx"z}{s.a2+s7;;78?7X> gsd-vc)`d9$|~"ixar,twqu(k8%}=1=11318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28185<2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~86?2<<j;T2,cw`)zo%l`= xr.etev(p{}y$o?!hmtz-gdtuqgo0=0=e:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*fguzpdnx1?12d9V4*aun'xm#jb?.vp,crgt&~y"m=/fov|+efz{seiy2=>3g8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(di{xrbhz33?0e?P6(o{l%~k!hl1,tv*apiz$|y} c3-dip~)odQ;Q#ib1/o26c=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+bkrp'mfW<S!glq-iv4a3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)`e|r%k`U=]/enw+kt:o1^<"i}f/pe+bj7&~x$kzo|.vqww*e5'ng~t#ib[2_-chu)ez8m7X> gsd-vc)`d9$|~"ixar,twqu(k;%laxv!glY7Y+aj{'gx>>5Z0.eqb+ta'nf;"z| gvcp*rus{&i9#{?30?07?P6(o{l%~k!hl1,tv*apiz$|y} c3-u59699;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0<0=4:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>2:4443\:$kh!rg-dh5(pz&m|m~ xsuq,g7)q9585>95Z0.eqb+ta'nf;"z| gvcp*rus{&i9#{?32?317>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:46;>0Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0>0>229V4*aun'xm#jb?.vp,crgt&~y"m=/w3?0;433\:$kh!rg-dh5(pz&m|m~ xsuq,g7)q95>5=?>4U1-dvc(un&mg<#y}/fubw+qt|z%hc`~>339V4*aun'xm#jb?.vp,crgt&~y"m`mq3\CKBX00UdS@[W_7;\k76<]9%l~k }f.eo4+qu'n}j#y|tr-`khv5:11^<"i}f/pe+bj7&~x$kzo|.vqww*tfeVl~`aQib^k11>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVc?56[?/fpe*w`(oe:%{!hwea2*rbdmq~$Aljk_ekebZquW{nP5PQHNE]:5ZiXimnT8RAZT^az848312_;#j|i.sd,ci6){%l{im>.vf`a}r(EhnoSigif^uq[wb\1TULBIQ61^m\eabX<VE^XRmv<9<7f>S7'nxm"h gm2-sw)`mi:"zjleyv,IdbcWmcmjRy}_sfX=XY@FMU2=RaPaef\0ZIR\Vir050>15c8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.Ob`aYcaolT{Q}dZ;^[BHCW0;TcRokd^6\KPRXd|~7>3:n;T2,cw`)zo%l`= xr.et`f7)minty!Baef\`l`aW~xT~iU6]^EM@Z?6WfUjhiQ;_NWW[iss4:4?m6[?/fpe*w`(oe:%{!hwea2*rbdmq~$Aljk_ekebZquW{nP5PQHNE]:5ZiXimnT8RAZT^nvp929<h1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRjffg]tvZtcS0WTKCJP90]l[dbcW=UDYYQcuu>6:1g<]9%l~k }f.eo4+qu'n}oo< xdbg{p*KflmUoekhPws]q`^?ZWNDOS4?Po^cg`Z2XG\^T`xz36?6b?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NeabXl`lmSz|PreY:YZAILV3:SbQnde]7[JSSWe0:0;a:W3+bta&{l$ka>!ws-dsae6&~nhiuz M`fg[aoanV}ySjT9\]DJAY>9VeTmijP4^MVPZjr|5259?5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^fjbcYpzVxoW4SPGOF\=4YhWhnoS9Q@UU]{kw:668;TECXP05a8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.Ob`aYcaolT{Q}dZ;^[BHCW0;TcRokd^6\KPRXpfx7>3?>4b9V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZbnnoU|~R|k[8_\CKBX18UdSljk_5]LQQYg{682<?;d:W3+bta&{l$ka>!ws-dsae6&~nhiuz M`fg[aoanV}ySjT9\]DJAY>9VeTmijP4^MVPZ~hz5>5=<?:1:W3+bta&{l$ka>!ws-dsae6&~nhiuz M`fg[aoanV}ySjT9\]DJAY>9VeTmijP4^MVPZ~hz5>5=<?PSV27g>S7'nxm"h gm2-sw)`mi:"zjleyv,IdbcWmcmjRy}_sfX=XY@FMU2=RaPaef\0ZIR\Vrd~1:1136`?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NeabXl`lmSz|PreY:YZAILV3:SbQnde]7[JSSWqey080>15a8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.Ob`aYcaolT{Q}dZ;^[BHCW0;TcRokd^6\KPRXpfx7:3?>4b9V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZbnnoU|~R|k[8_\CKBX18UdSljk_5]LQQYg{6<2<?;c:W3+bta&{l$ka>!ws-dsae6&~nhiuz M`fg[aoanV}ySjT9\]DJAY>9VeTmijP4^MVPZ~hz525=<=8;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]`}969;>1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'Dy~nRjffg]tvZtcW}g{Snw31?14?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NwpdXl`lmSz|Pre]wiuYdq585?:5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@}zb^fjbcYpzVxoSyc_b{?7;503\:$kh!rg-dh5(pz&m|hn?!weaf|q)J{|hThdhi_vp\vaYseyUhu1:1369V4*aun'xm#jb?.vp,crbd9'}oohv{/LqvfZbnnoU|~R|k_uos[f;=79<7X> gsd-vc)`d9$|~"ixdb3-saebp}%FxlPdhde[rtXzmUa}Qly=4=72=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HurjVnbjkQxr^pg[qkwWjs7;3=7;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]oqq:76:20Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rbzt=3=7==R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HurjVnbjkQxr^pg[qkwWe0?0<8:W3+bta&{l$ka>!ws-dsae6&~nhiuz Mrwa[aoanV}ySjPtlr\hpr;;7937X> gsd-vc)`d9$|~"ixdb3-saebp}%FxlPdhde[rtXzmUa}Qcuu>7:6><]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVf~x1;1399V4*aun'xm#jb?.vp,crbd9'}oohv{/LqvfZbnnoU|~R|k_uos[iss4?4846[?/fpe*w`(oe:%{!hwea2*rbdmq~$A~{m_ekebZquW{nTx`~Pltv?3;5?3\:$kh!rg-dh5(pz&m|hn?!weaf|q)J{|hThdhi_vp\vaYseyUgyy27>2:8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.OpqgYcaolT{Q}d^vntZ~hz5:5?55Z0.eqb+ta'nf;"z| gvf`5+qcklr#@}zb^fjbcYpzVxoSyc_ymq848402_;#j|i.sd,ci6){%l{im>.vf`a}r(EziSigif^uq[wbX|dzTtb|32?1;?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NwpdXl`lmSz|Pre]wiuYg{682>64U1-dvc(un&mg<#y}/fugg4(pljosx"C|uc]gmc`X{UyhRzbp^zlv929;11^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'Dy~nRjffg]tvZtcW}g{Sua}<4<0<>S7'nxm"h gm2-sw)`mi:"zjleyv,IvseWmcmjRy}_sf\phvXpfx7:3=7;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]{kw:06:20Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rv`r=:=65=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+K2392_;#j|i.sd,ci6){%l{im>.vf`a}r(l`lmSz|PreY:YZAILV3:SbQnde]7[JSS484?=6[?/fpe*w`(oe:%{!hwea2*rbdmq~$hdhi_vp\va]>UVMEHR7>_n]b`aY3WF__0?0;1:W3+bta&{l$ka>!ws-dsae6&~nhiuz dhde[rtXzmQ2QRIAD^;2[jYflmU?SB[[<2<75>S7'nxm"h gm2-sw)`mi:"zjleyv,`l`aW~xT~iU6]^EM@Z?6WfUjhiQ;_NWW818392_;#j|i.sd,ci6){%l{im>.vf`a}r(l`lmSz|PreY:YZAILV3:SbQnde]7[JSS4<4?=6[?/fpe*w`(oe:%{!hwea2*rbdmq~$hdhi_vp\va]>UVMEHR7>_n]b`aY3WF__0;0;1:W3+bta&{l$ka>!ws-dsae6&~nhiuz dhde[rtXzmQ2QRIAD^;2[jYflmU?SB[[<6<75>S7'nxm"h gm2-sw)`mi:"zjleyv,`l`aW~xT~iU6]^EM@Z?6WfUjhiQ;_NWW8=85n2_;#j|i.sd,ci6){%l{im>.vf`a}r(l`lmSz|Pre]wiu:76::0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&}ySio{a^alqkrXa5:5?=5Z0.eqb+ta'nf;"z| gvf`5+qcklr#z|Pd`vb[firf}Ub0<0<0:W3+bta&{l$ka>!ws-dsae6&~nhiuz ws]geqgXkfexRg32?13?P6(o{l%~k!hl1,tv*aplj;%{imjxu-tvZbf|hUhcx`{_h>0:66<]9%l~k }f.eo4+qu'n}oo< xdbg{p*quWmkmRm`uov\m929;91^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'~xThlzn_bmvjqYn4<48<6[?/fpe*w`(oe:%{!hwea2*rbdmq~${Qkauc\gjsi|Vc7:3=?;T2,cw`)zo%l`= xr.et`f7)minty!xr^fbpdYdg|dSd28>228Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.uq[agsiVidyczPi=:=75=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+rtXlh~jSnaznu]j8<85n2_;#j|i.sd,ci6){%l{im>.vf`a}r({UomyoPcnwmpZoX8;l0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&}ySio{a^alqkrXaV;9j6[?/fpe*w`(oe:%{!hwea2*rbdmq~${Qkauc\gjsi|VcT>?h4U1-dvc(un&mg<#y}/fugg4(pljosx"y}_ecweZeh}g~TeR==f:W3+bta&{l$ka>!ws-dsae6&~nhiuz ws]geqgXkfexRgP43d8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.uq[agsiVidyczPi^71b>S7'nxm"h gm2-sw)`mi:"zjleyv,swYci}kTob{at^k\27`<]9%l~k }f.eo4+qu'n}oo< xdbg{p*quWmkmRm`uov\mZ15n2_;#j|i.sd,ci6){%l{im>.vf`a}r({UomyoPcnwmpZoX0;l0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&}ySio{a^alqkrXaV3:h6[?/fpe*w`(oe:%{!}al]tvZciW`;?46[?/fpe*w`(oe:%{!xpovq+HkrpVmbo= hc1,`kphsS1WTKCJP86]l[hsW;UDYY?>_HLU[5253\:$kh!rg-dh5(pz&}{by| Mlw{[bod8'mh<#m`uovX<XY@FMU3;RaPmtz\6ZIR\;;?>6[?/fpe*w`(oe:%{!xpovq+HkrpVmbo= hc1,`kphsS1WTKCJP86]l[hsW;UDYY=>299V4*aun'xm#jb?.vp,suhsz&mbo= hc1,`kphs494946[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov?5;4?3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~by2=>3:8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|595>55Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw818502_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idycz35?0;?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}6=2?64U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmp919:11^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{<9<0a>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~P4PQHNE];3ZiXe|rT>RAZT=2=7`=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dW5SPGOF\<2YhWdsS?Q@UU>2:6c<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexV6R_FLG[=1XgVg~tR<POTV?6;5b3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byU7]^EM@Z>0WfUfyuQ=_NWW868382_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczT8\]DJAY??VeTaxvP2^MVP959989m7X> gsd-vc)`d9$|~"ynup,cle7∋"naznuY;YZAILV2<SbQbuy]1[JSS4:498>5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw_=[XOGNT4:Q`_lw{[7YH]]682Rlkd11f?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}Q3QRIAD^:4[jYj}qU9SB[[<5<0b>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~P4PQHNE];3ZiXe|rT>RAZT=6=56c<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexV6R_FLG[=1XgVg~tR<POTV?1;5a3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byU7]^EM@Z>0WfUfyuQ=_NWW8086;l1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{[9_\CKBX0>UdS`{w_3]LQQ:16:l0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{atZ:^[BHCW1=TcRczx^0\KPR;>7;8i6[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uovX<XY@FMU3;RaPmtz\6ZIR\5=5?k5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw_=[XOGNT4:Q`_lw{[7YH]]6<2<=j;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjq]?UVMEHR68_n]nq}Y5WF__050;2:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkr\0TULBIQ77^m\ip~X:VE^X161_RU362=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dS=<8;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjqY6:>1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{_304?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}U8>:5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw[1403\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byQ:269V4*aun'xm#jb?.vp,suhsz&mbo= hc1,`kphsW?8<7X> gsd-vc)`d9$|~"ynup,cle7∋"naznu]462=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dS5<m;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjqYc95:5>o5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw[a7;978i7X> gsd-vc)`d9$|~"ynup,cle7∋"naznu]g5949:k1^<"i}f/pe+bj7&~x${}`{r.ejg5(`k9$hcx`{_e3?7;4e3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byQk1=6=6g=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dSi?35?0a?P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}Uo=1812c9V4*aun'xm#jb?.vp,suhsz&mbo= hc1,`kphsWm;7;3<m;T2,cw`)zo%l`= xr.usjqt(o`i;"jm?.bmvjqYc9525>l5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw[a7X8;k0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^f2[44f3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byQk1^01e>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~Th<Q<2`9V4*aun'xm#jb?.vp,suhsz&mbo= hc1,`kphsWm;T8?o4U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZb6W<8j7X> gsd-vc)`d9$|~"ynup,cle7∋"naznu]g5Z05i2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczPd0]46d=R8&myj#|i/fn3*rt(yd~"ifc1,dg5(dg|dSi?P83`8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|Vn90=0=b:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkrXl;6:2?l4U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZb54;49n6[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uov\`7:46;h0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^f18185j2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczPd3>6:7d<]9%l~k }f.eo4+qu'~zex!hib2-cf6)kfexRj=<7<1f>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~Th?28>3`8Q5)`zo$yj"ic0/uq+rvi|{%len>!gb2-gjsi|Vn9050=a:W3+bta&{l$ka>!ws-ttkru'nch<#il0/alqkrXl;U;>l5Z0.eqb+ta'nf;"z| wqlwv*ank9$lo= lotlw[a4X9;k0Y=!hrg,qb*ak8'}y#z~ats-dmf6)oj:%ob{at^f1[74f3\:$kh!rg-dh5(pz&}{by| gha3*be7&je~byQk2^11e>S7'nxm"h gm2-sw)pxg~y#jgl0/e`4+eh}g~Th?Q;2`9V4*aun'xm#jb?.vp,suhsz&mbo= hc1,`kphsWm8T9?o4U1-dvc(un&mg<#y}/vrmpw)`aj:%kn>!cnwmpZb5W?8j7X> gsd-vc)`d9$|~"ynup,cle7∋"naznu]g6Z15i2_;#j|i.sd,ci6){%||cz}/fk`4+ad8'idyczPd3];52=R8&myj#|i/lgn+air|Vc7<3?7;T2,cw`)zo%fi`!kotv\m9776820Y=!hrg,qb*kbe&ndyyQf<03=5==R8&myj#|i/lgn+air|Vc7=?0>8:W3+bta&{l$ahc dnww[l:6;7;37X> gsd-vc)jmd%ocxzPi=37:4><]9%l~k }f.ofi*bh}}Ub0<;1199V4*aun'xm#`kb/emvpZo;9?4:46[?/fpe*w`(elg$hb{{_h>23;7?3\:$kh!rg-nah)cg|~Te1?7>0:8Q5)`zo$yj"cjm.flqqYn4835=:5Z0.eqb+ta'dof#iazt^k?5;7?3\:$kh!rg-nah)cg|~Te1<?>0:8Q5)`zo$yj"cjm.flqqYn4;;5=55Z0.eqb+ta'dof#iazt^k?678602_;#j|i.sd,i`k(lfSd2=3?3;?P6(o{l%~k!bel-gkprXa58?2<64U1-dvc(un&gna"j`uu]j8739911^<"i}f/pe+hcj'me~xRg327<2<>S7'nxm"h mdo,`jssW`69;3?7;T2,cw`)zo%fi`!kotv\m94?6820Y=!hrg,qb*kbe&ndyyQf<3;=52=R8&myj#|i/lgn+air|Vc7>3?7;T2,cw`)zo%fi`!kotv\m9576820Y=!hrg,qb*kbe&ndyyQf<23=5==R8&myj#|i/lgn+air|Vc7??0>8:W3+bta&{l$ahc dnww[l:4;7;37X> gsd-vc)jmd%ocxzPi=17:4><]9%l~k }f.ofi*bh}}Ub0>;1169V4*aun'xm#`kb/emvpZo;;7;<7X> gsd-vc)jmd%ocxzPi=6=52=R8&myj#|i/lgn+air|Vc793?8;T2,cw`)zo%fi`!kotv\m9099>1^<"i}f/pe+hcj'me~xRg37?34?P6(o{l%~k!bel-gkprXa525=:5Z0.eqb+ta'dof#iazt^k?=;713\:$kh!rg-nah)cg|~TeR>>6:W3+bta&{l$ahc dnww[lY69>1^<"i}f/pe+hcj'me~xRgP1134?P6(o{l%~k!bel-gkprXaV;:=:5Z0.eqb+ta'dof#iazt^k\57703\:$kh!rg-nah)cg|~TeR?<169V4*aun'xm#`kb/emvpZoX9=;<7X> gsd-vc)jmd%ocxzPi^3652=R8&myj#|i/lgn+air|VcT=;?8;T2,cw`)zo%fi`!kotv\mZ709>1^<"i}f/pe+hcj'me~xRgP1934?P6(o{l%~k!bel-gkprXaV;2=;5Z0.eqb+ta'dof#iazt^k\641<]9%l~k }f.ofi*bh}}UbS?>>7:W3+bta&{l$ahc dnww[lY598=0Y=!hrg,qb*kbe&ndyyQf_3023>S7'nxm"h mdo,`jssW`U9?<94U1-dvc(un&gna"j`uu]j[726?2_;#j|i.sd,i`k(lfSdQ=5058Q5)`zo$yj"cjm.flqqYnW;<:;6[?/fpe*w`(elg$hb{{_h]1341<]9%l~k }f.ofi*bh}}UbS?6>7:W3+bta&{l$ahc dnww[lY518<0Y=!hrg,qb*kbe&ndyyQf_234?P6(o{l%~k!bel-gkprXaV9;=:5Z0.eqb+ta'dof#iazt^k\74703\:$kh!rg-nah)cg|~TeR==169V4*aun'xm#`kb/emvpZoX;:;<7X> gsd-vc)jmd%ocxzPi^1752=R8&myj#|i/lgn+air|VcT?8?9;T2,cw`)zo%fi`!kotv\mZ26>2_;#j|i.sd,i`k(lfSdQ:179V4*aun'xm#`kb/emvpZoX>8<0Y=!hrg,qb*kbe&ndyyQf_635?P6(o{l%~k!bel-gkprXaV2::6[?/fpe*w`(elg$hb{{_h]:06=R8&myj#|i/lgn+bdj&nhfk#immfc-jbcdk'hfk"lck^ofiZabflxjxb| dnwwfZo;87>?7X> gsd-vc)jmd%ln` hble-cgk`i'dlinm!ble,fimXelgTkh`jr`vlv*bh}}hTe1??>568Q5)`zo$yj"cjm.eai+aeen$ln`in.oefgf(een%i`fQbel]dakcui}ey#iaztc]j8479<=1^<"i}f/pe+hcj'nhf"jlbg/eaibg)fnoho#lbg.`ooZkbeVmnbh|ntnp,`jssjVc7=?0;4:W3+bta&{l$ahc gco-cgk`&nhfkl agda`*gk`'kf`S`kb_fgmawgsg{%ocxzm_h>27;233\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.flqqdXa5;?29:4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'me~xoQf<07=01=R8&myj#|i/lgn+bdj&nhfk#immfc-jbcdk'hfk"lck^ofiZabflxjxb| dnwwfZo;9?4?86[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)cg|~iSd2>7?67?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"j`uu`\m97?6=>0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+air|kUb0<71429V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$hb{{b^k?5;233\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.flqqdXa58;29:4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'me~xoQf<33=01=R8&myj#|i/lgn+bdj&nhfk#immfc-jbcdk'hfk"lck^ofiZabflxjxb| dnwwfZo;:;4?86[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)cg|~iSd2=3?67?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"j`uu`\m9436=>0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+air|kUb0?;1459V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$hb{{b^k?6383<2_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-gkpreW`69;3:;;T2,cw`)zo%fi`!hbl,dfha)okglm#`heba-fha(jeaTahcPgdlfvdrhz&ndyylPi=0;:12<]9%l~k }f.ofi*aee'miaj hbleb*kabkj$iaj!mlj]nahY`mgoymya}/emvpgYn4;358>5Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(lfnRg32?67?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"j`uu`\m9576=>0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+air|kUb0>?1459V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$hb{{b^k?7783<2_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-gkpreW`68?3:;;T2,cw`)zo%fi`!hbl,dfha)okglm#`heba-fha(jeaTahcPgdlfvdrhz&ndyylPi=17:12<]9%l~k }f.ofi*aee'miaj hbleb*kabkj$iaj!mlj]nahY`mgoymya}/emvpgYn4:?58>5Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(lfnRg33?60?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"j`uu`\m929<:1^<"i}f/pe+hcj'nhf"jlbg/eaibg)fnoho#lbg.`ooZkbeVmnbh|ntnp,`jssjVc793:<;T2,cw`)zo%fi`!hbl,dfha)okglm#`heba-fha(jeaTahcPgdlfvdrhz&ndyylPi=4=06=R8&myj#|i/lgn+bdj&nhfk#immfc-jbcdk'hfk"lck^ofiZabflxjxb| dnwwfZo;?7>87X> gsd-vc)jmd%ln` hble-cgk`i'dlinm!ble,fimXelgTkh`jr`vlv*bh}}hTe161429V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$hb{{b^k?=;1?3\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.tbhlb)kz~y#oblnms_5[)zhg%~"}9_omjjlr)zhg$_I^!SHOSH@YWZ@G:4#|nm0d8Q5)`zo$yj"cjm.eai+rjxVxjaR|k_dl14>S7'nxm"h mdo,cgk)|dzT~lcPre]fj4743\:$kh!rg-qehYulVoe=:5Z0.eqb+ta'{kfSkhotv\ak743\:$kh!rg-qehYpzVoe=i5Z0.eqb+ta'{ynae RRV\BPJKWNOE>55Z0.eqb+ta'{ynae gsqw`4(`zz~Tjxbc.sqw[a7502_;#j|i.sd,vvredb%l~~zk1/eqwqYa}ef%~~zPd30;?P6(o{l%~k!}su`oo*au{}n:"j||t^dvhi(u{}Uo??m4U1-dvc(un&xxxobd/oetvatt|'myy }d^pppZtbo5:5>n5Z0.eqb+ta'{ynae nfuq`wus&nxxx#|k_sqw[wc`4849o6[?/fpe*w`(zz~i`f!agvpgvvr)o{y"jPrrv\v`a;:78i7X> gsd-vc)u{}hgg"`hwsfqwq(`zz~%~iQ}su]qabY7:k1^<"i}f/pe+wusjea$bjy}dsqw*btt|'xoS}{_sgd[44e3\:$kh!rg-qwqdkc&dl{j}su,dvvr)zmUyyQ}ef]16f=R8&myj#|i/sqwfim(fn}yh}{.fppp+quW{ySkh<1<1g>S7'nxm"h rrvahn)io~xo~~z!gsqw*rtXzz~T~hi31?0a?P6(o{l%~k!}su`oo*h`{nyy hrrv-swYu{}UyijQ?2c9V4*aun'xm#}{bmi,jbqul{y"j||t/uq[wusW{olS<?k;T2,cw`)zo%yylck.pg[wusWhyyij<?;T2,cw`)zo%yylck.pg[wusWhyyijQk1328Q5)`zo$yj"||tcnh+wbXzz~Tm~|jg^f15f=R8&myj#|i/sqwfim(zmUyyQlol`2`>S7'nxm"h rrvahn)ulVxxxRm`mc32`>S7'nxm"h rrvahn)pzVxxxRo|rde14>S7'nxm"h rrvahn)pzVxxxRo|rde\`4473\:$kh!rg-qwqdkc&}yS}{_`qqabYc:;>0Y=!hrg,qb*tt|kf`#z|Prrv\evtboVxxx}a{1b9V4*aun'xm#}{bmi,swYu{}Uhc`l>d:W3+bta&{l$~~zmlj-tvZtt|Vidao?n;TQFVZGKAHYh7X]JR^TJWLDKM:1]ON74VHGT[Q_WM?1\IL2?>79TAD:66?1\IL2=>99TAD:4294=7ZKN<2<5?RCE494=7ZKM<0<5?RCE4;437ZKM<283:3=PMK682o5XRHVF[COU[]i0[_G[E^OL@@YFk2]YEYKPMNFF[G7c3QCGECV"XE@#4+7'[]_I,= > @Q@ML3<PFXHU;5WSUNJF2=_[]ULBI94XRV\RFEe3QUHC_KPIODL2>^cjVCoj6Vkh^RqmhPbzzcdb<>4Xeo\Idlhz_oydaa119[`hYJageyZh||inl60>YXWQFEARQP0^]\Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-Nip~Xl`lmSz|PreY:YZAILV2>SbQbuy]6[JSS<8>=7RQPXMLN[ZY68VUTY=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`YA[DUMJi<"Io365>YXWQFEARQP10]\[P6(o{l%~k!hl1,tv*qwf}x$kdm?.fa3*firf}Q3QRIAD^:4[jYj}qU9SB[[<9<\WR63k2UTSUBAM^]\57YXW\:$kh!rg-dh5(ul&x{by| gb2-gjsi|R2VSJ@K_61\kZkrpV8TCXZ38?]PS5363VUTTA@B_^]27ZYX]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<U7]^pf`pebWqeyS<>>_ym?4;YT_9>27RQPXMLN[ZY6<VUTY=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0Y;YZtbl|inSua}_05\k4323VUTTA@B_^]21ZYX]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)Je|rThdhi_vp\va]>UVMEHR6:_n]nq}Y2WF__><:7;^]\\IHJWVU::RQPU1-dvc(un&mg<#y}/fubw+qt|z%FaxvPcnos5ZAILV22SbQBUY]5=Zi69:90SRQWLOO\[Z70WVU^<"i}f/pe+wusjea${Q}su]bwwc`W{y|bz;c:]\[]JIEVUT=5QP_T2,cw`)zo%lou lljz,I}iuW[NT\CZ][1_\VAYWF]XP=PQWOS]66ZiXpf6;2<:l;^]\\IHJWVU:5RQPU1-dvc(un&mht#mcky-N|jtXZMU[BY\T6\]Q@ZVI\[Q<QRV@R^65[jYg5:5=9j4_^][HKKXWV;TSR[?/fpe*w`(oe:%{!xpovq+bod8'mh<#m`uovX<XY@FMU3;RaPmtz\6ZIR\5>5=9l4_^][HKKXWV8;SRQZ0.eqb+ta'nis"nbdx.O{kwYPZVZEX_U?]^UQ[UHSZR;VSUA]_9]l[}i;87;?n6QP_YNMIZYX:8UTSX> gsd-vc)`kq$h`fv Mymq[RTXXG^YW;SPWS]SJQT\?TUSC_Q=_n]{k9699=i0SRQWLOO\[Z45WVU^<"i}f/pe+be&jf`t"Cwos]Q@ZVI\[Q9QR\K_QLWV^5ZWQEYS8>Po^zl8586<j1TSRVCNL]\[75XWV_;#j|i.sd,cf~)keas#@v`r^PG[UHSZR>VS_JPPOVQ_0[XPFXT85Q`_ym?4;73j2UTSUBAM^]\61YXW\:$kh!rg-dg}(ddbr$Aua}_VP\TKRUS;WT[_Q_NUPX7XY_G[U=SbQwo=2=51d<WVUS@CCP_^06[ZYR8&myj#|i/fa{*fjlp&GscQXR^RMPW]3UV]YS]@[RZ7^[]IUW=UdSua30?37<>YXWQFEARQP2^]\Q5)`zo$yj"ic0/pg+wvi|{%lo= lotlw_=[XOGNT;>Q`_lw{[7YH]]6?2<:l;^]\\IHJWVU8SRQZ0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5^>ZW{ooynkPxnp\34Yg5:5=9j4_^][HKKXWV>TSR[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2_=[Xzln~ohQwos]2=4Yg5:5=?k4_^][HKKXWV?TSR[?/fpe*w`(elg$koc!tlr\vdkXzmUnb<;n;^]\\IHJWVU=SRQZ0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^fjbcYpzVxoW4SPGOF\=4YhWhnoS9Q@UU]{kw:3688><6QP_YNMIZYX?VUTY=!hrg,qb*ak8'}y#z~ats-Nip~Xo`i;"jm?.bmvjq]?UVMEHR68_n]nq}Y5WF__?<:m;^]\\IHJWVU3SRQZ0.eqb+ta'nf;"j rqlwv*Kj}qUlo= lotlw_=[XOGNT;>Q`_lw{[7YH]]9:885P_^ZOJHYXW0UTSX> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXNZGTJKj>-Hl2g>gkefyShctx`8eikh{}Umyab9;cc`opvc3kkhgx~Pm`phaw5<keao7io{a^alqkr/8 n0hlzn_bmvjq.6!m1omyoPcnwmp-4.l2njxlQlotlw,6/c3mkmRm`uov+0,b<lh~jSnaznu*6-a=ci}kTob{at)4*`>bf|hUhcx`{(6+g?agsiVidycz'8(d8`drfWje~by27:1<4?adn|lxy:6jfn)2*2>bnf!;";6jfn)33-2=cag":=$94dhl+57/03mce$<=&7:fjj-73!>1oec&>5(58`lh/9?#<7iga(05*3>bnf!;3%:5kio*2=,0<l`d#>$94dhl+65/03mce$??&7:fjj-45!>1oec&=3(58`lh/:=#<7iga(37*3>bnf!8=%:5kio*13,1<l`d#>5'8;ekm,7?.>2nbb%=&7:fjj-57!>1oec&<1(58`lh/;;#<7iga(21*3>bnf!9?%:5kio*01,0<l`d#8$84dhl+1,0<l`d#:$84dhl+3,0<l`d#4$84dhl+=,0<l`d7<394dhl?55803mce0<?17:fjj9756>1oec2>3?58`lh;9=4<7iga<07=3>bnf5;=2:5kio>23;1<l`d7=508;ekm84?9>2nbb1?17:fjj9476>1oec2=1?58`lh;:;4<7iga<31=3>bnf58?2:5kio>11;1<l`d7>;08;ekm8719?2nbb1<7>69gmk:517<0hd`32?58`lh;;94<7iga<23=3>bnf5992:5kio>07;1<l`d7?906;ekm863=87=0hd`334<5?aoi4:4=7iga<5<5?aoi4<4=7iga<7<5?aoi4>4=7iga<9<5?aoi404<7iazt)2*3>bh}}":%55kotv+55/?3me~x%?>)99gkpr/9;#37iazt)30-==cg|~#=9'7;emvp-72!11ocxz'17+;?air|!;<%55kotv+5=/?3me~x%?6)69gkpr/: 20hb{{(32*<>bh}}"9=$64dnww,74.02ndyy&=3(:8`jss ;>"46j`uu*11,><lf$?8&8:flqq.5? 20hb{{(3:*<>bh}}"95$94dnww,6/?3me~x%=?)99gkpr/;8#37iazt)11-==cg|~#?>'7;emvp-53!11ocxz'34+4?air|!>";6j`uu*6-2=cg|~#:$94dnww,2/03me~x%6&7:flqq.>!>1ocxz30?:8`jss48:546j`uu>25;><lf0<<18:flqq:6;720hb{{<06=<>bh}}6:9364dnww840902ndyy2>7?:8`jss482546j`uu>2=;1<lf0<07;emvp947611ocxz320<;?air|589255kotv?668?3me~x1<;>99gkpr;:<437iazt=05:==cg|~7>:07;emvp94?611ocxz328<4?air|58546j`uu>04;><lf0>?18:flqq:4:720hb{{<21=<>bh}}6883o4dnww863=8720hb{{<27=3>bh}}682:5kotv?0;1<lf0808;emvp909?2ndyy28>69gkpr;07=0hb{{<8<;?`bnn;dlh85jmqvz6c=aaoeTkh`jr`vlvZp1W8&+Tdbfny"@KWC'Oldn~lz`r!31*4743ocmcR}9_431|60X:jf`?<5iigm\w3Y29;r8:R<llj.emciXoldn~lz`r^t5[4*IGGO'BB@J3dg8bl`hWz<T9<<w37]1gim+n`ldSjkaescwkwYq>V;'wnQgar]jjqYddb7; nQgar]pvvr:8%iT~iQirds>5)eXmgki`hQ}su]p}ke:9%iTdl}Pre]geqgXkfex0?#c^fjjZqnl}b6?;"l_icp[rtXlh~jSnaznu?2(fYa}efTjaohs^pppZpfd4;'oRgbpmgnakrf|`eeSywe<0/gZstmVofnhjkee]qab;7$jU|~Rh}ep?2(fYr{lUocxzPrrv>5)eX}gnn~kb`w^nls86+kVbjRayesdokr;7$jU{~hb`ae]oeqcikp7; nQkotv\slbs`49= nQbsfmm[sgk58&hSjPddrwl836:%iTi|`r^kmn`esafdTxt~j=1.`[mgtW|doihcov?3(fYoizUj``a|t^dvhi;7$jUcm~Q}su?2(fYci}kTob{at^uj`qn:1%iTdl}Pws]bgn;7$jU~hQjcb?3(fYdgdgdbRmcobi>4)eX{UjofQcov?3(fYulVzexQxievk9<*dW|ynSkyit^fbpdYdg|d1<"l_icp[djjgz~Ti`~{y<2/gZtcWmkmRm`uov\slbs`4;; nQ`vdpehjqXdf}6<!mPws]sjqtX`nd07#c^rqkbYbey~rSywe<2/gZquWmkmRm`uov\slbs`4;; nQrdnleaYumny6=!mPdnww[wusWkg1="l_icp[agsiVidycz20-a\twi`Wog`Rzgrdqk[kc`i}oTzlb2502/gZquWmo{xe3:13.`[uthoVof|ywPtipfwmYimnkiRxnl<7/gZvugnUna}zv_ujqavnXizyn~yQyam?7(fYoizU}magk=1.`[uthoVl~`aQ{hsgplZgt{lxS{oc=432(fijxfdnbyQaalg>bl`hWz<T9<<w37]1gim+kV|j`djPlnu>4)eXx{cfSkgio^vzt`;29;r8:!mPpsmd[cskdV~r|h3?,b]nahiuqV~r|h3>,|0g?coagVy=S8?=x24\6fjlWocmcRijndpbpjtX~?U:Su}{_068bpjkl2cefhm{dckwawtc3`dainz|bhvfvw1<ag~Toae7;oe`fpokl11dzh|ilnub?uthoVof|yw>4:rqkbYbey~rSyf}erj+4,733yxdkRkbpu{\pmtb{a":%<:4psmd[`kw|pUdk|h)0*51=wzfmTi`~{y^vkv`uo :#:86~}of]fiur~W}byi~f'4(37?uthoVof|ywPtipfwm.2!8>0|ah_dosp|Ys`{oxd%8&159svjaXmdzuRzgrdqk,2/6<2zycjQjmqvz[qnumzb#4$?9;qplcZcjx}sTxe|jsi>;>586j2zycjQjmqvz[qnumzbTm~}jru*3-4d<x{elShctx]wlwct`Vkxh|{(0+2f>vugnUna}zv_ujqavnXizyn~y&=)0`8twi`Wlg{xtQ{hsgplZgt{lx$>'>b:rqkbYbey~rSyf}erj\evubz}"?%<l4psmd[`kw|pUdk|h^cpw`ts <#:n6~}of]fiur~W}byi~fParqfvq.1!8h0|ah_dosp|Ys`{oxdRo|sdpw,2/6j2zycjQjmqvz[qnumzbTm~}jru*;-4b<x{elShctx]wlwct`Vkxh|{<983:4d<x{elShctx]wlwct`Vdnklzj(1+2f>vugnUna}zv_ujqavnXflmjxh&>)0`8twi`Wlg{xtQ{hsgplZhboh~n$?'>b:rqkbYbey~rSyf}erj\j`af|l"8%<l4psmd[`kw|pUdk|h^lfcdrb =#:n6~}of]fiur~W}byi~fPndebp`.2!8h0|ah_dosp|Ys`{oxdR`jg`vf,3/6j2zycjQjmqvz[qnumzbTbhintd*4-4d<x{elShctx]wlwct`Vdnklzj(9+2`>vugnUna}zv_ujqavnXflmjxh27:1<:?uthoVl~`a?<;qplcZ`rdeUdk|h)2*56=wzfmTjxbc_ujqavn/9 ;87}|`g^dvhiYs`{oxd%<&129svjaXn|fgSyf}erj+7,743yxdkRhzlm]wlwct`!>"=>5rne\bpjkW}byi~f'5(30?uthoVl~`aQ{hsgpl-0.9:1{~biPftno[qnumzb#;$?<;qplcZ`rdeUdk|h):*50=wzfmTjxbc_ujqavn;03:5=l5rne\bpjkW}byi~fParqfvq.7!8k0|ah_gwohZrozlycSl}|esv+5,7f3yxdkRhzlm]wlwct`Vkxh|{(3+2e>vugnUmyabPtipfwmYf{zoyx%=&1`9svjaXn|fgSyf}erj\evubz}"?%<o4psmd[cskdV~c~h}g_`qpawr/= ;j7}|`g^dvhiYs`{oxdRo|sdpw,3/6i2zycjQiumn\pmtb{aUj~k}t)5*5d=wzfmTjxbc_ujqavnXizyn~y&7)0a8twi`Wog`Rzgrdqk[dutm{~747>11`9svjaXn|fgSyf}erj\j`af|l";%<o4psmd[cskdV~c~h}g_ogdeqc/9 ;j7}|`g^dvhiYs`{oxdR`jg`vf,7/6i2zycjQiumn\pmtb{aUeijo{e)1*5d=wzfmTjxbc_ujqavnXflmjxh&;)0c8twi`Wog`Rzgrdqk[kc`i}o#9$?n;qplcZ`rdeUdk|h^lfcdrb ?#:m6~}of]eqijX|axneQaefcwa-1.9h1{~biPftno[qnumzbTbhintd*;-4e<x{elSk{cl^vkv`uoWgolmyk38;2=2>tcWjf`==5}d^fbpdYdg|d$='>0:pg[agsiVidycz'1(33?wbXlh~jSnaznu*1-46<zmUomyoPcnwmp-5.991yhRjnt`]`kphs =#:<6|k_ecweZeh}g~#9$??;sf\`drfWje~by&9)028vaYci}kTob{at)5*55=ulVnjxlQlotlw,=/682xoSio{a^alqkr/1 ;;7jPd`vb[firf}6;2<>4re]geqgXkfex1?1119q`Zbf|hUhcx`{<3<24>tcWmkmRm`uov?7;773{nThlzn_bmvjq:368:0~iQkauc\gjsi|5?5==5}d^fbpdYdg|d0;0>0:pg[agsiVidycz37?33?wbXlh~jSnaznu>;:44<zmUomyoPcnwmp9?=87;;7jPd`vb[firf}62285}d^gm2>tcW{y?6||t69pflrbz{>0}{1g9wiu)Xkn%mekaPs7]657~4>V8h`f agn;8qkbbzofd{85yamkg2>quWhi`:6y}_bnh55=pzVnjxlQlotlw,5/682}ySio{a^alqkr/9 ;;7z|Pd`vb[firf}"9%<>4ws]geqgXkfex%=&119tvZbf|hUhcx`{(5+24>quWmkmRm`uov+1,773~xThlzn_bmvjq.1!8:0{Qkauc\gjsi|!="==5xr^fbpdYdg|d$5'>0:uq[agsiVidycz'9(33?rtXlh~jSnaznu>3:46<{UomyoPcnwmp979991|~Rjnt`]`kphs4;4:<6y}_ecweZeh}g~7?3??;vp\`drfWje~by2;>028swYci}kTob{at=7=55=pzVnjxlQlotlw838682}ySio{a^alqkr;?7;;7z|Pd`vb[firf}632<<4ws]geqgXkfex1750?33?rtXlh~jSnaznu>::0=pzVoe:6y}_sqwyEFwlmn0LMv9218E>1<6sZ<n68ln:c827664j108=k8?{o6eg?7<f=lo6;5+4gc90c2<uZ<h68ln:c827664j108=k8?;R346?3d=3:1=>=?3c:974`192Y=o7;l5;295657;k21?<h91:f6fa<7280:w^8j:4`b>g<6;::8n54<1g43?sR6nk0;6<4>:0agV0b2<hj6o4>3220f=<49o<;7):j6;347>P3nk09wx?8b;38q41d291v(<k6:3:8f0dc290=?7=562yK0`2<R?>18v?8:049g?b=u-8;=7;md:&7b<<2jj1b:<l50;9j26g=831d9n?50;9l1gd=831b:?:50;9j24b=831d95k50;&2ag<2j81e=ho50:9l1=b=83.:io4:b09m5`g=921d95m50;&2ag<2j81e=ho52:9l1=d=83.:io4:b09m5`g=;21d95o50;&2ag<2j81e=ho54:9l1=?=83.:io4:b09m5`g==21d95950;&2ag<2j81e=ho56:9l1=0=83.:io4:b09m5`g=?21d95;50;&2ag<2j81e=ho58:9l1=2=83.:io4:b09m5`g=121d95=50;&2ag<2j81e=ho5a:9l1=4=83.:io4:b09m5`g=j21d95?50;&2ag<2j81e=ho5c:9l1=6=83.:io4:b09m5`g=l21d9:h50;&2ag<2j81e=ho5e:9l12c=83.:io4:b09m5`g=n21d9:m50;&2ag<2j81e=ho51198k01e290/=hl55c38j4cf28;07b;8a;29 4ce2<h:7c?ja;31?>i2?00;6)?jb;7a5>h6mh0:?65`56:94?"6mk0>n<5a1dc951=<g<=<6=4+1d`91g7<f8oj6<;4;n742?6=,8oi68l>;o3fe?7132e>;84?:%3ff?3e92d:il4>7:9l122=83.:io4:b09m5`g=9110c89<:18'5`d==k;0b<kn:0;8?j3><3:1(<km:4`2?k7bi3;j76a:9283>!7bj3?i=6`>e`82f>=h=081<7*>ec86f4=i9lk1=n54o4;2>5<#9lh19o?4n0gb>4b<3f?2<7>5$0ga>0d63g;nm7?j;:m6<c<72-;nn7;m1:l2ad<6n21d95650;&2ag<2j81e=ho52198k01c290/=hl55c38j4cf2;;07b;82;29 4ce2<h:7c?ja;01?>i2?80;6)?jb;7a5>h6mh09?65f55794?"6mk0>:55a1dc94>=n==>1<7*>ec862==i9lk1=65f55194?"6mk0>:55a1dc96>=n==81<7*>ec862==i9lk1?65f55394?"6mk0>:55a1dc90>=n==:1<7*>ec862==i9lk1965f52g94?"6mk0>:55a1dc92>=n=:n1<7*>ec862==i9lk1;65f52a94?"6mk0>:55a1dc9<>=n=:h1<7*>ec862==i9lk1565f52c94?"6mk0>:55a1dc9e>=n=:31<7*>ec862==i9lk1n65f52:94?"6mk0>:55a1dc9g>=n=:=1<7*>ec862==i9lk1h65f52494?"6mk0>:55a1dc9a>=n=:?1<7*>ec862==i9lk1j65f52194?"6mk0>:55a1dc955=<a<996=4+1d`913><f8oj6<?4;h705?6=,8oi6887;o3fe?7532c>?=4?:%3ff?3102d:il4>3:9j17`=83.:io4:699m5`g=9=10e8<j:18'5`d==?20b<kn:078?l35l3:1(<km:44;?k7bi3;=76g:2b83>!7bj3?=46`>e`823>=n=;h1<7*>ec862==i9lk1=554i40b>5<#9lh19;64n0gb>4?<3`??n7>5$0ga>00?3g;nm7?n;:k60d<72-;nn7;98:l2ad<6j21b99750;&2ag<2>11e=ho51b98m02?290/=hl557:8j4cf28n07d;;7;29 4ce2<<37c?ja;3f?>o2<?0;6)?jb;75<>h6mh0:j65f52d94?"6mk0>:55a1dc965=<a<9?6=4+1d`913><f8oj6??4;h71=?6=,8oi6887;o3fe?4532c>>54?:%3ff?3102d:il4=3:9l25`=83.:io49189m5`g=821d:=k50;&2ag<1901e=ho51:9l25b=83.:io49189m5`g=:21d:=m50;&2ag<1901e=ho53:9l25d=83.:io49189m5`g=<21d:=o50;&2ag<1901e=ho55:9l25?=83.:io49189m5`g=>21d:=650;&2ag<1901e=ho57:9l251=83.:io49189m5`g=021d:=850;&2ag<1901e=ho59:9l27c=83.:io49399m5`g=821d:?j50;&2ag<1;11e=ho51:9l27e=83.:io49399m5`g=:21d:?l50;&2ag<1;11e=ho53:9l27g=83.:io49399m5`g=<21d:?750;&2ag<1;11e=ho55:9l27>=83.:io49399m5`g=>21d:?950;&2ag<1;11e=ho57:9l270=83.:io49399m5`g=021d:?;50;&2ag<1;11e=ho59:9j253=831i8h;50;394?6|@=o?7)<?1;6f1>i6m10;66sm10a94?7=83:pD9k;;%035?76k2e:=o4?::a26<72k?1=5?51bfxL1c33S<?6<8t39803?5>2:n1?l4<b;1`>41=9?0h6i4>6;14>6>=;008m7=m:2a97a<6?3i1h7s+21391f6<,?=19ok4$7f91g`<,8o86<k8;h7ge?6=,8oi68jm;o3fe?6<3`?o57>5$0ga>0be3g;nm7?4;h7g<?6=,8oi68jm;o3fe?4<3`?o;7>5$0ga>0be3g;nm7=4;h7g2?6=,8oi68jm;o3fe?2<3`?o97>5$0ga>0be3g;nm7;4;h7g0?6=,8oi68jm;o3fe?0<3`?o?7>5$0ga>0be3g;nm794;h7g6?6=,8oi68jm;o3fe?><3`?h?7>5;h42g?6=3`<:j7>5;n416?6=3`?o<7>5$0ga>0b63g;nm7>4;h7`b?6=,8oi68j>;o3fe?7<3`?hi7>5$0ga>0b63g;nm7<4;h7``?6=,8oi68j>;o3fe?5<3`?ho7>5$0ga>0b63g;nm7:4;h7`f?6=,8oi68j>;o3fe?3<3`?hm7>5$0ga>0b63g;nm784;h7`=?6=,8oi68j>;o3fe?1<3`?h47>5$0ga>0b63g;nm764;h42f?6=3f?h:7>5;h7f0?6=,8oi68k:;o3fe?6<3`?n?7>5$0ga>0c23g;nm7?4;h7f6?6=,8oi68k:;o3fe?4<3`?n=7>5$0ga>0c23g;nm7=4;h7f4?6=,8oi68k:;o3fe?2<3`?oj7>5$0ga>0c23g;nm7;4;h7ga?6=,8oi68k:;o3fe?0<3`?oh7>5$0ga>0c23g;nm794;h7gg?6=,8oi68k:;o3fe?><3f?:57>5;n711?6=,8oi68<9;o3fe?6<3f?987>5$0ga>0413g;nm7?4;n717?6=,8oi68<9;o3fe?4<3f?9>7>5$0ga>0413g;nm7=4;n715?6=,8oi68<9;o3fe?2<3f?9<7>5$0ga>0413g;nm7;4;n72b?6=,8oi68<9;o3fe?0<3f?:i7>5$0ga>0413g;nm794;n72`?6=,8oi68<9;o3fe?><3f?n:7>5;h40e?6=3`?nj7>5$0ga>0`73g;nm7>4;h7fa?6=,8oi68h?;o3fe?7<3`?nh7>5$0ga>0`73g;nm7<4;h7fg?6=,8oi68h?;o3fe?5<3`?nn7>5$0ga>0`73g;nm7:4;h7fe?6=,8oi68h?;o3fe?3<3`?n57>5$0ga>0`73g;nm784;h7f<?6=,8oi68h?;o3fe?1<3`?n;7>5$0ga>0`73g;nm764;n7`5?6=3f?in7>5;h410?6=3`?:n7>5;h7e=?6=,8oi68hn;o3fe?6<3`?m47>5$0ga>0`f3g;nm7?4;h7e3?6=,8oi68hn;o3fe?4<3`?m:7>5$0ga>0`f3g;nm7=4;h7e1?6=,8oi68hn;o3fe?2<3`?m87>5$0ga>0`f3g;nm7;4;h7e7?6=,8oi68hn;o3fe?0<3`?m>7>5$0ga>0`f3g;nm794;h7e5?6=,8oi68hn;o3fe?><3`<;?7>5$0ga>3633g;nm7>4;h436?6=,8oi6;>;;o3fe?7<3`<;=7>5$0ga>3633g;nm7<4;h434?6=,8oi6;>;;o3fe?5<3`?mj7>5$0ga>3633g;nm7:4;h7ea?6=,8oi6;>;;o3fe?3<3`?mh7>5$0ga>3633g;nm784;h7eg?6=,8oi6;>;;o3fe?1<3`?mn7>5$0ga>3633g;nm764;n72<?6=3`?h87>5;h72g?6=3`<8n7>5;n42a?6=3f<9?7>5;h42`?6=3f?3i7>5$0ga>0d63g;nm7>4;n7;`?6=,8oi68l>;o3fe?7<3f?3o7>5$0ga>0d63g;nm7<4;n7;f?6=,8oi68l>;o3fe?5<3f?3m7>5$0ga>0d63g;nm7:4;n7;=?6=,8oi68l>;o3fe?3<3f?3;7>5$0ga>0d63g;nm784;n7;2?6=,8oi68l>;o3fe?1<3f?397>5$0ga>0d63g;nm764;n7;0?6=,8oi68l>;o3fe??<3f?3?7>5$0ga>0d63g;nm7o4;n7;6?6=,8oi68l>;o3fe?d<3f?3=7>5$0ga>0d63g;nm7m4;n7;4?6=,8oi68l>;o3fe?b<3f?<j7>5$0ga>0d63g;nm7k4;n74a?6=,8oi68l>;o3fe?`<3f?<o7>5$0ga>0d63g;nm7??;:m63g<72-;nn7;m1:l2ad<6921d9:o50;&2ag<2j81e=ho51398k01>290/=hl55c38j4cf28907b;88;29 4ce2<h:7c?ja;37?>i2?>0;6)?jb;7a5>h6mh0:965`56494?"6mk0>n<5a1dc953=<g<=>6=4+1d`91g7<f8oj6<94;n740?6=,8oi68l>;o3fe?7?32e>;>4?:%3ff?3e92d:il4>9:9l1<2=83.:io4:b09m5`g=9h10c87<:18'5`d==k;0b<kn:0`8?j3>:3:1(<km:4`2?k7bi3;h76a:9083>!7bj3?i=6`>e`82`>=h=0:1<7*>ec86f4=i9lk1=h54o4:e>5<#9lh19o?4n0gb>4`<3f?347>5$0ga>0d63g;nm7<?;:m63a<72-;nn7;m1:l2ad<5921d9:<50;&2ag<2j81e=ho52398k016290/=hl55c38j4cf2;907d;;5;29 4ce2<<37c?ja;28?l33<3:1(<km:44;?k7bi3;07d;;3;29 4ce2<<37c?ja;08?l33:3:1(<km:44;?k7bi3907d;;1;29 4ce2<<37c?ja;68?l3383:1(<km:44;?k7bi3?07d;<e;29 4ce2<<37c?ja;48?l34l3:1(<km:44;?k7bi3=07d;<c;29 4ce2<<37c?ja;:8?l34j3:1(<km:44;?k7bi3307d;<a;29 4ce2<<37c?ja;c8?l3413:1(<km:44;?k7bi3h07d;<8;29 4ce2<<37c?ja;a8?l34?3:1(<km:44;?k7bi3n07d;<6;29 4ce2<<37c?ja;g8?l34=3:1(<km:44;?k7bi3l07d;<3;29 4ce2<<37c?ja;33?>o2;;0;6)?jb;75<>h6mh0:=65f52394?"6mk0>:55a1dc957=<a<9;6=4+1d`913><f8oj6<=4;h71b?6=,8oi6887;o3fe?7332c>>h4?:%3ff?3102d:il4>5:9j17b=83.:io4:699m5`g=9?10e8<l:18'5`d==?20b<kn:058?l35j3:1(<km:44;?k7bi3;376g:2`83>!7bj3?=46`>e`82=>=n==h1<7*>ec862==i9lk1=l54i46b>5<#9lh19;64n0gb>4d<3`??57>5$0ga>00?3g;nm7?l;:k60=<72-;nn7;98:l2ad<6l21b99950;&2ag<2>11e=ho51d98m021290/=hl557:8j4cf28l07d;<f;29 4ce2<<37c?ja;03?>o2;=0;6)?jb;75<>h6mh09=65f53;94?"6mk0>:55a1dc967=<a<836=4+1d`913><f8oj6?=4;h72e?6=3f<;j7>5$0ga>37>3g;nm7>4;n43a?6=,8oi6;?6;o3fe?7<3f<;h7>5$0ga>37>3g;nm7<4;n43g?6=,8oi6;?6;o3fe?5<3f<;n7>5$0ga>37>3g;nm7:4;n43e?6=,8oi6;?6;o3fe?3<3f<;57>5$0ga>37>3g;nm784;n43<?6=,8oi6;?6;o3fe?1<3f<;;7>5$0ga>37>3g;nm764;n432?6=,8oi6;?6;o3fe??<3f<9i7>5$0ga>35?3g;nm7>4;n41`?6=,8oi6;=7;o3fe?7<3f<9o7>5$0ga>35?3g;nm7<4;n41f?6=,8oi6;=7;o3fe?5<3f<9m7>5$0ga>35?3g;nm7:4;n41=?6=,8oi6;=7;o3fe?3<3f<947>5$0ga>35?3g;nm784;n413?6=,8oi6;=7;o3fe?1<3f<9:7>5$0ga>35?3g;nm764;n411?6=,8oi6;=7;o3fe??<3f?h;7>5;h7`6?6=3f?9;7>5;h431?6=3f<9=7>5;c6e3?6=93:1<v*=00825f=O<o<0D9k;;n32f?6=3th?j54?:083>5}#:9;18h;4H5d5?M2b<2e:i54?::a70e=83>1<7>t$322>4713A>m:6F;e59'57e=i2c=97>5;h4e>5<<a8oo6=44o0gf>5<<uk9h<7>54;294~"5880:=;5G4g48L1c33-;9o7o4i7794?=n>o0;66g>ee83>>i6ml0;66sm3cd94?2=83:p(?>>:035?M2a>2B?i95+13a9e>o1=3:17d8i:188m4cc2900c<kj:188yg2di3:187>50z&144<69=1C8k84H5g7?!75k3;0e;;50;9j2g<722c=j7>5;n3fa?6=3th?hl4?:283>5}#:9;1=<=4H5d5?M2b<2B==6*>788145=#9;i1=6g95;29?l0a2900c<kj:188yg2cn3:1?7>50z&144<69:1C8k84H5g7?M063-;<57<?0:&26f<63`<>6=44i7d94?=h9lo1<75rb5ag>5<3290;w)<?1;322>N3n?1C8h:4H738 41>2;:;7)?=c;c8m33=831b:k4?::k2aa<722e:ih4?::a0a?=8391<7>t$322>4743A>m:6F;e59K24=#9>31>=>4$00`>4=n><0;66g9f;29?j7bm3:17pl;dd83>6<729q/>=?51018L1`13A>n86F91:&23<<5891/=?m51:k51?6=3`<m6=44o0gf>5<<uk>ho7>54;294~"5880:=;5G4g48L1c33-;<57<?0:J55>"6:j0j7d8::188m3`=831b=hj50;9l5`c=831vn9j<:187>5<7s-8;=7?>6:J7b3=O<l>0(<<l:`9j20<722c=j7>5;h3f`?6=3f;ni7>5;|`7`7<72=0;6=u+2139540<@=l=7E:j4:&26f<f3`<>6=44i7d94?=n9ln1<75`1dg94?=zj=n:6=4;:183!4793;::6F;f79K0`2<,88h6l5f6483>>o1n3:17d?jd;29?j7bm3:17pl;d983>0<729q/>=?51058L1`13A>n86F91:&23<<5891b:84?::k52?6=3`<m6=44i0gg>5<<g8on6=44}c6g3?6=<3:1<v*=008253=O<o<0D9k;;%31g?g<a??1<75f6g83>>o6mm0;66a>ed83>>{e<m<1<7:50;2x 76628;=7E:i6:J7a1=#9;i1m6g95;29?l0a2900e<kk:188k4cb2900qo:lb;290?6=8r.9<<4>179K0c0<@=o?7E8>;%34=?4782.:>n4n;h46>5<<a?l1<75f1df94?=h9lo1<75rb5;:>5<2290;w)<?1;32<>N3n?1C8h:4$00`>4=n><0;66g96;29?l0a2900e<ki:188k4cb2900qo:68;291?6=8r.9<<4>199K0c0<@=o?7)?=c;38m33=831b:;4?::k5b?6=3`;nj7>5;n3fa?6=3th?5:4?:483>5}#:9;1=<64H5d5?M2b<2.:>n4>;h46>5<<a?<1<75f6g83>>o6mo0;66a>ed83>>{e<0<1<7;50;2x 76628;37E:i6:J7a1=#9;i1=6g95;29?l012900e;h50;9j5``=831d=hk50;9~f1?2290>6=4?{%035?7602B?j;5G4d68 44d281b:84?::k52?6=3`<m6=44i0ge>5<<g8on6=44}c6:0?6==3:1<v*=00825==O<o<0D9k;;%31g?7<a??1<75f6783>>o1n3:17d?jf;29?j7bm3:17pl;9383>0<729q/>=?510:8L1`13A>n86*>2b82?l022900e;850;9j2c<722c:ik4?::m2a`<722wi84?50;794?6|,;::6<?7;I6e2>N3m=1/=?m51:k51?6=3`<=6=44i7d94?=n9ll1<75`1dg94?=zj=3;6=4::183!4793;:46F;f79K0`2<,88h6<5f6483>>o1>3:17d8i:188m4ca2900c<kj:188yg2?n3:197>50z&144<6911C8k84H5g7?!75k3;0e;;50;9j23<722c=j7>5;h3fb?6=3f;ni7>5;|`7<`<72<0;6=u+213954><@=l=7E:j4:&26f<63`<>6=44i7494?=n>o0;66g>eg83>>i6ml0;66sm49f94?3=83:p(?>>:03;?M2a>2B?i95+13a95>o1=3:17d89:188m3`=831b=hh50;9l5`c=831vn96l:186>5<7s-8;=7?>8:J7b3=O<l>0(<<l:09j20<722c=:7>5;h4e>5<<a8om6=44o0gf>5<<uk>3n7>55;294~"5880:=55G4g48L1c33-;9o7?4i7794?=n>?0;66g9f;29?l7bn3:17b?je;29?xd30h0;684?:1y'657=9820D9h9;I6f0>"6:j0:7d8::188m30=831b:k4?::k2ac<722e:ih4?::a0=?=83?1<7>t$322>47?3A>m:6F;e59'57e=92c=97>5;h45>5<<a?l1<75f1dd94?=h9lo1<75rb5:4>5<2290;w)<?1;32<>N3n?1C8h:4$00`>4=n><0;66g96;29?l0a2900e<ki:188k4cb2900qo:76;291?6=8r.9<<4>199K0c0<@=o?7)?=c;38m33=831b:;4?::k5b?6=3`;nj7>5;n3fa?6=3th?484?:483>5}#:9;1=<64H5d5?M2b<2.:>n4>;h46>5<<a?<1<75f6g83>>o6mo0;66a>ed83>>{e<1>1<7;50;2x 76628;37E:i6:J7a1=#9;i1=6g95;29?l012900e;h50;9j5``=831d=hk50;9~f1>4290>6=4?{%035?7602B?j;5G4d68 44d281b:84?::k52?6=3`<m6=44i0ge>5<<g8on6=44}c6;6?6==3:1<v*=00825==O<o<0D9k;;%31g?7<a??1<75f6783>>o1n3:17d?jf;29?j7bm3:17pl;8083>0<729q/>=?510:8L1`13A>n86*>2b82?l022900e;850;9j2c<722c:ik4?::m2a`<722wi85>50;794?6|,;::6<?7;I6e2>N3m=1/=?m51:k51?6=3`<=6=44i7d94?=n9ll1<75`1dg94?=zj==m6=4::183!4793;:46F;f79K0`2<,88h6<5f6483>>o1>3:17d8i:188m4ca2900c<kj:188yg20m3:197>50z&144<6911C8k84H5g7?!75k3;0e;;50;9j23<722c=j7>5;h3fb?6=3f;ni7>5;|`7=c<72<0;6=u+213954><@=l=7E:j4:&26f<63`<>6=44i7494?=n>o0;66g>eg83>>i6ml0;66sm48g94?3=83:p(?>>:03;?M2a>2B?i95+13a95>o1=3:17d89:188m3`=831b=hh50;9l5`c=831vn97k:186>5<7s-8;=7?>8:J7b3=O<l>0(<<l:09j20<722c=:7>5;h4e>5<<a8om6=44o0gf>5<<uk>2o7>55;294~"5880:=55G4g48L1c33-;9o7?4i7794?=n>?0;66g9f;29?l7bn3:17b?je;29?xd31k0;684?:1y'657=9820D9h9;I6f0>"6:j0:7d8::188m30=831b:k4?::k2ac<722e:ih4?::a0<g=83?1<7>t$322>47?3A>m:6F;e59'57e=92c=97>5;h45>5<<a?l1<75f1dd94?=h9lo1<75rb5;0>5<2290;w)<?1;32<>N3n?1C8h:4$00`>4=n><0;66g96;29?l0a2900e<ki:188k4cb2900qo:78;291?6=8r.9<<4>199K0c0<@=o?7)?=c;38m33=831b:;4?::k5b?6=3`;nj7>5;n3fa?6=3th?;i4?:483>5}#:9;1=<64H5d5?M2b<2.:>n4>;h46>5<<a?<1<75f6g83>>o6mo0;66a>ed83>>{e<>i1<7;50;2x 76628;37E:i6:J7a1=#9;i1=6g95;29?l012900e;h50;9j5``=831d=hk50;9~f6?c290?6=4?{%035?70i2B?j;5G4d68m3>=831b;?4?::k2b=<722e:i;4?::a7<e=83>1<7>t$322>41f3A>m:6F;e59j2=<722c<>7>5;h3e<?6=3f;n:7>5;|`0=g<72=0;6=u+213952g<@=l=7E:j4:k5<?6=3`=96=44i0d;>5<<g8o=6=44}c1:e?6=<3:1<v*=00823d=O<o<0D9k;;h4;>5<<a>81<75f1g:94?=h9l<1<75rb2;f>5<3290;w)<?1;34e>N3n?1C8h:4i7:94?=n?;0;66g>f983>>i6m?0;66sm3c294?2=83:p(?>>:05b?M2a>2B?i95f6983>>o0:3:17d?i8;29?j7b>3:17pl<ag83>1<729q/>=?516c8L1`13A>n86g98;29?l152900e<h7:188k4c12900qo=ne;290?6=8r.9<<4>7`9K0c0<@=o?7d87:188m24=831b=k650;9l5`0=831vn>ok:187>5<7s-8;=7?8a:J7b3=O<l>0e;650;9j37<722c:j54?::m2a3<722wi?o?50;694?6|,;::6<9n;I6e2>N3m=1b:54?::k46?6=3`;m47>5;n3f2?6=3th8?44?:583>5}#:9;1=:o4H5d5?M2b<2c=47>5;h51>5<<a8l36=44o0g5>5<<uk9847>54;294~"5880:;l5G4g48L1c33`<36=44i6094?=n9o21<75`1d494?=zj:9<6=4;:183!4793;<m6F;f79K0`2<a?21<75f7383>>o6n10;66a>e783>>{e;:<1<7:50;2x 76628=j7E:i6:J7a1=n>10;66g82;29?l7a03:17b?j6;29?xd4;h0;694?:1y'657=9>k0D9h9;I6f0>o103:17d9=:188m4`?2900c<k9:188yg53k3:187>50z&144<6?h1C8k84H5g7?l0?2900e:<50;9j5c>=831d=h850;9~f62e290?6=4?{%035?70i2B?j;5G4d68m3>=831b;?4?::k2b=<722e:i;4?::a71g=83>1<7>t$322>41f3A>m:6F;e59j2=<722c<>7>5;h3e<?6=3f;n:7>5;|`00<<72=0;6=u+213952g<@=l=7E:j4:k5<?6=3`=96=44i0d;>5<<g8o=6=44}c17`?6=<3:1<v*=00823d=O<o<0D9k;;h4;>5<<a>81<75f1g:94?=h9l<1<75rb3d:>5<4290;w)<?1;6e1>N3n?1C8h:4i7:94?=n9>;1<75`1d494?=zj;l;6=4<:183!4793;<86F;f79K0`2<,88h6><4i03f>5<<a8;m6=44o0g5>5<<uk8m47>53;294~"5880?j85G4g48L1c33`<36=44i052>5<<g8o=6=44}c0f3?6=<3:1<v*=00823d=O<o<0D9k;;h4;>5<<a>81<75f1g:94?=h9l<1<75rb3ge>5<4290;w)<?1;340>N3n?1C8h:4$00`>64<a8;n6=44i03e>5<<g8o=6=44}c0e3?6=;3:1<v*=0087b0=O<o<0D9k;;h4;>5<<a8=:6=44o0g5>5<<uk8n:7>54;294~"5880:;l5G4g48L1c33`<36=44i6094?=n9o21<75`1d494?=zj;on6=4<:183!4793;<86F;f79K0`2<,88h6><4i03f>5<<a8;m6=44o0g5>5<<uk8m:7>53;294~"5880?j85G4g48L1c33`<36=44i052>5<<g8o=6=44}c0f1?6=<3:1<v*=00823d=O<o<0D9k;;h4;>5<<a>81<75f1g:94?=h9l<1<75rb3gg>5<4290;w)<?1;340>N3n?1C8h:4$00`>64<a8;n6=44i03e>5<<g8o=6=44}c0e1?6=;3:1<v*=0087b0=O<o<0D9k;;h4;>5<<a8=:6=44o0g5>5<<uk8n87>54;294~"5880:;l5G4g48L1c33`<36=44i6094?=n9o21<75`1d494?=zj;oh6=4<:183!4793;<86F;f79K0`2<,88h6><4i03f>5<<a8;m6=44o0g5>5<<uk8m87>53;294~"5880?j85G4g48L1c33`<36=44i052>5<<g8o=6=44}c0f7?6=<3:1<v*=00823d=O<o<0D9k;;h4;>5<<a>81<75f1g:94?=h9l<1<75rb3ga>5<4290;w)<?1;340>N3n?1C8h:4$00`>64<a8;n6=44i03e>5<<g8o=6=44}c0e7?6=;3:1<v*=0087b0=O<o<0D9k;;h4;>5<<a8=:6=44o0g5>5<<uk8n>7>54;294~"5880:;l5G4g48L1c33`<36=44i6094?=n9o21<75`1d494?=zj;oj6=4<:183!4793;<86F;f79K0`2<,88h6><4i03f>5<<a8;m6=44o0g5>5<<uk8m>7>53;294~"5880?j85G4g48L1c33`<36=44i052>5<<g8o=6=44}c0f5?6=<3:1<v*=00823d=O<o<0D9k;;h4;>5<<a>81<75f1g:94?=h9l<1<75rb3g:>5<4290;w)<?1;340>N3n?1C8h:4$00`>64<a8;n6=44i03e>5<<g8o=6=44}c0e5?6=;3:1<v*=0087b0=O<o<0D9k;;h4;>5<<a8=:6=44o0g5>5<<uk8n<7>54;294~"5880:;l5G4g48L1c33`<36=44i6094?=n9o21<75`1d494?=zj;o36=4<:183!4793;<86F;f79K0`2<,88h6><4i03f>5<<a8;m6=44o0g5>5<<uk9987>54;294~"5880:=95G4g48L1c33-;9o7?4i7794?=n>k0;66g9f;29?j7bm3:17pl<2283>1<729q/>=?51068L1`13A>n86*>2b82?l022900e;l50;9j2c<722e:ih4?::a774=83>1<7>t$322>4733A>m:6F;e59'57e=92c=97>5;h4a>5<<a?l1<75`1dg94?=zj:8:6=4;:183!4793;:86F;f79K0`2<,88h6<5f6483>>o1j3:17d8i:188k4cb2900qo==0;290?6=8r.9<<4>159K0c0<@=o?7)?=c;38m33=831b:o4?::k5b?6=3f;ni7>5;|`05c<72=0;6=u+2139542<@=l=7E:j4:&26f<63`<>6=44i7`94?=n>o0;66a>ed83>>{e;8o1<7:50;2x 76628;?7E:i6:J7a1=#9;i1=6g95;29?l0e2900e;h50;9l5`c=831vn>?k:187>5<7s-8;=7?>4:J7b3=O<l>0(<<l:09j20<722c=n7>5;h4e>5<<g8on6=44}c12g?6=<3:1<v*=008251=O<o<0D9k;;%31g?7<a??1<75f6c83>>o1n3:17b?je;29?xd49k0;694?:1y'657=98>0D9h9;I6f0>"6:j0:7d8::188m3d=831b:k4?::m2a`<722wi?4:50;794?6|,;::6<?:;I6e2>N3m=1/=?m51:k51?6=3`<=6=44i7`94?=n>o0;66a>ed83>>{e;091<7;50;2x 76628;>7E:i6:J7a1=#9;i1=6g95;29?l012900e;l50;9j2c<722e:ih4?::a7<4=83?1<7>t$322>4723A>m:6F;e59'57e=92c=97>5;h45>5<<a?h1<75f6g83>>i6ml0;66sm38394?3=83:p(?>>:036?M2a>2B?i95+13a95>o1=3:17d89:188m3d=831b:k4?::m2a`<722wi?4>50;794?6|,;::6<?:;I6e2>N3m=1/=?m51:k51?6=3`<=6=44i7`94?=n>o0;66a>ed83>>{e;1l1<7;50;2x 76628;>7E:i6:J7a1=#9;i1=6g95;29?l012900e;l50;9j2c<722e:ih4?::a7=c=83?1<7>t$322>4723A>m:6F;e59'57e=92c=97>5;h45>5<<a?h1<75f6g83>>i6ml0;66sm39f94?3=83:p(?>>:036?M2a>2B?i95+13a95>o1=3:17d89:188m3d=831b:k4?::m2a`<722wi?5m50;794?6|,;::6<?:;I6e2>N3m=1/=?m51:k51?6=3`<=6=44i7`94?=n>o0;66a>ed83>>{e;181<7;50;2x 76628;>7E:i6:J7a1=#9;i1=6g95;29?l012900e;l50;9j2c<722e:ih4?::a7=7=83?1<7>t$322>4723A>m:6F;e59'57e=92c=97>5;h45>5<<a?h1<75f6g83>>i6ml0;66sm39294?3=83:p(?>>:036?M2a>2B?i95+13a95>o1=3:17d89:188m3d=831b:k4?::m2a`<722wi?:h50;794?6|,;::6<?:;I6e2>N3m=1/=?m51:k51?6=3`<=6=44i7`94?=n>o0;66a>ed83>>{e;>o1<7;50;2x 76628;>7E:i6:J7a1=#9;i1=6g95;29?l012900e;l50;9j2c<722e:ih4?::a72b=83?1<7>t$322>4723A>m:6F;e59'57e=92c=97>5;h45>5<<a?h1<75f6g83>>i6ml0;66sm36a94?3=83:p(?>>:036?M2a>2B?i95+13a95>o1=3:17d89:188m3d=831b:k4?::m2a`<722wi?:l50;794?6|,;::6<?:;I6e2>N3m=1/=?m51:k51?6=3`<=6=44i7`94?=n>o0;66a>ed83>>{e;>k1<7;50;2x 76628;<7E:i6:J7a1=#9;i1m6g95;29?l012900e;h50;9j5`b=831d=hk50;9~f64e290?6=4?{%035?76<2B?j;5G4d68 44d281b:84?::k5f?6=3`<m6=44o0gf>5<<uk9947>54;294~"5880:=95G4g48L1c33-;9o7?4i7794?=n>k0;66g9f;29?j7bm3:17pl<3083>1<729q/>=?51068L1`13A>n86*>2b82?l022900e;l50;9j2c<722e:ih4?::a77`=83>1<7>t$322>4713A>m:6F;e59'57e=i2c=97>5;h4e>5<<a8oo6=44o0gf>5<<uk99i7>54;294~"5880:=;5G4g48L1c33-;9o7o4i7794?=n>o0;66g>ee83>>i6ml0;66sm3dg94?5=83:p(?>>:5d6?M2a>2B?i95f6983>>o6?80;66a>e783>>{e;l?1<7=50;2x 76628=?7E:i6:J7a1=#9;i1??5f10g94?=n98l1<75`1d494?=zj:oo6=4<:183!4793>m96F;f79K0`2<a?21<75f16394?=h9l<1<75rb2f`>5<3290;w)<?1;34e>N3n?1C8h:4i7:94?=n?;0;66g>f983>>i6m?0;66sm3d694?5=83:p(?>>:057?M2a>2B?i95+13a977=n98o1<75f10d94?=h9l<1<75rb2g`>5<4290;w)<?1;6e1>N3n?1C8h:4i7:94?=n9>;1<75`1d494?=zj:ni6=4;:183!4793;<m6F;f79K0`2<a?21<75f7383>>o6n10;66a>e783>>{e;l91<7=50;2x 76628=?7E:i6:J7a1=#9;i1??5f10g94?=n98l1<75`1d494?=zj:oi6=4<:183!4793>m96F;f79K0`2<a?21<75f16394?=h9l<1<75rb2fb>5<3290;w)<?1;34e>N3n?1C8h:4i7:94?=n?;0;66g>f983>>i6m?0;66sm3d094?5=83:p(?>>:057?M2a>2B?i95+13a977=n98o1<75f10d94?=h9l<1<75rb2gb>5<4290;w)<?1;6e1>N3n?1C8h:4i7:94?=n9>;1<75`1d494?=zj:n26=4;:183!4793;<m6F;f79K0`2<a?21<75f7383>>o6n10;66a>e783>>{e;l;1<7=50;2x 76628=?7E:i6:J7a1=#9;i1??5f10g94?=n98l1<75`1d494?=zj:o26=4<:183!4793>m96F;f79K0`2<a?21<75f16394?=h9l<1<75rb2f;>5<3290;w)<?1;34e>N3n?1C8h:4i7:94?=n?;0;66g>f983>>i6m?0;66sm3d294?5=83:p(?>>:057?M2a>2B?i95+13a977=n98o1<75f10d94?=h9l<1<75rb2g;>5<4290;w)<?1;6e1>N3n?1C8h:4i7:94?=n9>;1<75`1d494?=zj:n<6=4;:183!4793;<m6F;f79K0`2<a?21<75f7383>>o6n10;66a>e783>>{e;ml1<7=50;2x 76628=?7E:i6:J7a1=#9;i1??5f10g94?=n98l1<75`1d494?=zj:o<6=4<:183!4793>m96F;f79K0`2<a?21<75f16394?=h9l<1<75rb2f5>5<3290;w)<?1;34e>N3n?1C8h:4i7:94?=n?;0;66g>f983>>i6m?0;66sm3eg94?5=83:p(?>>:057?M2a>2B?i95+13a977=n98o1<75f10d94?=h9l<1<75rb2g5>5<4290;w)<?1;6e1>N3n?1C8h:4i7:94?=n9>;1<75`1d494?=zj:n>6=4;:183!4793;<m6F;f79K0`2<a?21<75f7383>>o6n10;66a>e783>>{e;mn1<7=50;2x 76628=?7E:i6:J7a1=#9;i1??5f10g94?=n98l1<75`1d494?=zj=:h6=4;:183!4793;:86F;f79K0`2<,88h6<5f6483>>o1j3:17d8i:188k4cb2900qo:?b;290?6=8r.9<<4>159K0c0<@=o?7)?=c;38m33=831b:o4?::k5b?6=3f;ni7>5;|`74d<72=0;6=u+2139542<@=l=7E:j4:&26f<63`<>6=44i7`94?=n>o0;66a>ed83>>{e<931<7:50;2x 76628;?7E:i6:J7a1=#9;i1=6g95;29?l0e2900e;h50;9l5`c=831vn9>7:187>5<7s-8;=7?>4:J7b3=O<l>0(<<l:09j20<722c=n7>5;h4e>5<<g8on6=44}c633?6=<3:1<v*=008251=O<o<0D9k;;%31g?7<a??1<75f6c83>>o1n3:17b?je;29?xd38?0;694?:1y'657=98>0D9h9;I6f0>"6:j0:7d8::188m3d=831b:k4?::m2a`<722wi8=;50;694?6|,;::6<?;;I6e2>N3m=1/=?m51:k51?6=3`<i6=44i7d94?=h9lo1<75rb527>5<3290;w)<?1;320>N3n?1C8h:4$00`>4=n><0;66g9b;29?l0a2900c<kj:188yg27;3:187>50z&144<69=1C8k84H5g7?!75k3;0e;;50;9j2g<722c=j7>5;n3fa?6=3th?9:4?:483>5}#:9;1=<;4H5d5?M2b<2.:>n4>;h46>5<<a?<1<75f6c83>>o1n3:17b?je;29?xd3=?0;684?:1y'657=98?0D9h9;I6f0>"6:j0:7d8::188m30=831b:o4?::k5b?6=3f;ni7>5;|`710<72<0;6=u+2139543<@=l=7E:j4:&26f<63`<>6=44i7494?=n>k0;66g9f;29?j7bm3:17pl;5583>0<729q/>=?51078L1`13A>n86*>2b82?l022900e;850;9j2g<722c=j7>5;n3fa?6=3th?9>4?:483>5}#:9;1=<;4H5d5?M2b<2.:>n4>;h46>5<<a?<1<75f6c83>>o1n3:17b?je;29?xd3=;0;684?:1y'657=98?0D9h9;I6f0>"6:j0:7d8::188m30=831b:o4?::k5b?6=3f;ni7>5;|`714<72<0;6=u+2139543<@=l=7E:j4:&26f<63`<>6=44i7494?=n>k0;66g9f;29?j7bm3:17pl;5183>0<729q/>=?51078L1`13A>n86*>2b82?l022900e;850;9j2g<722c=j7>5;n3fa?6=3th?8k4?:483>5}#:9;1=<;4H5d5?M2b<2.:>n4>;h46>5<<a?<1<75f6c83>>o1n3:17b?je;29?xd3<<0;684?:1y'657=98?0D9h9;I6f0>"6:j0:7d8::188m30=831b:o4?::k5b?6=3f;ni7>5;|`701<72<0;6=u+2139543<@=l=7E:j4:&26f<63`<>6=44i7494?=n>k0;66g9f;29?j7bm3:17pl;4283>0<729q/>=?51078L1`13A>n86*>2b82?l022900e;850;9j2g<722c=j7>5;n3fa?6=3th?8?4?:483>5}#:9;1=<;4H5d5?M2b<2.:>n4>;h46>5<<a?<1<75f6c83>>o1n3:17b?je;29?xd3<80;684?:1y'657=98?0D9h9;I6f0>"6:j0:7d8::188m30=831b:o4?::k5b?6=3f;ni7>5;|`705<72<0;6=u+2139543<@=l=7E:j4:&26f<63`<>6=44i7494?=n>k0;66g9f;29?j7bm3:17pl;3g83>0<729q/>=?51078L1`13A>n86*>2b82?l022900e;850;9j2g<722c=j7>5;n3fa?6=3th??h4?:483>5}#:9;1=<;4H5d5?M2b<2.:>n4>;h46>5<<a?<1<75f6c83>>o1n3:17b?je;29?xd3;m0;684?:1y'657=98=0D9h9;I6f0>"6:j0j7d8::188m30=831b:k4?::k2aa<722e:ih4?::a065=83?1<7>t$322>4723A>m:6F;e59'57e=92c=97>5;h45>5<<a?h1<75f6g83>>i6ml0;66sm42094?3=83:p(?>>:036?M2a>2B?i95+13a95>o1=3:17d89:188m3d=831b:k4?::m2a`<722wi8>?50;794?6|,;::6<?:;I6e2>N3m=1/=?m51:k51?6=3`<=6=44i7`94?=n>o0;66a>ed83>>{e<::1<7;50;2x 76628;>7E:i6:J7a1=#9;i1=6g95;29?l012900e;l50;9j2c<722e:ih4?::a07`=83?1<7>t$322>4723A>m:6F;e59'57e=92c=97>5;h45>5<<a?h1<75f6g83>>i6ml0;66sm43g94?3=83:p(?>>:036?M2a>2B?i95+13a95>o1=3:17d89:188m3d=831b:k4?::m2a`<722wi8?j50;794?6|,;::6<?:;I6e2>N3m=1/=?m51:k51?6=3`<=6=44i7`94?=n>o0;66a>ed83>>{e<;i1<7;50;2x 76628;<7E:i6:J7a1=#9;i1m6g95;29?l012900e;h50;9j5`b=831d=hk50;9~f14e290>6=4?{%035?76=2B?j;5G4d68 44d281b:84?::k52?6=3`<i6=44i7d94?=h9lo1<75rb3:`>5<3290;w)<?1;320>N3n?1C8h:4$00`>4=n><0;66g9b;29?l0a2900c<kj:188yg4?j3:187>50z&144<69=1C8k84H5g7?!75k3;0e;;50;9j2g<722c=j7>5;n3fa?6=3th94l4?:583>5}#:9;1=<:4H5d5?M2b<2.:>n4>;h46>5<<a?h1<75f6g83>>i6ml0;66sm29;94?2=83:p(?>>:037?M2a>2B?i95+13a95>o1=3:17d8m:188m3`=831d=hk50;9~f7>?290?6=4?{%035?76<2B?j;5G4d68 44d281b:84?::k5f?6=3`<m6=44o0gf>5<<uk83;7>54;294~"5880:=95G4g48L1c33-;9o7?4i7794?=n>k0;66g9f;29?j7bm3:17pl=8783>1<729q/>=?51068L1`13A>n86*>2b82?l022900e;l50;9j2c<722e:ih4?::a6=3=83>1<7>t$322>4733A>m:6F;e59'57e=92c=97>5;h4a>5<<a?l1<75`1dg94?=zj;2?6=4;:183!4793;:86F;f79K0`2<,88h6<5f6483>>o1j3:17d8i:188k4cb2900qo<<3;290?6=8r.9<<4>159K0c0<@=o?7)?=c;38m33=831b:o4?::k5b?6=3f;ni7>5;|`177<72=0;6=u+2139542<@=l=7E:j4:&26f<63`<>6=44i7`94?=n>o0;66a>ed83>>{e::;1<7:50;2x 76628;?7E:i6:J7a1=#9;i1=6g95;29?l0e2900e;h50;9l5`c=831vn?=?:187>5<7s-8;=7?>4:J7b3=O<l>0(<<l:09j20<722c=n7>5;h4e>5<<g8on6=44}c01b?6=<3:1<v*=008251=O<o<0D9k;;%31g?7<a??1<75f6c83>>o1n3:17b?je;29?xd5:l0;694?:1y'657=98>0D9h9;I6f0>"6:j0:7d8::188m3d=831b:k4?::m2a`<722wi>?j50;694?6|,;::6<?;;I6e2>N3m=1/=?m51:k51?6=3`<i6=44i7d94?=h9lo1<75rb30`>5<3290;w)<?1;320>N3n?1C8h:4$00`>4=n><0;66g9b;29?l0a2900c<kj:188yg45j3:187>50z&144<69=1C8k84H5g7?!75k3;0e;;50;9j2g<722c=j7>5;n3fa?6=3th9h>4?:583>5}#:9;1=<:4H5d5?M2b<2.:>n4>;h46>5<<a?h1<75f6g83>>i6ml0;66sm2e094?2=83:p(?>>:037?M2a>2B?i95+13a95>o1=3:17d8m:188m3`=831d=hk50;9~f7b6290?6=4?{%035?76<2B?j;5G4d68 44d281b:84?::k5f?6=3`<m6=44o0gf>5<<uk8o<7>54;294~"5880:=95G4g48L1c33-;9o7?4i7794?=n>k0;66g9f;29?j7bm3:17pl=cg83>1<729q/>=?51068L1`13A>n86*>2b82?l022900e;l50;9j2c<722e:ih4?::a6fc=83>1<7>t$322>4733A>m:6F;e59'57e=92c=97>5;h4a>5<<a?l1<75`1dg94?=zj;io6=4;:183!4793;:86F;f79K0`2<,88h6<5f6483>>o1j3:17d8i:188k4cb2900qo<lc;290?6=8r.9<<4>159K0c0<@=o?7)?=c;38m33=831b:o4?::k5b?6=3f;ni7>5;|`1gg<72=0;6=u+2139542<@=l=7E:j4:&26f<63`<>6=44i7`94?=n>o0;66a>ed83>>{e:>k1<7:50;2x 76628;?7E:i6:J7a1=#9;i1=6g95;29?l0e2900e;h50;9l5`c=831vn?96:187>5<7s-8;=7?>4:J7b3=O<l>0(<<l:09j20<722c=n7>5;h4e>5<<g8on6=44}c04<?6=<3:1<v*=008251=O<o<0D9k;;%31g?7<a??1<75f6c83>>o1n3:17b?je;29?xd5?>0;694?:1y'657=98>0D9h9;I6f0>"6:j0:7d8::188m3d=831b:k4?::m2a`<722wi>:850;694?6|,;::6<?;;I6e2>N3m=1/=?m51:k51?6=3`<i6=44i7d94?=h9lo1<75rb356>5<3290;w)<?1;320>N3n?1C8h:4$00`>4=n><0;66g9b;29?l0a2900c<kj:188yg40<3:187>50z&144<69=1C8k84H5g7?!75k3;0e;;50;9j2g<722c=j7>5;n3fa?6=3th9;>4?:583>5}#:9;1=<:4H5d5?M2b<2.:>n4>;h46>5<<a?h1<75f6g83>>i6ml0;66sm26094?2=83:p(?>>:037?M2a>2B?i95+13a95>o1=3:17d8m:188m3`=831d=hk50;9~f7d7290?6=4?{%035?76<2B?j;5G4d68L37<,8=26?>?;%31g?7<a??1<75f6c83>>o1n3:17b?je;29?xd5io0;694?:1y'657=98>0D9h9;I6f0>N192.:;44=019'57e=92c=97>5;h4a>5<<a?l1<75`1dg94?=zj;kn6=4;:183!4793;:86F;f79K0`2<@?;0(<96:323?!75k3;0e;;50;9j2g<722c=j7>5;n3fa?6=3th9mi4?:583>5}#:9;1=<:4H5d5?M2b<2B==6*>788145=#9;i1=6g95;29?l0e2900e;h50;9l5`c=831vn?ol:187>5<7s-8;=7?>4:J7b3=O<l>0D;?4$05:>7673-;9o7?4i7794?=n>k0;66g9f;29?j7bm3:17pl=ac83>1<729q/>=?51068L1`13A>n86F91:&23<<5891/=?m51:k51?6=3`<i6=44i7d94?=h9lo1<75rb3cb>5<3290;w)<?1;320>N3n?1C8h:4H738 41>2;:;7)?=c;38m33=831b:o4?::k5b?6=3f;ni7>5;|`1e<<72=0;6=u+2139542<@=l=7E:j4:J55>"6?009<=5+13a95>o1=3:17d8m:188m3`=831d=hk50;9~f7g?290?6=4?{%035?76<2B?j;5G4d68L37<,8=26?>?;%31g?7<a??1<75f6c83>>o1n3:17b?je;29?xd5=>0;694?:1y'657=98>0D9h9;I6f0>N192.:;44=019'57e=92c=97>5;h4a>5<<a?l1<75`1dg94?=zj;?=6=4;:183!4793;:86F;f79K0`2<@?;0(<96:323?!75k3;0e;;50;9j2g<722c=j7>5;n3fa?6=3th9984?:583>5}#:9;1=<:4H5d5?M2b<2B==6*>788145=#9;i1=6g95;29?l0e2900e;h50;9l5`c=831vn?;;:187>5<7s-8;=7?>4:J7b3=O<l>0D;?4$05:>7673-;9o7?4i7794?=n>k0;66g9f;29?j7bm3:17pl=5283>1<729q/>=?51068L1`13A>n86F91:&23<<5891/=?m51:k51?6=3`<i6=44i7d94?=h9lo1<75rb371>5<3290;w)<?1;320>N3n?1C8h:4H738 41>2;:;7)?=c;38m33=831b:o4?::k5b?6=3f;ni7>5;|`114<72=0;6=u+2139542<@=l=7E:j4:J55>"6?009<=5+13a95>o1=3:17d8m:188m3`=831d=hk50;9~f737290?6=4?{%035?76<2B?j;5G4d68L37<,8=26?>?;%31g?7<a??1<75f6c83>>o1n3:17b?je;29?xd5<o0;694?:1y'657=98>0D9h9;I6f0>N192.:;44=019'57e=92c=97>5;h4a>5<<a?l1<75`1dg94?=zj;>>6=4;:183!4793;:86F;f79K0`2<,88h6<5f6483>>o1j3:17d8i:188k4cb2900qo<;4;290?6=8r.9<<4>159K0c0<@=o?7)?=c;38m33=831b:o4?::k5b?6=3f;ni7>5;|`106<72=0;6=u+2139542<@=l=7E:j4:&26f<63`<>6=44i7`94?=n>o0;66a>ed83>>{e:=81<7:50;2x 76628;?7E:i6:J7a1=#9;i1=6g95;29?l0e2900e;h50;9l5`c=831vn?:>:187>5<7s-8;=7?>4:J7b3=O<l>0(<<l:09j20<722c=n7>5;h4e>5<<g8on6=44}c074?6=<3:1<v*=008251=O<o<0D9k;;%31g?7<a??1<75f6c83>>o1n3:17b?je;29?xd5;o0;694?:1y'657=98>0D9h9;I6f0>"6:j0:7d8::188m3d=831b:k4?::m2a`<722wi>>k50;694?6|,;::6<?;;I6e2>N3m=1/=?m51:k51?6=3`<i6=44i7d94?=h9lo1<75rb31g>5<3290;w)<?1;320>N3n?1C8h:4$00`>4=n><0;66g9b;29?l0a2900c<kj:188yg4>m3:187>50z&144<69=1C8k84H5g7?!75k3;0e;;50;9j2g<722c=j7>5;n3fa?6=3th95i4?:583>5}#:9;1=<:4H5d5?M2b<2.:>n4>;h46>5<<a?h1<75f6g83>>i6ml0;66sm28a94?2=83:p(?>>:037?M2a>2B?i95+13a95>o1=3:17d8m:188m3`=831d=hk50;9~f7?e290?6=4?{%035?76<2B?j;5G4d68 44d281b:84?::k5f?6=3`<m6=44o0gf>5<<uk82m7>54;294~"5880:=95G4g48L1c33-;9o7?4i7794?=n>k0;66g9f;29?j7bm3:17pl=9883>1<729q/>=?51068L1`13A>n86*>2b82?l022900e;l50;9j2c<722e:ih4?::a6<>=83>1<7>t$322>4733A>m:6F;e59'57e=92c=97>5;h4a>5<<a?l1<75`1dg94?=zj;3<6=4;:183!4793;:86F;f79K0`2<,88h6<5f6483>>o1j3:17d8i:188k4cb2900qo<66;290?6=8r.9<<4>159K0c0<@=o?7)?=c;38m33=831b:o4?::k5b?6=3f;ni7>5;|`74a<72:0;6=u+2139522<@=l=7E:j4:&26f<682.:in4:049j54c=831b=<h50;9l5`0=831vn>7::185>5<7s-8;=7?87:J7b3=O<l>0(<<l:0d8 4cd2<:>7d?>e;29?l76n3:17d?=0;29?l7593:17d?=2;29?j7b>3:17pl;db83>6<729q/>=?51668L1`13A>n86*>2b824>o69l0;66g>1g83>>i6m?0;66sm4d094?5=83:p(?>>:057?M2a>2B?i95+13a955=#9li19=84i03f>5<<a8;m6=44o0g5>5<<uk9j:7>55;294~"5880:;;5G4g48L1c33-;9o7=<;h32a?6=3`;:j7>5;h314?6=3`;9=7>5;n3f2?6=3th8m94?:483>5}#:9;1=:84H5d5?M2b<2.:>n4<3:k25`<722c:=k4?::k265<722c:><4?::m2a3<722wi?l<50;794?6|,;::6<99;I6e2>N3m=1/=?m5329j54c=831b=<h50;9j576=831b=??50;9l5`0=831vn>o?:186>5<7s-8;=7?86:J7b3=O<l>0(<<l:218m47b2900e<?i:188m4472900e<<>:188k4c12900qo=n8;297?6=8r.9<<4>759K0c0<@=o?7)?=c;11?l76m3:17d?>f;29?j7b>3:17pl<b883>0<729q/>=?51648L1`13A>n86*>2b807>o69l0;66g>1g83>>o6:90;66g>2083>>i6m?0;66sm3c594?3=83:p(?>>:055?M2a>2B?i95+13a976=n98o1<75f10d94?=n9;:1<75f13394?=h9l<1<75rb2`6>5<2290;w)<?1;342>N3n?1C8h:4$00`>65<a8;n6=44i03e>5<<a88;6=44i002>5<<g8o=6=44}c1a7?6==3:1<v*=008233=O<o<0D9k;;%31g?543`;:i7>5;h32b?6=3`;9<7>5;h315?6=3f;n:7>5;|`0fg<72:0;6=u+2139522<@=l=7E:j4:&26f<4:2c:=h4?::k25c<722e:i;4?::a714=83?1<7>t$322>4113A>m:6F;e59'57e=;:1b=<k50;9j54`=831b=?>50;9j577=831d=h850;9~f627290>6=4?{%035?70>2B?j;5G4d68 44d2:90e<?j:188m47a2900e<<?:188m4462900c<k9:188yg54m3:197>50z&144<6??1C8k84H5g7?!75k3987d?>e;29?l76n3:17d?=0;29?l7593:17b?j6;29?xd4;j0;684?:1y'657=9><0D9h9;I6f0>"6:j08?6g>1d83>>o69o0;66g>2183>>o6:80;66a>e783>>{e;=>1<7=50;2x 76628=?7E:i6:J7a1=#9;i1??5f10g94?=n98l1<75`1d494?=zj:?>6=4::183!4793;<:6F;f79K0`2<,88h6>=4i03f>5<<a8;m6=44i003>5<<a88:6=44o0g5>5<<uk9>?7>55;294~"5880:;;5G4g48L1c33-;9o7=<;h32a?6=3`;:j7>5;h314?6=3`;9=7>5;n3f2?6=3th89<4?:483>5}#:9;1=:84H5d5?M2b<2.:>n4<0:k25`<722c:=k4?::k265<722c:><4?::m2a3<722wi?9h50;794?6|,;::6<99;I6e2>N3m=1/=?m52g9j54c=831b=<h50;9j576=831b=??50;9l5`0=831vn>;8:180>5<7s-8;=7?84:J7b3=O<l>0(<<l:208m47b2900e<?i:188k4c12900qo<if;290?6=8r.9<<4>749K0c0<@=o?7)?=c;0:?l76m3:17d?>f;29?l7583:17b?j6;29?xd48?0;6:4?:1y'657=9>20D9h9;I6f0>"6:j09i6g>1d83>>o69o0;66g>2183>>o6:80;66g>2383>>o6::0;66a>e783>>{e:mi1<7:50;2x 76628=>7E:i6:J7a1=#9;i1?h5+1da9152<a8;n6=44i03e>5<<a88;6=44o0g5>5<<uk8oi7>55;294~"5880:;;5G4g48L1c33-;9o784$0g`>1`b3`;:i7>5;h32b?6=3`;9<7>5;h315?6=3f;n:7>5;|`1`c<72?0;6=u+2139521<@=l=7E:j4:&26f<03-;no7:ie:k25`<722c:=k4?::k265<722c:><4?::k267<722e:i;4?::a6ab=83>1<7>t$322>4123A>m:6F;e59'57e==2.:in4:059j54c=831b=<h50;9j576=831d=h850;9~f60c290?6=4?{%035?70=2B?j;5G4d68 44d2;30(<kl:435?l76m3:17d?>f;29?l7583:17b?j6;29?xd4?>0;6:4?:1y'657=9>20D9h9;I6f0>"6:j0?<6g>1d83>>o69o0;66g>2183>>o6:80;66g>2383>>o6::0;66a>e783>>{e;>?1<7850;2x 76628=<7E:i6:J7a1=#9;i1?k5+1da9157<a8;n6=44i03e>5<<a88;6=44i002>5<<a8896=44o0g5>5<<uk9>i7>53;294~"5880:;95G4g48L1c33-;9o7<?;h32a?6=3`;:j7>5;n3f2?6=3th89k4?:583>5}#:9;1=:;4H5d5?M2b<2.:>n4=4:&2af<29?1b=<k50;9j54`=831b=?>50;9l5`0=831vn><8:187>5<7s-8;=7?85:J7b3=O<l>0(<<l:708 4cd2=lm7d?>e;29?l76n3:17d?=0;29?j7b>3:17pl<2e83>1<729q/>=?51678L1`13A>n86*>2b86b>"6mj0?jk5f10g94?=n98l1<75f13294?=h9l<1<75rb205>5<2290;w)<?1;342>N3n?1C8h:4$00`>67<,8oh68?8;h32a?6=3`;:j7>5;h314?6=3`;9=7>5;n3f2?6=3th8>l4?:483>5}#:9;1=:84H5d5?M2b<2.:>n46;%3fg?36?2c:=h4?::k25c<722c:>=4?::k264<722e:i;4?::a773=83?1<7>t$322>4113A>m:6F;e59'57e=9l1/=hm55018m47b2900e<?i:188m4472900e<<>:188k4c12900qo=k4;293?6=8r.9<<4>799K0c0<@=o?7)?=c;63?l76m3:17d?>f;29?l7583:17d?=1;29?l75:3:17d?=3;29?j7b>3:17pl<c283>2<729q/>=?516:8L1`13A>n86*>2b87?l76m3:17d?>f;29?l7583:17d?=1;29?l75:3:17d?=3;29?j7b>3:17pl<ce83>1<729q/>=?51678L1`13A>n86*>2b810>"6mj0>=95f10g94?=n98l1<75f13294?=h9l<1<75rb2af>5<3290;w)<?1;341>N3n?1C8h:4$00`>7?<a8;n6=44i03e>5<<a88;6=44o0g5>5<<uk9ho7>53;294~"5880:;95G4g48L1c33-;9o7<?;h32a?6=3`;:j7>5;n3f2?6=3th?=h4?:583>5}#:9;1=:;4H5d5?M2b<2.:>n4=9:&2af<29<1b=<k50;9j54`=831b=?>50;9l5`0=831vn9<7:184>5<7s-8;=7?88:J7b3=O<l>0(<<l:528m47b2900e<?i:188m4472900e<<>:188m4452900e<<<:188k4c12900qo:=6;292?6=8r.9<<4>769K0c0<@=o?7)?=c;1e?!7bk3?;<6g>1d83>>o69o0;66g>2183>>o6:80;66g>2383>>i6m?0;66sm40294?2=83:p(?>>:056?M2a>2B?i95+13a961=#9li19<;4i03f>5<<a8;m6=44i003>5<<g8o=6=44}c63b?6=;3:1<v*=008231=O<o<0D9k;;%31g?473`;:i7>5;h32b?6=3f;n:7>5;|`127<72:0;6=u+2139522<@=l=7E:j4:&26f<582.:in4:029j54c=831b=<h50;9l5`0=831vn?8;:187>5<7s-8;=7?85:J7b3=O<l>0(<<l:268 4cd2<:87d?>e;29?l76n3:17d?=0;29?j7b>3:17pl=c183>6<729q/>=?51668L1`13A>n86*>2b814>o69l0;66g>1g83>>i6m?0;66sm2b094?2=83:p(?>>:056?M2a>2B?i95+13a971=#9li19=<4i03f>5<<a8;m6=44i003>5<<g8o=6=44}c025?6=;3:1<v*=008231=O<o<0D9k;;%31g?473-;no7;?b:k25`<722c:=k4?::m2a3<722wi><>50;194?6|,;::6<9;;I6e2>N3m=1/=?m5219'5`e==9h0e<?j:188m47a2900c<k9:188yg47n3:1?7>50z&144<6?=1C8k84H5g7?!75k38;7)?jc;73b>o69l0;66g>1g83>>i6m?0;66sm21g94?5=83:p(?>>:057?M2a>2B?i95+13a965=#9li19=h4i03f>5<<a8;m6=44o0g5>5<<uk8;h7>53;294~"5880:;95G4g48L1c33-;9o7<?;%3fg?37m2c:=h4?::k25c<722e:i;4?::a65e=8391<7>t$322>4133A>m:6F;e59'57e=:91/=hm551g8m47b2900e<?i:188k4c12900qo<?b;297?6=8r.9<<4>759K0c0<@=o?7)?=c;03?!7bk3?;m6g>1d83>>o69o0;66a>e783>>{e:9k1<7=50;2x 76628=?7E:i6:J7a1=#9;i1>=5+1da915g<a8;n6=44i03e>5<<g8o=6=44}c03=?6=;3:1<v*=008231=O<o<0D9k;;%31g?473-;no7;?8:k25`<722c:=k4?::m2a3<722wi>=650;194?6|,;::6<9;;I6e2>N3m=1/=?m5219'5`e==920e<?j:188m47a2900c<k9:188yg47?3:1?7>50z&144<6?=1C8k84H5g7?!75k38;7)?jc;73`>o69l0;66g>1g83>>i6m?0;66sm21494?5=83:p(?>>:057?M2a>2B?i95+13a965=#9li19=j4i03f>5<<a8;m6=44o0g5>5<<uk8;97>53;294~"5880:;95G4g48L1c33-;9o7<?;%3fg?37k2c:=h4?::k25c<722e:i;4?::a652=8391<7>t$322>4133A>m:6F;e59'57e=:91/=hm551a8m47b2900e<?i:188k4c12900qo<?3;297?6=8r.9<<4>759K0c0<@=o?7)?=c;03?!7bk3?;;6g>1d83>>o69o0;66a>e783>>{e:981<7=50;2x 76628=?7E:i6:J7a1=#9;i1>=5+1da9151<a8;n6=44i03e>5<<g8o=6=44}c051?6==3:1<v*=008233=O<o<0D9k;;%31g?453-;no7;>2:k25`<722c:=k4?::k265<722c:><4?::m2a3<722wi>;950;494?6|,;::6<98;I6e2>N3m=1/=?m5349'5`e==880e<?j:188m47a2900e<<?:188m4462900e<<=:188k4c12900qo<99;293?6=8r.9<<4>799K0c0<@=o?7)?=c;00?l76m3:17d?>f;29?l7583:17d?=1;29?l75:3:17d?=3;29?j7b>3:17pl=c283>0<729q/>=?51648L1`13A>n86*>2b816>"6mj0>=<5f10g94?=n98l1<75f13294?=n9;;1<75`1d494?=zj;i>6=49:183!4793;<;6F;f79K0`2<,88h6>;4$0g`>0763`;:i7>5;h32b?6=3`;9<7>5;h315?6=3`;9>7>5;n3f2?6=3th9o:4?:683>5}#:9;1=:64H5d5?M2b<2.:>n4=3:k25`<722c:=k4?::k265<722c:><4?::k267<722c:>>4?::m2a3<722wi?:750;194?6|,;::6<9;;I6e2>N3m=1/=?m52`9'5`e==9;0e<?j:188m47a2900c<k9:188yg5003:1;7>50z&144<6?11C8k84H5g7?!75k3>;7d?>e;29?l76n3:17d?=0;29?l7593:17d?=2;29?l75;3:17b?j6;29?xd3:h0;6>4?:1y'657=9>>0D9h9;I6f0>"6:j09m6*>eb8645=n98o1<75f10d94?=h9l<1<75rb50:>5<0290;w)<?1;34<>N3n?1C8h:4$00`>16<a8;n6=44i03e>5<<a88;6=44i002>5<<a8896=44i000>5<<g8o=6=44}c044?6=?3:1<v*=00823==O<o<0D9k;;%31g?443`;:i7>5;h32b?6=3`;9<7>5;h315?6=3`;9>7>5;h317?6=3f;n:7>5;|`1fa<72>0;6=u+213952><@=l=7E:j4:&26f<5;2c:=h4?::k25c<722c:>=4?::k264<722c:>?4?::k266<722e:i;4?::a63d=83=1<7>t$322>41?3A>m:6F;e59'57e=::1b=<k50;9j54`=831b=?>50;9j577=831b=?<50;9j575=831d=h850;9~f70b290?6=4?{%035?70=2B?j;5G4d68 44d2;;0e<?j:188m47a2900e<<?:188k4c12900qo<9d;293?6=8r.9<<4>799K0c0<@=o?7)?=c;15?l76m3:17d?>f;29?l7583:17d?=1;29?l75:3:17d?=3;29?j7b>3:17pl=c883>2<729q/>=?516:8L1`13A>n86*>2b817>o69l0;66g>1g83>>o6:90;66g>2083>>o6:;0;66g>2283>>i6m?0;66sm2c`94?2=83:p(?>>:056?M2a>2B?i95+13a964=#9li19=<4i03f>5<<a8;m6=44i003>5<<g8o=6=44}c0ae?6=?3:1<v*=00823==O<o<0D9k;;%31g?513`;:i7>5;h32b?6=3`;9<7>5;h315?6=3`;9>7>5;h317?6=3f;n:7>5;|`7a5<72=0;6=u+2139523<@=l=7E:j4:&26f<68m1/=hm55148m47b2900e<?i:188m4472900c<k9:188yg2cl3:187>50z&144<69?1C8k84H5g7?M063-;<57<?0:k51?6=3`<m6=44i0gg>5<<g8on6=44}c135?6=?3:1<v*=00823==O<o<0D9k;;%31g?><a8;n6=44i03e>5<<a88;6=44i002>5<<a8896=44i000>5<<g8o=6=44}c1g4?6==3:1<v*=008233=O<o<0D9k;;%31g?423-;no7;>4:k25`<722c:=k4?::k265<722c:><4?::m2a3<722wi?i?50;494?6|,;::6<98;I6e2>N3m=1/=?m5279j54c=831b=<h50;9j576=831b=??50;9j574=831d=h850;9~f66729086=4?{%035?70<2B?j;5G4d68 44d2;k0e<?j:188m47a2900c<k9:188yg57<3:1;7>50z&144<6?11C8k84H5g7?!75k3;:7d?>e;29?l76n3:17d?=0;29?l7593:17d?=2;29?l75;3:17b?j6;29?xd4l;0;6:4?:1y'657=9>20D9h9;I6f0>"6:j09;6g>1d83>>o69o0;66g>2183>>o6:80;66g>2383>>o6::0;66a>e783>>{e;jl1<7=50;2x 76628=?7E:i6:J7a1=#9;i1>l5f10g94?=n98l1<75`1d494?=zj:n86=48:183!4793;<46F;f79K0`2<,88h6?94i03f>5<<a8;m6=44i003>5<<a88:6=44i001>5<<a8886=44o0g5>5<<uk9>m7>57;294~"5880:;55G4g48L1c33-;9o7?>9:k25`<722c:=k4?::k265<722c:><4?::k267<722c:>>4?::m2a3<722wi?=650;794?6|,;::6<99;I6e2>N3m=1/=?m52c9j54c=831b=<h50;9j576=831b=??50;9l5`0=831vn>>m:184>5<7s-8;=7?88:J7b3=O<l>0(<<l:99j54c=831b=<h50;9j576=831b=??50;9j574=831b=?=50;9l5`0=831vn>>6:185>5<7s-8;=7?87:J7b3=O<l>0(<<l:3a8m47b2900e<?i:188m4472900e<<>:188m4452900c<k9:188yg57l3:1;7>50z&144<6?11C8k84H5g7?!75k320e<?j:188m47a2900e<<?:188m4462900e<<=:188m4442900c<k9:188yg57i3:1:7>50z&144<6?>1C8k84H5g7?!75k38h7d?>e;29?l76n3:17d?=0;29?l7593:17d?=2;29?j7b>3:17pl<0g83>2<729q/>=?516:8L1`13A>n86*>2b81`>o69l0;66g>1g83>>o6:90;66g>2083>>o6:;0;66g>2283>>i6m?0;66sm37g94?3=83:p(?>>:055?M2a>2B?i95+13a960=#9li19<>4i03f>5<<a8;m6=44i003>5<<a88:6=44o0g5>5<<uk>:j7>55;294~"5880:;;5G4g48L1c33-;9o7<:;%3fg?3712c:=h4?::k25c<722c:>=4?::k264<722e:i;4?::a0f0=83<1<7>t$322>4103A>m:6F;e59'57e=98k0(<kl:430?l76m3:17d?>f;29?l7583:17d?=1;29?l75:3:17b?j6;29?xd4?80;6;4?:1y'657=9>=0D9h9;I6f0>"6:j09:6*>eb8655=n98o1<75f10d94?=n9;:1<75f13394?=n9;81<75`1d494?=zj=896=49:183!4793;<;6F;f79K0`2<,88h6?84$0g`>06>3`;:i7>5;h32b?6=3`;9<7>5;h315?6=3`;9>7>5;n3f2?6=3th8;>4?:683>5}#:9;1=:64H5d5?M2b<2.:>n4=7:k25`<722c:=k4?::k265<722c:><4?::k267<722c:>>4?::m2a3<722wi8?:50;594?6|,;::6<97;I6e2>N3m=1/=?m5269j54c=831b=<h50;9j576=831b=??50;9j574=831b=?=50;9l5`0=831vn>;k:181>5<7s-8;=7?80:J7b3=O<l>0e<?k:188k4c12900qo=lb;296?6=8r.9<<4>719K0c0<@=o?7d?>d;29?j7b>3:17pl;0d83>7<729q/>=?51628L1`13A>n86g>1e83>>i6m?0;66sm4b694?dd290;w)<?1;3e4>N3n?1C8h:4Z769g~7?28k1=94j:g827?7d2831=i4>5;3a>44=ug=;6?:4n63961=im90;7c??2;28 47728;97)?>1;034>"6nm097)?=4;18 4422:1/=?853:&262<43-;947=4$00:>6=#9;k1?6*>2c80?!75l390(<<j:29'57`=;2.:?=4<;%305?5<,8996>5+12197>"6;=087)?<5;18 4512:1/=>953:&27=<43-;857=4$01b>6=#9:h1?6*>3b80?!74l390(<=j:29'56`=;2.:8=4<;%375?5<,8>96>5+15197>"6<=087)?;5;18 4212:1/=9953:&20=<43-;?57=4$06b>6=#9=h1?6*>4b80?!73l390(<:j:29'51`=;2.:9=4<;%365?5<,8?96>5+14197>"6==087)?:5;18 4312:1/=8953:&21=<43-;>57=4$07b>6=#9<h1?6*>5b80?!72l390(<;j:29'50`=;2.::=4<;%355?5<,8<96>5+17197>"6>=087)?95;18 4012:1/=;953:&22=<43-;=57=4$04b>6=#9?h1?6*>6b80?!71n3;n96*>f482bc=#9o<1:;5+1g5923=#9o31:=5+1gc95ce<,8<o6?5+17g96>"3n;0?j<5+4g190c7<,8ln6?5f1g394?=n>00;66g>0g83>>o6n=0;66g9a;29?l7a:3:17d?i3;29?l77m3:17dl6:18'5`d=j11e=ho50:9jf2<72-;nn7l7;o3fe?7<3`h=6=4+1d`9f==i9lk1>65fb483>!7bj3h37c?ja;18?l2bj3:1(<km:5gb?k7bi3:07d:j9;29 4ce2=oj7c?ja;38?l2b03:1(<km:5gb?k7bi3807d:j7;29 4ce2=oj7c?ja;18?jb?290/=hl5d69m5`g=821dh;4?:%3ff?b03g;nm7?4;nf7>5<#9lh1h:5a1dc96>=hl:0;6)?jb;f4?k7bi3907bj=:18'5`d=l>1e=ho54:9l`4<72-;nn7j8;o3fe?3<3fn;6=4+1d`9`2=i9lk1:65`cg83>!7bj3n<7c?ja;58?jeb290/=hl5d69m5`g=021doi4?:%3ff?b03g;nm774;na`>5<#9lh1h:5a1dc9e>=hkk0;6)?jb;f4?k7bi3h07bm6:18'5`d=l>1e=ho5c:9lg=<72-;nn7j8;o3fe?b<3fi<6=4+1d`9`2=i9lk1i65`c783>!7bj3n<7c?ja;d8?je2290/=hl5d69m5`g=9910cn:50;&2ag<c?2d:il4>1:9lg6<72-;nn7j8;o3fe?7532eh>7>5$0ga>a1<f8oj6<=4;na2>5<#9lh1h:5a1dc951=<gj:1<7*>ec8g3>h6mh0:965`dg83>!7bj3n<7c?ja;35?>icm3:1(<km:e58j4cf28=07bjk:18'5`d=l>1e=ho51998kae=83.:io4k7:l2ad<6121dho4?:%3ff?b03g;nm7?n;:mge?6=,8oi6i94n0gb>4d<3fn26=4+1d`9`2=i9lk1=n54oe794?"6mk0o;6`>e`82`>=hkh0;6)?jb;f4?k7bi3;n76amf;29 4ce2m=0b<kn:0d8?l21290/=hl5449m5`g=821b894?:%3ff?223g;nm7?4;h60>5<#9lh1885a1dc96>=n<;0;6)?jb;66?k7bi3907d:i:18'5`d=<<1e=ho54:9j0`<72-;nn7::;o3fe?3<3`>o6=4+1d`900=i9lk1:65f4b83>!7bj3>>7c?ja;58?l2e290/=hl5449m5`g=021b8l4?:%3ff?223g;nm774;h6:>5<#9lh1885a1dc9e>=n<10;6)?jb;66?k7bi3h07d:8:18'5`d=<<1e=ho5c:9j04<72-;nn7::;o3fe?b<3`?>6=4+1d`911=i9lk1<65f5283>!7bj3??7c?ja;38?l35290/=hl5559m5`g=:21b9<4?:%3ff?333g;nm7=4;h7f>5<#9lh1995a1dc90>=n=m0;6)?jb;77?k7bi3?07d;l:18'5`d===1e=ho56:9j1g<72-;nn7;;;o3fe?1<3`?j6=4+1d`911=i9lk1465f5883>!7bj3??7c?ja;;8?l3?290/=hl5559m5`g=i21b9:4?:%3ff?333g;nm7l4;h75>5<#9lh1995a1dc9g>=n=90;6)?jb;77?k7bi3n07dok:18'5`d=ij1e=ho50:9jeg<72-;nn7ol;o3fe?7<3`k26=4+1d`9ef=i9lk1>65fa983>!7bj3kh7c?ja;18?lg0290/=hl5ab9m5`g=<21bm;4?:%3ff?gd3g;nm7;4;hc6>5<#9lh1mn5a1dc92>=ni=0;6)?jb;c`?k7bi3=07do<:18'5`d=ij1e=ho58:9je7<72-;nn7ol;o3fe??<3`k:6=4+1d`9ef=i9lk1m65fa183>!7bj3kh7c?ja;`8?l?b290/=hl5ab9m5`g=k21b5i4?:%3ff?gd3g;nm7j4;h;`>5<#9lh1mn5a1dc9a>=n1k0;6)?jb;c`?k7bi3l07d7n:18'5`d=ij1e=ho51198m<?=83.:io4nc:l2ad<6921b554?:%3ff?gd3g;nm7?=;:k:3?6=,8oi6lm4n0gb>45<3`3=6=4+1d`9ef=i9lk1=954i8794?"6mk0jo6`>e`821>=nj=0;6)?jb;c`?k7bi3;=76gm3;29 4ce2hi0b<kn:058?ld5290/=hl5ab9m5`g=9110eo?50;&2ag<fk2d:il4>9:9jf5<72-;nn7ol;o3fe?7f32cjj7>5$0ga>de<f8oj6<l4;hcf>5<#9lh1mn5a1dc95f=<ahk1<7*>ec8bg>h6mh0:h65f9g83>!7bj3kh7c?ja;3f?>o><3:1(<km:`a8j4cf28l07b??7;29 4ce28:=7c?ja;28?j77=3:1(<km:025?k7bi3;07b??4;29 4ce28:=7c?ja;08?j77;3:1(<km:025?k7bi3907dlj:18'5`d=jm1e=ho50:9jff<72-;nn7lk;o3fe?7<3`hi6=4+1d`9fa=i9lk1>65fb`83>!7bj3ho7c?ja;18?j77k3:1(<km:02a?k7bi3:07b??a;29 4ce28:i7c?ja;38?j7713:1(<km:02a?k7bi3807b??8;29 4ce28:i7c?ja;18?j`f290/=hl5f89m5`g=821dj54?:%3ff?`>3g;nm7?4;nd5>5<#9lh1j45a1dc96>=hn<0;6)?jb;d:?k7bi3907bh;:18'5`d=n01e=ho54:9lb6<72-;nn7h6;o3fe?3<3fl96=4+1d`9b<=i9lk1:65`f083>!7bj3l27c?ja;58?j`7290/=hl5f89m5`g=021dik4?:%3ff?`>3g;nm774;ngf>5<#9lh1j45a1dc9e>=hmm0;6)?jb;d:?k7bi3h07bkm:18'5`d=n01e=ho5c:9lad<72-;nn7h6;o3fe?b<3fo26=4+1d`9b<=i9lk1i65`e983>!7bj3l27c?ja;d8?jc0290/=hl5f89m5`g=9910ch850;&2ag<a12d:il4>1:9la0<72-;nn7h6;o3fe?7532en87>5$0ga>c?<f8oj6<=4;ng0>5<#9lh1j45a1dc951=<gl81<7*>ec8e=>h6mh0:965`11394?"6mk0m56`>e`822>=h99:1<7*>ec8e=>h6mh0:;65`fg83>!7bj3l27c?ja;3;?>iam3:1(<km:g;8j4cf28307bhk:18'5`d=n01e=ho51`98kce=83.:io4i9:l2ad<6j21djo4?:%3ff?`>3g;nm7?l;:me3?6=,8oi6k74n0gb>4b<3foh6=4+1d`9b<=i9lk1=h54od394?"6mk0m56`>e`82b>=n<o:1<7*>ec87ac=i9lk1<65f4dg94?"6mk0?ik5a1dc95>=n<ln1<7*>ec87ac=i9lk1>65f4da94?"6mk0?ik5a1dc97>=n0j0;6)?jb;:a?k7bi3:07d6n:18'5`d=0k1e=ho51:9j<=<72-;nn76m;o3fe?4<3`2<6=4+1d`9<g=i9lk1?65f8783>!7bj32i7c?ja;68?l>2290/=hl58c9m5`g==21b494?:%3ff?>e3g;nm784;h:0>5<#9lh14o5a1dc93>=n0;0;6)?jb;:a?k7bi3207d6>:18'5`d=0k1e=ho59:9j<5<72-;nn76m;o3fe?g<3`=m6=4+1d`9<g=i9lk1n65f7e83>!7bj32i7c?ja;a8?l1d290/=hl58c9m5`g=l21b;o4?:%3ff?>e3g;nm7k4;h5b>5<#9lh14o5a1dc9b>=n?00;6)?jb;:a?k7bi3;;76g88;29 4ce21h0b<kn:038?l10290/=hl58c9m5`g=9;10e:850;&2ag<?j2d:il4>3:9j30<72-;nn76m;o3fe?7332c<87>5$0ga>=d<f8oj6<;4;h;0>5<#9lh14o5a1dc953=<a081<7*>ec8;f>h6mh0:;65f9083>!7bj32i7c?ja;3;?>o>83:1(<km:9`8j4cf28307d6i:18'5`d=0k1e=ho51`98m=c=83.:io47b:l2ad<6j21b4i4?:%3ff?>e3g;nm7?l;:k;=?6=,8oi65l4n0gb>4b<3`=n6=4+1d`9<g=i9lk1=h54i6194?"6mk03n6`>e`82b>=z{<<26=4={_771>;3k=0i56s|57594?4|V<>?70:l4;:`?xu2>?0;6?uQ551891e321k0q~;95;296~X2<;168n:5899~w0032909wS;;1:?7g1<??2wx9;=50;0xZ02734>h8769;|q624<72;qU9>k4=5a7>=3<uz?=<7>52z\67a=:<j>1495rs47e>5<5sW?8o63;c58;7>{t=<o1<7<t^41a?82d<3h<7p}:5e83>7}Y=:k019m;:908yv32k3:1>vP:389>0f2=081v8;m:181[34027?o9470:p10g=838pR8=8;<6`0?1a3ty>944?:3y]160<5=i?6:j4}r76<?6=:rT>?8524b693f=z{<?=6=4={_707>;3k=0<n6s|54794?4|V<9970:l4;5b?xu2==0;6?uQ523891e32k<0q~;:3;296~X2;9168n:5789~w0352909wS;=f:?7g1<002wx98?50;0xZ04b34>h8798;|q615<72;qU9?j4=5a7>20<uz??j7>52z\66f=:<j>1;85rs46f>5<5sW?9n63;c5840>{t==n1<7<t^40b?82d<3387p}:7183>7}Y==h019m;:808yv31n3:1>vP:4`9>0f2=j<1v88j:181[33127?o9461:p13b=838pR8:7;<6`0??73ty>:n4?:3y]111<5=i?65h4}r75f?6=:rT>8;524b69<`=z{<<j6=4={_70b>;3k=03h6s|57094?4|V<9?70:l4;::?xu2=>0;6?uQ53;891e32>o0q~;;c;296~X2:1168n:5729~w362290<>vP9049>70e=><168io5649>0a?=><168i=5649>0a4=><168i?5649>0a>=><168475649>0<>=><168495649>0<0=><1684;5649>0<2=><1684<5649>0<7=><1684>5649>0=`=><1685k5649>0=b=><1685m5649>0=d=><1685o5649>0=?=><168595649>0=0=><1685;5649>0=2=><1685=5649>0=4=><1685?5649>0=6=><168:h5649>02c=><1684h5649>0<c=><1684j5649>0<e=><1684l5649>0<g=><1684=5649>0=>=><168:j5649>02e=><16??:5649>775=><16??<5649>777=><16??>5649>74`=><16?<k5649>74b=><16?<m5649>74d=><16?4:5649>7<5=><16?4<5649>7<7=><16?4>5649>7=`=><16?5k5649>7=b=><16?5m5649>7=4=><16?5?5649>7=6=><16?:h5649>72c=><16?:j5649>72e=><16?:l5649>72g=><16??l5649>77>=><16?>?5649>77`=><16??k5649>6=e=><16>5l5649>6=g=><16>575649>6=>=><16>595649>6=0=><16>5;5649>6=2=><16>i=5649>6a4=><16>i?5649>6a6=><16>nh5649>6fc=><16>nj5649>6fe=><16>nl5649>6g6=><16>lh5649>6dc=><16>lj5649>6de=><16>ll5649>6dg=><16>l75649>6d>=><16>9;5649>612=><16>9=5649>614=><16>9?5649>616=><16>>h5649>66c=><16>>j5649>0f2=>h1v;?m:18;[06j278>:4>1d9>77b=9;:01><9:002?855i3;9<63<248264=:;<k1=<k4=5a5>4463ty==i4?:6y]24b<5=ij6;l4=5ag>4cc34>ho7?jd:?7`=<6mm168nl51df891bc28oo7p}92583>00|V?8?70=l0;46?85en3<>70:la;46?82cn3<>70:ld;46?82cm3<>70:lc;46?82c?3<>70:k6;46?82dj3<>70:?c;46?827j3<>70:?a;46?82713<>70:?8;46?827?3<>70:?6;46?827=3<>70:?4;46?827;3<>70::7;46?822>3<>70::5;46?822<3<>70::3;46?822:3<>70::1;46?82283<>70:;f;46?823=3<>70:;4;46?823;3<>70:;2;46?82393<>70:;0;46?824n3<>70:<e;46?824l3<>70:<3;46?824:3<>70:<1;46?82483<>70:=f;46?825m3<>70:=d;46?825k3<>70:=b;46?844;3<>70<<2;46?84493<>70<<0;46?845n3<>70<=e;46?845l3<>70<=c;46?845j3<>70<8a;46?84013<>70<88;46?840?3<>70<86;46?840=3<>70<84;46?840;3<>70<82;46?842?3<>70<:6;46?842=3<>70<:4;46?842;3<>70<:2;46?84293<>70<:0;46?843n3<>70<6e;46?84>l3<>70<6c;46?84>j3<>70<6a;46?84>13<>70<68;46?84>?3<>70<66;46?82cl3<>70:l4;4:?xu1;h0;6>uQ62c8916c28;n70=65;315>{t=;=1<78:{_711>X2:=1U9?=4^401?[3592T>>=5Q50d8Z07b3W?:h6P:199]14?<V<i=7S;l7:\6a3=Y>;80R;<>;_417>X19l1U9?94=5d4>47e34>o?78i;<6g6?0a34>o=78i;<6g<?0a34>o;78i;<6g2?0a34>hn78i;<1:`?153492o79=;<1:f?153492m79=;<1:a?15349i<79=;<1bb?15349ji79=;<1b`?15349i=79=;<10=?153498479=;<103?153498:79=;<10e?15349?o79=;<17f?15349?m79=;<17=?15349?h79=;<6f4?75827?o94>f09>0f2=9o8019m;:0d0?82d<3>j70:l4;6:?82d<3>370:l4;64?82d<3>:70:l4;7:?82d<3?370:l4;74?82d<3?=70:l4;73?82d<3ko70:l4;ca?82d<3k270:l4;c;?82d<3k<70:l4;c5?82d<3k>70:l4;c7?82d<3k870:l4;c1?82d<3k:70:l4;c3?82d<33n70:l4;;g?82d<33h70:l4;;a?82d<33j70:l4;;:?82d<33370:l4;;4?82d<33=70:l4;;6?82d<3h?70:l4;`0?82d<3h970:l4;`2?82d<3h;70:l4;ce?82d<3kn70:l4;cb?82d<33m70:l4;;7?82d<3hn70:l4;``?82d<3hi70:l4;`b?82d<3>m<63;c587a`=:<j>18hj4=5a7>1cd3ty?;94?:3y]1=c<5=326<kj;|q736<72;qU95j4=5;;>4cb3ty?;?4?:3y]1=e<5=3<6<kj;|q734<72;qU95l4=5;5>4cb3ty?;=4?:3y]1=g<5=3>6<kj;|q72c<72;qU9574=5;7>4cb3ty?:i4?:3y]1=1<5=396<kj;|q72f<72;qU9584=5;2>4cb3ty?:o4?:3y]1=3<5=3;6<kj;|q72d<72;qU95:4=5:e>4cb3ty?:44?:3y]1=5<5=2n6<kj;|q72=<72;qU95<4=5:g>4cb3ty?::4?:3y]1=7<5=2h6<kj;|q723<72;qU95>4=5:a>4cb3ty?:84?:3y]12`<5=2j6<kj;|q721<72;qU9:k4=5::>4cb3ty?:?4?:3y]12e<5=2<6<kj;|q724<72;qU9:l4=5:5>4cb3ty?:=4?:3y]12g<5=2>6<kj;|q71c<72;qU9:74=5:7>4cb3ty?9h4?:3y]12><5=286<kj;|q71a<72;qU9:94=5:1>4cb3ty?9n4?:3y]120<5=2:6<kj;|q71g<72;qU9:;4=5:3>4cb3ty?9l4?:3y]122<5==m6<kj;|q71<<72;qU9:=4=55f>4cb3ty?;o4?:3y]1<2<5=3m6<kj;|q73d<72;qU94=4=5;f>4cb3ty?;44?:3y]1<4<5=3o6<kj;|q73=<72;qU94?4=5;`>4cb3ty?;:4?:3y]1<6<5=3i6<kj;|q733<72;qU95h4=5;b>4cb3ty?;84?:3y]1=><5=386<kj;|q72`<72;qU9:j4=5:;>4cb3ty?:>4?:3y]124<5==o6<kj;|q71=<72;qU9:?4=55`>4cb3ty8=l4?:3y]25`<5:8?6<kj;|q05<<72;qU:=k4=200>4cb3ty8=54?:3y]25b<5:896<kj;|q052<72;qU:=m4=202>4cb3ty8=;4?:3y]25d<5:8;6<kj;|q050<72;qU:=o4=23e>4cb3ty8=94?:3y]25?<5:;n6<kj;|q056<72;qU:=64=23g>4cb3ty8=?4?:3y]251<5:;h6<kj;|q054<72;qU:=84=23a>4cb3ty?<?4?:3y]27c<5=:h6<kj;|q744<72;qU:?j4=52a>4cb3ty?<=4?:3y]27e<5=:j6<kj;|q0bc<72;qU:?l4=52:>4cb3ty8jh4?:3y]27g<5=:36<kj;|q0ba<72;qU:?74=524>4cb3ty8jn4?:3y]27><5=:=6<kj;|q0bg<72;qU:?94=526>4cb3ty8jl4?:3y]270<5=:?6<kj;|q0b<<72;qU:?;4=520>4cb3ty8>k4?:3y]1gd<5:8m6<kj;|q0g5<72;qU9n?4=2a3>4cb3ty:;i4?:8y>0c>=9l201>7n:7:896gc2?201>=9:7:8962>2?201?h>:7:897c72?201>k9:7:896b22?20q~=:9;296~;4=j0=j63<5`82a3=z{=n;6=4=3z?01f<6mm168i=51dg896432?h01><<:7`896452?h01><>:7`896472?h01>?i:7`8967b2?h01>?k:7`8967d2?h01>?m:7`896?32?h01>7<:7`896?52?h01>7>:7`896?72?h01>6i:7`896>b2?h01>6k:7`896>d2?h01>6=:7`896>62?h01>6?:7`8961a2?h01>9j:7`8961c2?h01>9l:7`8961e2?h01>9n:0gg?855j3<i70==8;4a?85493<i70==f;3f`>;4:l0:ii5rs27`>5<2s49>o7?je:?06d<6:816??;510g8963f28;m70:l6;32a>{t;kn1<7=t=2a3>3`<5:hm6;h4=2;6>4c13ty?on4?:5y>7f6=9ln01>li:0gg?82dl3<m70:lc;3fa>{t;kl1<7=t=2`e>4cb34>;h7?>f:?0=0<6:91v9mk:18182di3<m70:ld;3fa>{t<jk1<7<t=5ab>4cb349297?>e:p0a?=839p19jn:7d891b>28on70:k8;45?xu3lh0;6?u24ec95`c<5=nh6<?i;|q7``<72:q68ih56g9>0ac=9lo019k?:03f?xu3lo0;6?u24ed95`c<5=o96<?i;|q7`=<72:q68i756g9>0a>=9lo019jl:03f?xu3lm0;69u24eg92c=:<l81=<k4=5g3>47a34>oh7?je:p0fd=838p19ml:7d891ee28on7p};dc83>1}:<m91=hj4=5f1>4cc34>o=7?jd:?7`f<6m?1v9mi:1811~;3l;0:ih5229a92g=::1h1:o5229c92g=::131:o5229:92g=::1=1:o5229492g=::1?1:o5229692g=::m91:o522e092g=::m;1:o522e292g=::jl1:o522bg92g=::jn1:o522ba92g=::jh1:o522c292g=::hl1:o522`g92g=::hn1:o522`a92g=::hh1:o522`c92g=::h31:o522`:92g=::=?1:o5225692g=::=91:o5225092g=::=;1:o5225292g=:::l1:o5222g92g=:::n1:o5rs5af>5<5?r7?h<4>ed9>0<?=9ll01977:0ge?82>?3;nj63;9782ac=:<0?1=hh4=5;7>4ca34>2>7?jf:?7=4<6mo1684>51dd891>a28om70:7e;3fb>;30m0:ik5249a95``<5=2i6<ki;<6;e?7bn27?444>eg9>0=1=9ll01969:0ge?82?=3;nj63;8582ac=:<191=hh4=5:1>4ca34>3=7?jf:?7<5<6mo168:h51dd8911b28om70:6f;3fb>;31l0:ik5248f95``<5=3h6<ki;<6:f?7bn27?5l4>eg9>0<5=9ll01967:0ge?820l3;nj63;7b82ac=:<j<1=?<4=5a7>4`33ty?i<4?:2y>0a1=9ln019j9:0gg?82b:3;n:6s|4e794?41s4>o;7?je:?74f<1j27?<o49b:?74d<1j27?<449b:?74=<1j27?<:49b:?743<1j27?<849b:?741<1j27?<>49b:?712<1j27?9;49b:?710<1j27?9949b:?716<1j27?9?49b:?714<1j27?9=49b:?70c<1j27?8849b:?701<1j27?8>49b:?707<1j27?8<49b:?705<1j27??k49b:?77`<1j27??i4>ee9>065=>k168><56c9>067=>k168>>56c9>07`=>k168?k56c9>07b=>k168?m51df8914e2?h0q~:k4;2960}:<m<1=hk4=310>3d<5;996;l4=312>3d<5;9;6;l4=30e>3d<5;8n6;l4=30g>3d<5;8h6;l4=30a>3d<5;=j6;l4=35:>3d<5;=36;l4=354>3d<5;==6;l4=356>3d<5;=?6;l4=350>3d<5;=96;l4=374>3d<5;?=6;l4=376>3d<5;??6;l4=370>3d<5;?96;l4=372>3d<5;?;6;l4=36e>3d<5;3n6;l4=3;g>3d<5;3h6;l4=3;a>3d<5;3j6;l4=3;:>3d<5;336;l4=3;4>3d<5;3=6;l4}r6`<?6=:<q68475679>0<>=>?168495679>0<0=>?1684;5679>0<2=>?1684<5679>0<7=>?1684>5679>0=`=>?1685k5679>0=b=>?1685m5679>0=d=>?1685o5679>0=?=>?168595679>0=0=>?1685;5679>0=2=>?1685=5679>0=4=>?1685?5679>0=6=>?168:h5679>02c=>?1684h5679>0<c=>?1684j5679>0<e=>?1684l5679>0<g=>?1684=5679>0=>=>?168:j5679>02e=>?16??951d48yv2ek3:1>v3;9885b>;3k=0:<n5rs5`a>5<5s4>2478i;<6`0?`f3ty?nl4?:3y>0<1=>o168n:5f99~w1d>2909w0:66;4e?82d<3l=7p};b983>7}:<0?1:k524b69b0=z{=h<6=4={<6:0?0a34>h87h;;|q7f0<72;q684<56g9>0f2=n:1v9l;:18182>93<m70:l4;d1?xu3j:0;6?u248292c=:<j>1j<5rs5`1>5<5s4>3j78i;<6`0?77i2wx8o?50;0x91>b2?l019m;:g28yv2e83:1>v3;8e85b>;3k=0nj6s|4`d94?4|5=2h6;h4=5a7>`c<uz>ji7>52z?7<g<1n27?o94jd:p0db=838p196n:7d891e32lh0q~:nc;296~;3000=j63;c58fe>{t<hk1<7<t=5:4>3`<5=i?6h74}r6b=?6=:r7?4;49f:?7g1<b02wx8l650;0x91>22?l019m;:02:?xu3i>0;6?u249692c=:<j>1i:5rs5c5>5<5s4>3?78i;<6`0?c13ty?m84?:3y>0=4=>o168n:5e49~w1g32909w0:71;4e?82d<3o?7p};a283>7}:<1:1:k524b69a6=z{=k96=4={<64b?0a34>h87k=;|q7e4<72;q68:k56g9>0f2=99;0q~:l3;296~;31o0=j63;c58245=z{=i96=4={<6:a?0a34>h87??8:p0f7=838p197k:7d891e32ol0q~:l0;296~;31j0=j63;c58ea>{t<kl1<7<t=5;a>3`<5=i?6kj4}r6aa?6=:r7?5l49f:?7g1<ak2wx8oj50;0x91?42?l019m;:g`8yv2e>3:1>v3;8985b>;3k=0m;6s|4``94?4|5==o6;h4=5a7>`e<uz>j<7>52z?73f<1n27?o94j1:p7<>=838p1>7k:7:896?d28o=7p}<a483>7}:;0n1=k64=2c5>4c13ty8544?:3y>7<b=9l<01>7j:7:8yv5>?3:1>v3<9b85<>;41k0:i;5rs2c0>5<5s492o7?i8:?0e1<6m?1v>79:18185>j3<370=6a;3f2>{t;h;1<7<t=2;a>4`?349j>7?j6:p7<`=838p1>7n:0d;?85f83;n:6s|3`594?4|5:3n6<h7;<1b<?7b>2wx?om50;0x96?b28o=70=65;316>{t;hh1<7<t=2`3>3><5:km6<k9;|q0f=<72;q6?o>51g:896d>28o=7p}<ab83>7}:;k:1=h84=2`2>3><uz9jm7>52z?0ec<10278mh4>e79~w6d12909w0=nf;3e<>;4j>0:i;5rs2c:>5<5s49ji787;<1b`?7b>2wx?o:50;0x96gb28l370=m5;3f2>{t;k81<7<t=2cg>4`?349i?7?j6:p7gg=838p1>l>:0d;?85ej3;n:6s|3cg94?4|5:h:6<k9;<1:1?76n2wx?>:50;0x965>2?201>=7:0g5?xu4<80;6?u232;95c><5:>96<k9;|q070<72;q6?>751d48965f2?20q~=<3;296~;4;10=463<3682a3=z{:9m6=4={<10<?7a02788=4>e79~w6552909w0=<7;4;?854>3;n:6s|32f94?4|5:9<6<h7;<10a?7b>2wx?>l50;0x965128l370=<c;3f2>{t;=91<7<t=21b>4`?349?87?j6:p70>=838p1>=n:0g5?852i3;9>6s|35594?4|5:>h6;64=26a>4c13ty8994?:3y>71e=9o201>;::0g5?xu4<10;6?u235a95`0<5:>o6;64}r172?6=:r788o498:?00d<6m?1v>;=:181853j3;m463<5282a3=z{:>>6=4={<17e?0?349?57?j6:p706=838p1>:n:0d;?85293;n:6s|35g94?4|5:>26<h7;<17b?7b>2wx?8850;0x962c28l370=:7;3f2>{t;<h1<7<t=26g>4c1349>m7?=3:p6`1=838p1?h6:7:897c028o=7p}=f183>7}::o31=:?4=3d3>4c13ty9ho4?:2y>6c?=9l<01>>k:003?857n3;:i6s|29194?2|5;l;6<?j;<0;g?7bm278894>1g9>701=98l0q~=7b;292~;5n90:=k5238695`c<5;>>6;h4=267>47b348;57?>f:?7g1<2=2wx>h850;1x97`?2?201?k8:7:897c128o=7p}=eg83>6}::o21=:?4=3g4>4`?348nj7?j6:p6ag=83>p1?h7:0g5?857j3;9<63<0e8264=:;9l1=<h4}r0;6?6==r79i:482:?1ac<69l16>5l51dg8962528;m70=:5;32b>{t;1k1<78t=3ge>47a3492?7?je:?007<69l16>=7510g8976?28;m70:l4;70?xu5m<0;6>u22g592==::l<1:5522d795`0<uz8ni7>53z?1b2<6?816>h851g:897cb28o=7p}=d883>0}::o=1=h84=225>447349;n7?=1:?04a<6:;16?=h51328yv4?93:19v3=e7846>;5ml0:=h5229c95`c<5:>96<<>;<161?7592wx?5750;4x97cb28;m70=62;3fa>;4<;0:>=5221:954c<5;:<6<?i;<6`0?353ty9i94?:2y>6c0=>116>h;5699>6`2=9l<0q~<jd;297~;5n?0:;<522d795c><5;oo6<k9;|q1`=<72?q6>k851d489661288970=?4;32b>;48k0:>?5231;954c<5::m6<<>;|q1<5<72<q6>h;5739>6`b=98o01?66:0gf?85383;:j63<52825c=z{:236=49{<0f`?76n2785<4>ed9>716=98o01?>8:03f?847>3;:j63;c5865>{t:l91<7=t=3d6>3><5;o?6;64=3g0>4c13ty9in4?:2y>6c3=9>;01?k;:0d;?84bk3;n:6s|2e594?1|5;l>6<k9;<132?759278<<4>219>752=9;:01>>7:03f?85713;:j63<0g8267=z{;=m6=4:{<0f0?15348no7?>e:?1<=<6ml16?9>513389634288:7p}<8683>3}::li1=<h4=2;3>4cb349?<7?=0:?143<69l16>=;510d891e32<o0q~<j2;297~;5n=0=463=e285<>;5m;0:i;5rs3ga>5<4s48m87?81:?1a6<6n116>hl51d48yv4c>3:14v3=f582a3=::ol1=?>4=3fe>447349;=7?=3:?041<6:816?=6510d8966>288;70=?a;314>{t:>o1<7;t=3g0>24<5;oi6<?j;<0;3?7bm278?h4>1g9>707=98l0q~=76;292~;5mk0:=k5239d95`c<5:9n6<?j;<031?76m279<94>1g9>0f2==m1v?k>:18084a;3<370<j2;4;?84b93;n:6s|2dc94?5|5;l86<9>;<0f6?7a0279il4>e79~w7b22902w0<i3;3f2>;5no0:=k522eg9577<5;nm6<<=;<135?75:278<94>239>75>=9;:01>>6:002?857i3;9=6s|26f94?3|5;o96:<4=3gb>47b3483:7?je:?07`<6:816?8?510g8yv5?=3:1:v3=e`825c=:;1o1=hk4=21f>447348;87?>e:?146<69o168n:55b9~w7c72908w0<i2;4;?84b93<370<j0;3f2>{t:l31<7=t=3d1>416348n=7?i8:?1a<<6m?1v?j;:18b84a:3;n:63=fg825`=::mo1=?>4=3fe>446348oh7?=0:?044<6:816?=:51318966?288:70=?9;316>;48h0:>?5rs35`>5<2s48n=79=;<0f=?76m279484>ed9>76e=98l01>:i:03e?xu40=0;6;u22d;954`<5:2o6<kj;<10g?76m279<>4>1d9>654=98l019m;:4`8yv4b03:1?v3=f08234=::l:1=k64=3g;>4c13ty8==4?:3y>6c7=9l<01?jl:003?xu5?k0;68u22d2937=::l21=<k4=3:7>4cb3498o7?=1:?00c<69l1v>6<:18684b03;:j63<8b82a`=:;:i1=?>4=321>47b34>h87;n;|q04`<72;q6??:56g9>75`=9l<0q~=?c;296~;4::0=j63<0e82a3=z{::<6=4={<116?0a349;n7?j6:p753=838p1><>:7d8966128o=7p}<0283>7}:;;:1:k5231695`0<uz8mi7>52z?05c<1n278<<4>e79~w7`c2909w0=>e;4e?84cn3;n:6s|2ga94?4|5:;o6;h4=3ff>4c13ty9jo4?:3y>74e=>o16>ij51d48yv4ai3:1>v3<1c85b>;5lj0:i;5rs5a4>5<6;r7859496:?0=6<1>2785?496:?0=4<1>2785=496:?0<c<1>2784h496:?0<a<1>2784n496:?0<7<1>2784<496:?0<5<1>278;k496:?03`<1>278;i496:?03f<1>278;o496:?03d<1>278>84>e79~w60?290?w0=64;4e?85?:3;ni63<56825`=:;>21=<k4}r153?6==r785>49f:?0<4<6ml16?8;510g8961028;n70=88;314>{t;?<1<78t=2;1>3`<5:2;6<kj;<161?758278;:4>1g9>723=98o01>96:03e?xu4><0;6:u238392c=:;>l1=hk4=270>47b349<;7?=0:?030<69o16?:7510g8961428;n7p}<6583>=}:;0:1:k5236g95`c<5:?86<<?;<143?759278;84>219>72>=9;801>9>:03f?850;3;:j6s|37194??|5:2m6;h4=25g>4cb349>=7?=1:?032<6:;16?:;51338961?288:70=9e;32a>;4?80:=k523619576<uz9=>7>58z?0<`<1n278;n4>ed9>707=9;:01>8k:003?852n3;:i63<6d8264=:;>;1=?<4=250>4443ty8:<4?:8y>7=b=>o16?:l51dg8962a288;70=9d;32b>;4=l0:=k5234d9576<5:<n6<<?;<145?759278;>4>239~w607290jw0=7c;4e?850i3;ni63<4g8264=:;?n1=<k4=27f>47b349>j7?>f:?02`<69o16?:?513289614288:70=:d;32`>{t;>21<7<t=2:1>3`<5:=36<k9;|q033<72;q6?5?56g9>721=9l<0q~=84;296~;4090=j63<7482a3=z{:=96=4={<14b?0a349<?7?j6:p726=838p1>9j:7d8961628o=7p}<6b83>7}:;>n1:k5237g95`0<uz9=n7>52z?03f<1n2789k4>e79~w60f2909w0=8b;4e?852m3;n:6s|37;94?4|5:=j6;h4=27g>4c13ty8>n4?:2y>77d=>o16?>?56g9>77b=9l<0q~==b;29<~;4:k0:ih52335954`<5:8o6<?i;<112?76n278>l4>1g9>773=98l01>;n:003?82d>3;:j6s|33;94?4|5:836;h4=20b>4c13ty8>54?:00x964?28on70=?6;32b>;5lj0:=k522eg954c<5;nm6<?j;<0g`?76n278>:4>219>77b=98o01><9:003?855i3;:i63<248265=:;9;1=<h4=223>47b349>m7?=1:?04g<69o16?=j510d8966f28;m70:l6;314>{t;:;1<7lt=212>4cb349;:7?>e:?1`f<69l16>ik510d897ba28;m70<kd;32a>;4880:=h52312954`<5::i6<?j;<13`?76m278<l4>1d9~w6572908w0==f;4e?855m3<m70==6;3f2>{t;;o1<7<t=20f>4cb3499:7?>e:p7ae=838p1>kj:7:896bd28o=7p}<e483>7}:;lo1=:?4=2g6>4c13ty8ol4?:2y>7`c=9l<01>j;:03f?85d;3;:i6s|45g94?3|5:o>6<?j;<663?7bm2795h49f:?154<69o168n:5479~w74f290?w0=j5;32b>;5;:0:ih523`:954c<5:hi6<?j;|q0`g<72:q6?hj5699>7ae=>116?il51d48yv5b<3:1?v3<ee8234=:;mi1=k64=2g7>4c13ty8o44?:5y>7`b=9l<01>j;:001?85d;3;:j63<d2825`=z{=>o6=49{<1gg?15349n87?>e:?713<6ml16><?510g8977728;m70:l4;67?xu5:00;69u23d6954`<5;996<kj;<1b2?76m278n44>1d9~w6bf2908w0=jc;4;?85cj3<370=ka;3f2>{t;l91<7=t=2g`>416349on7?i8:?0a6<6m?1v>m7:18685bk3;n:63<d58264=:;j91=?>4=2f1>47b349o?7?>f:p01e=83<p1>jm:60896c428;n70::5;3fa>;5990:=h5221d954`<5=i?69=4}r01<?6=<r78i>4>1g9>667=9lo01>o9:003?85e13;9<6s|3e;94?5|5:oi6;64=2fb>3><5:n26<k9;|q0a7<72:q6?hl5163896bf28l370=j2;3f2>{t;j=1<78t=2ga>4c1349o87?=0:?0g6<6:816?i?510g896b5288;70=k3;314>{t<=h1<78t=2fb>24<5:o96<?j;<660?7bm279<k4>1d9>65c=98l019m;:508yv45?3:18v3<e3825c=::::1=hk4=2c7>47b349i;7?>e:p7a>=839p1>kn:7:896b>2?201>j7:0g5?xu4m80;6>u23dc9527<5:n26<h7;<1f5?7b>2wx?n850;5x96cf28o=70=k4;32b>;4k:0:>?523e2954c<5:n:6<?i;<1g6?76n278h>4>209~w12f290=w0=k9;51?85b93;:i63;5282a`=::9o1=<k4=32g>47a34>h87:i;|q163<72=q6?h?510d8974a28on70=n4;314>;4j>0:>=5rs2f4>5<4s49n5787;<1g<?0?349o;7?j6:p7`6=839p1>k6:052?85c03;m463<e182a3=z{:i>6=48{<1f=?7b>278oi4>1d9>7fc=98o01>j?:03e?85c93;9<63<d38264=:;m91=?<4}r67=?6=>r78h5482:?0a5<69o1688<51dg8976c28;n70<?c;32b>;3k=0?i6s|23794?2|5:o;6<?j;<01a?7bm278m?4>1d9>7g3=98o0q~=k6;297~;4m10=463<d685<>;4l?0:i;5rs2fe>5<4s49n47?81:?0`2<6n116?ih51d48yv5d<3:14v3<e982a3=:;jn1=?>4=2af>447349ho7?>e:?0`5<6:816?i?5130896b5288870=lf;32a>{t<=21<78t=2f4>24<5:nm6<?i;<665?7bm279<n4>1d9>65d=98l019m;:5f8yv45<3:18v3<dg825`=::;n1=hk4=2c1>447349i97?=0:p7a3=839p1>k8:7:896b12?201>j::0g5?xu4ll0;6>u23d59527<5:n=6<h7;<1ga?7b>2wx?n?50;;x96c028o=70=ld;32b>;4kl0:=k523ba954`<5:n;6<<?;<1g5?759278h?4>239>7f`=98l01>mm:03g?xu3<>0;6;u23e4937=:;mo1=<h4=573>4cb348;n7?>e:?14d<69o168n:54b9~w744290?w0=ke;32a>;5:j0:ih523`2954c<5:h86<?j;|q0`a<72:q6?h85163896b228l370=kd;3f2>{t;o21<7<t=2g5>4c134>;?78i;|q703<72<q6?i;5739>7ab=98o019:i:0gf?847i3;:i63;c587f>{t:;81<7:t=2fg>47a3489n7?je:?0e5<6:916?o=51328yv5d:3:1>v3;0b85b>;4k:0:i;5rs2d4>5<5s4>;n78i;<1g0?7b>2wx?k850;0x916f2?l01>j<:0g5?xu4n<0;6?u241;92c=:;m81=h84}r1e0?6=:r7?<549f:?0`4<6m?1v>h<:181827?3<m70=k0;3f2>{t;o81<7<t=525>3`<5:io6<k9;|q0b4<72;q68=;56g9>7fe=9l<0q~=i0;296~;38=0=j63<cc82a3=z{=i26=4=1z?712<1>27?9;496:?710<1>27?99496:?716<1>27?9?496:?714<1>27?9=496:?70c<1>27?88496:?701<1>27?8>496:?707<1>27?8<496:?705<1>27??k496:?77`<1>27??i496:?776<1>27???496:?774<1>27??=496:?76c<1>27?>h496:?76a<1>27?>n496:?76g<1>27?<i4>e79>0f2=99o019m;:5ga?82d<3>n563;c587a==:<j>18h94}r60g?6=;r7?9:49f:?700<6ml16?l6510d8yv24j3:1?v3;5785b>;3<=0:ih523`4954`<uz>8m7>53z?710<1n27?8>4>ed9>7d0=9;;0q~:<9;297~;3==0=j63;4382a`=:;h>1=<h4}r60<?6=;r7?9>49f:?704<6ml16?l:51338yv24?3:1?v3;5385b>;3<90:ih523`0954`<uz>8:7>53z?714<1n27??k4>ed9>7d4=9;;0q~:<5;297~;3=90=j63;3d82a`=:;h:1=<h4}r600?6=;r7?8k49f:?77a<6ml16?l>51338yv2613:18v3;4485b>;3;:0:ih523c`954`<5=826<?j;|q75=<72<q689:56g9>064=9lo01>l6:03e?82503;:i63;288265=z{=;<6=49{<677?0a34>8=7?je:?0f<<6:8168?6510d8914128;n70:=a;32b>{t<8<1<79t=561>3`<5=9;6<kj;<1a3?76n27?>54>219>070=98l019<n:03f?825<3;:i6s|40794?>|5=>:6;h4=50e>4cb349i;7?=1:?76=<6:8168?851328914>288970:=2;32a>;3:=0:=k5rs537>5<>s4>?<78i;<61a?7bm278n84>1g9>07>=9;8019<9:002?82513;9=63;1g825`=:<;81=<h4=507>4473ty?=>4?:9y>06`=>o168?j51dg896d2288:70:>e;314>;3990:=h5240d9577<5=896<<=;<610?75;2wx8<<50;;x915b2?l019<l:0gf?85e;3;:j63;1d825c=:<8:1=?>4=52e>47b34>:j7?=0:?767<6:8168?:51308yv2693:1mv3;3e85b>;3:k0:ih523c19577<5=;n6<?j;<624?76n27?<k4>1g9>04`=98l019<=:003?825<3;9=63;0d825a=z{=826=4={<607?0a34>957?j6:p071=838p19==:7d8914?28o=7p};2483>7}:<:;1:k5243495`0<uz>9?7>52z?775<1n27?>94>e79~w1462909w0:=f;4e?825:3;n:6s|40f94?4|5=8n6;h4=53e>4c13ty?=n4?:3y>07b=>o168<>51d48yv26j3:1>v3;2b85b>;38o0:i;5rs53b>5<5s4>9n78i;<63a?7b>2wx>o750;:x97>d2?l01?j<:0gf?84d83;:j63=c3825c=::j91=??4=3a6>445348h;7?=3:?1fg<69o1v?li:18084?j3<m70<l0;3f2>;5k00:>>5rs3a2>5<5s483m78i;<0`6?7b>2wx>n:50;1x97>>2?l01?m<:0g5?84el3;9?6s|2b494?4|5;236;h4=3a6>4c13ty9o54?:3y>6=1=>o16>n951d48yv4di3:1>v3=8785b>;5k00:i;5rs3``>5<5s483978i;<0ae?7b>2wx>ok50;0x97>32?l01?lk:0g5?xu5>90;65u222192c=::>k1=hk4=341>47a348=87?>f:?120<6:816>;951308970>288870<9e;32b>{t:?;1<7=t=311>3`<5;<96<k9;<05f?75;2wx>;=50;0x97562?l01?8;:0g5?xu5>?0;6>u222292c=::??1=h84=353>4443ty9:54?:3y>67`=>o16>;951d48yv41i3:1>v3=2d85b>;5>00:i;5rs34`>5<5s489h78i;<05f?7b>2wx>;h50;0x974d2?l01?8k:0g5?xu5?80;6?u223`92c=::>:1=h84}r0b3?6=:r79h>49f:?1f5<6ml1v?o9:18184c:3<m70<nf;3fa>{t:k21<79t=3f1>4cb348h<7?>e:?1g7<69l16>n=5132897e2288:70<l7;316>;5jk0:>=5rs3c6>5<5s48o=78i;<0ba?7bm2wx>o950;5x97b628on70<l2;314>;5k:0:=k522b79576<5;i<6<<>;<0`=?759279nl4>239~w7g32909w0<k0;4e?84fl3;ni6s|2c494?0|5;n;6<kj;<0`7?76m279o84>1g9>6f1=9;:01?m6:001?84ej3;:i6s|2`194?4|5;im6;h4=3c`>4cb3ty9n84?:7y>6f`=9lo01?m::03f?84d?3;:j63=be8265=::j31=<h4=3`b>4473ty9m?4?:3y>6fc=>o16>ll51dg8yv4e<3:19v3=cd82a`=::j=1=<k4=3`g>446348h57?=0:?1fd<6:81v?o>:18184dl3<m70<na;3fa>{t:k91<7:t=3ag>4cb348ih7?>e:?1g<<69l16>oo510g8yv4f83:1>v3=cb85b>;5i00:ih5rs3`1>5<4s48ho7?je:?1fa<69o16>oo510d8yv4>n3:1>v3=cc85b>;5i10:ih5rs3`2>5<5s48hn7?je:?1fa<6:;1v?:j:181840i3<m70<:7;3fa>{t:=n1<7<t=35:>3`<5;?=6<kj;|q11c<72>q6>:751dg8970528;n70<94;32a>;5><0:>=522759577<5;<26<<=;<05a?7582wx>9m50;0x971?2?l01?;::0gf?xu5=l0;6:u226:95`c<5;<?6<<?;<051?76n279::4>219>63?=9;;01?8m:002?841l3;9>6s|25`94?4|5;=<6;h4=377>4cb3ty99i4?:7y>621=9lo01?8::03f?841?3;:j63=688265=::?h1=?<4=34f>47b3ty98l4?:3y>620=>o16>8=51dg8yv42k3:1:v3=7782a`=::?=1=<k4=34:>47a348<<7?=0:?12g<69o16>;j51328yv4313:1>v3=7485b>;5=;0:ih5rs37a>5<2s48<97?je:?12<<69l16>:>51338970e288;70<9d;315>{t:=21<7<t=357>3`<5;?:6<kj;|q11d<72=q6>::51dg8971728;n70<9b;32a>;5>m0:=h5rs364>5<5s48<?78i;<064?7bm2wx>8750;1x971428on70<80;32b>;5>m0:=k5rs365>5<5s48<>78i;<07b?7bm2wx>8650;0x971528on70<80;316>{t:0?1<7<t=3`3>3`<5;3n6<kj;|q1=1<72;q6>lh56g9>6<b=9lo0q~<63;296~;5il0=j63=9b82a`=z{;396=4={<0b`?0a3482n7?je:p6<7=838p1?ol:7d897?f28on7p}=9183>7}::hh1:k5228;95`c<uz83j7>52z?1ed<1n279554>ed9~w7>b2909w0<n9;4e?84>?3;ni6s|29f94?4|5;k36;h4=3;5>4cb3ty9?n4?:3y>601=>o16>9;51dg8yv44j3:1>v3=5785b>;5<=0:ih5rs31b>5<5s48>978i;<077?7bm2wx>>750;0x97332?l01?:=:0gf?xu5;10;6?u224192c=::=;1=hk4}r003?6=:r799?49f:?105<6ml1v?=9:18184293<m70<<f;3fa>{t::?1<7<t=373>3`<5;9n6<kj;|q171<72;q6>9h56g9>66b=9lo0q~<>9;296~;5<=0=j63=0882a3=z{;;36=4={<077?0a348;47?j6:p641=838p1?:=:7d8976028o=7p}=1783>7}::=;1:k5221495`0<uz8:97>52z?105<1n279<84>e79~w7732909w0<<f;4e?847<3;n:6s|20194?4|5;9n6;h4=320>4c13ty9=?4?:3y>66b=>o16>=<51d48yv4593:1>v3=9e85b>;5980:i;5rs303>5<5s482o78i;<024?7b>2wx><h50;0x97?e2?l01?>i:0g5?xu59l0;6?u228c92c=::9o1=h84}r02`?6=:r795449f:?14a<6m?1v??l:18184>03<m70<?c;3f2>{t:8h1<7<t=3;4>3`<5;:i6<k9;|q15d<72;q6>4856g9>65g=9l<0q~=?2;296~;5no0:i;523149575<uz9=j7>54z?02a<6m?16?:9513189612288970=88;317>{t;ll1<7=t=2f7>444349h?7?=3:?0g`<6m?1v9<?:187826m3;n:63;298266=:<;<1=?<4=50:>4443ty:o<4?:3y>72?=9l<01>97:03e?xu6l?0;6?u243c95`0<5=826<?i;|q2<a<72;q6>;k51d48970c28887p}>a`83>7}::kh1=h84=3`b>4443ty?i=4?:3y>0`6=9l<019jk:7d8yv7en3:1>v3<0182a3=:;9>1=<k4}r3`6?6=:r78ok4>e79>7a5=9;90q~?l4;296~;4810:i;5231`9575<uz;h:7>52z?04<<6m?16?=j51318yv7d03:1>v3<0`82a3=:;9l1=?=4}r6`1?6=:r7?o;4>e79>0f2=99l0qp}91e83>7}Y>8n01;=560f8 1c428o;7p}92583>7}Y>;>01;=56368 1c428o:7p}90483>7}Y>9?01;=56178 1c428o97p}:6883>7}Y==?01;=55578 1c428297p}:6683>7}Y==>01;=55568 1c4282o7p}:6783>7}Y==901;=55518 1c428337p}:6483>7}Y==801;=55508 1c428k87p}:6583>7}Y==;01;=55538 1c428k37p}:6283>7}Y==:01;=55528 1c428kj7p}:6083>7}Y=:o01;=552g8 1c428h>7p}:6183>7}Y=:n01;=552f8 1c428hm7p}:5g83>7}Y=:i01;=552a8 1c428i;7p}:5d83>7}Y=:h01;=552`8 1c428i97p}:5e83>7}Y=:k01;=552c8 1c428i87p}:5b83>7}Y=:301;=552;8 1c428i?7p}:5c83>7}Y=:201;=552:8 1c428i>7p}:5`83>7}Y=:=01;=55258 1c428i=7p}:5883>7}Y=:<01;=55248 1c428i<7p}:5983>7}Y=:?01;=55278 1c428i37p}:5783>7}Y=:901;=55218 1c428i27p}:5483>7}Y=:801;=55208 1c428ij7p}:5583>7}Y=:;01;=55238 1c428ii7p}:5283>7}Y=::01;=55228 1c428ih7p}:5383>7}Y=;l01;=553d8 1c428io7p}:5083>7}Y=;o01;=553g8 1c428in7p}:5183>7}Y=;n01;=553f8 1c428im7p}:4g83>7}Y=;i01;=553a8 1c428n;7p}:4d83>7}Y=;h01;=553`8 1c428n:7p}:4e83>7}Y=;k01;=553c8 1c428n97p}:7183>7}Y==h01;=555`8 1c428n87p}:6g83>7}Y==k01;=555c8 1c428n?7p}:6d83>7}Y==301;=555;8 1c428n>7p}:6e83>7}Y==201;=555:8 1c428n<7p}:6b83>7}Y===01;=55558 1c428n37p}:6c83>7}Y==<01;=55548 1c428n27p}:6`83>7}Y=:l01;=552d8 1c428nj7p}:6383>7}Y=:>01;=55268 1c428ni7p}:5683>7}Y=;301;=553;8 1c428nh7p}:4b83>7}Y=;201;=553:8 1c428no7p}93`83>7}Y>:k01;=562c8 1c428nn7p}91c83>7}Y>8h01;=560`8 1c428nm7p}:b383>7}Y=1o01;=559g8 1c428=n7p}:b183>7}Y=1n01;=559f8 1c428=m7p}:ag83>7}Y=1i01;=559a8 1c4282;7p}:ad83>7}Y=1h01;=559`8 1c4282:7p}:ae83>7}Y=1k01;=559c8 1c428287p}:ab83>7}Y=1301;=559;8 1c4282?7p}:a`83>7}Y=1=01;=55958 1c4282>7p}:a883>7}Y=1<01;=55948 1c4282=7p}:a983>7}Y=1?01;=55978 1c4282<7p}:a683>7}Y=1>01;=55968 1c428237p}:a783>7}Y=1901;=55918 1c428227p}:a483>7}Y=1801;=55908 1c4282j7p}:a583>7}Y=1;01;=55938 1c4282i7p}:a283>7}Y=1:01;=55928 1c4282h7p}:a383>7}Y=>l01;=556d8 1c4282n7p}:a083>7}Y=>o01;=556g8 1c4282m7p}:9g83>7}Y=>i01;=556a8 1c4283;7p}:9d83>7}Y=>h01;=556`8 1c4283:7p}:9e83>7}Y=>k01;=556c8 1c428397p}:9b83>7}Y=>301;=556;8 1c428387p}:9c83>7}Y=>201;=556:8 1c4283?7p}:9`83>7}Y=>=01;=55658 1c4283>7p}:9883>7}Y=><01;=55648 1c4283=7p}:9983>7}Y=>?01;=55678 1c4283<7p}:9683>7}Y=>>01;=55668 1c428327p}:9783>7}Y=>901;=55618 1c4283j7p}:b883>7}Y=0>01;=55868 1c4283i7p}:b983>7}Y=0901;=55818 1c4283h7p}:b683>7}Y=0801;=55808 1c4283o7p}:b783>7}Y=0;01;=55838 1c4283n7p}:b483>7}Y=0:01;=55828 1c4283m7p}:b583>7}Y=1l01;=559d8 1c428k;7p}:b283>7}Y=1201;=559:8 1c428k:7p}:ac83>7}Y=>n01;=556f8 1c428k97p}:a183>7}Y=>801;=55608 1c428k?7p}:9483>7}Y=>;01;=55638 1c428k>7p}:c083>7}Y=j;01;=55b38 1c428k=7p}:bc83>7}Y=kh01;=55c`8 1c428k<7p}91`83>7}Y>9l01;=561d8 1c428k27p}91983>7}Y>9o01;=561g8 1c428ki7p}91683>7}Y>9n01;=561f8 1c428kh7p}91783>7}Y>9i01;=561a8 1c428ko7p}91483>7}Y>9h01;=561`8 1c428kn7p}91583>7}Y>9k01;=561c8 1c428km7p}91283>7}Y>9301;=561;8 1c428h;7p}91383>7}Y>9201;=561:8 1c428h:7p}91083>7}Y>9=01;=56158 1c428h97p}91183>7}Y>9<01;=56148 1c428h87p}93883>7}Y>;o01;=563g8 1c428h?7p}93683>7}Y>;n01;=563f8 1c428h=7p}93783>7}Y>;i01;=563a8 1c428h<7p}93483>7}Y>;h01;=563`8 1c428h37p}93583>7}Y>;k01;=563c8 1c428h27p}93283>7}Y>;301;=563;8 1c428hj7p}93383>7}Y>;201;=563:8 1c428hi7p}93083>7}Y>;=01;=56358 1c428hh7p}93183>7}Y>;<01;=56348 1c428ho7p}92g83>7}Y>;?01;=56378 1c428hn7psab`f94?4|@=o?7p`mad83>7}O<l>0qclnf;296~N3m=1vbol?:181M2b<2weno?50;0xL1c33tdin?4?:3yK0`2<ughi?7>52zJ7a1=zfkh?6=4={I6f0>{ijk?1<7<tH5g7?xhej?0;6?uG4d68ykde?3:1>vF;e59~jgd?2909wE:j4:mfg?=838pD9k;;|lafd<72;qC8h:4}o`af?6=:rB?i95rnc``>5<5sA>n86sabcf94?4|@=o?7p`mbd83>7}O<l>0qclmf;296~N3m=1vbom?:181M2b<2wenn?50;0xL1c33tdio?4?:3yK0`2<ughh?7>52zJ7a1=zfki?6=4={I6f0>{ijj?1<7<tH5g7?xhek?0;6?uG4d68ykdd?3:1>vF;e59~jge?2909wE:j4:mff?=838pD9k;;|lagd<72;qC8h:4}o``f?6=:rB?i95rnca`>5<5sA>n86sabbf94?4|@=o?7p`mcd83>7}O<l>0qcllf;296~N3m=1vboj?:181M2b<2weni?50;0xL1c33tdih?4?:3yK0`2<ugho?7>52zJ7a1=zfkn?6=4={I6f0>{ijm?1<7<tH5g7?xhel?0;6?uG4d68ykdc?3:1>vF;e59~jgb?2909wE:j4:mfa?=838pD9k;;|la`d<72;qC8h:4}o`gf?6=:rB?i95rncf`>5<5sA>n86sabef94?4|@=o?7p`mdd83>7}O<l>0qclkf;296~N3m=1vbok?:181M2b<2wenh?50;0xL1c33tdii?4?:3yK0`2<ughn?7>52zJ7a1=zfko?6=4={I6f0>{ijl?1<7<tH5g7?xhem?0;6?uG4d68ykdb?3:1>vF;e59~jgc?2909wE:j4:mf`?=838pD9k;;|laad<72;qC8h:4}o`ff?6=:rB?i95rncg`>5<5sA>n86sabdf94?4|@=o?7p`med83>7}O<l>0qcljf;296~N3m=1vboh?:181M2b<2wenk?50;0xL1c33tdij?4?:3yK0`2<ughm?7>52zJ7a1=zfkl?6=4={I6f0>{ijo?1<7<tH5g7?xhen?0;6?uG4d68ykda?3:1>vF;e59~jg`?2909wE:j4:mfc?=838pD9k;;|labd<72;qC8h:4}o`ef?6=:rB?i95rncd`>5<5sA>n86sabgf94?4|@=o?7p`mfd83>7}O<l>0qclif;296~N3m=1vbn>?:181M2b<2weo=?50;0xL1c33tdh<?4?:3yK0`2<ugi;?7>52zJ7a1=zfj:?6=4={I6f0>{ik9?1<7<tH5g7?xhd8?0;6?uG4d68yke7?3:1>vF;e59~jf6?2909wE:j4:mg5?=838pD9k;;|l`4d<72;qC8h:4}oa3f?6=:rB?i95rnb2`>5<5sA>n86sac1f94?4|@=o?7p`l0d83>7}O<l>0qcm?f;296~N3m=1vbl>6:182M2b<2wem9:50;3xL1c33tdj884?:0yK0`2<ugk?:7>51zJ7a1=zfh><6=4>{I6f0>{ii=21<7?tH5g7?xhf<00;6<uG4d68ykg3i3:1=vF;e59~jd2e290:wE:j4:me1e=83;pD9k;;|lb0a<728qC8h:4}oc7a?6=9rB?i95rn`6e>5<6sA>n86saa4294?7|@=o?7p`n5083>4}O<l>0qco:2;295~N3m=1vbl;<:182M2b<2wem8:50;3xL1c33tdj984?:0yK0`2<ugk>:7>51zJ7a1=zfh?<6=4>{I6f0>{ii<21<7?tH5g7?xhf=00;6<uG4d68ykg2i3:1=vF;e59~jd3e290:wE:j4:me0e=83;pD9k;;|lb1a<728qC8h:4}oc6a?6=9rB?i95rn`7e>5<6sA>n86saa7294?7|@=o?7p`n6083>4}O<l>0qco92;295~N3m=1vbl8<:182M2b<2wem;:50;3xL1c33tdj:84?:0yK0`2<ugk=:7>51zJ7a1=zfh<<6=4>{I6f0>{ii?21<7?tH5g7?xhf>00;6<uG4d68ykg1i3:1=vF;e59~jd0e290:wE:j4:me3e=83;pD9k;;|lb2a<728qC8h:4}oc5a?6=9rB?i95rn`4e>5<6sA>n86saa6294?7|@=o?7p`n7083>4}O<l>0qco82;295~N3m=1vbl9<:182M2b<2wem::50;3xL1c33tdj;84?:0yK0`2<ugk<:7>51zJ7a1=zfh=<6=4>{I6f0>{ii>21<7?tH5g7?xhf?00;6<uG4d68ykg0i3:1=vF;e59~jd1e290:wE:j4:me2e=83;pD9k;;|lb3a<728qC8h:4}oc4a?6=9rB?i95rn`5e>5<6sA>n86saa9294?7|@=o?7p`n8083>4}O<l>0qco72;295~N3m=1vbl6<:182M2b<2wem5:50;3xL1c33tdj484?:0yK0`2<ugk3:7>51zJ7a1=zfh2<6=4>{I6f0>{ii121<7?tH5g7?xhf000;6<uG4d68ykg?i3:1=vF;e59~jd>e290:wE:j4:me=e=83;pD9k;;|lb<a<728qC8h:4}oc;a?6=9rB?i95rn`:e>5<6sA>n86saa8294?7|@=o?7p`n9083>4}O<l>0qco62;295~N3m=1vbl7<:182M2b<2wem4:50;3xL1c33tdj584?:0yK0`2<ugk2:7>51zJ7a1=zfh3<6=4>{I6f0>{ii021<7?tH5g7?xhf100;6<uG4d68ykg>i3:1=vF;e59~jd?e290:wE:j4:me<e=83;pD9k;;|lb=a<728qC8h:4}oc:a?6=9rB?i95rn`;e>5<6sA>n86saa`294?7|@=o?7p`na083>4}O<l>0qcon2;295~N3m=1vblo<:182M2b<2weml:50;3xL1c33tdjm84?:0yK0`2<ugkj:7>51zJ7a1=zfhk<6=4>{I6f0>{iih21<7?tH5g7?xhfi00;6<uG4d68ykgfi3:1=vF;e59~jdge290:wE:j4:mede=83;pD9k;;|lbea<728qC8h:4}ocba?6=9rB?i95rn`ce>5<6sA>n86saac294?7|@=o?7p`nb083>4}O<l>0qcom2;295~N3m=1vbll<:182M2b<2wemo:50;3xL1c33tdjn84?:0yK0`2<ugki:7>51zJ7a1=zfhh<6=4>{I6f0>{iik21<7?tH5g7?xhfj00;6<uG4d68ykgei3:1=vF;e59~jdde290:wE:j4:mege=83;pD9k;;|lbfa<728qC8h:4}ocaa?6=9rB?i95rn``e>5<6sA>n86saab294?7|@=o?7p`nc083>4}O<l>0qcol2;295~N3m=1vblm<:182M2b<2wemn:50;3xL1c33tdjo84?:0yK0`2<ugkh:7>51zJ7a1=zfhi<6=4>{I6f0>{iij21<7?tH5g7?xhfk00;6<uG4d68ykgdi3:1=vF;e59~jdee290:wE:j4:mefe=83;pD9k;;|lbga<728qC8h:4}oc`a?6=9rB?i95rn`ae>5<6sA>n86saae294?7|@=o?7p`nd083>4}O<l>0qcok2;295~N3m=1vblj<:182M2b<2wemi:50;3xL1c33tdjh84?:0yK0`2<ugko:7>51zJ7a1=zfhn<6=4>{I6f0>{iim21<7?tH5g7?xhfl00;6<uG4d68ykgci3:1=vF;e59~jdbe290:wE:j4:meae=83;pD9k;;|lb`a<728qC8h:4}ocga?6=9rB?i95rn`fe>5<6sA>n86saad294?7|@=o?7p`ne083>4}O<l>0qcoj2;295~N3m=1vblk<:182M2b<2wemh:50;3xL1c33tdji84?:0yK0`2<ugkn:7>51zJ7a1=zfho<6=4>{I6f0>{iil21<7?tH5g7?xhfm00;6<uG4d68ykgbi3:1=vF;e59~jdce290:wE:j4:me`e=83;pD9k;;|lbaa<728qC8h:4}ocfa?6=9rB?i95rn`ge>5<6sA>n86saag294?7|@=o?7p`nf083>4}O<l>0qcoi2;295~N3m=1vblh<:182M2b<2wemk:50;3xL1c33tdjj84?:0yK0`2<ugkm:7>51zJ7a1=zfhl<6=4>{I6f0>{iio21<7?tH5g7?xhfn00;6<uG4d68ykgai3:1=vF;e59~jd`e290:wE:j4:mece=83;pD9k;;|lbba<728qC8h:4}ocea?6=9rB?i95rn`de>5<6sA>n86sab1294?7|@=o?7p`m0083>4}O<l>0qcl?2;295~N3m=1vbo><:182M2b<2wen=:50;3xL1c33tdi<84?:0yK0`2<ugh;:7>51zJ7a1=zfk:<6=4>{I6f0>{ij921<7?tH5g7?xhe800;6<uG4d68ykd7i3:1=vF;e59~jg6e290:wE:j4:mf5e=83;pD9k;;|la4a<728qC8h:4}o`3a?6=9rB?i95rnc2e>5<6sA>n86sab0294?7|@=o?7p`m1083>4}O<l>0qcl>2;295~N3m=1vbo?<:182M2b<2wen<:50;3xL1c33tdi=84?:0yK0`2<ugh::7>51zJ7a1=zfk;<6=4>{I6f0>{ij821<7?tH5g7?xhe900;6<uG4d68ykd6i3:1=vF;e59~jg7e290:wE:j4:mf4e=83;pD9k;;|la5a<728qC8h:4}o`2a?6=9rB?i95rnc3e>5<6sA>n86sab3294?7|@=o?7p`m2083>4}O<l>0qcl=2;295~N3m=1vbo<<:182M2b<2wen?:50;3xL1c33tdi>84?:0yK0`2<ugh9:7>51zJ7a1=zfk8<6=4>{I6f0>{ij;21<7?tH5g7?xhe:00;6<uG4d68ykd5i3:1=vF;e59~jg4e290:wE:j4:mf7e=83;pD9k;;|la6a<728qC8h:4}o`1a?6=9rB?i95rnc0e>5<6sA>n86sab2294?7|@=o?7p`m3083>4}O<l>0qcl<2;295~N3m=1vbo=<:182M2b<2wen>:50;3xL1c33tdi?84?:0yK0`2<ugh8:7>51zJ7a1=zfk9<6=4>{I6f0>{ij:21<7?tH5g7?xhe;00;6<uG4d68ykd4i3:1=vF;e59~jg5e290:wE:j4:mf6e=83;pD9k;;|la7a<728qC8h:4}o`0a?6=9rB?i95rnc1e>5<6sA>n86sab5294?7|@=o?7p`m4083>4}O<l>0qcl;2;295~N3m=1vbo:<:182M2b<2wen9:50;3xL1c33tdi884?:0yK0`2<ugh?:7>51zJ7a1=zfk><6=4>{I6f0>{ij=21<7?tH5g7?xhe<00;6<uG4d68ykd3i3:1=vF;e59~jg2e290:wE:j4:mf1e=83;pD9k;;|la0a<728qC8h:4}o`7a?6=9rB?i95rnc6e>5<6sA>n86sab4294?7|@=o?7p`m5083>4}O<l>0qcl:2;295~N3m=1vbo;<:182M2b<2wen8:50;3xL1c33tdi984?:0yK0`2<ugh>:7>51zJ7a1=zfk?<6=4>{I6f0>{ij<21<7?tH5g7?xhe=00;6<uG4d68ykd2i3:1=vF;e59~jg3e290:wE:j4:mf0e=83;pD9k;;|la1a<728qC8h:4}o`6a?6=9rB?i95rnc7e>5<6sA>n86sab7294?7|@=o?7p`m6083>4}O<l>0qcl92;295~N3m=1vbo8<:182M2b<2wen;:50;3xL1c33tdi:84?:0yK0`2<ugh=:7>51zJ7a1=zfk<<6=4>{I6f0>{ij?21<7?tH5g7?xhe>00;6<uG4d68ykd1i3:1=vF;e59~jg0e290:wE:j4:mf3e=83;pD9k;;|la2a<728qC8h:4}o`5a?6=9rB?i95rnc4e>5<6sA>n86sab6294?7|@=o?7p`m7083>4}O<l>0qcl82;295~N3m=1vbo9<:182M2b<2wen::50;3xL1c33tdi;84?:0yK0`2<ugh<:7>51zJ7a1=zfk=<6=4>{I6f0>{ij>21<7?tH5g7?xhe?00;6<uG4d68ykd0i3:1=vF;e59~jg1e290:wE:j4:mf2e=83;pD9k;;|la3a<728qC8h:4}o`4a?6=9rB?i95rnc5e>5<6sA>n86sab9294?7|@=o?7p`m8083>4}O<l>0qcl72;295~N3m=1vbo6<:182M2b<2wen5:50;3xL1c33tdi484?:0yK0`2<ugh3:7>51zJ7a1=zfk2<6=4>{I6f0>{ij121<7?tH5g7?xhe000;6<uG4d68ykd?i3:1=vF;e59~jg>e290:wE:j4:mf=e=83;pD9k;;|la<a<728qC8h:4}o`;a?6=9rB?i95rnc:e>5<6sA>n86sab8294?7|@=o?7p`m9083>4}O<l>0qcl62;295~N3m=1vbo7<:182M2b<2wen4:50;3xL1c33tdi584?:0yK0`2<ugh2:7>51zJ7a1=zfk3<6=4>{I6f0>{ij021<7?tH5g7?xhe100;6<uG4d68ykd>i3:1=vF;e59~jg?e290:wE:j4:mf<e=83;pD9k;;|la=a<728qC8h:4}o`:a?6=9rB?i95rnc;e>5<6sA>n86sab`294?7|@=o?7p`ma083>4}O<l>0qcln2;295~N3m=1vboo<:182M2b<2wenl:50;3xL1c33tdim84?:0yK0`2<ughj:7>51zJ7a1=zfkk<6=4>{I6f0>{ijh21<7?tH5g7?xhei00;6<uG4d68ykdfi3:1=vF;e59~jgge290:wE:j4:mfde=83;pD9k;;|~yEFDsmno6>=jd7:6`xFGJr:vLM^t}AB
\ No newline at end of file diff --git a/fpga/usrp2/coregen/fifo_s6_512x36_2clk.v b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.v new file mode 100644 index 000000000..4b7a31173 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.v @@ -0,0 +1,173 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The synthesis directives "translate_off/translate_on" specified below are +// supported by Xilinx, Mentor Graphics and Synplicity synthesis +// tools. Ensure they are correct for your synthesis tool(s). + +// You must compile the wrapper file fifo_s6_512x36_2clk.v when simulating +// the core, fifo_s6_512x36_2clk. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + +`timescale 1ns/1ps + +module fifo_s6_512x36_2clk( + rst, + wr_clk, + rd_clk, + din, + wr_en, + rd_en, + dout, + full, + empty, + rd_data_count, + wr_data_count); + + +input rst; +input wr_clk; +input rd_clk; +input [35 : 0] din; +input wr_en; +input rd_en; +output [35 : 0] dout; +output full; +output empty; +output [9 : 0] rd_data_count; +output [9 : 0] wr_data_count; + +// synthesis translate_off + + FIFO_GENERATOR_V6_1 #( + .C_COMMON_CLOCK(0), + .C_COUNT_TYPE(0), + .C_DATA_COUNT_WIDTH(9), + .C_DEFAULT_VALUE("BlankString"), + .C_DIN_WIDTH(36), + .C_DOUT_RST_VAL("0"), + .C_DOUT_WIDTH(36), + .C_ENABLE_RLOCS(0), + .C_ENABLE_RST_SYNC(1), + .C_ERROR_INJECTION_TYPE(0), + .C_FAMILY("spartan6"), + .C_FULL_FLAGS_RST_VAL(1), + .C_HAS_ALMOST_EMPTY(0), + .C_HAS_ALMOST_FULL(0), + .C_HAS_BACKUP(0), + .C_HAS_DATA_COUNT(0), + .C_HAS_INT_CLK(0), + .C_HAS_MEMINIT_FILE(0), + .C_HAS_OVERFLOW(0), + .C_HAS_RD_DATA_COUNT(1), + .C_HAS_RD_RST(0), + .C_HAS_RST(1), + .C_HAS_SRST(0), + .C_HAS_UNDERFLOW(0), + .C_HAS_VALID(0), + .C_HAS_WR_ACK(0), + .C_HAS_WR_DATA_COUNT(1), + .C_HAS_WR_RST(0), + .C_IMPLEMENTATION_TYPE(2), + .C_INIT_WR_PNTR_VAL(0), + .C_MEMORY_TYPE(1), + .C_MIF_FILE_NAME("BlankString"), + .C_MSGON_VAL(1), + .C_OPTIMIZATION_MODE(0), + .C_OVERFLOW_LOW(0), + .C_PRELOAD_LATENCY(0), + .C_PRELOAD_REGS(1), + .C_PRIM_FIFO_TYPE("512x36"), + .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), + .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), + .C_PROG_EMPTY_TYPE(0), + .C_PROG_FULL_THRESH_ASSERT_VAL(511), + .C_PROG_FULL_THRESH_NEGATE_VAL(510), + .C_PROG_FULL_TYPE(0), + .C_RD_DATA_COUNT_WIDTH(10), + .C_RD_DEPTH(512), + .C_RD_FREQ(1), + .C_RD_PNTR_WIDTH(9), + .C_UNDERFLOW_LOW(0), + .C_USE_DOUT_RST(1), + .C_USE_ECC(0), + .C_USE_EMBEDDED_REG(0), + .C_USE_FIFO16_FLAGS(0), + .C_USE_FWFT_DATA_COUNT(1), + .C_VALID_LOW(0), + .C_WR_ACK_LOW(0), + .C_WR_DATA_COUNT_WIDTH(10), + .C_WR_DEPTH(512), + .C_WR_FREQ(1), + .C_WR_PNTR_WIDTH(9), + .C_WR_RESPONSE_LATENCY(1)) + inst ( + .RST(rst), + .WR_CLK(wr_clk), + .RD_CLK(rd_clk), + .DIN(din), + .WR_EN(wr_en), + .RD_EN(rd_en), + .DOUT(dout), + .FULL(full), + .EMPTY(empty), + .RD_DATA_COUNT(rd_data_count), + .WR_DATA_COUNT(wr_data_count), + .BACKUP(), + .BACKUP_MARKER(), + .CLK(), + .SRST(), + .WR_RST(), + .RD_RST(), + .PROG_EMPTY_THRESH(), + .PROG_EMPTY_THRESH_ASSERT(), + .PROG_EMPTY_THRESH_NEGATE(), + .PROG_FULL_THRESH(), + .PROG_FULL_THRESH_ASSERT(), + .PROG_FULL_THRESH_NEGATE(), + .INT_CLK(), + .INJECTDBITERR(), + .INJECTSBITERR(), + .ALMOST_FULL(), + .WR_ACK(), + .OVERFLOW(), + .ALMOST_EMPTY(), + .VALID(), + .UNDERFLOW(), + .DATA_COUNT(), + .PROG_FULL(), + .PROG_EMPTY(), + .SBITERR(), + .DBITERR()); + + +// synthesis translate_on + +endmodule + diff --git a/fpga/usrp2/coregen/fifo_s6_512x36_2clk.veo b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.veo new file mode 100644 index 000000000..766965d02 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.veo @@ -0,0 +1,53 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG +fifo_s6_512x36_2clk YourInstanceName ( + .rst(rst), + .wr_clk(wr_clk), + .rd_clk(rd_clk), + .din(din), // Bus [35 : 0] + .wr_en(wr_en), + .rd_en(rd_en), + .dout(dout), // Bus [35 : 0] + .full(full), + .empty(empty), + .rd_data_count(rd_data_count), // Bus [9 : 0] + .wr_data_count(wr_data_count)); // Bus [9 : 0] + +// INST_TAG_END ------ End INSTANTIATION Template --------- + +// You must compile the wrapper file fifo_s6_512x36_2clk.v when simulating +// the core, fifo_s6_512x36_2clk. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + diff --git a/fpga/usrp2/coregen/fifo_s6_512x36_2clk.xco b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.xco new file mode 100644 index 000000000..4f40b8702 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.xco @@ -0,0 +1,84 @@ +############################################################## +# +# Xilinx Core Generator version 12.1 +# Date: Fri May 4 20:46:48 2012 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc6slx75 +SET devicefamily = spartan6 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = csg484 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT Fifo_Generator family Xilinx,_Inc. 6.1 +# END Select +# BEGIN Parameters +CSET almost_empty_flag=false +CSET almost_full_flag=false +CSET component_name=fifo_s6_512x36_2clk +CSET data_count=false +CSET data_count_width=9 +CSET disable_timing_violations=false +CSET dout_reset_value=0 +CSET empty_threshold_assert_value=4 +CSET empty_threshold_negate_value=5 +CSET enable_ecc=false +CSET enable_int_clk=false +CSET enable_reset_synchronization=true +CSET fifo_implementation=Independent_Clocks_Block_RAM +CSET full_flags_reset_value=1 +CSET full_threshold_assert_value=511 +CSET full_threshold_negate_value=510 +CSET inject_dbit_error=false +CSET inject_sbit_error=false +CSET input_data_width=36 +CSET input_depth=512 +CSET output_data_width=36 +CSET output_depth=512 +CSET overflow_flag=false +CSET overflow_sense=Active_High +CSET performance_options=First_Word_Fall_Through +CSET programmable_empty_type=No_Programmable_Empty_Threshold +CSET programmable_full_type=No_Programmable_Full_Threshold +CSET read_clock_frequency=1 +CSET read_data_count=true +CSET read_data_count_width=10 +CSET reset_pin=true +CSET reset_type=Asynchronous_Reset +CSET underflow_flag=false +CSET underflow_sense=Active_High +CSET use_dout_reset=true +CSET use_embedded_registers=false +CSET use_extra_logic=true +CSET valid_flag=false +CSET valid_sense=Active_High +CSET write_acknowledge_flag=false +CSET write_acknowledge_sense=Active_High +CSET write_clock_frequency=1 +CSET write_data_count=true +CSET write_data_count_width=10 +# END Parameters +GENERATE +# CRC: a4cd75c3 diff --git a/fpga/usrp2/coregen/fifo_s6_512x36_2clk.xise b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.xise new file mode 100644 index 000000000..9f43a161e --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_512x36_2clk.xise @@ -0,0 +1,392 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema"> + + <header> + <!-- ISE source project file created by Project Navigator. --> + <!-- --> + <!-- This file contains project source information including a list of --> + <!-- project source files, project and process properties. This file, --> + <!-- along with the project source files, is sufficient to open and --> + <!-- implement in ISE Project Navigator. --> + <!-- --> + <!-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. --> + </header> + + <version xil_pn:ise_version="12.1" xil_pn:schema_version="2"/> + + <files> + <file xil_pn:name="fifo_s6_512x36_2clk.ngc" xil_pn:type="FILE_NGC"> + <association xil_pn:name="BehavioralSimulation"/> + <association xil_pn:name="Implementation"/> + </file> + <file xil_pn:name="fifo_s6_512x36_2clk.v" xil_pn:type="FILE_VERILOG"> + <association xil_pn:name="BehavioralSimulation"/> + <association xil_pn:name="Implementation"/> + <association xil_pn:name="PostMapSimulation"/> + <association xil_pn:name="PostRouteSimulation"/> + <association xil_pn:name="PostTranslateSimulation"/> + </file> + </files> + + <properties> + <property xil_pn:name="AES Initial Vector spartan6" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="AES Key (Hex String) spartan6" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Add I/O Buffers" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Logic Optimization Across Hierarchy" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow SelectMAP Pins to Persist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unexpanded Blocks" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unmatched LOC Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unmatched Timing Group Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Asynchronous To Synchronous" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Auto Implementation Compile Order" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Auto Implementation Top" xil_pn:value="false" xil_pn:valueState="non-default"/> + <property xil_pn:name="Automatic BRAM Packing" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Automatically Insert glbl Module in the Netlist" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Automatically Run Generate Target PROM/ACE File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Autosignature Generation" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="BRAM Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Bring Out Global Set/Reset Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Bring Out Global Tristate Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Bus Delimiter" xil_pn:value="<>" xil_pn:valueState="default"/> + <property xil_pn:name="Case" xil_pn:value="Maintain" xil_pn:valueState="default"/> + <property xil_pn:name="Case Implementation Style" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Change Device Speed To" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Change Device Speed To Post Trace" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Clock Enable" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Collapsing Input Limit (4-40)" xil_pn:value="32" xil_pn:valueState="default"/> + <property xil_pn:name="Collapsing Pterm Limit (3-56)" xil_pn:value="28" xil_pn:valueState="default"/> + <property xil_pn:name="Combinatorial Logic Optimization" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Compile CPLD Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile EDK Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile SIMPRIM (Timing) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile UNISIM (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile XilinxCoreLib (CORE Generator) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile for HDL Debugging" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile uni9000 (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin Done" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin Program" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Rate spartan6" xil_pn:value="2" xil_pn:valueState="default"/> + <property xil_pn:name="Correlate Output to Input Design" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create ASCII Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Binary Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Bit File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Create I/O Pads from Ports" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create IEEE 1532 Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create IEEE 1532 Configuration File spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Logic Allocation File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Mask File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create ReadBack Data Files" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Cross Clock Analysis" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="DSP Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Default Powerup Value of Registers" xil_pn:value="Low" xil_pn:valueState="default"/> + <property xil_pn:name="Delay Values To Be Read from SDF" xil_pn:value="Setup Time" xil_pn:valueState="default"/> + <property xil_pn:name="Device" xil_pn:value="xc6slx75" xil_pn:valueState="non-default"/> + <property xil_pn:name="Device Family" xil_pn:value="Spartan6" xil_pn:valueState="non-default"/> + <property xil_pn:name="Device Speed Grade/Select ABS Minimum" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Do Not Escape Signal and Instance Names in Netlist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Done (Output Events)" xil_pn:value="Default (4)" xil_pn:valueState="default"/> + <property xil_pn:name="Drive Awake Pin During Suspend/Wake Sequence spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Drive Done Pin High" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable BitStream Compression" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Cyclic Redundancy Checking (CRC) spartan6" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Debugging of Serial Mode BitStream" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable External Master Clock spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Internal Done Pipe" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Message Filtering" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Multi-Pin Wake-Up Suspend Mode spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Multi-Threading" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Multi-Threading par" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Outputs (Output Events)" xil_pn:value="Default (5)" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Suspend/Wake Global Set/Reset spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Encrypt Bitstream spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Encrypt Key Select spartan6" xil_pn:value="BBRAM" xil_pn:valueState="default"/> + <property xil_pn:name="Equivalent Register Removal Map" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Equivalent Register Removal XST" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Exclude Compilation of Deprecated EDK Cores" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Exclude Compilation of EDK Sub-Libraries" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Exhaustive Fit Mode" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Extra Cost Tables Map" xil_pn:value="0" xil_pn:valueState="default"/> + <property xil_pn:name="Extra Effort (Highest PAR level only)" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="FPGA Start-Up Clock" xil_pn:value="CCLK" xil_pn:valueState="default"/> + <property xil_pn:name="FSM Encoding Algorithm" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="FSM Style" xil_pn:value="LUT" xil_pn:valueState="default"/> + <property xil_pn:name="Filter Files From Compile Order" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Flatten Output Netlist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Function Block Input Limit (4-40)" xil_pn:value="38" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language ArchWiz" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language Coregen" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language Schematic" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="GTS Cycle During Suspend/Wakeup Sequence spartan6" xil_pn:value="4" xil_pn:valueState="default"/> + <property xil_pn:name="GWE Cycle During Suspend/Wakeup Sequence spartan6" xil_pn:value="5" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Architecture Only (No Entity Declaration)" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Asynchronous Delay Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Clock Region Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Constraints Interaction Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Constraints Interaction Report Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Datasheet Section" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Datasheet Section Post Trace" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Detailed MAP Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Detailed Package Parasitics" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Multiple Hierarchical Netlist Files" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Fit Power Data" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Fit Simulation Model" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Place & Route Power Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Place & Route Simulation Model" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate RTL Schematic" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Generate SAIF File for Power Optimization/Estimation Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Testbench File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Timegroups Section" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Timegroups Section Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generics, Parameters" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Global Optimization Goal" xil_pn:value="AllClockNets" xil_pn:valueState="default"/> + <property xil_pn:name="Global Optimization map" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Global Set/Reset Port Name" xil_pn:value="GSR_PORT" xil_pn:valueState="default"/> + <property xil_pn:name="Global Tristate Port Name" xil_pn:value="GTS_PORT" xil_pn:valueState="default"/> + <property xil_pn:name="HDL Equations Style" xil_pn:value="Source" xil_pn:valueState="default"/> + <property xil_pn:name="Hierarchy Separator" xil_pn:value="/" xil_pn:valueState="default"/> + <property xil_pn:name="I/O Voltage Standard" xil_pn:value="LVCMOS18" xil_pn:valueState="default"/> + <property xil_pn:name="ISim UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Ignore User Timing Constraints Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Ignore User Timing Constraints Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Implementation Stop View" xil_pn:value="Structural" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Template" xil_pn:value="Optimize Density" xil_pn:valueState="default"/> + <property xil_pn:name="Implementation Top" xil_pn:value="Module|fifo_s6_512x36_2clk" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top File" xil_pn:value="fifo_s6_512x36_2clk.ngc" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top Instance Path" xil_pn:value="/fifo_s6_512x36_2clk" xil_pn:valueState="non-default"/> + <property xil_pn:name="Include 'uselib Directive in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include SIMPRIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include UNISIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include sdf_annotate task in Verilog File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Incremental Compilation" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Input and tristate I/O Termination Mode" xil_pn:value="Keeper" xil_pn:valueState="default"/> + <property xil_pn:name="Insert Buffers to Prevent Pulse Swallowing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Instantiation Template Target Language Xps" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TCK" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TDI" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TDO" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TMS" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Keep Hierarchy" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Keep Hierarchy CPLD" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="LUT Combining Map" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="LUT Combining Xst" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Language" xil_pn:value="VHDL" xil_pn:valueState="default"/> + <property xil_pn:name="Logic Optimization" xil_pn:value="Density" xil_pn:valueState="default"/> + <property xil_pn:name="Macro Preserve" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Manual Implementation Compile Order" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Map Slice Logic into Unused Block RAMs" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Mask Pins for Multi-Pin Wake-Up Suspend Mode spartan6" xil_pn:value="0x00" xil_pn:valueState="default"/> + <property xil_pn:name="Max Fanout" xil_pn:value="100000" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Compression" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Number of Lines in Report" xil_pn:value="1000" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Signal Name Length" xil_pn:value="20" xil_pn:valueState="default"/> + <property xil_pn:name="Move First Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Move Last Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Next Configuration Mode spartan6" xil_pn:value="001" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Starting Address for Golden Configuration spartan6" xil_pn:value="0x00000000" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Starting Address for Next Configuration spartan6" xil_pn:value="0x00000000" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Use New Mode for Next Configuration spartan6" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: User-Defined Register for Failsafe Scheme spartan6" xil_pn:value="0x0000" xil_pn:valueState="default"/> + <property xil_pn:name="Mux Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Netlist Hierarchy" xil_pn:value="As Optimized" xil_pn:valueState="default"/> + <property xil_pn:name="Netlist Translation Type" xil_pn:value="Timestamp" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Clock Buffers" xil_pn:value="16" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Paths in Error/Verbose Report" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Paths in Error/Verbose Report Post Trace" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Effort" xil_pn:value="Normal" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Goal" xil_pn:value="Speed" xil_pn:valueState="default"/> + <property xil_pn:name="Optimize Instantiated Primitives" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Other Bitgen Command Line Options spartan6" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other CPLD Fitter Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Fit" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Par" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compxlib Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Map Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other NETGEN Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Ngdbuild Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Place & Route Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Programming Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Behavioral" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Fit" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Route" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Timing Report Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other XPWR Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other XST Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Output Extended Identifiers" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Output File Name" xil_pn:value="fifo_s6_512x36_2clk" xil_pn:valueState="default"/> + <property xil_pn:name="Output Slew Rate" xil_pn:value="Fast" xil_pn:valueState="default"/> + <property xil_pn:name="Overwrite Compiled Libraries" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Pack I/O Registers into IOBs" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Pack I/O Registers/Latches into IOBs" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Package" xil_pn:value="csg484" xil_pn:valueState="default"/> + <property xil_pn:name="Perform Advanced Analysis" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Perform Advanced Analysis Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Place & Route Effort Level (Overall)" xil_pn:value="High" xil_pn:valueState="default"/> + <property xil_pn:name="Place And Route Mode" xil_pn:value="Normal Place and Route" xil_pn:valueState="default"/> + <property xil_pn:name="Place MultiBoot Settings into Bitstream spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Placer Effort Level Map" xil_pn:value="High" xil_pn:valueState="default"/> + <property xil_pn:name="Placer Extra Effort Map" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Port to be used" xil_pn:value="Auto - default" xil_pn:valueState="default"/> + <property xil_pn:name="Post Map Simulation Model Name" xil_pn:value="fifo_s6_512x36_2clk_map.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Place & Route Simulation Model Name" xil_pn:value="fifo_s6_512x36_2clk_timesim.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Synthesis Simulation Model Name" xil_pn:value="fifo_s6_512x36_2clk_synthesis.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Translate Simulation Model Name" xil_pn:value="fifo_s6_512x36_2clk_translate.v" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Xst" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Preferred Language" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Preserve Unused Inputs" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Produce Advanced Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Produce Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Project Generator" xil_pn:value="CoreGen" xil_pn:valueState="non-default"/> + <property xil_pn:name="Property Specification in Project File" xil_pn:value="Store all values" xil_pn:valueState="default"/> + <property xil_pn:name="RAM Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="RAM Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="ROM Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="ROM Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Read Cores" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Reduce Control Sets" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Regenerate Core" xil_pn:value="Under Current Project Setting" xil_pn:valueState="default"/> + <property xil_pn:name="Register Balancing" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Register Duplication Map" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Register Duplication Xst" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Release Write Enable (Output Events)" xil_pn:value="Default (6)" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Design Instance in Testbench File to" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Architecture To" xil_pn:value="Structure" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Entity to" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Module To" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Report Fastest Path(s) in Each Constraint" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Report Fastest Path(s) in Each Constraint Post Trace" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Report Paths by Endpoint" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Report Paths by Endpoint Post Trace" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Report Type" xil_pn:value="Verbose Report" xil_pn:valueState="default"/> + <property xil_pn:name="Report Type Post Trace" xil_pn:value="Verbose Report" xil_pn:valueState="default"/> + <property xil_pn:name="Report Unconstrained Paths" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Report Unconstrained Paths Post Trace" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Reset On Configuration Pulse Width" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Resource Sharing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Retain Hierarchy" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Retiming Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Retry Configuration if CRC Error Occurs spartan6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Run Design Rules Checker (DRC)" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Map" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Par" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Translate" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Safe Implementation" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Security" xil_pn:value="Enable Readback and Reconfiguration" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Behavioral" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Route" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Source Node" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Set SPI Configuration Bus Width spartan6" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Setup External Master Clock Division spartan6" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Shift Register Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Shift Register Minimum Size spartan6" xil_pn:value="2" xil_pn:valueState="default"/> + <property xil_pn:name="Show All Models" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Model Target" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time ISim" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Map" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Par" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Translate" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Slice Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Specify 'define Macro Name and Value" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Behavioral" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Fit" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Map" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Route" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Translate" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Speed Grade" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Starting Placer Cost Table (1-100) Map" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Synthesis Tool" xil_pn:value="XST (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Target Simulator" xil_pn:value="Please Specify" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Mode Map" xil_pn:value="Performance Evaluation" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Mode Par" xil_pn:value="Performance Evaluation" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Report Format" xil_pn:value="Summary" xil_pn:valueState="default"/> + <property xil_pn:name="Top-Level Module Name in Output Netlist" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Top-Level Source Type" xil_pn:value="HDL" xil_pn:valueState="default"/> + <property xil_pn:name="Trim Unconnected Signals" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Tristate On Configuration Pulse Width" xil_pn:value="0" xil_pn:valueState="default"/> + <property xil_pn:name="Unused I/O Pad Termination Mode" xil_pn:value="Keeper" xil_pn:valueState="default"/> + <property xil_pn:name="Unused IOB Pins" xil_pn:value="Pull Down" xil_pn:valueState="default"/> + <property xil_pn:name="Use Clock Enable" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Fit" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Route" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Behav" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Fit" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use DSP Block spartan6" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Data Gate" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Direct Input for Input Registers" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Global Clocks" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Global Output Enables" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Global Set/Reset" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use LOC Constraints" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Location Constraints" xil_pn:value="Always" xil_pn:valueState="default"/> + <property xil_pn:name="Use Multi-level Logic Optimization" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use RLOC Constraints" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Use Smart Guide" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synchronous Reset" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synchronous Set" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synthesis Constraints File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Timing Constraints" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="UserID Code (8 Digit Hexadecimal)" xil_pn:value="0xFFFFFFFF" xil_pn:valueState="default"/> + <property xil_pn:name="VCCAUX Voltage Level spartan6" xil_pn:value="2.5V" xil_pn:valueState="default"/> + <property xil_pn:name="VHDL Source Analysis Standard" xil_pn:value="VHDL-93" xil_pn:valueState="default"/> + <property xil_pn:name="Value Range Check" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Verilog 2001 Xst" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Verilog Macros" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="WYSIWYG" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Wait for DCM and PLL Lock (Output Events) spartan6" xil_pn:value="Default (NoWait)" xil_pn:valueState="default"/> + <property xil_pn:name="Wakeup Clock spartan6" xil_pn:value="Startup Clock" xil_pn:valueState="default"/> + <property xil_pn:name="Watchdog Timer Value spartan6" xil_pn:value="0xFFFF" xil_pn:valueState="default"/> + <property xil_pn:name="Working Directory" xil_pn:value="." xil_pn:valueState="default"/> + <property xil_pn:name="Write Timing Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="XOR Preserve" xil_pn:value="true" xil_pn:valueState="default"/> + <!-- --> + <!-- The following properties are for internal use only. These should not be modified.--> + <!-- --> + <property xil_pn:name="PROP_BehavioralSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_DesignName" xil_pn:value="fifo_s6_512x36_2clk" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan6" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_FPGAConfiguration" xil_pn:value="FPGAConfiguration" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostFitSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostMapSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostParSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostSynthSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostXlateSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_intProjectCreationTimestamp" xil_pn:value="2012-05-04T13:46:49" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWbtProjectID" xil_pn:value="F64CBD650BAE027D4131AE4B4B6DCBBE" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirLocWRTProjDir" xil_pn:value="Same" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirUsed" xil_pn:value="No" xil_pn:valueState="non-default"/> + </properties> + + <bindings/> + + <libraries/> + + <autoManagedFiles> + <!-- The following files are identified by `include statements in verilog --> + <!-- source files and are automatically managed by Project Navigator. --> + <!-- --> + <!-- Do not hand-edit this section, as it will be overwritten when the --> + <!-- project is analyzed based on files automatically identified as --> + <!-- include files. --> + </autoManagedFiles> + +</project> diff --git a/fpga/usrp2/coregen/fifo_s6_512x36_2clk_flist.txt b/fpga/usrp2/coregen/fifo_s6_512x36_2clk_flist.txt new file mode 100644 index 000000000..e72108931 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_512x36_2clk_flist.txt @@ -0,0 +1,13 @@ +# Output products list for <fifo_s6_512x36_2clk> +_xmsgs/pn_parser.xmsgs +fifo_generator_ug175.pdf +fifo_s6_512x36_2clk.asy +fifo_s6_512x36_2clk.gise +fifo_s6_512x36_2clk.ngc +fifo_s6_512x36_2clk.v +fifo_s6_512x36_2clk.veo +fifo_s6_512x36_2clk.xco +fifo_s6_512x36_2clk.xise +fifo_s6_512x36_2clk_flist.txt +fifo_s6_512x36_2clk_readme.txt +fifo_s6_512x36_2clk_xmdf.tcl diff --git a/fpga/usrp2/coregen/fifo_s6_512x36_2clk_readme.txt b/fpga/usrp2/coregen/fifo_s6_512x36_2clk_readme.txt new file mode 100644 index 000000000..21f058c0b --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_512x36_2clk_readme.txt @@ -0,0 +1,51 @@ +The following files were generated for 'fifo_s6_512x36_2clk' in directory +/home/matt/fpgapriv/usrp2/coregen/ + +fifo_generator_ug175.pdf: + Please see the core data sheet. + +fifo_s6_512x36_2clk.asy: + Graphical symbol information file. Used by the ISE tools and some + third party tools to create a symbol representing the core. + +fifo_s6_512x36_2clk.gise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_s6_512x36_2clk.ngc: + Binary Xilinx implementation netlist file containing the information + required to implement the module in a Xilinx (R) FPGA. + +fifo_s6_512x36_2clk.v: + Verilog wrapper file provided to support functional simulation. + This file contains simulation model customization data that is + passed to a parameterized simulation model for the core. + +fifo_s6_512x36_2clk.veo: + VEO template file containing code that can be used as a model for + instantiating a CORE Generator module in a Verilog design. + +fifo_s6_512x36_2clk.xco: + CORE Generator input file containing the parameters used to + regenerate a core. + +fifo_s6_512x36_2clk.xise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_s6_512x36_2clk_readme.txt: + Text file indicating the files generated and how they are used. + +fifo_s6_512x36_2clk_xmdf.tcl: + ISE Project Navigator interface file. ISE uses this file to determine + how the files output by CORE Generator for the core can be integrated + into your ISE project. + +fifo_s6_512x36_2clk_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + + +Please see the Xilinx CORE Generator online help for further details on +generated files and how to use them. + diff --git a/fpga/usrp2/coregen/fifo_s6_512x36_2clk_xmdf.tcl b/fpga/usrp2/coregen/fifo_s6_512x36_2clk_xmdf.tcl new file mode 100644 index 000000000..150807984 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_s6_512x36_2clk_xmdf.tcl @@ -0,0 +1,72 @@ +# The package naming convention is <core_name>_xmdf +package provide fifo_s6_512x36_2clk_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is <core_name>_xmdf +namespace eval ::fifo_s6_512x36_2clk_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::fifo_s6_512x36_2clk_xmdf::xmdfInit { instance } { +# Variable containg name of library into which module is compiled +# Recommendation: <module_name> +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_s6_512x36_2clk +} +# ::fifo_s6_512x36_2clk_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::fifo_s6_512x36_2clk_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be magically +# available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_512x36_2clk.asy +utilities_xmdf::xmdfSetData $instance FileSet $fcount type asy +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_512x36_2clk.ngc +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_512x36_2clk.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_512x36_2clk.veo +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_512x36_2clk.xco +utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_s6_512x36_2clk_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_s6_512x36_2clk +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ncf b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ncf new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ncf diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ncf b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ncf new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ncf diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ncf b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ncf new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ncf diff --git a/fpga/usrp2/coregen/pll_100_40_75.asy b/fpga/usrp2/coregen/pll_100_40_75.asy new file mode 100644 index 000000000..9cd1ec359 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75.asy @@ -0,0 +1,29 @@ +Version 4 +SymbolType BLOCK +TEXT 32 32 LEFT 4 pll_100_40_75 +RECTANGLE Normal 32 32 576 1088 +LINE Normal 0 80 32 80 +PIN 0 80 LEFT 36 +PINATTR PinName clk_in1 +PINATTR Polarity IN +LINE Normal 0 432 32 432 +PIN 0 432 LEFT 36 +PINATTR PinName reset +PINATTR Polarity IN +LINE Normal 608 80 576 80 +PIN 608 80 RIGHT 36 +PINATTR PinName clk_out1 +PINATTR Polarity OUT +LINE Normal 608 176 576 176 +PIN 608 176 RIGHT 36 +PINATTR PinName clk_out2 +PINATTR Polarity OUT +LINE Normal 608 272 576 272 +PIN 608 272 RIGHT 36 +PINATTR PinName clk_out3 +PINATTR Polarity OUT +LINE Normal 608 976 576 976 +PIN 608 976 RIGHT 36 +PINATTR PinName locked +PINATTR Polarity OUT + diff --git a/fpga/usrp2/coregen/pll_100_40_75.gise b/fpga/usrp2/coregen/pll_100_40_75.gise new file mode 100644 index 000000000..c94415619 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75.gise @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<generated_project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema">
+
+ <!-- -->
+
+ <!-- For tool use only. Do not edit. -->
+
+ <!-- -->
+
+ <!-- ProjectNavigator created generated project file. -->
+
+ <!-- For use in tracking generated file and other information -->
+
+ <!-- allowing preservation of process status. -->
+
+ <!-- -->
+
+ <!-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. -->
+
+ <version xmlns="http://www.xilinx.com/XMLSchema">11.1</version>
+
+ <sourceproject xmlns="http://www.xilinx.com/XMLSchema" xil_pn:fileType="FILE_XISE" xil_pn:name="pll_100_40_75.xise"/>
+
+ <files xmlns="http://www.xilinx.com/XMLSchema">
+ <file xil_pn:fileType="FILE_ASY" xil_pn:name="pll_100_40_75.asy" xil_pn:origination="imported"/>
+ <file xil_pn:fileType="FILE_VEO" xil_pn:name="pll_100_40_75.veo" xil_pn:origination="imported"/>
+ </files>
+
+ <transforms xmlns="http://www.xilinx.com/XMLSchema"/>
+
+</generated_project>
diff --git a/fpga/usrp2/coregen/pll_100_40_75.ucf b/fpga/usrp2/coregen/pll_100_40_75.ucf new file mode 100755 index 000000000..d8590fabb --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75.ucf @@ -0,0 +1,71 @@ +# file: pll_100_40_75.ucf +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# Input clock periods. These duplicate the values entered for the +# input clocks. You can use these to time your system +#---------------------------------------------------------------- +NET "CLK_IN1" TNM_NET = "CLK_IN1"; +TIMESPEC "TS_CLK_IN1" = PERIOD "CLK_IN1" 25.000 ns HIGH 50% INPUT_JITTER 250.0ps; + +# Derived clock periods. These are commented out because they are +# automatically propogated by the tools +# However, if you'd like to use them for module level testing, you +# can copy them into your module level timing checks +#----------------------------------------------------------------- +# NET "clk_int[1]" TNM_NET = "CLK_OUT1"; +# TIMESPEC "TS_CLK_OUT1" = PERIOD "CLK_OUT1" 100.000 MHz; + +# NET "clk_int[2]" TNM_NET = "CLK_OUT2"; +# TIMESPEC "TS_CLK_OUT2" = PERIOD "CLK_OUT2" 40.000 MHz; +# NET "clk_int[3]" TNM_NET = "CLK_OUT3"; +# TIMESPEC "TS_CLK_OUT3" = PERIOD "CLK_OUT3" 75.000 MHz; + +# FALSE PATH constraints +PIN "RESET" TIG; + diff --git a/fpga/usrp2/coregen/pll_100_40_75.v b/fpga/usrp2/coregen/pll_100_40_75.v new file mode 100755 index 000000000..b400ece75 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75.v @@ -0,0 +1,158 @@ +// file: pll_100_40_75.v +// +// (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//---------------------------------------------------------------------------- +// User entered comments +//---------------------------------------------------------------------------- +// None +// +//---------------------------------------------------------------------------- +// "Output Output Phase Duty Pk-to-Pk Phase" +// "Clock Freq (MHz) (degrees) Cycle (%) Jitter (ps) Error (ps)" +//---------------------------------------------------------------------------- +// CLK_OUT1___100.000______0.000______50.0______252.791____220.216 +// CLK_OUT2____40.000______0.000______50.0______309.264____220.216 +// CLK_OUT3____75.000______0.000______50.0______269.846____220.216 +// +//---------------------------------------------------------------------------- +// "Input Clock Freq (MHz) Input Jitter (UI)" +//---------------------------------------------------------------------------- +// __primary__________40.000____________0.010 + +`timescale 1ps/1ps + +(* CORE_GENERATION_INFO = "pll_100_40_75,clk_wiz_v4_1,{component_name=pll_100_40_75,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,feedback_source=FDBK_AUTO,primtype_sel=PLL_BASE,num_out_clk=3,clkin1_period=25.000,clkin2_period=25.000,use_power_down=false,use_reset=true,use_locked=true,use_inclk_stopped=false,use_status=false,use_freeze=false,use_clk_valid=false,feedback_type=SINGLE,clock_mgr_type=AUTO,manual_override=false}" *) +module pll_100_40_75 + (// Clock in ports + input CLK_IN1, + // Clock out ports + output CLK_OUT1, + output CLK_OUT2, + output CLK_OUT3, + // Status and control signals + input RESET, + output LOCKED + ); + + // Input buffering + //------------------------------------ + IBUFG clkin1_buf + (.O (clkin1), + .I (CLK_IN1)); + + + // Clocking primitive + //------------------------------------ + // Instantiation of the PLL primitive + // * Unused inputs are tied off + // * Unused outputs are labeled unused + wire [15:0] do_unused; + wire drdy_unused; + wire clkfbout; + wire clkfbout_buf; + wire clkout3_unused; + wire clkout4_unused; + wire clkout5_unused; + + PLL_BASE + #(.BANDWIDTH ("OPTIMIZED"), + .CLK_FEEDBACK ("CLKFBOUT"), + .COMPENSATION ("SYSTEM_SYNCHRONOUS"), + .DIVCLK_DIVIDE (1), + .CLKFBOUT_MULT (15), + .CLKFBOUT_PHASE (0.000), + .CLKOUT0_DIVIDE (6), + .CLKOUT0_PHASE (0.000), + .CLKOUT0_DUTY_CYCLE (0.500), + .CLKOUT1_DIVIDE (15), + .CLKOUT1_PHASE (0.000), + .CLKOUT1_DUTY_CYCLE (0.500), + .CLKOUT2_DIVIDE (8), + .CLKOUT2_PHASE (0.000), + .CLKOUT2_DUTY_CYCLE (0.500), + .CLKIN_PERIOD (25.000), + .REF_JITTER (0.010)) + pll_base_inst + // Output clocks + (.CLKFBOUT (clkfbout), + .CLKOUT0 (clkout0), + .CLKOUT1 (clkout1), + .CLKOUT2 (clkout2), + .CLKOUT3 (clkout3_unused), + .CLKOUT4 (clkout4_unused), + .CLKOUT5 (clkout5_unused), + // Status and control signals + .LOCKED (LOCKED), + .RST (RESET), + // Input clock control + .CLKFBIN (clkfbout_buf), + .CLKIN (clkin1)); + + + // Output buffering + //----------------------------------- + BUFG clkf_buf + (.O (clkfbout_buf), + .I (clkfbout)); + + BUFG clkout1_buf + (.O (CLK_OUT1), + .I (clkout0)); + + + BUFG clkout2_buf + (.O (CLK_OUT2), + .I (clkout1)); + + BUFG clkout3_buf + (.O (CLK_OUT3), + .I (clkout2)); + + + +endmodule diff --git a/fpga/usrp2/coregen/pll_100_40_75.veo b/fpga/usrp2/coregen/pll_100_40_75.veo new file mode 100755 index 000000000..c6ebc5f5c --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75.veo @@ -0,0 +1,82 @@ +// +// (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//---------------------------------------------------------------------------- +// User entered comments +//---------------------------------------------------------------------------- +// None +// +//---------------------------------------------------------------------------- +// "Output Output Phase Duty Pk-to-Pk Phase" +// "Clock Freq (MHz) (degrees) Cycle (%) Jitter (ps) Error (ps)" +//---------------------------------------------------------------------------- +// CLK_OUT1___100.000______0.000______50.0______252.791____220.216 +// CLK_OUT2____40.000______0.000______50.0______309.264____220.216 +// CLK_OUT3____75.000______0.000______50.0______269.846____220.216 +// +//---------------------------------------------------------------------------- +// "Input Clock Freq (MHz) Input Jitter (UI)" +//---------------------------------------------------------------------------- +// __primary__________40.000____________0.010 + +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG + + pll_100_40_75 instance_name + (// Clock in ports + .CLK_IN1(CLK_IN1), // IN + // Clock out ports + .CLK_OUT1(CLK_OUT1), // OUT + .CLK_OUT2(CLK_OUT2), // OUT + .CLK_OUT3(CLK_OUT3), // OUT + // Status and control signals + .RESET(RESET),// IN + .LOCKED(LOCKED)); // OUT +// INST_TAG_END ------ End INSTANTIATION Template --------- diff --git a/fpga/usrp2/coregen/pll_100_40_75.xco b/fpga/usrp2/coregen/pll_100_40_75.xco new file mode 100644 index 000000000..a3a0eb4fb --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75.xco @@ -0,0 +1,266 @@ +############################################################## +# +# Xilinx Core Generator version 14.1 +# Date: Mon Jun 25 01:21:52 2012 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# Generated from component: xilinx.com:ip:clk_wiz:3.5 +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc6slx75 +SET devicefamily = spartan6 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = csg484 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT Clocking_Wizard xilinx.com:ip:clk_wiz:3.5 +# END Select +# BEGIN Parameters +CSET calc_done=DONE +CSET clk_in_sel_port=CLK_IN_SEL +CSET clk_out1_port=CLK_OUT1 +CSET clk_out1_use_fine_ps_gui=false +CSET clk_out2_port=CLK_OUT2 +CSET clk_out2_use_fine_ps_gui=false +CSET clk_out3_port=CLK_OUT3 +CSET clk_out3_use_fine_ps_gui=false +CSET clk_out4_port=CLK_OUT4 +CSET clk_out4_use_fine_ps_gui=false +CSET clk_out5_port=CLK_OUT5 +CSET clk_out5_use_fine_ps_gui=false +CSET clk_out6_port=CLK_OUT6 +CSET clk_out6_use_fine_ps_gui=false +CSET clk_out7_port=CLK_OUT7 +CSET clk_out7_use_fine_ps_gui=false +CSET clk_valid_port=CLK_VALID +CSET clkfb_in_n_port=CLKFB_IN_N +CSET clkfb_in_p_port=CLKFB_IN_P +CSET clkfb_in_port=CLKFB_IN +CSET clkfb_in_signaling=SINGLE +CSET clkfb_out_n_port=CLKFB_OUT_N +CSET clkfb_out_p_port=CLKFB_OUT_P +CSET clkfb_out_port=CLKFB_OUT +CSET clkfb_stopped_port=CLKFB_STOPPED +CSET clkin1_jitter_ps=250.0 +CSET clkin1_ui_jitter=0.010 +CSET clkin2_jitter_ps=100.0 +CSET clkin2_ui_jitter=0.010 +CSET clkout1_drives=BUFG +CSET clkout1_requested_duty_cycle=50.0 +CSET clkout1_requested_out_freq=100.000 +CSET clkout1_requested_phase=0.000 +CSET clkout2_drives=BUFG +CSET clkout2_requested_duty_cycle=50.0 +CSET clkout2_requested_out_freq=40.000 +CSET clkout2_requested_phase=0.000 +CSET clkout2_used=true +CSET clkout3_drives=BUFG +CSET clkout3_requested_duty_cycle=50.0 +CSET clkout3_requested_out_freq=75.000 +CSET clkout3_requested_phase=0.000 +CSET clkout3_used=true +CSET clkout4_drives=BUFG +CSET clkout4_requested_duty_cycle=50.0 +CSET clkout4_requested_out_freq=75.000 +CSET clkout4_requested_phase=0.000 +CSET clkout4_used=false +CSET clkout5_drives=BUFG +CSET clkout5_requested_duty_cycle=50.0 +CSET clkout5_requested_out_freq=100.000 +CSET clkout5_requested_phase=0.000 +CSET clkout5_used=false +CSET clkout6_drives=BUFG +CSET clkout6_requested_duty_cycle=50.0 +CSET clkout6_requested_out_freq=100.000 +CSET clkout6_requested_phase=0.000 +CSET clkout6_used=false +CSET clkout7_drives=BUFG +CSET clkout7_requested_duty_cycle=50.0 +CSET clkout7_requested_out_freq=100.000 +CSET clkout7_requested_phase=0.000 +CSET clkout7_used=false +CSET clock_mgr_type=AUTO +CSET component_name=pll_100_40_75 +CSET daddr_port=DADDR +CSET dclk_port=DCLK +CSET dcm_clk_feedback=1X +CSET dcm_clk_out1_port=CLKFX +CSET dcm_clk_out2_port=CLK0 +CSET dcm_clk_out3_port=CLKFX +CSET dcm_clk_out4_port=CLKFX +CSET dcm_clk_out5_port=CLK0 +CSET dcm_clk_out6_port=CLK0 +CSET dcm_clkdv_divide=2.0 +CSET dcm_clkfx_divide=2 +CSET dcm_clkfx_multiply=5 +CSET dcm_clkgen_clk_out1_port=CLKFX +CSET dcm_clkgen_clk_out2_port=CLKFX +CSET dcm_clkgen_clk_out3_port=CLKFX +CSET dcm_clkgen_clkfx_divide=1 +CSET dcm_clkgen_clkfx_md_max=0.000 +CSET dcm_clkgen_clkfx_multiply=4 +CSET dcm_clkgen_clkfxdv_divide=2 +CSET dcm_clkgen_clkin_period=10.000 +CSET dcm_clkgen_notes=None +CSET dcm_clkgen_spread_spectrum=NONE +CSET dcm_clkgen_startup_wait=false +CSET dcm_clkin_divide_by_2=false +CSET dcm_clkin_period=25.000 +CSET dcm_clkout_phase_shift=NONE +CSET dcm_deskew_adjust=SYSTEM_SYNCHRONOUS +CSET dcm_notes=None +CSET dcm_phase_shift=0 +CSET dcm_pll_cascade=NONE +CSET dcm_startup_wait=false +CSET den_port=DEN +CSET din_port=DIN +CSET dout_port=DOUT +CSET drdy_port=DRDY +CSET dwe_port=DWE +CSET feedback_source=FDBK_AUTO +CSET in_freq_units=Units_MHz +CSET in_jitter_units=Units_UI +CSET input_clk_stopped_port=INPUT_CLK_STOPPED +CSET jitter_options=UI +CSET jitter_sel=No_Jitter +CSET locked_port=LOCKED +CSET mmcm_bandwidth=OPTIMIZED +CSET mmcm_clkfbout_mult_f=4.000 +CSET mmcm_clkfbout_phase=0.000 +CSET mmcm_clkfbout_use_fine_ps=false +CSET mmcm_clkin1_period=10.000 +CSET mmcm_clkin2_period=10.000 +CSET mmcm_clkout0_divide_f=4.000 +CSET mmcm_clkout0_duty_cycle=0.500 +CSET mmcm_clkout0_phase=0.000 +CSET mmcm_clkout0_use_fine_ps=false +CSET mmcm_clkout1_divide=1 +CSET mmcm_clkout1_duty_cycle=0.500 +CSET mmcm_clkout1_phase=0.000 +CSET mmcm_clkout1_use_fine_ps=false +CSET mmcm_clkout2_divide=1 +CSET mmcm_clkout2_duty_cycle=0.500 +CSET mmcm_clkout2_phase=0.000 +CSET mmcm_clkout2_use_fine_ps=false +CSET mmcm_clkout3_divide=1 +CSET mmcm_clkout3_duty_cycle=0.500 +CSET mmcm_clkout3_phase=0.000 +CSET mmcm_clkout3_use_fine_ps=false +CSET mmcm_clkout4_cascade=false +CSET mmcm_clkout4_divide=1 +CSET mmcm_clkout4_duty_cycle=0.500 +CSET mmcm_clkout4_phase=0.000 +CSET mmcm_clkout4_use_fine_ps=false +CSET mmcm_clkout5_divide=1 +CSET mmcm_clkout5_duty_cycle=0.500 +CSET mmcm_clkout5_phase=0.000 +CSET mmcm_clkout5_use_fine_ps=false +CSET mmcm_clkout6_divide=1 +CSET mmcm_clkout6_duty_cycle=0.500 +CSET mmcm_clkout6_phase=0.000 +CSET mmcm_clkout6_use_fine_ps=false +CSET mmcm_clock_hold=false +CSET mmcm_compensation=ZHOLD +CSET mmcm_divclk_divide=1 +CSET mmcm_notes=None +CSET mmcm_ref_jitter1=0.010 +CSET mmcm_ref_jitter2=0.010 +CSET mmcm_startup_wait=false +CSET num_out_clks=3 +CSET override_dcm=false +CSET override_dcm_clkgen=false +CSET override_mmcm=false +CSET override_pll=false +CSET platform=lin +CSET pll_bandwidth=OPTIMIZED +CSET pll_clk_feedback=CLKFBOUT +CSET pll_clkfbout_mult=15 +CSET pll_clkfbout_phase=0.000 +CSET pll_clkin_period=25.000 +CSET pll_clkout0_divide=6 +CSET pll_clkout0_duty_cycle=0.500 +CSET pll_clkout0_phase=0.000 +CSET pll_clkout1_divide=15 +CSET pll_clkout1_duty_cycle=0.500 +CSET pll_clkout1_phase=0.000 +CSET pll_clkout2_divide=8 +CSET pll_clkout2_duty_cycle=0.500 +CSET pll_clkout2_phase=0.000 +CSET pll_clkout3_divide=8 +CSET pll_clkout3_duty_cycle=0.500 +CSET pll_clkout3_phase=0.000 +CSET pll_clkout4_divide=1 +CSET pll_clkout4_duty_cycle=0.500 +CSET pll_clkout4_phase=0.000 +CSET pll_clkout5_divide=1 +CSET pll_clkout5_duty_cycle=0.500 +CSET pll_clkout5_phase=0.000 +CSET pll_compensation=SYSTEM_SYNCHRONOUS +CSET pll_divclk_divide=1 +CSET pll_notes=None +CSET pll_ref_jitter=0.010 +CSET power_down_port=POWER_DOWN +CSET prim_in_freq=40.000 +CSET prim_in_jitter=0.010 +CSET prim_source=Single_ended_clock_capable_pin +CSET primary_port=CLK_IN1 +CSET primitive=MMCM +CSET primtype_sel=DCM_SP +CSET psclk_port=PSCLK +CSET psdone_port=PSDONE +CSET psen_port=PSEN +CSET psincdec_port=PSINCDEC +CSET relative_inclk=REL_PRIMARY +CSET reset_port=RESET +CSET secondary_in_freq=100.000 +CSET secondary_in_jitter=0.010 +CSET secondary_port=CLK_IN2 +CSET secondary_source=Single_ended_clock_capable_pin +CSET status_port=STATUS +CSET summary_strings=empty +CSET use_clk_valid=false +CSET use_clkfb_stopped=false +CSET use_dyn_phase_shift=false +CSET use_dyn_reconfig=false +CSET use_freeze=false +CSET use_freq_synth=true +CSET use_inclk_stopped=false +CSET use_inclk_switchover=false +CSET use_locked=true +CSET use_max_i_jitter=false +CSET use_min_o_jitter=false +CSET use_min_power=false +CSET use_phase_alignment=true +CSET use_power_down=false +CSET use_reset=true +CSET use_spread_spectrum=false +CSET use_status=false +# END Parameters +# BEGIN Extra information +MISC pkg_timestamp=2011-12-28T09:11:49Z +# END Extra information +GENERATE +# CRC: e73fbe14 diff --git a/fpga/usrp2/coregen/pll_100_40_75.xdc b/fpga/usrp2/coregen/pll_100_40_75.xdc new file mode 100755 index 000000000..4cf03fee7 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75.xdc @@ -0,0 +1,67 @@ +# file: pll_100_40_75.xdc +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# Input clock periods. These duplicate the values entered for the +# input clocks. You can use these to time your system +#---------------------------------------------------------------- +create_clock -name CLK_IN1 -period 25.000 [get_ports CLK_IN1] +set_propagated_clock CLK_IN1 +set_input_jitter CLK_IN1 0.25 + +set_false_path -from [get_ports "RESET"] + +# Derived clock periods. These are commented out because they are +# automatically propogated by the tools +# However, if you'd like to use them for module level testing, you +# can copy them into your module level timing checks +#----------------------------------------------------------------- + +#----------------------------------------------------------------- + +#----------------------------------------------------------------- diff --git a/fpga/usrp2/coregen/pll_100_40_75.xise b/fpga/usrp2/coregen/pll_100_40_75.xise new file mode 100644 index 000000000..55dbd6ddb --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75.xise @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema"> + + <header> + <!-- ISE source project file created by Project Navigator. --> + <!-- --> + <!-- This file contains project source information including a list of --> + <!-- project source files, project and process properties. This file, --> + <!-- along with the project source files, is sufficient to open and --> + <!-- implement in ISE Project Navigator. --> + <!-- --> + <!-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. --> + </header> + + <version xil_pn:ise_version="12.1" xil_pn:schema_version="2"/> + + <files> + <file xil_pn:name="pll_100_40_75/example_design/pll_100_40_75_exdes.ucf" xil_pn:type="FILE_UCF"> + <association xil_pn:name="Implementation"/> + </file> + <file xil_pn:name="pll_100_40_75/example_design/pll_100_40_75_exdes.v" xil_pn:type="FILE_VERILOG"> + <association xil_pn:name="BehavioralSimulation"/> + <association xil_pn:name="Implementation"/> + <association xil_pn:name="PostMapSimulation"/> + <association xil_pn:name="PostRouteSimulation"/> + <association xil_pn:name="PostTranslateSimulation"/> + </file> + <file xil_pn:name="pll_100_40_75.v" xil_pn:type="FILE_VERILOG"> + <association xil_pn:name="BehavioralSimulation"/> + <association xil_pn:name="Implementation"/> + <association xil_pn:name="PostMapSimulation"/> + <association xil_pn:name="PostRouteSimulation"/> + <association xil_pn:name="PostTranslateSimulation"/> + </file> + </files> + + <properties> + <property xil_pn:name="Device" xil_pn:value="xc6slx75" xil_pn:valueState="non-default"/> + <property xil_pn:name="Device Family" xil_pn:value="Spartan6" xil_pn:valueState="non-default"/> + <property xil_pn:name="Enable Internal Done Pipe" xil_pn:value="true" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Stop View" xil_pn:value="PreSynthesis" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top" xil_pn:value="Module|pll_100_40_75_exdes" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top File" xil_pn:value="pll_100_40_75/example_design/pll_100_40_75_exdes.v" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top Instance Path" xil_pn:value="/pll_100_40_75_exdes" xil_pn:valueState="non-default"/> + <property xil_pn:name="Package" xil_pn:value="csg484" xil_pn:valueState="default"/> + <property xil_pn:name="Preferred Language" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Project Generator" xil_pn:value="CoreGen" xil_pn:valueState="non-default"/> + <property xil_pn:name="Property Specification in Project File" xil_pn:value="Store all values" xil_pn:valueState="default"/> + <property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Speed Grade" xil_pn:value="-3" xil_pn:valueState="default"/> + <property xil_pn:name="Synthesis Tool" xil_pn:value="XST (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Top-Level Source Type" xil_pn:value="HDL" xil_pn:valueState="default"/> + <property xil_pn:name="Working Directory" xil_pn:value="." xil_pn:valueState="non-default"/> + <!-- --> + <!-- The following properties are for internal use only. These should not be modified.--> + <!-- --> + <property xil_pn:name="PROP_DesignName" xil_pn:value="pll_100_40_75" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan6" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_intProjectCreationTimestamp" xil_pn:value="2012-06-24T18:22:22" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWbtProjectID" xil_pn:value="C844C83C3B3DDBC76B212B92126CFCA7" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirLocWRTProjDir" xil_pn:value="Same" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirUsed" xil_pn:value="No" xil_pn:valueState="non-default"/> + </properties> + + <bindings/> + + <libraries/> + + <autoManagedFiles> + <!-- The following files are identified by `include statements in verilog --> + <!-- source files and are automatically managed by Project Navigator. --> + <!-- --> + <!-- Do not hand-edit this section, as it will be overwritten when the --> + <!-- project is analyzed based on files automatically identified as --> + <!-- include files. --> + </autoManagedFiles> + +</project> diff --git a/fpga/usrp2/coregen/pll_100_40_75/clk_wiz_v3_5_readme.txt b/fpga/usrp2/coregen/pll_100_40_75/clk_wiz_v3_5_readme.txt new file mode 100644 index 000000000..4e06648c2 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/clk_wiz_v3_5_readme.txt @@ -0,0 +1,183 @@ + Core name: Xilinx LogiCORE Clocking Wizard + Version: 3.5 + Release: ISE 14.1 + Release Date: April 24, 2012 + + +================================================================================ + +This document contains the following sections: + +1. Introduction +2. New Features + 2.1 ISE +3. Supported Devices + 3.1 ISE +4. Resolved Issues + 4.1 ISE +5. Known Issues + 5.1 ISE +6. Technical Support +7. Core Release History +8. Legal Disclaimer + +================================================================================ + + +1. INTRODUCTION + +For installation instructions for this release, please go to: + + http://www.xilinx.com/ipcenter/coregen/ip_update_install_instructions.htm + +For system requirements: + + http://www.xilinx.com/ipcenter/coregen/ip_update_system_requirements.htm + +This file contains release notes for the Xilinx LogiCORE IP Clocking Wizard v3.5 +solution. For the latest core updates, see the product page at: + + http://www.xilinx.com/products/design_resources/conn_central/solution_kits/wizards/ + +................................................................................ + +2. NEW FEATURES + + + 2.1 ISE + + - ISE 14.1 software support + +................................................................................ + +3. SUPPORTED DEVICES + + + 3.1 ISE + + + The following device families are supported by the core for this release. + + All 7 Series devices + + + Zynq-7000 devices + Zynq-7000 + Defense Grade Zynq-7000Q (XQ) + + + All Virtex-6 devices + + + All Spartan-6 devices + + +................................................................................ + +4. RESOLVED ISSUES + + + 4.1 ISE + + - NA + +................................................................................ + +5. KNOWN ISSUES + + + 5.1 ISE + + + The most recent information, including known issues, workarounds, and + resolutions for this version is provided in the IP Release Notes Guide + located at + + www.xilinx.com/support/documentation/user_guides/xtp025.pdf + + +................................................................................ + +6. TECHNICAL SUPPORT + + +To obtain technical support, create a WebCase at www.xilinx.com/support. +Questions are routed to a team with expertise using this product. + +Xilinx provides technical support for use of this product when used +according to the guidelines described in the core documentation, and +cannot guarantee timing, functionality, or support of this product for +designs that do not follow specified guidelines. + + +................................................................................ + +7. CORE RELEASE HISTORY + + +Date By Version Description +================================================================================ +04/24/2012 Xilinx, Inc. 3.5 ISE 14.1 support +01/18/2012 Xilinx, Inc. 3.3 ISE 13.4 support +06/22/2011 Xilinx, Inc. 3.2 ISE 13.2 support +03/01/2011 Xilinx, Inc. 3.1 ISE 13.1 support +12/14/2010 Xilinx, Inc. 1.8 ISE 12.4 support +09/21/2010 Xilinx, Inc. 1.7 ISE 12.3 support +07/23/2010 Xilinx, Inc. 1.6 ISE 12.2 support +04/19/2010 Xilinx, Inc. 1.5 ISE 12.1 support +12/02/2009 Xilinx, Inc. 1.4 ISE 11.4 support +09/16/2009 Xilinx, Inc. 1.3 ISE 11.3 support +06/24/2009 Xilinx, Inc. 1.2 ISE 11.2 support +04/24/2009 Xilinx, Inc. 1.1 Initial release; 11.1 support +================================================================================ + +................................................................................ + +8. LEGAL DISCLAIMER + +(c) Copyright 2008 - 2012 Xilinx, Inc. All rights reserved. + +This file contains confidential and proprietary information +of Xilinx, Inc. and is protected under U.S. and +international copyright and other intellectual property +laws. + +DISCLAIMER +This disclaimer is not a license and does not grant any +rights to the materials distributed herewith. Except as +otherwise provided in a valid license issued to you by +Xilinx, and to the maximum extent permitted by applicable +law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +(2) Xilinx shall not be liable (whether in contract or tort, +including negligence, or under any other theory of +liability) for any loss or damage of any kind or nature +related to, arising under or in connection with these +materials, including for any direct, or any indirect, +special, incidental, or consequential loss or damage +(including loss of data, profits, goodwill, or any type of +loss or damage suffered as a result of any action brought +by a third party) even if such damage or loss was +reasonably foreseeable or Xilinx had been advised of the +possibility of the same. + +CRITICAL APPLICATIONS +Xilinx products are not designed or intended to be fail- +safe, or for use in any application requiring fail-safe +performance, such as life-support or safety devices or +systems, Class III medical devices, nuclear facilities, +applications related to the deployment of airbags, or any +other applications that could lead to death, personal +injury, or severe property or environmental damage +(individually and collectively, "Critical +Applications"). Customer assumes the sole risk and +liability of any use of Xilinx products in Critical +Applications, subject only to applicable laws and +regulations governing limitations on product liability. + +THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +PART OF THIS FILE AT ALL TIMES. + diff --git a/fpga/usrp2/coregen/pll_100_40_75/doc/clk_wiz_gsg521.pdf b/fpga/usrp2/coregen/pll_100_40_75/doc/clk_wiz_gsg521.pdf Binary files differnew file mode 100644 index 000000000..998385638 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/doc/clk_wiz_gsg521.pdf diff --git a/fpga/usrp2/coregen/pll_100_40_75/doc/clk_wiz_v3_5_readme.txt b/fpga/usrp2/coregen/pll_100_40_75/doc/clk_wiz_v3_5_readme.txt new file mode 100644 index 000000000..4e06648c2 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/doc/clk_wiz_v3_5_readme.txt @@ -0,0 +1,183 @@ + Core name: Xilinx LogiCORE Clocking Wizard + Version: 3.5 + Release: ISE 14.1 + Release Date: April 24, 2012 + + +================================================================================ + +This document contains the following sections: + +1. Introduction +2. New Features + 2.1 ISE +3. Supported Devices + 3.1 ISE +4. Resolved Issues + 4.1 ISE +5. Known Issues + 5.1 ISE +6. Technical Support +7. Core Release History +8. Legal Disclaimer + +================================================================================ + + +1. INTRODUCTION + +For installation instructions for this release, please go to: + + http://www.xilinx.com/ipcenter/coregen/ip_update_install_instructions.htm + +For system requirements: + + http://www.xilinx.com/ipcenter/coregen/ip_update_system_requirements.htm + +This file contains release notes for the Xilinx LogiCORE IP Clocking Wizard v3.5 +solution. For the latest core updates, see the product page at: + + http://www.xilinx.com/products/design_resources/conn_central/solution_kits/wizards/ + +................................................................................ + +2. NEW FEATURES + + + 2.1 ISE + + - ISE 14.1 software support + +................................................................................ + +3. SUPPORTED DEVICES + + + 3.1 ISE + + + The following device families are supported by the core for this release. + + All 7 Series devices + + + Zynq-7000 devices + Zynq-7000 + Defense Grade Zynq-7000Q (XQ) + + + All Virtex-6 devices + + + All Spartan-6 devices + + +................................................................................ + +4. RESOLVED ISSUES + + + 4.1 ISE + + - NA + +................................................................................ + +5. KNOWN ISSUES + + + 5.1 ISE + + + The most recent information, including known issues, workarounds, and + resolutions for this version is provided in the IP Release Notes Guide + located at + + www.xilinx.com/support/documentation/user_guides/xtp025.pdf + + +................................................................................ + +6. TECHNICAL SUPPORT + + +To obtain technical support, create a WebCase at www.xilinx.com/support. +Questions are routed to a team with expertise using this product. + +Xilinx provides technical support for use of this product when used +according to the guidelines described in the core documentation, and +cannot guarantee timing, functionality, or support of this product for +designs that do not follow specified guidelines. + + +................................................................................ + +7. CORE RELEASE HISTORY + + +Date By Version Description +================================================================================ +04/24/2012 Xilinx, Inc. 3.5 ISE 14.1 support +01/18/2012 Xilinx, Inc. 3.3 ISE 13.4 support +06/22/2011 Xilinx, Inc. 3.2 ISE 13.2 support +03/01/2011 Xilinx, Inc. 3.1 ISE 13.1 support +12/14/2010 Xilinx, Inc. 1.8 ISE 12.4 support +09/21/2010 Xilinx, Inc. 1.7 ISE 12.3 support +07/23/2010 Xilinx, Inc. 1.6 ISE 12.2 support +04/19/2010 Xilinx, Inc. 1.5 ISE 12.1 support +12/02/2009 Xilinx, Inc. 1.4 ISE 11.4 support +09/16/2009 Xilinx, Inc. 1.3 ISE 11.3 support +06/24/2009 Xilinx, Inc. 1.2 ISE 11.2 support +04/24/2009 Xilinx, Inc. 1.1 Initial release; 11.1 support +================================================================================ + +................................................................................ + +8. LEGAL DISCLAIMER + +(c) Copyright 2008 - 2012 Xilinx, Inc. All rights reserved. + +This file contains confidential and proprietary information +of Xilinx, Inc. and is protected under U.S. and +international copyright and other intellectual property +laws. + +DISCLAIMER +This disclaimer is not a license and does not grant any +rights to the materials distributed herewith. Except as +otherwise provided in a valid license issued to you by +Xilinx, and to the maximum extent permitted by applicable +law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +(2) Xilinx shall not be liable (whether in contract or tort, +including negligence, or under any other theory of +liability) for any loss or damage of any kind or nature +related to, arising under or in connection with these +materials, including for any direct, or any indirect, +special, incidental, or consequential loss or damage +(including loss of data, profits, goodwill, or any type of +loss or damage suffered as a result of any action brought +by a third party) even if such damage or loss was +reasonably foreseeable or Xilinx had been advised of the +possibility of the same. + +CRITICAL APPLICATIONS +Xilinx products are not designed or intended to be fail- +safe, or for use in any application requiring fail-safe +performance, such as life-support or safety devices or +systems, Class III medical devices, nuclear facilities, +applications related to the deployment of airbags, or any +other applications that could lead to death, personal +injury, or severe property or environmental damage +(individually and collectively, "Critical +Applications"). Customer assumes the sole risk and +liability of any use of Xilinx products in Critical +Applications, subject only to applicable laws and +regulations governing limitations on product liability. + +THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +PART OF THIS FILE AT ALL TIMES. + diff --git a/fpga/usrp2/coregen/pll_100_40_75/doc/clk_wiz_v3_5_vinfo.html b/fpga/usrp2/coregen/pll_100_40_75/doc/clk_wiz_v3_5_vinfo.html new file mode 100644 index 000000000..8dc6bb6ba --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/doc/clk_wiz_v3_5_vinfo.html @@ -0,0 +1,194 @@ +<HTML> +<HEAD> +<TITLE>clk_wiz_v3_5_vinfo</TITLE> +<META HTTP-EQUIV="Content-Type" CONTENT="text/plain;CHARSET=iso-8859-1"> +</HEAD> +<BODY> +<PRE><FONT face="Arial, Helvetica, sans-serif" size="-1"> + Core name: Xilinx LogiCORE Clocking Wizard + Version: 3.5 + Release: ISE 14.1 + Release Date: April 24, 2012 + + +================================================================================ + +This document contains the following sections: + +1. Introduction +2. New Features + 2.1 ISE +3. Supported Devices + 3.1 ISE +4. Resolved Issues + 4.1 ISE +5. Known Issues + 5.1 ISE +6. Technical Support +7. Core Release History +8. Legal Disclaimer + +================================================================================ + + +1. INTRODUCTION + +For installation instructions for this release, please go to: + + <A HREF="http://www.xilinx.com/ipcenter/coregen/ip_update_install_instructions.htm">www.xilinx.com/ipcenter/coregen/ip_update_install_instructions.htm</A> + +For system requirements: + + <A HREF="http://www.xilinx.com/ipcenter/coregen/ip_update_system_requirements.htm">www.xilinx.com/ipcenter/coregen/ip_update_system_requirements.htm</A> + +This file contains release notes for the Xilinx LogiCORE IP Clocking Wizard v3.5 +solution. For the latest core updates, see the product page at: + + <A HREF="http://www.xilinx.com/products/design_resources/conn_central/solution_kits/wizards/">www.xilinx.com/products/design_resources/conn_central/solution_kits/wizards/</A> + +................................................................................ + +2. NEW FEATURES + + + 2.1 ISE + + - ISE 14.1 software support + +................................................................................ + +3. SUPPORTED DEVICES + + + 3.1 ISE + + + The following device families are supported by the core for this release. + + All 7 Series devices + + + Zynq-7000 devices + Zynq-7000 + Defense Grade Zynq-7000Q (XQ) + + + All Virtex-6 devices + + + All Spartan-6 devices + + +................................................................................ + +4. RESOLVED ISSUES + + + 4.1 ISE + + - NA + +................................................................................ + +5. KNOWN ISSUES + + + 5.1 ISE + + + The most recent information, including known issues, workarounds, and + resolutions for this version is provided in the IP Release Notes Guide + located at + + <A HREF="http://www.xilinx.com/support/documentation/user_guides/xtp025.pdf">www.xilinx.com/support/documentation/user_guides/xtp025.pdf</A> + + +................................................................................ + +6. TECHNICAL SUPPORT + + +To obtain technical support, create a WebCase at <A HREF="http://www.xilinx.com/support.">www.xilinx.com/support.</A> +Questions are routed to a team with expertise using this product. + +Xilinx provides technical support for use of this product when used +according to the guidelines described in the core documentation, and +cannot guarantee timing, functionality, or support of this product for +designs that do not follow specified guidelines. + + +................................................................................ + +7. CORE RELEASE HISTORY + + +Date By Version Description +================================================================================ +04/24/2012 Xilinx, Inc. 3.5 ISE 14.1 support +01/18/2012 Xilinx, Inc. 3.3 ISE 13.4 support +06/22/2011 Xilinx, Inc. 3.2 ISE 13.2 support +03/01/2011 Xilinx, Inc. 3.1 ISE 13.1 support +12/14/2010 Xilinx, Inc. 1.8 ISE 12.4 support +09/21/2010 Xilinx, Inc. 1.7 ISE 12.3 support +07/23/2010 Xilinx, Inc. 1.6 ISE 12.2 support +04/19/2010 Xilinx, Inc. 1.5 ISE 12.1 support +12/02/2009 Xilinx, Inc. 1.4 ISE 11.4 support +09/16/2009 Xilinx, Inc. 1.3 ISE 11.3 support +06/24/2009 Xilinx, Inc. 1.2 ISE 11.2 support +04/24/2009 Xilinx, Inc. 1.1 Initial release; 11.1 support +================================================================================ + +................................................................................ + +8. LEGAL DISCLAIMER + +(c) Copyright 2008 - 2012 Xilinx, Inc. All rights reserved. + +This file contains confidential and proprietary information +of Xilinx, Inc. and is protected under U.S. and +international copyright and other intellectual property +laws. + +DISCLAIMER +This disclaimer is not a license and does not grant any +rights to the materials distributed herewith. Except as +otherwise provided in a valid license issued to you by +Xilinx, and to the maximum extent permitted by applicable +law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +(2) Xilinx shall not be liable (whether in contract or tort, +including negligence, or under any other theory of +liability) for any loss or damage of any kind or nature +related to, arising under or in connection with these +materials, including for any direct, or any indirect, +special, incidental, or consequential loss or damage +(including loss of data, profits, goodwill, or any type of +loss or damage suffered as a result of any action brought +by a third party) even if such damage or loss was +reasonably foreseeable or Xilinx had been advised of the +possibility of the same. + +CRITICAL APPLICATIONS +Xilinx products are not designed or intended to be fail- +safe, or for use in any application requiring fail-safe +performance, such as life-support or safety devices or +systems, Class III medical devices, nuclear facilities, +applications related to the deployment of airbags, or any +other applications that could lead to death, personal +injury, or severe property or environmental damage +(individually and collectively, "Critical +Applications"). Customer assumes the sole risk and +liability of any use of Xilinx products in Critical +Applications, subject only to applicable laws and +regulations governing limitations on product liability. + +THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +PART OF THIS FILE AT ALL TIMES. + +</FONT> +</PRE> +</BODY> +</HTML> diff --git a/fpga/usrp2/coregen/pll_100_40_75/example_design/pll_100_40_75_exdes.ucf b/fpga/usrp2/coregen/pll_100_40_75/example_design/pll_100_40_75_exdes.ucf new file mode 100755 index 000000000..1892548b4 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/example_design/pll_100_40_75_exdes.ucf @@ -0,0 +1,72 @@ +# file: pll_100_40_75_exdes.ucf +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# Input clock periods. These duplicate the values entered for the +# input clocks. You can use these to time your system +#---------------------------------------------------------------- +NET "CLK_IN1" TNM_NET = "CLK_IN1"; +TIMESPEC "TS_CLK_IN1" = PERIOD "CLK_IN1" 25.000 ns HIGH 50% INPUT_JITTER 250.0ps; + +# Derived clock periods. These are commented out because they are +# automatically propogated by the tools +# However, if you'd like to use them for module level testing, you +# can copy them into your module level timing checks +#----------------------------------------------------------------- +# NET "clk_int[1]" TNM_NET = "CLK_OUT1"; +# TIMESPEC "TS_CLK_OUT1" = PERIOD "CLK_OUT1" 100.000 MHz; + +# NET "clk_int[2]" TNM_NET = "CLK_OUT2"; +# TIMESPEC "TS_CLK_OUT2" = PERIOD "CLK_OUT2" 40.000 MHz; +# NET "clk_int[3]" TNM_NET = "CLK_OUT3"; +# TIMESPEC "TS_CLK_OUT3" = PERIOD "CLK_OUT3" 75.000 MHz; + +# FALSE PATH constraints +PIN "COUNTER_RESET" TIG; +PIN "RESET" TIG; + diff --git a/fpga/usrp2/coregen/pll_100_40_75/example_design/pll_100_40_75_exdes.v b/fpga/usrp2/coregen/pll_100_40_75/example_design/pll_100_40_75_exdes.v new file mode 100755 index 000000000..a79d6ab10 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/example_design/pll_100_40_75_exdes.v @@ -0,0 +1,160 @@ +// file: pll_100_40_75_exdes.v +// +// (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// + +//---------------------------------------------------------------------------- +// Clocking wizard example design +//---------------------------------------------------------------------------- +// This example design instantiates the created clocking network, where each +// output clock drives a counter. The high bit of each counter is ported. +//---------------------------------------------------------------------------- + +`timescale 1ps/1ps + +module pll_100_40_75_exdes + #( + parameter TCQ = 100 + ) + (// Clock in ports + input CLK_IN1, + // Reset that only drives logic in example design + input COUNTER_RESET, + output [3:1] CLK_OUT, + // High bits of counters driven by clocks + output [3:1] COUNT, + // Status and control signals + input RESET, + output LOCKED + ); + + // Parameters for the counters + //------------------------------- + // Counter width + localparam C_W = 16; + // Number of counters + localparam NUM_C = 3; + genvar count_gen; + // When the clock goes out of lock, reset the counters + wire reset_int = !LOCKED || RESET || COUNTER_RESET; + + reg [NUM_C:1] rst_sync; + reg [NUM_C:1] rst_sync_int; + reg [NUM_C:1] rst_sync_int1; + reg [NUM_C:1] rst_sync_int2; + + + // Declare the clocks and counters + wire [NUM_C:1] clk_int; + wire [NUM_C:1] clk; + reg [C_W-1:0] counter [NUM_C:1]; + + // Instantiation of the clocking network + //-------------------------------------- + pll_100_40_75 clknetwork + (// Clock in ports + .CLK_IN1 (CLK_IN1), + // Clock out ports + .CLK_OUT1 (clk_int[1]), + .CLK_OUT2 (clk_int[2]), + .CLK_OUT3 (clk_int[3]), + // Status and control signals + .RESET (RESET), + .LOCKED (LOCKED)); + + assign CLK_OUT = clk_int; + + // Connect the output clocks to the design + //----------------------------------------- + assign clk[1] = clk_int[1]; + assign clk[2] = clk_int[2]; + assign clk[3] = clk_int[3]; + + + // Reset synchronizer + //----------------------------------- + generate for (count_gen = 1; count_gen <= NUM_C; count_gen = count_gen + 1) begin: counters_1 + always @(posedge reset_int or posedge clk[count_gen]) begin + if (reset_int) begin + rst_sync[count_gen] <= 1'b1; + rst_sync_int[count_gen]<= 1'b1; + rst_sync_int1[count_gen]<= 1'b1; + rst_sync_int2[count_gen]<= 1'b1; + end + else begin + rst_sync[count_gen] <= 1'b0; + rst_sync_int[count_gen] <= rst_sync[count_gen]; + rst_sync_int1[count_gen] <= rst_sync_int[count_gen]; + rst_sync_int2[count_gen] <= rst_sync_int1[count_gen]; + end + end + end + endgenerate + + + // Output clock sampling + //----------------------------------- + generate for (count_gen = 1; count_gen <= NUM_C; count_gen = count_gen + 1) begin: counters + + always @(posedge clk[count_gen] or posedge rst_sync_int2[count_gen]) begin + if (rst_sync_int2[count_gen]) begin + counter[count_gen] <= #TCQ { C_W { 1'b 0 } }; + end else begin + counter[count_gen] <= #TCQ counter[count_gen] + 1'b 1; + end + end + // alias the high bit of each counter to the corresponding + // bit in the output bus + assign COUNT[count_gen] = counter[count_gen][C_W-1]; + end + endgenerate + + + + + +endmodule diff --git a/fpga/usrp2/coregen/pll_100_40_75/example_design/pll_100_40_75_exdes.xdc b/fpga/usrp2/coregen/pll_100_40_75/example_design/pll_100_40_75_exdes.xdc new file mode 100755 index 000000000..bd0f53e4e --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/example_design/pll_100_40_75_exdes.xdc @@ -0,0 +1,69 @@ +# file: pll_100_40_75_exdes.xdc +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# Input clock periods. These duplicate the values entered for the +# input clocks. You can use these to time your system +#---------------------------------------------------------------- +create_clock -name CLK_IN1 -period 25.000 [get_ports CLK_IN1] +set_propagated_clock CLK_IN1 +set_input_jitter CLK_IN1 0.25 + +# FALSE PATH constraint added on COUNTER_RESET +set_false_path -from [get_ports "COUNTER_RESET"] +set_false_path -from [get_ports "RESET"] + +# Derived clock periods. These are commented out because they are +# automatically propogated by the tools +# However, if you'd like to use them for module level testing, you +# can copy them into your module level timing checks +#----------------------------------------------------------------- + +#----------------------------------------------------------------- + +#----------------------------------------------------------------- diff --git a/fpga/usrp2/coregen/pll_100_40_75/implement/implement.bat b/fpga/usrp2/coregen/pll_100_40_75/implement/implement.bat new file mode 100755 index 000000000..a362117a4 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/implement/implement.bat @@ -0,0 +1,90 @@ +REM file: implement.bat +REM +REM (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +REM +REM This file contains confidential and proprietary information +REM of Xilinx, Inc. and is protected under U.S. and +REM international copyright and other intellectual property +REM laws. +REM +REM DISCLAIMER +REM This disclaimer is not a license and does not grant any +REM rights to the materials distributed herewith. Except as +REM otherwise provided in a valid license issued to you by +REM Xilinx, and to the maximum extent permitted by applicable +REM law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +REM WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +REM AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +REM BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +REM INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +REM (2) Xilinx shall not be liable (whether in contract or tort, +REM including negligence, or under any other theory of +REM liability) for any loss or damage of any kind or nature +REM related to, arising under or in connection with these +REM materials, including for any direct, or any indirect, +REM special, incidental, or consequential loss or damage +REM (including loss of data, profits, goodwill, or any type of +REM loss or damage suffered as a result of any action brought +REM by a third party) even if such damage or loss was +REM reasonably foreseeable or Xilinx had been advised of the +REM possibility of the same. +REM +REM CRITICAL APPLICATIONS +REM Xilinx products are not designed or intended to be fail- +REM safe, or for use in any application requiring fail-safe +REM performance, such as life-support or safety devices or +REM systems, Class III medical devices, nuclear facilities, +REM applications related to the deployment of airbags, or any +REM other applications that could lead to death, personal +REM injury, or severe property or environmental damage +REM (individually and collectively, "Critical +REM Applications"). Customer assumes the sole risk and +REM liability of any use of Xilinx products in Critical +REM Applications, subject only to applicable laws and +REM regulations governing limitations on product liability. +REM +REM THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +REM PART OF THIS FILE AT ALL TIMES. +REM + +REM ----------------------------------------------------------------------------- +REM Script to synthesize and implement the RTL provided for the clocking wizard +REM ----------------------------------------------------------------------------- + +REM Clean up the results directory +rmdir /S /Q results +mkdir results + +REM Copy unisim_comp.v file to results directory +copy %XILINX%\verilog\src\iSE\unisim_comp.v .\results\ + +REM Synthesize the Verilog Wrapper Files +echo 'Synthesizing Clocking Wizard design with XST' +xst -ifn xst.scr +move pll_100_40_75_exdes.ngc results\ + +REM Copy the constraints files generated by Coregen +echo 'Copying files from constraints directory to results directory' +copy ..\example_design\pll_100_40_75_exdes.ucf results\ + +cd results + +echo 'Running ngdbuild' +ngdbuild -uc pll_100_40_75_exdes.ucf pll_100_40_75_exdes + +echo 'Running map' +map -timing -pr b pll_100_40_75_exdes -o mapped.ncd + +echo 'Running par' +par -w mapped.ncd routed mapped.pcf + +echo 'Running trce' +trce -e 10 routed -o routed mapped.pcf + +echo 'Running design through bitgen' +bitgen -w routed + +echo 'Running netgen to create gate level model for the clocking wizard example design' +netgen -ofmt verilog -sim -sdf_anno false -tm pll_100_40_75_exdes -w routed.ncd routed.v +cd .. + diff --git a/fpga/usrp2/coregen/pll_100_40_75/implement/implement.sh b/fpga/usrp2/coregen/pll_100_40_75/implement/implement.sh new file mode 100755 index 000000000..e3ff2ce97 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/implement/implement.sh @@ -0,0 +1,91 @@ +#!/bin/sh +# file: implement.sh +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +#----------------------------------------------------------------------------- +# Script to synthesize and implement the RTL provided for the clocking wizard +#----------------------------------------------------------------------------- + +# Clean up the results directory +rm -rf results +mkdir results + +# Copy unisim_comp.v file to results directory +cp $XILINX/verilog/src/iSE/unisim_comp.v ./results/ + +# Synthesize the Verilog Wrapper Files +echo 'Synthesizing Clocking Wizard design with XST' +xst -ifn xst.scr +mv pll_100_40_75_exdes.ngc results/ + +# Copy the constraints files generated by Coregen +echo 'Copying files from constraints directory to results directory' +cp ../example_design/pll_100_40_75_exdes.ucf results/ + +cd results + +echo 'Running ngdbuild' +ngdbuild -uc pll_100_40_75_exdes.ucf pll_100_40_75_exdes + +echo 'Running map' +map -timing pll_100_40_75_exdes -o mapped.ncd + +echo 'Running par' +par -w mapped.ncd routed mapped.pcf + +echo 'Running trce' +trce -e 10 routed -o routed mapped.pcf + +echo 'Running design through bitgen' +bitgen -w routed + +echo 'Running netgen to create gate level model for the clocking wizard example design' +netgen -ofmt verilog -sim -sdf_anno false -tm pll_100_40_75_exdes -w routed.ncd routed.v + +cd .. diff --git a/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_ise.bat b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_ise.bat new file mode 100755 index 000000000..8ac771810 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_ise.bat @@ -0,0 +1,58 @@ +REM file: planAhead_ise.bat +REM +REM (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +REM +REM This file contains confidential and proprietary information +REM of Xilinx, Inc. and is protected under U.S. and +REM international copyright and other intellectual property +REM laws. +REM +REM DISCLAIMER +REM This disclaimer is not a license and does not grant any +REM rights to the materials distributed herewith. Except as +REM otherwise provided in a valid license issued to you by +REM Xilinx, and to the maximum extent permitted by applicable +REM law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +REM WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +REM AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +REM BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +REM INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +REM (2) Xilinx shall not be liable (whether in contract or tort, +REM including negligence, or under any other theory of +REM liability) for any loss or damage of any kind or nature +REM related to, arising under or in connection with these +REM materials, including for any direct, or any indirect, +REM special, incidental, or consequential loss or damage +REM (including loss of data, profits, goodwill, or any type of +REM loss or damage suffered as a result of any action brought +REM by a third party) even if such damage or loss was +REM reasonably foreseeable or Xilinx had been advised of the +REM possibility of the same. +REM +REM CRITICAL APPLICATIONS +REM Xilinx products are not designed or intended to be fail- +REM safe, or for use in any application requiring fail-safe +REM performance, such as life-support or safety devices or +REM systems, Class III medical devices, nuclear facilities, +REM applications related to the deployment of airbags, or any +REM other applications that could lead to death, personal +REM injury, or severe property or environmental damage +REM (individually and collectively, "Critical +REM Applications"). Customer assumes the sole risk and +REM liability of any use of Xilinx products in Critical +REM Applications, subject only to applicable laws and +REM regulations governing limitations on product liability. +REM +REM THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +REM PART OF THIS FILE AT ALL TIMES. +REM + +REM----------------------------------------------------------------------------- +REM Script to synthesize and implement the RTL provided for the clocking wizard +REM----------------------------------------------------------------------------- + +del \f results +mkdir results +cd results + +planAhead -mode batch -source ..\planAhead_ise.tcl diff --git a/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_ise.sh b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_ise.sh new file mode 100755 index 000000000..6c8c837d3 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_ise.sh @@ -0,0 +1,59 @@ +#!/bin/sh +# file: planAhead_ise.sh +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +#----------------------------------------------------------------------------- +# Script to synthesize and implement the RTL provided for the clocking wizard +#----------------------------------------------------------------------------- + +rm -rf results +mkdir results +cd results + +planAhead -mode batch -source ../planAhead_ise.tcl diff --git a/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_ise.tcl b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_ise.tcl new file mode 100755 index 000000000..f4e6c57ae --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_ise.tcl @@ -0,0 +1,78 @@ +# file: planAhead_ise.tcl +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +set projDir [file dirname [info script]] +set projName pll_100_40_75 +set topName pll_100_40_75_exdes +set device xc6slx75csg484-3 + +create_project $projName $projDir/results/$projName -part $device + +set_property design_mode RTL [get_filesets sources_1] + +## Source files +#set verilogSources [glob $srcDir/*.v] +import_files -fileset [get_filesets sources_1] -force -norecurse ../../example_design/pll_100_40_75_exdes.v +import_files -fileset [get_filesets sources_1] -force -norecurse ../../../pll_100_40_75.v + + +#UCF file +import_files -fileset [get_filesets constrs_1] -force -norecurse ../../example_design/pll_100_40_75_exdes.ucf + +set_property top $topName [get_property srcset [current_run]] + +launch_runs -runs synth_1 +wait_on_run synth_1 + +set_property add_step Bitgen [get_runs impl_1] +launch_runs -runs impl_1 +wait_on_run impl_1 + + + diff --git a/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_rdn.bat b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_rdn.bat new file mode 100755 index 000000000..42273f5d4 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_rdn.bat @@ -0,0 +1,58 @@ +REM file: planAhead_rdn.sh +REM +REM (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +REM +REM This file contains confidential and proprietary information +REM of Xilinx, Inc. and is protected under U.S. and +REM international copyright and other intellectual property +REM laws. +REM +REM DISCLAIMER +REM This disclaimer is not a license and does not grant any +REM rights to the materials distributed herewith. Except as +REM otherwise provided in a valid license issued to you by +REM Xilinx, and to the maximum extent permitted by applicable +REM law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +REM WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +REM AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +REM BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +REM INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +REM (2) Xilinx shall not be liable (whether in contract or tort, +REM including negligence, or under any other theory of +REM liability) for any loss or damage of any kind or nature +REM related to, arising under or in connection with these +REM materials, including for any direct, or any indirect, +REM special, incidental, or consequential loss or damage +REM (including loss of data, profits, goodwill, or any type of +REM loss or damage suffered as a result of any action brought +REM by a third party) even if such damage or loss was +REM reasonably foreseeable or Xilinx had been advised of the +REM possibility of the same. +REM +REM CRITICAL APPLICATIONS +REM Xilinx products are not designed or intended to be fail- +REM safe, or for use in any application requiring fail-safe +REM performance, such as life-support or safety devices or +REM systems, Class III medical devices, nuclear facilities, +REM applications related to the deployment of airbags, or any +REM other applications that could lead to death, personal +REM injury, or severe property or environmental damage +REM (individually and collectively, "Critical +REM Applications"). Customer assumes the sole risk and +REM liability of any use of Xilinx products in Critical +REM Applications, subject only to applicable laws and +REM regulations governing limitations on product liability. +REM +REM THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +REM PART OF THIS FILE AT ALL TIMES. +REM + +REM----------------------------------------------------------------------------- +REM Script to synthesize and implement the RTL provided for the XADC wizard +REM----------------------------------------------------------------------------- + +del \f results +mkdir results +cd results + +planAhead -mode batch -source ..\planAhead_rdn.tcl diff --git a/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_rdn.sh b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_rdn.sh new file mode 100755 index 000000000..f4c14729e --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_rdn.sh @@ -0,0 +1,57 @@ +#!/bin/sh +# file: planAhead_rdn.sh +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +#----------------------------------------------------------------------------- +# Script to synthesize and implement the RTL provided for the XADC wizard +#----------------------------------------------------------------------------- +rm -rf results +mkdir results +cd results +planAhead -mode batch -source ../planAhead_rdn.tcl diff --git a/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_rdn.tcl b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_rdn.tcl new file mode 100755 index 000000000..56f9c65af --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/implement/planAhead_rdn.tcl @@ -0,0 +1,69 @@ +# file : planAhead_rdn.tcl +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +set device xc6slx75csg484-3 +set projName pll_100_40_75 +set design pll_100_40_75 +set projDir [file dirname [info script]] +create_project $projName $projDir/results/$projName -part $device -force +set_property design_mode RTL [current_fileset -srcset] +set top_module pll_100_40_75_exdes +set_property top pll_100_40_75_exdes [get_property srcset [current_run]] +add_files -norecurse {../../../pll_100_40_75.v} +add_files -norecurse {../../example_design/pll_100_40_75_exdes.v} +import_files -fileset [get_filesets constrs_1 ] -force -norecurse {../../example_design/pll_100_40_75_exdes.xdc} +synth_design +opt_design +place_design +route_design +write_sdf -rename_top_module pll_100_40_75_exdes -file routed.sdf +write_verilog -nolib -mode timesim -sdf_anno false -rename_top_module pll_100_40_75_exdes -file routed.v +report_timing -nworst 30 -path_type full -file routed.twr +report_drc -file report.drc +write_bitstream -bitgen_options {-g UnconstrainedPins:Allow} -file routed.bit diff --git a/fpga/usrp2/coregen/pll_100_40_75/implement/xst.prj b/fpga/usrp2/coregen/pll_100_40_75/implement/xst.prj new file mode 100755 index 000000000..8409c83dd --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/implement/xst.prj @@ -0,0 +1,2 @@ +verilog work ../../pll_100_40_75.v +verilog work ../example_design/pll_100_40_75_exdes.v diff --git a/fpga/usrp2/coregen/pll_100_40_75/implement/xst.scr b/fpga/usrp2/coregen/pll_100_40_75/implement/xst.scr new file mode 100755 index 000000000..af176e2e4 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/implement/xst.scr @@ -0,0 +1,9 @@ +run +-ifmt MIXED +-top pll_100_40_75_exdes +-p xc6slx75-csg484-3 +-ifn xst.prj +-ofn pll_100_40_75_exdes +-keep_hierarchy soft +-equivalent_register_removal no +-max_fanout 65535 diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simcmds.tcl b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simcmds.tcl new file mode 100755 index 000000000..6692a790e --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simcmds.tcl @@ -0,0 +1,8 @@ +# file: simcmds.tcl + +# create the simulation script +vcd dumpfile isim.vcd +vcd dumpvars -m /pll_100_40_75_tb -l 0 +wave add / +run 50000ns +quit diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_isim.bat b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_isim.bat new file mode 100755 index 000000000..783ddc0e3 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_isim.bat @@ -0,0 +1,59 @@ +REM file: simulate_isim.bat +REM +REM (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +REM +REM This file contains confidential and proprietary information +REM of Xilinx, Inc. and is protected under U.S. and +REM international copyright and other intellectual property +REM laws. +REM +REM DISCLAIMER +REM This disclaimer is not a license and does not grant any +REM rights to the materials distributed herewith. Except as +REM otherwise provided in a valid license issued to you by +REM Xilinx, and to the maximum extent permitted by applicable +REM law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +REM WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +REM AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +REM BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +REM INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +REM (2) Xilinx shall not be liable (whether in contract or tort, +REM including negligence, or under any other theory of +REM liability) for any loss or damage of any kind or nature +REM related to, arising under or in connection with these +REM materials, including for any direct, or any indirect, +REM special, incidental, or consequential loss or damage +REM (including loss of data, profits, goodwill, or any type of +REM loss or damage suffered as a result of any action brought +REM by a third party) even if such damage or loss was +REM reasonably foreseeable or Xilinx had been advised of the +REM possibility of the same. +REM +REM CRITICAL APPLICATIONS +REM Xilinx products are not designed or intended to be fail- +REM safe, or for use in any application requiring fail-safe +REM performance, such as life-support or safety devices or +REM systems, Class III medical devices, nuclear facilities, +REM applications related to the deployment of airbags, or any +REM other applications that could lead to death, personal +REM injury, or severe property or environmental damage +REM (individually and collectively, "Critical +REM Applications"). Customer assumes the sole risk and +REM liability of any use of Xilinx products in Critical +REM Applications, subject only to applicable laws and +REM regulations governing limitations on product liability. +REM +REM THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +REM PART OF THIS FILE AT ALL TIMES. +REM + +vlogcomp -work work %XILINX%\verilog\src\glbl.v +vlogcomp -work work ..\..\..\pll_100_40_75.v +vlogcomp -work work ..\..\example_design\pll_100_40_75_exdes.v +vlogcomp -work work ..\pll_100_40_75_tb.v + +REM compile the project +fuse work.pll_100_40_75_tb work.glbl -L unisims_ver -o pll_100_40_75_isim.exe + +REM run the simulation script +.\pll_100_40_75_isim.exe -gui -tclbatch simcmds.tcl diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_isim.sh b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_isim.sh new file mode 100755 index 000000000..cb197ed97 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_isim.sh @@ -0,0 +1,61 @@ +# file: simulate_isim.sh +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# lin +# create the project +vlogcomp -work work ${XILINX}/verilog/src/glbl.v +vlogcomp -work work ../../../pll_100_40_75.v +vlogcomp -work work ../../example_design/pll_100_40_75_exdes.v +vlogcomp -work work ../pll_100_40_75_tb.v + +# compile the project +fuse work.pll_100_40_75_tb work.glbl -L unisims_ver -o pll_100_40_75_isim.exe + +# run the simulation script +./pll_100_40_75_isim.exe -gui -tclbatch simcmds.tcl diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_mti.bat b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_mti.bat new file mode 100755 index 000000000..756d94e7a --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_mti.bat @@ -0,0 +1,61 @@ +REM file: simulate_mti.bat +REM +REM (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +REM +REM This file contains confidential and proprietary information +REM of Xilinx, Inc. and is protected under U.S. and +REM international copyright and other intellectual property +REM laws. +REM +REM DISCLAIMER +REM This disclaimer is not a license and does not grant any +REM rights to the materials distributed herewith. Except as +REM otherwise provided in a valid license issued to you by +REM Xilinx, and to the maximum extent permitted by applicable +REM law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +REM WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +REM AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +REM BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +REM INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +REM (2) Xilinx shall not be liable (whether in contract or tort, +REM including negligence, or under any other theory of +REM liability) for any loss or damage of any kind or nature +REM related to, arising under or in connection with these +REM materials, including for any direct, or any indirect, +REM special, incidental, or consequential loss or damage +REM (including loss of data, profits, goodwill, or any type of +REM loss or damage suffered as a result of any action brought +REM by a third party) even if such damage or loss was +REM reasonably foreseeable or Xilinx had been advised of the +REM possibility of the same. +REM +REM CRITICAL APPLICATIONS +REM Xilinx products are not designed or intended to be fail- +REM safe, or for use in any application requiring fail-safe +REM performance, such as life-support or safety devices or +REM systems, Class III medical devices, nuclear facilities, +REM applications related to the deployment of airbags, or any +REM other applications that could lead to death, personal +REM injury, or severe property or environmental damage +REM (individually and collectively, "Critical +REM Applications"). Customer assumes the sole risk and +REM liability of any use of Xilinx products in Critical +REM Applications, subject only to applicable laws and +REM regulations governing limitations on product liability. +REM +REM THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +REM PART OF THIS FILE AT ALL TIMES. +REM + +REM set up the working directory +vlib work + +REM compile all of the files +vlog -work work %XILINX%\verilog\src\glbl.v +vlog -work work ..\..\..\pll_100_40_75.v +vlog -work work ..\..\example_design\pll_100_40_75_exdes.v +vlog -work work ..\pll_100_40_75_tb.v + +REM run the simulation +vsim -c -t ps -voptargs="+acc" -L secureip -L unisims_ver work.pll_100_40_75_tb work.glbl + diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_mti.do b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_mti.do new file mode 100755 index 000000000..c74e73aa5 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_mti.do @@ -0,0 +1,65 @@ +# file: simulate_mti.do +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# set up the working directory +set work work +vlib work + +# compile all of the files +vlog -work work $env(XILINX)/verilog/src/glbl.v +vlog -work work ../../../pll_100_40_75.v +vlog -work work ../../example_design/pll_100_40_75_exdes.v +vlog -work work ../pll_100_40_75_tb.v + +# run the simulation +vsim -t ps -voptargs="+acc" -L unisims_ver work.pll_100_40_75_tb work.glbl +do wave.do +log pll_100_40_75_tb/dut/counter +log -r /* +run 50000ns diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_mti.sh b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_mti.sh new file mode 100755 index 000000000..a49ca05c6 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_mti.sh @@ -0,0 +1,61 @@ +#/bin/sh +# file: simulate_mti.sh +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# +# set up the working directory +set work work +vlib work + +# compile all of the files +vlog -work work $XILINX/verilog/src/glbl.v +vlog -work work ../../../pll_100_40_75.v +vlog -work work ../../example_design/pll_100_40_75_exdes.v +vlog -work work ../pll_100_40_75_tb.v + +# run the simulation +vsim -c -t ps -voptargs="+acc" -L secureip -L unisims_ver work.pll_100_40_75_tb work.glbl diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_ncsim.sh b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_ncsim.sh new file mode 100755 index 000000000..5978c8eb7 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_ncsim.sh @@ -0,0 +1,62 @@ +#/bin/sh +# file: simulate_ncsim.sh +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# set up the working directory +mkdir work + +# compile all of the files +ncvlog -work work ${XILINX}/verilog/src/glbl.v +ncvlog -work work ../../../pll_100_40_75.v +ncvlog -work work ../../example_design/pll_100_40_75_exdes.v +ncvlog -work work ../pll_100_40_75_tb.v + +# elaborate and run the simulation +ncelab -work work -access +wc work.pll_100_40_75_tb work.glbl +ncsim -input "@database -open -shm nc; probe -create -database nc -all -depth all; probe dut.counter; run 50000ns; exit" work.pll_100_40_75_tb diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_vcs.sh b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_vcs.sh new file mode 100755 index 000000000..bebd99d7d --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/simulate_vcs.sh @@ -0,0 +1,72 @@ +#!/bin/sh +# file: simulate_vcs.sh +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# remove old files +rm -rf simv* csrc DVEfiles AN.DB + +# compile all of the files +# Note that -sverilog is not strictly required- You can +# remove the -sverilog if you change the type of the +# localparam for the periods in the testbench file to +# [63:0] from time +vlogan -sverilog \ + ${XILINX}/verilog/src/glbl.v \ + ../../../pll_100_40_75.v \ + ../../example_design/pll_100_40_75_exdes.v \ + ../pll_100_40_75_tb.v + +# prepare the simulation +vcs +vcs+lic+wait -debug pll_100_40_75_tb glbl + +# run the simulation +./simv -ucli -i ucli_commands.key + +# launch the viewer +dve -vpd vcdplus.vpd -session vcs_session.tcl diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/ucli_commands.key b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/ucli_commands.key new file mode 100755 index 000000000..b56d68a2d --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/ucli_commands.key @@ -0,0 +1,5 @@ +call {$vcdpluson} +call {$vcdplusmemon(pll_100_40_75_tb.dut.counter)} +run +call {$vcdplusclose} +quit diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/vcs_session.tcl b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/vcs_session.tcl new file mode 100755 index 000000000..19b1ea0f5 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/vcs_session.tcl @@ -0,0 +1,18 @@ +gui_open_window Wave +gui_sg_create pll_100_40_75_group +gui_list_add_group -id Wave.1 {pll_100_40_75_group} +gui_sg_addsignal -group pll_100_40_75_group {pll_100_40_75_tb.test_phase} +gui_set_radix -radix {ascii} -signals {pll_100_40_75_tb.test_phase} +gui_sg_addsignal -group pll_100_40_75_group {{Input_clocks}} -divider +gui_sg_addsignal -group pll_100_40_75_group {pll_100_40_75_tb.CLK_IN1} +gui_sg_addsignal -group pll_100_40_75_group {{Output_clocks}} -divider +gui_sg_addsignal -group pll_100_40_75_group {pll_100_40_75_tb.dut.clk} +gui_list_expand -id Wave.1 pll_100_40_75_tb.dut.clk +gui_sg_addsignal -group pll_100_40_75_group {{Status_control}} -divider +gui_sg_addsignal -group pll_100_40_75_group {pll_100_40_75_tb.RESET} +gui_sg_addsignal -group pll_100_40_75_group {pll_100_40_75_tb.LOCKED} +gui_sg_addsignal -group pll_100_40_75_group {{Counters}} -divider +gui_sg_addsignal -group pll_100_40_75_group {pll_100_40_75_tb.COUNT} +gui_sg_addsignal -group pll_100_40_75_group {pll_100_40_75_tb.dut.counter} +gui_list_expand -id Wave.1 pll_100_40_75_tb.dut.counter +gui_zoom -window Wave.1 -full diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/wave.do b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/wave.do new file mode 100755 index 000000000..4178de1c7 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/wave.do @@ -0,0 +1,60 @@ +# file: wave.do +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +add wave -noupdate -format Literal -radix ascii /pll_100_40_75_tb/test_phase +add wave -noupdate -divider {Input clocks} +add wave -noupdate -format Logic /pll_100_40_75_tb/CLK_IN1 +add wave -noupdate -divider {Output clocks} +add wave -noupdate -format Literal -expand /pll_100_40_75_tb/dut/clk +add wave -noupdate -divider Status/control +add wave -noupdate -format Logic /pll_100_40_75_tb/RESET +add wave -noupdate -format Logic /pll_100_40_75_tb/LOCKED +add wave -noupdate -divider Counters +add wave -noupdate -format Literal -radix hexadecimal /pll_100_40_75_tb/COUNT +add wave -noupdate -format Literal -radix hexadecimal -expand /pll_100_40_75_tb/dut/counter diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/wave.sv b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/wave.sv new file mode 100755 index 000000000..57e72bdec --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/functional/wave.sv @@ -0,0 +1,119 @@ +# file: wave.sv +# +# (c) Copyright 2008 - 2010 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# +# Get the windows set up +# +if {[catch {window new WatchList -name "Design Browser 1" -geometry 1054x819+536+322}] != ""} { + window geometry "Design Browser 1" 1054x819+536+322 +} +window target "Design Browser 1" on +browser using {Design Browser 1} +browser set \ + -scope nc::pll_100_40_75_tb +browser yview see nc::pll_100_40_75_tb +browser timecontrol set -lock 0 + +if {[catch {window new WaveWindow -name "Waveform 1" -geometry 1010x600+0+541}] != ""} { + window geometry "Waveform 1" 1010x600+0+541 +} +window target "Waveform 1" on +waveform using {Waveform 1} +waveform sidebar visibility partial +waveform set \ + -primarycursor TimeA \ + -signalnames name \ + -signalwidth 175 \ + -units ns \ + -valuewidth 75 +cursor set -using TimeA -time 0 +waveform baseline set -time 0 +waveform xview limits 0 20000n + +# +# Define signal groups +# +catch {group new -name {Output clocks} -overlay 0} +catch {group new -name {Status/control} -overlay 0} +catch {group new -name {Counters} -overlay 0} + +set id [waveform add -signals [list {nc::pll_100_40_75_tb.CLK_IN1}]] + +group using {Output clocks} +group set -overlay 0 +group set -comment {} +group clear 0 end + +group insert \ + {pll_100_40_75_tb.dut.clk[1]} \ + {pll_100_40_75_tb.dut.clk[2]} \ {pll_100_40_75_tb.dut.clk[3]} +group using {Counters} +group set -overlay 0 +group set -comment {} +group clear 0 end + +group insert \ + {pll_100_40_75_tb.dut.counter[1]} \ + {pll_100_40_75_tb.dut.counter[2]} \ {pll_100_40_75_tb.dut.counter[3]} +group using {Status/control} +group set -overlay 0 +group set -comment {} +group clear 0 end + +group insert \ + {nc::pll_100_40_75_tb.RESET} {nc::pll_100_40_75_tb.LOCKED} + + +set id [waveform add -signals [list {nc::pll_100_40_75_tb.COUNT} ]] + +set id [waveform add -signals [list {nc::pll_100_40_75_tb.test_phase} ]] +waveform format $id -radix %a + +set groupId [waveform add -groups {{Input clocks}}] +set groupId [waveform add -groups {{Output clocks}}] +set groupId [waveform add -groups {{Status/control}}] +set groupId [waveform add -groups {{Counters}}] diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/pll_100_40_75_tb.v b/fpga/usrp2/coregen/pll_100_40_75/simulation/pll_100_40_75_tb.v new file mode 100755 index 000000000..fe800f0cc --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/pll_100_40_75_tb.v @@ -0,0 +1,143 @@ +// file: pll_100_40_75_tb.v +// +// (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// + +//---------------------------------------------------------------------------- +// Clocking wizard demonstration testbench +//---------------------------------------------------------------------------- +// This demonstration testbench instantiates the example design for the +// clocking wizard. Input clocks are toggled, which cause the clocking +// network to lock and the counters to increment. +//---------------------------------------------------------------------------- + +`timescale 1ps/1ps + +`define wait_lock @(posedge LOCKED) + +module pll_100_40_75_tb (); + + // Clock to Q delay of 100ps + localparam TCQ = 100; + + + // timescale is 1ps/1ps + localparam ONE_NS = 1000; + localparam PHASE_ERR_MARGIN = 100; // 100ps + // how many cycles to run + localparam COUNT_PHASE = 1024; + // we'll be using the period in many locations + localparam time PER1 = 25.000*ONE_NS; + localparam time PER1_1 = PER1/2; + localparam time PER1_2 = PER1 - PER1/2; + + // Declare the input clock signals + reg CLK_IN1 = 1; + + // The high bits of the sampling counters + wire [3:1] COUNT; + // Status and control signals + reg RESET = 0; + wire LOCKED; + reg COUNTER_RESET = 0; +wire [3:1] CLK_OUT; +//Freq Check using the M & D values setting and actual Frequency generated + + + // Input clock generation + //------------------------------------ + always begin + CLK_IN1 = #PER1_1 ~CLK_IN1; + CLK_IN1 = #PER1_2 ~CLK_IN1; + end + + // Test sequence + reg [15*8-1:0] test_phase = ""; + initial begin + // Set up any display statements using time to be readable + $timeformat(-12, 2, "ps", 10); + COUNTER_RESET = 0; + test_phase = "reset"; + RESET = 1; + #(PER1*6); + RESET = 0; + test_phase = "wait lock"; + `wait_lock; + #(PER1*6); + COUNTER_RESET = 1; + #(PER1*20) + COUNTER_RESET = 0; + + test_phase = "counting"; + #(PER1*COUNT_PHASE); + + $display("SIMULATION PASSED"); + $display("SYSTEM_CLOCK_COUNTER : %0d\n",$time/PER1); + $finish; + end + + // Instantiation of the example design containing the clock + // network and sampling counters + //--------------------------------------------------------- + pll_100_40_75_exdes + #( + .TCQ (TCQ) + ) dut + (// Clock in ports + .CLK_IN1 (CLK_IN1), + // Reset for logic in example design + .COUNTER_RESET (COUNTER_RESET), + .CLK_OUT (CLK_OUT), + // High bits of the counters + .COUNT (COUNT), + // Status and control signals + .RESET (RESET), + .LOCKED (LOCKED)); + +// Freq Check + +endmodule diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/pll_100_40_75_tb.v b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/pll_100_40_75_tb.v new file mode 100755 index 000000000..0e6be6e9d --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/pll_100_40_75_tb.v @@ -0,0 +1,157 @@ +// file: pll_100_40_75_tb.v +// +// (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// + +//---------------------------------------------------------------------------- +// Clocking wizard demonstration testbench +//---------------------------------------------------------------------------- +// This demonstration testbench instantiates the example design for the +// clocking wizard. Input clocks are toggled, which cause the clocking +// network to lock and the counters to increment. +//---------------------------------------------------------------------------- + +`timescale 1ps/1ps + +`define wait_lock @(posedge LOCKED) + +module pll_100_40_75_tb (); + + // Clock to Q delay of 100ps + localparam TCQ = 100; + + + // timescale is 1ps/1ps + localparam ONE_NS = 1000; + localparam PHASE_ERR_MARGIN = 100; // 100ps + // how many cycles to run + localparam COUNT_PHASE = 1024; + // we'll be using the period in many locations + localparam time PER1 = 25.000*ONE_NS; + localparam time PER1_1 = PER1/2; + localparam time PER1_2 = PER1 - PER1/2; + + // Declare the input clock signals + reg CLK_IN1 = 1; + + // The high bits of the sampling counters + wire [3:1] COUNT; + // Status and control signals + reg RESET = 0; + wire LOCKED; + reg COUNTER_RESET = 0; +wire [3:1] CLK_OUT; +//Freq Check using the M & D values setting and actual Frequency generated + + reg [13:0] timeout_counter = 14'b00000000000000; + + // Input clock generation + //------------------------------------ + always begin + CLK_IN1 = #PER1_1 ~CLK_IN1; + CLK_IN1 = #PER1_2 ~CLK_IN1; + end + + // Test sequence + reg [15*8-1:0] test_phase = ""; + initial begin + // Set up any display statements using time to be readable + $timeformat(-12, 2, "ps", 10); + $display ("Timing checks are not valid"); + COUNTER_RESET = 0; + test_phase = "reset"; + RESET = 1; + #(PER1*6); + RESET = 0; + test_phase = "wait lock"; + `wait_lock; + #(PER1*6); + COUNTER_RESET = 1; + #(PER1*19.5) + COUNTER_RESET = 0; + #(PER1*1) + $display ("Timing checks are valid"); + test_phase = "counting"; + #(PER1*COUNT_PHASE); + + $display("SIMULATION PASSED"); + $display("SYSTEM_CLOCK_COUNTER : %0d\n",$time/PER1); + $finish; + end + + + always@(posedge CLK_IN1) begin + timeout_counter <= timeout_counter + 1'b1; + if (timeout_counter == 14'b10000000000000) begin + if (LOCKED != 1'b1) begin + $display("ERROR : NO LOCK signal"); + $display("SYSTEM_CLOCK_COUNTER : %0d\n",$time/PER1); + $finish; + end + end + end + + // Instantiation of the example design containing the clock + // network and sampling counters + //--------------------------------------------------------- + pll_100_40_75_exdes + dut + (// Clock in ports + .CLK_IN1 (CLK_IN1), + // Reset for logic in example design + .COUNTER_RESET (COUNTER_RESET), + .CLK_OUT (CLK_OUT), + // High bits of the counters + .COUNT (COUNT), + // Status and control signals + .RESET (RESET), + .LOCKED (LOCKED)); + + +// Freq Check + +endmodule diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/sdf_cmd_file b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/sdf_cmd_file new file mode 100755 index 000000000..61dacfed8 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/sdf_cmd_file @@ -0,0 +1,2 @@ +COMPILED_SDF_FILE = "../../implement/results/routed.sdf.X", +SCOPE = pll_100_40_75_tb.dut; diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simcmds.tcl b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simcmds.tcl new file mode 100755 index 000000000..857329884 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simcmds.tcl @@ -0,0 +1,9 @@ +# file: simcmds.tcl + +# create the simulation script +vcd dumpfile isim.vcd +vcd dumpvars -m /pll_100_40_75_tb -l 0 +wave add / +run 50000ns +quit + diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_isim.sh b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_isim.sh new file mode 100755 index 000000000..e3b06d7c5 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_isim.sh @@ -0,0 +1,62 @@ +# file: simulate_isim.sh +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# create the project +vlogcomp -work work ${XILINX}/verilog/src/glbl.v +vlogcomp -work work ../../implement/results/routed.v +vlogcomp -work work pll_100_40_75_tb.v + +# compile the project +fuse work.pll_100_40_75_tb work.glbl -L secureip -L simprims_ver -o pll_100_40_75_isim.exe + +# run the simulation script +./pll_100_40_75_isim.exe -tclbatch simcmds.tcl -sdfmax /pll_100_40_75_tb/dut=../../implement/results/routed.sdf + +# run the simulation script +#./pll_100_40_75_isim.exe -gui -tclbatch simcmds.tcl diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_mti.bat b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_mti.bat new file mode 100755 index 000000000..7e5890086 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_mti.bat @@ -0,0 +1,59 @@ +REM file: simulate_mti.bat +REM +REM (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +REM +REM This file contains confidential and proprietary information +REM of Xilinx, Inc. and is protected under U.S. and +REM international copyright and other intellectual property +REM laws. +REM +REM DISCLAIMER +REM This disclaimer is not a license and does not grant any +REM rights to the materials distributed herewith. Except as +REM otherwise provided in a valid license issued to you by +REM Xilinx, and to the maximum extent permitted by applicable +REM law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +REM WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +REM AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +REM BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +REM INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +REM (2) Xilinx shall not be liable (whether in contract or tort, +REM including negligence, or under any other theory of +REM liability) for any loss or damage of any kind or nature +REM related to, arising under or in connection with these +REM materials, including for any direct, or any indirect, +REM special, incidental, or consequential loss or damage +REM (including loss of data, profits, goodwill, or any type of +REM loss or damage suffered as a result of any action brought +REM by a third party) even if such damage or loss was +REM reasonably foreseeable or Xilinx had been advised of the +REM possibility of the same. +REM +REM CRITICAL APPLICATIONS +REM Xilinx products are not designed or intended to be fail- +REM safe, or for use in any application requiring fail-safe +REM performance, such as life-support or safety devices or +REM systems, Class III medical devices, nuclear facilities, +REM applications related to the deployment of airbags, or any +REM other applications that could lead to death, personal +REM injury, or severe property or environmental damage +REM (individually and collectively, "Critical +REM Applications"). Customer assumes the sole risk and +REM liability of any use of Xilinx products in Critical +REM Applications, subject only to applicable laws and +REM regulations governing limitations on product liability. +REM +REM THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +REM PART OF THIS FILE AT ALL TIMES. +REM +# set up the working directory +set work work +vlib work + +REM compile all of the files +vlog -work work %XILINX%\verilog\src\glbl.v +vlog -work work ..\..\implement\results\routed.v +vlog -work work pll_100_40_75_tb.v + +REM run the simulation +vsim -c -t ps +transport_int_delays -voptargs="+acc" -L secureip -L simprims_ver -sdfmax pll_100_40_75_tb\dut=..\..\implement\results\routed.sdf +no_notifier work.pll_100_40_75_tb work.glbl diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_mti.do b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_mti.do new file mode 100755 index 000000000..03f8a3965 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_mti.do @@ -0,0 +1,65 @@ +# file: simulate_mti.do +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# set up the working directory +set work work +vlib work + +# compile all of the files +vlog -work work $env(XILINX)/verilog/src/glbl.v +vlog -work work ../../implement/results/routed.v +vlog -work work pll_100_40_75_tb.v + +# run the simulation +vsim -t ps +transport_int_delays -voptargs="+acc" -L secureip -L simprims_ver -sdfmax pll_100_40_75_tb/dut=../../implement/results/routed.sdf +no_notifier work.pll_100_40_75_tb work.glbl +#do wave.do +#log -r /* +run 50000ns + + diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_mti.sh b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_mti.sh new file mode 100755 index 000000000..055768aa8 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_mti.sh @@ -0,0 +1,61 @@ +#/bin/sh +# file: simulate_mti.sh +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# set up the working directory +set work work +vlib work + +# compile all of the files +vlog -work work $XILINX/verilog/src/glbl.v +vlog -work work ../../implement/results/routed.v +vlog -work work pll_100_40_75_tb.v + +# run the simulation +vsim -c -t ps +transport_int_delays -voptargs="+acc" -L secureip -L simprims_ver -sdfmax pll_100_40_75_tb/dut=../../implement/results/routed.sdf +no_notifier work.pll_100_40_75_tb work.glbl diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_ncsim.sh b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_ncsim.sh new file mode 100755 index 000000000..aa3a2b441 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_ncsim.sh @@ -0,0 +1,64 @@ +#!/bin/sh +# file: simulate_ncsim.sh +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# set up the working directory +mkdir work + +# compile all of the files +ncvlog -work work ${XILINX}/verilog/src/glbl.v +ncvlog -work work ../../implement/results/routed.v +ncvlog -work work pll_100_40_75_tb.v + +# elaborate and run the simulation +ncsdfc ../../implement/results/routed.sdf + +ncelab -work work -access +wc -pulse_r 10 -nonotifier work.pll_100_40_75_tb work.glbl -sdf_cmd_file sdf_cmd_file +ncsim -input "@database -open -shm nc; probe -create -database nc -all -depth all; run 50000ns; exit" work.pll_100_40_75_tb + diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_vcs.sh b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_vcs.sh new file mode 100755 index 000000000..3cc21dd69 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/simulate_vcs.sh @@ -0,0 +1,72 @@ +#!/bin/sh +# file: simulate_vcs.sh +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# remove old files +rm -rf simv* csrc DVEfiles AN.DB + +# compile all of the files +# Note that -sverilog is not strictly required- You can +# remove the -sverilog if you change the type of the +# localparam for the periods in the testbench file to +# [63:0] from time + vlogan -sverilog \ + pll_100_40_75_tb.v \ + ../../implement/results/routed.v + + +# prepare the simulation +vcs -sdf max:pll_100_40_75_exdes:../../implement/results/routed.sdf +v2k -y $XILINX/verilog/src/simprims \ + +libext+.v -debug pll_100_40_75_tb.v ../../implement/results/routed.v + +# run the simulation +./simv -ucli -i ucli_commands.key + +# launch the viewer +#dve -vpd vcdplus.vpd -session vcs_session.tcl diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/ucli_commands.key b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/ucli_commands.key new file mode 100755 index 000000000..0548d1733 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/ucli_commands.key @@ -0,0 +1,5 @@ + +call {$vcdpluson} +run 50000ns +call {$vcdplusclose} +quit diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/vcs_session.tcl b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/vcs_session.tcl new file mode 100755 index 000000000..1438f6bed --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/vcs_session.tcl @@ -0,0 +1 @@ +gui_open_window Wave diff --git a/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/wave.do b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/wave.do new file mode 100755 index 000000000..fe9b59354 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75/simulation/timing/wave.do @@ -0,0 +1,72 @@ +# file: wave.do +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate /pll_100_40_75_tb/CLK_IN1 +add wave -noupdate /pll_100_40_75_tb/COUNT +add wave -noupdate /pll_100_40_75_tb/LOCKED +add wave -noupdate /pll_100_40_75_tb/RESET +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 1} {3223025 ps} 0} +configure wave -namecolwidth 238 +configure wave -valuecolwidth 107 +configure wave -justifyvalue left +configure wave -signalnamewidth 0 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 1 +configure wave -griddelta 40 +configure wave -timeline 0 +configure wave -timelineunits ps +update +WaveRestoreZoom {0 ps} {74848022 ps} diff --git a/fpga/usrp2/coregen/pll_100_40_75_exdes.ncf b/fpga/usrp2/coregen/pll_100_40_75_exdes.ncf new file mode 100644 index 000000000..ddff6a6e9 --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75_exdes.ncf @@ -0,0 +1,73 @@ +# file: pll_100_40_75_exdes.ucf +# +# (c) Copyright 2008 - 2011 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# Input clock periods. These duplicate the values entered for the +# input clocks. You can use these to time your system +#---------------------------------------------------------------- +NET "CLK_IN1" TNM_NET = "CLK_IN1"; +TIMESPEC "TS_CLK_IN1" = PERIOD "CLK_IN1" 25.000 ns HIGH 50% INPUT_JITTER 250.0ps; + +# Derived clock periods. These are commented out because they are +# automatically propogated by the tools +# However, if you'd like to use them for module level testing, you +# can copy them into your module level timing checks +#----------------------------------------------------------------- +# NET "clk_int[1]" TNM_NET = "CLK_OUT1"; +# TIMESPEC "TS_CLK_OUT1" = PERIOD "CLK_OUT1" 100.000 MHz; + +# NET "clk_int[2]" TNM_NET = "CLK_OUT2"; +# TIMESPEC "TS_CLK_OUT2" = PERIOD "CLK_OUT2" 40.000 MHz; +# NET "clk_int[3]" TNM_NET = "CLK_OUT3"; +# TIMESPEC "TS_CLK_OUT3" = PERIOD "CLK_OUT3" 75.000 MHz; + +# FALSE PATH constraints +PIN "COUNTER_RESET" TIG; +PIN "RESET" TIG; + + diff --git a/fpga/usrp2/coregen/pll_100_40_75_flist.txt b/fpga/usrp2/coregen/pll_100_40_75_flist.txt new file mode 100644 index 000000000..04c7f882d --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75_flist.txt @@ -0,0 +1,54 @@ +# Output products list for <pll_100_40_75> +_xmsgs/pn_parser.xmsgs +pll_100_40_75/clk_wiz_v3_5_readme.txt +pll_100_40_75/doc/clk_wiz_gsg521.pdf +pll_100_40_75/doc/clk_wiz_v3_5_readme.txt +pll_100_40_75/doc/clk_wiz_v3_5_vinfo.html +pll_100_40_75/example_design/pll_100_40_75_exdes.ucf +pll_100_40_75/example_design/pll_100_40_75_exdes.v +pll_100_40_75/example_design/pll_100_40_75_exdes.xdc +pll_100_40_75/implement/implement.bat +pll_100_40_75/implement/implement.sh +pll_100_40_75/implement/planAhead_ise.bat +pll_100_40_75/implement/planAhead_ise.sh +pll_100_40_75/implement/planAhead_ise.tcl +pll_100_40_75/implement/planAhead_rdn.bat +pll_100_40_75/implement/planAhead_rdn.sh +pll_100_40_75/implement/planAhead_rdn.tcl +pll_100_40_75/implement/xst.prj +pll_100_40_75/implement/xst.scr +pll_100_40_75/simulation/functional/simcmds.tcl +pll_100_40_75/simulation/functional/simulate_isim.bat +pll_100_40_75/simulation/functional/simulate_isim.sh +pll_100_40_75/simulation/functional/simulate_mti.bat +pll_100_40_75/simulation/functional/simulate_mti.do +pll_100_40_75/simulation/functional/simulate_mti.sh +pll_100_40_75/simulation/functional/simulate_ncsim.sh +pll_100_40_75/simulation/functional/simulate_vcs.sh +pll_100_40_75/simulation/functional/ucli_commands.key +pll_100_40_75/simulation/functional/vcs_session.tcl +pll_100_40_75/simulation/functional/wave.do +pll_100_40_75/simulation/functional/wave.sv +pll_100_40_75/simulation/pll_100_40_75_tb.v +pll_100_40_75/simulation/timing/pll_100_40_75_tb.v +pll_100_40_75/simulation/timing/sdf_cmd_file +pll_100_40_75/simulation/timing/simcmds.tcl +pll_100_40_75/simulation/timing/simulate_isim.sh +pll_100_40_75/simulation/timing/simulate_mti.bat +pll_100_40_75/simulation/timing/simulate_mti.do +pll_100_40_75/simulation/timing/simulate_mti.sh +pll_100_40_75/simulation/timing/simulate_ncsim.sh +pll_100_40_75/simulation/timing/simulate_vcs.sh +pll_100_40_75/simulation/timing/ucli_commands.key +pll_100_40_75/simulation/timing/vcs_session.tcl +pll_100_40_75/simulation/timing/wave.do +pll_100_40_75.asy +pll_100_40_75.gise +pll_100_40_75.ucf +pll_100_40_75.v +pll_100_40_75.veo +pll_100_40_75.xco +pll_100_40_75.xdc +pll_100_40_75.xise +pll_100_40_75_flist.txt +pll_100_40_75_xmdf.tcl diff --git a/fpga/usrp2/coregen/pll_100_40_75_xmdf.tcl b/fpga/usrp2/coregen/pll_100_40_75_xmdf.tcl new file mode 100755 index 000000000..18eee6e1a --- /dev/null +++ b/fpga/usrp2/coregen/pll_100_40_75_xmdf.tcl @@ -0,0 +1,144 @@ +# The package naming convention is <core_name>_xmdf +package provide pll_100_40_75_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is <core_name>_xmdf +namespace eval ::pll_100_40_75_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::pll_100_40_75_xmdf::xmdfInit { instance } { +# Variable containg name of library into which module is compiled +# Recommendation: <module_name> +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name pll_100_40_75 +} +# ::pll_100_40_75_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::pll_100_40_75_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be magically +# available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/clk_wiz_readme.txt +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/example_design/pll_100_40_75_exdes.ucf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ucf +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/doc/clk_wiz_ds709.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/doc/clk_wiz_gsg521.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/example_design/pll_100_40_75_exdes.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/implement/implement.bat +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/implement/implement.sh +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/implement/xst.prj +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/implement/xst.scr +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/simulation/pll_100_40_75_tb.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/simulation/functional/simcmds.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/simulation/functional/simulate_isim.sh +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/simulation/functional/simulate_mti.do +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/simulation/functional/simulate_ncsim.sh +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/simulation/functional/simulate_vcs.sh +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/simulation/functional/ucli_commands.key +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/simulation/functional/vcs_session.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/simulation/functional/wave.do +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75/simulation/functional/wave.sv +utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75.asy +utilities_xmdf::xmdfSetData $instance FileSet $fcount type asy +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75.ejp +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75.veo +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75.xco +utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path pll_100_40_75_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module pll_100_40_75 +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/fpga/usrp2/fifo/resp_packet_padder36.v b/fpga/usrp2/fifo/resp_packet_padder36.v new file mode 100644 index 000000000..18fc18291 --- /dev/null +++ b/fpga/usrp2/fifo/resp_packet_padder36.v @@ -0,0 +1,88 @@ +// +// Copyright 2011-2012 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +// PAD to NUM LINES + +module resp_packet_padder36 +#( + parameter NUM_LINES32 = 128 +) +( + input clk, input reset, + + //input interface + input [35:0] data_i, + input src_rdy_i, + output dst_rdy_o, + + //output interface + output [35:0] data_o, + output src_rdy_o, + input dst_rdy_i +); + + localparam STATE_FWD = 0; + localparam STATE_PAD = 1; + reg state; + + reg [15:0] counter; + + always @(posedge clk) begin + if (reset) begin + counter <= 0; + end + else if (src_rdy_o && dst_rdy_i) begin + if (data_o[33]) counter <= 0; + else counter <= counter + 1; + end + end + + always @(posedge clk) begin + if (reset) begin + state <= STATE_FWD; + end + else case(state) + + STATE_FWD: begin + if (src_rdy_i && dst_rdy_o && data_i[33] && ~data_o[33]) begin + state <= STATE_PAD; + end + end + + STATE_PAD: begin + if (src_rdy_o && dst_rdy_i && data_o[33]) begin + state <= STATE_FWD; + end + end + + endcase //state + end + + //assign data out + assign data_o[31:0] = (state == STATE_FWD)? data_i[31:0] : {32'b0}; + wire eof = (counter == (NUM_LINES32-1)); + assign data_o[35:32] = {data_i[35:34], eof, data_i[32]}; + + //assign ready + assign src_rdy_o = (state == STATE_FWD)? src_rdy_i : 1'b1; + assign dst_rdy_o = (state == STATE_FWD)? dst_rdy_i : 1'b0; + +endmodule // resp_packet_padder36 + + + + diff --git a/fpga/usrp2/gpif/.gitignore b/fpga/usrp2/gpif/.gitignore new file mode 100644 index 000000000..421b858b6 --- /dev/null +++ b/fpga/usrp2/gpif/.gitignore @@ -0,0 +1,3 @@ +fuse* +isim* +*_tb diff --git a/fpga/usrp2/gpif/gpif.v b/fpga/usrp2/gpif/gpif.v new file mode 100644 index 000000000..e5b63d5a3 --- /dev/null +++ b/fpga/usrp2/gpif/gpif.v @@ -0,0 +1,185 @@ +// +// Copyright 2011 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +////////////////////////////////////////////////////////////////////////////////// + +module gpif + #(parameter TXFIFOSIZE = 11, parameter RXFIFOSIZE = 11) + (// GPIF signals + input gpif_clk, input gpif_rst, + inout [15:0] gpif_d, input [3:0] gpif_ctl, output [3:0] gpif_rdy, + output [2:0] gpif_misc, + + // Wishbone signals + input wb_clk, input wb_rst, + output [15:0] wb_adr_o, output [15:0] wb_dat_mosi, input [15:0] wb_dat_miso, + output [1:0] wb_sel_o, output wb_cyc_o, output wb_stb_o, output wb_we_o, input wb_ack_i, + input [7:0] triggers, + + // FIFO interface + input fifo_clk, input fifo_rst, input clear_tx, input clear_rx, + output [35:0] tx_data_o, output tx_src_rdy_o, input tx_dst_rdy_i, + input [35:0] rx_data_i, input rx_src_rdy_i, output rx_dst_rdy_o, + input [35:0] tx_err_data_i, input tx_err_src_rdy_i, output tx_err_dst_rdy_o, + + output tx_underrun, output rx_overrun, + input [7:0] frames_per_packet, + output [31:0] debug0, output [31:0] debug1 + ); + + assign tx_underrun = 0; + assign rx_overrun = 0; + + wire WR = gpif_ctl[0]; + wire RD = gpif_ctl[1]; + wire OE = gpif_ctl[2]; + wire EP = gpif_ctl[3]; + + wire CF, CE, DF, DE; + + assign gpif_rdy = { CF, CE, DF, DE }; + + wire [15:0] gpif_d_out; + assign gpif_d = OE ? gpif_d_out : 16'bz; + + wire [15:0] gpif_d_copy = gpif_d; + + wire [31:0] debug_rd, debug_wr, debug_split0, debug_split1; + + // //////////////////////////////////////////////////////////////////// + // TX Data Path + + wire [18:0] tx19_data; + wire tx19_src_rdy, tx19_dst_rdy; + wire [35:0] tx36_data; + wire tx36_src_rdy, tx36_dst_rdy; + + wire [18:0] ctrl_data; + wire ctrl_src_rdy, ctrl_dst_rdy; + + gpif_wr gpif_wr + (.gpif_clk(gpif_clk), .gpif_rst(gpif_rst), + .gpif_data(gpif_d), .gpif_wr(WR), .gpif_ep(EP), + .gpif_full_d(DF), .gpif_full_c(CF), + + .sys_clk(fifo_clk), .sys_rst(fifo_rst), + .data_o(tx19_data), .src_rdy_o(tx19_src_rdy), .dst_rdy_i(tx19_dst_rdy), + .ctrl_o(ctrl_data), .ctrl_src_rdy_o(ctrl_src_rdy), .ctrl_dst_rdy_i(ctrl_dst_rdy), + .debug(debug_wr) ); + + // join vita packets which are longer than one frame, drop frame padding + wire [18:0] refr_data; + wire refr_src_rdy, refr_dst_rdy; + + packet_reframer tx_packet_reframer + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_tx), + .data_i(tx19_data), .src_rdy_i(tx19_src_rdy), .dst_rdy_o(tx19_dst_rdy), + .data_o(refr_data), .src_rdy_o(refr_src_rdy), .dst_rdy_i(refr_dst_rdy)); + + fifo19_to_fifo36 #(.LE(1)) f19_to_f36 + (.clk(fifo_clk), .reset(fifo_rst), .clear(0), + .f19_datain(refr_data), .f19_src_rdy_i(refr_src_rdy), .f19_dst_rdy_o(refr_dst_rdy), + .f36_dataout(tx36_data), .f36_src_rdy_o(tx36_src_rdy), .f36_dst_rdy_i(tx36_dst_rdy)); + + fifo_cascade #(.WIDTH(36), .SIZE(TXFIFOSIZE)) tx_fifo36 + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_tx), + .datain(tx36_data), .src_rdy_i(tx36_src_rdy), .dst_rdy_o(tx36_dst_rdy), + .dataout(tx_data_o), .src_rdy_o(tx_src_rdy_o), .dst_rdy_i(tx_dst_rdy_i)); + + // //////////////////////////////////////////// + // RX Data Path + + wire [35:0] rx36_data; + wire rx36_src_rdy, rx36_dst_rdy; + wire [18:0] rx19_data, splt_data; + wire rx19_src_rdy, rx19_dst_rdy, splt_src_rdy, splt_dst_rdy; + wire [18:0] resp_data, resp_int1, resp_int2; + wire resp_src_rdy, resp_dst_rdy; + wire resp_src_rdy_int1, resp_dst_rdy_int1, resp_src_rdy_int2, resp_dst_rdy_int2; + + fifo_cascade #(.WIDTH(36), .SIZE(RXFIFOSIZE)) rx_fifo36 + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_rx), + .datain(rx_data_i), .src_rdy_i(rx_src_rdy_i), .dst_rdy_o(rx_dst_rdy_o), + .dataout(rx36_data), .src_rdy_o(rx36_src_rdy), .dst_rdy_i(rx36_dst_rdy)); + + fifo36_to_fifo19 #(.LE(1)) f36_to_f19 + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_rx), + .f36_datain(rx36_data), .f36_src_rdy_i(rx36_src_rdy), .f36_dst_rdy_o(rx36_dst_rdy), + .f19_dataout(rx19_data), .f19_src_rdy_o(rx19_src_rdy), .f19_dst_rdy_i(rx19_dst_rdy) ); + + packet_splitter #(.FRAME_LEN(256)) packet_splitter + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_rx), + .frames_per_packet(frames_per_packet), + .data_i(rx19_data), .src_rdy_i(rx19_src_rdy), .dst_rdy_o(rx19_dst_rdy), + .data_o(splt_data), .src_rdy_o(splt_src_rdy), .dst_rdy_i(splt_dst_rdy), + .debug0(debug_split0), .debug1(debug_split1)); + + gpif_rd gpif_rd + (.gpif_clk(gpif_clk), .gpif_rst(gpif_rst), + .gpif_data(gpif_d_out), .gpif_rd(RD), .gpif_ep(EP), + .gpif_empty_d(DE), .gpif_empty_c(CE), .gpif_flush(gpif_misc[0]), + + .sys_clk(fifo_clk), .sys_rst(fifo_rst), + .data_i(splt_data), .src_rdy_i(splt_src_rdy), .dst_rdy_o(splt_dst_rdy), + .resp_i(resp_data), .resp_src_rdy_i(resp_src_rdy), .resp_dst_rdy_o(resp_dst_rdy), + .debug(debug_rd) ); + + // //////////////////////////////////////////////////////////////////// + // FIFO to Wishbone interface + + fifo_to_wb fifo_to_wb + (.clk(fifo_clk), .reset(fifo_rst), .clear(0), + .data_i(ctrl_data), .src_rdy_i(ctrl_src_rdy), .dst_rdy_o(ctrl_dst_rdy), + .data_o(resp_int1), .src_rdy_o(resp_src_rdy_int1), .dst_rdy_i(resp_dst_rdy_int1), + .wb_adr_o(wb_adr_o), .wb_dat_mosi(wb_dat_mosi), .wb_dat_miso(wb_dat_miso), .wb_sel_o(wb_sel_o), + .wb_cyc_o(wb_cyc_o), .wb_stb_o(wb_stb_o), .wb_we_o(wb_we_o), .wb_ack_i(wb_ack_i), + .triggers(triggers), + .debug0(), .debug1()); + + wire [18:0] tx_err19_data; + wire tx_err19_src_rdy, tx_err19_dst_rdy; + + fifo36_to_fifo19 #(.LE(1)) f36_to_f19_txerr + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_rx), + .f36_datain(tx_err_data_i), .f36_src_rdy_i(tx_err_src_rdy_i), .f36_dst_rdy_o(tx_err_dst_rdy_o), + .f19_dataout(tx_err19_data), .f19_src_rdy_o(tx_err19_src_rdy), .f19_dst_rdy_i(tx_err19_dst_rdy) ); + + fifo19_mux #(.prio(0)) mux_err_stream + (.clk(wb_clk), .reset(wb_rst), .clear(0), + .data0_i(resp_int1), .src0_rdy_i(resp_src_rdy_int1), .dst0_rdy_o(resp_dst_rdy_int1), + .data1_i(tx_err19_data), .src1_rdy_i(tx_err19_src_rdy), .dst1_rdy_o(tx_err19_dst_rdy), + .data_o(resp_int2), .src_rdy_o(resp_src_rdy_int2), .dst_rdy_i(resp_dst_rdy_int2)); + + fifo19_pad #(.LENGTH(16)) fifo19_pad + (.clk(fifo_clk), .reset(fifo_rst), .clear(0), + .data_i(resp_int2), .src_rdy_i(resp_src_rdy_int2), .dst_rdy_o(resp_dst_rdy_int2), + .data_o(resp_data), .src_rdy_o(resp_src_rdy), .dst_rdy_i(resp_dst_rdy)); + + // //////////////////////////////////////////// + // DEBUG + + //assign debug0 = { rx19_src_rdy, rx19_dst_rdy, resp_src_rdy, resp_dst_rdy, gpif_ctl[3:0], gpif_rdy[3:0], + // gpif_d_copy[15:0] }; + + //assign debug1 = { { debug_rd[15:8] }, + // { debug_rd[7:0] }, + // { rx_src_rdy_i, rx_dst_rdy_o, rx36_src_rdy, rx36_dst_rdy, rx19_src_rdy, rx19_dst_rdy, resp_src_rdy, resp_dst_rdy}, + // { tx_src_rdy_o, tx_dst_rdy_i, tx19_src_rdy, tx19_dst_rdy, tx36_src_rdy, tx36_dst_rdy, ctrl_src_rdy, ctrl_dst_rdy} }; + + assign debug0 = { gpif_ctl[3:0], gpif_rdy[3:0], debug_split0[23:0] }; + assign debug1 = { gpif_misc[0], debug_rd[14:0], debug_split1[15:8], debug_split1[7:0] }; +endmodule // gpif diff --git a/fpga/usrp2/gpif/gpif_rd.v b/fpga/usrp2/gpif/gpif_rd.v new file mode 100644 index 000000000..b05c3cfb6 --- /dev/null +++ b/fpga/usrp2/gpif/gpif_rd.v @@ -0,0 +1,111 @@ +// +// Copyright 2011 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + + +module gpif_rd + (input gpif_clk, input gpif_rst, + output [15:0] gpif_data, input gpif_rd, input gpif_ep, + output reg gpif_empty_d, output reg gpif_empty_c, + output reg gpif_flush, + + input sys_clk, input sys_rst, + input [18:0] data_i, input src_rdy_i, output dst_rdy_o, + input [18:0] resp_i, input resp_src_rdy_i, output resp_dst_rdy_o, + output [31:0] debug + ); + + wire [18:0] data_o; // occ bit indicates flush + wire [17:0] resp_o; // no occ bit + wire final_rdy_data, final_rdy_resp; + + // 33/257 Bug Fix + reg [8:0] read_count; + always @(negedge gpif_clk) + if(gpif_rst) + read_count <= 0; + else if(gpif_rd) + read_count <= read_count + 1; + else + read_count <= 0; + + // Data Path + wire [18:0] data_int; + wire src_rdy_int, dst_rdy_int; + fifo_2clock_cascade #(.WIDTH(19), .SIZE(4)) rd_fifo_2clk + (.wclk(sys_clk), .datain(data_i[18:0]), .src_rdy_i(src_rdy_i), .dst_rdy_o(dst_rdy_o), .space(), + .rclk(~gpif_clk), .dataout(data_int), .src_rdy_o(src_rdy_int), .dst_rdy_i(dst_rdy_int), .occupied(), + .arst(sys_rst)); + + reg [7:0] packet_count; + wire consume_data_line = gpif_rd & ~gpif_ep & ~read_count[8]; + wire produce_eop = src_rdy_int & dst_rdy_int & data_int[17]; + wire consume_sop = consume_data_line & final_rdy_data & data_o[16]; + wire consume_eop = consume_data_line & final_rdy_data & data_o[17]; + + fifo_cascade #(.WIDTH(19), .SIZE(10)) rd_fifo + (.clk(~gpif_clk), .reset(gpif_rst), .clear(0), + .datain(data_int), .src_rdy_i(src_rdy_int), .dst_rdy_o(dst_rdy_int), .space(), + .dataout(data_o), .src_rdy_o(final_rdy_data), .dst_rdy_i(consume_data_line), .occupied()); + + always @(negedge gpif_clk) + if(gpif_rst) + packet_count <= 0; + else + if(produce_eop & ~consume_sop) + packet_count <= packet_count + 1; + else if(consume_sop & ~produce_eop) + packet_count <= packet_count - 1; + + always @(negedge gpif_clk) + if(gpif_rst) + gpif_empty_d <= 1; + else + gpif_empty_d <= ~|packet_count; + + // Use occ bit to signal a gpif flush + always @(negedge gpif_clk) + if(gpif_rst) + gpif_flush <= 0; + else if(consume_eop & data_o[18]) + gpif_flush <= ~gpif_flush; + + // Response Path + wire [15:0] resp_fifolevel; + wire consume_resp_line = gpif_rd & gpif_ep & ~read_count[4]; + + fifo_2clock_cascade #(.WIDTH(18), .SIZE(4)) resp_fifo_2clk + (.wclk(sys_clk), .datain(resp_i[17:0]), .src_rdy_i(resp_src_rdy_i), .dst_rdy_o(resp_dst_rdy_o), .space(), + .rclk(~gpif_clk), .dataout(resp_o), + .src_rdy_o(final_rdy_resp), .dst_rdy_i(consume_resp_line), .occupied(resp_fifolevel), + .arst(sys_rst)); + + // FIXME -- handle short packets + + always @(negedge gpif_clk) + if(gpif_rst) + gpif_empty_c <= 1; + else + gpif_empty_c <= resp_fifolevel < 16; + + // Output Mux + assign gpif_data = gpif_ep ? resp_o[15:0] : data_o[15:0]; + + assign debug = { { 16'd0 }, + { data_int[17:16], data_o[17:16], packet_count[3:0] }, + { consume_sop, consume_eop, final_rdy_data, data_o[18], consume_data_line, consume_resp_line, src_rdy_int, dst_rdy_int} }; + +endmodule // gpif_rd diff --git a/fpga/usrp2/gpif/gpif_tb.v b/fpga/usrp2/gpif/gpif_tb.v new file mode 100644 index 000000000..686284c2b --- /dev/null +++ b/fpga/usrp2/gpif/gpif_tb.v @@ -0,0 +1,142 @@ +// +// Copyright 2011 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + + +module gpif_tb(); + + reg sys_clk = 0; + reg sys_rst = 1; + reg gpif_clk = 0; + reg gpif_rst = 1; + + reg [15:0] gpif_data; + reg WR = 0, EP = 0; + + wire CF, DF; + + wire gpif_full_d, gpif_full_c; + wire [18:0] data_o, ctrl_o, data_splt; + wire src_rdy, dst_rdy, src_rdy_splt, dst_rdy_splt; + wire ctrl_src_rdy, ctrl_dst_rdy; + + assign ctrl_dst_rdy = 1; + + initial $dumpfile("gpif_tb.vcd"); + initial $dumpvars(0,gpif_tb); + + initial #1000 gpif_rst = 0; + initial #1000 sys_rst = 0; + always #64 gpif_clk <= ~gpif_clk; + always #47.9 sys_clk <= ~sys_clk; + + wire [18:0] data_int; + wire src_rdy_int, dst_rdy_int; + + assign dst_rdy_splt = 1; + + gpif_wr gpif_write + (.gpif_clk(gpif_clk), .gpif_rst(gpif_rst), + .gpif_data(gpif_data), .gpif_wr(WR), .gpif_ep(EP), + .gpif_full_d(DF), .gpif_full_c(CF), + + .sys_clk(sys_clk), .sys_rst(sys_rst), + .data_o(data_int), .src_rdy_o(src_rdy_int), .dst_rdy_i(dst_rdy_int), + .ctrl_o(ctrl_o), .ctrl_src_rdy_o(ctrl_src_rdy), .ctrl_dst_rdy_i(ctrl_dst_rdy) ); + + packet_reframer tx_packet_reframer + (.clk(sys_clk), .reset(sys_rst), .clear(0), + .data_i(data_int), .src_rdy_i(src_rdy_int), .dst_rdy_o(dst_rdy_int), + .data_o(data_o), .src_rdy_o(src_rdy), .dst_rdy_i(dst_rdy)); + + packet_splitter #(.FRAME_LEN(256)) rx_packet_splitter + (.clk(sys_clk), .reset(sys_rst), .clear(0), + .frames_per_packet(2), + .data_i(data_o), .src_rdy_i(src_rdy), .dst_rdy_o(dst_rdy), + .data_o(data_splt), .src_rdy_o(src_rdy_splt), .dst_rdy_i(dst_rdy_splt)); + + always @(posedge sys_clk) + if(ctrl_src_rdy & ctrl_dst_rdy) + $display("CTRL: %x",ctrl_o); + + always @(posedge sys_clk) + if(src_rdy_splt & dst_rdy_splt) + begin + if(data_splt[16]) + $display("<-------- DATA SOF--------->"); + $display("DATA: %x",data_splt); + if(data_splt[17]) + $display("<-------- DATA EOF--------->"); + end + + initial + begin + #10000; + repeat (1) + begin + @(posedge gpif_clk); + + WR <= 1; + gpif_data <= 256; // Length + @(posedge gpif_clk); + gpif_data <= 16'h00; + @(posedge gpif_clk); + repeat(254) + begin + gpif_data <= gpif_data + 1; + @(posedge gpif_clk); + end + WR <= 0; + + while(DF) + @(posedge gpif_clk); + repeat (16) + @(posedge gpif_clk); + + WR <= 1; + repeat(256) + begin + gpif_data <= gpif_data - 1; + @(posedge gpif_clk); + end + WR <= 0; + + +/* + while(DF) + @(posedge gpif_clk); + + repeat (20) + @(posedge gpif_clk); + WR <= 1; + gpif_data <= 16'h5; + @(posedge gpif_clk); + gpif_data <= 16'h00; + @(posedge gpif_clk); + repeat(254) + begin + gpif_data <= gpif_data - 1; + @(posedge gpif_clk); + end + WR <= 0; + */ + end + end // initial begin + + initial #200000 $finish; + + +endmodule // gpif_tb diff --git a/fpga/usrp2/gpif/gpif_wr.v b/fpga/usrp2/gpif/gpif_wr.v new file mode 100644 index 000000000..89fae282e --- /dev/null +++ b/fpga/usrp2/gpif/gpif_wr.v @@ -0,0 +1,95 @@ +// +// Copyright 2011 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + + +module gpif_wr + (input gpif_clk, input gpif_rst, + input [15:0] gpif_data, input gpif_wr, input gpif_ep, + output reg gpif_full_d, output reg gpif_full_c, + + input sys_clk, input sys_rst, + output [18:0] data_o, output src_rdy_o, input dst_rdy_i, + output [18:0] ctrl_o, output ctrl_src_rdy_o, input ctrl_dst_rdy_i, + output [31:0] debug ); + + reg wr_reg, ep_reg; + reg [15:0] gpif_data_reg; + + always @(posedge gpif_clk) + begin + ep_reg <= gpif_ep; + wr_reg <= gpif_wr; + gpif_data_reg <= gpif_data; + end + + reg [9:0] write_count; + + always @(posedge gpif_clk) + if(gpif_rst) + write_count <= 0; + else if(wr_reg) + write_count <= write_count + 1; + else + write_count <= 0; + + reg sop; + wire eop = (write_count == 255); + wire eop_ctrl = (write_count == 15); + + always @(posedge gpif_clk) + sop <= gpif_wr & ~wr_reg; + + // Data Path + wire [15:0] fifo_space; + always @(posedge gpif_clk) + if(gpif_rst) + gpif_full_d <= 1; + else + gpif_full_d <= fifo_space < 256; + + wire [17:0] data_int; + wire src_rdy_int, dst_rdy_int; + + fifo_cascade #(.WIDTH(18), .SIZE(10)) wr_fifo + (.clk(gpif_clk), .reset(gpif_rst), .clear(0), + .datain({eop,sop,gpif_data_reg}), .src_rdy_i(~ep_reg & wr_reg & ~write_count[8]), .dst_rdy_o(), .space(fifo_space), + .dataout(data_int), .src_rdy_o(src_rdy_int), .dst_rdy_i(dst_rdy_int), .occupied()); + + fifo_2clock_cascade #(.WIDTH(18), .SIZE(4)) wr_fifo_2clk + (.wclk(gpif_clk), .datain(data_int), .src_rdy_i(src_rdy_int), .dst_rdy_o(dst_rdy_int), .space(), + .rclk(sys_clk), .dataout(data_o[17:0]), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i), .occupied(), + .arst(sys_rst)); + assign data_o[18] = 1'b0; + + // Control Path + wire [15:0] ctrl_fifo_space; + always @(posedge gpif_clk) + if(gpif_rst) + gpif_full_c <= 1; + else + gpif_full_c <= ctrl_fifo_space < 16; + + fifo_2clock_cascade #(.WIDTH(19), .SIZE(4)) ctrl_fifo_2clk + (.wclk(gpif_clk), .datain({1'b0,eop_ctrl,sop,gpif_data_reg}), + .src_rdy_i(ep_reg & wr_reg & ~write_count[4]), .dst_rdy_o(), .space(ctrl_fifo_space), + .rclk(sys_clk), .dataout(ctrl_o[18:0]), + .src_rdy_o(ctrl_src_rdy_o), .dst_rdy_i(ctrl_dst_rdy_i), .occupied(), + .arst(sys_rst)); + + assign debug = { 16'd0, ep_reg, wr_reg, eop, sop, (~ep_reg & wr_reg & ~write_count[8]), src_rdy_int, dst_rdy_int, write_count[8:0]}; + +endmodule // gpif_wr diff --git a/fpga/usrp2/gpif/gpif_wr_tb.v b/fpga/usrp2/gpif/gpif_wr_tb.v new file mode 100644 index 000000000..171bb96a1 --- /dev/null +++ b/fpga/usrp2/gpif/gpif_wr_tb.v @@ -0,0 +1,110 @@ +// +// Copyright 2011 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + + +module gpif_wr_tb(); + + reg sys_clk = 0; + reg sys_rst = 1; + reg gpif_clk = 0; + reg gpif_rst = 1; + + reg [15:0] gpif_data; + reg WR = 0, EP = 0; + + wire CF, DF; + + wire gpif_full_d, gpif_full_c; + wire [18:0] data_o, ctrl_o; + wire src_rdy, dst_rdy; + wire ctrl_src_rdy, ctrl_dst_rdy; + + assign ctrl_dst_rdy = 1; + assign dst_rdy = 1; + + initial $dumpfile("gpif_wr_tb.vcd"); + initial $dumpvars(0,gpif_wr_tb); + + initial #1000 gpif_rst = 0; + initial #1000 sys_rst = 0; + always #64 gpif_clk <= ~gpif_clk; + always #47.9 sys_clk <= ~sys_clk; + + wire [18:0] data_int; + wire src_rdy_int, dst_rdy_int; + + gpif_wr gpif_write + (.gpif_clk(gpif_clk), .gpif_rst(gpif_rst), + .gpif_data(gpif_data), .gpif_wr(WR), .gpif_ep(EP), + .gpif_full_d(DF), .gpif_full_c(CF), + + .sys_clk(sys_clk), .sys_rst(sys_rst), + .data_o(data_int), .src_rdy_o(src_rdy_int), .dst_rdy_i(dst_rdy_int), + .ctrl_o(ctrl_o), .ctrl_src_rdy_o(ctrl_src_rdy), .ctrl_dst_rdy_i(ctrl_dst_rdy) ); + + packet_reframer tx_packet_reframer + (.clk(sys_clk), .reset(sys_rst), .clear(0), + .data_i(data_int), .src_rdy_i(src_rdy_int), .dst_rdy_o(dst_rdy_int), + .data_o(data_o), .src_rdy_o(src_rdy), .dst_rdy_i(dst_rdy)); + + always @(posedge sys_clk) + if(ctrl_src_rdy & ctrl_dst_rdy) + $display("CTRL: %x",ctrl_o); + + always @(posedge sys_clk) + if(src_rdy & dst_rdy) + begin + if(data_o[16]) + $display("<-------- DATA SOF--------->"); + $display("DATA: %x",data_o); + if(data_o[17]) + $display("<-------- DATA EOF--------->"); + end + + initial + begin + #10000; + repeat (1) + begin + WR <= 1; + gpif_data <= 10; // Length + @(posedge gpif_clk); + gpif_data <= 16'h00; + @(posedge gpif_clk); + repeat(254) + begin + gpif_data <= gpif_data + 1; + @(posedge gpif_clk); + end + WR <= 0; + repeat (20) + @(posedge gpif_clk); + WR <= 1; + gpif_data <= 16'h5; + @(posedge gpif_clk); + repeat(254) + begin + gpif_data <= gpif_data - 1; + @(posedge gpif_clk); + end + end + end // initial begin + + initial #100000 $finish; + + +endmodule // gpif_wr_tb diff --git a/fpga/usrp2/gpif/lint b/fpga/usrp2/gpif/lint new file mode 100755 index 000000000..4316c89a9 --- /dev/null +++ b/fpga/usrp2/gpif/lint @@ -0,0 +1,2 @@ +iverilog -Wall -y . -y ../fifo/ -y ../control_lib/ -y ../models/ -y ../coregen/ -y ../simple_gemac/ -y ../sdr_lib/ -y ../vrt/ gpif.v 2>&1 | grep -v coregen | grep -v models + diff --git a/fpga/usrp2/gpif/packet_padder36.v b/fpga/usrp2/gpif/packet_padder36.v new file mode 100644 index 000000000..c785f7ea6 --- /dev/null +++ b/fpga/usrp2/gpif/packet_padder36.v @@ -0,0 +1,130 @@ +// +// Copyright 2011-2012 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +// The packet padder 36 for use with slave fifo32 +// Packet padder understands the concept of LUTs, +// and will forward packets through the interface, +// adding zero padding as needed to properly flush. +// The padder will never write a packet across a LUT boundary. +// When flushing, padder writes out zeros until the LUT boundary. +// Requires that the input line0 be a VITA header, and SOF set. +// Flush when the LUT is partially filled and timeout is reached, +// or when the LUT is partially filled and the DSP is inactive. + +module packet_padder36 +#( + parameter RX_IDLE_FLUSH_CYCLES = 65536, //about 1ms at 64MHz clock + parameter MAX_LUT_LINES32 = 4096 //how many 32bit lines in a LUT +) +( + input clk, input reset, + input [35:0] data_i, + input src_rdy_i, + output dst_rdy_o, + output [35:0] data_o, + output src_rdy_o, + input dst_rdy_i, + input rx_dsp_active +); + + //state machine definitions + localparam STATE_READ_HDR = 0; + localparam STATE_WRITE_HDR = 1; + localparam STATE_FORWARD = 2; + localparam STATE_WRITE_PAD = 3; + reg [1:0] state; + + //keep track of the outgoing lines + reg [15:0] line_count; + wire line_count_done = line_count == 1; + wire lut_is_empty = line_count == MAX_LUT_LINES32; + always @(posedge clk) begin + if (reset) begin + line_count <= MAX_LUT_LINES32; + end + else if (src_rdy_o && dst_rdy_i) begin + line_count <= (line_count_done)? MAX_LUT_LINES32 : line_count - 1; + end + end + + //count the number of cycles since RX data so we can force a flush + reg [17:0] non_rx_cycles; + wire idle_timeout = (non_rx_cycles == RX_IDLE_FLUSH_CYCLES); + always @(posedge clk) begin + if(reset || state != STATE_READ_HDR) begin + non_rx_cycles <= 0; + end + else if (~idle_timeout) begin + non_rx_cycles <= non_rx_cycles + 1; + end + end + + //flush when we have written data to a LUT and either idle or non active DSP + wire force_flush = ~lut_is_empty && (idle_timeout || ~rx_dsp_active); + + //the padding state machine + reg [31:0] vita_hdr; + reg has_vita_hdr; + always @(posedge clk) begin + if (reset) begin + state <= STATE_READ_HDR; + end + else case(state) + + STATE_READ_HDR: begin + if (src_rdy_i && dst_rdy_o && data_i[32]) begin + vita_hdr <= data_i[31:0]; + has_vita_hdr <= 1; + state <= (data_i[15:0] > line_count)? state <= STATE_WRITE_PAD : STATE_WRITE_HDR; + end + else if (force_flush) begin + has_vita_hdr <= 0; + state <= STATE_WRITE_PAD; + end + end + + STATE_WRITE_HDR: begin + if (src_rdy_o && dst_rdy_i) begin + state <= STATE_FORWARD; + end + end + + STATE_FORWARD: begin + if (src_rdy_i && dst_rdy_o && data_i[33]) begin + state <= STATE_READ_HDR; + end + end + + STATE_WRITE_PAD: begin + if (src_rdy_o && dst_rdy_i && line_count_done) begin + state <= (has_vita_hdr)? STATE_WRITE_HDR : STATE_READ_HDR; + end + end + + endcase //state + end + + //assign outgoing signals + assign dst_rdy_o = (state == STATE_READ_HDR)? 1 : ((state == STATE_FORWARD)? dst_rdy_i : 0); + assign src_rdy_o = (state == STATE_WRITE_HDR || state == STATE_WRITE_PAD)? 1 : ((state == STATE_FORWARD )? src_rdy_i : 0); + assign data_o = (state == STATE_WRITE_HDR)? {4'b0001, vita_hdr} : ((state == STATE_FORWARD)? data_i : 0); + +endmodule // packet_padder36 + + + + diff --git a/fpga/usrp2/gpif/packet_splitter.v b/fpga/usrp2/gpif/packet_splitter.v new file mode 100644 index 000000000..ba4c8cded --- /dev/null +++ b/fpga/usrp2/gpif/packet_splitter.v @@ -0,0 +1,123 @@ +// +// Copyright 2011 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + + +// Split vita packets longer than one GPIF frame, add padding on short frames + +module packet_splitter + #(parameter FRAME_LEN=256) + (input clk, input reset, input clear, + input [7:0] frames_per_packet, + input [18:0] data_i, + input src_rdy_i, + output dst_rdy_o, + output [18:0] data_o, + output src_rdy_o, + input dst_rdy_i, + output [31:0] debug0, + output [31:0] debug1); + + reg [1:0] state; + reg [15:0] length; + reg [15:0] frame_len; + reg [7:0] frame_count; + + localparam PS_IDLE = 0; + localparam PS_FRAME = 1; + localparam PS_NEW_FRAME = 2; + localparam PS_PAD = 3; + + wire eof_i = data_i[17]; + + always @(posedge clk) + if(reset | clear) + begin + state <= PS_IDLE; + frame_count <= 0; + end + else + case(state) + PS_IDLE : + if(src_rdy_i & dst_rdy_i) + begin + length <= { data_i[14:0],1'b0}; + frame_len <= FRAME_LEN; + state <= PS_FRAME; + frame_count <= 1; + end + PS_FRAME : + if(src_rdy_i & dst_rdy_i) + if((frame_len == 2) & ((length == 2) | eof_i)) + state <= PS_IDLE; + else if(frame_len == 2) + begin + length <= length - 1; + state <= PS_NEW_FRAME; + frame_count <= frame_count + 1; + end + else if((length == 2)|eof_i) + begin + frame_len <= frame_len - 1; + state <= PS_PAD; + end + else + begin + frame_len <= frame_len - 1; + length <= length - 1; + end + PS_NEW_FRAME : + if(src_rdy_i & dst_rdy_i) + begin + frame_len <= FRAME_LEN; + if((length == 2)|eof_i) + state <= PS_PAD; + else + begin + state <= PS_FRAME; + length <= length - 1; + end // else: !if((length == 2)|eof_i) + end // if (src_rdy_i & dst_rdy_i) + + PS_PAD : + if(dst_rdy_i) + if(frame_len == 2) + state <= PS_IDLE; + else + frame_len <= frame_len - 1; + + endcase // case (state) + + wire next_state_is_idle = dst_rdy_i & (frame_len==2) & + ( (state==PS_PAD) | ( (state==PS_FRAME) & src_rdy_i & ((length==2)|eof_i) ) ); + + + + + assign dst_rdy_o = dst_rdy_i & (state != PS_PAD); + assign src_rdy_o = src_rdy_i | (state == PS_PAD); + + wire eof_out = (frame_len == 2) & (state != PS_IDLE) & (state != PS_NEW_FRAME); + wire sof_out = (state == PS_IDLE) | (state == PS_NEW_FRAME); + wire occ_out = eof_out & next_state_is_idle & (frames_per_packet != frame_count); + + wire [15:0] data_out = data_i[15:0]; + assign data_o = {occ_out, eof_out, sof_out, data_out}; + + assign debug0 = { 8'd0, dst_rdy_o, src_rdy_o, next_state_is_idle, eof_out, sof_out, occ_out, state[1:0], frame_count[7:0], frames_per_packet[7:0] }; + assign debug1 = { length[15:0], frame_len[15:0] }; + +endmodule // packet_splitter diff --git a/fpga/usrp2/gpif/packet_splitter_tb.v b/fpga/usrp2/gpif/packet_splitter_tb.v new file mode 100644 index 000000000..329b58e0d --- /dev/null +++ b/fpga/usrp2/gpif/packet_splitter_tb.v @@ -0,0 +1,137 @@ +// +// Copyright 2011 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + + +module packet_splitter_tb(); + + reg sys_clk = 0; + reg sys_rst = 1; + reg gpif_clk = 0; + reg gpif_rst = 1; + + reg [15:0] gpif_data; + reg WR = 0, EP = 0; + + wire CF, DF; + + wire gpif_full_d, gpif_full_c; + wire [18:0] data_o, ctrl_o, data_splt; + wire src_rdy, dst_rdy, src_rdy_splt, dst_rdy_splt; + wire ctrl_src_rdy, ctrl_dst_rdy; + + assign ctrl_dst_rdy = 1; + + initial $dumpfile("packet_splitter_tb.vcd"); + initial $dumpvars(0,packet_splitter_tb); + + initial #1000 gpif_rst = 0; + initial #1000 sys_rst = 0; + always #64 gpif_clk <= ~gpif_clk; + always #47.9 sys_clk <= ~sys_clk; + + wire [35:0] data_int; + wire src_rdy_int, dst_rdy_int; + + assign dst_rdy_splt = 1; + + vita_pkt_gen vita_pkt_gen + (.clk(sys_clk), .reset(sys_rst) , .clear(0), + .len(512),.data_o(data_int), .src_rdy_o(src_rdy_int), .dst_rdy_i(dst_rdy_int)); + + fifo36_to_fifo19 #(.LE(1)) f36_to_f19 + (.clk(sys_clk), .reset(sys_rst), .clear(0), + .f36_datain(data_int), .f36_src_rdy_i(src_rdy_int), .f36_dst_rdy_o(dst_rdy_int), + .f19_dataout(data_o), .f19_src_rdy_o(src_rdy), .f19_dst_rdy_i(dst_rdy)); + + packet_splitter #(.FRAME_LEN(13)) rx_packet_splitter + (.clk(sys_clk), .reset(sys_rst), .clear(0), + .frames_per_packet(4), + .data_i(data_o), .src_rdy_i(src_rdy), .dst_rdy_o(dst_rdy), + .data_o(data_splt), .src_rdy_o(src_rdy_splt), .dst_rdy_i(dst_rdy_splt)); + + always @(posedge sys_clk) + if(ctrl_src_rdy & ctrl_dst_rdy) + $display("CTRL: %x",ctrl_o); + + always @(posedge sys_clk) + if(src_rdy_splt & dst_rdy_splt) + begin + if(data_splt[16]) + $display("<-------- DATA SOF--------->"); + $display("DATA: %x",data_splt); + if(data_splt[17]) + $display("<-------- DATA EOF--------->"); + end + + initial + begin + #10000; + repeat (1) + begin + @(posedge gpif_clk); + + WR <= 1; + gpif_data <= 256; // Length + @(posedge gpif_clk); + gpif_data <= 16'h00; + @(posedge gpif_clk); + repeat(254) + begin + gpif_data <= gpif_data + 1; + @(posedge gpif_clk); + end + WR <= 0; + + while(DF) + @(posedge gpif_clk); + repeat (16) + @(posedge gpif_clk); + + WR <= 1; + repeat(256) + begin + gpif_data <= gpif_data - 1; + @(posedge gpif_clk); + end + WR <= 0; + + +/* + while(DF) + @(posedge gpif_clk); + + repeat (20) + @(posedge gpif_clk); + WR <= 1; + gpif_data <= 16'h5; + @(posedge gpif_clk); + gpif_data <= 16'h00; + @(posedge gpif_clk); + repeat(254) + begin + gpif_data <= gpif_data - 1; + @(posedge gpif_clk); + end + WR <= 0; + */ + end + end // initial begin + + initial #200000 $finish; + + +endmodule // packet_splitter_tb diff --git a/fpga/usrp2/top/impactor.sh b/fpga/usrp2/top/impactor.sh new file mode 100755 index 000000000..c6699424d --- /dev/null +++ b/fpga/usrp2/top/impactor.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +echo "loading $1 into FPGA..." + +CMD_PATH=/tmp/impact.cmd + +echo "generating ${CMD_PATH}..." + +echo "setmode -bscan" > ${CMD_PATH} +echo "setcable -p auto" >> ${CMD_PATH} +echo "addDevice -p 1 -file $1" >> ${CMD_PATH} +echo "program -p 1" >> ${CMD_PATH} +echo "quit" >> ${CMD_PATH} + +impact -batch ${CMD_PATH} + +echo "done!" diff --git a/fpga/usrp2/vrt/vita_packet_demux36.v b/fpga/usrp2/vrt/vita_packet_demux36.v new file mode 100644 index 000000000..83fb26215 --- /dev/null +++ b/fpga/usrp2/vrt/vita_packet_demux36.v @@ -0,0 +1,102 @@ +// +// Copyright 2012 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +//demux an input stream based on the SID +//output packet has SID removed from header + +module vita_packet_demux36 +#( + parameter NUMCHAN = 1, + parameter SID_BASE = 0 +) +( + input clk, input rst, + + input [35:0] in_data, + input in_src_rdy, + output in_dst_rdy, + + output [35:0] out_data, + output [NUMCHAN-1:0] out_src_rdy, + input [NUMCHAN-1:0] out_dst_rdy +); + + reg [1:0] state; + localparam STATE_WAIT_HDR = 0; + localparam STATE_PROC_SID = 1; + localparam STATE_WRITE_HDR = 2; + localparam STATE_FORWARD = 3; + + reg [31:0] hdr; + reg [NUMCHAN-1:0] sid; + wire has_sid = in_data[28]; + reg has_sid_reg; + + wire my_out_dst_rdy = out_dst_rdy[sid]; + wire my_out_src_rdy = out_src_rdy[sid]; + + always @(posedge clk) begin + if (rst) begin + state <= STATE_WAIT_HDR; + end + else case(state) + + STATE_WAIT_HDR: begin + if (in_src_rdy && in_dst_rdy && in_data[32]) begin + state <= (has_sid)? STATE_PROC_SID : STATE_WRITE_HDR; + end + sid <= 0; + hdr <= in_data[31:0]; + has_sid_reg <= has_sid; + end + + STATE_PROC_SID: begin + if (in_src_rdy && in_dst_rdy) begin + state <= STATE_WRITE_HDR; + sid <= in_data[31:0] - SID_BASE; + hdr[28] <= 1'b0; //clear has sid + hdr[15:0] <= hdr[15:0] - 1'b1; //subtract a line + end + end + + STATE_WRITE_HDR: begin + if (my_out_src_rdy && my_out_dst_rdy) begin + state <= STATE_FORWARD; + end + end + + STATE_FORWARD: begin + if (my_out_src_rdy && my_out_dst_rdy && out_data[33]) begin + state <= STATE_WAIT_HDR; + end + end + + endcase //state + end + + assign out_data = (state == STATE_WRITE_HDR)? {4'b0001, hdr} : in_data; + wire out_src_rdy_i = (state == STATE_WRITE_HDR)? 1'b1 : ((state == STATE_FORWARD)? in_src_rdy : 1'b0); + assign in_dst_rdy = (state == STATE_WAIT_HDR || state == STATE_PROC_SID)? 1'b1 : ((state == STATE_FORWARD)? my_out_dst_rdy : 1'b0); + + genvar i; + generate + for(i = 0; i < NUMCHAN; i = i + 1) begin:valid_assign + assign out_src_rdy[i] = (i == sid)? out_src_rdy_i : 1'b0; + end + endgenerate + +endmodule //vita_packet_demux36 |