From 31630f3bcb0e55d8721b9184c47a8191d50b5114 Mon Sep 17 00:00:00 2001 From: gitlab-runner Date: Wed, 16 Oct 2019 09:20:09 -0500 Subject: [PATCH] Upload retarget-io 1.0.0.7927 --- EULA | 55 + LICENSE | 165 +++ README.md | 30 +- RELEASE.md | 24 + cy_retarget_io.c | 213 +++ cy_retarget_io.h | 87 ++ docs/api_reference_manual.html | 15 + docs/html/bc_s.png | Bin 0 -> 676 bytes docs/html/bdwn.png | Bin 0 -> 147 bytes docs/html/closed.png | Bin 0 -> 132 bytes docs/html/cypress_logo.png | Bin 0 -> 37711 bytes docs/html/doc.png | Bin 0 -> 746 bytes docs/html/doxygen.png | Bin 0 -> 3779 bytes docs/html/doxygen_style.css | 1583 ++++++++++++++++++++++ docs/html/dynsections.js | 120 ++ docs/html/folderclosed.png | Bin 0 -> 616 bytes docs/html/folderopen.png | Bin 0 -> 597 bytes docs/html/group__group__board__libs.html | 227 ++++ docs/html/index.html | 127 ++ docs/html/jquery.js | 115 ++ docs/html/menu.js | 50 + docs/html/menudata.js | 26 + docs/html/nav_f.png | Bin 0 -> 153 bytes docs/html/nav_g.png | Bin 0 -> 95 bytes docs/html/nav_h.png | Bin 0 -> 98 bytes docs/html/navtree.css | 146 ++ docs/html/navtree.js | 540 ++++++++ docs/html/navtreedata.js | 38 + docs/html/navtreeindex0.js | 7 + docs/html/open.png | Bin 0 -> 123 bytes docs/html/resize.js | 136 ++ docs/html/search/all_0.html | 30 + docs/html/search/all_0.js | 8 + docs/html/search/all_1.html | 30 + docs/html/search/all_1.js | 5 + docs/html/search/close.png | Bin 0 -> 273 bytes docs/html/search/functions_0.html | 30 + docs/html/search/functions_0.js | 5 + docs/html/search/groups_0.html | 30 + docs/html/search/groups_0.js | 4 + docs/html/search/mag_sel.png | Bin 0 -> 563 bytes docs/html/search/nomatches.html | 12 + docs/html/search/pages_0.html | 30 + docs/html/search/pages_0.js | 4 + docs/html/search/search.css | 271 ++++ docs/html/search/search.js | 814 +++++++++++ docs/html/search/search_l.png | Bin 0 -> 604 bytes docs/html/search/search_m.png | Bin 0 -> 158 bytes docs/html/search/search_r.png | Bin 0 -> 612 bytes docs/html/search/searchdata.js | 27 + docs/html/search/variables_0.html | 30 + docs/html/search/variables_0.js | 4 + docs/html/splitbar.png | Bin 0 -> 314 bytes docs/html/sync_off.png | Bin 0 -> 853 bytes docs/html/sync_on.png | Bin 0 -> 845 bytes docs/html/tab_a.png | Bin 0 -> 142 bytes docs/html/tab_b.png | Bin 0 -> 169 bytes docs/html/tab_h.png | Bin 0 -> 177 bytes docs/html/tab_s.png | Bin 0 -> 184 bytes docs/html/tabs.css | 1 + version.xml | 1 + 61 files changed, 5038 insertions(+), 2 deletions(-) create mode 100644 EULA create mode 100644 LICENSE create mode 100644 RELEASE.md create mode 100644 cy_retarget_io.c create mode 100644 cy_retarget_io.h create mode 100644 docs/api_reference_manual.html create mode 100644 docs/html/bc_s.png create mode 100644 docs/html/bdwn.png create mode 100644 docs/html/closed.png create mode 100644 docs/html/cypress_logo.png create mode 100644 docs/html/doc.png create mode 100644 docs/html/doxygen.png create mode 100644 docs/html/doxygen_style.css create mode 100644 docs/html/dynsections.js create mode 100644 docs/html/folderclosed.png create mode 100644 docs/html/folderopen.png create mode 100644 docs/html/group__group__board__libs.html create mode 100644 docs/html/index.html create mode 100644 docs/html/jquery.js create mode 100644 docs/html/menu.js create mode 100644 docs/html/menudata.js create mode 100644 docs/html/nav_f.png create mode 100644 docs/html/nav_g.png create mode 100644 docs/html/nav_h.png create mode 100644 docs/html/navtree.css create mode 100644 docs/html/navtree.js create mode 100644 docs/html/navtreedata.js create mode 100644 docs/html/navtreeindex0.js create mode 100644 docs/html/open.png create mode 100644 docs/html/resize.js create mode 100644 docs/html/search/all_0.html create mode 100644 docs/html/search/all_0.js create mode 100644 docs/html/search/all_1.html create mode 100644 docs/html/search/all_1.js create mode 100644 docs/html/search/close.png create mode 100644 docs/html/search/functions_0.html create mode 100644 docs/html/search/functions_0.js create mode 100644 docs/html/search/groups_0.html create mode 100644 docs/html/search/groups_0.js create mode 100644 docs/html/search/mag_sel.png create mode 100644 docs/html/search/nomatches.html create mode 100644 docs/html/search/pages_0.html create mode 100644 docs/html/search/pages_0.js create mode 100644 docs/html/search/search.css create mode 100644 docs/html/search/search.js create mode 100644 docs/html/search/search_l.png create mode 100644 docs/html/search/search_m.png create mode 100644 docs/html/search/search_r.png create mode 100644 docs/html/search/searchdata.js create mode 100644 docs/html/search/variables_0.html create mode 100644 docs/html/search/variables_0.js create mode 100644 docs/html/splitbar.png create mode 100644 docs/html/sync_off.png create mode 100644 docs/html/sync_on.png create mode 100644 docs/html/tab_a.png create mode 100644 docs/html/tab_b.png create mode 100644 docs/html/tab_h.png create mode 100644 docs/html/tab_s.png create mode 100644 docs/html/tabs.css create mode 100644 version.xml diff --git a/EULA b/EULA new file mode 100644 index 0000000..f10c742 --- /dev/null +++ b/EULA @@ -0,0 +1,55 @@ +CYPRESS END USER LICENSE AGREEMENT + +PLEASE READ THIS END USER LICENSE AGREEMENT ("Agreement") CAREFULLY BEFORE DOWNLOADING, INSTALLING, COPYING, OR USING THIS SOFTWARE AND ACCOMPANYING DOCUMENTATION. BY DOWNLOADING, INSTALLING, COPYING OR USING THE SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, PROMPTLY RETURN AND DO NOT USE THE SOFTWARE. IF YOU HAVE PURCHASED THIS LICENSE TO THE SOFTWARE, YOUR RIGHT TO RETURN THE SOFTWARE EXPIRES 30 DAYS AFTER YOUR PURCHASE AND APPLIES ONLY TO THE ORIGINAL PURCHASER. + +1. Definitions. + + "Software" means this software and any accompanying documentation, including any upgrades, updates, bug fixes or modified versions provided to you by Cypress. + + "Source Code" means software in human-readable form. + + "Binary Code" means the software in binary code form such as object code or an executable. + + "Development Tools" means software that is intended to be installed on a personal computer and used to create programming code for Firmware, Drivers, or Host Applications. Examples of Development Tools are Cypress's PSoC Creator software, Cypress's WICED SDKs, and Cypress's ModusToolbox software. + + "Firmware" means software that executes on a Cypress hardware product. + + "Driver" means software that enables the use of a Cypress hardware product on a particular host operating system such as GNU/Linux, Windows, MacOS, Android, and iOS. + + "Host Application" means software that executes on a device other than a Cypress hardware product in order to program, control, or communicate with a Cypress hardware product. + + "inf File" means a hardware setup information file (.inf file) created by the Software to allow a Microsoft Windows operating system to install the driver for a Cypress hardware product. + +2. License. Subject to the terms and conditions of this Agreement, Cypress Semiconductor Corporation ("Cypress") and its suppliers grant to you a non-exclusive, non-transferable license under their copyright rights: + + a. to use the Development Tools in object code form solely for the purpose of creating Firmware, Drivers, Host Applications, and inf Files for Cypress hardware products; and + + b. (i) if provided in Source Code form, to copy, modify, and compile the Firmware Source Code to create Firmware for execution on a Cypress hardware product, and (ii) to distribute Firmware in binary code form only, only when installed onto a Cypress hardware product; and + + c. (i) if provided in Source Code form, to copy, modify, and compile the Driver Source Code to create one or more Drivers to enable the use of a Cypress hardware product on a particular host operating system, and (ii) to distribute the Driver, in binary code form only, only when installed on a device that includes the Cypress hardware product that the Driver is intended to enable; and + + d. (i) if provided in Source Code form, to copy, modify, and compile the Host Application Source Code to create one or more Host Applications to program, control, or communicate with a Cypress hardware product, and (ii) to distribute Host Applications, in binary code form only, only when installed on a device that includes a Cypress hardware product that the Host Application is intended to program, control, or communicate with; and + + e. to freely distribute any inf File. + +Any distribution of Software permitted under this Agreement must be made pursuant to your standard end user license agreement used for your proprietary (closed source) software products, such end user license agreement to include, at a minimum, provisions limiting your licensors' liability and prohibiting reverse engineering of the Software, consistent with such provisions in this Agreement. + +3. Free and Open Source Software. Portions of the Software may be licensed under free and/or open source licenses such as the GNU General Public License or other licenses from third parties ("Third Party Software"). Third Party Software is subject to the applicable license agreement and not this Agreement. If you are entitled to receive the source code from Cypress for any Third Party Software included with the Software, either the source code will be included with the Software or you may obtain the source code at no charge from . The applicable license terms will accompany each source code package. To review the license terms applicable to any Third Party Software for which Cypress is not required to provide you with source code, please see the Software's installation directory on your computer. + +4. Proprietary Rights; Ownership. The Software, including all intellectual property rights therein, is and will remain the sole and exclusive property of Cypress or its suppliers. Cypress retains ownership of the Source Code and any compiled version thereof. Subject to Cypress' ownership of the underlying Software (including Source Code), you retain ownership of any modifications you make to the Source Code. You agree not to remove any Cypress copyright or other notices from the Source Code and any modifications thereof. You agree to keep the Source Code confidential. Any reproduction, modification, translation, compilation, or representation of the Source Code except as permitted in Section 2 ("License") is prohibited without the express written permission of Cypress. Except as otherwise expressly provided in this Agreement, you may not: (i) modify, adapt, or create derivative works based upon the Software; (ii) copy the Software; (iii) except and only to the extent explicitly permitted by applicable law despite this limitation, decompile, translate, reverse engineer, disassemble or otherwise reduce the Software to human-readable form; or (iv) use the Software or any sample code other than for the Purpose. You hereby covenant that you will not assert any claim that the Software, or derivative works thereof created by or for Cypress, infringe any intellectual property right owned or controlled by you + +5. No Support. Cypress may, but is not required to, provide technical support for the Software. + +6. Term and Termination. This Agreement is effective until terminated, and either party may terminate this Agreement at any time with or without cause. This Agreement and your license rights under this Agreement will terminate immediately without notice from Cypress if you fail to comply with any provision of this Agreement. Upon termination, you must destroy all copies of Software in your possession or control. The following paragraphs shall survive any termination of this Agreement: "Free and Open Source Software," "Proprietary Rights; Ownership," "Compliance With Law," "Disclaimer," "Limitation of Liability," and "General." + +7. Compliance With Law. Each party agrees to comply with all applicable laws, rules and regulations in connection with its activities under this Agreement. Without limiting the foregoing, the Software may be subject to export control laws and regulations of the United States and other countries. You agree to comply strictly with all such laws and regulations and acknowledge that you have the responsibility to obtain licenses to export, re-export, or import the Software. + +8. Disclaimer. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THE SOFTWARE, INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes to the Software without notice. Cypress does not assume any liability arising out of the application or use of Software or any product or circuit described in the Software. It is the responsibility of the user of the Software to properly design, program, and test the functionality and safety of any application made of the Software and any resulting product. Cypress does not authorize its Software or products for use in any products where a malfunction or failure of the Software or Cypress product may reasonably be expected to result in significant property damage, injury or death ("High Risk Product"). If you include any Software or Cypress product in a High Risk Product, you assume all risk of such use and agree to indemnify Cypress and its suppliers against all liability. No computing device can be absolutely secure. Therefore, despite security measures implemented in Cypress hardware or software products, Cypress does not assume any liability arising out of any security breach, such as unauthorized access to or use of a Cypress product. + +9. Limitation of Liability. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL CYPRESS OR ITS SUPPLIERS, RESELLERS, OR DISTRIBUTORS BE LIABLE FOR ANY LOST REVENUE, PROFIT, OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED TO THE USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF CYPRESS OR ITS SUPPLIERS, RESELLERS, OR DISTRIBUTORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT SHALL CYPRESS' OR ITS SUPPLIERS', RESELLERS', OR DISTRIBUTORS' TOTAL LIABILITY TO YOU, WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, EXCEED THE GREATER OF US$500 OR THE PRICE PAID BY YOU FOR THE SOFTWARE. THE FOREGOING LIMITATIONS SHALL APPLY EVEN IF THE ABOVE-STATED WARRANTY FAILS OF ITS ESSENTIAL PURPOSE. BECAUSE SOME STATES OR JURISDICTIONS DO NOT ALLOW LIMITATION OR EXCLUSION OF CONSEQUENTIAL OR INCIDENTAL DAMAGES, ALL OR PORTIONS OF THE ABOVE LIMITATION MAY NOT APPLY TO YOU. + +10. Restricted Rights. The Software is commercial computer software as that term is described in 48 C.F.R. 252.227-7014(a)(1). If the Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government prime contractor or subcontractor (at any tier), then the Government's rights in Software shall be only those set forth in this Agreement. + +11. Personal Information. You agree that information you provide through your registration on Cypress IoT Community Forum or other Cypress websites, including contact information or other personal information, may be collected and used by Cypress consistent with its Data Privacy Policy (www.cypress.com/privacy-policy), as updated or revised from time to time, and may be provided to its third party sales representatives, distributors and other entities conducting sales activities for Cypress for sales-related and other business purposes. + +12. General. This Agreement will bind and inure to the benefit of each party's successors and assigns, provided that you may not assign or transfer this Agreement, in whole or in part, without Cypress' written consent. This Agreement shall be governed by and construed in accordance with the laws of the State of California, United States of America, as if performed wholly within the state and without giving effect to the principles of conflict of law. The parties consent to personal and exclusive jurisdiction of and venue in, the state and federal courts within Santa Clara County, California; provided however, that nothing in this Agreement will limit Cypress' right to bring legal action in any venue in order to protect or enforce its intellectual property rights. No failure of either party to exercise or enforce any of its rights under this Agreement will act as a waiver of such rights. If any portion of this Agreement is found to be void or unenforceable, the remaining provisions of this Agreement shall remain in full force and effect. This Agreement is the complete and exclusive agreement between the parties with respect to the subject matter hereof, superseding and replacing any and all prior agreements, communications, and understandings (both written and oral) regarding such subject matter. Any notice to Cypress will be deemed effective when actually received and must be sent to Cypress Semiconductor Corporation, ATTN: Chief Legal Officer, 198 Champion Court, San Jose, CA 95134 USA. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..59cd3f8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,165 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. diff --git a/README.md b/README.md index 7b04e32..55464d0 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,28 @@ -# retarget-io -TBD +# Retarget IO + +### Overview + +A utility library to retarget the standard input/output (STDIO) messages to a UART port. With this library, you can directly print messages on a UART terminal using `printf()`. You can specify the TX pin, RX pin, and the baud rate through the `cy_retarget_io_init()` function. The UART HAL object is externally accessible so that you can use it with other UART HAL functions. + +**NOTE:** If the application is built using newlib-nano, by default, floating point format strings (%f) are not supported. To enable this support, you must add `-u _printf_float` to the linker command line. + +### Quick Start +1. Add `#include "cy_retarget_io.h"` +2. Call `cy_retarget_io_init(CYBSP_DEBUG_UART_TX, CYBSP_DEBUG_UART_RX, CY_RETARGET_IO_BAUDRATE);` + + `CYBSP_DEBUG_UART_TX` and `CYBSP_DEBUG_UART_RX` pins are defined in the BSP and `CY_RETARGET_IO_BAUDRATE` is set to 115200. You can use a different baud rate if you prefer. + +3. Start printing using `printf()` + +### Enabling Conversion of '\\n' into "\r\n" +If you want to use only '\\n' instead of "\r\n" for printing a new line using printf(), define the macro `CY_RETARGET_IO_CONVERT_LF_TO_CRLF` using the *DEFINES* variable in the application Makefile. The library will then append '\\r' before '\\n' character on the output direction (STDOUT). No conversion occurs if "\r\n" is already present. + +### More information + +* [ModusToolbox](https://www.cypress.com/products/modustoolbox-software-environment) +* [PSoC 6 Code Examples using ModusToolbox IDE](https://github.com/cypresssemiconductorco/Code-Examples-for-ModusToolbox-Software) +* [PSoC 6 Middleware](https://github.com/cypresssemiconductorco/psoc6-middleware) +* [PSoC 6 Resources - KBA223067](https://community.cypress.com/docs/DOC-14644) + +--- +© Cypress Semiconductor Corporation, 2019. diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..f03f74e --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,24 @@ +### Release Notes +Retarget IO version 1.0.0. + +This is the first release of this library. See [README.md](README.md) for details on how to use this library. + +### Supported Software and Tools +This version of the Retarget IO was validated for compatibility with the following Software and Tools: + +| Software and Tools | Version | +| :--- | :----: | +| ModusToolbox Software Environment | 2.0 | +| GCC Compiler | 7.4 | +| IAR Compiler | 8.32 | +| ARM Compiler 6 | 6.11 | + +### More information + +* [ModusToolbox](https://www.cypress.com/products/modustoolbox-software-environment) +* [PSoC 6 Code Examples using ModusToolbox IDE](https://github.com/cypresssemiconductorco/Code-Examples-for-ModusToolbox-Software) +* [PSoC 6 Middleware](https://github.com/cypresssemiconductorco/psoc6-middleware) +* [PSoC 6 Resources - KBA223067](https://community.cypress.com/docs/DOC-14644) + +--- +© Cypress Semiconductor Corporation, 2019. \ No newline at end of file diff --git a/cy_retarget_io.c b/cy_retarget_io.c new file mode 100644 index 0000000..0ff3c1a --- /dev/null +++ b/cy_retarget_io.c @@ -0,0 +1,213 @@ +/***************************************************************************//** +* \file cy_retarget_io.c +* +* \brief +* Provides APIs for retargeting stdio to UART hardware contained on the Cypress +* kits. +* +******************************************************************************** +* \copyright +* Copyright 2018-2019 Cypress Semiconductor Corporation +* SPDX-License-Identifier: Apache-2.0 +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +#include "cy_retarget_io.h" +#include "cyhal_hw_types.h" +#include "cyhal_uart.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/* UART HAL object used by BSP for Debug UART port */ +cyhal_uart_t cy_retarget_io_uart_obj; + +/* Tracks the previous character sent to output stream */ +#ifdef CY_RETARGET_IO_CONVERT_LF_TO_CRLF +static char cy_retarget_io_stdout_prev_char = 0; +#endif /* CY_RETARGET_IO_CONVERT_LF_TO_CRLF */ + +static uint8_t cy_retarget_io_getchar(void) +{ + uint8 c = 0; + cyhal_uart_getc(&cy_retarget_io_uart_obj, &c, 0); + return c; +} + +static void cy_retarget_io_putchar(char c) +{ + cyhal_uart_putc(&cy_retarget_io_uart_obj, c); +} + +#if defined(__ARMCC_VERSION) /* ARM-MDK */ + /*************************************************************************** + * Function Name: fputc + ***************************************************************************/ + __attribute__((weak)) int fputc(int ch, FILE *f) + { + (void)f; + #ifdef CY_RETARGET_IO_CONVERT_LF_TO_CRLF + if ((char)ch == '\n' && cy_retarget_io_stdout_prev_char != '\r') + { + cy_retarget_io_putchar('\r'); + } + + cy_retarget_io_stdout_prev_char = (char)ch; + #endif /* CY_RETARGET_IO_CONVERT_LF_TO_CRLF */ + cy_retarget_io_putchar(ch); + return (ch); + } +#elif defined (__ICCARM__) /* IAR */ + #include + + /*************************************************************************** + * Function Name: __write + ***************************************************************************/ + __weak size_t __write(int handle, const unsigned char * buffer, size_t size) + { + size_t nChars = 0; + /* This template only writes to "standard out", for all other file + * handles it returns failure. */ + if (handle != _LLIO_STDOUT) + { + return (_LLIO_ERROR); + } + if (buffer != NULL) + { + for (/* Empty */; nChars < size; ++nChars) + { + #ifdef CY_RETARGET_IO_CONVERT_LF_TO_CRLF + if (*buffer == '\n' && cy_retarget_io_stdout_prev_char != '\r') + { + cy_retarget_io_putchar('\r'); + } + + cy_retarget_io_stdout_prev_char = *buffer; + #endif /* CY_RETARGET_IO_CONVERT_LF_TO_CRLF */ + cy_retarget_io_putchar(*buffer); + ++buffer; + } + } + return (nChars); + } +#else /* (__GNUC__) GCC */ + /* Add an explicit reference to the floating point printf library to allow + the usage of floating point conversion specifier. */ + __asm (".global _printf_float"); + /*************************************************************************** + * Function Name: _write + ***************************************************************************/ + __attribute__((weak)) int _write (int fd, const char *ptr, int len) + { + int nChars = 0; + (void)fd; + if (ptr != NULL) + { + for (/* Empty */; nChars < len; ++nChars) + { + #ifdef CY_RETARGET_IO_CONVERT_LF_TO_CRLF + if (*ptr == '\n' && cy_retarget_io_stdout_prev_char != '\r') + { + cy_retarget_io_putchar('\r'); + } + + cy_retarget_io_stdout_prev_char = *ptr; + #endif /* CY_RETARGET_IO_CONVERT_LF_TO_CRLF */ + cy_retarget_io_putchar((uint32_t)*ptr); + ++ptr; + } + } + return (nChars); + } +#endif + + +#if defined(__ARMCC_VERSION) /* ARM-MDK */ + /*************************************************************************** + * Function Name: fgetc + ***************************************************************************/ + __attribute__((weak)) int fgetc(FILE *f) + { + (void)f; + return (cy_retarget_io_getchar()); + } +#elif defined (__ICCARM__) /* IAR */ + __weak size_t __read(int handle, unsigned char * buffer, size_t size) + { + /* This template only reads from "standard in", for all other file + handles it returns failure. */ + if ((handle != _LLIO_STDIN) || (buffer == NULL)) + { + return (_LLIO_ERROR); + } + else + { + *buffer = cy_retarget_io_getchar(); + return (1); + } + } +#else /* (__GNUC__) GCC */ + /* Add an explicit reference to the floating point scanf library to allow + the usage of floating point conversion specifier. */ + __asm (".global _scanf_float"); + __attribute__((weak)) int _read (int fd, char *ptr, int len) + { + int nChars = 0; + (void)fd; + if (ptr != NULL) + { + for(/* Empty */;nChars < len;++ptr) + { + *ptr = (char)cy_retarget_io_getchar(); + ++nChars; + if((*ptr == '\n') || (*ptr == '\r')) + { + break; + } + } + } + return (nChars); + } +#endif + +cy_rslt_t cy_retarget_io_init(cyhal_gpio_t tx, cyhal_gpio_t rx, uint32_t baudrate) +{ + const cyhal_uart_cfg_t uart_config = + { + .data_bits = 8, + .stop_bits = 1, + .parity = CYHAL_UART_PARITY_NONE, + .rx_buffer = NULL, + .rx_buffer_size = 0, + }; + + cy_rslt_t result = cyhal_uart_init(&cy_retarget_io_uart_obj, tx, rx, NULL, &uart_config); + + if (result == CY_RSLT_SUCCESS) + { + result = cyhal_uart_set_baud(&cy_retarget_io_uart_obj, baudrate, NULL); + } + + return result; +} + +void cy_retarget_io_deinit() +{ + cyhal_uart_free(&cy_retarget_io_uart_obj); +} + +#if defined(__cplusplus) +} +#endif diff --git a/cy_retarget_io.h b/cy_retarget_io.h new file mode 100644 index 0000000..29bb578 --- /dev/null +++ b/cy_retarget_io.h @@ -0,0 +1,87 @@ +/***************************************************************************//** +* \file cy_retarget_io.h +* +* \brief +* Provides APIs for transmitting messages to or from the board via standard +* printf/scanf functions. Messages are transmitted over a UART connection which +* is generally connected to a host machine. Transmission is done at 115200 baud +* using the tx and rx pins provided by the user of this library. The UART +* instance is made available via cy_retarget_io_uart_obj in case any changes +* to the default configuration are desired. +* NOTE: If the application is built using newlib-nano, by default, floating +* point format strings (%f) are not supported. To enable this support you must +* add '-u _printf_float' to the linker command line. +* +******************************************************************************** +* \copyright +* Copyright 2018-2019 Cypress Semiconductor Corporation +* SPDX-License-Identifier: Apache-2.0 +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +/** +* \addtogroup group_board_libs Retarget IO +* \{ +*/ + +#pragma once + +#include +#include "cy_result.h" +#include "cyhal_hw_types.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/** UART HAL object used by this library */ +extern cyhal_uart_t cy_retarget_io_uart_obj; + +/** UART baud rate */ +#define CY_RETARGET_IO_BAUDRATE (115200) + +#ifdef DOXYGEN + +/** Defining this macro enables conversion of line feed (LF) into carriage + * return followed by line feed (CR & LF) on the output direction (STDOUT). You + * can define this macro through the DEFINES variable in the application + * Makefile. + */ +#define CY_RETARGET_IO_CONVERT_LF_TO_CRLF + +#endif /* DOXYGEN */ + +/** + * \brief Initialization function for redirecting low level IO commands to allow + * sending messages over a UART interface. This will setup the communication + * interface to allow using printf and related functions. + * \param tx UART TX pin + * \param rx UART RX pin + * \param baudrate UART baudrate + * \returns CY_RSLT_SUCCESS if successfully initialized, else an error about + * what went wrong + */ +cy_rslt_t cy_retarget_io_init(cyhal_gpio_t tx, cyhal_gpio_t rx, uint32_t baudrate); + +/** + * \brief Releases the UART interface allowing it to be used for other purposes. + * After calling this, printf and related functions will no longer work. + */ +void cy_retarget_io_deinit(void); + +#if defined(__cplusplus) +} +#endif + +/** \} group_board_libs */ diff --git a/docs/api_reference_manual.html b/docs/api_reference_manual.html new file mode 100644 index 0000000..fd26c48 --- /dev/null +++ b/docs/api_reference_manual.html @@ -0,0 +1,15 @@ + + + +Redirect to API Reference Manual main page after 0 seconds + + + + +

