From c2d0c691eabce024516a47ca59d14e790bff1828 Mon Sep 17 00:00:00 2001 From: Chromicle Date: Sun, 19 May 2019 10:14:27 +0530 Subject: [PATCH] Main Project --- .gitignore | 101 +++ CONTRIBUTING.md | 36 + LICENSE | 652 ++++++++++++++++++ README.md | 47 ++ app/.gitignore | 1 + app/build.gradle | 29 + app/proguard-rules.pro | 17 + app/src/main/AndroidManifest.xml | 46 ++ .../example/android/miwok/ColorsActivity.java | 55 ++ .../example/android/miwok/FamilyActivity.java | 78 +++ .../example/android/miwok/MainActivity.java | 98 +++ .../android/miwok/NumbersActivity.java | 57 ++ .../android/miwok/PhrasesActivity.java | 57 ++ .../java/com/example/android/miwok/Word.java | 56 ++ .../example/android/miwok/WordAdapter.java | 71 ++ app/src/main/res/layout/activity_main.xml | 48 ++ app/src/main/res/layout/list_item.xml | 39 ++ app/src/main/res/layout/word_list.xml | 25 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 7728 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3947 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 10923 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 21191 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 30290 bytes app/src/main/res/values-w820dp/dimens.xml | 20 + app/src/main/res/values/colors.xml | 37 + app/src/main/res/values/dimens.xml | 21 + app/src/main/res/values/strings.xml | 30 + app/src/main/res/values/styles.xml | 33 + build.gradle | 23 + gradle.properties | 18 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53636 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 160 +++++ gradlew.bat | 90 +++ settings.gradle | 1 + 35 files changed, 1952 insertions(+) create mode 100644 .gitignore create mode 100644 CONTRIBUTING.md create mode 100755 LICENSE create mode 100755 README.md create mode 100644 app/.gitignore create mode 100755 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/com/example/android/miwok/ColorsActivity.java create mode 100644 app/src/main/java/com/example/android/miwok/FamilyActivity.java create mode 100644 app/src/main/java/com/example/android/miwok/MainActivity.java create mode 100644 app/src/main/java/com/example/android/miwok/NumbersActivity.java create mode 100644 app/src/main/java/com/example/android/miwok/PhrasesActivity.java create mode 100644 app/src/main/java/com/example/android/miwok/Word.java create mode 100644 app/src/main/java/com/example/android/miwok/WordAdapter.java create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/list_item.xml create mode 100644 app/src/main/res/layout/word_list.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/values-w820dp/dimens.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/dimens.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/styles.xml create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0982987 --- /dev/null +++ b/.gitignore @@ -0,0 +1,101 @@ +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion + +*.iml + +## Directory-based project format: +.idea/ +# if you remove the above rule, at least ignore the following: + +# User-specific stuff: +# .idea/workspace.xml +# .idea/tasks.xml +# .idea/dictionaries + +# Sensitive or high-churn files: +# .idea/dataSources.ids +# .idea/dataSources.xml +# .idea/sqlDataSources.xml +# .idea/dynamic.xml +# .idea/uiDesigner.xml + +# Gradle: +# .idea/gradle.xml +# .idea/libraries + +# Mongo Explorer plugin: +# .idea/mongoSettings.xml + +## File-based project format: +*.ipr +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties + + +### OSX template +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + +### Android template +# Built application files +*.apk +*.ap_ + +# Files for the Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ + +# Gradle files +.gradle/ +build/ +/*/build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3e0558e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,36 @@ +# How to become a contributor and submit your own code + +## Contributor License Agreements + +We'd love to accept your sample apps and patches! Before we can take them, we +have to jump a couple of legal hurdles. + +Please fill out either the individual or corporate Contributor License Agreement +(CLA). + + * If you are an individual writing original source code and you're sure you + own the intellectual property, then you'll need to sign an [individual CLA] + (https://developers.google.com/open-source/cla/individual). + * If you work for a company that wants to allow you to contribute your work, + then you'll need to sign a [corporate CLA] + (https://developers.google.com/open-source/cla/corporate). + +Follow either of the two links above to access the appropriate CLA and +instructions for how to sign and return it. Once we receive it, we'll be able to +accept your pull requests. + +## Contributing A Patch + +1. Submit an issue describing your proposed change to the repo in question. +1. The repo owner will respond to your issue promptly. +1. If your proposed change is accepted, and you haven't already done so, sign a + Contributor License Agreement (see details above). +1. Fork the desired repo, develop and test your code changes. +1. Ensure that your code adheres to the existing style in the sample to which + you are contributing. Refer to the + [Google Cloud Platform Samples Style Guide] + (https://github.com/GoogleCloudPlatform/Template/wiki/style.html) for the + recommended coding standards for this organization. +1. Ensure that your code has an appropriate set of unit tests which all pass. +1. Submit a pull request. + diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..1e73a32 --- /dev/null +++ b/LICENSE @@ -0,0 +1,652 @@ +All image and audio files (including *.png, *.jpg, *.svg, *.mp3, *.wav +and *.ogg) are licensed under the CC-BY-NC license. All other files are +licensed under the Apache 2 license. + +======================================================================= + +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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016 The Android Open Source Project + + 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. + +All image and audio files (including *.png, *.jpg, *.svg, *.mp3, *.wav +and *.ogg) are licensed under the CC-BY-NC license. All other files are +licensed under the Apache 2 license. + +CC-BY-NC License +---------------- + +Attribution-NonCommercial-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International +Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-NonCommercial-ShareAlike 4.0 International Public License +("Public License"). To the extent this Public License may be +interpreted as a contract, You are granted the Licensed Rights in +consideration of Your acceptance of these terms and conditions, and the +Licensor grants You such rights in consideration of benefits the +Licensor receives from making the Licensed Material available under +these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-NC-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution, NonCommercial, and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. NonCommercial means not primarily intended for or directed towards + commercial advantage or monetary compensation. For purposes of + this Public License, the exchange of the Licensed Material for + other material subject to Copyright and Similar Rights by digital + file-sharing or similar means is NonCommercial provided there is + no payment of monetary compensation in connection with the + exchange. + + l. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + m. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + n. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part, for NonCommercial purposes only; and + + b. produce, reproduce, and Share Adapted Material for + NonCommercial purposes only. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties, including when + the Licensed Material is used other than for NonCommercial + purposes. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-NC-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database for NonCommercial purposes + only; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + including for purposes of Section 3(b); and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + +======================================================================= + +Creative Commons is not a party to its public licenses. +Notwithstanding, Creative Commons may elect to apply one of its public +licenses to material it publishes and in those instances will be +considered the "Licensor." Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the public +licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100755 index 0000000..b9e5788 --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +Miwok App +=================================== + +This app displays lists of vocabulary words for the user to learn the Miwok language. +Used in a Udacity course in the Beginning Android Nanodegree. + +Pre-requisites +-------------- + +- Android SDK v23 +- Android Build Tools v23.0.2 +- Android Support Repository v23.3.0 + +Getting Started +--------------- + +This sample uses the Gradle build system. To build this project, use the +"gradlew build" command or use "Import Project" in Android Studio. + +Support +------- + +- Google+ Community: https://plus.google.com/communities/105153134372062985968 +- Stack Overflow: http://stackoverflow.com/questions/tagged/android + +Patches are encouraged, and may be submitted by forking this project and +submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details. + +License +------- + +Copyright 2016 The Android Open Source Project, Inc. + +Licensed to the Apache Software Foundation (ASF) under one or more contributor +license agreements. See the NOTICE file distributed with this work for +additional information regarding copyright ownership. The ASF licenses this +file to you 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. diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100755 index 0000000..20d4e22 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,29 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 23 + buildToolsVersion '27.0.3' + + defaultConfig { + applicationId "com.example.android.miwok" + minSdkVersion 15 + targetSdkVersion 23 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + testCompile 'junit:junit:4.12' + compile 'com.android.support:appcompat-v7:23.3.0' + compile 'com.android.support:support-v4:23.3.0' + compile 'com.android.support:design:23.3.0' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..94b2b12 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /Users/katherinekuan/Library/Android/sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..f534d18 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/java/com/example/android/miwok/ColorsActivity.java b/app/src/main/java/com/example/android/miwok/ColorsActivity.java new file mode 100644 index 0000000..ac91ba6 --- /dev/null +++ b/app/src/main/java/com/example/android/miwok/ColorsActivity.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * 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. + */ +package com.example.android.miwok; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.widget.ListView; + +import java.util.ArrayList; + +public class ColorsActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.word_list); + + // Create a list of words + ArrayList words = new ArrayList(); + words.add(new Word("red", "weṭeṭṭi")); + words.add(new Word("mustard yellow", "chiwiiṭә")); + words.add(new Word("dusty yellow", "ṭopiisә")); + words.add(new Word("green", "chokokki")); + words.add(new Word("brown", "ṭakaakki")); + words.add(new Word("gray", "ṭopoppi")); + words.add(new Word("black", "kululli")); + words.add(new Word("white", "kelelli")); + + // Create an {@link WordAdapter}, whose data source is a list of {@link Word}s. The + // adapter knows how to create list items for each item in the list. + WordAdapter adapter = new WordAdapter(this, words); + + // Find the {@link ListView} object in the view hierarchy of the {@link Activity}. + // There should be a {@link ListView} with the view ID called list, which is declared in the + // word_list.xml layout file. + ListView listView = (ListView) findViewById(R.id.list); + + // Make the {@link ListView} use the {@link WordAdapter} we created above, so that the + // {@link ListView} will display list items for each {@link Word} in the list. + listView.setAdapter(adapter); + } +} diff --git a/app/src/main/java/com/example/android/miwok/FamilyActivity.java b/app/src/main/java/com/example/android/miwok/FamilyActivity.java new file mode 100644 index 0000000..f9c9cbc --- /dev/null +++ b/app/src/main/java/com/example/android/miwok/FamilyActivity.java @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * 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. + */ +package com.example.android.miwok; + +import android.content.Intent; +import android.net.Uri; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ListView; +import android.widget.Toast; + +import java.util.ArrayList; + +import static android.widget.Toast.LENGTH_LONG; + +public class FamilyActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.word_list); + + // Create a list of words + final ArrayList words = new ArrayList(); + words.add(new Word("http://classesatamrita.in/pdf/Crystal%20Structures%20of%20Solids.pdf", "Semester 2-Solid State Devices")); + words.add(new Word("mother", "әṭa")); + words.add(new Word("son", "angsi")); + words.add(new Word("daughter", "tune")); + words.add(new Word("older brother", "taachi")); + words.add(new Word("younger brother", "chalitti")); + words.add(new Word("older sister", "teṭe")); + words.add(new Word("younger sister", "kolliti")); + words.add(new Word("grandmother ", "ama")); + words.add(new Word("grandfather", "paapa")); + + // Create an {@link WordAdapter}, whose data source is a list of {@link Word}s. The + // adapter knows how to create list items for each item in the list. + WordAdapter adapter = new WordAdapter(this, words); + + // Find the {@link ListView} object in the view hierarchy of the {@link Activity}. + // There should be a {@link ListView} with the view ID called list, which is declared in the + // word_list.xml layout file. + ListView listView = (ListView) findViewById(R.id.list); + + // Make the {@link ListView} use the {@link WordAdapter} we created above, so that the + // {@link ListView} will display list items for each {@link Word} in the list. + listView.setAdapter(adapter); + listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView adapterView, View view, int position, long l) { + // Release the media player if it currently exists because we are about to + // play a different sound file + // Get the {@link Word} object at the given position the user clicked on + Word word = words.get(position); + + Toast.makeText(getBaseContext(),"Downloading "+word.getMiwokTranslation(), LENGTH_LONG).show(); + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(word.getDefaultTranslation()))); + + + } + }); + } +} diff --git a/app/src/main/java/com/example/android/miwok/MainActivity.java b/app/src/main/java/com/example/android/miwok/MainActivity.java new file mode 100644 index 0000000..9911f80 --- /dev/null +++ b/app/src/main/java/com/example/android/miwok/MainActivity.java @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * 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. + */ +package com.example.android.miwok; + +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.TextView; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Set the content of the activity to use the activity_main.xml layout file + setContentView(R.layout.activity_main); + + // Find the View that shows the numbers category + TextView numbers = (TextView) findViewById(R.id.numbers); + + // Set a click listener on that View + numbers.setOnClickListener(new OnClickListener() { + // The code in this method will be executed when the numbers category is clicked on. + @Override + public void onClick(View view) { + // Create a new intent to open the {@link NumbersActivity} + Intent numbersIntent = new Intent(MainActivity.this, NumbersActivity.class); + + // Start the new activity + startActivity(numbersIntent); + } + }); + + // Find the View that shows the family category + TextView family = (TextView) findViewById(R.id.family); + + // Set a click listener on that View + family.setOnClickListener(new OnClickListener() { + // The code in this method will be executed when the family category is clicked on. + @Override + public void onClick(View view) { + // Create a new intent to open the {@link FamilyActivity} + Intent familyIntent = new Intent(MainActivity.this, FamilyActivity.class); + + // Start the new activity + startActivity(familyIntent); + } + }); + + // Find the View that shows the colors category + TextView colors = (TextView) findViewById(R.id.colors); + + // Set a click listener on that View + colors.setOnClickListener(new OnClickListener() { + // The code in this method will be executed when the colors category is clicked on. + @Override + public void onClick(View view) { + // Create a new intent to open the {@link ColorsActivity} + Intent colorsIntent = new Intent(MainActivity.this, ColorsActivity.class); + + // Start the new activity + startActivity(colorsIntent); + } + }); + + // Find the View that shows the phrases category + TextView phrases = (TextView) findViewById(R.id.phrases); + + // Set a click listener on that View + phrases.setOnClickListener(new OnClickListener() { + // The code in this method will be executed when the phrases category is clicked on. + @Override + public void onClick(View view) { + // Create a new intent to open the {@link PhrasesActivity} + Intent phrasesIntent = new Intent(MainActivity.this, PhrasesActivity.class); + + // Start the new activity + startActivity(phrasesIntent); + } + }); + } +} diff --git a/app/src/main/java/com/example/android/miwok/NumbersActivity.java b/app/src/main/java/com/example/android/miwok/NumbersActivity.java new file mode 100644 index 0000000..7922543 --- /dev/null +++ b/app/src/main/java/com/example/android/miwok/NumbersActivity.java @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * 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. + */ +package com.example.android.miwok; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.widget.ListView; + +import java.util.ArrayList; + +public class NumbersActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.word_list); + + // Create a list of words + ArrayList words = new ArrayList(); + words.add(new Word("one", "lutti")); + words.add(new Word("two", "otiiko")); + words.add(new Word("three", "tolookosu")); + words.add(new Word("four", "oyyisa")); + words.add(new Word("five", "massokka")); + words.add(new Word("six", "temmokka")); + words.add(new Word("seven", "kenekaku")); + words.add(new Word("eight", "kawinta")); + words.add(new Word("nine", "wo’e")); + words.add(new Word("ten", "na’aacha")); + + // Create an {@link WordAdapter}, whose data source is a list of {@link Word}s. The + // adapter knows how to create list items for each item in the list. + WordAdapter adapter = new WordAdapter(this, words); + + // Find the {@link ListView} object in the view hierarchy of the {@link Activity}. + // There should be a {@link ListView} with the view ID called list, which is declared in the + // word_list.xml layout file. + ListView listView = (ListView) findViewById(R.id.list); + + // Make the {@link ListView} use the {@link WordAdapter} we created above, so that the + // {@link ListView} will display list items for each {@link Word} in the list. + listView.setAdapter(adapter); + } +} diff --git a/app/src/main/java/com/example/android/miwok/PhrasesActivity.java b/app/src/main/java/com/example/android/miwok/PhrasesActivity.java new file mode 100644 index 0000000..3c0b850 --- /dev/null +++ b/app/src/main/java/com/example/android/miwok/PhrasesActivity.java @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * 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. + */ +package com.example.android.miwok; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.widget.ListView; + +import java.util.ArrayList; + +public class PhrasesActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.word_list); + + // Create a list of words + ArrayList words = new ArrayList(); + words.add(new Word("Where are you going?", "minto wuksus")); + words.add(new Word("What is your name?", "tinnә oyaase'nә")); + words.add(new Word("My name is...", "oyaaset...")); + words.add(new Word("How are you feeling?", "michәksәs?")); + words.add(new Word("I’m feeling good.", "kuchi achit")); + words.add(new Word("Are you coming?", "әәnәs'aa?")); + words.add(new Word("Yes, I’m coming.", "hәә’ әәnәm")); + words.add(new Word("I’m coming.", "әәnәm")); + words.add(new Word("Let’s go.", "yoowutis")); + words.add(new Word("Come here.", "әnni'nem")); + + // Create an {@link WordAdapter}, whose data source is a list of {@link Word}s. The + // adapter knows how to create list items for each item in the list. + WordAdapter adapter = new WordAdapter(this, words); + + // Find the {@link ListView} object in the view hierarchy of the {@link Activity}. + // There should be a {@link ListView} with the view ID called list, which is declared in the + // word_list.xml layout file. + ListView listView = (ListView) findViewById(R.id.list); + + // Make the {@link ListView} use the {@link WordAdapter} we created above, so that the + // {@link ListView} will display list items for each {@link Word} in the list. + listView.setAdapter(adapter); + } +} diff --git a/app/src/main/java/com/example/android/miwok/Word.java b/app/src/main/java/com/example/android/miwok/Word.java new file mode 100644 index 0000000..e7154e2 --- /dev/null +++ b/app/src/main/java/com/example/android/miwok/Word.java @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * 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. + */ +package com.example.android.miwok; + +/** + * {@link Word} represents a vocabulary word that the user wants to learn. + * It contains a default translation and a Miwok translation for that word. + */ +public class Word { + + /** Default translation for the word */ + private String mDefaultTranslation; + + /** Miwok translation for the word */ + private String mMiwokTranslation; + + /** + * Create a new Word object. + * + * @param defaultTranslation is the word in a language that the user is already familiar with + * (such as English) + * @param miwokTranslation is the word in the Miwok language + */ + public Word(String defaultTranslation, String miwokTranslation) { + mDefaultTranslation = defaultTranslation; + mMiwokTranslation = miwokTranslation; + } + + /** + * Get the default translation of the word. + */ + public String getDefaultTranslation() { + return mDefaultTranslation; + } + + /** + * Get the Miwok translation of the word. + */ + public String getMiwokTranslation() { + return mMiwokTranslation; + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/android/miwok/WordAdapter.java b/app/src/main/java/com/example/android/miwok/WordAdapter.java new file mode 100644 index 0000000..d0d8bcc --- /dev/null +++ b/app/src/main/java/com/example/android/miwok/WordAdapter.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * 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. + */ +package com.example.android.miwok; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.TextView; + +import java.util.ArrayList; + +/** + * {@link WordAdapter} is an {@link ArrayAdapter} that can provide the layout for each list item + * based on a data source, which is a list of {@link Word} objects. + */ +public class WordAdapter extends ArrayAdapter { + + /** + * Create a new {@link WordAdapter} object. + * + * @param context is the current context (i.e. Activity) that the adapter is being created in. + * @param words is the list of {@link Word}s to be displayed. + */ + public WordAdapter(Context context, ArrayList words) { + super(context, 0, words); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + // Check if an existing view is being reused, otherwise inflate the view + View listItemView = convertView; + if (listItemView == null) { + listItemView = LayoutInflater.from(getContext()).inflate( + R.layout.list_item, parent, false); + } + + // Get the {@link Word} object located at this position in the list + Word currentWord = getItem(position); + + // Find the TextView in the list_item.xml layout with the ID miwok_text_view. + TextView miwokTextView = (TextView) listItemView.findViewById(R.id.miwok_text_view); + // Get the Miwok translation from the currentWord object and set this text on + // the Miwok TextView. + miwokTextView.setText(currentWord.getMiwokTranslation()); + + // Find the TextView in the list_item.xml layout with the ID default_text_view. + TextView defaultTextView = (TextView) listItemView.findViewById(R.id.default_text_view); + // Get the default translation from the currentWord object and set this text on + // the default TextView. + defaultTextView.setText(currentWord.getDefaultTranslation()); + + // Return the whole list item layout (containing 2 TextViews) so that it can be shown in + // the ListView. + return listItemView; + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..d45f18c --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/list_item.xml b/app/src/main/res/layout/list_item.xml new file mode 100644 index 0000000..1862d0a --- /dev/null +++ b/app/src/main/res/layout/list_item.xml @@ -0,0 +1,39 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/word_list.xml b/app/src/main/res/layout/word_list.xml new file mode 100644 index 0000000..f3b619d --- /dev/null +++ b/app/src/main/res/layout/word_list.xml @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..732e75cadc60947e4b62dcc7117e390299c21992 GIT binary patch literal 7728 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