+ If the automatic redirection is failing, click the following link to open API Reference Manual. +

+ + \ No newline at end of file diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/docs/html/bdwn.png b/docs/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/docs/html/cypress_logo.png b/docs/html/cypress_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ac9ba0939d1546d7840f20ee6fb550a4acaae641 GIT binary patch literal 37711 zcmYg%cRbZ!-1tYk6kTMcWRnoGGOo(HW=3Rl&FoEf)3v$wE;EE=Z)IgiM)ux&T;p3q&T=e*B*ujBt*QToO;>T3`L-9X4ls6f!AOb9x6^U5XgWrlmg8T`3w zC!^^IL7WWue*|tBa2E)=2O%V$sJRWVj`;+c40=)SZRm2hsi1ioK7LorS(j%laW)d> zRiS3gG43Fp{%c3)ApIryHl52tq4PTt25vw3ivo6}M01oM!X<>?2kM=_Rc*^~d;OV_ zxjNbOBcggunfyHdTV~1)S9SX1-zclgyWfO*8M~Enw~@8bd2ya`u>DkwX1BEDK7NJx4nqEk1#O## z3*Q~)6r$68Pl*S7$9wzqNCByZRkpID>r{ zjDFsZDNw|93x&s3e75g}T*`7Ad(~vZ)r@ zf@hm|DI%{;&+UAEY$#18U6ghPv%z)7Omo`>uH1e%CRhn0ePX>{5L!)}TUKq2@G5>) z{TM>NC%NmSE&ofy`^at2p!R-BrtH#>@5b}(&UU3yKn9q)ZfbM|EPvEhmT$qY_hLFd zo6`ex^Ull4JUO@1l9amwkkLfbQAujrKMC;D#Yv51or}NF%IQkzGhoa`{n@tHs?&JW z)ESVXjA_3D9enUV6lX`shimw8)QO$L*#v5?aW4UEj)~;Q~PyaS1QJw8kZnxl* zx|+?`^XW%^Gb^Hmk7jr8!x>kYQ~R^^t|g|ac&$v0vJNk7isUF{oZwgbGKa^~*C=YL zkD(T&8UxJ5S0x*z{z{%9`;l)W*(;~Up7k#_K`t_#{#U9$>Z;)viSIFH##&!~kgFJk zR;G|RAF^g4vFrCvPoMQ{%S0J@?t~D5`-5e$u8_Aye*;n8K`zQ{J7=IWDj@@woJ+sQ zhxV+q&S4FXIi(w$?S7Bk`o};oNL1x(BZ9j^hfyfL9$)_|lC(Q&BTvt;l`e%0Xm!r- zIaD4C3wx_sPMvn4Kl(ZTNGLlj7I~ax5g7)S-Rkj;8wphQudDqxSH#TSbnrOhJz2W^ z+p|Mrh5XsN#{C)7@3D}a-KV}oM&2IV#XxsaDB{yO{C=5=$bbk}>Z@$#=o-{ZS|WGt ze;~-mH5b8~<&dUP^vI#)C#E*?+%8~t2 zg3{LnYujOk`PH=eHFhc_s@68g%0so@_?e1#lxxYuWM{aUEN9Fd{<~Azza5x!ppDo}U3J`N;R` zP+-rH>VKG{kwoU)2-Z=*4cjW0fm9usq~>s|$!Eyc15>TR+UiM^YiKQ!8wPDe$jHR+ z9%t~l#Wkvt-Y)q%Z{!rx$B;_U5j&=Oc33-OX8gdXw4(GlU&$k4+iD2fEkx-#11^Ncu`nPT*4gkIn^X8_ z>)g)A9~j*iU=GC%2cr6?K9w1n|jN4rb;dHg+3)7-g{iKhn@E~O-iU>p{NV>aXP`uuj;)1 z!M2N#R}h}WgMdSo-=l_%@U|jb_uphOnB@JNmfq(Az%UpkqEF?e*>!n;243%6P&OM| z8(=e+XDZhWNapF0Rbo}d`152U8~ez}O#1zM6tjhTpxD?7R5_#28DlJ=W8=SJFE0I| zW4ri}BPQVcGU1tOOqWJlyj@Q3V+x02EBRW_ctA#pn}$fzkmSvsnwz?$SAF9usbRUm zg#FWR20;5U!_*LLzL7eCsF2w+#^^{^@it;+yBL<3f%*$5sCPy|gVNPlYK?o+Tq0%k zKq4Tt69;`I*hu={EI(srGptcr#X?vrcbheG;bMv= z^?BqAI6Wuog80gVCi8{Je>e#WZ|t+~LuB)XL*^X+FiXknpUnUq7%H$y5L#9HCmwES zhK}1gF!gICYzrj=J=e~5?K#`ojFHeDG=9Fii*(e zV*lOQbs(ov&5Qh(O;Fb*0$+Plr(mScUlhSpd6Yb;eA9k5Cj}=Z*UJ98KnQ7tVhFzBvUCt%HO}S~fv! zsAVl7Hk5tv{rbLA+QZhw(GcuGTUlRh87V z2HpYlB?GB>WU=@eb-wWN;CHu>5J`Pa5L+1K{`u_Gn>R#^a#(YlP=Bv79YZoLejnc@ z|5Mq;dZe!MLg2){-6VlCnYbWrg z52(LnXLucET~YCt)Z~zARQ$_vQQTYX5%7WE;~B@7ztyXyPaP=qu&i42nK3I?D8<9U zPme^9o(s#apyc?5$DHrLukVri%IfW~t)Thyp9t>WA#(3Z#N*@BEr&7g{y`_`QKOWX zDLwwjkMvyp*#Nxeu@&DY@xSqn{*@D%LgEcQiv4%WBRw18OlsZndMSDu{L@od3kq z%A6WPp-_a*ueI^}{?ZE&&g3^Leo6zm%~iqhpT5VaApuX#pODzlG z%&%82`=(j<&Dr3Qbx*tXOca7qw-nAn((!>;sxt8#{L+#Y&RmTK+QOrnHCNIQ|LvZ} ze!3kDQ$a--&v0YM(bj#>Z~U;-wsYF-G;w}r3f)GxnV;e+AQ#PWZV>b4q!rWTBqyDIj zDo<}-<5Z+Nxkh{b=6$|mvqZZc9T#ex z-TD{rmys_T&9~+{adu@>TN}-bNxeU>iq)~h>w}1fP8lwtZ?|E%Or{$vZmtZSBw4rr z1h^`z=Q`K%MpqPRyLzoRvc8^^{Og7_EL-=R-!F4r39uHv%>0J}px^?>lVKh0h9}*c zm=;n64m7rYj;83A}pn)pxm6L8N;&%kQ*rSoqDM7DJbGe@0+*7UWZU zG+8pSu)=wUcyfQXVHsq=^|c$9Ya|WLkMDUG-mPBnzPnK3esk0od!dLmH%Ug={$SSb zx3=x?Sqt{9?&g#PCuFHN!BH{Ge4K8uMnN=&XVn;I$44*5Mq+k*CU zqU~-brvBMj$#x1a`9BQYlD9z!neB%U(&?8kz(cW(y&&(3 z4cc|tA=LcZr}01y@`^Q!we+JYWKa&3)9qnm0fwTcXjd88JAK`O!sFcv{_7H{=z| z3%Xm(DH`01cdY8#xgXD%4z?I%;_M2OTS_rslG`ylF7O|vnjy-sYqe8|i2)~gC;hIC z7))%^g1eT6#%?6%6fb{uk;iyB5g0t+e}8Y~jc3+4U4LJHa7*D$Sjtz|=g!o2@QNTu z4c?Q{4(YpyY)if9N4>JRj^RAliY~&dya(f+BJ{P$1*q7Cs1OEX$WUqF2o+eG#IGr$ z`x8yPl%a!j>2;KA3bJ?h8XA%?*_eh-hGb%;(c*81TUEzc<54xCd-SP__0CAOZS0Gg z8TZ09|HOnREo<*@c|i|33A3o6hdXbMku@_jOXjvum(|(1?{CE%&GN+Pk_pAUYnvNB z5*z3|ISKAbeLH6KRqz9%;;?Bo)lPh7;ig~U@Ni<-<7J_8?a2Ph=kj^9E=G}*&dp1| zbZ~K_h>Y2F>uoL#rHTe8I{Lc>a(s80vnr*JYe`cKMFQ`rURnd(RnmF>5JPDlSa*-w zHBrYjPB7c`mrkqUxu`8orV5=h72CCk8cGAM9At*g6G{5=PEGuFdxs6xlGd&`&f1re z{ffG^L9M%hW8Uv(gi(sN88U_CU8oHd2syBIrOsNHY$O%HRnioQDp{<3`-#vU-|%Oc zk71!EOi6IKy#9Vn1$wwg5Ef&od1ID~`WLOGLtNXZlSixZ@uLeeRB$woGXy2)tf|7) z6dToIR9xOrelwoe?a5 zpSR_XYTH40WfWx%*-lNz*N!H3M6cwO@7IN!3EYntno>(6Dqh0RuiX>%pcNU-Gqay- ztqX(;rSV{rxVseiZTDRVnQ-|u+&=J9N7dC|fj#RDzaazkYCO+ptL;xGONn~h1MhZe zTomSBb}3Q89k$BRPdom~26a_E6nlR>PaG(zx%QsdvkQBD6eH@H>0M4E`#YsyOG4g5 z0Jja>`SYhs!A2oxZPdEU5iOaqFVD?-d&uRpN4L*XTLZhTbvw(v?gV#%9>k{9c>#am;_5KBx?Z)iF%A0sym6#Ncp`d)aW2#(pDp~_1h%;))Mr_GDBjMKSvM?T&`8dqyCABz@vEPal0 zJ)nGYsTP}eo6G+kM=6Ms20sbMT{Wq@`<_S45>}`a`GN%#V+piQE^F?)>w5QRi;eEb zSVs9ys#C1A);2;#4s=pnO_i88bK>!iC>xne@;@`&Pk!GDFal!uP1|;qDA%`x9^sx? zxS%2-;uSODc(XwFw_9HyxJ~yNnCF!m<_Y@Yv!UYXT(JRbusOV$gL`*^mW&7WN6in zfhoh)m8S%VU`H&>UYU{ECQt0tUXN8zc!0C*evHa&g$Lsg#-%3`I>Cd{xGEYLv2^3M zvT%MkRx`digzfxYD3)`griiM;^_hxA{5<^@MKxy9i|gIX{L1FSLhXPVk*ehEI$i^H z&S4>_wSx{zNA*y_FHnLpOK<7j4n}0}t+{;XBiBuiyEFT%AZwy1;e?D#cR%a~a&vNr zeEbd{1>B`|(ouEsuU-g2y;B~Iy&Y4;ot>}EUv@vH_c<}8BnF6d-HvacjHBb0{G)?T zL^em3ydCNWC$aGnqE!oae>9{=^6YjV-mT^1F18!3)noa@Z-Z50cg_Cg*e7!Qx1WKz z#>j%N`V)b#=Hj&B3Lr{ce$Y0A;?Ubl3DDt zQ>GgAyh_qbaJwJj6{0^kWyd}Oa zUP5>hhZfP^Z$L%15e@L^-m?;P%eNzR8YncLmAfY@%KXoWDitkYPrNg6y!pZXCFSlWrr8^>sb4R@>@Stwop8dWS7p#MhsEZ=>($N9i&K*if7`YUcz3Ay%2~HZE08I?gDlb33hp?NKh7a=va9u@%`x0;aj!#Z@7EYTsPO8ef7F!DZVsy-0{5V$9g$q}uC0Ghu z4VE#Z8VpHA$f&KfPA*1l!;=DbvW`t*C!h!CDrq?EutJR%g54}E>>$?)+@8*ln1=tf z>o&ewmk~3|uOo+GTQgS;)xFEpMsGV*B6i(YRnTx2u0m@ec08jL{vhosv^(kaAzss#655K`4FDs)P{T#BuV zdXM#iM=Ugb)qgs_SzVbUabMNld#Ld32InssT!@n@<95pB0qZzRxK2<{7lr5LIxCR7 zTe;9*#W3wp8MRfFRD&ufNi!Zu08xr-;!cW3vzxvy?gE4!xRHCL^f*>O1SKtz3gcH@ zJO!jGW6iY;KbdMsLdBZs;%G=zy=d7pjni0jfdpj!Wa9w2rSNS{v9MUoH@S?fL~_~A zyfxlN{iZKj+bp~U7lZkRbYrGG`aL%?$26<{yz~|5Qt?)|ClDXzoUNX=l=|vqHQ?+0 ztnP7XoI?G|n6=QVO5~!MRgy&@e8`a8;!>^F3I)h|=e_Bo^;^nKGCAA&T9r z(62TfUCzKX>nl&#FYP8>$WOC9cal>fNn~=2*We+cH+knXNQ;=C$liAmP3URn3eBKs z@WApf^3O@F3(chLs}Mrl#nf%eB_^JZH(|oCLS3bCC7w4M5{*cS2hxoy=P&P$6jl2I zH%>RQUr*uzBTZID>Q{2W;rZQq60_m*>4%*1TaH&-y+fbg_j+h2&pZk8L}$GK5lwt7 zC9Z#t4e=HC!-e^kiiW9z50{#Z^MPOZzMFcDf0NfcZ{4Sg<+z$_pzg6V+^ToMF@tTU z-sAi7=6>>NZqrgyo^!7~j3LF8!jgp1y%V&<`{$A4gPb!5yFz4O zKPQhppZ0w?pt_wFl!`&+c11~0F%TmzxPLyGHreT`3XN*Y&k}%QktxBiQjIJlcl}hG zZG?M$hP?QsT03!Ur=xSAeZcHb7tttCtbtcC4TjTO?oNV>*32Ziiq+qLGwjD0DFHVv zxG~wk;rg`8&9o+X^HkQL5)<1Cu5qmF{8qJAH(hDg=JAMmz3X;DOVmRuBdZvO>9~#= z_lkADD$zKYywH?%3FN?c~b8=9^~Guw&nME$&@VXgDim0@l|pCfhT05tIZ zvX$D3ao-ptzd@zD-4esXA1iiaIs0;Vh2~=wRN4~n)5S0# zUuz+F5v%nB>zM&vp{W}w>hHB6Vs9O~1OFbCq zR-VxAj6OCiJGtA5nR}^0Ae?#ic|-xW;EsTIgI5^dsM&172bXw_3K4fDF2GFOAUf4!^V9b!%#P?)>4va zqjTq~+HrZqzO8y|_9z8wl5o?FZa*Gx=r>v0Vel;3J9f4dr7%MW3#RaL3@>WvufDID zO0$wm&PAL1b7*acoHPve5Ul`1!EB_rjP_jLeuTX27!SGk(-DDMTIRUO%4}K}FsU{$ zQI`eMQIh0P>~sGgR;!Yiga=nzo838sQ+~@9^^x9-U|oo57)AbJ_kdwkL_cA=6- zKX?*4O5rwAVq7iNEU9@8Y#Gi%bLo8w-8I27b=8>9jO6@4Bq*1-wjb}Bw;{3nvHc+Set*%jhtFQuc`E3C$WFDD; zdP(+fRy3}SpzucGOXi-_mAx@J5p^RuMiZ6hZkufK%B2qyoJ;La2>&>+atOujbRCictJ2B<{T4|o9d~2qQUU%LL)qT} z(smlX)vUhD!)jezeia{fGPH8M>B8F`HJ*MN^0J3V)c)`DVO6*Fj9TsadpvpK2H|tFV~*&F zfm!DjsWUA84HPU^@sN^oJo6$R%Fh2VhKmBw>vuapSAL%&_M==&hpkzT#H0Hon z=UR77pIoo4Np(FBGBQ?6$#WcS%~lt|m>CVn3Y-?X9*qD97!KvIJ$w_ zGMzS>*7Vu$HtYQ;pHj=u%7OqQH+MXPw)Ce(b%p+ECa zGld5k$+2x-&MY%g4RTShJNvHT-WOOa?)>J--all1@C|{xt8RJ>L|A5(&$vf^8TW96 zdlEsS+7)xo*K|iWCDVGphtrvULsm6~0_3`;%p8R2_eknGLZU4`q^BrIYA*Q|KfNUU zBA?Ijje;oi_@9}M(@|;OBu4HMdL2-6Bb=IC?px*i6r|629^0o*lUd7S>n!EtqLm^{ z`rP42zW1D7?^}DLXU${QH8J)HgD$Fv>tmtCxjx1TMM5^nwrduUxt}88hS1!bQJZ(u ziP)NS{=$)f9wF)Mc;RP4b+hdUhxhL_cz=%6_poB|wC;*~`{>b9$B*=do1pl%T~YRR zZB(u+1SqI0x1i#;8^^^~0&`N-D*B%BTf?E3*5h+nHnL;3M*7YRP4mWKcV0gIB?TUBlksUw1e}Nj5KNcp)+Y+mgSB6DXj-=pQWyqet^uw zz36;RA1fj)#OR~nUxTy^Iloq#I^}elc``?m2d~-=Gm?)>wF88QZk>a8D4*E` zo(qb)qe^O**r+BQ3w?UwxzEd{E|RPRa^n3a$K;K-yC0f=m865}DZ^&MV$VUI`_C$| z{`wOL7jXbUOgm;s&rVpq{bv%#H3G;E`0bGIhPO-~FeLu-kvnoVK`9_@D!v!+ohRiy z+O@1Pawh}&ww%SiFK_3qy}XQ~Z67<0j&lyN~w-d`5isGg3~&6?*)JfEQ8)#K<2- z=&v`e18Td@LqA3kH9`9NO6MVJq!4}ShtFFsyU!d&G7MI4? zPk*HcO@we>f@oBiX8=bH8^X6%wEHARTgOOL*`Hp3)^_LX4*iJ(&M_LX(-V=@)(Wqo zmQ8PJL%v3!AehZ^;jxzgg$LINTph9+Bk`sJxe@0x<0nDT`@9Z92)+6Kd?V`t8k2c9FGzf%G!Y->BBaGlLIcWeMZUw#@QA}Ocl8$j4v8il0$Y+2T5v6 zKL8(>Pq_#XbgYr9CzE3RR|p$4Dbr0Oa!MO`j*;(hGz3-io@?t%lJZz%g9UKl?Wo%h ze_Lc$2NdWY2Hhc=QrZ(yN%}U5?kYMmwV}b1p(vqjk!uyr+sF4a?WDdh4sGhcF zGZ>&JJuROpWjpQ?1!(7C&CNrVN4g0zWk9}vh7rfu`DMwci+)ALv(>yd3!tiQat!$% zyrZZ)6itO%m$JkNf|cLicLtnP|7y+DE?BoSotD`^m)D-mAKbL`B&DG4z?W6rfl;kX zkqQn?_JMFh@ls5ML*rq}BRL}6x0O|k5YTuEjgALS2y$Hsi>^$ZxD_r)3i=8rzvi3R z1>cU(?%8<@c-7HxkW9K<7iobohkQ|}E@|(%0)Rwmq$B`osEv-z?lWs{NTx+`E|tzq zrLOAeaZ5L- zDQ%za6V!oz@dZW`c6!dM4cV-~femVKk@#w2mz41Nv3kUsM5FBVprFQnL;n2qZ%Y!@ z)A`W72`U(&LS^g3>piTV1fW}32B`GIi1VsvUe>vi_-6}@?^K?uv5RYg+XE}2K|lT0 zJTVs3dmj>w#OW-kD68MbCqNn~vufF`;o;r~GMB6?)FWT`0JCwqu_xo0{KG{^aQ8z& z-L9gtFC*r|q#B+ld2_pQ9U04gGoapYMmd9fZ&V%gi%MxkD7b-_W2uZ3cG+J~yVQ)B zHY#@cz=8lG!kuX7yA`pDqe(G&?^$HBRho$*%B;1Ze7?c-`pT8cnM4CPeZEO=v}2r? zsZGe1X@Fw_>hCYi)a!28sdbO*HE8p@t=Eb((3FGkxbJajhqnw}VrwFV40K9)sRKDA z8eNptlM?4$z->T2$+d+QRvcT;v?e8C!L$S#CfFjFb#vsf&W_kmz%va_{aR||q^N!k zXU9U%zmk-oS-HSZ%m(?!;5J>oTZknaTO`k+8MvLd-3Xu{M=N`_v=!X|Wue9X#J4&z z9V^Q=uB(2b#!fXLVJ`WxHGA!sU5iGJ-itP_7Oga>es;|pbJ6HRb8i%o#3Y*YIf)bg zXXNyFP)ZBa;H_FE1Su^ut%1yRny!eC$PV<@cFTSBK}voeMrnFS))O0~O(`wcV;7eF>Gab(CW zaSYTnB_su_dK!K(pMSIVg$z$~^{J@3<0gd9bt{5I_;sfol{d&P?>2#%_m% z+`~fs;fZavv^HiUEH8783^m|Z#2G*?s@$h?yXz2S_ge8^e#2Cbqm%p;tL_daM48;dtGYX;?(Czv-r|?xhg7mS_Mx(npi(oVQFejy)P` z5@YYTJM8JjDz@ zIpliaS$+I8dhle;_N0`{YiYq}Hm~x&_|7eps9j9WR`MY3R^A1~igY8x&rNC)Rq==i z%%0Xq@qYZkz8nGj5`rqZG};BqU`LvHu2W%3@KMgTWs9+o723I^>7Z3)K{(UUhI4KZ z7P9M!(H77nxd^Fjdgy!f1PIA^kN~!^1Yzu>&eWUYz5LWpTyn5NP^S8B+D~k@_%sNe zJ}&*JLx>K7LT1`0jt5303D7K88SaV~IlqT`UugIuK-T= z8`eO7R(vUyjiUSz(PglZP~YoB0gynoYvV=ameJ^gdE-o;zlD>>#Hbio1<{^*ZO{?g zpGn@82~I9@QIG_ke@b#_{)SG#V^g3NXcf_nIv-)k%~BNYj$(8xU!+Ek* zy@(&$CufMb^9}R%%DUByD_VKCJ4F{3em4Qd6#sZ=!Re12ROn>d@Th=2xw9M|;%3)#^D;7nf+%0$maq z-k@FVl*^;4;@Qt~$z@AbStnV3lBs%FY~cRHku(TdXX zj#i zqGOR(%SG1)91f~2^Q16Uhm=vx+HJGwvXbG#y#A_(Wemu&4DP?ds66+5sgY(=ZAnd0 z7%WuaSe>i!OS)E8@LJ*%_~@4w0Sc|n>R{B%LE=A7v9X|Wdnl_ZSfF;dWMM)uq;47C zCq@AyQ8lug+fP0kkkj|@{@l8MaC)aY{d4Q^!pWr26NoaeRNt}(r&ZEjZVm7>_(;{! zI5zU}asJc+xz^s8=WJ1lqE<0y_IPS~J)k#;xh%FM(3Mo)gNe;r5)b6inFu!E!ThZ~ z7_HSE2#ev^C(Kf%ovuay$XK_?Yu>GxqfDZR{uB7q(%GL!(7z(u$ILbDPT)22)N!GV z_N)xW-mg+S-J*eROb81jMIvk(b*& zJRzcXU?!3rw3u2g9azEXAHxa<-;N{&qOw54&GL3DreUm-w$w1+E|xJWQTCT1(n1;Z zH-8ErMt`kHmAE|fJVs?jT5O?+E!@eh-G9GKQCVF$d?SvR{DK{Mpmohw^x8{*RJj_< zBqEn~y$|>8#ytHr6{6RPh8c)E=$oW|)$a9kYu2r{8-xf04z5mgO}bQ|`5ZJ2g`lz+ zCV0j2@6TK|bNAkm@NoGmAt9m%`p?^0ghJfPCCfasIR`s}@O+wxqMiyHGgd`j3)#m- z>#E$R&$pN6^WK9;_9h@Jx+4pnsAv_mD>B-Jqt9c`dX!Y4((px_W(+cMDuqg?mcZeuN$rK zZa2#|?f9t~W9B`$cF$^KWXw*Y7LLb`ecO|&Jny2CG2%+Isp=I2Pp$aGVYap$)eUNf zU~jkb+_DL@H>jd8zLIvZz; z4dN}7uliq`MX%RFDW%3PF93gQ(K^+D9i&f~EU=Xnyar`t@*tl%0v_G8!|W?0%e=Br zLYR}h|2EI|{XwVynF#_uxkT+jRDrP3we8|tFpAsm`stQ=<9z+0s8<``UWO=t2m?Yu z_nUDL=tQa2=(lVj&;s3JE=I+%sT@WhQ7Gr`IAiRjcTJ!>xgM#@STSBC#rY1< zti3YWnw|Hn?)sYjgQmsml>D(D0L2(^zf?&?Z|c`*hNoz!rvQ99{PzC%Zr__>_fk4F zgt#t*<>i^H3sG_{yh^L3VC<*|EiHo-mtuqQC6O4lk$|fl(TW|04mk`$QEKo=MiZ;9 zs~|*w8u%0%Qe<|eM;6ePr3KMiXGBsLO@6&0V?$Le5E)I?)?;t801@Wv zycBs_DpkOA+<&K;d9DE%`3IL{L?3pF4c@x+s|B9}LCvAc2hiHdfk24TFcHhZm(fQ% zNuzh2&Xl!RL^JN!{wHKrhIvB%&4-egx!tp`%nHWfmXmbeo9jhglEmjU_ z6rJXUP%$bq`bS4aa#x1B7eRoH$uGkS?_Zbi!M9iOlE?E6jG$0{+D`4j>0ToPPB;F# zW9Ay@U3*0DOojB7dv_=}b#c9iN}hWeefcX@6HX^er#r!Z<9pGEJEW(YDF+Lu%-+Zq zefUvt@Ko9GFtNA!6o>6` zw!ZA<_Y=%ua%h<-fB6YZ-8Ywsbf1CHlZ8`+)9KKu{YLPDetALO*rcuKfmd){i_dOZ z-QdEVdpEShm5{Pj@Zo8MutqFBg3Y`fU=ajCEK-E%Xf3<;Gnf8_^y}VqtYMv^qP3(j zI-MPm;c?X#f8_T0kh$g^uF?HTC9h@dBkuuP@2}MxqqisQYJ%;(j|({Jc5CM@I|)LW zd{0J$Q8n_MgMseDlb}aIo8nTYgvzyH-g&@VinAKchsE>ANU}u>TsrW+#)$WU{DPxF zhvoMHpFGDY$Z;}O4EMooR&nlwQY`eGWwX%>^wa2BH3xiPjc177kO7|($I?gVShfP| zN<2=R^iPf(Nu_*F?(8?2`E392m;t+M!Tt``olLgD-8Q{NgXCAQ5j<)$y)^hGh*qJD z0w!DYkOQsqTLs7%$VxafOt+GcmCmZY#XTI3Vf501d-7!*`;vNCtvK%Q!Eqy`N|ZIW zhi?x4KJ&>oewDsym9jFIhPpNSEz zO%I3u{kFCut~@ai0y>bW)@O?x%cZb+do2(%pE%ydZF;QZ{x0j=I3eKRO+=V)UoNYa zB|ZLOpKyj6k6|y7>l|YDJPfAHk_~_ELs9Z0epU^Q`xcDo&5w?WJ*T+R9PBZ1TBKC7 zJBN#5K1utx<7Cyica6WHQ$88wFN4i+tH~vdmr@CM1^WHlvD9{rl$OFkv+Mza0fEW0 zJeLf`?ez&uu1e8F?zT1M@CT;!%I9iSUwx+m;php2#m@#}bKp9;OO!XXp*`XnFIcJ?Xu^G?58=^iN8p#RG-PjMIo~K?5;|Cv` z8M6}EB{PGlph>HI$;Q-lGS%-I8z`te@A2y~yehAl!$%nw0IDfPi3d_1==2e5Ma3cR zi-|)U`lrh{;*-8C=H!R&?Z<})4WUu{w`|MzD@KjxbwIL39XvoxQgJDG$WirFJe7!1 z;SUdZ{tC(+77{u(tsMI!wMI<+-jr(ybeCkKI>_!?TUq+E89eyMsQ!UUN}g3~+VkBl zW_J%yj_{1+7#xMaxz^G)5P|5(bKr@I0-eksU_PZ98#v1QD=61q#tkmFVt(*5A@E7Z z;5E^mQGkTSa>UHP8{>4a~Xacaer{Ys~GNxOsS1x*K7Ys(3bWuNus z<$6JpQcQ)%#9_UsNbz=v|4HIL2mB_j$0FCQP-`#F+yg<4fJ+a-Au}U^s22+e?q`G` z@imei69jTK`S0%tfm|<$SDcZN<#Cpqc_7bG0$vUel(++S)5pKHh%t#cnga3Gh_g!h zt@WOoH}+MVJ9T^0W(#+#U3<+~MX^)+qqkvPVt6ndQF31SYCM|RCs{s6AN=6cd7 zShlf)KKq-brzL{mHN0*}525*00@FNFnD)?VXG(LEXW(_iInhQrwr?kGK?$rOzNZ`r%rGb6=)I ztm$M=oQ#2<1}?A6-&w%$8s7YLwrb1o^9oJu|M2vo>T#?KpZ;vvi4BmT-%&CDYX z<7&NUTE?h&r#O2)Rgw@vM5@|$4VrPDX+Fg3X|dqhK2`Y6Z!ZK(7Kw<)vd77k>fj6z zLT5F|x6qx3J{r7^8)JL*SY*Ofr_Mph!$k8B%M+CVE8wx?fRp6kV>6iwtIj-XIQeEBZC3KT@!Ljjp^k zCMTZ9Q!Q;r)0hG!i~i}ByI8rV^zPxu{z|&Iv4f_G;i$;z2Y89TrNJ6$=H6~FKXtKjb zQO253y0?_sD_;q>?@Ai_Oj-kKJ{VmY?2ck)&LXErK4UlQAx=nS)CIR5ncWl4B0T?R z)3NT*c7gL`dw~V$l!@*0TSF|)G{3G1=OsEW zl_c;b2Mxv>(P3?E>tro5Y#Z^*i`VL7Q#^#Zhq>MJ-jwYF-VM|e3iSRPI?s%_UE{Ga z-`Mv;mnt^BrBuvyqhRCsN23qODA1xp^G@c5*5V(#u7Btj*~aZ>Ipy~$>3Cu%_X~Vp zT!jOzP(_~BUv3M$UR|c6@^_KljP_k*4_%yZ6`6- z+AW5eeuP%VBWhplWH8!HrIZuTHo)#oFL>`vbS-%W{otd6J~8DtE{?v1gKjgxxq3dm zbCc%p*CM&PgjDMpL668kp3R?Tu9&QddjTH}Hf2T(CRAE3&o_eLxPEr5+kRqv`<*vbqP0s@+Wjb+5|EX1=pufQ(nQf=Hgn7)8FvJ`Zw{xP^&R zzTFj!ysn~`J=P;q&j>`ZlQOE#y6xQ1t*XrLtH4uKM;C`zWv+u~53bJI23j^Er$4JUi@ zcxD}?!^G?79rZ5h9?21onZEuYbBlKmmlq64$=mX!r!%yKzSG)(CJEZKqMr^MetuP% z{PBI@{d0ZCadT1k*y)*XhF3EZu2lagd$qWYhn;R{$_~ShHHclpWfN7d8KV2v5j>3+!oX$DAQ;-_`4^>|s z7gg7Vdq@$KkVaBKq)SRtlrHI(5|HjrK?LdUQecpdp&O*TYv`2jX5b!t-}k%sp1=4p zGyCkb_KIgcYwvXmLG({5DLuk{#?lxoqv2HXj4fw#*&5zoJL?N$Pw%<$aN`rFO>^KT z#3_(7PjRRgU;-ff-}PX8K1T_{_bb`|sQl2~n!k}8<->#coJHKNpDkmsGAwt|5HSL_ z&wBrisKFlV!SXi{AjaScYp}K=A3EsLKVyzNbZMsepo27^4vw>IT3;nP9J0snY*9-z#EFMUWnJ z4paf^pA>HC7h^>wX$?09)j}@YhLGyvuy4Dmb(=x0W5F!w{q28aTE^{mD+PRRF)`(o zCHt>Y-S33xHF?j@i=EXfN$tsAr~6!vpVip?wx)mC(dW_m6D*L1npd#W*bAyt8#WdT zVgjbzU@!$&T4ud|9}PSNiD+`-IR_RkaI;*7YiV=Uz&NWSm5l>u+oUn$A&E|`tBlP^ zkZ-Z{I!ST(8*%;(st@?@;$ZQ@G@XAdL*_^)j{?4>=d};UBS~p?DVS)B=0wb}Ow?pZ zU0l$#(j=NML0DRB7NQB{BX$*$o7(!}t))DO4@X49{QFtFze#Rn``2}DSZY)Z`Ruto4tjSO*R8iz?k#zODtMxaDCZj z+$2Utb(IM9UvAsarggLOO-#6lZ3ps4ncC+^eb3X?eJ0szBXBeK7c3SlTyHk~FNDq2 z8d;4E>TteQ(8T~yKC@?jyd-Gbz-HNnay(M`sXx# z0xK8T?w?pggEgjh3RlMu#pFM9E7;;XLSJjyePD^4ylqu9W2cVQq8goNu7r$O1)z8h zkSoOqiF-|p%GJHEdOg)tCrgtr-AJ+t$BC%dVY%-P3JrBl54wYG`dc|NZ$y4sj+Quu5@bzN_(I~@P>Q)ovunX%&rf|G#1$FvIMG16pvlG@P45Otfyi8 zH|>=P&WpR@LgXh!G78}(_gfTZaD{tGVfb-FzJj3hASB!MwoiC&Vqt+89p%~h%ZDyg zFEpz!XQv0Tf*_xdD&^{vf0^7|CQ~Qu*gd67cB&z*qSduqQcBailGR7|?;a#Ui=c`xUnu6%{-r1-v`qYB@q}nDkaI{ibV?NW(?qq53XC?+_ZF9 z(FX_PnA2)C|7Ga~j-_DFe^FeQs_|o9{-81Qu@kig>_76U=JTRAGZ( z6d1t4-Wz)G_fm%d8j$@Ku4jq8Y`7GfKS;yXmJ@w!l#vmpw*&NC28H1V8GWj@+XMT$ zUZ>Al&%3>{eS02$jdS)~hIvMCXO=nv&``6PB>NLM7^R#fp>N(Ejv;#$D+q9VEKjAK zsQVmlr!~wS+)kx0PH5YN#hgeYz`#l~@Fdsls1gKF!1D>K=9aQv^C-(+7O1)Tz;U1B z8xeOM{ouE+fXTo5zCp$7boQuZ!7T^cSF0q6VFeZue8KvP9_+P$0l=i&AF&h%PIJpBKnZv_}wR&OrK}!|nsl|k(z?nyGo#Pci0F9hQ4Re{Uo_+m&(Vg%T&CNw%x2kd z7{Fc$`n(Sopl}Y9M(!1;3X}(3RHFnJzucAjLT@68WZT)C;<1~iS(kB*Q8MrSAj37L z&%U6yp|C5xj0%~w4{ zd>AD9;6#&_wY|N_HIZ9hnp}jFg|L=MvaJ6koxQtDcjB_rWCx{Xv^lu%eIP?IG~WAD z__lA;#?0n`sTKoc_@Pl;&=+F;`O?d058o8G3MsKl-t7q^i>CArP$rQ}p}_$>EK1w< zGIVY)sSlEQW0JJ5W13yjo)!!1mX*P{Rz3~-GcV2>tN$33fP ziB+gY($B(D5GvQcnG58EsyryD?qx~_Ubm*kS8j0HBB7vx#Al~>B>ahz0sbUlS{If} zHzr}}f-?vGZq4R$pvR8Sog+kzK=5vzV&B~6;7JljNU1pqXlCC3E)d{LlS-7h%@aSn zV#^A|Uu|W084Ad3N_!n`hb`FHz{8nu^`B?ZfVb;be{NA&-s=oD8_{1wo#F1KO9G}> zj=M|_Oty6LHn~4eRr{P5*x3`r&+PKVYvhCdXRw7~LrKToF92YFH3s>J8q{0j1HSvg z{xn9e`}yaB_5`o%z>$wzzoeOIfQ&659^QfnNSGJ2&8y#UM{rio&;M&wWm@RmEAtVG zNtB@LDXlBwdWajeA%IJms+ySt(h);6@)185TL+&qU|D*16_M66TB}rf&}4rRH^{On z-Kr)e<%^R<1^!r{Ul^bkvn38vkD>|EGib>;kzxSMuG#_@7ClV%NBZZ6{_!J4oNG)> z9al=u236DmFtZA3nC0dp-#hGYZM}l2-@thmG;ZGVyEHp(_4Hf1T!027bR9+rc8lS* zh(=Ze|0hv}f(TIRzeKRo^8D_w_DqDr&x05ZY!4I|^m(`i&tC;l`t_sSrFi_ofiVxp z`K{lQE}Wn~U3!nVrGf}7iKl?_-i{LUg`%O+WP_%BME-*m(m&I45P(3z0W&=Tx-)k& zybW2w<7Px%8blMc)!$^7l8Vm#q92&*~?-;`b`btW~?2rJOAO{E_!8dH$J9^S5 zjeqTv$D#d9ek>wPkE(s>T0jAaK7I(|1)#fUVZ1o8-+3x{GdFYt3Zbh$9aZoGtTrGL zO{21jjv2*G{M_L&c=<;zChhcIsk1hO`q@ji4p1?o^AZ>A_9rizufO+OEsAMNmW!aJ2x zexd@Bi4!q?yr$^9QF|~`RnEvx)!?L)c-IT3F5xSs_2d_a5bgIQt zjDy22XFdelXrzlfgxfG~iRu^anXi0%DqEID;TzR6TdP#k=q*Edw?SvL#zeZjdAU%J zsk8d?H#9zhHf${M5wPS9&RNF!Kz21s#&>M5EBW`!YeM1DtPkuRLUYdx? z!0xZZp|pAU24Q;t|L?>k#!uW=O+Iv^3_3B9nfKqQAOOCx(*lDWMhoiz`I;z&p*yHY zh7>;;ZiaFzbDq?Ez}zHF`=l8I$7Ryxwb<1Nh~$}#tLUkJB+|g8xO}d_;(Z(CBA43J z&-~X5EF9Qm&^aszrN3)UQndTw#mNIcxmCn|9Y&a28MsX{l6>)a=cN0^l4S8|#skbT z)s<4geWGW#ti}8otwsrRheghjZKz-D5zE9D^A?68`m+Oa!0vj3^WJlp8hS9;4;QFD zs%wHn^}=GHwrGq$=go%ooN|oJOx_H}+yg*rclGVHKslOgBwt4LX7_p>9^U8Pue76X6JcszU*FYy`}+a(Qh^(#J~o%V*Y7P# z5?_r@t{QZI{gz(Oy5G^Ui5&~*MjlK;oLf`kxA!hA*Q!2S>9@up?78W`FlJ3|sH!BL zTpui^7`!mXz!6p_1fI}`Y)Zq=ClAP}OqYrLl%o5Ci4)FE(-lkYd-K1%c;v4%$g_a} zB%AV#BSUr(X66tW--kXd4y~B-~+Yc@K^Wn{#<`W4jBrFQxk?!5}?mSZ( z;~8k+gK>yy^cS_0O-WJXRqOqEWxe@y7k)|=79hnJBEK0W*5covX**Qb_mQ-qPz!qF zH#0j>nK>RlqZsNU={RNeI67QajgIt*wDC`hn-Al`E}+n;UCyJfvQjt{Mu73J~Z4(|qX$2a@!&p=v zLu#6l6|(Xj(cxUtUxdD*Y{*gkOjgsLM(#|u-;~Y!?Pfj3pAG(cUWLtWgf?VjcgfhBa3%H$DK-D1Si%nWD*RaEIo(Z ziz7Sa364(SO(Pw%7GAIEzRBiw2y+8OAhT3eO$xbSY9Q99hF0_01YEWQp7?wkv5oY3 zF~YvAY`subwGv4!sdBx~Rd(7@^{cO%a;DY{ZH?uX7{k8DV=5H)%j(6q;Q79XpAHGJ zTi?_w4Ouk|R(W<~psr)FLF1;@Ck=7~pPw}o7Zest<%iiHcK2Hr@XbCJo=ZmoT2PyI z$&HR&Z8{A{WM3ZBmYI75ai@xX8HLQjg7-7~qVr#}v5lI}#lnqi`Saw^2hYmND0CAX zM@C-HXMC=;ye`WE;r>{HlN(*l8IvqWIBBB2YZ9ezg%*Ent&*BV&cg1(#I1|Br}`+d z{S#tS3;)?~;p+{n7p1@ShmGWvIEy{GVOC6%`EM4I=DN7S=x=fQT;@*0cw%F(RS+jJ zxUa^{W-tbCB#;oyt_Z~ieFc}GFs?o81UgGOM&1+C4uQ?Hn%N$cKoo_yA`BQ3Z5o#+&)v;bv>=gjlOl~nraZs-rWDH|p(&Qh&)HnnrX&tu1AgxkFf;O(y7@ipWo z#X;LJ-l;WMp>WzFENSdy+)oq3hT`07&%PDk)^wbEb%&5u9r2H#OGU!fagi(l0OKlN zFGGT$l|w9~I7i-jSV1=Cv07o2TKP5VzKQP0Ur=VH`(Kh}SGU9g=}^_XbEled`@YePGkdQ22Hc7S zI#O*Q{51XKU=BW+Lszue<#cB;bg*4i-Pyywh88w4HX-TPKMP_#&u9cdpFU+#5#tk< z?Q5u30Q=~!mR&aKwP7^v`Y=ua5xPJhG6Jb$y=^g`e%=7nK=pmM^VzdQ*2Ne3(+53a#?HQ6yZb?5_|5i55EfvSNLf z*EKlf8D`^ru>IYFbq_?uqhGQ!7^}K{>$k5?&}RN zP%KM8%Az{?3=-+kY4!A*H}BwY32%lWi%|Jn>&XMV za?)19zuCjKh8=kH&1SfoMwgnF;6j+@Gtyd3`b!9nJz@88CNOm?Lh-0qzE1GJtO@Lbz6I8yTUn#AM>+Z zf9A-3nxNo9XG-~-iyeLY?ag*9A!SCo`{EiisFBg2^t(A1MjV+=%mXorftI)284g=f zf-QMoXnL|sE;E%(g-TmI@#f_>bE2t*@$0KZ=N;OlSsk!u|sPk--2*@<6>b8Hc(SN^BG7;ex%%PN#I zg)X^F(({Ofpi9F?Bh+Q|-8H z!@U9@^<}mXL8)2s-Mf)z37orQaf|QGpy#+hIX=U94GZ+8C4^yk=!T;r(psLLpbVwHNk?QqxJG^BvNkjlRhBmlU zCC&k)3##}IK4F&W?#uQnlrp3sjN&9;=M8-EQ;(fkD#}%I@0!itS|yL>X0P-o@4`XT zo92(_vRjBfOJk`j0V@%{14!V$Of2kRIzL2im|`bgRT4fgxu#X+Q{3*sfVLp?I#v@z zAnANe_@=#PZ&O+jgj`@VO}?p^c_b2+g3-ycNffom;Bl$8?F-^fSp zxk*;&tdZ+#-~mKu_^Z%Emy!?ZzLs^jWi$0v8I1p17N5d@q8 zXcFp~6ZcjoyS*7tY24h|^OF=(lH8RU`}(?NJecSg0>^K#R{sxV z)dsY;UruM*(DOQ=Z%yNIf?V9pI+!jt_<#BA6_k&Lp1p;r?c1!2$@2;`FaGyjI>tvL zyXF00Rb`Qvp3CnJ4(y8YmO{fC25Y3s-Y%+?(mukqkFLzqhan9rApxH%!$!Cc__aY} z#lE^K4qj3rL6e@hd5fI;DvVUXd~zd4%Qn}e@bkW<|1$jEky|tr5wGfiCRKB=SaFxGjf{=~X(i%2k3)Tu9DSqbb zU!a5%wEB+qQ5jukO(?U~M%(}Tq$VrXKZlxH`H-BK!FBQyv~B+MMraqtBD!wQj%F@m z$y-H}P}>bSCWBOi46LpC_L-plW1?%ml8~ZSi5$8uDL(|HxZnBNjM?pyyRXos?RNbX zC4YUWrY(w@^VM!T{Bd!Sp5!sUZQ%*^P^W-*hP<8w#)f~CS;_f(3-fk-oIk1?wqat9 zc>?&7mb=MzfSRLmjqOx+Bf9JL38fXt$R?^GoqQkp+BzlL5Yez9yOQY)(7v%7Dj-w%QK{8032-k8k<>43>=PhQjCq#oUbsY z&MR=7XciQaS-jOB3KhvxksHHFwk64d4>c#%de>jiHo5-h?VuUDJ}=1GwHjxYxz0|s z6Ayd_`2GQhwR%9CG$G*7So7d0YO=P^JLAAVzUa4nSTChDQ`_|;P*oVEn>ku_4fxtz zA|8!&UVpbmcO4<(qvwj&02_Y{4Ne}dFoc>hYBo_gM{u$H@Q9y z7%E!x2VMZ27tg8Y>uDLksVR_drB$cs6dwjb9k8Ws(~Z z75}>`>2uF^UKV>TN46+>z%=2AYD?Q}rtM~ep4)Z9UV__Sw)KH}{6uufttL|o`=!U0 zCWFb1sS~4;O@#%tlszm!GFViNx}drRo!KjA{pqO~#~+IthH)z8>!ro|Dc6kI-?Aw+ zZfRl|e=}yEHgZLimxf?$N;jTggM1F6YpzL|17Csuq~=Fc;bJLwR!&j`fVXmfIDQ^i zOThlIWHyV&NMnl#Ig*N?!-3dKGl&{${RU~t1w%7TcK;PxD8Yaz=~orWyu)k52|WF< z+yx%DzH^5hnk}sR<16h{MwGcl?4MNWN#DHY`@Q>>ea(d_RgF!O@Vk*h5nDHI_0MeV zErlc-CC_~?WDVhg@D>rptH&S6o=8q4j+=<_S*BRMJi*I+Lll{>jQ-Q(RmVZG^z~Cs zAlqVhZf5?#Yikv>{8Kugqm_M-18^wDvu!4kimd(SrK{uxG73^!@vk#l#XWVE()44U zEEn#+A{@kU(GF<3TM5m?JhzhK9Jl$d!EW`{E_lA|Ae1RmyY}9Xy zTHf@q_9GRVz7wCNOg@-PCJgZBC%4+ySYMaP*$a>x!M)w<4MB!)Cz_xKm6A39Bw_Dh zxkFwck*cO=0uPw7*1NnzWz6xt*-OOd?zVr&%v)g4`g&j2dU`C#C97d(mfI(Kk6pgM z`Z3B|1Q=?b3mz#jV7cKL`&$zQsl6)hw;a@%Wh*V_8e~Z7D7Pd8;%ZArY?$0=ewR75 zmv2ebkhCu-vRy$2uM`L4f1@a)>XP4>8m_I5BI6dYHWnA5$UUUQRF$Y38FxUEHfU@ags^tDaCv-%k7=Hqx|-?4&9_nX(}z< z1{d8#62<{6Mz<62UwJAp_oeU6c`64wawac`oy@_a7Z|H#MfggOJ^ko7p~)Mmw5fLj zOo>A6e!Cfe#Mv0?_r~EIe?&_i$6|lKT(@mErXFaCrB7vyW{JiZDHjsB>fXOU8n~ai zE;_m!F`csBgWsLI**~elf+CsC9q{Z6q9Bc!*{p(&8u%k~Y}WG7>v-~vD)`YgcKRrm ziWNg*fB9nI=NOsVSAo#L>vHbc-~L{jFV$#O37F7iXX?(7BXzNa=WcwO;9Ex^Z&Y^8 z(d>FAegM|Q@STtjDb-|_Yf!yMUhkXY_djFloEu(b^Qp!wG&!QJ{M_(xGx>9>1|+XX zL$@b|E6;QHwiYyfn*7+8xZ#?lul#WzU66Uf9!;~@i5w_}%+*+DsHwJBMo<@vjGNL4nZKE_u%=c$=-oKihz@-( zM!WyM5CrfoKqt_Z3EKt4cYeo2?9P(MMrZ#efc%tNqKdI&!Qu^g`Suk)mIVn8r+NNr zKx7U?aMgF43c`jr#@_#u>-#tyPh3S5M$voz{r~_H@R{nNqwfi&WA*% z!(4S2?`BFmdzhCb`*tJ#c2);~DNXzb+TK&j;u8jT39IKHI9O36ue>H%{F~3)oOXj> zPcbnD&z3)2OBH?rQx%2!^)CQ+S1`HW_ud(enJf`azMnm*ci&-FlR@ZeehwBR9VGw(Jd?aTRNRlw8YFvCsAQJEMqM zvV@0p``<9hI|)YX9=iX=<*F)4RBA4(cwy#Wh$w&YA3r__S~`d^6m&ey)IB^lyV;i{ z1=;BzG#R{zRc+Va6nw(B?frcl?oi!yKcS$}%(d{hNO`x%4^BSyaFCPn+rLxlck2!a z0dweC5OsnU8)Ixck#v7f#!r1SA5a$f@y_MmeDwUa>w{wvzF%B~PborBmddNI;R*N4 zKH8SiU|RTab?29PFQyrN1SuG1Db7#Nb;fO&qR;^Oa%wZRX9Xa%eYheuQM!t&rQ^Y@ zBcH)f>7Rdg^X4KdKQPdv_~lQ5NcJh3E1G{FrF^jR@4}i#bA#t^MZ|X{^P~P<^KO5? ztSMdE9q@S-@wFd{o!~`Dm-rcbqXGVv{oMF_*c(;1?YLb z;i^)C`yDPL}nAt{36((dJuIpQW}+A{D>^R(7QVKnr;v`b*h= zJ^;W^R^-4>uQ$TXqFPr;6fmb+6uWL#%f-Mh|=N7bt4n1zE zy&>GSjq4f5a3`sbclQmqA0}~|7B!Cl*#wb8ga|yd6$7hCyfYe%2nL_xv_WOKjxaHDuiBEDaj}}MBql7IDCY><111&KH`j$oK+U5&mw4!(T;&> z&wuS*`LKw;S>IE2%+_0euzhnSGBc}?;%{732x=#x0xjoK;DPT7^e7QXH$Pi+z67uGNWpd#7>2-{wHHaYIKl&|#Y-0S`A$ zV?#BW*jN%}>Z4&U2+Kc`aOo%To#ej-4`=**Ps+2OrzzFK=;L-Ui`+9qg*3!_>PPA&->kk$ zQ<~v~k;2;qQaEwE2P&?1S>NQ?_pMZkYFTv}%bYZQuFAg-^J~$J?NL~T6kTS?=gsZM z_Vy8bshD6^e1~4|*By{~WqPSr6c%5HbvUU`>o3$i-fxc*!bO5erNaG6hgwX!zlSrU z#JFPK^L^e6x)=H^s1g<}U;8(v>c(ITCd&Z6iD&)%5E&&(B=g5Eq4^M_7#@e{;*{`I zi86<_hW)1m%%4ulFCKMRCoa(&k2P|*|Bh8WwyxMVSwf%2lDd{XOQ%gNLwA8~gryCf8?3k;r5*vR^tzsNb>men;@Tl}i4|4bcb zI&5mq(%JCDW6yi~G<9y_80((z)M$^|+hlmcwvTQcwz_dIgdNi}_Sb(|7M4wcMpIc+&w!tsp=Kxu`6iu@Ae*mJ+3qnekgZe@)0gYXHow`F9kYAt!S2EPeh=7&5t$=v86V=d24tmaxU7h=*KpV zzw*XFOPeKTuSp0H2sN&V^XEv8@5{DoO1e0AnooHuWUkI^$w)I{QrP=*LTSU@n#NTw zB>FbBA%t~P->{>`&)0~n&q?)(+n>N&H&)1w9?{4Ud4ez$=eV;vleF6LKEG=H-G%Bn z{LAp81wE|wvLi4npSWK-@qu@99>D$Y10b=myNUb5Kh)WXzIa7sXZ9!@`o+o&9uiCk z5!zwdO+Ldvlo>2QZzQe6%T>CRvY8XNe3Qy&n_;QF6Tg)jJ5n(YZZhhn;vB9|Y*S}V zek-fJz1kt4r-R`(`F+ev97?igE`6|~maFoy`>mHyiT;w{&e@LB*m+4rX#+$}T`HLj zvd0VB;BIX1kJ)ulA)FI8f6Jym!KFDilq@K1Hv0YZ+!Ze3RWnQ(72)sw`Sd(3HGY%?ZR4CQ=(^r1TZGQANH1}PR_XL#ZNcSuB!c$IRtbG&jgfD#Otkzv5 zRWA+#(SR08ZZI;<@bIiK2bcP+l|kmVLjyR}wHR74GC zr+hn{8i$dJH(`Sr2O%TB zY`4;Ae<}P`yLi@Ef^+#eV-htpp-U2x&6Ytnqg;Sq+T%L80UF*bzjdDk0VzW4ek3LI^T0aHrjOYf> zF6`}0`7?W!z4&BWx8|R={#|t6E$nYQa1N~XL+oPi+*~8t&%6gguTa&!6F|@UZd^=p z%*Q0iop;yex(a`;XRm1EhrQAmyx=VSDa*!rXx_Uz^cQa4p{yie%P6MLHSpjl=7eWV zSZ1j2EWlO-(qoE=E^N&iPmZ7+NInGLKI^g2%;D%M+e5#^FpQ;;Fk!!8G;6!vdpbk+ zi~h<%7`0L1pk?uQp%&>>&=B5_Q1TR);`kAPUry5N8+K4Xhm{^Gq57Y;oD+d&fdPYA zR6~5T>`v+@hkP_IOP7+|DSHnncruDKBk%iy?T(|E8FvSq-p@ZPa-lqcQ_r@iyCn=h zJ(`=I-Qc~vOJ?(t(1lk`)5j&?3aK;7rWiFp<+FtO{JA(m+sTJ}$Yd2CzdNUB4BG23 zP|IX_e=E-_sx|#9&x0`-YcioRW>A5e%}JpT4^lYk|QB0$Wc z)Po&M_7`hetudj$2{3#`YrXFv&tZ{gIf8#UE0+69|vRoyK@xp zNh36PXaptS6Nit#gR^~3d>7U?1OKf=a^N3 z0x=~HI47+e&UPom{O+_lx1_4N6WkXS9PbxRYLyvE-v6TZq{U4n*?^~wyUe;z?gWP~ zY@fHkHehUi_w>14q9CyJHlck6p}SfG6}4ZszN3M5VeNeK&T{f&cZ5Bry1Sd2I@^g8 z^GeCDH?|SFoPeUrsa3!q{#tGE8E5O)8%%Fb9X~!LOX5U~O{+Vz7_xE>nK*E;K1#2orvL zRRRs>Hdq(^TE`&0XdAQ3!hNlhUNo2%-_XIcciPXHi_7hHQ5lN&sx*< zv*bH@boBkWfk{Gh#CR4115_0i_HmU(wv!VR1lvko(kNLU)0b@KY zNRftF2A9Djrm3tar{t~>uK+Aw4}!S+AAZvDX%Zydx-KuPtK$Q^Z=AoLrZ`s!MQ|AO zIc%ZI*)r^U4ZhU)xcaN0m{vvoiux{{7qJ0@x=DQT_{Aa^*rt{H2)^X4PT*V4BLm%Z zASv+U+j%6?Fjw^99xDGF?z-1ft)sumAx*D?wC!)q%EAQ2u6}5a9(Q7u!gNttys|6A z3Z0wP^w$7y%4wxUYWLb){WS7&8>)T?=7Op2vYK2N*3oT$_F*Bds`^!y`D&v6rQ;Jb z_U)GOSJzSMn72oPS64`1rs4M=h1XB^0zaFie(q4&51~N;)_Nhl9tf_PxIcmdEm8*Y zksQCUNG+v)W#L1O)h8WNntT`O_0m8mk8&SWQ}W(li}Z0k_|_kSGgpGTaNp#V zQ!GciOw;ZI!m=ykql45XCq?M+A>)SXr2fyL*I;13g76x2 zHJ|~KHddwiytH^5M3-l17gNE9vN~8ZLS!mB@bM)1JOTD@kHv8(gIQQg)@OyUeA+-2q|W|Ki*cvLr0EFhT5Zi;K zclzcc_oo4a8Pe{u%Lzw_z}#@msm*m9J*ZSY@%%Z*(m}*O3gg{Np&V?eoO=dU(ikT= z>U~}*bIxkhU;53WnQ+cP;r7LQ4@z_L;;4<3R}|3CNe?C)Pf>6S8hQ96?~Sy1wojDx z{yc8&loGHzXK!m-eEF?rgH2nQO_M}|R*;D;{ni?5z)0gxS>fEP|9CD3!e#C( ztIa3^<-0q93Z%wJ;l;rouc~L4;k-NfYNCr{q;Hek)2vr>(=LqF0>5qHT7RlUq-4WK zY^4XfY5bH#T>aCzI?VGt$Rfd9mP%NSZoLp1b@n_Idrn{Cas9A*<=8sf=0uC!DgD0s z^9rk^FWgxaCkK6}pOD59(CVFxV68WW-TxuI$Kt^amRLg3^2T;8gUk z$wX}j0a2L>Cl%3Gmg*JCdrl#J>U83ji#OR#ZCEwqQi1?gnR)NW@h!f{#G0Dm!ALyb-Cd~kz9-=| zV({}e&gY-3*`mMw0q*JW013ly%KUlnhz*=G_sIH6$$~UbxU zmH%4j1yN?00$q|h4Tb2rrjCt5+O!EC1k!*x{KdpW!53=u4CCgSEWhd=VBu}$RIo}4&wMD zPb`)`j{k%yK=()a9GEWBJyAmlto*bo{Yzsuv@rgSB0rLw4{vh_%lHG6C?9Q;Qwk$!N7PA|tn&A5Oo+`RQc8J&!Z&zDX6d%}|7Wu#nXu3My$;pBn(_ zlJCF07;*73Fs{-J2F0{_A%hqzm zrInG3+A)r4Yd-w1#K=&9cur_l$*Z||(dgGxAZP-Gt|lqQ+rP*nZ)kOBPw1K*l9c&p|igd(k=37vqah2Y6T()A^S-n;gUSBMDWhjG|@-6sCXb7 z(b&xu-m9WMiW@yC`4lLfgk)=i7P3qB^Tu1K%{-3_Jok4ObVg%Gu6TYph``ZrSzk}Q zu4_?sg7BFW(^~AY6(MSYWp=3+!&7w)X0FoGf}jTKJLZ0F@4Fw(kJuOJ;|Nh3;#YS+ zHOgWq21_+_Ozf#c@?Y?x0Nk@GrCtqnTrOmN59(b&93#7t$i)b??rYnNz1 zxZmR)K-#-L`?c72rG)i@4WH9b8PF$tuzCZ2@jgh|UVx<~G{Rk9el&PyhZI=C=FD5t z`Wi7v!I?tRZJ$zRG8;M(Y1N7U(qnD#&KgnkfYFj+Zkr7G7F(F#p)_NHKF;*rr0{^z z-Gv$EW&zO`ag5%bCGxIBip^pxdV-5Di}a|Yv}`yQ^z)?@P*;zxUp zc%_e8l#jCme?uRXT1lK@Scw;&kicAAB5Q4f6B}%u=m2Rut=tY=xUdS~*S23ywBQ{u zA@4=~l83Xc4%tTcQx*g_4Mbb5B~26nFM{nSRk}-lMfG;M_@aIOgvvHzM$ z9+7(gR;7W*OAI#Yb2nVe?;Bz)+@GI!ge}}>o_9MP?YOH=HP=F?W%IRqG2qH=>iK+#_H=cac?-NRN&xd48ktbhd zqP~ZcmK_YmduI-~zE+c2&&Cq2ZBzxhl6=!kavpr-?Bh}~1Eq&WGP*k#^)%T`6tYP4 zp7s2C@YKU*&^?Glz#Y_ci$c3G<;(S6z_;~`M)f9+9@QZ#mP^VCgJg!96Z9V-w`74n zC>*Rj0QR-!Xfrh#$Uq55A!9=Eh@N_uE?3LmRz3ykwe1bfnGz!om;k+K9Y}03Y)KgG zc$P&IStockD>K-zYr5at}OlOIktk)FisQ5{2 zLl-T__5+HPPa?k{L!KG>DML4YBvFY0lxl)fADcNk`l)I1(qmAK?K}f z#7S&huIy`@330n3IYU)1%2pfS6N?Rk>&gYj@w)wiX!3EfvN3e>*PFwYEMUXB&}Pd7Xf_>J0Xk~!=;FYw77&t| zcUE)tyjwu(&dB#mIxBu zW87rTGVk+Qc%N5bvj0}&%C;9c>DMp}e)c;S;r5|#k6&;r^xT^SaUY(d9rTzXLzG5K zWG85JDZ%}iWcux)@3jR#_gF|{ zET{h9`w8ES6La3g(Wz2p&Z_EhVBZ&tA9pF-rl+-^#Fpv)FonPJop<`>S!r~uoAt(M zE@I16bjkkbyPT#WkVFPV-!zHrdmJ^Ym=I^|PrV4T}9miqlRg`2k zG4dl&|Cw@Hte4$ZrhT8IR7&OJ?wU@t=!M2U%ELmd3ge~g=eMt~PAlg zG}Q+niI0kK8ckE!;r*|gcsS8ya|-p6%;^&qp;G2ROP+hQ&}YOO(ELxUx#pfsljL1i zId>0|e?jE`y60Fw+jJp%C%~96&zx1bA+<5z!^da66Mo4jAT@pA1N&)DQ91B=%skIo z%Z=j4o~dq%QIM)~@foqD78h6V`Nvcz)j2B(;f=*=A$?mU&%KS+`iaw8_$x(1cwUTu>`sl-NsrDU$^NZgj|2^k#0$e_MYw7*wL2(W5y zzZy&@JE{z?8z2ghGnENw41Zx2uF>0CE)!GEq{TJi{HvjJ-uZOw((B~`4|6kN0ZwAM zBq-cC$M3O#@1w#qMrCL!9ZL4Xk-5Yl*IIY^mRD{xUt$Q9_8lWqiP6xtghRITPzMFKid0iGLqdm(tN75g9KyVvpU1m{ zk+7X#0}CI(^U)LRJeco?eUe91j^9#;sI}KBgL_g@aBChdnRN9*l1i#xeY1t16GHF7G!oo6!}U3VpJDHJF)Ll1jy9`~zuIzHF1nR{(~yDTPq% z(xAb7roTC$+}&z~=%E&*6z#`Iuuy|BC#`qL({FN) z3)`?x>px^nz3}YpP*t{goD(MJH1U(xNma*c)E)5*dC%OxC3YQ*oW@cac-l7z-4QYm zHVsN+(xpLu#}TTv-8!hPdo_*8!g$3sLLUc5BimPWu9L9KfI_GRV%Bf6LxnQs(ILlo zryXm`gko+Vi<95NN{5`l0#M<27gBL@dDXxJ>8nx!_20%h_P+NLNDpWb{<+`xJ3mkB z>ri{GIRp4@(q^7*^J3m659$cqHxxg;44OeK&o^1aXMukGgdUMH%bA9`R2tpZe6I1Hyh=@+f{`|yKLpr^9q|J zXWK#s#=szxf-X$%;N^qTZ-x|ZVk{{)+VKkh3Rk3z3!ZQ9QK`?_R&Q_DTulCnD@L=4~&y;lzXtf7Y0G3rOdA$tuybzL;^d&koP9U`yTD07$r!ps$3yO>hQNHH6^!j^JwSe zSj3_1f`k`c2_IgC8R+oSA}`)pk2WVC9dm$qS`b>!R8(jFQOTp-Y2p`5wMpqA4(_f* zPNnlBLrBNK0MJRoB>rS5Y>XOG#@M52nQL;c^WKZ~}@ zYh@L3BV9muD?NIVG+8ARtLW1A3X=_5Fol0dN|l{p>IBWF?akb*G2>y8R?1ZgKN)pS zY3T|P-!Z`Gt4*>q|xcm7#$<`%oNAPnt`J06X%i2pE4s;;ivZKhj^bL22Uv>o)TwPEa)2 z%P<6LL<^s_1#&X(kcT$v4Ue&UB$MTv$&UQI)%Gg$-fRc*9R}g$p^hVdd;aB+78TS} zM&&(kV{^3!9O2tBNjs3dCy4-bY3mm-gB!cu_@-yAIq5EvCOGOu7BmYOoZs5@uAQr? zZed;)Cs~LbyXmRdwdNHzgjnDR{m!S~&VT#<@v&v+_(kyXJipui1x{jbBq+3(TmFV; zctHIrjaRu|lGYz}2oW}dZ_G{~hGpMsteh0ogup4jC?qqs&$uGdpJSVelTwwMHnp!h ze{^Q@faGo7_(>DXR*bYzW@?hl5q1G&JAB?ewoY&m3b9vLPdb;MHiZ(8xm4qO%L+}w zg%FjAL2a$n5JYKtu@fB(@5M7!1X_BW@t$yxOQDXc9kH#ahGx8X_MvR$3h1qSb8jsLx zDRyR}WkmB0LyNUNCdPP;XFi`YY)Z-_Oo*7TH{}tP6xknLoxkpP&-vYR?m74TzTbJ= zbN@O)?8Uu87|R5%9Z|&b7_q}fT*&RaHEoVNqYF0G-rN zX~;hVysjB*pBfccB7xY^{#h58c7c^fV`ss0?%@olLu{VMCjW5i`gsw?yI7<#X;qS+ zrZ;giFdW5lwjS&%Z#+tiIy$jW%TUQ(N=yj8$Nr=gU#Kp;QggM?@mj3Ki+3XxCFSYU z!Tq!$s|mpNZMCD-T=TfmpU(a7ck_z14!y^4vr1E$bSRobXsdbfK{;0wKi}a-kGy}DT{rG3&q^E>e5d*Wj9+MURN4l@kHCF?C1ENzB@G=-gGSG^3|5? z)fxJzx>KF;3BhU8xPBI`78B|A2IMOWHc^6V_p~&$XCI5rGyXJ4nLXVd&$gL5@p*5f zOH~Dk&(cXz53#P1FRAMw<0|9gN5CgR#?-(;(ap3x+ZEP5z;W`l@Qj>2#hML&sc@Pc z4a<8|bbhN7&{Zus1LKdJ>x;HtdL)v8ieX?6fBvbbp3Y$K;h#8kf}?mYNRyJC>tNVs zGj9k^Gc?D_f}Gt6AZH%MT0{G5;c$nf(wrlTN?N#IF9}U&CkH%yErYYNIQhYO2d-aibJcOPD9W$N1 zDP@zCi8%Yx(3ufJt%@9^6!jIByBtJ%J-6!Bw zesP@(w`uz*TmhIykfiiO3uT#Ly2T2t0e`OOg%1ypR%cBtLRwF9C3-_2;HAhk1%}U8 zd`N`6@6;v03(mQ)QFFQ}?9)xT5(nV9l~?h2r3n$nYMoVJGInfA&trlj_z}8#TUmib z4BXHiZc>6$)Op1GgJeCsa8Y*aydQa_lo+tB)nOI=>s~ghNLQp;uCK9W@~h+`5P{110tl-r*sN(T8UKcspf9#eC#L|!dc>+gbRf`MtSN%Q?LdO< zX$7d8dBj^GQlyWX?O;}o3mI+@;%WowjwhGIR7>&XS}F%h9rBU8v=df!Gr(71+(X(X zHKiL((lfUzsAZnA4MO#hpNU89hb}fP`cKrPYCR!VOReKPA@(Lf@s2yfVpN>pDuI;umDyJ%FRQ``2CM-$>46f*i!6 z($^e>e`(KPp@dkCLX|s3o8@bfQY{rm=7Vh63gCN@Ud?5Qp?ZhQcrsJG%R_)yKY9FU z$xYk4upaT?RNDNwML**Gbwf$6k()}mS@Xbq<)931IU^SUYuch>(UScvwDifI?E@*t zuEK1eZQ&7rtMIXl>f9dS_B>V0p!R=hH){ehl*j-knE`*kRRt*qCw1-~%5#Qq+OOde zpB2gNqP)$JbPKZp8p&IRH`Pb+eLKKsN{fZb6c2zVo06MidV6o+u_eXm+ZiSyb9G~{ zMJ6ys^lpS7cVuLy%W*m^m(i@|q{%Z2DHXuxRKL=ouxCdXkH?C(PcoiS)V6* z)bJxxX&MMqD7I)6a(8WMWS?OAQo6@gqrH;O)OZx%J973;PG2Z?b(5&)DKPAzy>UAa zpZM67B>DUN=$8yW*Uz57=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/docs/html/doxygen.png b/docs/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 zcmV;!4m|ORP)tMIv#Q0*~7*`IBSO7_x;@a8#Zk6_PeKR_s92J&)(m+);m9Iz3blw)z#Gi zP!9lj4$%+*>Hz@HCmM9L9|8c+0u=!H$O3?R0Kgx|#WP<6fKfC8fM-CQZT|_r@`>VO zX^Hgb|9cJqpdJA5$MCEK`F_2@2Y@s>^+;pF`~jdI0Pvr|vl4`=C)EH@1IFe7pdJ8F zH(qGi004~QnF)Ggga~8v08kGAs2hKTATxr7pwfNk|4#_AaT>w8P6TV+R2kbS$v==} zAjf`s0g#V8lB+b3)5oEI*q+{Yt$MZDruD2^;$+(_%Qn+%v0X-bJO=;@kiJ^ygLBnC z?1OVv_%aex1M@jKU|Z~$eI?PoF4Vj>fDzyo zAiLfpXY*a^Sj-S5D0S3@#V$sRW)g)_1e#$%8xdM>Jm7?!h zu0P2X=xoN>^!4DoPRgph2(2va07yfpXF+WH7EOg1GY%Zn z7~1A<(z7Q$ktEXhW_?GMpHp9l_UL18F3KOsxu81pqoBiNbFSGsof-W z6~eloMoz=4?OOnl2J268x5rOY`dCk0us(uS#Ud4yqOr@?=Q57a}tit|BhY>}~frH1sP`ScHS_d)oqH^lYy zZ%VP`#10MlE~P?cE(%(#(AUSv_T{+;t@$U}El}(1ig`vZo`Rm;+5&(AYzJ^Ae=h2X z@Re%vHwZU>|f0NI&%$*4eJweC5OROQrpPMA@*w|o z()A==l}(@bv^&>H1Ob3C=<^|hob?0+xJ?QQ3-ueQC}zy&JQNib!OqSO@-=>XzxlSF zAZ^U*1l6EEmg3r};_HY>&Jo_{dOPEFTWPmt=U&F#+0(O59^UIlHbNX+eF8UzyDR*T z(=5X$VF3!gm@RooS-&iiUYGG^`hMR(07zr_xP`d!^BH?uD>Phl8Rdifx3Af^Zr`Ku ztL+~HkVeL#bJ)7;`=>;{KNRvjmc}1}c58Sr#Treq=4{xo!ATy|c>iRSp4`dzMMVd@ zL8?uwXDY}Wqgh4mH`|$BTXpUIu6A1-cSq%hJw;@^Zr8TP=GMh*p(m(tN7@!^D~sl$ zz^tf4II4|};+irE$Fnm4NTc5%p{PRA`%}Zk`CE5?#h3|xcyQsS#iONZ z6H(@^i9td!$z~bZiJLTax$o>r(p}3o@< zyD7%(>ZYvy=6$U3e!F{Z`uSaYy`xQyl?b{}eg|G3&fz*`QH@mDUn)1%#5u`0m$%D} z?;tZ0u(mWeMV0QtzjgN!lT*pNRj;6510Wwx?Yi_=tYw|J#7@(Xe7ifDzXuK;JB;QO z#bg~K$cgm$@{QiL_3yr}y&~wuv=P=#O&Tj=Sr)aCUlYmZMcw?)T?c%0rUe1cS+o!qs_ zQ6Gp)-{)V!;=q}llyK3|^WeLKyjf%y;xHku;9(vM!j|~<7w1c*Mk-;P{T&yG) z@C-8E?QPynNQ<8f01D`2qexcVEIOU?y}MG)TAE6&VT5`rK8s(4PE;uQ92LTXUQ<>^ ztyQ@=@kRdh@ebUG^Z6NWWIL;_IGJ2ST>$t!$m$qvtj0Qmw8moN6GUV^!QKNK zHBXCtUH8)RY9++gH_TUV4^=-j$t}dD3qsN7GclJ^Zc&(j6&a_!$jCf}%c5ey`pm~1)@{yI3 zTdWyB+*X{JFw#z;PwRr5evb2!ueWF;v`B0HoUu4-(~aL=z;OXUUEtG`_$)Oxw6FKg zEzY`CyKaSBK3xt#8gA|r_|Kehn_HYVBMpEwbn9-fI*!u*eTA1ef8Mkl1=!jV4oYwWYM}i`A>_F4nhmlCIC6WLa zY%;4&@AlnaG11ejl61Jev21|r*m+?Kru3;1tFDl}#!OzUp6c>go4{C|^erwpG*&h6bspUPJag}oOkN2912Y3I?(eRc@U9>z#HPBHC?nps7H5!zP``90!Q1n80jo+B3TWXp!8Pe zwuKuLLI6l3Gv@+QH*Y}2wPLPQ1^EZhT#+Ed8q8Wo z1pTmIBxv14-{l&QVKxAyQF#8Q@NeJwWdKk>?cpiJLkJr+aZ!Me+Cfp!?FWSRf^j2k z73BRR{WSKaMkJ>1Nbx5dan5hg^_}O{Tj6u%iV%#QGz0Q@j{R^Ik)Z*+(YvY2ziBG)?AmJa|JV%4UT$k`hcOg5r9R?5>?o~JzK zJCrj&{i#hG>N7!B4kNX(%igb%kDj0fOQThC-8mtfap82PNRXr1D>lbgg)dYTQ(kbx z`Ee5kXG~Bh+BHQBf|kJEy6(ga%WfhvdQNDuOfQoe377l#ht&DrMGeIsI5C<&ai zWG$|hop2@@q5YDa)_-A?B02W;#fH!%k`daQLEItaJJ8Yf1L%8x;kg?)k)00P-lH+w z)5$QNV6r2$YtnV(4o=0^3{kmaXn*Dm0F*fU(@o)yVVjk|ln8ea6BMy%vZAhW9|wvA z8RoDkVoMEz1d>|5(k0Nw>22ZT){V<3$^C-cN+|~hKt2)){+l-?3m@-$c?-dlzQ)q- zZ)j%n^gerV{|+t}9m1_&&Ly!9$rtG4XX|WQ8`xYzGC~U@nYh~g(z9)bdAl#xH)xd5a=@|qql z|FzEil{P5(@gy!4ek05i$>`E^G~{;pnf6ftpLh$h#W?^#4UkPfa;;?bsIe&kz!+40 zI|6`F2n020)-r`pFaZ38F!S-lJM-o&inOw|66=GMeP@xQU5ghQH{~5Uh~TMTd;I9` z>YhVB`e^EVj*S7JF39ZgNf}A-0DwOcTT63ydN$I3b?yBQtUI*_fae~kPvzoD$zjX3 zoqBe#>12im4WzZ=f^4+u=!lA|#r%1`WB0-6*3BL#at`47#ebPpR|D1b)3BjT34nYY z%Ds%d?5$|{LgOIaRO{{oC&RK`O91$fqwM0(C_TALcozu*fWHb%%q&p-q{_8*2Zsi^ zh1ZCnr^UYa;4vQEtHk{~zi>wwMC5o{S=$P0X681y`SXwFH?Ewn{x-MOZynmc)JT5v zuHLwh;tLfxRrr%|k370}GofLl7thg>ACWWY&msqaVu&ry+`7+Ss>NL^%T1|z{IGMA zW-SKl=V-^{(f!Kf^#3(|T2W47d(%JVCI4JgRrT1pNz>+ietmFToNv^`gzC@&O-)+i zPQ~RwK8%C_vf%;%e>NyTp~dM5;!C|N0Q^6|CEb7Bw=Vz~$1#FA;Z*?mKSC)Hl-20s t8QyHj(g6VK0RYbl8UjE)0O0w=e*@m04r>stuEhWV002ovPDHLkV1hl;dM*F} literal 0 HcmV?d00001 diff --git a/docs/html/doxygen_style.css b/docs/html/doxygen_style.css new file mode 100644 index 0000000..84b29ec --- /dev/null +++ b/docs/html/doxygen_style.css @@ -0,0 +1,1583 @@ +/* The standard CSS for doxygen 1.8.11 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #A8A8A8; + color: #000; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 250% sans-serif, Tahoma, Ariel; + margin: 0px; + padding: 2px 0px 2px 25px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + color: grey; + margin: 0 0 0 26px; + padding: 0; + + height: 0px; +} + +#projectnumber +{ + font: 40% sans-serif, Tahoma, Ariel; + color: #606060; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + + +/* ****************************************************/ + +/* + +#navrow1 +{ + display: none; +} + +*/ + +/* cypress logo */ +img[src="cypress_logo.png"]{ + height:75px; + /*float: right;*/ +} + +/* \section format */ +h1 +{ + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: bold; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +/* \subsection format */ +h2 +{ + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.0em; + padding-top: 4px; + width: 100%; +} + +/* \ssububsection format */ +h3 +{ + color: #354C7B; + font-size: 100%; + font-weight: bold; + margin-top: 1.0em; + padding-top: 4px; + width: 100%; +} + +/* \snippet_begin */ +pre.snippet_code +{ + font: 100% Consolas, Courier New; + border: 1px solid black; + border-radius: 0.5em; + -webkit-border-radius: 0.5em; + -moz-border-radius: 0.5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + padding: 8px; + margin: 0px 0px 0px -12px; +} + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +/* left-align the screenshots in the user guide generated from MD */ +.image { + text-align: left; +} diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js new file mode 100644 index 0000000..c1ce122 --- /dev/null +++ b/docs/html/dynsections.js @@ -0,0 +1,120 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + 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 2 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (la9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/docs/html/group__group__board__libs.html b/docs/html/group__group__board__libs.html new file mode 100644 index 0000000..c34cf4b --- /dev/null +++ b/docs/html/group__group__board__libs.html @@ -0,0 +1,227 @@ + + + + + + + + +Retarget IO (retarget-io) + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Retarget IO (retarget-io)
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Retarget IO
+
+
+

General Description

+ + + + + + +

+Macros

#define CY_RETARGET_IO_BAUDRATE   (115200)
 
#define CY_RETARGET_IO_CONVERT_LF_TO_CRLF
 
+ + + + + + + +

+Functions

cy_rslt_t cy_retarget_io_init (cyhal_gpio_t tx, cyhal_gpio_t rx, uint32_t baudrate)
 Initialization function for redirecting low level IO commands to allow sending messages over a UART interface. This will setup the communication interface to allow using printf and related functions. More...
 
+void cy_retarget_io_deinit (void)
 Releases the UART interface allowing it to be used for other purposes. After calling this, printf and related functions will no longer work.
 
+ + + +

+Variables

cyhal_uart_t cy_retarget_io_uart_obj
 
+

Macro Definition Documentation

+ +

◆ CY_RETARGET_IO_BAUDRATE

+ +
+
+ + + + +
#define CY_RETARGET_IO_BAUDRATE   (115200)
+
+

UART baud rate

+ +
+
+ +

◆ CY_RETARGET_IO_CONVERT_LF_TO_CRLF

+ +
+
+ + + + +
#define CY_RETARGET_IO_CONVERT_LF_TO_CRLF
+
+

Defining this macro enables conversion of line feed (LF) into carriage return followed by line feed (CR & LF) on the output direction (STDOUT). You can define this macro through the DEFINES variable in the application Makefile.