aYB2As;ZC%~qjMD8>S4 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 + + + 64dp + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..249507e --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,37 @@ + + + + + #4A312A + + + #2F1D1A + + + #FFF7DA + + + #FD8E09 + + + #379237 + + + #8800A0 + + + #16AFCA + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..d6d89b6 --- /dev/null +++ b/app/src/main/res/values/dimens.xml @@ -0,0 +1,21 @@ + + + + 88dp + + 16dp + 16dp + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..ec5c49a --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,30 @@ + + + + Amrita Resource + + + MEC + + + EEE + + + CSE + + + ECE + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..57b7a07 --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..03bced9 --- /dev/null +++ b/build.gradle @@ -0,0 +1,23 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.1.0' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..1d3591c --- /dev/null +++ b/gradle.properties @@ -0,0 +1,18 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..13372aef5e24af05341d49695ee84e5f9b594659 GIT binary patch literal 53636 zcmafaW0a=B^559DjdyHo$F^PVt zzd|cWgMz^T0YO0lQ8%TE1O06v|NZl~LH{LLQ58WtNjWhFP#}eWVO&eiP!jmdp!%24 z{&z-MK{-h=QDqf+S+Pgi=_wg$I{F28X*%lJ>A7Yl#$}fMhymMu?R9TEB?#6@|Q^e^AHhxcRL$z1gsc`-Q`3j+eYAd<4@z^{+?JM8bmu zSVlrVZ5-)SzLn&LU9GhXYG{{I+u(+6ES+tAtQUanYC0^6kWkks8cG;C&r1KGs)Cq}WZSd3k1c?lkzwLySimkP5z)T2Ox3pNs;PdQ=8JPDkT7#0L!cV? zzn${PZs;o7UjcCVd&DCDpFJvjI=h(KDmdByJuDYXQ|G@u4^Kf?7YkE67fWM97kj6F z973tGtv!k$k{<>jd~D&c(x5hVbJa`bILdy(00%lY5}HZ2N>)a|))3UZ&fUa5@uB`H z+LrYm@~t?g`9~@dFzW5l>=p0hG%rv0>(S}jEzqQg6-jImG%Pr%HPtqIV_Ym6yRydW z4L+)NhcyYp*g#vLH{1lK-hQQSScfvNiNx|?nSn-?cc8}-9~Z_0oxlr~(b^EiD`Mx< zlOLK)MH?nl4dD|hx!jBCIku-lI(&v~bCU#!L7d0{)h z;k4y^X+=#XarKzK*)lv0d6?kE1< zmCG^yDYrSwrKIn04tG)>>10%+ zEKzs$S*Zrl+GeE55f)QjY$ zD5hi~J17k;4VSF_`{lPFwf^Qroqg%kqM+Pdn%h#oOPIsOIwu?JR717atg~!)*CgXk zERAW?c}(66rnI+LqM^l7BW|9dH~5g1(_w$;+AAzSYlqop*=u5}=g^e0xjlWy0cUIT7{Fs2Xqx*8% zW71JB%hk%aV-wjNE0*$;E-S9hRx5|`L2JXxz4TX3nf8fMAn|523ssV;2&145zh{$V z#4lt)vL2%DCZUgDSq>)ei2I`*aeNXHXL1TB zC8I4!uq=YYVjAdcCjcf4XgK2_$y5mgsCdcn2U!VPljXHco>+%`)6W=gzJk0$e%m$xWUCs&Ju-nUJjyQ04QF_moED2(y6q4l+~fo845xm zE5Esx?~o#$;rzpCUk2^2$c3EBRNY?wO(F3Pb+<;qfq;JhMFuSYSxiMejBQ+l8(C-- zz?Xufw@7{qvh$;QM0*9tiO$nW(L>83egxc=1@=9Z3)G^+*JX-z92F((wYiK>f;6 zkc&L6k4Ua~FFp`x7EF;ef{hb*n8kx#LU|6{5n=A55R4Ik#sX{-nuQ}m7e<{pXq~8#$`~6| zi{+MIgsBRR-o{>)CE8t0Bq$|SF`M0$$7-{JqwFI1)M^!GMwq5RAWMP!o6G~%EG>$S zYDS?ux;VHhRSm*b^^JukYPVb?t0O%^&s(E7Rb#TnsWGS2#FdTRj_SR~YGjkaRFDI=d)+bw$rD;_!7&P2WEmn zIqdERAbL&7`iA^d?8thJ{(=)v>DgTF7rK-rck({PpYY$7uNY$9-Z< ze4=??I#p;$*+-Tm!q8z}k^%-gTm59^3$*ByyroqUe02Dne4?Fc%JlO>*f9Zj{++!^ zBz0FxuS&7X52o6-^CYq>jkXa?EEIfh?xdBPAkgpWpb9Tam^SXoFb3IRfLwanWfskJ zIbfU-rJ1zPmOV)|%;&NSWIEbbwj}5DIuN}!m7v4($I{Rh@<~-sK{fT|Wh?<|;)-Z; zwP{t@{uTsmnO@5ZY82lzwl4jeZ*zsZ7w%a+VtQXkigW$zN$QZnKw4F`RG`=@eWowO zFJ6RC4e>Y7Nu*J?E1*4*U0x^>GK$>O1S~gkA)`wU2isq^0nDb`);Q(FY<8V6^2R%= zDY}j+?mSj{bz2>F;^6S=OLqiHBy~7h4VVscgR#GILP!zkn68S^c04ZL3e$lnSU_(F zZm3e`1~?eu1>ys#R6>Gu$`rWZJG&#dsZ?^)4)v(?{NPt+_^Ak>Ap6828Cv^B84fa4 z_`l$0SSqkBU}`f*H#<14a)khT1Z5Z8;=ga^45{l8y*m|3Z60vgb^3TnuUKaa+zP;m zS`za@C#Y;-LOm&pW||G!wzr+}T~Q9v4U4ufu*fLJC=PajN?zN=?v^8TY}wrEeUygdgwr z7szml+(Bar;w*c^!5txLGKWZftqbZP`o;Kr1)zI}0Kb8yr?p6ZivtYL_KA<+9)XFE z=pLS5U&476PKY2aKEZh}%|Vb%!us(^qf)bKdF7x_v|Qz8lO7Ro>;#mxG0gqMaTudL zi2W!_#3@INslT}1DFJ`TsPvRBBGsODklX0`p-M6Mrgn~6&fF`kdj4K0I$<2Hp(YIA z)fFdgR&=qTl#sEFj6IHzEr1sYM6 zNfi!V!biByA&vAnZd;e_UfGg_={}Tj0MRt3SG%BQYnX$jndLG6>ssgIV{T3#=;RI% zE}b!9z#fek19#&nFgC->@!IJ*Fe8K$ZOLmg|6(g}ccsSBpc`)3;Ar8;3_k`FQ#N9&1tm>c|2mzG!!uWvelm zJj|oDZ6-m(^|dn3em(BF&3n12=hdtlb@%!vGuL*h`CXF?^=IHU%Q8;g8vABm=U!vX zT%Ma6gpKQC2c;@wH+A{)q+?dAuhetSxBDui+Z;S~6%oQq*IwSMu-UhMDy{pP z-#GB-a0`0+cJ%dZ7v0)3zfW$eV>w*mgU4Cma{P$DY3|w364n$B%cf()fZ;`VIiK_O zQ|q|(55+F$H(?opzr%r)BJLy6M&7Oq8KCsh`pA5^ohB@CDlMKoDVo5gO&{0k)R0b(UOfd>-(GZGeF}y?QI_T+GzdY$G{l!l% zHyToqa-x&X4;^(-56Lg$?(KYkgJn9W=w##)&CECqIxLe@+)2RhO*-Inpb7zd8txFG6mY8E?N8JP!kRt_7-&X{5P?$LAbafb$+hkA*_MfarZxf zXLpXmndnV3ubbXe*SYsx=eeuBKcDZI0bg&LL-a8f9>T(?VyrpC6;T{)Z{&|D5a`Aa zjP&lP)D)^YYWHbjYB6ArVs+4xvrUd1@f;;>*l zZH``*BxW+>Dd$be{`<&GN(w+m3B?~3Jjz}gB8^|!>pyZo;#0SOqWem%xeltYZ}KxOp&dS=bg|4 zY-^F~fv8v}u<7kvaZH`M$fBeltAglH@-SQres30fHC%9spF8Ld%4mjZJDeGNJR8+* zl&3Yo$|JYr2zi9deF2jzEC) zl+?io*GUGRp;^z+4?8gOFA>n;h%TJC#-st7#r&-JVeFM57P7rn{&k*z@+Y5 zc2sui8(gFATezp|Te|1-Q*e|Xi+__8bh$>%3|xNc2kAwTM!;;|KF6cS)X3SaO8^z8 zs5jV(s(4_NhWBSSJ}qUzjuYMKlkjbJS!7_)wwVsK^qDzHx1u*sC@C1ERqC#l%a zk>z>m@sZK{#GmsB_NkEM$$q@kBrgq%=NRBhL#hjDQHrI7(XPgFvP&~ZBJ@r58nLme zK4tD}Nz6xrbvbD6DaDC9E_82T{(WRQBpFc+Zb&W~jHf1MiBEqd57}Tpo8tOXj@LcF zwN8L-s}UO8%6piEtTrj@4bLH!mGpl5mH(UJR1r9bBOrSt0tSJDQ9oIjcW#elyMAxl7W^V(>8M~ss0^>OKvf{&oUG@uW{f^PtV#JDOx^APQKm& z{*Ysrz&ugt4PBUX@KERQbycxP%D+ApR%6jCx7%1RG2YpIa0~tqS6Xw6k#UN$b`^l6d$!I z*>%#Eg=n#VqWnW~MurJLK|hOQPTSy7G@29g@|g;mXC%MF1O7IAS8J^Q6D&Ra!h^+L&(IBYg2WWzZjT-rUsJMFh@E)g)YPW_)W9GF3 zMZz4RK;qcjpnat&J;|MShuPc4qAc)A| zVB?h~3TX+k#Cmry90=kdDoPYbhzs#z96}#M=Q0nC{`s{3ZLU)c(mqQQX;l~1$nf^c zFRQ~}0_!cM2;Pr6q_(>VqoW0;9=ZW)KSgV-c_-XdzEapeLySavTs5-PBsl-n3l;1jD z9^$^xR_QKDUYoeqva|O-+8@+e??(pRg@V|=WtkY!_IwTN~ z9Rd&##eWt_1w$7LL1$-ETciKFyHnNPjd9hHzgJh$J(D@3oYz}}jVNPjH!viX0g|Y9 zDD`Zjd6+o+dbAbUA( zEqA9mSoX5p|9sDVaRBFx_8)Ra4HD#xDB(fa4O8_J2`h#j17tSZOd3%}q8*176Y#ak zC?V8Ol<*X{Q?9j{Ys4Bc#sq!H;^HU$&F_`q2%`^=9DP9YV-A!ZeQ@#p=#ArloIgUH%Y-s>G!%V3aoXaY=f<UBrJTN+*8_lMX$yC=Vq+ zrjLn-pO%+VIvb~>k%`$^aJ1SevcPUo;V{CUqF>>+$c(MXxU12mxqyFAP>ki{5#;Q0 zx7Hh2zZdZzoxPY^YqI*Vgr)ip0xnpQJ+~R*UyFi9RbFd?<_l8GH@}gGmdB)~V7vHg z>Cjy78TQTDwh~+$u$|K3if-^4uY^|JQ+rLVX=u7~bLY29{lr>jWV7QCO5D0I>_1?; zx>*PxE4|wC?#;!#cK|6ivMzJ({k3bT_L3dHY#h7M!ChyTT`P#%3b=k}P(;QYTdrbe z+e{f@we?3$66%02q8p3;^th;9@y2vqt@LRz!DO(WMIk?#Pba85D!n=Ao$5NW0QVgS zoW)fa45>RkjU?H2SZ^#``zs6dG@QWj;MO4k6tIp8ZPminF`rY31dzv^e-3W`ZgN#7 z)N^%Rx?jX&?!5v`hb0-$22Fl&UBV?~cV*{hPG6%ml{k;m+a-D^XOF6DxPd$3;2VVY zT)E%m#ZrF=D=84$l}71DK3Vq^?N4``cdWn3 zqV=mX1(s`eCCj~#Nw4XMGW9tK>$?=cd$ule0Ir8UYzhi?%_u0S?c&j7)-~4LdolkgP^CUeE<2`3m)I^b ztV`K0k$OS^-GK0M0cNTLR22Y_eeT{<;G(+51Xx}b6f!kD&E4; z&Op8;?O<4D$t8PB4#=cWV9Q*i4U+8Bjlj!y4`j)^RNU#<5La6|fa4wLD!b6?RrBsF z@R8Nc^aO8ty7qzlOLRL|RUC-Bt-9>-g`2;@jfNhWAYciF{df9$n#a~28+x~@x0IWM zld=J%YjoKm%6Ea>iF){z#|~fo_w#=&&HRogJmXJDjCp&##oVvMn9iB~gyBlNO3B5f zXgp_1I~^`A0z_~oAa_YBbNZbDsnxLTy0@kkH!=(xt8|{$y<+|(wSZW7@)#|fs_?gU5-o%vpsQPRjIxq;AED^oG%4S%`WR}2(*!84Pe8Jw(snJ zq~#T7+m|w#acH1o%e<+f;!C|*&_!lL*^zRS`;E}AHh%cj1yR&3Grv&0I9k9v0*w8^ zXHEyRyCB`pDBRAxl;ockOh6$|7i$kzCBW$}wGUc|2bo3`x*7>B@eI=-7lKvI)P=gQ zf_GuA+36kQb$&{ZH)6o^x}wS}S^d&Xmftj%nIU=>&j@0?z8V3PLb1JXgHLq)^cTvB zFO6(yj1fl1Bap^}?hh<>j?Jv>RJdK{YpGjHxnY%d8x>A{k+(18J|R}%mAqq9Uzm8^Us#Ir_q^w9-S?W07YRD`w%D(n;|8N%_^RO`zp4 z@`zMAs>*x0keyE)$dJ8hR37_&MsSUMlGC*=7|wUehhKO)C85qoU}j>VVklO^TxK?! zO!RG~y4lv#W=Jr%B#sqc;HjhN={wx761vA3_$S>{j+r?{5=n3le|WLJ(2y_r>{)F_ z=v8Eo&xFR~wkw5v-{+9^JQukxf8*CXDWX*ZzjPVDc>S72uxAcY+(jtg3ns_5R zRYl2pz`B)h+e=|7SfiAAP;A zk0tR)3u1qy0{+?bQOa17SpBRZ5LRHz(TQ@L0%n5xJ21ri>^X420II1?5^FN3&bV?( zCeA)d9!3FAhep;p3?wLPs`>b5Cd}N!;}y`Hq3ppDs0+><{2ey0yq8o7m-4|oaMsWf zsLrG*aMh91drd-_QdX6t&I}t2!`-7$DCR`W2yoV%bcugue)@!SXM}fJOfG(bQQh++ zjAtF~zO#pFz})d8h)1=uhigDuFy`n*sbxZ$BA^Bt=Jdm}_KB6sCvY(T!MQnqO;TJs zVD{*F(FW=+v`6t^6{z<3-fx#|Ze~#h+ymBL^^GKS%Ve<)sP^<4*y_Y${06eD zH_n?Ani5Gs4&1z)UCL-uBvq(8)i!E@T_*0Sp5{Ddlpgke^_$gukJc_f9e=0Rfpta@ ze5~~aJBNK&OJSw!(rDRAHV0d+eW#1?PFbr==uG-$_fu8`!DWqQD~ef-Gx*ZmZx33_ zb0+I(0!hIK>r9_S5A*UwgRBKSd6!ieiYJHRigU@cogJ~FvJHY^DSysg)ac=7#wDBf zNLl!E$AiUMZC%%i5@g$WsN+sMSoUADKZ}-Pb`{7{S>3U%ry~?GVX!BDar2dJHLY|g zTJRo#Bs|u#8ke<3ohL2EFI*n6adobnYG?F3-#7eZZQO{#rmM8*PFycBR^UZKJWr(a z8cex$DPOx_PL^TO<%+f^L6#tdB8S^y#+fb|acQfD(9WgA+cb15L+LUdHKv)wE6={i zX^iY3N#U7QahohDP{g`IHS?D00eJC9DIx0V&nq!1T* z4$Bb?trvEG9JixrrNRKcjX)?KWR#Y(dh#re_<y*=5!J+-Wwb*D>jKXgr5L8_b6pvSAn3RIvI5oj!XF^m?otNA=t^dg z#V=L0@W)n?4Y@}49}YxQS=v5GsIF3%Cp#fFYm0Bm<}ey& zOfWB^vS8ye?n;%yD%NF8DvOpZqlB++#4KnUj>3%*S(c#yACIU>TyBG!GQl7{b8j#V z;lS})mrRtT!IRh2B-*T58%9;!X}W^mg;K&fb7?2#JH>JpCZV5jbDfOgOlc@wNLfHN z8O92GeBRjCP6Q9^Euw-*i&Wu=$>$;8Cktx52b{&Y^Ise-R1gTKRB9m0*Gze>$k?$N zua_0Hmbcj8qQy{ZyJ%`6v6F+yBGm>chZxCGpeL@os+v&5LON7;$tb~MQAbSZKG$k z8w`Mzn=cX4Hf~09q8_|3C7KnoM1^ZGU}#=vn1?1^Kc-eWv4x^T<|i9bCu;+lTQKr- zRwbRK!&XrWRoO7Kw!$zNQb#cJ1`iugR(f_vgmu!O)6tFH-0fOSBk6$^y+R07&&B!(V#ZV)CX42( zTC(jF&b@xu40fyb1=_2;Q|uPso&Gv9OSM1HR{iGPi@JUvmYM;rkv#JiJZ5-EFA%Lu zf;wAmbyclUM*D7>^nPatbGr%2aR5j55qSR$hR`c?d+z z`qko8Yn%vg)p=H`1o?=b9K0%Blx62gSy)q*8jWPyFmtA2a+E??&P~mT@cBdCsvFw4 zg{xaEyVZ|laq!sqN}mWq^*89$e6%sb6Thof;ml_G#Q6_0-zwf80?O}D0;La25A0C+ z3)w-xesp6?LlzF4V%yA9Ryl_Kq*wMk4eu&)Tqe#tmQJtwq`gI^7FXpToum5HP3@;N zpe4Y!wv5uMHUu`zbdtLys5)(l^C(hFKJ(T)z*PC>7f6ZRR1C#ao;R&_8&&a3)JLh* zOFKz5#F)hJqVAvcR#1)*AWPGmlEKw$sQd)YWdAs_W-ojA?Lm#wCd}uF0^X=?AA#ki zWG6oDQZJ5Tvifdz4xKWfK&_s`V*bM7SVc^=w7-m}jW6U1lQEv_JsW6W(| zkKf>qn^G!EWn~|7{G-&t0C6C%4)N{WRK_PM>4sW8^dDkFM|p&*aBuN%fg(I z^M-49vnMd%=04N95VO+?d#el>LEo^tvnQsMop70lNqq@%cTlht?e+B5L1L9R4R(_6 z!3dCLeGXb+_LiACNiqa^nOELJj%q&F^S+XbmdP}`KAep%TDop{Pz;UDc#P&LtMPgH zy+)P1jdgZQUuwLhV<89V{3*=Iu?u#v;v)LtxoOwV(}0UD@$NCzd=id{UuDdedeEp| z`%Q|Y<6T?kI)P|8c!K0Za&jxPhMSS!T`wlQNlkE(2B*>m{D#`hYYD>cgvsKrlcOcs7;SnVCeBiK6Wfho@*Ym9 zr0zNfrr}0%aOkHd)d%V^OFMI~MJp+Vg-^1HPru3Wvac@-QjLX9Dx}FL(l>Z;CkSvC zOR1MK%T1Edv2(b9$ttz!E7{x4{+uSVGz`uH&)gG`$)Vv0^E#b&JSZp#V)b6~$RWwe zzC3FzI`&`EDK@aKfeqQ4M(IEzDd~DS>GB$~ip2n!S%6sR&7QQ*=Mr(v*v-&07CO%# zMBTaD8-EgW#C6qFPPG1Ph^|0AFs;I+s|+A@WU}%@WbPI$S0+qFR^$gim+Fejs2f!$ z@Xdlb_K1BI;iiOUj`j+gOD%mjq^S~J0cZZwuqfzNH9}|(vvI6VO+9ZDA_(=EAo;( zKKzm`k!s!_sYCGOm)93Skaz+GF7eY@Ra8J$C)`X)`aPKym?7D^SI}Mnef4C@SgIEB z>nONSFl$qd;0gSZhNcRlq9VVHPkbakHlZ1gJ1y9W+@!V$TLpdsbKR-VwZrsSM^wLr zL9ob&JG)QDTaf&R^cnm5T5#*J3(pSpjM5~S1 z@V#E2syvK6wb?&h?{E)CoI~9uA(hST7hx4_6M(7!|BW3TR_9Q zLS{+uPoNgw(aK^?=1rFcDO?xPEk5Sm=|pW%-G2O>YWS^(RT)5EQ2GSl75`b}vRcD2 z|HX(x0#Qv+07*O|vMIV(0?KGjOny#Wa~C8Q(kF^IR8u|hyyfwD&>4lW=)Pa311caC zUk3aLCkAFkcidp@C%vNVLNUa#1ZnA~ZCLrLNp1b8(ndgB(0zy{Mw2M@QXXC{hTxr7 zbipeHI-U$#Kr>H4}+cu$#2fG6DgyWgq{O#8aa)4PoJ^;1z7b6t&zt zPei^>F1%8pcB#1`z`?f0EAe8A2C|}TRhzs*-vN^jf(XNoPN!tONWG=abD^=Lm9D?4 zbq4b(in{eZehKC0lF}`*7CTzAvu(K!eAwDNC#MlL2~&gyFKkhMIF=32gMFLvKsbLY z1d$)VSzc^K&!k#2Q?(f>pXn){C+g?vhQ0ijV^Z}p5#BGrGb%6n>IH-)SA$O)*z3lJ z1rtFlovL`cC*RaVG!p!4qMB+-f5j^1)ALf4Z;2X&ul&L!?`9Vdp@d(%(>O=7ZBV;l z?bbmyPen>!P{TJhSYPmLs759b1Ni1`d$0?&>OhxxqaU|}-?Z2c+}jgZ&vCSaCivx| z-&1gw2Lr<;U-_xzlg}Fa_3NE?o}R-ZRX->__}L$%2ySyiPegbnM{UuADqwDR{C2oS zPuo88%DNfl4xBogn((9j{;*YGE0>2YoL?LrH=o^SaAcgO39Ew|vZ0tyOXb509#6{7 z0<}CptRX5(Z4*}8CqCgpT@HY3Q)CvRz_YE;nf6ZFwEje^;Hkj0b1ESI*8Z@(RQrW4 z35D5;S73>-W$S@|+M~A(vYvX(yvLN(35THo!yT=vw@d(=q8m+sJyZMB7T&>QJ=jkwQVQ07*Am^T980rldC)j}}zf!gq7_z4dZ zHwHB94%D-EB<-^W@9;u|(=X33c(G>q;Tfq1F~-Lltp|+uwVzg?e$M96ndY{Lcou%w zWRkjeE`G*i)Bm*|_7bi+=MPm8by_};`=pG!DSGBP6y}zvV^+#BYx{<>p0DO{j@)(S zxcE`o+gZf8EPv1g3E1c3LIbw+`rO3N+Auz}vn~)cCm^DlEi#|Az$b z2}Pqf#=rxd!W*6HijC|u-4b~jtuQS>7uu{>wm)PY6^S5eo=?M>;tK`=DKXuArZvaU zHk(G??qjKYS9G6Du)#fn+ob=}C1Hj9d?V$_=J41ljM$CaA^xh^XrV-jzi7TR-{{9V zZZI0;aQ9YNEc`q=Xvz;@q$eqL<}+L(>HR$JA4mB6~g*YRSnpo zTofY;u7F~{1Pl=pdsDQx8Gg#|@BdoWo~J~j%DfVlT~JaC)he>he6`C`&@@#?;e(9( zgKcmoidHU$;pi{;VXyE~4>0{kJ>K3Uy6`s*1S--*mM&NY)*eOyy!7?9&osK*AQ~vi z{4qIQs)s#eN6j&0S()cD&aCtV;r>ykvAzd4O-fG^4Bmx2A2U7-kZR5{Qp-R^i4H2yfwC7?9(r3=?oH(~JR4=QMls>auMv*>^^!$}{}R z;#(gP+O;kn4G|totqZGdB~`9yzShMze{+$$?9%LJi>4YIsaPMwiJ{`gocu0U}$Q$vI5oeyKrgzz>!gI+XFt!#n z7vs9Pn`{{5w-@}FJZn?!%EQV!PdA3hw%Xa2#-;X4*B4?`WM;4@bj`R-yoAs_t4!!` zEaY5OrYi`3u3rXdY$2jZdZvufgFwVna?!>#t#DKAD2;U zqpqktqJ)8EPY*w~yj7r~#bNk|PDM>ZS?5F7T5aPFVZrqeX~5_1*zTQ%;xUHe#li?s zJ*5XZVERVfRjwX^s=0<%nXhULK+MdibMjzt%J7#fuh?NXyJ^pqpfG$PFmG!h*opyi zmMONjJY#%dkdRHm$l!DLeBm#_0YCq|x17c1fYJ#5YMpsjrFKyU=y>g5QcTgbDm28X zYL1RK)sn1@XtkGR;tNb}(kg#9L=jNSbJizqAgV-TtK2#?LZXrCIz({ zO^R|`ZDu(d@E7vE}df5`a zNIQRp&mDFbgyDKtyl@J|GcR9!h+_a$za$fnO5Ai9{)d7m@?@qk(RjHwXD}JbKRn|u z=Hy^z2vZ<1Mf{5ihhi9Y9GEG74Wvka;%G61WB*y7;&L>k99;IEH;d8-IR6KV{~(LZ zN7@V~f)+yg7&K~uLvG9MAY+{o+|JX?yf7h9FT%7ZrW7!RekjwgAA4jU$U#>_!ZC|c zA9%tc9nq|>2N1rg9uw-Qc89V}I5Y`vuJ(y`Ibc_?D>lPF0>d_mB@~pU`~)uWP48cT@fTxkWSw{aR!`K{v)v zpN?vQZZNPgs3ki9h{An4&Cap-c5sJ!LVLtRd=GOZ^bUpyDZHm6T|t#218}ZA zx*=~9PO>5IGaBD^XX-_2t7?7@WN7VfI^^#Csdz9&{1r z9y<9R?BT~-V8+W3kzWWQ^)ZSI+R zt^Lg`iN$Z~a27)sC_03jrD-%@{ArCPY#Pc*u|j7rE%}jF$LvO4vyvAw3bdL_mg&ei zXys_i=Q!UoF^Xp6^2h5o&%cQ@@)$J4l`AG09G6Uj<~A~!xG>KjKSyTX)zH*EdHMK0 zo;AV-D+bqWhtD-!^+`$*P0B`HokilLd1EuuwhJ?%3wJ~VXIjIE3tj653PExvIVhE& zFMYsI(OX-Q&W$}9gad^PUGuKElCvXxU_s*kx%dH)Bi&$*Q(+9j>(Q>7K1A#|8 zY!G!p0kW29rP*BNHe_wH49bF{K7tymi}Q!Vc_Ox2XjwtpM2SYo7n>?_sB=$c8O5^? z6as!fE9B48FcE`(ruNXP%rAZlDXrFTC7^aoXEX41k)tIq)6kJ*(sr$xVqsh_m3^?? zOR#{GJIr6E0Sz{-( z-R?4asj|!GVl0SEagNH-t|{s06Q3eG{kZOoPHL&Hs0gUkPc&SMY=&{C0&HDI)EHx9 zm#ySWluxwp+b~+K#VG%21%F65tyrt9RTPR$eG0afer6D`M zTW=y!@y6yi#I5V#!I|8IqU=@IfZo!@9*P+f{yLxGu$1MZ%xRY(gRQ2qH@9eMK0`Z> zgO`4DHfFEN8@m@dxYuljsmVv}c4SID+8{kr>d_dLzF$g>urGy9g+=`xAfTkVtz56G zrKNsP$yrDyP=kIqPN9~rVmC-wH672NF7xU>~j5M06Xr&>UJBmOV z%7Ie2d=K=u^D`~i3(U7x?n=h!SCSD1`aFe-sY<*oh+=;B>UVFBOHsF=(Xr(Cai{dL z4S7Y>PHdfG9Iav5FtKzx&UCgg)|DRLvq7!0*9VD`e6``Pgc z1O!qSaNeBBZnDXClh(Dq@XAk?Bd6+_rsFt`5(E+V2c)!Mx4X z47X+QCB4B7$B=Fw1Z1vnHg;x9oDV1YQJAR6Q3}_}BXTFg$A$E!oGG%`Rc()-Ysc%w za(yEn0fw~AaEFr}Rxi;if?Gv)&g~21UzXU9osI9{rNfH$gPTTk#^B|irEc<8W+|9$ zc~R${X2)N!npz1DFVa%nEW)cgPq`MSs)_I*Xwo<+ZK-2^hD(Mc8rF1+2v7&qV;5SET-ygMLNFsb~#u+LpD$uLR1o!ha67gPV5Q{v#PZK5X zUT4aZ{o}&*q7rs)v%*fDTl%}VFX?Oi{i+oKVUBqbi8w#FI%_5;6`?(yc&(Fed4Quy8xsswG+o&R zO1#lUiA%!}61s3jR7;+iO$;1YN;_*yUnJK=$PT_}Q%&0T@2i$ zwGC@ZE^A62YeOS9DU9me5#`(wv24fK=C)N$>!!6V#6rX3xiHehfdvwWJ>_fwz9l)o`Vw9yi z0p5BgvIM5o_ zgo-xaAkS_mya8FXo1Ke4;U*7TGSfm0!fb4{E5Ar8T3p!Z@4;FYT8m=d`C@4-LM121 z?6W@9d@52vxUT-6K_;1!SE%FZHcm0U$SsC%QB zxkTrfH;#Y7OYPy!nt|k^Lgz}uYudos9wI^8x>Y{fTzv9gfTVXN2xH`;Er=rTeAO1x znaaJOR-I)qwD4z%&dDjY)@s`LLSd#FoD!?NY~9#wQRTHpD7Vyyq?tKUHKv6^VE93U zt_&ePH+LM-+9w-_9rvc|>B!oT>_L59nipM-@ITy|x=P%Ezu@Y?N!?jpwP%lm;0V5p z?-$)m84(|7vxV<6f%rK3!(R7>^!EuvA&j@jdTI+5S1E{(a*wvsV}_)HDR&8iuc#>+ zMr^2z*@GTnfDW-QS38OJPR3h6U&mA;vA6Pr)MoT7%NvA`%a&JPi|K8NP$b1QY#WdMt8-CDA zyL0UXNpZ?x=tj~LeM0wk<0Dlvn$rtjd$36`+mlf6;Q}K2{%?%EQ+#FJy6v5cS+Q-~ ztk||Iwr$(CZQHi38QZF;lFFBNt+mg2*V_AhzkM<8#>E_S^xj8%T5tXTytD6f)vePG z^B0Ne-*6Pqg+rVW?%FGHLhl^ycQM-dhNCr)tGC|XyES*NK%*4AnZ!V+Zu?x zV2a82fs8?o?X} zjC1`&uo1Ti*gaP@E43NageV^$Xue3%es2pOrLdgznZ!_a{*`tfA+vnUv;^Ebi3cc$?-kh76PqA zMpL!y(V=4BGPQSU)78q~N}_@xY5S>BavY3Sez-+%b*m0v*tOz6zub9%*~%-B)lb}t zy1UgzupFgf?XyMa+j}Yu>102tP$^S9f7;b7N&8?_lYG$okIC`h2QCT_)HxG1V4Uv{xdA4k3-FVY)d}`cmkePsLScG&~@wE?ix2<(G7h zQ7&jBQ}Kx9mm<0frw#BDYR7_HvY7En#z?&*FurzdDNdfF znCL1U3#iO`BnfPyM@>;#m2Lw9cGn;(5*QN9$zd4P68ji$X?^=qHraP~Nk@JX6}S>2 zhJz4MVTib`OlEAqt!UYobU0-0r*`=03)&q7ubQXrt|t?^U^Z#MEZV?VEin3Nv1~?U zuwwSeR10BrNZ@*h7M)aTxG`D(By$(ZP#UmBGf}duX zhx;7y1x@j2t5sS#QjbEPIj95hV8*7uF6c}~NBl5|hgbB(}M3vnt zu_^>@s*Bd>w;{6v53iF5q7Em>8n&m&MXL#ilSzuC6HTzzi-V#lWoX zBOSBYm|ti@bXb9HZ~}=dlV+F?nYo3?YaV2=N@AI5T5LWWZzwvnFa%w%C<$wBkc@&3 zyUE^8xu<=k!KX<}XJYo8L5NLySP)cF392GK97(ylPS+&b}$M$Y+1VDrJa`GG7+%ToAsh z5NEB9oVv>as?i7f^o>0XCd%2wIaNRyejlFws`bXG$Mhmb6S&shdZKo;p&~b4wv$ z?2ZoM$la+_?cynm&~jEi6bnD;zSx<0BuCSDHGSssT7Qctf`0U!GDwG=+^|-a5%8Ty z&Q!%m%geLjBT*#}t zv1wDzuC)_WK1E|H?NZ&-xr5OX(ukXMYM~_2c;K}219agkgBte_#f+b9Al8XjL-p}1 z8deBZFjplH85+Fa5Q$MbL>AfKPxj?6Bib2pevGxIGAG=vr;IuuC%sq9x{g4L$?Bw+ zvoo`E)3#bpJ{Ij>Yn0I>R&&5B$&M|r&zxh+q>*QPaxi2{lp?omkCo~7ibow#@{0P> z&XBocU8KAP3hNPKEMksQ^90zB1&&b1Me>?maT}4xv7QHA@Nbvt-iWy7+yPFa9G0DP zP82ooqy_ku{UPv$YF0kFrrx3L=FI|AjG7*(paRLM0k1J>3oPxU0Zd+4&vIMW>h4O5G zej2N$(e|2Re z@8xQ|uUvbA8QVXGjZ{Uiolxb7c7C^nW`P(m*Jkqn)qdI0xTa#fcK7SLp)<86(c`A3 zFNB4y#NHe$wYc7V)|=uiW8gS{1WMaJhDj4xYhld;zJip&uJ{Jg3R`n+jywDc*=>bW zEqw(_+j%8LMRrH~+M*$V$xn9x9P&zt^evq$P`aSf-51`ZOKm(35OEUMlO^$>%@b?a z>qXny!8eV7cI)cb0lu+dwzGH(Drx1-g+uDX;Oy$cs+gz~?LWif;#!+IvPR6fa&@Gj zwz!Vw9@-Jm1QtYT?I@JQf%`=$^I%0NK9CJ75gA}ff@?I*xUD7!x*qcyTX5X+pS zAVy4{51-dHKs*OroaTy;U?zpFS;bKV7wb}8v+Q#z<^$%NXN(_hG}*9E_DhrRd7Jqp zr}2jKH{avzrpXj?cW{17{kgKql+R(Ew55YiKK7=8nkzp7Sx<956tRa(|yvHlW zNO7|;GvR(1q}GrTY@uC&ow0me|8wE(PzOd}Y=T+Ih8@c2&~6(nzQrK??I7DbOguA9GUoz3ASU%BFCc8LBsslu|nl>q8Ag(jA9vkQ`q2amJ5FfA7GoCdsLW znuok(diRhuN+)A&`rH{$(HXWyG2TLXhVDo4xu?}k2cH7QsoS>sPV)ylb45Zt&_+1& zT)Yzh#FHRZ-z_Q^8~IZ+G~+qSw-D<{0NZ5!J1%rAc`B23T98TMh9ylkzdk^O?W`@C??Z5U9#vi0d<(`?9fQvNN^ji;&r}geU zSbKR5Mv$&u8d|iB^qiLaZQ#@)%kx1N;Og8Js>HQD3W4~pI(l>KiHpAv&-Ev45z(vYK<>p6 z6#pU(@rUu{i9UngMhU&FI5yeRub4#u=9H+N>L@t}djC(Schr;gc90n%)qH{$l0L4T z;=R%r>CuxH!O@+eBR`rBLrT0vnP^sJ^+qE^C8ZY0-@te3SjnJ)d(~HcnQw@`|qAp|Trrs^E*n zY1!(LgVJfL?@N+u{*!Q97N{Uu)ZvaN>hsM~J?*Qvqv;sLnXHjKrtG&x)7tk?8%AHI zo5eI#`qV1{HmUf-Fucg1xn?Kw;(!%pdQ)ai43J3NP4{%x1D zI0#GZh8tjRy+2{m$HyI(iEwK30a4I36cSht3MM85UqccyUq6$j5K>|w$O3>`Ds;`0736+M@q(9$(`C6QZQ-vAKjIXKR(NAH88 zwfM6_nGWlhpy!_o56^BU``%TQ%tD4hs2^<2pLypjAZ;W9xAQRfF_;T9W-uidv{`B z{)0udL1~tMg}a!hzVM0a_$RbuQk|EG&(z*{nZXD3hf;BJe4YxX8pKX7VaIjjDP%sk zU5iOkhzZ&%?A@YfaJ8l&H;it@;u>AIB`TkglVuy>h;vjtq~o`5NfvR!ZfL8qS#LL` zD!nYHGzZ|}BcCf8s>b=5nZRYV{)KK#7$I06s<;RyYC3<~`mob_t2IfR*dkFJyL?FU zvuo-EE4U(-le)zdgtW#AVA~zjx*^80kd3A#?vI63pLnW2{j*=#UG}ISD>=ZGA$H&` z?Nd8&11*4`%MQlM64wfK`{O*ad5}vk4{Gy}F98xIAsmjp*9P=a^yBHBjF2*Iibo2H zGJAMFDjZcVd%6bZ`dz;I@F55VCn{~RKUqD#V_d{gc|Z|`RstPw$>Wu+;SY%yf1rI=>51Oolm>cnjOWHm?ydcgGs_kPUu=?ZKtQS> zKtLS-v$OMWXO>B%Z4LFUgw4MqA?60o{}-^6tf(c0{Y3|yF##+)RoXYVY-lyPhgn{1 z>}yF0Ab}D#1*746QAj5c%66>7CCWs8O7_d&=Ktu!SK(m}StvvBT1$8QP3O2a*^BNA z)HPhmIi*((2`?w}IE6Fo-SwzI_F~OC7OR}guyY!bOQfpNRg3iMvsFPYb9-;dT6T%R zhLwIjgiE^-9_4F3eMHZ3LI%bbOmWVe{SONpujQ;3C+58=Be4@yJK>3&@O>YaSdrevAdCLMe_tL zl8@F}{Oc!aXO5!t!|`I zdC`k$5z9Yf%RYJp2|k*DK1W@AN23W%SD0EdUV^6~6bPp_HZi0@dku_^N--oZv}wZA zH?Bf`knx%oKB36^L;P%|pf#}Tp(icw=0(2N4aL_Ea=9DMtF})2ay68V{*KfE{O=xL zf}tcfCL|D$6g&_R;r~1m{+)sutQPKzVv6Zw(%8w&4aeiy(qct1x38kiqgk!0^^X3IzI2ia zxI|Q)qJNEf{=I$RnS0`SGMVg~>kHQB@~&iT7+eR!Ilo1ZrDc3TVW)CvFFjHK4K}Kh z)dxbw7X%-9Ol&Y4NQE~bX6z+BGOEIIfJ~KfD}f4spk(m62#u%k<+iD^`AqIhWxtKGIm)l$7=L`=VU0Bz3-cLvy&xdHDe-_d3%*C|Q&&_-n;B`87X zDBt3O?Wo-Hg6*i?f`G}5zvM?OzQjkB8uJhzj3N;TM5dSM$C@~gGU7nt-XX_W(p0IA6$~^cP*IAnA<=@HVqNz=Dp#Rcj9_6*8o|*^YseK_4d&mBY*Y&q z8gtl;(5%~3Ehpz)bLX%)7|h4tAwx}1+8CBtu9f5%^SE<&4%~9EVn4*_!r}+{^2;} zwz}#@Iw?&|8F2LdXUIjh@kg3QH69tqxR_FzA;zVpY=E zcHnWh(3j3UXeD=4m_@)Ea4m#r?axC&X%#wC8FpJPDYR~@65T?pXuWdPzEqXP>|L`S zKYFF0I~%I>SFWF|&sDsRdXf$-TVGSoWTx7>7mtCVUrQNVjZ#;Krobgh76tiP*0(5A zs#<7EJ#J`Xhp*IXB+p5{b&X3GXi#b*u~peAD9vr0*Vd&mvMY^zxTD=e(`}ybDt=BC(4q)CIdp>aK z0c?i@vFWjcbK>oH&V_1m_EuZ;KjZSiW^i30U` zGLK{%1o9TGm8@gy+Rl=-5&z`~Un@l*2ne3e9B+>wKyxuoUa1qhf?-Pi= zZLCD-b7*(ybv6uh4b`s&Ol3hX2ZE<}N@iC+h&{J5U|U{u$XK0AJz)!TSX6lrkG?ris;y{s zv`B5Rq(~G58?KlDZ!o9q5t%^E4`+=ku_h@~w**@jHV-+cBW-`H9HS@o?YUUkKJ;AeCMz^f@FgrRi@?NvO3|J zBM^>4Z}}!vzNum!R~o0)rszHG(eeq!#C^wggTgne^2xc9nIanR$pH1*O;V>3&#PNa z7yoo?%T(?m-x_ow+M0Bk!@ow>A=skt&~xK=a(GEGIWo4AW09{U%(;CYLiQIY$bl3M zxC_FGKY%J`&oTS{R8MHVe{vghGEshWi!(EK*DWmoOv|(Ff#(bZ-<~{rc|a%}Q4-;w z{2gca97m~Nj@Nl{d)P`J__#Zgvc@)q_(yfrF2yHs6RU8UXxcU(T257}E#E_A}%2_IW?%O+7v((|iQ{H<|$S7w?;7J;iwD>xbZc$=l*(bzRXc~edIirlU0T&0E_EXfS5%yA zs0y|Sp&i`0zf;VLN=%hmo9!aoLGP<*Z7E8GT}%)cLFs(KHScNBco(uTubbxCOD_%P zD7XlHivrSWLth7jf4QR9`jFNk-7i%v4*4fC*A=;$Dm@Z^OK|rAw>*CI%E z3%14h-)|Q%_$wi9=p!;+cQ*N1(47<49TyB&B*bm_m$rs+*ztWStR~>b zE@V06;x19Y_A85N;R+?e?zMTIqdB1R8>(!4_S!Fh={DGqYvA0e-P~2DaRpCYf4$-Q z*&}6D!N_@s`$W(|!DOv%>R0n;?#(HgaI$KpHYpnbj~I5eeI(u4CS7OJajF%iKz)*V zt@8=9)tD1ML_CrdXQ81bETBeW!IEy7mu4*bnU--kK;KfgZ>oO>f)Sz~UK1AW#ZQ_ic&!ce~@(m2HT@xEh5u%{t}EOn8ET#*U~PfiIh2QgpT z%gJU6!sR2rA94u@xj3%Q`n@d}^iMH#X>&Bax+f4cG7E{g{vlJQ!f9T5wA6T`CgB%6 z-9aRjn$BmH=)}?xWm9bf`Yj-f;%XKRp@&7?L^k?OT_oZXASIqbQ#eztkW=tmRF$~% z6(&9wJuC-BlGrR*(LQKx8}jaE5t`aaz#Xb;(TBK98RJBjiqbZFyRNTOPA;fG$;~e` zsd6SBii3^(1Y`6^#>kJ77xF{PAfDkyevgox`qW`nz1F`&w*DH5Oh1idOTLES>DToi z8Qs4|?%#%>yuQO1#{R!-+2AOFznWo)e3~_D!nhoDgjovB%A8< zt%c^KlBL$cDPu!Cc`NLc_8>f?)!FGV7yudL$bKj!h;eOGkd;P~sr6>r6TlO{Wp1%xep8r1W{`<4am^(U} z+nCDP{Z*I?IGBE&*KjiaR}dpvM{ZFMW%P5Ft)u$FD373r2|cNsz%b0uk1T+mQI@4& zFF*~xDxDRew1Bol-*q>F{Xw8BUO;>|0KXf`lv7IUh%GgeLUzR|_r(TXZTbfXFE0oc zmGMwzNFgkdg><=+3MnncRD^O`m=SxJ6?}NZ8BR)=ag^b4Eiu<_bN&i0wUaCGi60W6 z%iMl&`h8G)y`gfrVw$={cZ)H4KSQO`UV#!@@cDx*hChXJB7zY18EsIo1)tw0k+8u; zg(6qLysbxVbLFbkYqKbEuc3KxTE+%j5&k>zHB8_FuDcOO3}FS|eTxoUh2~|Bh?pD| zsmg(EtMh`@s;`(r!%^xxDt(5wawK+*jLl>_Z3shaB~vdkJ!V3RnShluzmwn7>PHai z3avc`)jZSAvTVC6{2~^CaX49GXMtd|sbi*swkgoyLr=&yp!ASd^mIC^D;a|<=3pSt zM&0u%#%DGzlF4JpMDs~#kU;UCtyW+d3JwNiu`Uc7Yi6%2gfvP_pz8I{Q<#25DjM_D z(>8yI^s@_tG@c=cPoZImW1CO~`>l>rs=i4BFMZT`vq5bMOe!H@8q@sEZX<-kiY&@u3g1YFc zc@)@OF;K-JjI(eLs~hy8qOa9H1zb!3GslI!nH2DhP=p*NLHeh^9WF?4Iakt+b( z-4!;Q-8c|AX>t+5I64EKpDj4l2x*!_REy9L_9F~i{)1?o#Ws{YG#*}lg_zktt#ZlN zmoNsGm7$AXLink`GWtY*TZEH!J9Qv+A1y|@>?&(pb(6XW#ZF*}x*{60%wnt{n8Icp zq-Kb($kh6v_voqvA`8rq!cgyu;GaWZ>C2t6G5wk! zcKTlw=>KX3ldU}a1%XESW71))Z=HW%sMj2znJ;fdN${00DGGO}d+QsTQ=f;BeZ`eC~0-*|gn$9G#`#0YbT(>O(k&!?2jI z&oi9&3n6Vz<4RGR}h*1ggr#&0f%Op(6{h>EEVFNJ0C>I~~SmvqG+{RXDrexBz zw;bR@$Wi`HQ3e*eU@Cr-4Z7g`1R}>3-Qej(#Dmy|CuFc{Pg83Jv(pOMs$t(9vVJQJ zXqn2Ol^MW;DXq!qM$55vZ{JRqg!Q1^Qdn&FIug%O3=PUr~Q`UJuZ zc`_bE6i^Cp_(fka&A)MsPukiMyjG$((zE$!u>wyAe`gf-1Qf}WFfi1Y{^ zdCTTrxqpQE#2BYWEBnTr)u-qGSVRMV7HTC(x zb(0FjYH~nW07F|{@oy)rlK6CCCgyX?cB;19Z(bCP5>lwN0UBF}Ia|L0$oGHl-oSTZ zr;(u7nDjSA03v~XoF@ULya8|dzH<2G=n9A)AIkQKF0mn?!BU(ipengAE}6r`CE!jd z=EcX8exgDZZQ~~fgxR-2yF;l|kAfnjhz|i_o~cYRdhnE~1yZ{s zG!kZJ<-OVnO{s3bOJK<)`O;rk>=^Sj3M76Nqkj<_@Jjw~iOkWUCL+*Z?+_Jvdb!0cUBy=(5W9H-r4I zxAFts>~r)B>KXdQANyaeKvFheZMgoq4EVV0|^NR@>ea* zh%<78{}wsdL|9N1!jCN-)wH4SDhl$MN^f_3&qo?>Bz#?c{ne*P1+1 z!a`(2Bxy`S^(cw^dv{$cT^wEQ5;+MBctgPfM9kIQGFUKI#>ZfW9(8~Ey-8`OR_XoT zflW^mFO?AwFWx9mW2-@LrY~I1{dlX~jBMt!3?5goHeg#o0lKgQ+eZcIheq@A&dD}GY&1c%hsgo?z zH>-hNgF?Jk*F0UOZ*bs+MXO(dLZ|jzKu5xV1v#!RD+jRrHdQ z>>b){U(I@i6~4kZXn$rk?8j(eVKYJ2&k7Uc`u01>B&G@c`P#t#x@>Q$N$1aT514fK zA_H8j)UKen{k^ehe%nbTw}<JV6xN_|| z(bd-%aL}b z3VITE`N~@WlS+cV>C9TU;YfsU3;`+@hJSbG6aGvis{Gs%2K|($)(_VfpHB|DG8Nje+0tCNW%_cu3hk0F)~{-% zW{2xSu@)Xnc`Dc%AOH)+LT97ImFR*WekSnJ3OYIs#ijP4TD`K&7NZKsfZ;76k@VD3py?pSw~~r^VV$Z zuUl9lF4H2(Qga0EP_==vQ@f!FLC+Y74*s`Ogq|^!?RRt&9e9A&?Tdu=8SOva$dqgYU$zkKD3m>I=`nhx-+M;-leZgt z8TeyQFy`jtUg4Ih^JCUcq+g_qs?LXSxF#t+?1Jsr8c1PB#V+f6aOx@;ThTIR4AyF5 z3m$Rq(6R}U2S}~Bn^M0P&Aaux%D@ijl0kCCF48t)+Y`u>g?|ibOAJoQGML@;tn{%3IEMaD(@`{7ByXQ`PmDeK*;W?| zI8%%P8%9)9{9DL-zKbDQ*%@Cl>Q)_M6vCs~5rb(oTD%vH@o?Gk?UoRD=C-M|w~&vb z{n-B9>t0EORXd-VfYC>sNv5vOF_Wo5V)(Oa%<~f|EU7=npanpVX^SxPW;C!hMf#kq z*vGNI-!9&y!|>Zj0V<~)zDu=JqlQu+ii387D-_U>WI_`3pDuHg{%N5yzU zEulPN)%3&{PX|hv*rc&NKe(bJLhH=GPuLk5pSo9J(M9J3v)FxCo65T%9x<)x+&4Rr2#nu2?~Glz|{28OV6 z)H^`XkUL|MG-$XE=M4*fIPmeR2wFWd>5o*)(gG^Y>!P4(f z68RkX0cRBOFc@`W-IA(q@p@m>*2q-`LfujOJ8-h$OgHte;KY4vZKTxO95;wh#2ZDL zKi8aHkz2l54lZd81t`yY$Tq_Q2_JZ1d(65apMg}vqwx=ceNOWjFB)6m3Q!edw2<{O z4J6+Un(E8jxs-L-K_XM_VWahy zE+9fm_ZaxjNi{fI_AqLKqhc4IkqQ4`Ut$=0L)nzlQw^%i?bP~znsbMY3f}*nPWqQZ zz_CQDpZ?Npn_pEr`~SX1`OoSkS;bmzQ69y|W_4bH3&U3F7EBlx+t%2R02VRJ01cfX zo$$^ObDHK%bHQaOcMpCq@@Jp8!OLYVQO+itW1ZxlkmoG#3FmD4b61mZjn4H|pSmYi2YE;I#@jtq8Mhjdgl!6({gUsQA>IRXb#AyWVt7b=(HWGUj;wd!S+q z4S+H|y<$yPrrrTqQHsa}H`#eJFV2H5Dd2FqFMA%mwd`4hMK4722|78d(XV}rz^-GV(k zqsQ>JWy~cg_hbp0=~V3&TnniMQ}t#INg!o2lN#H4_gx8Tn~Gu&*ZF8#kkM*5gvPu^ zw?!M^05{7q&uthxOn?%#%RA_%y~1IWly7&_-sV!D=Kw3DP+W)>YYRiAqw^d7vG_Q%v;tRbE1pOBHc)c&_5=@wo4CJTJ1DeZErEvP5J(kc^GnGYX z|LqQjTkM{^gO2cO#-(g!7^di@$J0ibC(vsnVkHt3osnWL8?-;R1BW40q5Tmu_9L-s z7fNF5fiuS-%B%F$;D97N-I@!~c+J>nv%mzQ5vs?1MgR@XD*Gv`A{s8 z5Cr>z5j?|sb>n=c*xSKHpdy667QZT?$j^Doa%#m4ggM@4t5Oe%iW z@w~j_B>GJJkO+6dVHD#CkbC(=VMN8nDkz%44SK62N(ZM#AsNz1KW~3(i=)O;q5JrK z?vAVuL}Rme)OGQuLn8{3+V352UvEBV^>|-TAAa1l-T)oiYYD&}Kyxw73shz?Bn})7 z_a_CIPYK(zMp(i+tRLjy4dV#CBf3s@bdmwXo`Y)dRq9r9-c@^2S*YoNOmAX%@OYJOXs zT*->in!8Ca_$W8zMBb04@|Y)|>WZ)-QGO&S7Zga1(1#VR&)X+MD{LEPc%EJCXIMtr z1X@}oNU;_(dfQ_|kI-iUSTKiVzcy+zr72kq)TIp(GkgVyd%{8@^)$%G)pA@^Mfj71FG%d?sf(2Vm>k%X^RS`}v0LmwIQ7!_7cy$Q8pT?X1VWecA_W68u==HbrU& z@&L6pM0@8ZHL?k{6+&ewAj%grb6y@0$3oamTvXsjGmPL_$~OpIyIq%b$(uI1VKo zk_@{r>1p84UK3}B>@d?xUZ}dJk>uEd+-QhwFQ`U?rA=jj+$w8sD#{492P}~R#%z%0 z5dlltiAaiPKv9fhjmuy{*m!C22$;>#85EduvdSrFES{QO$bHpa7E@&{bWb@<7VhTF zXCFS_wB>7*MjJ3$_i4^A2XfF2t7`LOr3B@??OOUk=4fKkaHne4RhI~Lm$JrHfUU*h zgD9G66;_F?3>0W{pW2A^DR7Bq`ZUiSc${S8EM>%gFIqAw0du4~kU#vuCb=$I_PQv? zZfEY7X6c{jJZ@nF&T>4oyy(Zr_XqnMq)ZtGPASbr?IhZOnL|JKY()`eo=P5UK9(P-@ zOJKFogtk|pscVD+#$7KZs^K5l4gC}*CTd0neZ8L(^&1*bPrCp23%{VNp`4Ld*)Fly z)b|zb*bCzp?&X3_=qLT&0J+=p01&}9*xbk~^hd^@mV!Ha`1H+M&60QH2c|!Ty`RepK|H|Moc5MquD z=&$Ne3%WX+|7?iiR8=7*LW9O3{O%Z6U6`VekeF8lGr5vd)rsZu@X#5!^G1;nV60cz zW?9%HgD}1G{E(YvcLcIMQR65BP50)a;WI*tjRzL7diqRqh$3>OK{06VyC=pj6OiardshTnYfve5U>Tln@y{DC99f!B4> zCrZa$B;IjDrg}*D5l=CrW|wdzENw{q?oIj!Px^7DnqAsU7_=AzXxoA;4(YvN5^9ag zwEd4-HOlO~R0~zk>!4|_Z&&q}agLD`Nx!%9RLC#7fK=w06e zOK<>|#@|e2zjwZ5aB>DJ%#P>k4s0+xHJs@jROvoDQfSoE84l8{9y%5^POiP+?yq0> z7+Ymbld(s-4p5vykK@g<{X*!DZt1QWXKGmj${`@_R~=a!qPzB357nWW^KmhV!^G3i zsYN{2_@gtzsZH*FY!}}vNDnqq>kc(+7wK}M4V*O!M&GQ|uj>+8!Q8Ja+j3f*MzwcI z^s4FXGC=LZ?il4D+Y^f89wh!d7EU-5dZ}}>_PO}jXRQ@q^CjK-{KVnmFd_f&IDKmx zZ5;PDLF%_O);<4t`WSMN;Ec^;I#wU?Z?_R|Jg`#wbq;UM#50f@7F?b7ySi-$C-N;% zqXowTcT@=|@~*a)dkZ836R=H+m6|fynm#0Y{KVyYU=_*NHO1{=Eo{^L@wWr7 zjz9GOu8Fd&v}a4d+}@J^9=!dJRsCO@=>K6UCM)Xv6};tb)M#{(k!i}_0Rjq z2kb7wPcNgov%%q#(1cLykjrxAg)By+3QueBR>Wsep&rWQHq1wE!JP+L;q+mXts{j@ zOY@t9BFmofApO0k@iBFPeKsV3X=|=_t65QyohXMSfMRr7Jyf8~ogPVmJwbr@`nmml zov*NCf;*mT(5s4K=~xtYy8SzE66W#tW4X#RnN%<8FGCT{z#jRKy@Cy|!yR`7dsJ}R z!eZzPCF+^b0qwg(mE=M#V;Ud9)2QL~ z-r-2%0dbya)%ui_>e6>O3-}4+Q!D+MU-9HL2tH)O`cMC1^=rA=q$Pcc;Zel@@ss|K zH*WMdS^O`5Uv1qNTMhM(=;qjhaJ|ZC41i2!kt4;JGlXQ$tvvF8Oa^C@(q6(&6B^l) zNG{GaX?`qROHwL-F1WZDEF;C6Inuv~1&ZuP3j53547P38tr|iPH#3&hN*g0R^H;#) znft`cw0+^Lwe{!^kQat+xjf_$SZ05OD6~U`6njelvd+4pLZU(0ykS5&S$)u?gm!;} z+gJ8g12b1D4^2HH!?AHFAjDAP^q)Juw|hZfIv{3Ryn%4B^-rqIF2 zeWk^za4fq#@;re{z4_O|Zj&Zn{2WsyI^1%NW=2qA^iMH>u>@;GAYI>Bk~u0wWQrz* zdEf)7_pSYMg;_9^qrCzvv{FZYwgXK}6e6ceOH+i&+O=x&{7aRI(oz3NHc;UAxMJE2 zDb0QeNpm$TDcshGWs!Zy!shR$lC_Yh-PkQ`{V~z!AvUoRr&BAGS#_*ZygwI2-)6+a zq|?A;+-7f0Dk4uuht z6sWPGl&Q$bev1b6%aheld88yMmBp2j=z*egn1aAWd?zN=yEtRDGRW&nmv#%OQwuJ; zqKZ`L4DsqJwU{&2V9f>2`1QP7U}`6)$qxTNEi`4xn!HzIY?hDnnJZw+mFnVSry=bLH7ar+M(e9h?GiwnOM?9ZJcTJ08)T1-+J#cr&uHhXkiJ~}&(}wvzCo33 zLd_<%rRFQ3d5fzKYQy41<`HKk#$yn$Q+Fx-?{3h72XZrr*uN!5QjRon-qZh9-uZ$rWEKZ z!dJMP`hprNS{pzqO`Qhx`oXGd{4Uy0&RDwJ`hqLw4v5k#MOjvyt}IkLW{nNau8~XM z&XKeoVYreO=$E%z^WMd>J%tCdJx5-h+8tiawu2;s& zD7l`HV!v@vcX*qM(}KvZ#%0VBIbd)NClLBu-m2Scx1H`jyLYce;2z;;eo;ckYlU53 z9JcQS+CvCwj*yxM+e*1Vk6}+qIik2VzvUuJyWyO}piM1rEk%IvS;dsXOIR!#9S;G@ zPcz^%QTf9D<2~VA5L@Z@FGQqwyx~Mc-QFzT4Em?7u`OU!PB=MD8jx%J{<`tH$Kcxz zjIvb$x|`s!-^^Zw{hGV>rg&zb;=m?XYAU0LFw+uyp8v@Y)zmjj&Ib7Y1@r4`cfrS%cVxJiw`;*BwIU*6QVsBBL;~nw4`ZFqs z1YSgLVy=rvA&GQB4MDG+j^)X1N=T;Ty2lE-`zrg(dNq?=Q`nCM*o8~A2V~UPArX<| zF;e$5B0hPSo56=ePVy{nah#?e-Yi3g*z6iYJ#BFJ-5f0KlQ-PRiuGwe29fyk1T6>& zeo2lvb%h9Vzi&^QcVNp}J!x&ubtw5fKa|n2XSMlg#=G*6F|;p)%SpN~l8BaMREDQN z-c9O}?%U1p-ej%hzIDB!W_{`9lS}_U==fdYpAil1E3MQOFW^u#B)Cs zTE3|YB0bKpXuDKR9z&{4gNO3VHDLB!xxPES+)yaJxo<|}&bl`F21};xsQnc!*FPZA zSct2IU3gEu@WQKmY-vA5>MV?7W|{$rAEj4<8`*i)<%fj*gDz2=ApqZ&MP&0UmO1?q!GN=di+n(#bB_mHa z(H-rIOJqamMfwB%?di!TrN=x~0jOJtvb0e9uu$ZCVj(gJyK}Fa5F2S?VE30P{#n3eMy!-v7e8viCooW9cfQx%xyPNL*eDKL zB=X@jxulpkLfnar7D2EeP*0L7c9urDz{XdV;@tO;u`7DlN7#~ zAKA~uM2u8_<5FLkd}OzD9K zO5&hbK8yakUXn8r*H9RE zO9Gsipa2()=&x=1mnQtNP#4m%GXThu8Ccqx*qb;S{5}>bU*V5{SY~(Hb={cyTeaTM zMEaKedtJf^NnJrwQ^Bd57vSlJ3l@$^0QpX@_1>h^+js8QVpwOiIMOiSC_>3@dt*&| zV?0jRdlgn|FIYam0s)a@5?0kf7A|GD|dRnP1=B!{ldr;N5s)}MJ=i4XEqlC}w)LEJ}7f9~c!?It(s zu>b=YBlFRi(H-%8A!@Vr{mndRJ z_jx*?BQpK>qh`2+3cBJhx;>yXPjv>dQ0m+nd4nl(L;GmF-?XzlMK zP(Xeyh7mFlP#=J%i~L{o)*sG7H5g~bnL2Hn3y!!r5YiYRzgNTvgL<(*g5IB*gcajK z86X3LoW*5heFmkIQ-I_@I_7b!Xq#O;IzOv(TK#(4gd)rmCbv5YfA4koRfLydaIXUU z8(q?)EWy!sjsn-oyUC&uwJqEXdlM}#tmD~*Ztav=mTQyrw0^F=1I5lj*}GSQTQOW{ z=O12;?fJfXxy`)ItiDB@0sk43AZo_sRn*jc#S|(2*%tH84d|UTYN!O4R(G6-CM}84 zpiyYJ^wl|w@!*t)dwn0XJv2kuHgbfNL$U6)O-k*~7pQ?y=sQJdKk5x`1>PEAxjIWn z{H$)fZH4S}%?xzAy1om0^`Q$^?QEL}*ZVQK)NLgmnJ`(we z21c23X1&=^>k;UF-}7}@nzUf5HSLUcOYW&gsqUrj7%d$)+d8ZWwTZq)tOgc%fz95+ zl%sdl)|l|jXfqIcjKTFrX74Rbq1}osA~fXPSPE?XO=__@`7k4Taa!sHE8v-zfx(AM zXT_(7u;&_?4ZIh%45x>p!(I&xV|IE**qbqCRGD5aqLpCRvrNy@uT?iYo-FPpu`t}J zSTZ}MDrud+`#^14r`A%UoMvN;raizytxMBV$~~y3i0#m}0F}Dj_fBIz+)1RWdnctP z>^O^vd0E+jS+$V~*`mZWER~L^q?i-6RPxxufWdrW=%prbCYT{5>Vgu%vPB)~NN*2L zB?xQg2K@+Xy=sPh$%10LH!39p&SJG+3^i*lFLn=uY8Io6AXRZf;p~v@1(hWsFzeKzx99_{w>r;cypkPVJCKtLGK>?-K0GE zGH>$g?u`)U_%0|f#!;+E>?v>qghuBwYZxZ*Q*EE|P|__G+OzC-Z+}CS(XK^t!TMoT zc+QU|1C_PGiVp&_^wMxfmMAuJDQ%1p4O|x5DljN6+MJiO%8s{^ts8$uh5`N~qK46c`3WY#hRH$QI@*i1OB7qBIN*S2gK#uVd{ zik+wwQ{D)g{XTGjKV1m#kYhmK#?uy)g@idi&^8mX)Ms`^=hQGY)j|LuFr8SJGZjr| zzZf{hxYg)-I^G|*#dT9Jj)+wMfz-l7ixjmwHK9L4aPdXyD-QCW!2|Jn(<3$pq-BM; zs(6}egHAL?8l?f}2FJSkP`N%hdAeBiD{3qVlghzJe5s9ZUMd`;KURm_eFaK?d&+TyC88v zCv2R(Qg~0VS?+p+l1e(aVq`($>|0b{{tPNbi} zaZDffTZ7N|t2D5DBv~aX#X+yGagWs1JRsqbr4L8a`B`m) z1p9?T`|*8ZXHS7YD8{P1Dk`EGM`2Yjsy0=7M&U6^VO30`Gx!ZkUoqmc3oUbd&)V*iD08>dk=#G!*cs~^tOw^s8YQqYJ z!5=-4ZB7rW4mQF&YZw>T_in-c9`0NqQ_5Q}fq|)%HECgBd5KIo`miEcJ>~a1e2B@) zL_rqoQ;1MowD34e6#_U+>D`WcnG5<2Q6cnt4Iv@NC$*M+i3!c?6hqPJLsB|SJ~xo! zm>!N;b0E{RX{d*in3&0w!cmB&TBNEjhxdg!fo+}iGE*BWV%x*46rT@+cXU;leofWy zxst{S8m!_#hIhbV7wfWN#th8OI5EUr3IR_GOIzBgGW1u4J*TQxtT7PXp#U#EagTV* zehVkBFF06`@5bh!t%L)-)`p|d7D|^kED7fsht#SN7*3`MKZX};Jh0~nCREL_BGqNR zxpJ4`V{%>CAqEE#Dt95u=;Un8wLhrac$fao`XlNsOH%&Ey2tK&vAcriS1kXnntDuttcN{%YJz@!$T zD&v6ZQ>zS1`o!qT=JK-Y+^i~bZkVJpN8%<4>HbuG($h9LP;{3DJF_Jcl8CA5M~<3s^!$Sg62zLEnJtZ z0`)jwK75Il6)9XLf(64~`778D6-#Ie1IR2Ffu+_Oty%$8u+bP$?803V5W6%(+iZzp zp5<&sBV&%CJcXUIATUakP1czt$&0x$lyoLH!ueNaIpvtO z*eCijxOv^-D?JaLzH<3yhOfDENi@q#4w(#tl-19(&Yc2K%S8Y&r{3~-)P17sC1{rQ zOy>IZ6%814_UoEi+w9a4XyGXF66{rgE~UT)oT4x zg9oIx@|{KL#VpTyE=6WK@Sbd9RKEEY)5W{-%0F^6(QMuT$RQRZ&yqfyF*Z$f8>{iT zq(;UzB-Ltv;VHvh4y%YvG^UEkvpe9ugiT97ErbY0ErCEOWs4J=kflA!*Q}gMbEP`N zY#L`x9a?E)*~B~t+7c8eR}VY`t}J;EWuJ-6&}SHnNZ8i0PZT^ahA@@HXk?c0{)6rC zP}I}_KK7MjXqn1E19gOwWvJ3i9>FNxN67o?lZy4H?n}%j|Dq$p%TFLUPJBD;R|*0O z3pLw^?*$9Ax!xy<&fO@;E2w$9nMez{5JdFO^q)B0OmGwkxxaDsEU+5C#g+?Ln-Vg@ z-=z4O*#*VJa*nujGnGfK#?`a|xfZsuiO+R}7y(d60@!WUIEUt>K+KTI&I z9YQ6#hVCo}0^*>yr-#Lisq6R?uI=Ms!J7}qm@B}Zu zp%f-~1Cf!-5S0xXl`oqq&fS=tt0`%dDWI&6pW(s zJXtYiY&~t>k5I0RK3sN;#8?#xO+*FeK#=C^%{Y>{k{~bXz%(H;)V5)DZRk~(_d0b6 zV!x54fwkl`1y;%U;n|E#^Vx(RGnuN|T$oJ^R%ZmI{8(9>U-K^QpDcT?Bb@|J0NAfvHtL#wP ziYupr2E5=_KS{U@;kyW7oy*+UTOiF*e+EhYqVcV^wx~5}49tBNSUHLH1=x}6L2Fl^4X4633$k!ZHZTL50Vq+a5+ z<}uglXQ<{x&6ey)-lq6;4KLHbR)_;Oo^FodsYSw3M-)FbLaBcPI=-ao+|))T2ksKb z{c%Fu`HR1dqNw8%>e0>HI2E_zNH1$+4RWfk}p-h(W@)7LC zwVnUO17y+~kw35CxVtokT44iF$l8XxYuetp)1Br${@lb(Q^e|q*5%7JNxp5B{r<09 z-~8o#rI1(Qb9FhW-igcsC6npf5j`-v!nCrAcVx5+S&_V2D>MOWp6cV$~Olhp2`F^Td{WV`2k4J`djb#M>5D#k&5XkMu*FiO(uP{SNX@(=)|Wm`@b> z_D<~{ip6@uyd7e3Rn+qM80@}Cl35~^)7XN?D{=B-4@gO4mY%`z!kMIZizhGtCH-*7 z{a%uB4usaUoJwbkVVj%8o!K^>W=(ZzRDA&kISY?`^0YHKe!()(*w@{w7o5lHd3(Us zUm-K=z&rEbOe$ackQ3XH=An;Qyug2g&vqf;zsRBldxA+=vNGoM$Zo9yT?Bn?`Hkiq z&h@Ss--~+=YOe@~JlC`CdSHy zcO`;bgMASYi6`WSw#Z|A;wQgH@>+I3OT6(*JgZZ_XQ!LrBJfVW2RK%#02|@V|H4&8DqslU6Zj(x!tM{h zRawG+Vy63_8gP#G!Eq>qKf(C&!^G$01~baLLk#)ov-Pqx~Du>%LHMv?=WBx2p2eV zbj5fjTBhwo&zeD=l1*o}Zs%SMxEi9yokhbHhY4N!XV?t8}?!?42E-B^Rh&ABFxovs*HeQ5{{*)SrnJ%e{){Z_#JH+jvwF7>Jo zE+qzWrugBwVOZou~oFa(wc7?`wNde>~HcC@>fA^o>ll?~aj-e|Ju z+iJzZg0y1@eQ4}rm`+@hH(|=gW^;>n>ydn!8%B4t7WL)R-D>mMw<7Wz6>ulFnM7QA ze2HEqaE4O6jpVq&ol3O$46r+DW@%glD8Kp*tFY#8oiSyMi#yEpVIw3#t?pXG?+H>v z$pUwT@0ri)_Bt+H(^uzp6qx!P(AdAI_Q?b`>0J?aAKTPt>73uL2(WXws9+T|%U)Jq zP?Oy;y6?{%J>}?ZmfcnyIQHh_jL;oD$`U#!v@Bf{5%^F`UiOX%)<0DqQ^nqA5Ac!< z1DPO5C>W0%m?MN*x(k>lDT4W3;tPi=&yM#Wjwc5IFNiLkQf`7GN+J*MbB4q~HVePM zeDj8YyA*btY&n!M9$tuOxG0)2um))hsVsY+(p~JnDaT7x(s2If0H_iRSju7!z7p|8 zzI`NV!1hHWX3m)?t68k6yNKvop{Z>kl)f5GV(~1InT4%9IxqhDX-rgj)Y|NYq_NTlZgz-)=Y$=x9L7|k0=m@6WQ<4&r=BX@pW25NtCI+N{e&`RGSpR zeb^`@FHm5?pWseZ6V08{R(ki}--13S2op~9Kzz;#cPgL}Tmrqd+gs(fJLTCM8#&|S z^L+7PbAhltJDyyxAVxqf(2h!RGC3$;hX@YNz@&JRw!m5?Q)|-tZ8u0D$4we+QytG^ zj0U_@+N|OJlBHdWPN!K={a$R1Zi{2%5QD}s&s-Xn1tY1cwh)8VW z$pjq>8sj4)?76EJs6bA0E&pfr^Vq`&Xc;Tl2T!fm+MV%!H|i0o;7A=zE?dl)-Iz#P zSY7QRV`qRc6b&rON`BValC01zSLQpVemH5y%FxK8m^PeNN(Hf1(%C}KPfC*L?Nm!nMW0@J3(J=mYq3DPk;TMs%h`-amWbc%7{1Lg3$ z^e=btuqch-lydbtLvazh+fx?87Q7!YRT(=-Vx;hO)?o@f1($e5B?JB9jcRd;zM;iE zu?3EqyK`@_5Smr#^a`C#M>sRwq2^|ym)X*r;0v6AM`Zz1aK94@9Ti)Lixun2N!e-A z>w#}xPxVd9AfaF$XTTff?+#D(xwOpjZj9-&SU%7Z-E2-VF-n#xnPeQH*67J=j>TL# z<v}>AiTXrQ(fYa%82%qlH=L z6Fg8@r4p+BeTZ!5cZlu$iR?EJpYuTx>cJ~{{B7KODY#o*2seq=p2U0Rh;3mX^9sza zk^R_l7jzL5BXWlrVkhh!+LQ-Nc0I`6l1mWkp~inn)HQWqMTWl4G-TBLglR~n&6J?4 z7J)IO{wkrtT!Csntw3H$Mnj>@;QbrxC&Shqn^VVu$Ls*_c~TTY~fri6fO-=eJsC*8(3(H zSyO>=B;G`qA398OvCHRvf3mabrPZaaLhn*+jeA`qI!gP&i8Zs!*bBqMXDJpSZG$N) zx0rDLvcO>EoqCTR)|n7eOp-jmd>`#w`6`;+9+hihW2WnKVPQ20LR94h+(p)R$Y!Q zj_3ZEY+e@NH0f6VjLND)sh+Cvfo3CpcXw?`$@a^@CyLrAKIpjL8G z`;cDLqvK=ER)$q)+6vMKlxn!!SzWl>Ib9Ys9L)L0IWr*Ox;Rk#(Dpqf;wapY_EYL8 zKFrV)Q8BBKO4$r2hON%g=r@lPE;kBUVYVG`uxx~QI>9>MCXw_5vnmDsm|^KRny929 zeKx>F(LDs#K4FGU*k3~GX`A!)l8&|tyan-rBHBm6XaB5hc5sGKWwibAD7&3M-gh1n z2?eI7E2u{(^z#W~wU~dHSfy|m)%PY454NBxED)y-T3AO`CLQxklcC1I@Y`v4~SEI#Cm> z-cjqK6I?mypZapi$ZK;y&G+|#D=woItrajg69VRD+Fu8*UxG6KdfFmFLE}HvBJ~Y) zC&c-hr~;H2Idnsz7_F~MKpBZldh)>itc1AL0>4knbVy#%pUB&9vqL1Kg*^aU`k#(p z=A%lur(|$GWSqILaWZ#2xj(&lheSiA|N6DOG?A|$!aYM)?oME6ngnfLw0CA79WA+y zhUeLbMw*VB?drVE_D~3DWVaD>8x?_q>f!6;)i3@W<=kBZBSE=uIU60SW)qct?AdM zXgti8&O=}QNd|u%Fpxr172Kc`sX^@fm>Fxl8fbFalJYci_GGoIzU*~U*I!QLz? z4NYk^=JXBS*Uph@51da-v;%?))cB^(ps}y8yChu7CzyC9SX{jAq13zdnqRHRvc{ha zcPmgCUqAJ^1RChMCCz;ZN*ap{JPoE<1#8nNObDbAt6Jr}Crq#xGkK@w2mLhIUecvy z#?s~?J()H*?w9K`_;S+8TNVkHSk}#yvn+|~jcB|he}OY(zH|7%EK%-Tq=)18730)v zM3f|=oFugXq3Lqn={L!wx|u(ycZf(Te11c3?^8~aF; zNMC)gi?nQ#S$s{46yImv_7@4_qu|XXEza~);h&cr*~dO@#$LtKZa@@r$8PD^jz{D6 zk~5;IJBuQjsKk+8i0wzLJ2=toMw4@rw7(|6`7*e|V(5-#ZzRirtkXBO1oshQ&0>z&HAtSF8+871e|ni4gLs#`3v7gnG#^F zDv!w100_HwtU}B2T!+v_YDR@-9VmoGW+a76oo4yy)o`MY(a^GcIvXW+4)t{lK}I-& zl-C=(w_1Z}tsSFjFd z3iZjkO6xnjLV3!EE?ex9rb1Zxm)O-CnWPat4vw08!GtcQ3lHD+ySRB*3zQu-at$rj zzBn`S?5h=JlLXX8)~Jp%1~YS6>M8c-Mv~E%s7_RcvIYjc-ia`3r>dvjxZ6=?6=#OM zfsv}?hGnMMdi9C`J9+g)5`M9+S79ug=!xE_XcHdWnIRr&hq$!X7aX5kJV8Q(6Lq?|AE8N2H z37j{DPDY^Jw!J>~>Mwaja$g%q1sYfH4bUJFOR`x=pZQ@O(-4b#5=_Vm(0xe!LW>YF zO4w`2C|Cu%^C9q9B>NjFD{+qt)cY3~(09ma%mp3%cjFsj0_93oVHC3)AsbBPuQNBO z`+zffU~AgGrE0K{NVR}@oxB4&XWt&pJ-mq!JLhFWbnXf~H%uU?6N zWJ7oa@``Vi$pMWM#7N9=sX1%Y+1qTGnr_G&h3YfnkHPKG}p>i{fAG+(klE z(g~u_rJXF48l1D?;;>e}Ra{P$>{o`jR_!s{hV1Wk`vURz`W2c$-#r9GM7jgs2>um~ zouGlCm92rOiLITzf`jgl`v2qYw^!Lh0YwFHO1|3Krp8ztE}?#2+>c)yQlNw%5e6w5 zIm9BKZN5Q9b!tX`Zo$0RD~B)VscWp(FR|!a!{|Q$={;ZWl%10vBzfgWn}WBe!%cug z^G%;J-L4<6&aCKx@@(Grsf}dh8fuGT+TmhhA)_16uB!t{HIAK!B-7fJLe9fsF)4G- zf>(~ⅅ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 H-+%o-(+5aQ literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..122a0dc --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Dec 28 10:00:20 PST 2015 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..9d82f78 --- /dev/null +++ b/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..aec9973 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..e7b4def --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':app'