+ +
+
+

Function Documentation

+ +

◆ cy_retarget_io_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
cy_rslt_t cy_retarget_io_init (cyhal_gpio_t tx,
cyhal_gpio_t rx,
uint32_t baudrate 
)
+
+ +

Initialization function for redirecting low level IO commands to allow sending messages over a UART interface. This will setup the communication interface to allow using printf and related functions.

+
Parameters
+ + + + +
txUART TX pin
rxUART RX pin
baudrateUART baudrate
+
+
+
Returns
CY_RSLT_SUCCESS if successfully initialized, else an error about what went wrong
+ +
+
+

Variable Documentation

+ +

◆ cy_retarget_io_uart_obj

+ +
+
+ + + + +
cyhal_uart_t cy_retarget_io_uart_obj
+
+

UART HAL object used by this library

+ +
+
+
+
+ + + diff --git a/docs/html/index.html b/docs/html/index.html new file mode 100644 index 0000000..0e5e7a5 --- /dev/null +++ b/docs/html/index.html @@ -0,0 +1,127 @@ + + + + + + + + +Retarget IO (retarget-io) + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Retarget IO (retarget-io)
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Retarget IO
+
+
+

Overview

+

A utility library to retarget the standard input/output (STDIO) messages to a UART port. With this library, you can directly print messages on a UART terminal using printf(). You can specify the TX pin, RX pin, and the baud rate through the cy_retarget_io_init() function. The UART HAL object is externally accessible so that you can use it with other UART HAL functions.

+

NOTE: If the application is built using newlib-nano, by default, floating point format strings (f) are not supported. To enable this support, you must add -u _printf_float to the linker command line.

+

Quick Start

+
    +
  1. Add #include cy_retarget_io.h
  2. +
  3. Call cy_retarget_io_init(CYBSP_DEBUG_UART_TX, CYBSP_DEBUG_UART_RX, CY_RETARGET_IO_BAUDRATE);

    +

    CYBSP_DEBUG_UART_TX and CYBSP_DEBUG_UART_RX pins are defined in the BSP and CY_RETARGET_IO_BAUDRATE is set to 115200. You can use a different baud rate if you prefer.

    +
  4. +
  5. Start printing using printf()
  6. +
+

Enabling Conversion of '\n' into "\r\n"

+

If you want to use only '\n' instead of "\r\n" for printing a new line using printf(), define the macro CY_RETARGET_IO_CONVERT_LF_TO_CRLF using the DEFINES variable in the application Makefile. The library will then append '\r' before '\n' character on the output direction (STDOUT). No conversion occurs if "\r\n" is already present.

+

More information

+ +
+
+ + + diff --git a/docs/html/jquery.js b/docs/html/jquery.js new file mode 100644 index 0000000..2771c74 --- /dev/null +++ b/docs/html/jquery.js @@ -0,0 +1,115 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('