├── .gitignore ├── LICENSE ├── Makefile ├── OSMroute.py ├── OSMroute.pyc ├── OSMroute_dialog.py ├── OSMroute_dialog.pyc ├── OSMroute_dialog_base.ui ├── README.md ├── __init__.py ├── __init__.pyc ├── logo.png ├── logo2.png ├── metadata.txt ├── pb_tool.cfg ├── plugin_upload.py ├── pylintrc ├── resource_rc.py ├── resources.qrc ├── resources_rc.py └── resources_rc.pyc /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Geolicious/OSMroute/28a96cb266c12d7355b28946e7bfeafb5d508397/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | {description} 294 | Copyright (C) {year} {fullname} 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | {signature of Ty Coon}, 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | 341 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | #/*************************************************************************** 2 | # OSMroute 3 | # 4 | # OpenRouteService routing 5 | # ------------------- 6 | # begin : 2015-06-17 7 | # git sha : $Format:%H$ 8 | # copyright : (C) 2015 by Riccardo Klinger / Geolicious 9 | # email : riccardo.klinger@geolicious.de 10 | # ***************************************************************************/ 11 | # 12 | #/*************************************************************************** 13 | # * * 14 | # * This program is free software; you can redistribute it and/or modify * 15 | # * it under the terms of the GNU General Public License as published by * 16 | # * the Free Software Foundation; either version 2 of the License, or * 17 | # * (at your option) any later version. * 18 | # * * 19 | # ***************************************************************************/ 20 | 21 | ################################################# 22 | # Edit the following to match your sources lists 23 | ################################################# 24 | 25 | 26 | #Add iso code for any locales you want to support here (space separated) 27 | # default is no locales 28 | # LOCALES = af 29 | LOCALES = 30 | 31 | # If locales are enabled, set the name of the lrelease binary on your system. If 32 | # you have trouble compiling the translations, you may have to specify the full path to 33 | # lrelease 34 | #LRELEASE = lrelease 35 | #LRELEASE = lrelease-qt4 36 | 37 | 38 | # translation 39 | SOURCES = \ 40 | __init__.py \ 41 | OSMroute.py \ 42 | OSMroute_dialog.py 43 | 44 | PLUGINNAME = OSMroute 45 | 46 | PY_FILES = \ 47 | OSMroute.py \ 48 | OSMroute_dialog.py \ 49 | __init__.py 50 | 51 | UI_FILES = OSMroute_dialog_base.ui 52 | 53 | EXTRAS = logo.png metadata.txt 54 | 55 | COMPILED_RESOURCE_FILES = resources_rc.py 56 | 57 | PEP8EXCLUDE=pydev,resources_rc.py,conf.py,third_party,ui 58 | 59 | 60 | ################################################# 61 | # Normally you would not need to edit below here 62 | ################################################# 63 | 64 | HELP = help/build/html 65 | 66 | PLUGIN_UPLOAD = $(c)/plugin_upload.py 67 | 68 | RESOURCE_SRC=$(shell grep '^ *@@g;s/.*>//g' | tr '\n' ' ') 69 | 70 | QGISDIR=.qgis2 71 | 72 | default: compile 73 | 74 | compile: $(COMPILED_RESOURCE_FILES) 75 | 76 | %_rc.py : %.qrc $(RESOURCES_SRC) 77 | pyrcc4 -o $*_rc.py $< 78 | 79 | %.qm : %.ts 80 | $(LRELEASE) $< 81 | 82 | test: compile transcompile 83 | @echo 84 | @echo "----------------------" 85 | @echo "Regression Test Suite" 86 | @echo "----------------------" 87 | 88 | @# Preceding dash means that make will continue in case of errors 89 | @-export PYTHONPATH=`pwd`:$(PYTHONPATH); \ 90 | export QGIS_DEBUG=0; \ 91 | export QGIS_LOG_FILE=/dev/null; \ 92 | nosetests -v --with-id --with-coverage --cover-package=. \ 93 | 3>&1 1>&2 2>&3 3>&- || true 94 | @echo "----------------------" 95 | @echo "If you get a 'no module named qgis.core error, try sourcing" 96 | @echo "the helper script we have provided first then run make test." 97 | @echo "e.g. source run-env-linux.sh ; make test" 98 | @echo "----------------------" 99 | 100 | deploy: compile doc transcompile 101 | @echo 102 | @echo "------------------------------------------" 103 | @echo "Deploying plugin to your .qgis2 directory." 104 | @echo "------------------------------------------" 105 | # The deploy target only works on unix like operating system where 106 | # the Python plugin directory is located at: 107 | # $HOME/$(QGISDIR)/python/plugins 108 | mkdir -p $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) 109 | cp -vf $(PY_FILES) $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) 110 | cp -vf $(UI_FILES) $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) 111 | cp -vf $(COMPILED_RESOURCE_FILES) $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) 112 | cp -vf $(EXTRAS) $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) 113 | cp -vfr i18n $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) 114 | cp -vfr $(HELP) $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME)/help 115 | 116 | # The dclean target removes compiled python files from plugin directory 117 | # also deletes any .git entry 118 | dclean: 119 | @echo 120 | @echo "-----------------------------------" 121 | @echo "Removing any compiled python files." 122 | @echo "-----------------------------------" 123 | find $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) -iname "*.pyc" -delete 124 | find $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) -iname ".git" -prune -exec rm -Rf {} \; 125 | 126 | 127 | derase: 128 | @echo 129 | @echo "-------------------------" 130 | @echo "Removing deployed plugin." 131 | @echo "-------------------------" 132 | rm -Rf $(HOME)/$(QGISDIR)/python/plugins/$(PLUGINNAME) 133 | 134 | zip: deploy dclean 135 | @echo 136 | @echo "---------------------------" 137 | @echo "Creating plugin zip bundle." 138 | @echo "---------------------------" 139 | # The zip target deploys the plugin and creates a zip file with the deployed 140 | # content. You can then upload the zip file on http://plugins.qgis.org 141 | rm -f $(PLUGINNAME).zip 142 | cd $(HOME)/$(QGISDIR)/python/plugins; zip -9r $(CURDIR)/$(PLUGINNAME).zip $(PLUGINNAME) 143 | 144 | package: compile 145 | # Create a zip package of the plugin named $(PLUGINNAME).zip. 146 | # This requires use of git (your plugin development directory must be a 147 | # git repository). 148 | # To use, pass a valid commit or tag as follows: 149 | # make package VERSION=Version_0.3.2 150 | @echo 151 | @echo "------------------------------------" 152 | @echo "Exporting plugin to zip package. " 153 | @echo "------------------------------------" 154 | rm -f $(PLUGINNAME).zip 155 | git archive --prefix=$(PLUGINNAME)/ -o $(PLUGINNAME).zip $(VERSION) 156 | echo "Created package: $(PLUGINNAME).zip" 157 | 158 | upload: zip 159 | @echo 160 | @echo "-------------------------------------" 161 | @echo "Uploading plugin to QGIS Plugin repo." 162 | @echo "-------------------------------------" 163 | $(PLUGIN_UPLOAD) $(PLUGINNAME).zip 164 | 165 | transup: 166 | @echo 167 | @echo "------------------------------------------------" 168 | @echo "Updating translation files with any new strings." 169 | @echo "------------------------------------------------" 170 | @chmod +x scripts/update-strings.sh 171 | @scripts/update-strings.sh $(LOCALES) 172 | 173 | transcompile: 174 | @echo 175 | @echo "----------------------------------------" 176 | @echo "Compiled translation files to .qm files." 177 | @echo "----------------------------------------" 178 | @chmod +x scripts/compile-strings.sh 179 | @scripts/compile-strings.sh $(LRELEASE) $(LOCALES) 180 | 181 | transclean: 182 | @echo 183 | @echo "------------------------------------" 184 | @echo "Removing compiled translation files." 185 | @echo "------------------------------------" 186 | rm -f i18n/*.qm 187 | 188 | clean: 189 | @echo 190 | @echo "------------------------------------" 191 | @echo "Removing uic and rcc generated files" 192 | @echo "------------------------------------" 193 | rm $(COMPILED_UI_FILES) $(COMPILED_RESOURCE_FILES) 194 | 195 | doc: 196 | @echo 197 | @echo "------------------------------------" 198 | @echo "Building documentation using sphinx." 199 | @echo "------------------------------------" 200 | cd help; make html 201 | 202 | pylint: 203 | @echo 204 | @echo "-----------------" 205 | @echo "Pylint violations" 206 | @echo "-----------------" 207 | @pylint --reports=n --rcfile=pylintrc . || true 208 | @echo 209 | @echo "----------------------" 210 | @echo "If you get a 'no module named qgis.core' error, try sourcing" 211 | @echo "the helper script we have provided first then run make pylint." 212 | @echo "e.g. source run-env-linux.sh ; make pylint" 213 | @echo "----------------------" 214 | 215 | 216 | # Run pep8 style checking 217 | #http://pypi.python.org/pypi/pep8 218 | pep8: 219 | @echo 220 | @echo "-----------" 221 | @echo "PEP8 issues" 222 | @echo "-----------" 223 | @pep8 --repeat --ignore=E203,E121,E122,E123,E124,E125,E126,E127,E128 --exclude $(PEP8EXCLUDE) . || true 224 | @echo "-----------" 225 | @echo "Ignored in PEP8 check:" 226 | @echo $(PEP8EXCLUDE) 227 | -------------------------------------------------------------------------------- /OSMroute.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | /*************************************************************************** 4 | OSMroute 5 | A QGIS plugin 6 | OpenRouteService routing 7 | ------------------- 8 | begin : 2015-06-17 9 | git sha : $Format:%H$ 10 | copyright : (C) 2015 by Riccardo Klinger / Geolicious 11 | email : riccardo.klinger@geolicious.de 12 | ***************************************************************************/ 13 | 14 | /*************************************************************************** 15 | * * 16 | * This program is free software; you can redistribute it and/or modify * 17 | * it under the terms of the GNU General Public License as published by * 18 | * the Free Software Foundation; either version 2 of the License, or * 19 | * (at your option) any later version. * 20 | * * 21 | ***************************************************************************/ 22 | """ 23 | from PyQt4.QtCore import QSettings, QTranslator, qVersion, QCoreApplication 24 | from PyQt4.QtGui import QAction, QIcon, QColor 25 | from PyQt4 import QtCore, QtGui 26 | # Initialize Qt resources from file resources.py 27 | 28 | # Import the code for the dialog 29 | from OSMroute_dialog import OSMrouteDialog 30 | from qgis.core import * #to get access to qgis 31 | #we will need these for getting the ors response and to parse it: 32 | 33 | from xml.etree import ElementTree 34 | import urllib2, os, qgis.utils, os.path, resources_rc, time 35 | #we need qvariant to build the shapefile 36 | from PyQt4.QtCore import QVariant 37 | import processing 38 | 39 | class OSMroute: 40 | """QGIS Plugin Implementation.""" 41 | 42 | def __init__(self, iface): 43 | """Constructor. 44 | 45 | :param iface: An interface instance that will be passed to this class 46 | which provides the hook by which you can manipulate the QGIS 47 | application at run time. 48 | :type iface: QgsInterface 49 | """ 50 | # Save reference to the QGIS interface 51 | self.iface = iface 52 | # initialize plugin directory 53 | self.plugin_dir = os.path.dirname(__file__) 54 | # initialize locale 55 | locale = QSettings().value('locale/userLocale')[0:2] 56 | locale_path = os.path.join( 57 | self.plugin_dir, 58 | 'i18n', 59 | 'OSMroute_{}.qm'.format(locale)) 60 | 61 | if os.path.exists(locale_path): 62 | self.translator = QTranslator() 63 | self.translator.load(locale_path) 64 | 65 | if qVersion() > '4.3.3': 66 | QCoreApplication.installTranslator(self.translator) 67 | 68 | # Create the dialog (after translation) and keep reference 69 | self.dlg = OSMrouteDialog() 70 | # Declare instance attributes 71 | self.actions = [] 72 | self.menu = self.tr(u'&OSM route') 73 | # TODO: We are going to let the user set this up in a future iteration 74 | self.toolbar = self.iface.addToolBar(u'OSMroute') 75 | self.toolbar.setObjectName(u'OSMroute') 76 | 77 | # noinspection PyMethodMayBeStatic 78 | def tr(self, message): 79 | """Get the translation for a string using Qt translation API. 80 | 81 | We implement this ourselves since we do not inherit QObject. 82 | 83 | :param message: String for translation. 84 | :type message: str, QString 85 | 86 | :returns: Translated version of message. 87 | :rtype: QString 88 | """ 89 | # noinspection PyTypeChecker,PyArgumentList,PyCallByClass 90 | return QCoreApplication.translate('OSMroute', message) 91 | 92 | 93 | def add_action( 94 | self, 95 | icon_path, 96 | text, 97 | callback, 98 | enabled_flag=True, 99 | add_to_menu=True, 100 | add_to_toolbar=True, 101 | status_tip=None, 102 | whats_this=None, 103 | parent=None): 104 | """Add a toolbar icon to the toolbar. 105 | 106 | :param icon_path: Path to the icon for this action. Can be a resource 107 | path (e.g. ':/plugins/foo/bar.png') or a normal file system path. 108 | :type icon_path: str 109 | 110 | :param text: Text that should be shown in menu items for this action. 111 | :type text: str 112 | 113 | :param callback: Function to be called when the action is triggered. 114 | :type callback: function 115 | 116 | :param enabled_flag: A flag indicating if the action should be enabled 117 | by default. Defaults to True. 118 | :type enabled_flag: bool 119 | 120 | :param add_to_menu: Flag indicating whether the action should also 121 | be added to the menu. Defaults to True. 122 | :type add_to_menu: bool 123 | 124 | :param add_to_toolbar: Flag indicating whether the action should also 125 | be added to the toolbar. Defaults to True. 126 | :type add_to_toolbar: bool 127 | 128 | :param status_tip: Optional text to show in a popup when mouse pointer 129 | hovers over the action. 130 | :type status_tip: str 131 | 132 | :param parent: Parent widget for the new action. Defaults None. 133 | :type parent: QWidget 134 | 135 | :param whats_this: Optional text to show in the status bar when the 136 | mouse pointer hovers over the action. 137 | 138 | :returns: The action that was created. Note that the action is also 139 | added to self.actions list. 140 | :rtype: QAction 141 | """ 142 | 143 | icon = QIcon(icon_path) 144 | action = QAction(icon, text, parent) 145 | action.triggered.connect(callback) 146 | action.setEnabled(enabled_flag) 147 | 148 | if status_tip is not None: 149 | action.setStatusTip(status_tip) 150 | 151 | if whats_this is not None: 152 | action.setWhatsThis(whats_this) 153 | 154 | if add_to_toolbar: 155 | self.toolbar.addAction(action) 156 | 157 | if add_to_menu: 158 | self.iface.addPluginToWebMenu( 159 | self.menu, 160 | action) 161 | 162 | self.actions.append(action) 163 | 164 | return action 165 | 166 | def initGui(self): 167 | """Create the menu entries and toolbar icons inside the QGIS GUI.""" 168 | 169 | icon_path = ':/plugins/OSMroute/logo.png' 170 | self.add_action( 171 | icon_path, 172 | text=self.tr(u'Create Route with OpenRouteService'), 173 | callback=self.run, 174 | parent=self.iface.mainWindow()) 175 | 176 | 177 | def unload(self): 178 | """Removes the plugin menu item and icon from QGIS GUI.""" 179 | for action in self.actions: 180 | self.iface.removePluginWebMenu( 181 | self.tr(u'&OSM route'), 182 | action) 183 | self.iface.removeToolBarIcon(action) 184 | # remove the toolbar 185 | del self.toolbar 186 | 187 | 188 | def run(self): 189 | """Run method that performs all the real work""" 190 | # show the dialog 191 | self.dlg.show() 192 | print "let's start" 193 | canvas = qgis.utils.iface.mapCanvas() 194 | allLayers = canvas.layers() 195 | #clear layer list prior calling the dialog 196 | self.dlg.start.clear() 197 | self.dlg.stop.clear() 198 | self.dlg.via.clear() 199 | self.dlg.mode.clear 200 | self.dlg.mode_access.clear() 201 | self.dlg.type.clear() 202 | self.dlg.mode.addItem('Fastest') 203 | self.dlg.mode.addItem('Shortest') 204 | self.dlg.type.addItem('Car') 205 | self.dlg.type.addItem('Bicycle') 206 | self.dlg.type.addItem('Pedestrian') 207 | self.dlg.mode_access.addItem('RecursiveGrid') 208 | self.dlg.mode_access.addItem('TIN') 209 | #we will not use heavy vehicle as it offers much mure detailed routing which is not commonly available 210 | #self.dlg.type.addItem('HeavyVehicle') 211 | #ATM we don't have interactivity with the map so disable those buttons: 212 | self.dlg.map_start.setEnabled(False) 213 | self.dlg.map_stop.setEnabled(False) 214 | self.dlg.map_via.setEnabled(False) 215 | 216 | # # Run the dialog event loop 217 | result = self.dlg.exec_() 218 | 219 | # See if OK was pressed 220 | if result: 221 | import time 222 | start = time.clock() 223 | start_address = self.dlg.start.text().encode('utf-8') 224 | stop_address = self.dlg.stop.text().encode('utf-8') 225 | via_address = self.dlg.via.text().encode('utf-8') 226 | mode = self.dlg.mode.currentText() 227 | travel_type = self.dlg.type.currentText() 228 | timeall = self.dlg.time.value() 229 | interval = self.dlg.interval.value() 230 | access_mode = self.dlg.mode_access.currentText() 231 | #The api changed 232 | #here comes the geocoding: 233 | # text='' + start_address + '' 234 | # req = urllib2.Request(url=url, 235 | # data=text, 236 | # headers={'Content-Type': 'application/xml'}) 237 | # response_start=urllib2.urlopen(req).read() 238 | #tidy up response 239 | newstr = response_start.replace("\n", "") 240 | response_start = newstr.replace(" ", "") 241 | xml = ElementTree.fromstring(response_start) 242 | start_point ="" 243 | for child in xml[1][0]: 244 | numberOfHits_start = child.attrib["numberOfGeocodedAddresses"] 245 | if numberOfHits_start != "0": 246 | start_point=xml[1][0][0][0][0][0].text 247 | if start_point =="": 248 | QtGui.QMessageBox.about(self.dlg, "No Coordinates Found", "Check your start address!") 249 | #do the same for the destination 250 | numberOfHits_stop = '0' 251 | stop_point ="" 252 | if stop_address != "": 253 | text='' + stop_address + '' 254 | req = urllib2.Request(url=url, 255 | data=text, 256 | headers={'Content-Type': 'application/xml'}) 257 | #tidy up response 258 | response_stop=urllib2.urlopen(req).read() 259 | newstr = response_stop.replace("\n", "") 260 | response_stop = newstr.replace(" ", "") 261 | xml = ElementTree.fromstring(response_stop) 262 | 263 | for child in xml[1][0]: 264 | numberOfHits_stop = child.attrib["numberOfGeocodedAddresses"] 265 | if numberOfHits_stop != "0": 266 | stop_point=xml[1][0][0][0][0][0].text 267 | if stop_point =="": 268 | QtGui.QMessageBox.about(self.dlg, "No Coordinates Found", "Check your destination address!") 269 | #and for via points: 270 | via_point = "" 271 | numberOfHits_via = '0' 272 | if via_address != "": 273 | text='' + via_address + '' 274 | req = urllib2.Request(url=url, 275 | data=text, 276 | headers={'Content-Type': 'application/xml'}) 277 | #tidy up response 278 | response_via=urllib2.urlopen(req).read() 279 | newstr = response_via.replace("\n", "") 280 | response_via = newstr.replace(" ", "") 281 | xml = ElementTree.fromstring(response_via) 282 | for child in xml[1][0]: 283 | numberOfHits_via = child.attrib["numberOfGeocodedAddresses"] 284 | if numberOfHits_via != "0": 285 | via_point=xml[1][0][0][0][0][0].text 286 | if via_point =="": 287 | QtGui.QMessageBox.about(self.dlg, "No Coordinates Found", "Check your via address!") 288 | #create the route for start and destination 289 | if start_point !="" and stop_point !="": 290 | #first, let's add the start and stop point 291 | layer = QgsVectorLayer('Point?crs=EPSG:4326', 'points' , "memory") 292 | pr = layer.dataProvider() 293 | pr.addAttributes([QgsField("attribution", QVariant.String)]) 294 | pr.addAttributes([QgsField("address", QVariant.String)]) 295 | pr.addAttributes([QgsField("type", QVariant.String)]) 296 | layer.updateFields() 297 | #we will do this manually at the moment: 298 | pt = QgsFeature() 299 | point = QgsPoint(float(str.split(start_point)[0]),float(str.split(start_point)[1])) 300 | pt.setGeometry(QgsGeometry.fromPoint(point)) 301 | pt.setAttributes(["location provided by openrouteservice.org", start_address, "Start point"]) 302 | pr.addFeatures([pt]) 303 | pt = QgsFeature() 304 | point = QgsPoint(float(str.split(stop_point)[0]),float(str.split(stop_point)[1])) 305 | pt.setGeometry(QgsGeometry.fromPoint(point)) 306 | pt.setAttributes(["location provided by openrouteservice.org", stop_address, "Stop point"]) 307 | pr.addFeatures([pt]) 308 | if via_point != "": 309 | pt = QgsFeature() 310 | point = QgsPoint(float(str.split(via_point)[0]),float(str.split(via_point)[1])) 311 | pt.setGeometry(QgsGeometry.fromPoint(point)) 312 | pt.setAttributes(["location provided by openrouteservice.org", via_address, "Via point"]) 313 | pr.addFeatures([pt]) 314 | layer.updateExtents() #update it 315 | QgsMapLayerRegistry.instance().addMapLayer(layer) 316 | #now the routing: 317 | text = ''' 318 | 319 | 320 | 321 | 322 | 323 | 324 | ''' 325 | text+=travel_type 326 | text+=''' 327 | 328 | ''' 329 | text+=mode 330 | text+=''' 331 | 332 | 333 | 334 | 335 | 336 | ''' 337 | text+=start_point 338 | text+=''' 339 | 340 | 341 | ''' 342 | if via_point != "": 343 | text +=''' 344 | 345 | 346 | ''' 347 | text+=via_point 348 | text+=''' 349 | 350 | 351 | ''' 352 | text+=''' 353 | 354 | 355 | ''' 356 | text+=stop_point 357 | text+=''' 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | ''' 371 | req = urllib2.Request(url=url, data=text, headers={'Content-Type': 'application/xml'}) 372 | response_route=urllib2.urlopen(req).read() 373 | newstr = response_route.replace("\n", "") 374 | response_route = newstr.replace(" ", "") 375 | 376 | if response_route != "": 377 | xml_route = ElementTree.fromstring(response_route) 378 | layer = QgsVectorLayer('LineString?crs=EPSG:4326', 'route_OSM', "memory") 379 | pr = layer.dataProvider() 380 | pr.addAttributes([QgsField("attribution", QVariant.String)]) 381 | pr.addAttributes([QgsField("distance", QVariant.Double)]) 382 | pr.addAttributes([QgsField("time", QVariant.String)]) 383 | layer.updateFields() 384 | fet = QgsFeature() 385 | seg=[] 386 | for i in range(0,len(xml_route[1][0][1][0])): 387 | seg.append(QgsPoint(float(str.split(xml_route[1][0][1][0][i].text)[0]),float(str.split(xml_route[1][0][1][0][i].text)[1]))) 388 | fet.setGeometry(QgsGeometry.fromPolyline(seg)) 389 | fet.setAttributes(["route provided by openrouteservice.org", float(xml_route[1][0][0][1].attrib['value']), xml_route[1][0][0][0].text]) 390 | pr.addFeatures([fet]) 391 | layer.updateExtents() #update it 392 | QgsMapLayerRegistry.instance().addMapLayer(layer) 393 | if timeall > 0 and interval >0 and start_point != '': 394 | #script for routing 395 | interval = int(interval) * 60 396 | text=''' 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 407 | 408 | 409 | ''' 410 | text+=travel_type 411 | text+=''' 412 | ''' 413 | text+=access_mode 414 | text+=''' 415 | ''' 416 | text+=str(interval) 417 | text+=''' 418 | 419 | 420 | 421 | 422 | ''' 423 | text += start_point 424 | text +=''' 425 | 426 | 427 | 428 | 429 | 430 | Detailed 431 | 432 | 433 | 434 | 435 | ''' 436 | req = urllib2.Request(url=url, data=text, headers={'Content-Type': 'application/xml'}) 437 | response_poly=urllib2.urlopen(req).read() 438 | newstr = response_poly.replace("\n", "") 439 | response_poly = newstr.replace(" ", "") 440 | xml_poly = ElementTree.fromstring(response_poly) 441 | #first we need to make sure, that OTF projection is enabled 442 | qgis.utils.iface.mapCanvas().mapRenderer().setProjectionsEnabled(True) # Enable on the fly reprojections 443 | #come to the layer 444 | layer = QgsVectorLayer('Polygon?crs=EPSG:4326', 'Accessibility', "memory") 445 | pr = layer.dataProvider() 446 | pr.addAttributes([QgsField("attribution", QVariant.String)]) 447 | pr.addAttributes([QgsField("time", QVariant.Int)]) 448 | pr.addAttributes([QgsField("area", QVariant.Double)]) 449 | layer.updateFields() 450 | for poly in reversed(range(0,len(xml_poly[1][0][1]))): 451 | fet = QgsFeature() 452 | seg=[] 453 | for i in range(0,len(xml_poly[1][0][1][poly][0][0][0][0])): 454 | #print response_poly 455 | #print float(xml_poly[1][0][1][poly][0].attrib['area']) 456 | seg.append(QgsPoint(float(str.split(xml_poly[1][0][1][poly][0][0][0][0][i].text)[0]),float(str.split(xml_poly[1][0][1][poly][0][0][0][0][i].text)[1]))) 457 | fet.setGeometry(QgsGeometry.fromPolygon([seg])) 458 | geom = fet.geometry() 459 | fet.setAttributes(["route provided by openrouteservice.org", float(xml_poly[1][0][1][poly].attrib['time'])/60, float(xml_poly[1][0][1][poly][0].attrib['area'])]) 460 | pr.addFeatures([fet]) 461 | layer.updateExtents() #update it 462 | features = layer.getFeatures() 463 | QgsMapLayerRegistry.instance().addMapLayer(layer) 464 | # now add a field fo the area: 465 | #expression = QgsExpression("$area") 466 | # This allows field lookup 467 | #expression.prepare(layer.pendingFields()) 468 | 469 | #layer.startEditing() 470 | #for feature in layer.getFeatures(): 471 | #value = expression.evaluate(feature) 472 | #feature["area"] = value 473 | #layer.updateFeature(feature) 474 | 475 | #layer.commitChanges() 476 | #as we have the layer we need to adjust the representation to make it a categorized layer. 477 | import random 478 | r = lambda: random.randint(0,255) 479 | color = '#%02X%02X%02X' % (r(),r(),r()) 480 | list = {} # empty 481 | categories = [] 482 | 483 | for i in reversed(range(0,len(xml_poly[1][0][1]))): 484 | r = lambda: random.randint(0,255) #create random color 485 | list.update({str(int(float(xml_poly[1][0][1][i].attrib['time'])/60)): ('#%02x%02x%02x' % (r(),r(),r()), str(int(float(xml_poly[1][0][1][i].attrib['time'])/60)))}) 486 | symbol = QgsSymbolV2.defaultSymbol(layer.geometryType()) 487 | symbol.setColor(QColor('#%02x%02x%02x' % (r(),r(),r()))) 488 | category = QgsRendererCategoryV2(str(int(float(xml_poly[1][0][1][i].attrib['time'])/60)), symbol, str(int(float(xml_poly[1][0][1][i].attrib['time'])/60))) 489 | categories.append(category) 490 | expression = 'time' # field name 491 | renderer = QgsCategorizedSymbolRendererV2(expression, categories) 492 | layer.setRendererV2(renderer) 493 | layer.setLayerTransparency(50) 494 | from qgis.gui import QgsMapCanvas 495 | canvas = QgsMapCanvas() 496 | canvas.refresh() 497 | # Do something useful here - delete the line containing pass and 498 | # substitute with your code. 499 | if int(numberOfHits_via) >1: 500 | print "routing finished between " + start_address + "(" + start_point + ") and " + stop_address + "(" + stop_point + ") via " + via_address + "(" + via_point + ")" 501 | else: 502 | print "routing finished between " + start_address + "(" + start_point + ") and " + stop_address + "(" + stop_point + ")" 503 | if int(numberOfHits_start) >1: 504 | print "multiple locations for start location" 505 | if int(numberOfHits_stop) >1: 506 | print "multiple locations for stop location" 507 | if int(numberOfHits_via) >1: 508 | print "multiple locations for via location" 509 | end = time.clock() 510 | #print "time needed to calculate: " + str(end - start) + "Distance: " + str(float(xml_route[1][0][0][1].attrib['value'])) + " from " + start_address + " to " + stop_address 511 | pass -------------------------------------------------------------------------------- /OSMroute.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Geolicious/OSMroute/28a96cb266c12d7355b28946e7bfeafb5d508397/OSMroute.pyc -------------------------------------------------------------------------------- /OSMroute_dialog.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | /*************************************************************************** 4 | OSMrouteDialog 5 | A QGIS plugin 6 | OpenRouteService routing 7 | ------------------- 8 | begin : 2015-06-17 9 | git sha : $Format:%H$ 10 | copyright : (C) 2015 by Riccardo Klinger / Geolicious 11 | email : riccardo.klinger@geolicious.de 12 | ***************************************************************************/ 13 | 14 | /*************************************************************************** 15 | * * 16 | * This program is free software; you can redistribute it and/or modify * 17 | * it under the terms of the GNU General Public License as published by * 18 | * the Free Software Foundation; either version 2 of the License, or * 19 | * (at your option) any later version. * 20 | * * 21 | ***************************************************************************/ 22 | """ 23 | 24 | import os 25 | 26 | from PyQt4 import QtGui, uic 27 | 28 | FORM_CLASS, _ = uic.loadUiType(os.path.join( 29 | os.path.dirname(__file__), 'OSMroute_dialog_base.ui')) 30 | 31 | 32 | class OSMrouteDialog(QtGui.QDialog, FORM_CLASS): 33 | def __init__(self, parent=None): 34 | """Constructor.""" 35 | super(OSMrouteDialog, self).__init__(parent) 36 | # Set up the user interface from Designer. 37 | # After setupUI you can access any designer object by doing 38 | # self., and you can use autoconnect slots - see 39 | # http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html 40 | # #widgets-and-dialogs-with-auto-connect 41 | self.setupUi(self) 42 | -------------------------------------------------------------------------------- /OSMroute_dialog.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Geolicious/OSMroute/28a96cb266c12d7355b28946e7bfeafb5d508397/OSMroute_dialog.pyc -------------------------------------------------------------------------------- /OSMroute_dialog_base.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | OSMrouteDialogBase 4 | 5 | 6 | 7 | 0 8 | 0 9 | 431 10 | 409 11 | 12 | 13 | 14 | OSM route 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 16 24 | 75 25 | false 26 | true 27 | 28 | 29 | 30 | OSM route 31 | 32 | 33 | 34 | 35 | 36 | 37 | Routes from addresses and accessibility polygons 38 | 39 | 40 | 41 | 42 | 43 | 44 | Routing powered by <a href="test">openrouteservice.org</a> 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | QFormLayout::AllNonFixedFieldsGrow 54 | 55 | 56 | 57 | 58 | 59 | Ubuntu 60 | 50 61 | false 62 | 63 | 64 | 65 | Start address 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | map it 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | Ubuntu 88 | 50 89 | false 90 | 91 | 92 | 93 | Destination address 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | map it 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | Via address 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | map it 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | Travel mode 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | Routing mode 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | Accessibility mode 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | Qt::Horizontal 166 | 167 | 168 | 169 | 40 170 | 20 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 13 180 | 181 | 182 | 183 | Accessibility analysis 184 | 185 | 186 | 187 | 188 | 189 | 190 | Isochrone polygon (min) 191 | 192 | 193 | 194 | 195 | 196 | 197 | 30 198 | 199 | 200 | 201 | 202 | 203 | 204 | Intervall (min) 205 | 206 | 207 | 208 | 209 | 210 | 211 | 30 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | Ubuntu 220 | 50 221 | false 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | Qt::Horizontal 233 | 234 | 235 | QDialogButtonBox::Cancel|QDialogButtonBox::Ok 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 8 244 | 245 | 246 | 247 | Brought to you by <a href="http://www.geolicious.de">Geolicious</a> 248 | 249 | 250 | Qt::AlignCenter 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | mode 260 | button_box 261 | 262 | 263 | 264 | 265 | button_box 266 | accepted() 267 | OSMrouteDialogBase 268 | accept() 269 | 270 | 271 | 20 272 | 20 273 | 274 | 275 | 20 276 | 20 277 | 278 | 279 | 280 | 281 | button_box 282 | rejected() 283 | OSMrouteDialogBase 284 | reject() 285 | 286 | 287 | 20 288 | 20 289 | 290 | 291 | 20 292 | 20 293 | 294 | 295 | 296 | 297 | 298 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # OSMrouter 3 | Find routes using OpenStreetMap data. 4 | 5 | **ATTENTION: The current API of OpenRouteService.org was reworked. THIS plugin isn't working anymore. Please use [OSM tools](https://plugins.qgis.org/plugins/OSMtools/)** 6 | 7 | ## Synopsis 8 | 9 | This plugin provides an easy way to get routes from Address A to B via C. Furthermore you can create polygons which represents isochrones. 10 | 11 | ## Usage 12 | 13 | For route creation type an address for start and destination. You can add a "via" address if you like. A temporary shapefile for the addresses will be created as well. 14 | The routing algorithm can be controlled using type of travel ("car", "bicycle", "pedestrian") and can diferentiate between fastest and shortest ways. The API from Openrouteservice.org will allow 1000 calls per hour. 15 | The route will be created as a temporary shapefile as well. 16 | 17 | Isochrone mapping is possible for a maximum of 30min travel time. You can choose between Recursive Grid (more accurate, slower) and TIN (faster). 18 | 19 | All files need to be saved seperately when needed for further analysis. 20 | 21 | ## Installation 22 | 23 | * Download the source and place it in the '/.qgis2/python/plugins/OSMroute' folder 24 | (Windows: 'C:\Users\{username}\.qgis2\python\plugins\OSMroute') 25 | * Import the plugin using the normal "add plugin" method described [here](http://docs.qgis.org/2.2/en/docs/user_manual/plugins/plugins.html#managing-plugins 'qgis plugins'). 26 | 27 | ## Version_changes 28 | * 2015/09/22 v.0.5 added new accisibility analysis 29 | * 2015/07/16 v.0.4.1 added API key as desired by openrouteservice.org 30 | * 2015/07/14 v.0.4 correct area for accessibility analysis and correct time attribute to differentiate polygons 31 | * 2015/07/05 v.0.3.2 set EPSG 4326 as default for new vector layers. 32 | * 2015/06/23 v.0.3.1 respecting travel type bike and ped on access analysis and corrected labels in GUI 33 | * 2015/06/21 v.0.3 added some attributes to routes and polygons 34 | * 2015/06/21 v.0.2 creation of categorized polygons for isochrone mapping 35 | * 2015/06/21 v.0.1.3 deleted unused import of modul 36 | * 2015/06/21 v.0.1.2 fixed issues with polygons 37 | * 2015/06/21 v.0.1.1 minor changes in description, added messagebox if geocoding fails 38 | * 2015/06/21 v.0.1: initial beta 39 | 40 | ## Tests 41 | 42 | It was tested on Linux Mint/Ubuntu and Windows 7 with QGIS 2.10 and Python 2.7.5+ 43 | 44 | ## Contributors 45 | 46 | We would like to thank the guys at OpenRouteService.org for this great API. 47 | 48 | ## License 49 | 50 | ``` 51 | /*************************************************************************** 52 | * * 53 | * This program is free software; you can redistribute it and/or modify * 54 | * it under the terms of the GNU General Public License as published by * 55 | * the Free Software Foundation; either version 2 of the License, or * 56 | * (at your option) any later version. * 57 | * * 58 | ***************************************************************************/ 59 | ``` 60 | 61 | -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | /*************************************************************************** 4 | OSMroute 5 | A QGIS plugin 6 | OpenRouteService routing 7 | ------------------- 8 | begin : 2015-06-17 9 | copyright : (C) 2015 by Riccardo Klinger / Geolicious 10 | email : riccardo.klinger@geolicious.de 11 | git sha : $Format:%H$ 12 | ***************************************************************************/ 13 | 14 | /*************************************************************************** 15 | * * 16 | * This program is free software; you can redistribute it and/or modify * 17 | * it under the terms of the GNU General Public License as published by * 18 | * the Free Software Foundation; either version 2 of the License, or * 19 | * (at your option) any later version. * 20 | * * 21 | ***************************************************************************/ 22 | This script initializes the plugin, making it known to QGIS. 23 | """ 24 | 25 | 26 | # noinspection PyPep8Naming 27 | def classFactory(iface): # pylint: disable=invalid-name 28 | """Load OSMroute class from file OSMroute. 29 | 30 | :param iface: A QGIS interface instance. 31 | :type iface: QgsInterface 32 | """ 33 | # 34 | from .OSMroute import OSMroute 35 | return OSMroute(iface) 36 | -------------------------------------------------------------------------------- /__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Geolicious/OSMroute/28a96cb266c12d7355b28946e7bfeafb5d508397/__init__.pyc -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Geolicious/OSMroute/28a96cb266c12d7355b28946e7bfeafb5d508397/logo.png -------------------------------------------------------------------------------- /logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Geolicious/OSMroute/28a96cb266c12d7355b28946e7bfeafb5d508397/logo2.png -------------------------------------------------------------------------------- /metadata.txt: -------------------------------------------------------------------------------- 1 | # This file contains metadata for your plugin. Since 2 | # version 2.0 of QGIS this is the proper way to supply 3 | # information about a plugin. The old method of 4 | # embedding metadata in __init__.py will 5 | # is no longer supported since version 2.0. 6 | 7 | # This file should be included when you package your plugin.# Mandatory items: 8 | 9 | [general] 10 | name=OSM route 11 | qgisMinimumVersion=2.0 12 | description=OpenRouteService routing for QGIS 13 | about=OSM route will allow you routing from A to B via C for different ways of travel. Furthermore you can make an accessability analysis. Powered by OpenRouteService.org 14 | 15 | version=0.6 16 | author=Riccardo Klinger, Geolicious 17 | owners=riccardoklinger 18 | email=riccardo.klinger@geolicious.de 19 | 20 | # End of mandatory metadata 21 | 22 | # Recommended items: 23 | 24 | # Uncomment the following line and add your changelog: 25 | changelog= 2016/08/25 v.0.6 changed API address, new design (Thanks @underdarkgis) 26 | 2015/09/22 v.0.5 added new accessibility routing mode 27 | 2015/07/16 v.0.4.1 added API key as desired by openrouteservice.org 28 | 2015/07/14 v.0.4 correct area for accessibility analysis and correct time attribute to differentiate polygons 29 | 2015/07/05 v.0.3.2 set EPSG 4326 as default for new vector layers. 30 | 2015/06/23 v.0.3.1 respecting travel type bike and ped on access analysis and corrected labels in GUI 31 | 2015/06/21 v.0.3 added some attributes to routes and polygons 32 | 2015/06/21 v.0.2 creation of categorized polygons for isochrone mapping 33 | 2015/06/21 v.0.1.3 deleted unused module requests 34 | 2015/06/21 v.0.1.2 enhanced isochrone mapping with correct interval treatment 35 | 2015/06/21 v.0.1.1 minor changes in description, added messagebox if geocoding fails 36 | 2015/06/21 v.0.1 Beta Version 37 | 38 | # Tags are comma separated with spaces allowed 39 | tags=routing, OSM, directions, openstreetmap 40 | 41 | homepage=https://github.com/Geolicious/OSMroute 42 | tracker=https://github.com/Geolicious/OSMroute 43 | repository=https://github.com/Geolicious/OSMroute 44 | category=Web 45 | icon=logo.png 46 | # experimental flag 47 | experimental=false 48 | 49 | # deprecated flag (applies to the whole plugin, not just a single version) 50 | deprecated=False 51 | 52 | -------------------------------------------------------------------------------- /pb_tool.cfg: -------------------------------------------------------------------------------- 1 | #/*************************************************************************** 2 | # OSMroute 3 | # 4 | # Configuration file for plugin builder tool (pb_tool) 5 | # ------------------- 6 | # begin : 2015-06-17 7 | # copyright : (C) 2015 by Riccardo Klinger / Geolicious 8 | # email : riccardo.klinger@geolicious.de 9 | # ***************************************************************************/ 10 | # 11 | #/*************************************************************************** 12 | # * * 13 | # * This program is free software; you can redistribute it and/or modify * 14 | # * it under the terms of the GNU General Public License as published by * 15 | # * the Free Software Foundation; either version 2 of the License, or * 16 | # * (at your option) any later version. * 17 | # * * 18 | # ***************************************************************************/ 19 | # 20 | # 21 | # You can install pb_tool using: 22 | # pip install http://geoapt.net/files/pb_tool.zip 23 | # 24 | # Consider doing your development (and install of pb_tool) in a virtualenv. 25 | # 26 | # For details on setting up and using pb_tool, see: 27 | # http://spatialgalaxy.net/qgis-plugin-development-with-pb_tool 28 | # 29 | # Issues and pull requests here: 30 | # https://github.com/g-sherman/plugin_build_tool: 31 | # 32 | # Sane defaults for your plugin generated by the Plugin Builder are 33 | # already set below. 34 | # 35 | # As you add Python source files and UI files to your plugin, add 36 | # them to the appropriate [files] section below. 37 | 38 | [plugin] 39 | # Name of the plugin. This is the name of the directory that will 40 | # be created in .qgis2/python/plugins 41 | name: OSMroute 42 | 43 | [files] 44 | # Python files that should be deployed with the plugin 45 | python_files: __init__.py OSMroute.py OSMroute_dialog.py 46 | 47 | # The main dialog file that is loaded (not compiled) 48 | main_dialog: OSMroute_dialog_base.ui 49 | 50 | # Other ui files for dialogs you create (these will be compiled) 51 | compiled_ui_files: 52 | 53 | # Resource file(s) that will be compiled 54 | resource_files: resources.qrc 55 | 56 | # Other files required for the plugin 57 | extras: logo.png metadata.txt 58 | 59 | # Other directories to be deployed with the plugin. 60 | # These must be subdirectories under the plugin directory 61 | extra_dirs: 62 | 63 | # ISO code(s) for any locales (translations), separated by spaces. 64 | # Corresponding .ts files must exist in the i18n directory 65 | locales: 66 | 67 | [help] 68 | # the built help directory that should be deployed with the plugin 69 | dir: help/build/html 70 | # the name of the directory to target in the deployed plugin 71 | target: help 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /plugin_upload.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding=utf-8 3 | """This script uploads a plugin package on the server. 4 | Authors: A. Pasotti, V. Picavet 5 | git sha : $TemplateVCSFormat 6 | """ 7 | 8 | import sys 9 | import getpass 10 | import xmlrpclib 11 | from optparse import OptionParser 12 | 13 | # Configuration 14 | PROTOCOL = 'http' 15 | SERVER = 'plugins.qgis.org' 16 | PORT = '80' 17 | ENDPOINT = '/plugins/RPC2/' 18 | VERBOSE = False 19 | 20 | 21 | def main(parameters, arguments): 22 | """Main entry point. 23 | 24 | :param parameters: Command line parameters. 25 | :param arguments: Command line arguments. 26 | """ 27 | address = "%s://%s:%s@%s:%s%s" % ( 28 | PROTOCOL, 29 | parameters.username, 30 | parameters.password, 31 | parameters.server, 32 | parameters.port, 33 | ENDPOINT) 34 | print "Connecting to: %s" % hide_password(address) 35 | 36 | server = xmlrpclib.ServerProxy(address, verbose=VERBOSE) 37 | 38 | try: 39 | plugin_id, version_id = server.plugin.upload( 40 | xmlrpclib.Binary(open(arguments[0]).read())) 41 | print "Plugin ID: %s" % plugin_id 42 | print "Version ID: %s" % version_id 43 | except xmlrpclib.ProtocolError, err: 44 | print "A protocol error occurred" 45 | print "URL: %s" % hide_password(err.url, 0) 46 | print "HTTP/HTTPS headers: %s" % err.headers 47 | print "Error code: %d" % err.errcode 48 | print "Error message: %s" % err.errmsg 49 | except xmlrpclib.Fault, err: 50 | print "A fault occurred" 51 | print "Fault code: %d" % err.faultCode 52 | print "Fault string: %s" % err.faultString 53 | 54 | 55 | def hide_password(url, start=6): 56 | """Returns the http url with password part replaced with '*'. 57 | 58 | :param url: URL to upload the plugin to. 59 | :type url: str 60 | 61 | :param start: Position of start of password. 62 | :type start: int 63 | """ 64 | start_position = url.find(':', start) + 1 65 | end_position = url.find('@') 66 | return "%s%s%s" % ( 67 | url[:start_position], 68 | '*' * (end_position - start_position), 69 | url[end_position:]) 70 | 71 | 72 | if __name__ == "__main__": 73 | parser = OptionParser(usage="%prog [options] plugin.zip") 74 | parser.add_option( 75 | "-w", "--password", dest="password", 76 | help="Password for plugin site", metavar="******") 77 | parser.add_option( 78 | "-u", "--username", dest="username", 79 | help="Username of plugin site", metavar="user") 80 | parser.add_option( 81 | "-p", "--port", dest="port", 82 | help="Server port to connect to", metavar="80") 83 | parser.add_option( 84 | "-s", "--server", dest="server", 85 | help="Specify server name", metavar="plugins.qgis.org") 86 | options, args = parser.parse_args() 87 | if len(args) != 1: 88 | print "Please specify zip file.\n" 89 | parser.print_help() 90 | sys.exit(1) 91 | if not options.server: 92 | options.server = SERVER 93 | if not options.port: 94 | options.port = PORT 95 | if not options.username: 96 | # interactive mode 97 | username = getpass.getuser() 98 | print "Please enter user name [%s] :" % username, 99 | res = raw_input() 100 | if res != "": 101 | options.username = res 102 | else: 103 | options.username = username 104 | if not options.password: 105 | # interactive mode 106 | options.password = getpass.getpass() 107 | main(options, args) 108 | -------------------------------------------------------------------------------- /pylintrc: -------------------------------------------------------------------------------- 1 | [MASTER] 2 | 3 | # Specify a configuration file. 4 | #rcfile= 5 | 6 | # Python code to execute, usually for sys.path manipulation such as 7 | # pygtk.require(). 8 | #init-hook= 9 | 10 | # Profiled execution. 11 | profile=no 12 | 13 | # Add files or directories to the blacklist. They should be base names, not 14 | # paths. 15 | ignore=CVS 16 | 17 | # Pickle collected data for later comparisons. 18 | persistent=yes 19 | 20 | # List of plugins (as comma separated values of python modules names) to load, 21 | # usually to register additional checkers. 22 | load-plugins= 23 | 24 | 25 | [MESSAGES CONTROL] 26 | 27 | # Enable the message, report, category or checker with the given id(s). You can 28 | # either give multiple identifier separated by comma (,) or put this option 29 | # multiple time. See also the "--disable" option for examples. 30 | #enable= 31 | 32 | # Disable the message, report, category or checker with the given id(s). You 33 | # can either give multiple identifiers separated by comma (,) or put this 34 | # option multiple times (only on the command line, not in the configuration 35 | # file where it should appear only once).You can also use "--disable=all" to 36 | # disable everything first and then reenable specific checks. For example, if 37 | # you want to run only the similarities checker, you can use "--disable=all 38 | # --enable=similarities". If you want to run only the classes checker, but have 39 | # no Warning level messages displayed, use"--disable=all --enable=classes 40 | # --disable=W" 41 | # see http://stackoverflow.com/questions/21487025/pylint-locally-defined-disables-still-give-warnings-how-to-suppress-them 42 | disable=locally-disabled,C0103 43 | 44 | 45 | [REPORTS] 46 | 47 | # Set the output format. Available formats are text, parseable, colorized, msvs 48 | # (visual studio) and html. You can also give a reporter class, eg 49 | # mypackage.mymodule.MyReporterClass. 50 | output-format=text 51 | 52 | # Put messages in a separate file for each module / package specified on the 53 | # command line instead of printing them on stdout. Reports (if any) will be 54 | # written in a file name "pylint_global.[txt|html]". 55 | files-output=no 56 | 57 | # Tells whether to display a full report or only the messages 58 | reports=yes 59 | 60 | # Python expression which should return a note less than 10 (10 is the highest 61 | # note). You have access to the variables errors warning, statement which 62 | # respectively contain the number of errors / warnings messages and the total 63 | # number of statements analyzed. This is used by the global evaluation report 64 | # (RP0004). 65 | evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) 66 | 67 | # Add a comment according to your evaluation note. This is used by the global 68 | # evaluation report (RP0004). 69 | comment=no 70 | 71 | # Template used to display messages. This is a python new-style format string 72 | # used to format the message information. See doc for all details 73 | #msg-template= 74 | 75 | 76 | [BASIC] 77 | 78 | # Required attributes for module, separated by a comma 79 | required-attributes= 80 | 81 | # List of builtins function names that should not be used, separated by a comma 82 | bad-functions=map,filter,apply,input 83 | 84 | # Regular expression which should only match correct module names 85 | module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ 86 | 87 | # Regular expression which should only match correct module level names 88 | const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ 89 | 90 | # Regular expression which should only match correct class names 91 | class-rgx=[A-Z_][a-zA-Z0-9]+$ 92 | 93 | # Regular expression which should only match correct function names 94 | function-rgx=[a-z_][a-z0-9_]{2,30}$ 95 | 96 | # Regular expression which should only match correct method names 97 | method-rgx=[a-z_][a-z0-9_]{2,30}$ 98 | 99 | # Regular expression which should only match correct instance attribute names 100 | attr-rgx=[a-z_][a-z0-9_]{2,30}$ 101 | 102 | # Regular expression which should only match correct argument names 103 | argument-rgx=[a-z_][a-z0-9_]{2,30}$ 104 | 105 | # Regular expression which should only match correct variable names 106 | variable-rgx=[a-z_][a-z0-9_]{2,30}$ 107 | 108 | # Regular expression which should only match correct attribute names in class 109 | # bodies 110 | class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ 111 | 112 | # Regular expression which should only match correct list comprehension / 113 | # generator expression variable names 114 | inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ 115 | 116 | # Good variable names which should always be accepted, separated by a comma 117 | good-names=i,j,k,ex,Run,_ 118 | 119 | # Bad variable names which should always be refused, separated by a comma 120 | bad-names=foo,bar,baz,toto,tutu,tata 121 | 122 | # Regular expression which should only match function or class names that do 123 | # not require a docstring. 124 | no-docstring-rgx=__.*__ 125 | 126 | # Minimum line length for functions/classes that require docstrings, shorter 127 | # ones are exempt. 128 | docstring-min-length=-1 129 | 130 | 131 | [MISCELLANEOUS] 132 | 133 | # List of note tags to take in consideration, separated by a comma. 134 | notes=FIXME,XXX,TODO 135 | 136 | 137 | [TYPECHECK] 138 | 139 | # Tells whether missing members accessed in mixin class should be ignored. A 140 | # mixin class is detected if its name ends with "mixin" (case insensitive). 141 | ignore-mixin-members=yes 142 | 143 | # List of classes names for which member attributes should not be checked 144 | # (useful for classes with attributes dynamically set). 145 | ignored-classes=SQLObject 146 | 147 | # When zope mode is activated, add a predefined set of Zope acquired attributes 148 | # to generated-members. 149 | zope=no 150 | 151 | # List of members which are set dynamically and missed by pylint inference 152 | # system, and so shouldn't trigger E0201 when accessed. Python regular 153 | # expressions are accepted. 154 | generated-members=REQUEST,acl_users,aq_parent 155 | 156 | 157 | [VARIABLES] 158 | 159 | # Tells whether we should check for unused import in __init__ files. 160 | init-import=no 161 | 162 | # A regular expression matching the beginning of the name of dummy variables 163 | # (i.e. not used). 164 | dummy-variables-rgx=_$|dummy 165 | 166 | # List of additional names supposed to be defined in builtins. Remember that 167 | # you should avoid to define new builtins when possible. 168 | additional-builtins= 169 | 170 | 171 | [FORMAT] 172 | 173 | # Maximum number of characters on a single line. 174 | max-line-length=80 175 | 176 | # Regexp for a line that is allowed to be longer than the limit. 177 | ignore-long-lines=^\s*(# )??$ 178 | 179 | # Allow the body of an if to be on the same line as the test if there is no 180 | # else. 181 | single-line-if-stmt=no 182 | 183 | # List of optional constructs for which whitespace checking is disabled 184 | no-space-check=trailing-comma,dict-separator 185 | 186 | # Maximum number of lines in a module 187 | max-module-lines=1000 188 | 189 | # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 190 | # tab). 191 | indent-string=' ' 192 | 193 | 194 | [SIMILARITIES] 195 | 196 | # Minimum lines number of a similarity. 197 | min-similarity-lines=4 198 | 199 | # Ignore comments when computing similarities. 200 | ignore-comments=yes 201 | 202 | # Ignore docstrings when computing similarities. 203 | ignore-docstrings=yes 204 | 205 | # Ignore imports when computing similarities. 206 | ignore-imports=no 207 | 208 | 209 | [IMPORTS] 210 | 211 | # Deprecated modules which should not be used, separated by a comma 212 | deprecated-modules=regsub,TERMIOS,Bastion,rexec 213 | 214 | # Create a graph of every (i.e. internal and external) dependencies in the 215 | # given file (report RP0402 must not be disabled) 216 | import-graph= 217 | 218 | # Create a graph of external dependencies in the given file (report RP0402 must 219 | # not be disabled) 220 | ext-import-graph= 221 | 222 | # Create a graph of internal dependencies in the given file (report RP0402 must 223 | # not be disabled) 224 | int-import-graph= 225 | 226 | 227 | [DESIGN] 228 | 229 | # Maximum number of arguments for function / method 230 | max-args=5 231 | 232 | # Argument names that match this expression will be ignored. Default to name 233 | # with leading underscore 234 | ignored-argument-names=_.* 235 | 236 | # Maximum number of locals for function / method body 237 | max-locals=15 238 | 239 | # Maximum number of return / yield for function / method body 240 | max-returns=6 241 | 242 | # Maximum number of branch for function / method body 243 | max-branches=12 244 | 245 | # Maximum number of statements in function / method body 246 | max-statements=50 247 | 248 | # Maximum number of parents for a class (see R0901). 249 | max-parents=7 250 | 251 | # Maximum number of attributes for a class (see R0902). 252 | max-attributes=7 253 | 254 | # Minimum number of public methods for a class (see R0903). 255 | min-public-methods=2 256 | 257 | # Maximum number of public methods for a class (see R0904). 258 | max-public-methods=20 259 | 260 | 261 | [CLASSES] 262 | 263 | # List of interface methods to ignore, separated by a comma. This is used for 264 | # instance to not check methods defines in Zope's Interface base class. 265 | ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by 266 | 267 | # List of method names used to declare (i.e. assign) instance attributes. 268 | defining-attr-methods=__init__,__new__,setUp 269 | 270 | # List of valid names for the first argument in a class method. 271 | valid-classmethod-first-arg=cls 272 | 273 | # List of valid names for the first argument in a metaclass class method. 274 | valid-metaclass-classmethod-first-arg=mcs 275 | 276 | 277 | [EXCEPTIONS] 278 | 279 | # Exceptions that will emit a warning when being caught. Defaults to 280 | # "Exception" 281 | overgeneral-exceptions=Exception 282 | -------------------------------------------------------------------------------- /resource_rc.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Resource object code 4 | # 5 | # Created: Mi. Jun 17 23:53:40 2015 6 | # by: The Resource Compiler for PyQt (Qt v4.8.6) 7 | # 8 | # WARNING! All changes made in this file will be lost! 9 | 10 | from PyQt4 import QtCore 11 | 12 | qt_resource_data = "\ 13 | \x00\x00\x1d\xd8\ 14 | \x89\ 15 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ 16 | \x00\x00\x50\x00\x00\x00\x46\x08\x06\x00\x00\x00\x5b\x9e\x13\x2b\ 17 | \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ 18 | \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ 19 | \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ 20 | \x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x0b\x1e\ 21 | \x0d\x2a\x31\x08\x9e\xa9\xbb\x00\x00\x1d\x58\x49\x44\x41\x54\x78\ 22 | \xda\xed\x9b\x79\x80\x9d\x55\x79\xff\x3f\xe7\x9c\x77\xbb\xcb\x6c\ 23 | \xc9\x4c\x92\xc9\x4a\x58\x85\x18\x42\x02\x04\x04\xc1\xe0\xc6\x26\ 24 | \xa0\xd6\xaa\x95\x5a\xac\x75\xeb\xaf\x8b\xad\xf5\xa7\x6d\x95\x0a\ 25 | \x3f\xa9\x88\x2c\xf2\x2b\x60\x59\x44\x10\x51\x16\x0d\xc1\x08\x84\ 26 | \x2c\x2c\x59\x09\x24\x93\x85\xec\x0b\x59\xc8\x32\x33\x49\x66\xbf\ 27 | \xcb\xbb\x9d\x73\xfa\xc7\x7d\x27\x8c\xa9\x55\xac\x5b\x5a\x78\xfe\ 28 | \x9b\x99\x7b\xe7\xbe\xef\xe7\x3e\xcf\xf3\xfd\x3e\xcf\xb9\x17\x8e\ 29 | \xf2\x78\x6e\xc5\x1a\x00\xbe\xf8\xd9\xcf\x5c\xef\xa8\xdc\x44\xde\ 30 | \x8c\xd7\x1f\x5f\xbd\xeb\x1e\x00\x0e\x5a\x7b\xc2\xe5\x17\x5f\x51\ 31 | \x42\x72\xcc\x9b\x54\x7e\xcd\x58\xb4\x6e\xe3\xa4\x9d\xbb\x7b\x7a\ 32 | \xdf\xfa\x96\xd3\x4a\xb8\x04\x47\xdb\xf5\xc9\xa3\x11\xda\xf7\xee\ 33 | \xfc\x36\x00\x6d\x6d\x6b\x3e\x49\x9f\x59\xbc\x76\xd5\xda\x86\xf7\ 34 | \x7d\xf8\x8f\xba\x48\x08\xdf\x4c\xa9\x5f\x12\xf7\xdd\x7d\x33\x2f\ 35 | \x6c\xd9\x07\xc0\x75\x5f\xbb\xfa\x86\x3f\xf9\xf0\x27\xd2\x31\xad\ 36 | \xe3\xed\xf9\x17\xbc\xcb\xee\xd8\xd1\xfd\xf2\xd1\x78\xcd\x47\x4d\ 37 | \x06\xde\xf6\xf5\xeb\xf8\xf3\xcf\xfc\x03\xce\xa1\xed\x13\xe6\xcc\ 38 | \x7b\x7e\xf6\xa8\xf1\xa7\x7e\xe9\xf4\xe9\x67\x2b\xc7\x91\x8c\x1c\ 39 | \x31\x8a\x28\x0e\x7b\xdf\x04\xf8\x4b\xe2\x6f\xae\xfe\x2a\xf7\xde\ 40 | \x74\xd3\x55\x5f\xbe\xfa\x1b\x2b\xca\x25\x71\x99\x72\x3c\x3b\x7e\ 41 | \xe2\x71\xf6\xc3\x1f\xf9\x04\x41\x90\xa3\x50\x28\x1c\x04\x58\xb6\ 42 | \x78\xf5\x51\x05\xd0\xf9\x43\xbe\xb8\xb5\x16\x21\x04\x3b\xf7\xbe\ 43 | \xd2\xf8\xc0\x1d\xf7\x5f\xf3\xd5\x6f\xde\xf2\xf9\xae\xbe\x83\xb4\ 44 | \x8e\x9b\x68\x3f\xf4\xfe\x8f\x89\x83\x07\xdb\xb1\x52\x10\x04\x39\ 45 | \xbe\x7e\xcd\x57\x76\x02\x9c\x73\xde\xd4\x37\x01\x02\x3c\xbb\xe8\ 46 | \x19\x84\x10\x74\x74\x1d\xb8\xec\xd5\x57\xba\xbf\xb9\x6d\x77\xfb\ 47 | \x29\x17\x5c\x7c\x91\xf5\xdd\x40\xbc\xfd\x1d\xef\x11\x77\xdc\x7e\ 48 | \x03\x2b\x57\x2e\xa5\x69\xf8\x48\x3e\xf4\xc7\x1f\xe3\x3b\xb7\xdd\ 49 | \xb0\xe5\xcd\x12\x06\x9e\xfc\xd9\x53\x00\x0c\x94\xbb\xe4\x93\x4f\ 50 | \xcc\xf9\xd2\x27\x3e\xfc\xc9\x59\x17\xbd\xfb\xdc\x93\x9f\x9c\x33\ 51 | \xcb\xbe\xe7\xbd\xef\x17\xd3\xa6\x9d\x4d\xb1\x58\xc7\xa4\xb7\x4e\ 52 | \xc1\xf5\x02\xa2\xb0\xcc\x86\xf5\x6b\xa9\xab\x6b\xd8\xfa\x86\x07\ 53 | \xf8\xf8\xdd\xf7\x70\xe9\x65\x97\xb0\x7d\xe3\xba\x96\x31\xad\xa7\ 54 | \xcd\x74\xbd\x96\x1b\x36\x6e\x5a\xaf\xa4\x2b\x45\x54\x09\xc5\xd3\ 55 | \x4f\xcf\x66\xd4\xe8\xb1\x34\x37\x8f\xe4\x92\x4b\x3f\x00\xc6\x92\ 56 | \x68\x4d\xa2\x63\x26\x8c\x1b\xbb\xf3\x68\x04\x28\x7e\x5f\x2f\x74\ 57 | \xd7\x75\xdf\xe2\xb1\xb9\x73\x99\xfe\xd6\x13\xdd\x03\x5a\xbd\xf8\ 58 | \x81\x0f\x5e\x39\xb5\xab\xeb\xa0\x7d\xfc\xc7\x0f\xf1\xc4\x53\xb3\ 59 | \x84\x44\xe2\x16\x73\xfc\xf3\x57\x6f\xa0\x5a\x2e\xd3\xd9\xbe\x97\ 60 | \xb1\x13\x8f\xe1\xf4\x69\xd3\xc9\xe7\x82\x68\xde\xcc\x3b\x0a\x5f\ 61 | \xbf\xf9\x4e\xfd\x86\x05\x08\x70\xf9\x29\xe7\xe5\xfa\x1b\xec\x4b\ 62 | \x9b\x77\xef\x7c\xeb\xdf\x7d\xe1\x1f\xed\xb0\xfa\x66\xb1\x67\xf7\ 63 | \x2e\x16\x2f\x7d\x96\xa9\x67\x9c\xcd\xd9\xe7\xcc\xe0\xfe\xbb\xfe\ 64 | \x8d\xf9\x0b\x9e\x44\xeb\x94\x7f\xf8\xe7\x7f\xe5\x33\x7f\xf1\x57\ 65 | \x1c\x3c\xb0\x6f\xf7\xb9\x6f\x9b\x74\xcc\x13\x3f\x7d\x8a\xf7\x5d\ 66 | \x71\xc9\x1b\x17\xe0\xdf\x7e\xe0\xc2\xe6\x09\xe7\x5d\xd6\x3e\x62\ 67 | \xd4\x78\xa7\x2e\x57\x67\x3f\xff\x7f\xae\x12\x87\xfa\xba\xb9\xfe\ 68 | \x96\x7f\x67\xf2\x29\xd3\x90\x52\xd2\xb1\xf7\x55\x3e\xf7\x99\x8f\ 69 | \xe2\x28\x49\xfd\x88\x91\xcc\x7e\x62\x31\xa5\xee\x03\x8b\xcf\x3a\ 70 | \xeb\xe4\xf3\xdf\xd0\x3d\xf0\xb6\xeb\xff\x85\x7f\x9b\x35\xf7\xd0\ 71 | \xb4\x69\x93\x4e\x3f\xe1\xc4\x53\x28\x16\x8b\xc2\xf3\x7c\x8a\xf9\ 72 | \x02\x3f\xf8\xfe\xdd\xc4\x49\x84\xb5\x86\x13\x4f\x99\xcc\x5b\x4e\ 73 | \x79\x2b\xb9\xba\x3a\x1c\x24\xab\x56\xbd\x48\x6f\x5f\x6f\xfb\xd1\ 74 | \x3a\x3d\xfd\xde\x6c\xcc\xdf\xfc\xd3\xff\x63\xf6\xcf\x1e\x43\xc3\ 75 | \x7a\x6b\xe2\xd9\x13\x8f\x3f\xe9\xf2\x49\xa7\x4c\x61\xde\x73\x4f\ 76 | \xb0\x7b\xfb\x36\xd6\xbf\xbc\x8a\x34\x49\x58\xba\x74\x21\x53\xdf\ 77 | \xf6\x76\x6e\xbb\xea\x2f\xc9\xe5\xf3\xdc\x7f\xe7\x6d\x3c\xf8\xd0\ 78 | \x3d\xbd\x6f\x78\x80\x00\x97\x5f\xf6\x41\x00\x73\xc3\xd7\xae\xbd\ 79 | \xe5\x67\xcf\x2e\xbc\xf4\xd4\x69\xd3\xe4\x37\x2e\xba\x43\x1c\x7b\ 80 | \xdc\x49\xbc\xb4\x74\x21\xd7\x5d\xff\x15\x1a\x1b\x9a\x28\xac\x69\ 81 | \xe2\xcf\x3f\xf9\x97\xd8\x54\x33\x66\xdc\x78\x30\xfa\xa8\x05\xf8\ 82 | \x07\x19\xe5\xbe\x74\xcd\xbf\x2c\x3b\xb0\x7b\xc7\xc0\xb2\x25\x8b\ 83 | \xc5\x99\x67\x9f\x4f\x5d\x7d\x23\x97\xbd\xff\x23\x8c\x1e\x35\x16\ 84 | \x3f\x97\xb3\xfd\xdd\xdd\xec\xda\xb9\x03\xd7\x75\xf1\xf3\x79\x06\ 85 | \xaa\x49\xc7\x9b\x00\x87\x2a\x97\x10\xc9\x84\xd6\x09\x4f\x55\xab\ 86 | \x25\xca\xd5\x7e\x5c\xcf\xa3\xae\xb1\x91\xb1\xa3\xc7\x23\x71\x84\ 87 | \xeb\x3a\xdd\xfb\xdb\xf7\x3e\xb7\x72\xc3\xda\x3b\x9d\xf2\x81\xe7\ 88 | \xbf\x70\xd1\x79\x3b\xad\xb5\x4e\xa2\x6d\xd3\x1b\xba\x84\x87\x46\ 89 | \xb9\x1a\x2d\xae\xf6\x0f\x1c\xb3\xf9\x95\x4d\x95\x77\x9c\xfd\xae\ 90 | \x52\x6a\xa2\x2d\xc5\x86\xfc\xca\xd2\xe6\xce\x0d\x03\x95\x68\xd3\ 91 | \xe7\x3f\xfb\xa7\x58\x6b\xe5\x2b\xcf\xbe\x7a\xfb\xc8\x2b\xfe\xf5\ 92 | \xda\x24\xad\xfc\xc0\xa4\xdb\x0a\x51\xb8\x76\xb9\xeb\x9d\x3a\x5f\ 93 | \x08\xe6\x02\x1b\x84\x10\x7d\x47\xce\xd6\x6f\x94\x90\xc3\x46\xb6\ 94 | \xb8\x57\x7e\xf6\x6f\x95\xb6\x56\x1c\xb1\x64\x68\xb5\xd6\xde\x69\ 95 | \xad\xdd\xbd\xf7\xa5\x79\xe9\x40\xe7\x7a\x5b\xad\x46\x36\x8a\x23\ 96 | \x5b\xa9\xee\xb0\xe5\x9e\xdb\x6c\x12\x27\x15\xad\xd3\xdd\x51\x14\ 97 | \x3d\x6f\x8c\xf9\x94\xb5\xd6\xe7\x8d\x1c\xbd\x6d\xb7\x15\x8d\xad\ 98 | \xbc\xc7\xd8\x64\xbe\x31\xb1\xd5\x3a\xb1\xc6\x5a\xbb\xe7\xf9\xd9\ 99 | \xb6\x67\xdf\xad\x36\xac\xa6\xb6\x5a\x0d\x6d\xb5\x6a\x6d\xb9\xf7\ 100 | \x3e\x1b\x47\x5b\x6c\x9a\x5a\xab\xb5\xb1\x59\x24\xd6\xda\x67\xac\ 101 | \xb5\x9f\x4f\x53\x7d\x5c\x9a\xda\xc2\xff\x3a\x23\x0d\x50\x0d\xd7\ 102 | \x92\x0b\xa6\x0c\xcd\xb6\xb7\x5b\xf8\x5c\x69\xeb\x4f\x4f\xad\x74\ 103 | \xac\x9d\x3c\xfc\xdc\xbf\x47\x2a\x1f\x88\x6d\x4a\x45\xec\x9f\xbf\ 104 | \x90\x11\x6f\xf3\xb0\x7a\x1b\x4e\xf0\x71\x4c\x5a\xc1\x4a\x4d\x52\ 105 | \xba\x87\x5c\xf1\x4a\x84\xf4\x10\xc2\x45\x88\x22\x42\xe6\x41\xb8\ 106 | \x68\x13\x94\x04\x95\xcd\x60\xb6\x4a\x55\x9c\x2d\x05\xb3\x84\x10\ 107 | \xf1\xff\x58\x80\x43\x7b\x53\x9a\xee\x94\x49\xd2\xd7\xe8\x3a\xc7\ 108 | \xfd\x29\x46\xfe\x59\xd4\xb3\xfb\xf4\x68\xcf\xb3\xf4\xb5\xdd\x63\ 109 | \x95\x52\xc2\xe2\xe2\x35\x9f\x4a\x22\x3c\x72\x63\xa7\xd2\xbb\x47\ 110 | \xd1\x7a\xda\xc9\xa4\xce\x7c\x64\xe1\x3c\x1c\x35\x16\xe1\x09\xb4\ 111 | \xb6\xb8\x4e\x3f\x42\x29\x48\x23\x2c\x60\x85\x40\x18\x83\x8e\x56\ 112 | \x20\xf3\x1f\xb1\xd2\xc4\x22\x35\x1b\x70\xbd\xf3\xaa\x4a\x05\x0b\ 113 | \x84\xb0\x8f\x59\x2b\x1e\x13\x82\xb2\xb5\x56\x4b\x29\x8f\x6e\x80\ 114 | \x43\xc1\x19\x63\x46\x0a\x21\x2e\xd3\xb6\xef\x1d\xa5\x2d\x3f\xba\ 115 | \x2c\xaa\x1e\x6c\xc8\x35\x9d\x81\x95\x11\x22\xd7\x44\x72\xe8\x00\ 116 | \x41\xf3\x64\xda\x7f\xf4\x7e\x9a\xce\xfd\x6b\x54\xdd\x38\x4c\xc3\ 117 | \x64\xba\x97\x2f\x61\xd4\xf4\xc9\x98\x24\x22\x2c\xfd\x94\x20\x7f\ 118 | \x39\x06\x03\xc2\x41\x49\x89\x89\x06\x30\x69\x95\xa4\xff\x00\x2a\ 119 | \xdf\x88\xdb\x30\x92\xb0\x7a\x23\xc5\xb1\xb7\x23\x83\xb1\x28\x35\ 120 | \x40\x1c\xae\x43\x39\xe7\xe0\x3b\x16\x2c\x25\x84\x78\xde\x5a\xbb\ 121 | \x16\x58\x28\x84\x78\x4e\x08\x91\x1e\x95\x2a\x2c\x84\x40\x6b\x3d\ 122 | \xc3\x18\xf3\x59\x21\xc4\x15\x69\x38\xe0\x77\x3c\x73\xad\xac\x3f\ 123 | \x69\x06\xc3\x4e\xbd\x1c\x9d\x76\x51\xad\x2c\xc4\xf3\x1a\xf0\x8f\ 124 | \x3d\x15\x6d\x3a\xc9\x9f\x7c\x0a\x8d\x53\x3f\x47\x8a\x4b\xd4\xd5\ 125 | \x89\x50\x2e\x85\xd1\xd3\xd0\xc6\xe0\x46\x21\xd6\x18\xbc\xe0\xed\ 126 | \x48\x69\xc0\x5a\x34\x16\x8c\x45\x87\x7d\x24\x5d\x5b\xa8\x1e\xda\ 127 | \x4d\x79\x5f\x1e\xb3\xed\xcf\x20\x77\x0e\x4a\x79\xa8\x7a\x89\x33\ 128 | \x62\x23\x62\xd4\xa7\xf0\x1c\x8a\xc0\xfb\x84\x10\x97\x02\x5f\x02\ 129 | \x7a\xac\xb5\x73\x80\x47\x80\x39\xbf\xae\x8a\xff\xc6\x19\xa8\x75\ 130 | \x1f\x4a\x35\x0c\xcd\xba\xa2\xb5\xf6\x34\x6b\xed\x39\xd6\x9a\xbf\ 131 | \x50\xca\x39\x31\xd5\x29\x7d\x5b\x9f\x22\xed\x58\x65\x1b\x27\x7f\ 132 | \x54\x38\xcd\x6f\x81\xd4\x62\x6c\x99\x52\xdf\xad\x34\x35\x7f\x15\ 133 | \x63\x2a\x54\xfa\x67\x82\x97\x43\x31\x01\x4d\x9e\xf2\xab\x03\x94\ 134 | \xb6\xae\x67\xec\x25\x17\x20\x8d\x42\xca\x22\x95\xfe\x6f\x50\x68\ 135 | \xbc\x09\x10\x08\x21\x30\xc6\x90\x24\x31\x7e\x10\x1c\xbe\x19\x4d\ 136 | \x07\x95\xde\x5b\x28\x36\x7c\x8b\xf0\xd0\x16\xe2\xae\x6d\x24\xdd\ 137 | \x2b\x48\x4d\x17\x41\xd3\x0c\x84\x14\x18\xad\xb1\xd6\xe2\x3a\x2e\ 138 | \xc2\x0d\x10\x5e\x3d\x38\xb9\x0e\x6c\xfa\x48\xd2\xb7\xef\x05\xcf\ 139 | \xcb\xaf\x2e\x9c\x70\xf1\xd6\xdf\x19\xc0\x6a\x35\x24\x97\x7b\xed\ 140 | \x9c\x3b\xac\xb4\x9d\x2f\xd5\xe4\xf7\x2b\x47\x5d\x2a\x84\x18\x2f\ 141 | \x20\x08\xad\xc0\xf4\xed\xb2\x5d\x2f\xfe\x1b\x0d\x13\xcf\x17\x75\ 142 | \xc7\x5f\x8a\x50\x2e\x58\x0b\x18\xac\x50\xf4\xf7\xdc\x8c\xe3\x1c\ 143 | \x8f\x17\x9c\x85\x10\x0e\x51\xb8\x02\x2f\x38\x0d\xc7\x69\x65\xff\ 144 | \x4b\x4b\x88\xba\xdb\x19\x75\xc1\xfb\xb0\x49\x27\x9e\x5b\x41\x9b\ 145 | \x0e\xe2\xca\x66\x72\xf5\x9f\x45\xa0\x41\x48\x94\x52\x08\x21\xb0\ 146 | \x16\x84\xb0\x58\x04\xfd\x9d\x9f\xa6\xbe\xf9\x46\xac\xa8\x47\x1b\ 147 | \x8b\x41\x91\x84\x33\x51\xce\x05\x90\x82\x23\x34\x58\x7d\x18\x80\ 148 | \x15\x12\x21\x1d\x84\x74\x6a\x6f\x8e\xf2\xba\x51\xee\x66\x81\x98\ 149 | \x23\x84\x98\x29\x84\xd8\xf4\x8b\x5a\xd3\xeb\x2e\xe1\x30\x0c\x09\ 150 | \x82\xd7\x80\x05\xfe\x2b\x41\x92\xd8\x89\x42\x72\x36\xd8\xbf\x8e\ 151 | \xca\xb3\xa7\x79\xb9\x53\xc1\x4a\x84\x80\xb4\xd2\x4d\xb4\xfb\x39\ 152 | \x06\xf6\xb4\x89\x51\x33\xbe\x8a\x1b\x0c\x03\x6b\x06\x6b\x1b\x8c\ 153 | \x44\xeb\x03\x28\x31\x02\x8c\x44\x49\x0f\xa9\x1a\x51\xf9\x8b\x29\ 154 | \x97\x1e\x46\x14\xa6\x41\x58\x42\x16\x1a\x09\xfc\x1c\xa1\x19\x85\ 155 | \xeb\x07\xb8\x9c\x82\x49\xbb\xb1\x7a\x33\x6e\x30\xe9\xb5\xcc\xcf\ 156 | \xfe\xad\xb5\x02\x2b\x40\xaa\x51\x54\xc3\x18\x44\x84\xeb\x2a\x8c\ 157 | \x06\xc5\x18\x7c\x57\x20\x83\x23\x07\x1a\x3b\x24\x97\x6c\xf6\x46\ 158 | \x88\x26\x8b\x3d\x07\x38\x07\xf8\xba\x31\x66\x29\x70\x8f\x10\xe2\ 159 | \x45\x6b\xed\x1e\xa0\xfc\xba\x00\x46\x51\x84\xef\xfb\x87\xe1\x25\ 160 | \xa9\x3e\x53\x98\xea\x25\x51\xb4\xf1\x62\x69\x9f\x39\x4d\xdb\xc0\ 161 | \xb7\xa2\x19\x21\x0b\x08\x1c\x10\x50\xe9\x5c\xc7\xa1\xf9\xff\x4c\ 162 | \xd3\x05\x5f\xa1\xe5\x9d\x1f\x44\x09\x48\x92\x04\x21\x04\x42\x58\ 163 | \xa4\x94\x08\x29\x50\x62\x18\xca\x1b\x87\xd6\x29\xd5\xca\x4b\x38\ 164 | \xde\x04\x5c\xef\x64\xf2\xc5\x8f\x92\xa6\x6d\x54\x7b\x77\x50\x38\ 165 | \xe6\x74\xe2\x18\xc0\x43\x1b\x40\x1b\x1c\xff\x74\xc2\xd2\x1d\xe8\ 166 | \xe8\x64\x94\xdb\x8a\xb1\x15\x10\x2e\x58\x85\x92\xa3\x71\xfc\xd3\ 167 | \x10\x22\xc0\xf5\x7c\xa4\xca\x61\x8d\xc1\xda\x2a\x42\xe4\xd1\x49\ 168 | \x2f\xc6\xd4\xa3\x4d\x8a\xef\xfb\xbf\x60\x7a\x11\xd4\x7e\xb4\x42\ 169 | \x64\x50\xb3\xc7\x9c\x6b\xad\x3d\x17\x08\x85\x10\x1b\x93\x24\xb9\ 170 | \xc9\x75\xdd\x87\xfe\x13\xc0\x34\x4d\x71\x9c\xd7\x7e\x9d\x24\x89\ 171 | \x8a\xe3\xb8\xd9\x71\x9c\x8b\xac\xb5\x57\x5b\x6b\x8f\x0b\x13\x70\ 172 | \xe4\x19\x36\xe5\x20\xe8\x67\x89\x2b\x73\x71\xbc\x63\x08\x59\x46\ 173 | \x50\x38\x87\xfd\x3f\xfd\x3b\xf2\x2d\x23\x70\x46\x4d\xc7\x93\x35\ 174 | \x31\x41\x28\x8c\x31\x18\x63\x48\xd3\x94\x34\x4d\xf1\x3c\x0f\xcf\ 175 | \x9f\x41\x92\xbc\x88\x89\x21\x0a\x7b\xd1\xc9\x7c\x82\xfc\x34\x3c\ 176 | \xef\x74\xd0\xdb\x51\xc5\x4d\x90\x46\xa0\x53\x2a\xd1\x7e\xa4\xd9\ 177 | \x89\x15\x02\xa9\xce\x45\x5b\x49\x5a\xdd\x87\xca\x5d\x80\x23\x43\ 178 | \xb4\x49\x48\xd2\x3d\x54\xab\x8b\x91\xe9\xab\xa4\x95\x47\x50\xee\ 179 | \x64\xac\x3a\x11\xa5\x1a\xb0\xd6\xc5\x5a\x43\xaa\xab\x08\x1c\xaa\ 180 | \xd5\x2a\xb9\x5c\xee\x57\x76\xb7\x5a\x7b\xb0\x08\x21\x6c\x1c\xc7\ 181 | \xc1\xea\xd5\xab\xa7\xed\xdb\xb7\x6f\xc3\x2f\xcc\xc0\x41\x78\xd6\ 182 | \xda\x33\x80\x33\xb5\xd6\x1f\x14\x42\xbc\xab\xf6\x7f\x04\xc6\x18\ 183 | \xeb\x28\x47\x48\x99\x0a\x9d\xd4\x13\x14\x3e\x0a\x2e\x48\x5b\x41\ 184 | \xdb\xad\x0c\x0c\xcc\xa7\x70\xfc\x04\x2a\x9b\xe7\x53\x2c\x2f\x41\ 185 | \xba\xf5\xb5\x77\xd4\x86\xb5\xfe\x22\x24\x8e\x68\x22\xb5\xcd\x35\ 186 | \xd3\xab\x2d\xd6\x9e\x05\x6a\x1d\x8a\x12\x49\x3c\x9a\xa8\x67\x0e\ 187 | \xbe\xa3\x09\x2b\x9d\x8c\x68\x38\x06\xab\x07\xb0\x72\x3c\xae\x7b\ 188 | \x1a\xd0\x80\xb1\x0a\xcf\x03\xa3\x21\x4d\xb7\x21\xec\x1e\x90\x93\ 189 | \x11\xa2\x19\xc4\x14\x82\x40\xa2\x53\x8d\xe3\x1c\xc2\xa6\x5b\xd0\ 190 | \xd1\xa3\x28\x55\x4f\x1c\x95\x09\xea\xae\xc0\x53\x39\x30\x96\x30\ 191 | \x8a\x5e\xf7\xfc\x9c\x41\x14\xeb\xd6\xad\x63\xc9\x92\x25\x5f\xf9\ 192 | \xe2\x17\xbf\xf8\xf2\xdc\xb9\x73\x71\x5e\xf9\xff\x67\x70\xdc\xe7\ 193 | \x57\x0e\x7a\xb5\x3a\x21\xc4\xe5\xc6\x98\xab\xd3\x34\x3d\x56\x08\ 194 | \xa1\x00\x99\x3d\xd9\x66\x10\x85\x31\x06\xdf\xf7\x11\x42\x90\xa6\ 195 | \x31\xae\x23\x31\xc6\x41\xea\xb7\xa0\x82\x49\x34\x4c\x3f\x8d\xea\ 196 | \xfa\x67\xe1\x60\x84\x1d\xf3\x56\x52\xd3\x8d\xb0\x25\x84\x09\x11\ 197 | \xa2\x8f\x6a\x65\x31\x88\x4e\x62\x3b\x01\x63\x8e\x45\x38\x3e\x96\ 198 | \x91\x98\xca\x1c\xb4\xed\x23\x5f\xbc\x0a\xa9\x46\xa3\xf5\x6d\x48\ 199 | \x7f\x32\xd2\x3f\x99\x34\x2c\xe3\xba\x2e\x69\x1a\x23\x04\x84\x55\ 200 | \x4d\xa1\x58\x04\x8e\xc1\x98\x89\x44\xe1\x2c\x5c\xef\x34\xa4\x3a\ 201 | \x81\x38\x1a\xc0\xf3\x7c\xac\x6d\xc4\xca\xb3\x30\x72\x3a\x5e\x10\ 202 | \xa2\xa2\xaf\xe3\x3a\xc3\x10\x42\x81\x04\x99\x24\xbf\x96\x9f\xed\ 203 | \xee\xee\x66\xed\xda\xb5\xcf\x5a\x6b\xbf\x05\x70\xe1\x85\x17\xd6\ 204 | \xf2\x74\xd3\xd7\xea\x26\x3a\x6f\xbf\xe6\xbb\x23\xde\xf2\xce\x77\ 205 | \xe6\x9b\xc6\xa0\x0a\x2d\x68\x8b\x8d\xc3\x48\x60\x35\x5a\x6b\x5c\ 206 | \xd7\x45\x4a\x49\x92\x24\x58\x5b\xeb\x63\xd6\x5a\x72\xb9\xdc\xe1\ 207 | \xfe\x66\xad\x45\x29\x97\x54\x4a\xf6\x3f\xfe\x39\x1c\xdb\xc5\xe8\ 208 | \x3f\xfa\x31\x69\x14\x63\x8c\xac\x69\x88\x00\x29\x1d\x7c\x1f\xac\ 209 | \xae\x50\x29\xbf\x8a\xeb\xb6\x13\x57\x9e\x43\x88\x56\x8a\xc3\xfe\ 210 | \x92\x52\xff\x0f\x11\xfa\x18\x76\xcf\xdf\xc6\xf1\x1f\x39\x1f\x1d\ 211 | \xef\x43\x39\x93\x10\xa6\x91\x34\xae\xad\xfe\x07\x6f\xcc\x75\x1c\ 212 | \x8c\x35\x08\x91\x27\x8d\x17\x20\x94\x46\x39\xe7\xe2\xb9\x05\x8c\ 213 | \xd1\x44\x51\x44\x2e\x97\xa7\xbf\xf7\x46\x82\xfc\x1f\x21\xc4\x78\ 214 | \xb4\x49\x70\x1d\x17\xd7\x75\x5f\xf7\x16\x27\x8e\x63\xbb\x78\xf1\ 215 | \x62\xf3\xe5\x2f\x7f\xf9\xd6\xb6\xb6\xb6\xc7\x81\x9d\x40\x87\x02\ 216 | \xb8\xfd\x93\x71\xe9\xa1\x15\xc3\x7b\x9e\x5b\xf4\xfc\x07\x9c\x9d\ 217 | \xb3\x1c\xbf\x67\xa5\x8d\x35\xc2\xa9\x1b\x49\xae\x50\x87\xe3\xf9\ 218 | \x59\xdf\x4a\x90\x52\x60\x8c\xc5\x73\x6b\xfd\xc4\x75\xbd\xc3\x7d\ 219 | \xd3\x58\x41\xd2\xb3\x87\xd2\xbe\xc5\x24\xaf\xcc\x45\xe5\x42\xfc\ 220 | \x09\xc7\x01\x29\x4a\xd6\x84\x20\x97\xf3\x70\x6a\x5a\x83\x36\x20\ 221 | \xe5\x30\x0c\xe3\x48\xed\x41\xf2\x75\x17\x93\x24\x01\x7e\x7e\x0a\ 222 | \x95\x57\xd7\x90\xcc\xfd\x19\x23\x96\x6f\x40\x96\x1c\x62\xb3\x0c\ 223 | \x8b\x42\xe7\xc6\x63\xf3\xb5\xec\xf7\x95\xc2\x68\x83\xb5\x06\x63\ 224 | \x53\x1c\x6f\x02\x8e\x6c\xa6\x52\x7a\x18\xd7\x3d\x19\x63\x14\x4a\ 225 | \x0a\xa2\xea\x1a\xa4\x8d\x70\x82\x19\x18\x1d\x13\x85\x11\x4a\xa9\ 226 | \xc3\xf6\xe7\x97\xc1\xab\x15\x1e\x76\xc7\x8e\x1d\xe2\xdb\xdf\xfe\ 227 | \x76\xfb\xbc\x79\xf3\x2c\x70\x2e\x70\x1c\xf0\xb2\x02\x48\x4e\xfa\ 228 | \x82\xf9\xa7\x6f\xde\xb3\x25\x69\x9a\x7c\x77\xa9\x30\xe5\x92\xe2\ 229 | \xb8\x69\xcd\x2d\xc9\x3a\x51\x5e\xf4\x35\xfa\x5f\x99\x47\x12\x25\ 230 | \xf8\xc5\x3a\xac\x95\xb8\x0e\x38\x52\x12\xa6\x29\x4a\x3a\xa4\xda\ 231 | \xd4\x32\x41\x42\x7c\x70\x1d\xdd\xf3\x3f\x4d\xbc\x7d\x21\xe5\x03\ 232 | \x9b\x18\xf7\xe1\x27\xf1\xea\x26\x01\x25\x8c\xde\x42\x12\x6d\x43\ 233 | \xa7\xdb\x80\x04\x81\x21\x49\x40\xba\x10\x55\x53\x7c\x75\x08\xc4\ 234 | \x00\x52\x4d\x20\xd1\x65\xdc\xa6\x49\x04\x27\x6c\x47\x36\x8f\x83\ 235 | \xad\xfd\xb8\x4b\x36\xa1\x9e\xbc\x0f\xf5\xec\x6c\xbc\x57\xb7\xe1\ 236 | \x0a\x41\xe8\xb8\x58\xd7\x01\x27\xc0\x08\x8d\x83\xc5\x5a\x89\x49\ 237 | \x7a\x48\xf5\x66\x0a\x85\xc9\x20\x24\x51\x75\x16\x5e\xfe\x4a\xac\ 238 | \xa9\x99\xe7\x20\x08\x30\xc6\xe0\x38\xce\xaf\x84\x27\x84\xa0\xaf\ 239 | \xaf\x4f\x3c\xf8\xe0\x83\x03\xb7\xde\x7a\xeb\xaa\x4c\x37\x02\xa0\ 240 | \x07\x78\xfe\x17\x3d\xbb\xf9\x9d\xef\x7e\xef\x75\x7f\xfc\x91\x8f\ 241 | \x7d\xe6\x8a\xf7\xbd\x4b\xb4\xf8\x15\x1b\xf6\xb5\x0b\x9d\xf4\x62\ 242 | \xaa\xbd\xe8\x81\x03\xa4\x71\x3f\x2a\x8e\x21\xe7\x63\xd2\x04\x1d\ 243 | \x27\x98\x24\xa2\xd2\xb1\x16\xd3\xf1\x12\x75\x27\x5d\x88\x6a\x3d\ 244 | \x9f\x96\xf3\xfe\x01\x89\xe5\xb0\x1d\x30\x96\x52\xb9\x8b\x5c\x2e\ 245 | \x01\x0b\x69\x1c\x23\x9c\x6e\xd2\xb8\x84\x4e\x13\x92\xf4\x3e\x82\ 246 | \xe0\x4a\x5c\xff\x22\x20\x22\xb5\x82\x30\x5e\x82\x23\x35\x41\xf0\ 247 | \x1e\x6c\xb9\x82\xe8\x5b\x4b\xdc\xfe\x33\xd8\x5c\xc6\x79\xb5\x0b\ 248 | \xd5\x77\x00\x5b\x18\x4e\x3a\x6d\x22\xc9\x7b\x3f\x84\xeb\x8f\x85\ 249 | \xb0\x4a\x52\x7e\x9e\x5c\xc3\x55\x60\xf7\x52\xee\xff\x01\x7e\xee\ 250 | \xef\x71\x5c\x89\xe3\x38\x54\x2a\x15\xa4\x94\xe4\xf3\xf9\x5f\x59\ 251 | \xbe\x51\x14\xd9\x67\x9e\x79\xc6\x7e\xe1\x0b\x5f\x58\xbd\x65\xcb\ 252 | \x96\x1e\x40\x01\x55\xe0\x4e\xe0\xa9\xc1\x67\x16\xb3\x94\x9c\x06\ 253 | \x4c\x05\x46\xe4\x72\xb9\x71\x9f\xfe\xf4\xa7\xce\xb8\xea\xaa\x4f\ 254 | \x78\x53\xa6\x4c\x41\x29\x65\x01\x61\x8f\x18\x5f\x0c\x20\xb1\x94\ 255 | \xaa\x65\x72\x9e\x4f\xdc\xb7\x9d\xfd\x8f\x7f\x96\x20\xf0\x68\xfd\ 256 | \xe8\xd3\x20\x2c\xc2\x3a\x08\x29\x0e\xfb\x4a\xe5\x28\x94\x54\xc4\ 257 | \x71\x9a\xf5\x56\x48\xd2\x84\x24\x4d\x49\xab\x0f\x81\x29\xe0\xd7\ 258 | \x7f\x04\x47\x24\x58\xe1\x12\x85\x9b\x09\xab\x8f\xe2\x39\x93\x10\ 259 | \xea\x44\x3c\xff\x78\xa4\x97\x43\x03\xf4\x57\xa1\x7d\x2b\xf2\xb1\ 260 | \x07\xb0\xdb\x16\x20\x2e\xfa\x2b\xb8\xec\xcf\x29\xc7\x4f\xe2\x70\ 261 | \x1e\x46\x6f\x02\xb6\x91\x6f\xf8\x53\x4c\x62\x89\x92\x08\xc7\x71\ 262 | \x50\x4a\x91\xa6\x29\xf9\x7c\xfe\xbf\xcc\x3c\xad\x35\x6d\x6d\x6d\ 263 | \x5c\x73\xcd\x35\xbb\xe7\xcc\x99\xb3\x35\x83\x67\x81\xa7\x81\xef\ 264 | \x00\x15\x05\x14\x80\xab\x80\x4f\x00\xd3\x81\x56\xa0\x90\xa6\x69\ 265 | \xb8\x62\xc5\xca\xfd\x3b\x76\xec\x70\x83\x20\xa8\x1f\x33\x66\x8c\ 266 | \xc8\xe5\x72\x56\x58\x84\x15\xf6\xb0\x79\x97\x99\x67\x72\x94\xa2\ 267 | \x1a\xc6\xf8\x75\xa3\x69\x9c\x72\x25\x5d\x1b\xe7\xa2\x0f\xb6\x51\ 268 | \x3c\xf6\xc2\xec\x35\x2d\x71\xcd\x11\x93\xc6\x49\x26\x42\x06\x63\ 269 | \xd2\xc1\xab\x46\xa0\x10\xea\x34\x3c\xb7\x87\xa4\xf4\x18\x8e\x3f\ 270 | \x15\x70\xd1\x69\x13\xb9\xdc\x78\x92\xb4\x4c\xbe\x78\x0e\x5a\xd7\ 271 | \xda\x88\x0b\xc8\xc0\xc5\x6d\x1e\x85\x3c\xef\x42\xe4\xa9\xef\x46\ 272 | \xb4\x6f\x86\x9f\xdc\x01\x6b\x9f\x47\xb4\x4c\x25\x1a\xde\x8f\xeb\ 273 | \x07\xe8\x64\x1c\x9e\xe7\x22\x84\x40\x65\x56\x2d\x49\x12\x7c\xdf\ 274 | \xff\xaf\x36\x48\x76\xfb\xf6\xed\xe2\x96\x5b\x6e\xe9\xf8\xc9\x4f\ 275 | \x7e\xb2\x29\x3b\x3f\x92\xc0\x2e\xe0\xbb\x40\x27\x43\x88\xd6\x03\ 276 | \x27\x01\xc3\xb2\x9f\x0d\x20\xad\xb5\x66\xc7\x8e\x1d\x9d\x8b\x16\ 277 | \x2d\xea\x4d\x92\x64\x44\x6b\x6b\xab\x6a\x6e\x69\xb6\xa2\xe6\x66\ 278 | \xb0\xda\x12\xc6\x15\xa4\xac\x65\x14\x58\xe2\xa8\x82\xc2\xa5\xfe\ 279 | \xe4\x8b\xd9\x3d\xeb\xef\xc9\x0d\x1f\x83\xdf\x32\x89\x24\xb1\x20\ 280 | \x05\xa9\x36\x28\x19\xe0\x79\x0a\xc7\x71\x48\x53\x89\x40\x61\x85\ 281 | \x02\xa8\x65\x06\xe3\xf0\xbc\xd1\x74\x1f\xfc\xbf\x38\xce\x89\xe4\ 282 | \xf2\xa3\x88\xe3\x1c\x8e\xdf\x40\x79\xe0\x87\xd4\xd5\x4d\x45\x88\ 283 | \x9a\x12\x09\x0e\x9b\x5c\x44\xd3\x70\xe4\x29\xd3\x11\x6f\xbf\x02\ 284 | \x67\xf8\xc9\x88\x07\xae\xc3\x79\xea\x4e\xac\x33\x11\x7d\xe2\x05\ 285 | \xe0\x08\x92\xb0\x82\xd6\x35\x33\x1f\x04\x01\x4a\xa9\xff\xe4\xf7\ 286 | \x00\xf6\xee\xdd\x2b\xee\xbf\xff\xfe\x81\xbb\xee\xba\x6b\xad\xd6\ 287 | \x5a\x64\x85\x97\x00\xb3\x80\x25\x19\x27\x54\x06\x6b\x27\xb0\x15\ 288 | \xc8\x01\xa3\x00\x7f\xf0\x01\x80\x2a\x97\xcb\xe5\xe5\xcb\x97\x77\ 289 | \x76\x74\x74\x14\x8a\xc5\x62\x7e\xc4\x88\x16\x5c\x37\xc0\x9a\x32\ 290 | \xe8\x90\x30\x1a\xc0\x62\x80\x12\xa9\xae\x62\x6d\x0f\x5a\xa6\x04\ 291 | \x63\xc7\xd3\xbf\xfa\x5b\x78\x63\x46\x80\x9b\x90\x84\xfb\xc0\xb4\ 292 | \x63\x79\x85\x24\xd9\x8b\x4d\x76\x92\xda\x7d\x24\xd5\x1d\x08\xb5\ 293 | \x0f\xa1\xf7\x61\xf4\x7e\xa4\xe8\x20\xd1\x65\xea\x8a\x17\x12\xc7\ 294 | \x8f\xa3\x13\x70\x83\x09\x48\x9b\xc7\xf5\xc7\x11\x57\x5e\x22\x4d\ 295 | \x5f\x45\x0a\x41\x9a\x74\x62\x88\x10\x44\x58\x1b\x61\x6c\x5c\xf3\ 296 | \x78\xa3\x26\x22\xdf\xfb\x31\xe4\xc8\x29\x98\xe5\xdf\xc4\x9d\x3b\ 297 | \x1f\xb3\x67\x37\x0c\x1f\x8f\x3b\xa2\x15\x23\x15\x39\x2f\x5b\x6c\ 298 | \x88\x9f\x1b\xd9\x6c\x4f\x4f\x8f\x98\x39\x73\x66\x72\xc3\x0d\x37\ 299 | \xac\x2d\x95\x4a\x71\x06\x4f\x00\x2b\x80\x1f\x0d\xce\xc1\x83\x00\ 300 | \x07\xe3\x20\xf0\x32\x50\x02\xc6\x00\x0d\x87\x6b\x0f\x94\xd6\x3a\ 301 | \xdd\xb0\x61\x43\xfb\xca\x95\x6d\xa1\x10\xb2\x79\x58\xd3\x06\x51\ 302 | \x57\x48\xad\xe3\x0a\x21\x9c\x5e\xb0\xfd\x08\x22\x1c\x69\x88\xd3\ 303 | \x3e\x44\xa2\x70\x9b\x4e\xc5\x1f\x76\x06\x7b\x1f\xf9\x22\x85\xfa\ 304 | \xe3\xf0\xc6\x5c\x42\x90\x1b\x8d\xe7\xb4\xe2\xb8\xad\x28\x77\x0c\ 305 | \xae\x3b\x06\xd4\x28\xa2\xa8\x09\xa9\xc6\x80\x18\x81\xb1\x2d\x28\ 306 | \x39\x0a\x68\x44\x3a\x67\x12\xf5\x3d\x80\x74\xc6\x63\x45\x23\x5a\ 307 | \xbb\xe4\x8b\x6f\x01\x1b\x33\xd0\x77\x17\x5e\xfe\x7c\xca\xd5\x3e\ 308 | \x1c\xd5\x85\xd1\x03\x58\xd3\x47\x9c\x1e\xa2\x3c\xd0\x86\xd1\x6b\ 309 | \xa0\xb5\x89\x68\x4a\x23\xea\xac\x7f\xc4\x94\xbb\xf0\x7f\x7c\x3b\ 310 | \xe2\x99\xef\x21\x63\x0f\x75\xd2\x64\xec\xa0\x80\x64\x59\x5c\xad\ 311 | \x56\xc5\x9c\x39\x73\xcc\xd5\x57\x5f\xbd\xba\xb3\xb3\xb3\x3f\x03\ 312 | \x27\x81\xbd\xc0\x3d\xc0\x8e\xa1\x19\xab\x8e\x5c\xba\x00\x9b\xb2\ 313 | \x07\x37\x01\xcd\x47\x8c\x7b\xb2\xab\xeb\x50\xef\xa2\x45\xf3\x0e\ 314 | \x95\x4a\x34\x35\x8f\x98\xe1\xb5\x8c\x3c\x11\xdf\x1d\x6b\x5d\x77\ 315 | \x94\x70\xdc\x16\x94\x33\x9c\x34\x6d\xc4\xf5\x87\x91\x26\x50\x37\ 316 | \xe2\x04\x8a\xa7\x5c\x4e\xf7\x8a\x7b\xe9\xdf\xf2\x14\xd2\xf1\x70\ 317 | \x9b\x26\xa0\x54\x80\x10\x1e\xa0\x70\x1d\x0f\x29\x14\xda\x58\x84\ 318 | \x90\xf8\x5e\x80\x31\x29\x8e\xab\x40\xe6\xb0\x66\x17\xae\x37\x01\ 319 | \xa9\x86\xe3\x3a\x8a\x24\x89\x71\xfd\x51\xe0\x4c\x21\x2c\x2d\xc3\ 320 | \x75\xce\x41\xca\x16\x7c\x7f\x2c\xca\x1d\x85\xeb\xb6\x62\xec\x04\ 321 | \xa4\xa8\x8d\x81\x3a\x5a\x83\x6a\xbc\x14\x33\x7e\x1a\xde\x25\x1f\ 322 | \xc5\xd4\xb5\x22\x57\xcc\xc2\x3e\x7a\x27\xb6\x77\x2f\xc2\xaf\x43\ 323 | \x16\xea\x88\xa4\x64\xc9\xd2\x65\xf6\x86\x1b\x6e\xd8\xba\x61\xfd\ 324 | \xfa\xce\xec\xde\x65\x96\x54\x8f\x02\x0b\x87\x54\xe6\x2f\x04\x38\ 325 | \xb8\xdb\xd9\x07\xac\xcf\x6a\x7e\x6c\x26\x34\x87\xb3\x31\x4d\x09\ 326 | \x57\xaf\xde\xbe\x7f\xd3\xa6\x35\x36\x9f\xcb\x35\xb5\xb6\x8e\x14\ 327 | \xae\xeb\x58\xc7\x71\x84\x10\x02\x29\x05\x71\x1c\xe1\xba\x0e\x61\ 328 | \xb5\x4a\x50\xd7\x42\xfd\x29\x1f\x20\xdf\x3a\x95\x52\xff\x1e\x8c\ 329 | \x79\x1c\xe5\x4f\x06\x93\x27\x49\x13\xb4\xd6\x08\x21\x70\x5d\xf7\ 330 | \x70\x4f\x4a\x12\x8d\x10\x0a\x47\x01\xaa\x4a\x58\x59\x8a\xe3\x9f\ 331 | \x85\xb1\x09\x02\x85\x4e\x53\x72\x41\x03\x82\x7e\xe2\x78\x29\x5a\ 332 | \x9f\x8c\x72\xcc\xe1\x5e\xec\x38\x0a\xad\x03\x6c\xba\x06\x6b\x37\ 333 | \x10\x14\x2f\xc1\x93\x16\xa3\x35\xd1\xa8\xf1\xf8\x33\x3e\x04\xa7\ 334 | \xbf\x0b\x51\xad\xc2\x8a\xf9\x88\xd9\xf7\xd9\xae\x97\x16\x8b\x47\ 335 | \x7f\xf0\x58\xf7\x63\xcf\x2f\x7c\x45\x81\xd2\x99\xdf\x07\xe6\x65\ 336 | \x00\xa3\x23\x61\xa9\x5f\x32\xbd\x0c\x00\x1b\xb2\xd2\x1e\x91\x09\ 337 | \x8c\x78\x6d\x55\x61\xd9\xb7\x6f\xff\xa1\x45\x8b\x16\xf5\x25\x49\ 338 | \xd2\x3c\x6a\xd4\x28\xa7\x58\x2c\xe2\xfb\xbe\x1d\x9c\x97\xad\xb5\ 339 | \x18\x63\x6a\x59\x13\xc7\x28\xbf\x0e\xa7\xe1\x44\x5c\x6f\x02\x7d\ 340 | \x87\xae\x45\xf9\x93\x10\x32\x40\x58\x87\x24\x89\x6b\xd3\x8c\x31\ 341 | \xaf\x2d\x2b\x1d\x85\xd1\x16\x6c\x91\x30\x9c\x4d\xc1\xbb\x10\x54\ 342 | \x0c\x38\x24\x71\x84\xef\x29\x84\x68\xa2\x5c\x9a\x45\xbe\x30\x83\ 343 | \x4a\xb9\x8a\xef\x7b\x08\x21\x01\x8b\x72\x04\xd5\xde\xa7\x50\x4e\ 344 | \x07\x5e\xee\x12\xa4\x00\xad\x2d\x68\x8d\xe7\xba\xc8\x7c\x01\x39\ 345 | \xf1\x64\x9b\x9e\xf9\x6e\x96\xd8\xe1\xfc\xf0\xc6\x9b\x3b\x5a\x56\ 346 | \xaf\xee\xff\x4c\x40\xeb\x9f\xb9\x8c\x3c\x94\x12\x6f\x87\x67\x81\ 347 | \xfb\x80\xee\x5f\x04\x49\xfd\xaa\x8d\x7d\x56\xf3\x9b\x00\x0f\x18\ 348 | \x9d\xb9\xf0\xc3\x02\x13\x86\x61\x79\xf9\xf2\xe5\x1d\xbb\x76\xed\ 349 | \xf2\x82\x20\xa8\x6b\x6e\x6e\x16\x75\x75\x75\xb8\xae\x4b\x1c\xc7\ 350 | \x28\xa5\x90\x52\xe2\xba\x6e\x6d\xb7\xe8\x39\x20\x9a\xc8\xd7\x4d\ 351 | \x27\xec\xbb\x1b\x37\x18\x8f\xeb\x8f\xc2\x58\x8d\x35\xa0\x1c\x49\ 352 | \x92\xd4\xd6\x5d\x42\x48\x8c\xd5\x48\x65\x08\xa3\xd5\x04\xf9\xf3\ 353 | \x30\x1a\xa4\xac\x29\x6f\xaa\x01\x51\x25\x8c\x96\xe0\x7b\xef\x44\ 354 | \x2a\x8d\x4e\x62\x04\x8a\xd4\x44\x28\xc7\xc5\x54\x7f\x84\x94\x79\ 355 | \x9c\xfc\x7b\x01\x89\xd1\x09\x88\x9a\x03\x40\x08\xe2\x38\x61\xe9\ 356 | \xa2\x85\xe2\x9b\x37\xdf\xb4\xe7\xfb\x2f\xae\xda\x3c\x37\xb5\x3d\ 357 | \x8f\x24\x74\xff\x38\xa1\x7b\x0b\xac\xc9\xfa\xde\xee\xff\x0a\x90\ 358 | \x7a\x9d\x0b\xe9\x1e\x60\x1d\xd0\x9b\x41\xac\xcf\xb2\xd1\x02\xca\ 359 | \x5a\x6b\xb6\x6f\xdf\xde\xb1\x6a\xd5\xaa\x4a\x14\x45\xcd\xcd\xcd\ 360 | \xcd\xb2\xa9\xa9\xc9\x06\x41\x20\xb4\xd6\x18\x63\x6a\x4b\xd4\x6c\ 361 | \xe1\x90\xa6\x11\x8e\x53\x87\x90\x67\x52\xea\xb9\x09\xe1\xd4\x11\ 362 | \xe4\x8e\x23\x0a\x23\x8c\x4e\x51\xca\xc1\x75\x5d\x8c\xd1\x24\x69\ 363 | \x8a\xeb\x3a\xc4\x95\x85\x38\xde\xd9\x48\x69\x10\x38\x48\x29\x70\ 364 | \x94\x44\xa7\xed\x24\x71\x1f\x41\xfe\x4c\x3c\xd7\xc5\x18\x48\x75\ 365 | \x8a\xd6\x02\xac\xa2\x5a\x9a\x85\x55\xc7\xe0\x38\xd3\x91\x0a\x92\ 366 | \xc4\xe0\x79\xaf\x2d\x46\x96\x2e\x5d\x2a\xae\xbb\xee\x5f\x77\x2d\ 367 | \x98\x3f\x7f\x33\xd6\xaa\xec\xbe\x54\x0a\xfb\x81\xef\x51\x83\xc8\ 368 | \x6f\x0a\x10\x20\x06\x36\x67\x96\xa7\x2e\xb3\x3b\xce\x90\xbe\xa9\ 369 | \x7a\x7b\x7b\xfb\x5e\x7c\xf1\xc5\x83\x07\x0f\x1e\xac\x1b\x36\x6c\ 370 | \x58\xae\xa9\xa9\x89\x20\x08\x0e\x97\xb4\x94\x92\x30\x0c\x51\x4a\ 371 | \x60\x4d\x8a\xc1\xa5\x50\x7f\x29\xa5\xae\xbb\xb0\x49\x09\x3f\x3f\ 372 | \x19\x21\x40\x4a\x59\xbb\xc1\x38\x21\xc8\x05\x58\x63\xa8\x56\x17\ 373 | \x92\xcf\xcf\xc0\x08\xc0\x08\x92\x38\xc6\xf5\x7c\x84\xe8\x00\xbb\ 374 | \x0b\xe5\x9c\x89\x31\x31\x71\x9c\x92\xcb\xf9\x78\xbe\x8b\xa3\x14\ 375 | \x26\xba\x1f\xe9\xd4\xa1\xfc\x19\xa4\x89\x26\x4d\x13\x82\x20\xb0\ 376 | \xd5\x6a\x55\x3c\xf7\xdc\x73\xdc\x74\xd3\x4d\x7b\x16\x2c\x58\xb0\ 377 | \x05\x70\x87\x7c\xe0\xaa\x17\xf8\x01\xf0\xdc\x91\xa2\xf1\x9b\x00\ 378 | \x1c\x8c\x8e\xcc\xee\x54\x33\x81\x29\x0e\x85\xa8\xb5\x4e\x36\x6e\ 379 | \xdc\xd8\xfe\xf2\xcb\x2f\x6b\xdf\xf7\x87\xb7\xb4\xb4\x88\x62\xb1\ 380 | \x68\x73\xb9\x9c\x08\xc3\x90\x5c\x2e\x47\x14\x25\x28\xc7\x03\x0d\ 381 | \x9e\xa7\xc9\x15\x66\x50\x1e\xb8\x0b\x41\x07\xb9\xc2\x19\x48\x29\ 382 | \x49\xd3\x14\x2c\x48\x47\xa1\xa8\x10\x45\xf3\x28\xd6\x5d\x8e\x12\ 383 | \x0a\x6b\x2c\xa9\x31\x48\xa9\xb0\x3a\x26\x0c\x17\x50\x57\xff\x6e\ 384 | \x1c\x07\x74\x02\x9e\xef\xd5\x0e\x9c\x50\x24\x95\x99\x28\x11\x10\ 385 | \xe4\x2f\xaa\x8d\x95\x42\x12\xc7\xb1\x78\xfa\xe9\xa7\xb9\xf6\xda\ 386 | \x6b\xb7\x2d\x59\xb2\x64\xfb\x10\x0e\x2a\x73\x22\x8f\x01\xb3\x33\ 387 | \x11\xe5\xb7\x0d\x90\x0c\xde\x7a\x6a\x69\x3e\x28\x30\x43\x8f\xf9\ 388 | \x45\x67\x67\xe7\xa1\x85\x0b\x17\x76\x97\xcb\xe5\x61\xcd\xcd\xcd\ 389 | \x6e\x6b\x6b\x2b\xbe\xef\xdb\x4a\xa5\x22\x3c\xcf\xc3\xf3\xbc\xda\ 390 | \xd4\xa1\x6b\x3b\x44\xe5\x5d\x4a\xa5\xef\x5e\xac\xed\xc0\xf5\xa7\ 391 | \xe0\x64\xfb\xba\x34\x49\x30\xc6\x10\x96\xd7\x92\x2b\x9c\x55\x53\ 392 | \x66\xd7\xc1\xf7\x3c\x8c\x49\x31\x49\x91\xbe\xf8\xc7\x78\xf2\x9d\ 393 | \x08\xe1\x60\xac\xcd\xb6\x2c\x0a\x04\x44\xe5\x59\x58\x1b\x40\x70\ 394 | \x11\x10\xdb\x72\x39\x14\x73\xe6\xcc\x31\xd7\x5f\x7f\xfd\xd6\x55\ 395 | \xab\x56\xed\x1c\x52\x45\x32\x83\xf7\x64\xa6\xb8\xe5\xd7\x03\xe2\ 396 | \xbf\x0b\x70\x30\xe3\xf6\x64\xbd\x51\x64\xd9\x98\x1f\x62\x77\x9c\ 397 | \x24\x49\xc2\xb6\xb6\xb6\xfd\x5b\xb6\x6c\x71\x7c\xdf\x6f\x18\x33\ 398 | \x66\x8c\x68\x6c\x6c\x44\x6b\x4d\x18\x86\x48\x25\x09\xab\x21\x9e\ 399 | \xef\x11\x85\x15\xea\x9b\x2f\x27\x1a\x98\x47\x1a\x2f\xc7\xc9\x9d\ 400 | \x8b\xb0\xa0\x1c\x87\x34\x59\x43\x92\x74\xe1\x05\xe7\xa2\x75\x8c\ 401 | \x31\xb5\x93\x33\xb0\x38\xbe\x8f\xae\xac\xc1\x75\xc6\x23\x9c\x46\ 402 | \x92\x38\xcd\x66\x6c\x03\x46\xa0\xab\xf7\xe0\xc9\x7a\x54\xfe\x7d\ 403 | \xec\xdf\xdb\x2e\x1e\x79\xf8\x11\x73\xe3\x8d\x37\x6e\xd8\xb0\x61\ 404 | \xc3\xbe\x0c\x9e\xcd\xe0\x55\x81\x27\xb2\xd2\xed\x7f\xbd\x10\x7e\ 405 | \x13\x80\x83\xd1\x0f\xac\x05\xba\xb2\x45\x44\xe3\x10\x81\x11\x00\ 406 | \x7b\xf6\xec\xe9\x5c\xba\x74\x69\x5f\x9a\xa6\x23\x5a\x5b\x5b\x65\ 407 | \xb1\x58\xa4\xae\xae\xce\x26\x49\x22\xc2\x30\xa4\x90\x2f\x64\x37\ 408 | \x6c\x08\xea\x67\x90\x94\x67\x12\x55\x5f\x42\xe6\xde\x86\x48\x7b\ 409 | \xa9\x94\x7e\x48\x53\xf3\x17\xd1\x69\x84\xd1\x11\x4a\xd5\x26\xcd\ 410 | \x30\x0c\x71\x1d\x9f\x34\xdd\x83\x54\x39\x52\xdb\x4a\x1a\x87\x28\ 411 | \xe9\x92\x1a\x43\x9a\x48\xc2\x68\xb6\xd5\x72\xbc\xd8\xd3\x7e\x0c\ 412 | \x0f\xdc\xf7\xbd\xf8\x5b\x37\xde\xb8\x72\xdf\xbe\x7d\x5d\x47\xc0\ 413 | \x8b\xb3\x92\xfd\x51\x66\xdf\xf8\x7d\x02\x1c\xb4\x3b\xdb\xb3\x79\ 414 | \xba\x90\x81\xf4\x86\xda\x9d\x4a\xa5\x52\x59\xb6\x6c\x59\xfb\xde\ 415 | \xbd\x7b\xf3\xf9\x7c\xbe\x30\x6e\xdc\x38\x51\x28\xd4\xc0\x0d\x1a\ 416 | \xe9\x24\x49\x51\x08\xdc\xc2\x25\xa4\xe1\x3a\x44\x69\x01\x25\xbd\ 417 | \x93\x7c\xfe\x4f\x90\x6e\x03\xae\xe3\xa2\x94\x8f\x94\xd4\xb2\x38\ 418 | \x4a\xf0\x3d\x1f\x4c\x37\x56\xf6\x13\xf8\xc7\x63\x0d\xe4\xf2\x3e\ 419 | \x9e\x27\xf1\x7d\x88\x07\xbe\x2f\xd6\xaf\x3f\xc4\xbf\xdf\xb5\xae\ 420 | \xff\x3b\xff\xfe\x9d\xb6\x72\xb9\x5c\x39\x02\x5e\x94\x65\xde\x0f\ 421 | \x7f\x9d\xcc\xfb\x6d\x03\x1c\x8c\x43\x99\xec\x97\x81\x71\x47\x08\ 422 | \x8c\xb0\xd6\x9a\xcd\x9b\x37\xb7\xb7\xb5\xb5\x45\x4a\xa9\x96\xd1\ 423 | \xa3\x47\xd3\xd8\xd8\x68\x95\x52\xc2\xf3\x3c\x5c\xd7\x45\x48\x81\ 424 | \xc0\xa2\xfc\xe9\x54\xc2\x5e\xd2\x78\x26\x7e\xfe\xca\x5a\x66\x29\ 425 | \x07\x29\x25\x5a\x1b\xa2\x28\xa2\xb1\xa1\x01\x6b\x53\xd2\x50\x52\ 426 | \xad\xee\x47\x73\x02\xb9\x9c\x40\xc9\x9a\x99\x8e\xaa\x89\x5d\xf0\ 427 | \xec\xdd\xe2\xf6\x3b\x5e\x3c\xf0\x93\xc7\x56\xac\x4e\xd3\x9a\x73\ 428 | \x1c\xd2\xf3\xaa\xbf\x09\xbc\xdf\x05\x40\xb2\x77\x74\x4b\x66\x3e\ 429 | \x87\x65\x22\x33\xf4\x75\x64\x4f\x4f\x4f\xcf\x92\x25\x4b\x0e\xf5\ 430 | \xf4\xf4\xd4\x0f\x1b\x36\x2c\x68\x6a\x6a\xb2\xb9\x5c\x0e\x21\x84\ 431 | \x18\x3c\xac\x4a\x92\x98\x62\xc3\x64\x94\x3a\x96\xa8\xff\x1b\x78\ 432 | \xb9\xd3\x48\xcc\x30\x92\xa8\x44\xac\x0d\xbe\xef\x65\x87\x59\xb5\ 433 | \xf3\x66\x21\x17\x51\x2c\x9e\x8d\xc1\xa0\xb5\xb1\x07\x3a\x0f\x88\ 434 | \x99\x8f\x3d\x6a\x6f\xbe\xe5\xd1\x9d\x0b\x97\xf4\x6f\xb2\x3f\xff\ 435 | \x29\x58\x99\x01\xfb\x31\xf0\xf0\xaf\x5b\xb6\xbf\x6b\x80\x83\x8b\ 436 | \xea\x7d\x99\xdd\x49\x81\xf1\x43\x04\x06\x40\x25\x49\x12\xad\x5e\ 437 | \xbd\xba\xfd\xe5\x97\x5f\x36\x4a\xa9\x61\x13\x26\x4c\x10\xc5\x62\ 438 | \x91\x28\x3b\xab\xad\x1d\x9b\x82\xe3\x8e\xc5\x0d\xce\xa5\xbf\xf3\ 439 | \xf3\x48\xa1\x09\x0a\x67\xe0\x48\x83\xd1\x29\xc6\x18\xa2\xb4\x02\ 440 | \x71\x8e\x58\x2f\x43\xa9\x33\x40\x08\xbb\x63\xdb\x0e\x71\xef\xfd\ 441 | \xdf\x4b\x6f\xbe\xf9\x96\xd5\xdb\xb6\x1f\x6a\xcf\x80\x0d\xae\xa4\ 442 | \x9c\x6c\x30\x78\x00\x78\x3c\xcb\x42\x8e\x36\x80\x83\x51\xca\xe6\ 443 | \xe9\x03\x40\x4b\xb6\xe1\xf9\xb9\xcf\x51\xb4\xb7\xb7\x1f\x5a\xbe\ 444 | \x7c\x79\x5f\xb5\x5a\x6d\x6a\x6c\x6c\x74\x9b\x9a\x9a\x0e\x1f\x1f\ 445 | \x48\x29\xc1\x0a\xaa\xd1\x3c\xac\x2c\x62\xe3\x95\x68\x73\x00\xaf\ 446 | \x30\x1d\x6b\x25\x71\x52\xa5\xbe\xd8\x88\xe7\x28\xaa\xe1\xb3\x36\ 447 | \xf0\x4f\x17\x8b\x97\x2c\x17\xb7\xde\xfa\xed\x9e\xef\x7e\xf7\xde\ 448 | \x55\xfd\xfd\xfd\xa5\x21\xf7\x38\x08\x70\x6f\x06\xef\xe9\x4c\x3c\ 449 | \x38\x9a\x01\x0e\x0a\xcc\xce\x6c\x9e\x76\xb2\xde\xe8\x67\x59\x3a\ 450 | \x38\x4f\x57\xda\xda\xda\x3a\xb6\x6e\xdd\xea\x34\x35\x35\xd5\x4f\ 451 | \x98\x30\x41\x04\x41\x40\x94\x48\x06\xaa\x0f\x23\x4c\x95\xfa\x86\ 452 | \x4f\xe3\xe6\x2e\xa0\xd2\x75\x3f\x49\xb2\x11\x63\xce\xa2\xae\x3e\ 453 | \x07\x42\x62\x84\xb4\x7b\x5e\x5d\x24\x9e\x78\x72\x0b\xb7\x7c\xfb\ 454 | \x3b\x3b\xe6\xce\x9d\xbb\x59\x6b\x9d\x0e\xd9\xb8\x0f\xae\xe3\xd7\ 455 | \x65\xb3\xed\xe2\xec\xba\xf8\x9f\x00\xf0\xc8\x79\xba\x67\x88\xdd\ 456 | \x19\x14\x18\xa9\xb5\xb6\xbb\x76\xed\xea\x78\xe1\x85\x17\xaa\xd6\ 457 | \xda\xe6\x91\x23\xc7\xca\x42\x71\x01\x49\xdf\x2e\x8a\xf5\x9f\x42\ 458 | \x2a\x41\x39\x12\xd4\xd7\x5f\x4e\x5c\x79\x1c\xc1\x5e\xfc\xfc\x99\ 459 | \x36\x4d\x52\xf1\xe2\x8b\x2b\xc4\x43\x0f\xcd\x8c\x6f\xbc\xe9\xde\ 460 | \x35\xdb\xb6\xbd\xb2\x77\x48\xc9\x32\xc4\xa6\x2c\xcd\xe0\xad\xff\ 461 | \x55\xe3\xd9\xd1\x0a\x70\x70\x9e\xde\x06\xbc\x92\x29\x74\x6b\x36\ 462 | \x83\x1e\xde\x35\xf6\xf7\xf7\xf7\x2d\x5f\xfe\xc2\xa1\x7d\x7b\x77\ 463 | \xe6\xfc\x60\x65\xfe\x84\x13\xbf\x44\x50\x28\xda\xfe\xde\x50\x38\ 464 | \xae\xc5\xf5\x5d\x3c\xef\x1d\x84\xd5\x59\x74\x75\xcf\x14\x8b\x16\ 465 | \x55\xb9\xed\xb6\xdb\x3b\x1f\x7e\x68\xc1\xba\x81\x52\x65\x60\xc8\ 466 | \x64\x31\xd8\xef\xfa\x33\x8f\xf7\x40\x56\xbe\xbf\xd5\xf8\x7d\x03\ 467 | \x1c\xcc\xb8\xce\xcc\x7c\x87\x47\xcc\xd3\x99\xc0\xa4\xc9\x86\x8d\ 468 | \x9b\xda\x5f\x5e\x1b\xa5\x42\x35\x34\x0f\x1f\x36\x42\x8c\x1e\xd3\ 469 | \x8a\x92\x0e\x71\x12\x52\x0d\xb5\xed\xad\x4c\xe1\xd1\x1f\x3c\x69\ 470 | \xaf\xbf\xf1\xe6\x2d\x2f\xbc\xb0\x7e\x5b\xaa\xd3\xc1\x52\xb5\x43\ 471 | \xd6\xf0\x9d\x99\x39\x9e\x09\xf4\xfd\x2e\x6e\xe6\x0f\x01\x70\xe8\ 472 | \x3c\xbd\x31\x53\xeb\x61\xd9\xf1\x81\xfa\xf9\xe3\x83\xbe\x43\x4b\ 473 | \x96\x2c\xed\x1e\x18\xe8\xab\x1f\x3e\xbc\xd9\x6f\x6e\x6e\xc6\x68\ 474 | \x6b\x57\xb5\xad\x14\x77\xde\x79\x57\xf9\xae\x7b\xe7\xae\xdb\xb7\ 475 | \xb7\xab\x7d\x88\x31\x1e\x2c\x59\x93\xb5\x8b\xfb\x80\x67\x7e\x1b\ 476 | \x62\xf1\x07\xfd\x9a\xc3\xeb\x88\x31\xc0\x15\xc0\x85\xd9\xae\xd1\ 477 | \x0c\xc9\x24\x23\x84\x90\x53\xa7\x4e\x3d\xe6\xe3\x1f\xff\xf8\xb1\ 478 | \x85\x42\x81\x07\x1f\x7c\xf0\xd5\x65\x4b\x97\x6d\x4f\x75\x6a\x8e\ 479 | \xc8\x3a\x95\xad\xa2\xe6\x66\x06\x79\xcf\xef\xfa\xc2\x8f\xa6\x2f\ 480 | \x96\xf9\xc0\x05\xc0\x07\x80\x63\x87\x28\xe8\x20\x9c\xa4\xa5\xa5\ 481 | \xa5\xd5\x71\x1c\xb7\xbd\xbd\x7d\x57\x36\x2a\x1e\x79\x1f\x1d\xc0\ 482 | \x4f\x80\x39\x59\x7b\xe0\x8d\x04\x70\xf0\x7a\x4e\x00\x3e\x98\x7d\ 483 | \x02\xaa\x78\x64\x36\x0e\x8a\xcd\xd0\x1d\x64\xb6\xb7\x5b\x99\x4d\ 484 | \x16\xeb\x32\xf3\xfe\x7b\x09\xc5\xd1\x17\x5d\x99\xc0\x94\x86\x08\ 485 | \x8c\x38\x42\x1c\x18\xe2\xef\x7a\xb2\x1d\xde\xf7\xb3\x85\x86\xf9\ 486 | \x7d\x5e\xec\xd1\x08\xf0\xc8\xe3\x83\x42\x76\x7c\xe0\x1d\x01\xce\ 487 | \x66\x9e\xee\xfb\xc0\x4f\xff\xbb\xcb\x80\xff\xad\x00\x07\x41\xb5\ 488 | \x67\xd9\x98\x0e\x39\x9f\x16\x40\x25\x3b\xaf\xb8\x3b\xfb\xbb\xf9\ 489 | \x43\x5d\xe4\xd1\x0c\xf0\xc8\xe3\x83\xbd\xd9\xf4\x52\xa5\xf6\xb5\ 490 | \xac\x87\xa9\x9d\x59\xbf\x19\xbf\x86\xc0\xb4\x64\x99\x78\xd4\xbc\ 491 | \xf1\xff\x01\xa6\xf0\x49\x0d\x94\xc1\x18\xf4\x00\x00\x00\x00\x49\ 492 | \x45\x4e\x44\xae\x42\x60\x82\ 493 | " 494 | 495 | qt_resource_name = "\ 496 | \x00\x07\ 497 | \x07\x3b\xe0\xb3\ 498 | \x00\x70\ 499 | \x00\x6c\x00\x75\x00\x67\x00\x69\x00\x6e\x00\x73\ 500 | \x00\x08\ 501 | \x08\x49\x66\x25\ 502 | \x00\x4f\ 503 | \x00\x53\x00\x4d\x00\x72\x00\x6f\x00\x75\x00\x74\x00\x65\ 504 | \x00\x08\ 505 | \x05\xe2\x59\x27\ 506 | \x00\x6c\ 507 | \x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ 508 | " 509 | 510 | qt_resource_struct = "\ 511 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ 512 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ 513 | \x00\x00\x00\x14\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\ 514 | \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ 515 | " 516 | 517 | def qInitResources(): 518 | QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 519 | 520 | def qCleanupResources(): 521 | QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 522 | 523 | qInitResources() 524 | -------------------------------------------------------------------------------- /resources.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | logo.png 4 | 5 | 6 | -------------------------------------------------------------------------------- /resources_rc.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Resource object code 4 | # 5 | # Created: Mi. Jun 17 23:24:39 2015 6 | # by: The Resource Compiler for PyQt (Qt v4.8.6) 7 | # 8 | # WARNING! All changes made in this file will be lost! 9 | 10 | from PyQt4 import QtCore 11 | 12 | qt_resource_data = "\ 13 | \x00\x00\x1d\xd8\ 14 | \x89\ 15 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ 16 | \x00\x00\x50\x00\x00\x00\x46\x08\x06\x00\x00\x00\x5b\x9e\x13\x2b\ 17 | \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ 18 | \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ 19 | \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ 20 | \x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x0b\x1e\ 21 | \x0d\x2a\x31\x08\x9e\xa9\xbb\x00\x00\x1d\x58\x49\x44\x41\x54\x78\ 22 | \xda\xed\x9b\x79\x80\x9d\x55\x79\xff\x3f\xe7\x9c\x77\xbb\xcb\x6c\ 23 | \xc9\x4c\x92\xc9\x4a\x58\x85\x18\x42\x02\x04\x04\xc1\xe0\xc6\x26\ 24 | \xa0\xd6\xaa\x95\x5a\xac\x75\xeb\xaf\x8b\xad\xf5\xa7\x6d\x95\x0a\ 25 | \x3f\xa9\x88\x2c\xf2\x2b\x60\x59\x44\x10\x51\x16\x0d\xc1\x08\x84\ 26 | \x2c\x2c\x59\x09\x24\x93\x85\xec\x0b\x59\xc8\x32\x33\x49\x66\xbf\ 27 | \xcb\xbb\x9d\x73\xfa\xc7\x7d\x27\x8c\xa9\x55\xac\x5b\x5a\x78\xfe\ 28 | \x9b\x99\x7b\xe7\xbe\xef\xe7\x3e\xcf\xf3\xfd\x3e\xcf\xb9\x17\x8e\ 29 | \xf2\x78\x6e\xc5\x1a\x00\xbe\xf8\xd9\xcf\x5c\xef\xa8\xdc\x44\xde\ 30 | \x8c\xd7\x1f\x5f\xbd\xeb\x1e\x00\x0e\x5a\x7b\xc2\xe5\x17\x5f\x51\ 31 | \x42\x72\xcc\x9b\x54\x7e\xcd\x58\xb4\x6e\xe3\xa4\x9d\xbb\x7b\x7a\ 32 | \xdf\xfa\x96\xd3\x4a\xb8\x04\x47\xdb\xf5\xc9\xa3\x11\xda\xf7\xee\ 33 | \xfc\x36\x00\x6d\x6d\x6b\x3e\x49\x9f\x59\xbc\x76\xd5\xda\x86\xf7\ 34 | \x7d\xf8\x8f\xba\x48\x08\xdf\x4c\xa9\x5f\x12\xf7\xdd\x7d\x33\x2f\ 35 | \x6c\xd9\x07\xc0\x75\x5f\xbb\xfa\x86\x3f\xf9\xf0\x27\xd2\x31\xad\ 36 | \xe3\xed\xf9\x17\xbc\xcb\xee\xd8\xd1\xfd\xf2\xd1\x78\xcd\x47\x4d\ 37 | \x06\xde\xf6\xf5\xeb\xf8\xf3\xcf\xfc\x03\xce\xa1\xed\x13\xe6\xcc\ 38 | \x7b\x7e\xf6\xa8\xf1\xa7\x7e\xe9\xf4\xe9\x67\x2b\xc7\x91\x8c\x1c\ 39 | \x31\x8a\x28\x0e\x7b\xdf\x04\xf8\x4b\xe2\x6f\xae\xfe\x2a\xf7\xde\ 40 | \x74\xd3\x55\x5f\xbe\xfa\x1b\x2b\xca\x25\x71\x99\x72\x3c\x3b\x7e\ 41 | \xe2\x71\xf6\xc3\x1f\xf9\x04\x41\x90\xa3\x50\x28\x1c\x04\x58\xb6\ 42 | \x78\xf5\x51\x05\xd0\xf9\x43\xbe\xb8\xb5\x16\x21\x04\x3b\xf7\xbe\ 43 | \xd2\xf8\xc0\x1d\xf7\x5f\xf3\xd5\x6f\xde\xf2\xf9\xae\xbe\x83\xb4\ 44 | \x8e\x9b\x68\x3f\xf4\xfe\x8f\x89\x83\x07\xdb\xb1\x52\x10\x04\x39\ 45 | \xbe\x7e\xcd\x57\x76\x02\x9c\x73\xde\xd4\x37\x01\x02\x3c\xbb\xe8\ 46 | \x19\x84\x10\x74\x74\x1d\xb8\xec\xd5\x57\xba\xbf\xb9\x6d\x77\xfb\ 47 | \x29\x17\x5c\x7c\x91\xf5\xdd\x40\xbc\xfd\x1d\xef\x11\x77\xdc\x7e\ 48 | \x03\x2b\x57\x2e\xa5\x69\xf8\x48\x3e\xf4\xc7\x1f\xe3\x3b\xb7\xdd\ 49 | \xb0\xe5\xcd\x12\x06\x9e\xfc\xd9\x53\x00\x0c\x94\xbb\xe4\x93\x4f\ 50 | \xcc\xf9\xd2\x27\x3e\xfc\xc9\x59\x17\xbd\xfb\xdc\x93\x9f\x9c\x33\ 51 | \xcb\xbe\xe7\xbd\xef\x17\xd3\xa6\x9d\x4d\xb1\x58\xc7\xa4\xb7\x4e\ 52 | \xc1\xf5\x02\xa2\xb0\xcc\x86\xf5\x6b\xa9\xab\x6b\xd8\xfa\x86\x07\ 53 | \xf8\xf8\xdd\xf7\x70\xe9\x65\x97\xb0\x7d\xe3\xba\x96\x31\xad\xa7\ 54 | \xcd\x74\xbd\x96\x1b\x36\x6e\x5a\xaf\xa4\x2b\x45\x54\x09\xc5\xd3\ 55 | \x4f\xcf\x66\xd4\xe8\xb1\x34\x37\x8f\xe4\x92\x4b\x3f\x00\xc6\x92\ 56 | \x68\x4d\xa2\x63\x26\x8c\x1b\xbb\xf3\x68\x04\x28\x7e\x5f\x2f\x74\ 57 | \xd7\x75\xdf\xe2\xb1\xb9\x73\x99\xfe\xd6\x13\xdd\x03\x5a\xbd\xf8\ 58 | \x81\x0f\x5e\x39\xb5\xab\xeb\xa0\x7d\xfc\xc7\x0f\xf1\xc4\x53\xb3\ 59 | \x84\x44\xe2\x16\x73\xfc\xf3\x57\x6f\xa0\x5a\x2e\xd3\xd9\xbe\x97\ 60 | \xb1\x13\x8f\xe1\xf4\x69\xd3\xc9\xe7\x82\x68\xde\xcc\x3b\x0a\x5f\ 61 | \xbf\xf9\x4e\xfd\x86\x05\x08\x70\xf9\x29\xe7\xe5\xfa\x1b\xec\x4b\ 62 | \x9b\x77\xef\x7c\xeb\xdf\x7d\xe1\x1f\xed\xb0\xfa\x66\xb1\x67\xf7\ 63 | \x2e\x16\x2f\x7d\x96\xa9\x67\x9c\xcd\xd9\xe7\xcc\xe0\xfe\xbb\xfe\ 64 | \x8d\xf9\x0b\x9e\x44\xeb\x94\x7f\xf8\xe7\x7f\xe5\x33\x7f\xf1\x57\ 65 | \x1c\x3c\xb0\x6f\xf7\xb9\x6f\x9b\x74\xcc\x13\x3f\x7d\x8a\xf7\x5d\ 66 | \x71\xc9\x1b\x17\xe0\xdf\x7e\xe0\xc2\xe6\x09\xe7\x5d\xd6\x3e\x62\ 67 | \xd4\x78\xa7\x2e\x57\x67\x3f\xff\x7f\xae\x12\x87\xfa\xba\xb9\xfe\ 68 | \x96\x7f\x67\xf2\x29\xd3\x90\x52\xd2\xb1\xf7\x55\x3e\xf7\x99\x8f\ 69 | \xe2\x28\x49\xfd\x88\x91\xcc\x7e\x62\x31\xa5\xee\x03\x8b\xcf\x3a\ 70 | \xeb\xe4\xf3\xdf\xd0\x3d\xf0\xb6\xeb\xff\x85\x7f\x9b\x35\xf7\xd0\ 71 | \xb4\x69\x93\x4e\x3f\xe1\xc4\x53\x28\x16\x8b\xc2\xf3\x7c\x8a\xf9\ 72 | \x02\x3f\xf8\xfe\xdd\xc4\x49\x84\xb5\x86\x13\x4f\x99\xcc\x5b\x4e\ 73 | \x79\x2b\xb9\xba\x3a\x1c\x24\xab\x56\xbd\x48\x6f\x5f\x6f\xfb\xd1\ 74 | \x3a\x3d\xfd\xde\x6c\xcc\xdf\xfc\xd3\xff\x63\xf6\xcf\x1e\x43\xc3\ 75 | \x7a\x6b\xe2\xd9\x13\x8f\x3f\xe9\xf2\x49\xa7\x4c\x61\xde\x73\x4f\ 76 | \xb0\x7b\xfb\x36\xd6\xbf\xbc\x8a\x34\x49\x58\xba\x74\x21\x53\xdf\ 77 | \xf6\x76\x6e\xbb\xea\x2f\xc9\xe5\xf3\xdc\x7f\xe7\x6d\x3c\xf8\xd0\ 78 | \x3d\xbd\x6f\x78\x80\x00\x97\x5f\xf6\x41\x00\x73\xc3\xd7\xae\xbd\ 79 | \xe5\x67\xcf\x2e\xbc\xf4\xd4\x69\xd3\xe4\x37\x2e\xba\x43\x1c\x7b\ 80 | \xdc\x49\xbc\xb4\x74\x21\xd7\x5d\xff\x15\x1a\x1b\x9a\x28\xac\x69\ 81 | \xe2\xcf\x3f\xf9\x97\xd8\x54\x33\x66\xdc\x78\x30\xfa\xa8\x05\xf8\ 82 | \x07\x19\xe5\xbe\x74\xcd\xbf\x2c\x3b\xb0\x7b\xc7\xc0\xb2\x25\x8b\ 83 | \xc5\x99\x67\x9f\x4f\x5d\x7d\x23\x97\xbd\xff\x23\x8c\x1e\x35\x16\ 84 | \x3f\x97\xb3\xfd\xdd\xdd\xec\xda\xb9\x03\xd7\x75\xf1\xf3\x79\x06\ 85 | \xaa\x49\xc7\x9b\x00\x87\x2a\x97\x10\xc9\x84\xd6\x09\x4f\x55\xab\ 86 | \x25\xca\xd5\x7e\x5c\xcf\xa3\xae\xb1\x91\xb1\xa3\xc7\x23\x71\x84\ 87 | \xeb\x3a\xdd\xfb\xdb\xf7\x3e\xb7\x72\xc3\xda\x3b\x9d\xf2\x81\xe7\ 88 | \xbf\x70\xd1\x79\x3b\xad\xb5\x4e\xa2\x6d\xd3\x1b\xba\x84\x87\x46\ 89 | \xb9\x1a\x2d\xae\xf6\x0f\x1c\xb3\xf9\x95\x4d\x95\x77\x9c\xfd\xae\ 90 | \x52\x6a\xa2\x2d\xc5\x86\xfc\xca\xd2\xe6\xce\x0d\x03\x95\x68\xd3\ 91 | \xe7\x3f\xfb\xa7\x58\x6b\xe5\x2b\xcf\xbe\x7a\xfb\xc8\x2b\xfe\xf5\ 92 | \xda\x24\xad\xfc\xc0\xa4\xdb\x0a\x51\xb8\x76\xb9\xeb\x9d\x3a\x5f\ 93 | \x08\xe6\x02\x1b\x84\x10\x7d\x47\xce\xd6\x6f\x94\x90\xc3\x46\xb6\ 94 | \xb8\x57\x7e\xf6\x6f\x95\xb6\x56\x1c\xb1\x64\x68\xb5\xd6\xde\x69\ 95 | \xad\xdd\xbd\xf7\xa5\x79\xe9\x40\xe7\x7a\x5b\xad\x46\x36\x8a\x23\ 96 | \x5b\xa9\xee\xb0\xe5\x9e\xdb\x6c\x12\x27\x15\xad\xd3\xdd\x51\x14\ 97 | \x3d\x6f\x8c\xf9\x94\xb5\xd6\xe7\x8d\x1c\xbd\x6d\xb7\x15\x8d\xad\ 98 | \xbc\xc7\xd8\x64\xbe\x31\xb1\xd5\x3a\xb1\xc6\x5a\xbb\xe7\xf9\xd9\ 99 | \xb6\x67\xdf\xad\x36\xac\xa6\xb6\x5a\x0d\x6d\xb5\x6a\x6d\xb9\xf7\ 100 | \x3e\x1b\x47\x5b\x6c\x9a\x5a\xab\xb5\xb1\x59\x24\xd6\xda\x67\xac\ 101 | \xb5\x9f\x4f\x53\x7d\x5c\x9a\xda\xc2\xff\x3a\x23\x0d\x50\x0d\xd7\ 102 | \x92\x0b\xa6\x0c\xcd\xb6\xb7\x5b\xf8\x5c\x69\xeb\x4f\x4f\xad\x74\ 103 | \xac\x9d\x3c\xfc\xdc\xbf\x47\x2a\x1f\x88\x6d\x4a\x45\xec\x9f\xbf\ 104 | \x90\x11\x6f\xf3\xb0\x7a\x1b\x4e\xf0\x71\x4c\x5a\xc1\x4a\x4d\x52\ 105 | \xba\x87\x5c\xf1\x4a\x84\xf4\x10\xc2\x45\x88\x22\x42\xe6\x41\xb8\ 106 | \x68\x13\x94\x04\x95\xcd\x60\xb6\x4a\x55\x9c\x2d\x05\xb3\x84\x10\ 107 | \xf1\xff\x58\x80\x43\x7b\x53\x9a\xee\x94\x49\xd2\xd7\xe8\x3a\xc7\ 108 | \xfd\x29\x46\xfe\x59\xd4\xb3\xfb\xf4\x68\xcf\xb3\xf4\xb5\xdd\x63\ 109 | \x95\x52\xc2\xe2\xe2\x35\x9f\x4a\x22\x3c\x72\x63\xa7\xd2\xbb\x47\ 110 | \xd1\x7a\xda\xc9\xa4\xce\x7c\x64\xe1\x3c\x1c\x35\x16\xe1\x09\xb4\ 111 | \xb6\xb8\x4e\x3f\x42\x29\x48\x23\x2c\x60\x85\x40\x18\x83\x8e\x56\ 112 | \x20\xf3\x1f\xb1\xd2\xc4\x22\x35\x1b\x70\xbd\xf3\xaa\x4a\x05\x0b\ 113 | \x84\xb0\x8f\x59\x2b\x1e\x13\x82\xb2\xb5\x56\x4b\x29\x8f\x6e\x80\ 114 | \x43\xc1\x19\x63\x46\x0a\x21\x2e\xd3\xb6\xef\x1d\xa5\x2d\x3f\xba\ 115 | \x2c\xaa\x1e\x6c\xc8\x35\x9d\x81\x95\x11\x22\xd7\x44\x72\xe8\x00\ 116 | \x41\xf3\x64\xda\x7f\xf4\x7e\x9a\xce\xfd\x6b\x54\xdd\x38\x4c\xc3\ 117 | \x64\xba\x97\x2f\x61\xd4\xf4\xc9\x98\x24\x22\x2c\xfd\x94\x20\x7f\ 118 | \x39\x06\x03\xc2\x41\x49\x89\x89\x06\x30\x69\x95\xa4\xff\x00\x2a\ 119 | \xdf\x88\xdb\x30\x92\xb0\x7a\x23\xc5\xb1\xb7\x23\x83\xb1\x28\x35\ 120 | \x40\x1c\xae\x43\x39\xe7\xe0\x3b\x16\x2c\x25\x84\x78\xde\x5a\xbb\ 121 | \x16\x58\x28\x84\x78\x4e\x08\x91\x1e\x95\x2a\x2c\x84\x40\x6b\x3d\ 122 | \xc3\x18\xf3\x59\x21\xc4\x15\x69\x38\xe0\x77\x3c\x73\xad\xac\x3f\ 123 | \x69\x06\xc3\x4e\xbd\x1c\x9d\x76\x51\xad\x2c\xc4\xf3\x1a\xf0\x8f\ 124 | \x3d\x15\x6d\x3a\xc9\x9f\x7c\x0a\x8d\x53\x3f\x47\x8a\x4b\xd4\xd5\ 125 | \x89\x50\x2e\x85\xd1\xd3\xd0\xc6\xe0\x46\x21\xd6\x18\xbc\xe0\xed\ 126 | \x48\x69\xc0\x5a\x34\x16\x8c\x45\x87\x7d\x24\x5d\x5b\xa8\x1e\xda\ 127 | \x4d\x79\x5f\x1e\xb3\xed\xcf\x20\x77\x0e\x4a\x79\xa8\x7a\x89\x33\ 128 | \x62\x23\x62\xd4\xa7\xf0\x1c\x8a\xc0\xfb\x84\x10\x97\x02\x5f\x02\ 129 | \x7a\xac\xb5\x73\x80\x47\x80\x39\xbf\xae\x8a\xff\xc6\x19\xa8\x75\ 130 | \x1f\x4a\x35\x0c\xcd\xba\xa2\xb5\xf6\x34\x6b\xed\x39\xd6\x9a\xbf\ 131 | \x50\xca\x39\x31\xd5\x29\x7d\x5b\x9f\x22\xed\x58\x65\x1b\x27\x7f\ 132 | \x54\x38\xcd\x6f\x81\xd4\x62\x6c\x99\x52\xdf\xad\x34\x35\x7f\x15\ 133 | \x63\x2a\x54\xfa\x67\x82\x97\x43\x31\x01\x4d\x9e\xf2\xab\x03\x94\ 134 | \xb6\xae\x67\xec\x25\x17\x20\x8d\x42\xca\x22\x95\xfe\x6f\x50\x68\ 135 | \xbc\x09\x10\x08\x21\x30\xc6\x90\x24\x31\x7e\x10\x1c\xbe\x19\x4d\ 136 | \x07\x95\xde\x5b\x28\x36\x7c\x8b\xf0\xd0\x16\xe2\xae\x6d\x24\xdd\ 137 | \x2b\x48\x4d\x17\x41\xd3\x0c\x84\x14\x18\xad\xb1\xd6\xe2\x3a\x2e\ 138 | \xc2\x0d\x10\x5e\x3d\x38\xb9\x0e\x6c\xfa\x48\xd2\xb7\xef\x05\xcf\ 139 | \xcb\xaf\x2e\x9c\x70\xf1\xd6\xdf\x19\xc0\x6a\x35\x24\x97\x7b\xed\ 140 | \x9c\x3b\xac\xb4\x9d\x2f\xd5\xe4\xf7\x2b\x47\x5d\x2a\x84\x18\x2f\ 141 | \x20\x08\xad\xc0\xf4\xed\xb2\x5d\x2f\xfe\x1b\x0d\x13\xcf\x17\x75\ 142 | \xc7\x5f\x8a\x50\x2e\x58\x0b\x18\xac\x50\xf4\xf7\xdc\x8c\xe3\x1c\ 143 | \x8f\x17\x9c\x85\x10\x0e\x51\xb8\x02\x2f\x38\x0d\xc7\x69\x65\xff\ 144 | \x4b\x4b\x88\xba\xdb\x19\x75\xc1\xfb\xb0\x49\x27\x9e\x5b\x41\x9b\ 145 | \x0e\xe2\xca\x66\x72\xf5\x9f\x45\xa0\x41\x48\x94\x52\x08\x21\xb0\ 146 | \x16\x84\xb0\x58\x04\xfd\x9d\x9f\xa6\xbe\xf9\x46\xac\xa8\x47\x1b\ 147 | \x8b\x41\x91\x84\x33\x51\xce\x05\x90\x82\x23\x34\x58\x7d\x18\x80\ 148 | \x15\x12\x21\x1d\x84\x74\x6a\x6f\x8e\xf2\xba\x51\xee\x66\x81\x98\ 149 | \x23\x84\x98\x29\x84\xd8\xf4\x8b\x5a\xd3\xeb\x2e\xe1\x30\x0c\x09\ 150 | \x82\xd7\x80\x05\xfe\x2b\x41\x92\xd8\x89\x42\x72\x36\xd8\xbf\x8e\ 151 | \xca\xb3\xa7\x79\xb9\x53\xc1\x4a\x84\x80\xb4\xd2\x4d\xb4\xfb\x39\ 152 | \x06\xf6\xb4\x89\x51\x33\xbe\x8a\x1b\x0c\x03\x6b\x06\x6b\x1b\x8c\ 153 | \x44\xeb\x03\x28\x31\x02\x8c\x44\x49\x0f\xa9\x1a\x51\xf9\x8b\x29\ 154 | \x97\x1e\x46\x14\xa6\x41\x58\x42\x16\x1a\x09\xfc\x1c\xa1\x19\x85\ 155 | \xeb\x07\xb8\x9c\x82\x49\xbb\xb1\x7a\x33\x6e\x30\xe9\xb5\xcc\xcf\ 156 | \xfe\xad\xb5\x02\x2b\x40\xaa\x51\x54\xc3\x18\x44\x84\xeb\x2a\x8c\ 157 | \x06\xc5\x18\x7c\x57\x20\x83\x23\x07\x1a\x3b\x24\x97\x6c\xf6\x46\ 158 | \x88\x26\x8b\x3d\x07\x38\x07\xf8\xba\x31\x66\x29\x70\x8f\x10\xe2\ 159 | \x45\x6b\xed\x1e\xa0\xfc\xba\x00\x46\x51\x84\xef\xfb\x87\xe1\x25\ 160 | \xa9\x3e\x53\x98\xea\x25\x51\xb4\xf1\x62\x69\x9f\x39\x4d\xdb\xc0\ 161 | \xb7\xa2\x19\x21\x0b\x08\x1c\x10\x50\xe9\x5c\xc7\xa1\xf9\xff\x4c\ 162 | \xd3\x05\x5f\xa1\xe5\x9d\x1f\x44\x09\x48\x92\x04\x21\x04\x42\x58\ 163 | \xa4\x94\x08\x29\x50\x62\x18\xca\x1b\x87\xd6\x29\xd5\xca\x4b\x38\ 164 | \xde\x04\x5c\xef\x64\xf2\xc5\x8f\x92\xa6\x6d\x54\x7b\x77\x50\x38\ 165 | \xe6\x74\xe2\x18\xc0\x43\x1b\x40\x1b\x1c\xff\x74\xc2\xd2\x1d\xe8\ 166 | \xe8\x64\x94\xdb\x8a\xb1\x15\x10\x2e\x58\x85\x92\xa3\x71\xfc\xd3\ 167 | \x10\x22\xc0\xf5\x7c\xa4\xca\x61\x8d\xc1\xda\x2a\x42\xe4\xd1\x49\ 168 | \x2f\xc6\xd4\xa3\x4d\x8a\xef\xfb\xbf\x60\x7a\x11\xd4\x7e\xb4\x42\ 169 | \x64\x50\xb3\xc7\x9c\x6b\xad\x3d\x17\x08\x85\x10\x1b\x93\x24\xb9\ 170 | \xc9\x75\xdd\x87\xfe\x13\xc0\x34\x4d\x71\x9c\xd7\x7e\x9d\x24\x89\ 171 | \x8a\xe3\xb8\xd9\x71\x9c\x8b\xac\xb5\x57\x5b\x6b\x8f\x0b\x13\x70\ 172 | \xe4\x19\x36\xe5\x20\xe8\x67\x89\x2b\x73\x71\xbc\x63\x08\x59\x46\ 173 | \x50\x38\x87\xfd\x3f\xfd\x3b\xf2\x2d\x23\x70\x46\x4d\xc7\x93\x35\ 174 | \x31\x41\x28\x8c\x31\x18\x63\x48\xd3\x94\x34\x4d\xf1\x3c\x0f\xcf\ 175 | \x9f\x41\x92\xbc\x88\x89\x21\x0a\x7b\xd1\xc9\x7c\x82\xfc\x34\x3c\ 176 | \xef\x74\xd0\xdb\x51\xc5\x4d\x90\x46\xa0\x53\x2a\xd1\x7e\xa4\xd9\ 177 | \x89\x15\x02\xa9\xce\x45\x5b\x49\x5a\xdd\x87\xca\x5d\x80\x23\x43\ 178 | \xb4\x49\x48\xd2\x3d\x54\xab\x8b\x91\xe9\xab\xa4\x95\x47\x50\xee\ 179 | \x64\xac\x3a\x11\xa5\x1a\xb0\xd6\xc5\x5a\x43\xaa\xab\x08\x1c\xaa\ 180 | \xd5\x2a\xb9\x5c\xee\x57\x76\xb7\x5a\x7b\xb0\x08\x21\x6c\x1c\xc7\ 181 | \xc1\xea\xd5\xab\xa7\xed\xdb\xb7\x6f\xc3\x2f\xcc\xc0\x41\x78\xd6\ 182 | \xda\x33\x80\x33\xb5\xd6\x1f\x14\x42\xbc\xab\xf6\x7f\x04\xc6\x18\ 183 | \xeb\x28\x47\x48\x99\x0a\x9d\xd4\x13\x14\x3e\x0a\x2e\x48\x5b\x41\ 184 | \xdb\xad\x0c\x0c\xcc\xa7\x70\xfc\x04\x2a\x9b\xe7\x53\x2c\x2f\x41\ 185 | \xba\xf5\xb5\x77\xd4\x86\xb5\xfe\x22\x24\x8e\x68\x22\xb5\xcd\x35\ 186 | \xd3\xab\x2d\xd6\x9e\x05\x6a\x1d\x8a\x12\x49\x3c\x9a\xa8\x67\x0e\ 187 | \xbe\xa3\x09\x2b\x9d\x8c\x68\x38\x06\xab\x07\xb0\x72\x3c\xae\x7b\ 188 | \x1a\xd0\x80\xb1\x0a\xcf\x03\xa3\x21\x4d\xb7\x21\xec\x1e\x90\x93\ 189 | \x11\xa2\x19\xc4\x14\x82\x40\xa2\x53\x8d\xe3\x1c\xc2\xa6\x5b\xd0\ 190 | \xd1\xa3\x28\x55\x4f\x1c\x95\x09\xea\xae\xc0\x53\x39\x30\x96\x30\ 191 | \x8a\x5e\xf7\xfc\x9c\x41\x14\xeb\xd6\xad\x63\xc9\x92\x25\x5f\xf9\ 192 | \xe2\x17\xbf\xf8\xf2\xdc\xb9\x73\x71\x5e\xf9\xff\x67\x70\xdc\xe7\ 193 | \x57\x0e\x7a\xb5\x3a\x21\xc4\xe5\xc6\x98\xab\xd3\x34\x3d\x56\x08\ 194 | \xa1\x00\x99\x3d\xd9\x66\x10\x85\x31\x06\xdf\xf7\x11\x42\x90\xa6\ 195 | \x31\xae\x23\x31\xc6\x41\xea\xb7\xa0\x82\x49\x34\x4c\x3f\x8d\xea\ 196 | \xfa\x67\xe1\x60\x84\x1d\xf3\x56\x52\xd3\x8d\xb0\x25\x84\x09\x11\ 197 | \xa2\x8f\x6a\x65\x31\x88\x4e\x62\x3b\x01\x63\x8e\x45\x38\x3e\x96\ 198 | \x91\x98\xca\x1c\xb4\xed\x23\x5f\xbc\x0a\xa9\x46\xa3\xf5\x6d\x48\ 199 | \x7f\x32\xd2\x3f\x99\x34\x2c\xe3\xba\x2e\x69\x1a\x23\x04\x84\x55\ 200 | \x4d\xa1\x58\x04\x8e\xc1\x98\x89\x44\xe1\x2c\x5c\xef\x34\xa4\x3a\ 201 | \x81\x38\x1a\xc0\xf3\x7c\xac\x6d\xc4\xca\xb3\x30\x72\x3a\x5e\x10\ 202 | \xa2\xa2\xaf\xe3\x3a\xc3\x10\x42\x81\x04\x99\x24\xbf\x96\x9f\xed\ 203 | \xee\xee\x66\xed\xda\xb5\xcf\x5a\x6b\xbf\x05\x70\xe1\x85\x17\xd6\ 204 | \xf2\x74\xd3\xd7\xea\x26\x3a\x6f\xbf\xe6\xbb\x23\xde\xf2\xce\x77\ 205 | \xe6\x9b\xc6\xa0\x0a\x2d\x68\x8b\x8d\xc3\x48\x60\x35\x5a\x6b\x5c\ 206 | \xd7\x45\x4a\x49\x92\x24\x58\x5b\xeb\x63\xd6\x5a\x72\xb9\xdc\xe1\ 207 | \xfe\x66\xad\x45\x29\x97\x54\x4a\xf6\x3f\xfe\x39\x1c\xdb\xc5\xe8\ 208 | \x3f\xfa\x31\x69\x14\x63\x8c\xac\x69\x88\x00\x29\x1d\x7c\x1f\xac\ 209 | \xae\x50\x29\xbf\x8a\xeb\xb6\x13\x57\x9e\x43\x88\x56\x8a\xc3\xfe\ 210 | \x92\x52\xff\x0f\x11\xfa\x18\x76\xcf\xdf\xc6\xf1\x1f\x39\x1f\x1d\ 211 | \xef\x43\x39\x93\x10\xa6\x91\x34\xae\xad\xfe\x07\x6f\xcc\x75\x1c\ 212 | \x8c\x35\x08\x91\x27\x8d\x17\x20\x94\x46\x39\xe7\xe2\xb9\x05\x8c\ 213 | \xd1\x44\x51\x44\x2e\x97\xa7\xbf\xf7\x46\x82\xfc\x1f\x21\xc4\x78\ 214 | \xb4\x49\x70\x1d\x17\xd7\x75\x5f\xf7\x16\x27\x8e\x63\xbb\x78\xf1\ 215 | \x62\xf3\xe5\x2f\x7f\xf9\xd6\xb6\xb6\xb6\xc7\x81\x9d\x40\x87\x02\ 216 | \xb8\xfd\x93\x71\xe9\xa1\x15\xc3\x7b\x9e\x5b\xf4\xfc\x07\x9c\x9d\ 217 | \xb3\x1c\xbf\x67\xa5\x8d\x35\xc2\xa9\x1b\x49\xae\x50\x87\xe3\xf9\ 218 | \x59\xdf\x4a\x90\x52\x60\x8c\xc5\x73\x6b\xfd\xc4\x75\xbd\xc3\x7d\ 219 | \xd3\x58\x41\xd2\xb3\x87\xd2\xbe\xc5\x24\xaf\xcc\x45\xe5\x42\xfc\ 220 | \x09\xc7\x01\x29\x4a\xd6\x84\x20\x97\xf3\x70\x6a\x5a\x83\x36\x20\ 221 | \xe5\x30\x0c\xe3\x48\xed\x41\xf2\x75\x17\x93\x24\x01\x7e\x7e\x0a\ 222 | \x95\x57\xd7\x90\xcc\xfd\x19\x23\x96\x6f\x40\x96\x1c\x62\xb3\x0c\ 223 | \x8b\x42\xe7\xc6\x63\xf3\xb5\xec\xf7\x95\xc2\x68\x83\xb5\x06\x63\ 224 | \x53\x1c\x6f\x02\x8e\x6c\xa6\x52\x7a\x18\xd7\x3d\x19\x63\x14\x4a\ 225 | \x0a\xa2\xea\x1a\xa4\x8d\x70\x82\x19\x18\x1d\x13\x85\x11\x4a\xa9\ 226 | \xc3\xf6\xe7\x97\xc1\xab\x15\x1e\x76\xc7\x8e\x1d\xe2\xdb\xdf\xfe\ 227 | \x76\xfb\xbc\x79\xf3\x2c\x70\x2e\x70\x1c\xf0\xb2\x02\x48\x4e\xfa\ 228 | \x82\xf9\xa7\x6f\xde\xb3\x25\x69\x9a\x7c\x77\xa9\x30\xe5\x92\xe2\ 229 | \xb8\x69\xcd\x2d\xc9\x3a\x51\x5e\xf4\x35\xfa\x5f\x99\x47\x12\x25\ 230 | \xf8\xc5\x3a\xac\x95\xb8\x0e\x38\x52\x12\xa6\x29\x4a\x3a\xa4\xda\ 231 | \xd4\x32\x41\x42\x7c\x70\x1d\xdd\xf3\x3f\x4d\xbc\x7d\x21\xe5\x03\ 232 | \x9b\x18\xf7\xe1\x27\xf1\xea\x26\x01\x25\x8c\xde\x42\x12\x6d\x43\ 233 | \xa7\xdb\x80\x04\x81\x21\x49\x40\xba\x10\x55\x53\x7c\x75\x08\xc4\ 234 | \x00\x52\x4d\x20\xd1\x65\xdc\xa6\x49\x04\x27\x6c\x47\x36\x8f\x83\ 235 | \xad\xfd\xb8\x4b\x36\xa1\x9e\xbc\x0f\xf5\xec\x6c\xbc\x57\xb7\xe1\ 236 | \x0a\x41\xe8\xb8\x58\xd7\x01\x27\xc0\x08\x8d\x83\xc5\x5a\x89\x49\ 237 | \x7a\x48\xf5\x66\x0a\x85\xc9\x20\x24\x51\x75\x16\x5e\xfe\x4a\xac\ 238 | \xa9\x99\xe7\x20\x08\x30\xc6\xe0\x38\xce\xaf\x84\x27\x84\xa0\xaf\ 239 | \xaf\x4f\x3c\xf8\xe0\x83\x03\xb7\xde\x7a\xeb\xaa\x4c\x37\x02\xa0\ 240 | \x07\x78\xfe\x17\x3d\xbb\xf9\x9d\xef\x7e\xef\x75\x7f\xfc\x91\x8f\ 241 | \x7d\xe6\x8a\xf7\xbd\x4b\xb4\xf8\x15\x1b\xf6\xb5\x0b\x9d\xf4\x62\ 242 | \xaa\xbd\xe8\x81\x03\xa4\x71\x3f\x2a\x8e\x21\xe7\x63\xd2\x04\x1d\ 243 | \x27\x98\x24\xa2\xd2\xb1\x16\xd3\xf1\x12\x75\x27\x5d\x88\x6a\x3d\ 244 | \x9f\x96\xf3\xfe\x01\x89\xe5\xb0\x1d\x30\x96\x52\xb9\x8b\x5c\x2e\ 245 | \x01\x0b\x69\x1c\x23\x9c\x6e\xd2\xb8\x84\x4e\x13\x92\xf4\x3e\x82\ 246 | \xe0\x4a\x5c\xff\x22\x20\x22\xb5\x82\x30\x5e\x82\x23\x35\x41\xf0\ 247 | \x1e\x6c\xb9\x82\xe8\x5b\x4b\xdc\xfe\x33\xd8\x5c\xc6\x79\xb5\x0b\ 248 | \xd5\x77\x00\x5b\x18\x4e\x3a\x6d\x22\xc9\x7b\x3f\x84\xeb\x8f\x85\ 249 | \xb0\x4a\x52\x7e\x9e\x5c\xc3\x55\x60\xf7\x52\xee\xff\x01\x7e\xee\ 250 | \xef\x71\x5c\x89\xe3\x38\x54\x2a\x15\xa4\x94\xe4\xf3\xf9\x5f\x59\ 251 | \xbe\x51\x14\xd9\x67\x9e\x79\xc6\x7e\xe1\x0b\x5f\x58\xbd\x65\xcb\ 252 | \x96\x1e\x40\x01\x55\xe0\x4e\xe0\xa9\xc1\x67\x16\xb3\x94\x9c\x06\ 253 | \x4c\x05\x46\xe4\x72\xb9\x71\x9f\xfe\xf4\xa7\xce\xb8\xea\xaa\x4f\ 254 | \x78\x53\xa6\x4c\x41\x29\x65\x01\x61\x8f\x18\x5f\x0c\x20\xb1\x94\ 255 | \xaa\x65\x72\x9e\x4f\xdc\xb7\x9d\xfd\x8f\x7f\x96\x20\xf0\x68\xfd\ 256 | \xe8\xd3\x20\x2c\xc2\x3a\x08\x29\x0e\xfb\x4a\xe5\x28\x94\x54\xc4\ 257 | \x71\x9a\xf5\x56\x48\xd2\x84\x24\x4d\x49\xab\x0f\x81\x29\xe0\xd7\ 258 | \x7f\x04\x47\x24\x58\xe1\x12\x85\x9b\x09\xab\x8f\xe2\x39\x93\x10\ 259 | \xea\x44\x3c\xff\x78\xa4\x97\x43\x03\xf4\x57\xa1\x7d\x2b\xf2\xb1\ 260 | \x07\xb0\xdb\x16\x20\x2e\xfa\x2b\xb8\xec\xcf\x29\xc7\x4f\xe2\x70\ 261 | \x1e\x46\x6f\x02\xb6\x91\x6f\xf8\x53\x4c\x62\x89\x92\x08\xc7\x71\ 262 | \x50\x4a\x91\xa6\x29\xf9\x7c\xfe\xbf\xcc\x3c\xad\x35\x6d\x6d\x6d\ 263 | \x5c\x73\xcd\x35\xbb\xe7\xcc\x99\xb3\x35\x83\x67\x81\xa7\x81\xef\ 264 | \x00\x15\x05\x14\x80\xab\x80\x4f\x00\xd3\x81\x56\xa0\x90\xa6\x69\ 265 | \xb8\x62\xc5\xca\xfd\x3b\x76\xec\x70\x83\x20\xa8\x1f\x33\x66\x8c\ 266 | \xc8\xe5\x72\x56\x58\x84\x15\xf6\xb0\x79\x97\x99\x67\x72\x94\xa2\ 267 | \x1a\xc6\xf8\x75\xa3\x69\x9c\x72\x25\x5d\x1b\xe7\xa2\x0f\xb6\x51\ 268 | \x3c\xf6\xc2\xec\x35\x2d\x71\xcd\x11\x93\xc6\x49\x26\x42\x06\x63\ 269 | \xd2\xc1\xab\x46\xa0\x10\xea\x34\x3c\xb7\x87\xa4\xf4\x18\x8e\x3f\ 270 | \x15\x70\xd1\x69\x13\xb9\xdc\x78\x92\xb4\x4c\xbe\x78\x0e\x5a\xd7\ 271 | \xda\x88\x0b\xc8\xc0\xc5\x6d\x1e\x85\x3c\xef\x42\xe4\xa9\xef\x46\ 272 | \xb4\x6f\x86\x9f\xdc\x01\x6b\x9f\x47\xb4\x4c\x25\x1a\xde\x8f\xeb\ 273 | \x07\xe8\x64\x1c\x9e\xe7\x22\x84\x40\x65\x56\x2d\x49\x12\x7c\xdf\ 274 | \xff\xaf\x36\x48\x76\xfb\xf6\xed\xe2\x96\x5b\x6e\xe9\xf8\xc9\x4f\ 275 | \x7e\xb2\x29\x3b\x3f\x92\xc0\x2e\xe0\xbb\x40\x27\x43\x88\xd6\x03\ 276 | \x27\x01\xc3\xb2\x9f\x0d\x20\xad\xb5\x66\xc7\x8e\x1d\x9d\x8b\x16\ 277 | \x2d\xea\x4d\x92\x64\x44\x6b\x6b\xab\x6a\x6e\x69\xb6\xa2\xe6\x66\ 278 | \xb0\xda\x12\xc6\x15\xa4\xac\x65\x14\x58\xe2\xa8\x82\xc2\xa5\xfe\ 279 | \xe4\x8b\xd9\x3d\xeb\xef\xc9\x0d\x1f\x83\xdf\x32\x89\x24\xb1\x20\ 280 | \x05\xa9\x36\x28\x19\xe0\x79\x0a\xc7\x71\x48\x53\x89\x40\x61\x85\ 281 | \x02\xa8\x65\x06\xe3\xf0\xbc\xd1\x74\x1f\xfc\xbf\x38\xce\x89\xe4\ 282 | \xf2\xa3\x88\xe3\x1c\x8e\xdf\x40\x79\xe0\x87\xd4\xd5\x4d\x45\x88\ 283 | \x9a\x12\x09\x0e\x9b\x5c\x44\xd3\x70\xe4\x29\xd3\x11\x6f\xbf\x02\ 284 | \x67\xf8\xc9\x88\x07\xae\xc3\x79\xea\x4e\xac\x33\x11\x7d\xe2\x05\ 285 | \xe0\x08\x92\xb0\x82\xd6\x35\x33\x1f\x04\x01\x4a\xa9\xff\xe4\xf7\ 286 | \x00\xf6\xee\xdd\x2b\xee\xbf\xff\xfe\x81\xbb\xee\xba\x6b\xad\xd6\ 287 | \x5a\x64\x85\x97\x00\xb3\x80\x25\x19\x27\x54\x06\x6b\x27\xb0\x15\ 288 | \xc8\x01\xa3\x00\x7f\xf0\x01\x80\x2a\x97\xcb\xe5\xe5\xcb\x97\x77\ 289 | \x76\x74\x74\x14\x8a\xc5\x62\x7e\xc4\x88\x16\x5c\x37\xc0\x9a\x32\ 290 | \xe8\x90\x30\x1a\xc0\x62\x80\x12\xa9\xae\x62\x6d\x0f\x5a\xa6\x04\ 291 | \x63\xc7\xd3\xbf\xfa\x5b\x78\x63\x46\x80\x9b\x90\x84\xfb\xc0\xb4\ 292 | \x63\x79\x85\x24\xd9\x8b\x4d\x76\x92\xda\x7d\x24\xd5\x1d\x08\xb5\ 293 | \x0f\xa1\xf7\x61\xf4\x7e\xa4\xe8\x20\xd1\x65\xea\x8a\x17\x12\xc7\ 294 | \x8f\xa3\x13\x70\x83\x09\x48\x9b\xc7\xf5\xc7\x11\x57\x5e\x22\x4d\ 295 | \x5f\x45\x0a\x41\x9a\x74\x62\x88\x10\x44\x58\x1b\x61\x6c\x5c\xf3\ 296 | \x78\xa3\x26\x22\xdf\xfb\x31\xe4\xc8\x29\x98\xe5\xdf\xc4\x9d\x3b\ 297 | \x1f\xb3\x67\x37\x0c\x1f\x8f\x3b\xa2\x15\x23\x15\x39\x2f\x5b\x6c\ 298 | \x88\x9f\x1b\xd9\x6c\x4f\x4f\x8f\x98\x39\x73\x66\x72\xc3\x0d\x37\ 299 | \xac\x2d\x95\x4a\x71\x06\x4f\x00\x2b\x80\x1f\x0d\xce\xc1\x83\x00\ 300 | \x07\xe3\x20\xf0\x32\x50\x02\xc6\x00\x0d\x87\x6b\x0f\x94\xd6\x3a\ 301 | \xdd\xb0\x61\x43\xfb\xca\x95\x6d\xa1\x10\xb2\x79\x58\xd3\x06\x51\ 302 | \x57\x48\xad\xe3\x0a\x21\x9c\x5e\xb0\xfd\x08\x22\x1c\x69\x88\xd3\ 303 | \x3e\x44\xa2\x70\x9b\x4e\xc5\x1f\x76\x06\x7b\x1f\xf9\x22\x85\xfa\ 304 | \xe3\xf0\xc6\x5c\x42\x90\x1b\x8d\xe7\xb4\xe2\xb8\xad\x28\x77\x0c\ 305 | \xae\x3b\x06\xd4\x28\xa2\xa8\x09\xa9\xc6\x80\x18\x81\xb1\x2d\x28\ 306 | \x39\x0a\x68\x44\x3a\x67\x12\xf5\x3d\x80\x74\xc6\x63\x45\x23\x5a\ 307 | \xbb\xe4\x8b\x6f\x01\x1b\x33\xd0\x77\x17\x5e\xfe\x7c\xca\xd5\x3e\ 308 | \x1c\xd5\x85\xd1\x03\x58\xd3\x47\x9c\x1e\xa2\x3c\xd0\x86\xd1\x6b\ 309 | \xa0\xb5\x89\x68\x4a\x23\xea\xac\x7f\xc4\x94\xbb\xf0\x7f\x7c\x3b\ 310 | \xe2\x99\xef\x21\x63\x0f\x75\xd2\x64\xec\xa0\x80\x64\x59\x5c\xad\ 311 | \x56\xc5\x9c\x39\x73\xcc\xd5\x57\x5f\xbd\xba\xb3\xb3\xb3\x3f\x03\ 312 | \x27\x81\xbd\xc0\x3d\xc0\x8e\xa1\x19\xab\x8e\x5c\xba\x00\x9b\xb2\ 313 | \x07\x37\x01\xcd\x47\x8c\x7b\xb2\xab\xeb\x50\xef\xa2\x45\xf3\x0e\ 314 | \x95\x4a\x34\x35\x8f\x98\xe1\xb5\x8c\x3c\x11\xdf\x1d\x6b\x5d\x77\ 315 | \x94\x70\xdc\x16\x94\x33\x9c\x34\x6d\xc4\xf5\x87\x91\x26\x50\x37\ 316 | \xe2\x04\x8a\xa7\x5c\x4e\xf7\x8a\x7b\xe9\xdf\xf2\x14\xd2\xf1\x70\ 317 | \x9b\x26\xa0\x54\x80\x10\x1e\xa0\x70\x1d\x0f\x29\x14\xda\x58\x84\ 318 | \x90\xf8\x5e\x80\x31\x29\x8e\xab\x40\xe6\xb0\x66\x17\xae\x37\x01\ 319 | \xa9\x86\xe3\x3a\x8a\x24\x89\x71\xfd\x51\xe0\x4c\x21\x2c\x2d\xc3\ 320 | \x75\xce\x41\xca\x16\x7c\x7f\x2c\xca\x1d\x85\xeb\xb6\x62\xec\x04\ 321 | \xa4\xa8\x8d\x81\x3a\x5a\x83\x6a\xbc\x14\x33\x7e\x1a\xde\x25\x1f\ 322 | \xc5\xd4\xb5\x22\x57\xcc\xc2\x3e\x7a\x27\xb6\x77\x2f\xc2\xaf\x43\ 323 | \x16\xea\x88\xa4\x64\xc9\xd2\x65\xf6\x86\x1b\x6e\xd8\xba\x61\xfd\ 324 | \xfa\xce\xec\xde\x65\x96\x54\x8f\x02\x0b\x87\x54\xe6\x2f\x04\x38\ 325 | \xb8\xdb\xd9\x07\xac\xcf\x6a\x7e\x6c\x26\x34\x87\xb3\x31\x4d\x09\ 326 | \x57\xaf\xde\xbe\x7f\xd3\xa6\x35\x36\x9f\xcb\x35\xb5\xb6\x8e\x14\ 327 | \xae\xeb\x58\xc7\x71\x84\x10\x02\x29\x05\x71\x1c\xe1\xba\x0e\x61\ 328 | \xb5\x4a\x50\xd7\x42\xfd\x29\x1f\x20\xdf\x3a\x95\x52\xff\x1e\x8c\ 329 | \x79\x1c\xe5\x4f\x06\x93\x27\x49\x13\xb4\xd6\x08\x21\x70\x5d\xf7\ 330 | \x70\x4f\x4a\x12\x8d\x10\x0a\x47\x01\xaa\x4a\x58\x59\x8a\xe3\x9f\ 331 | \x85\xb1\x09\x02\x85\x4e\x53\x72\x41\x03\x82\x7e\xe2\x78\x29\x5a\ 332 | \x9f\x8c\x72\xcc\xe1\x5e\xec\x38\x0a\xad\x03\x6c\xba\x06\x6b\x37\ 333 | \x10\x14\x2f\xc1\x93\x16\xa3\x35\xd1\xa8\xf1\xf8\x33\x3e\x04\xa7\ 334 | \xbf\x0b\x51\xad\xc2\x8a\xf9\x88\xd9\xf7\xd9\xae\x97\x16\x8b\x47\ 335 | \x7f\xf0\x58\xf7\x63\xcf\x2f\x7c\x45\x81\xd2\x99\xdf\x07\xe6\x65\ 336 | \x00\xa3\x23\x61\xa9\x5f\x32\xbd\x0c\x00\x1b\xb2\xd2\x1e\x91\x09\ 337 | \x8c\x78\x6d\x55\x61\xd9\xb7\x6f\xff\xa1\x45\x8b\x16\xf5\x25\x49\ 338 | \xd2\x3c\x6a\xd4\x28\xa7\x58\x2c\xe2\xfb\xbe\x1d\x9c\x97\xad\xb5\ 339 | \x18\x63\x6a\x59\x13\xc7\x28\xbf\x0e\xa7\xe1\x44\x5c\x6f\x02\x7d\ 340 | \x87\xae\x45\xf9\x93\x10\x32\x40\x58\x87\x24\x89\x6b\xd3\x8c\x31\ 341 | \xaf\x2d\x2b\x1d\x85\xd1\x16\x6c\x91\x30\x9c\x4d\xc1\xbb\x10\x54\ 342 | \x0c\x38\x24\x71\x84\xef\x29\x84\x68\xa2\x5c\x9a\x45\xbe\x30\x83\ 343 | \x4a\xb9\x8a\xef\x7b\x08\x21\x01\x8b\x72\x04\xd5\xde\xa7\x50\x4e\ 344 | \x07\x5e\xee\x12\xa4\x00\xad\x2d\x68\x8d\xe7\xba\xc8\x7c\x01\x39\ 345 | \xf1\x64\x9b\x9e\xf9\x6e\x96\xd8\xe1\xfc\xf0\xc6\x9b\x3b\x5a\x56\ 346 | \xaf\xee\xff\x4c\x40\xeb\x9f\xb9\x8c\x3c\x94\x12\x6f\x87\x67\x81\ 347 | \xfb\x80\xee\x5f\x04\x49\xfd\xaa\x8d\x7d\x56\xf3\x9b\x00\x0f\x18\ 348 | \x9d\xb9\xf0\xc3\x02\x13\x86\x61\x79\xf9\xf2\xe5\x1d\xbb\x76\xed\ 349 | \xf2\x82\x20\xa8\x6b\x6e\x6e\x16\x75\x75\x75\xb8\xae\x4b\x1c\xc7\ 350 | \x28\xa5\x90\x52\xe2\xba\x6e\x6d\xb7\xe8\x39\x20\x9a\xc8\xd7\x4d\ 351 | \x27\xec\xbb\x1b\x37\x18\x8f\xeb\x8f\xc2\x58\x8d\x35\xa0\x1c\x49\ 352 | \x92\xd4\xd6\x5d\x42\x48\x8c\xd5\x48\x65\x08\xa3\xd5\x04\xf9\xf3\ 353 | \x30\x1a\xa4\xac\x29\x6f\xaa\x01\x51\x25\x8c\x96\xe0\x7b\xef\x44\ 354 | \x2a\x8d\x4e\x62\x04\x8a\xd4\x44\x28\xc7\xc5\x54\x7f\x84\x94\x79\ 355 | \x9c\xfc\x7b\x01\x89\xd1\x09\x88\x9a\x03\x40\x08\xe2\x38\x61\xe9\ 356 | \xa2\x85\xe2\x9b\x37\xdf\xb4\xe7\xfb\x2f\xae\xda\x3c\x37\xb5\x3d\ 357 | \x8f\x24\x74\xff\x38\xa1\x7b\x0b\xac\xc9\xfa\xde\xee\xff\x0a\x90\ 358 | \x7a\x9d\x0b\xe9\x1e\x60\x1d\xd0\x9b\x41\xac\xcf\xb2\xd1\x02\xca\ 359 | \x5a\x6b\xb6\x6f\xdf\xde\xb1\x6a\xd5\xaa\x4a\x14\x45\xcd\xcd\xcd\ 360 | \xcd\xb2\xa9\xa9\xc9\x06\x41\x20\xb4\xd6\x18\x63\x6a\x4b\xd4\x6c\ 361 | \xe1\x90\xa6\x11\x8e\x53\x87\x90\x67\x52\xea\xb9\x09\xe1\xd4\x11\ 362 | \xe4\x8e\x23\x0a\x23\x8c\x4e\x51\xca\xc1\x75\x5d\x8c\xd1\x24\x69\ 363 | \x8a\xeb\x3a\xc4\x95\x85\x38\xde\xd9\x48\x69\x10\x38\x48\x29\x70\ 364 | \x94\x44\xa7\xed\x24\x71\x1f\x41\xfe\x4c\x3c\xd7\xc5\x18\x48\x75\ 365 | \x8a\xd6\x02\xac\xa2\x5a\x9a\x85\x55\xc7\xe0\x38\xd3\x91\x0a\x92\ 366 | \xc4\xe0\x79\xaf\x2d\x46\x96\x2e\x5d\x2a\xae\xbb\xee\x5f\x77\x2d\ 367 | \x98\x3f\x7f\x33\xd6\xaa\xec\xbe\x54\x0a\xfb\x81\xef\x51\x83\xc8\ 368 | \x6f\x0a\x10\x20\x06\x36\x67\x96\xa7\x2e\xb3\x3b\xce\x90\xbe\xa9\ 369 | \x7a\x7b\x7b\xfb\x5e\x7c\xf1\xc5\x83\x07\x0f\x1e\xac\x1b\x36\x6c\ 370 | \x58\xae\xa9\xa9\x89\x20\x08\x0e\x97\xb4\x94\x92\x30\x0c\x51\x4a\ 371 | \x60\x4d\x8a\xc1\xa5\x50\x7f\x29\xa5\xae\xbb\xb0\x49\x09\x3f\x3f\ 372 | \x19\x21\x40\x4a\x59\xbb\xc1\x38\x21\xc8\x05\x58\x63\xa8\x56\x17\ 373 | \x92\xcf\xcf\xc0\x08\xc0\x08\x92\x38\xc6\xf5\x7c\x84\xe8\x00\xbb\ 374 | \x0b\xe5\x9c\x89\x31\x31\x71\x9c\x92\xcb\xf9\x78\xbe\x8b\xa3\x14\ 375 | \x26\xba\x1f\xe9\xd4\xa1\xfc\x19\xa4\x89\x26\x4d\x13\x82\x20\xb0\ 376 | \xd5\x6a\x55\x3c\xf7\xdc\x73\xdc\x74\xd3\x4d\x7b\x16\x2c\x58\xb0\ 377 | \x05\x70\x87\x7c\xe0\xaa\x17\xf8\x01\xf0\xdc\x91\xa2\xf1\x9b\x00\ 378 | \x1c\x8c\x8e\xcc\xee\x54\x33\x81\x29\x0e\x85\xa8\xb5\x4e\x36\x6e\ 379 | \xdc\xd8\xfe\xf2\xcb\x2f\x6b\xdf\xf7\x87\xb7\xb4\xb4\x88\x62\xb1\ 380 | \x68\x73\xb9\x9c\x08\xc3\x90\x5c\x2e\x47\x14\x25\x28\xc7\x03\x0d\ 381 | \x9e\xa7\xc9\x15\x66\x50\x1e\xb8\x0b\x41\x07\xb9\xc2\x19\x48\x29\ 382 | \x49\xd3\x14\x2c\x48\x47\xa1\xa8\x10\x45\xf3\x28\xd6\x5d\x8e\x12\ 383 | \x0a\x6b\x2c\xa9\x31\x48\xa9\xb0\x3a\x26\x0c\x17\x50\x57\xff\x6e\ 384 | \x1c\x07\x74\x02\x9e\xef\xd5\x0e\x9c\x50\x24\x95\x99\x28\x11\x10\ 385 | \xe4\x2f\xaa\x8d\x95\x42\x12\xc7\xb1\x78\xfa\xe9\xa7\xb9\xf6\xda\ 386 | \x6b\xb7\x2d\x59\xb2\x64\xfb\x10\x0e\x2a\x73\x22\x8f\x01\xb3\x33\ 387 | \x11\xe5\xb7\x0d\x90\x0c\xde\x7a\x6a\x69\x3e\x28\x30\x43\x8f\xf9\ 388 | \x45\x67\x67\xe7\xa1\x85\x0b\x17\x76\x97\xcb\xe5\x61\xcd\xcd\xcd\ 389 | \x6e\x6b\x6b\x2b\xbe\xef\xdb\x4a\xa5\x22\x3c\xcf\xc3\xf3\xbc\xda\ 390 | \xd4\xa1\x6b\x3b\x44\xe5\x5d\x4a\xa5\xef\x5e\xac\xed\xc0\xf5\xa7\ 391 | \xe0\x64\xfb\xba\x34\x49\x30\xc6\x10\x96\xd7\x92\x2b\x9c\x55\x53\ 392 | \x66\xd7\xc1\xf7\x3c\x8c\x49\x31\x49\x91\xbe\xf8\xc7\x78\xf2\x9d\ 393 | \x08\xe1\x60\xac\xcd\xb6\x2c\x0a\x04\x44\xe5\x59\x58\x1b\x40\x70\ 394 | \x11\x10\xdb\x72\x39\x14\x73\xe6\xcc\x31\xd7\x5f\x7f\xfd\xd6\x55\ 395 | \xab\x56\xed\x1c\x52\x45\x32\x83\xf7\x64\xa6\xb8\xe5\xd7\x03\xe2\ 396 | \xbf\x0b\x70\x30\xe3\xf6\x64\xbd\x51\x64\xd9\x98\x1f\x62\x77\x9c\ 397 | \x24\x49\xc2\xb6\xb6\xb6\xfd\x5b\xb6\x6c\x71\x7c\xdf\x6f\x18\x33\ 398 | \x66\x8c\x68\x6c\x6c\x44\x6b\x4d\x18\x86\x48\x25\x09\xab\x21\x9e\ 399 | \xef\x11\x85\x15\xea\x9b\x2f\x27\x1a\x98\x47\x1a\x2f\xc7\xc9\x9d\ 400 | \x8b\xb0\xa0\x1c\x87\x34\x59\x43\x92\x74\xe1\x05\xe7\xa2\x75\x8c\ 401 | \x31\xb5\x93\x33\xb0\x38\xbe\x8f\xae\xac\xc1\x75\xc6\x23\x9c\x46\ 402 | \x92\x38\xcd\x66\x6c\x03\x46\xa0\xab\xf7\xe0\xc9\x7a\x54\xfe\x7d\ 403 | \xec\xdf\xdb\x2e\x1e\x79\xf8\x11\x73\xe3\x8d\x37\x6e\xd8\xb0\x61\ 404 | \xc3\xbe\x0c\x9e\xcd\xe0\x55\x81\x27\xb2\xd2\xed\x7f\xbd\x10\x7e\ 405 | \x13\x80\x83\xd1\x0f\xac\x05\xba\xb2\x45\x44\xe3\x10\x81\x11\x00\ 406 | \x7b\xf6\xec\xe9\x5c\xba\x74\x69\x5f\x9a\xa6\x23\x5a\x5b\x5b\x65\ 407 | \xb1\x58\xa4\xae\xae\xce\x26\x49\x22\xc2\x30\xa4\x90\x2f\x64\x37\ 408 | \x6c\x08\xea\x67\x90\x94\x67\x12\x55\x5f\x42\xe6\xde\x86\x48\x7b\ 409 | \xa9\x94\x7e\x48\x53\xf3\x17\xd1\x69\x84\xd1\x11\x4a\xd5\x26\xcd\ 410 | \x30\x0c\x71\x1d\x9f\x34\xdd\x83\x54\x39\x52\xdb\x4a\x1a\x87\x28\ 411 | \xe9\x92\x1a\x43\x9a\x48\xc2\x68\xb6\xd5\x72\xbc\xd8\xd3\x7e\x0c\ 412 | \x0f\xdc\xf7\xbd\xf8\x5b\x37\xde\xb8\x72\xdf\xbe\x7d\x5d\x47\xc0\ 413 | \x8b\xb3\x92\xfd\x51\x66\xdf\xf8\x7d\x02\x1c\xb4\x3b\xdb\xb3\x79\ 414 | \xba\x90\x81\xf4\x86\xda\x9d\x4a\xa5\x52\x59\xb6\x6c\x59\xfb\xde\ 415 | \xbd\x7b\xf3\xf9\x7c\xbe\x30\x6e\xdc\x38\x51\x28\xd4\xc0\x0d\x1a\ 416 | \xe9\x24\x49\x51\x08\xdc\xc2\x25\xa4\xe1\x3a\x44\x69\x01\x25\xbd\ 417 | \x93\x7c\xfe\x4f\x90\x6e\x03\xae\xe3\xa2\x94\x8f\x94\xd4\xb2\x38\ 418 | \x4a\xf0\x3d\x1f\x4c\x37\x56\xf6\x13\xf8\xc7\x63\x0d\xe4\xf2\x3e\ 419 | \x9e\x27\xf1\x7d\x88\x07\xbe\x2f\xd6\xaf\x3f\xc4\xbf\xdf\xb5\xae\ 420 | \xff\x3b\xff\xfe\x9d\xb6\x72\xb9\x5c\x39\x02\x5e\x94\x65\xde\x0f\ 421 | \x7f\x9d\xcc\xfb\x6d\x03\x1c\x8c\x43\x99\xec\x97\x81\x71\x47\x08\ 422 | \x8c\xb0\xd6\x9a\xcd\x9b\x37\xb7\xb7\xb5\xb5\x45\x4a\xa9\x96\xd1\ 423 | \xa3\x47\xd3\xd8\xd8\x68\x95\x52\xc2\xf3\x3c\x5c\xd7\x45\x48\x81\ 424 | \xc0\xa2\xfc\xe9\x54\xc2\x5e\xd2\x78\x26\x7e\xfe\xca\x5a\x66\x29\ 425 | \x07\x29\x25\x5a\x1b\xa2\x28\xa2\xb1\xa1\x01\x6b\x53\xd2\x50\x52\ 426 | \xad\xee\x47\x73\x02\xb9\x9c\x40\xc9\x9a\x99\x8e\xaa\x89\x5d\xf0\ 427 | \xec\xdd\xe2\xf6\x3b\x5e\x3c\xf0\x93\xc7\x56\xac\x4e\xd3\x9a\x73\ 428 | \x1c\xd2\xf3\xaa\xbf\x09\xbc\xdf\x05\x40\xb2\x77\x74\x4b\x66\x3e\ 429 | \x87\x65\x22\x33\xf4\x75\x64\x4f\x4f\x4f\xcf\x92\x25\x4b\x0e\xf5\ 430 | \xf4\xf4\xd4\x0f\x1b\x36\x2c\x68\x6a\x6a\xb2\xb9\x5c\x0e\x21\x84\ 431 | \x18\x3c\xac\x4a\x92\x98\x62\xc3\x64\x94\x3a\x96\xa8\xff\x1b\x78\ 432 | \xb9\xd3\x48\xcc\x30\x92\xa8\x44\xac\x0d\xbe\xef\x65\x87\x59\xb5\ 433 | \xf3\x66\x21\x17\x51\x2c\x9e\x8d\xc1\xa0\xb5\xb1\x07\x3a\x0f\x88\ 434 | \x99\x8f\x3d\x6a\x6f\xbe\xe5\xd1\x9d\x0b\x97\xf4\x6f\xb2\x3f\xff\ 435 | \x29\x58\x99\x01\xfb\x31\xf0\xf0\xaf\x5b\xb6\xbf\x6b\x80\x83\x8b\ 436 | \xea\x7d\x99\xdd\x49\x81\xf1\x43\x04\x06\x40\x25\x49\x12\xad\x5e\ 437 | \xbd\xba\xfd\xe5\x97\x5f\x36\x4a\xa9\x61\x13\x26\x4c\x10\xc5\x62\ 438 | \x91\x28\x3b\xab\xad\x1d\x9b\x82\xe3\x8e\xc5\x0d\xce\xa5\xbf\xf3\ 439 | \xf3\x48\xa1\x09\x0a\x67\xe0\x48\x83\xd1\x29\xc6\x18\xa2\xb4\x02\ 440 | \x71\x8e\x58\x2f\x43\xa9\x33\x40\x08\xbb\x63\xdb\x0e\x71\xef\xfd\ 441 | \xdf\x4b\x6f\xbe\xf9\x96\xd5\xdb\xb6\x1f\x6a\xcf\x80\x0d\xae\xa4\ 442 | \x9c\x6c\x30\x78\x00\x78\x3c\xcb\x42\x8e\x36\x80\x83\x51\xca\xe6\ 443 | \xe9\x03\x40\x4b\xb6\xe1\xf9\xb9\xcf\x51\xb4\xb7\xb7\x1f\x5a\xbe\ 444 | \x7c\x79\x5f\xb5\x5a\x6d\x6a\x6c\x6c\x74\x9b\x9a\x9a\x0e\x1f\x1f\ 445 | \x48\x29\xc1\x0a\xaa\xd1\x3c\xac\x2c\x62\xe3\x95\x68\x73\x00\xaf\ 446 | \x30\x1d\x6b\x25\x71\x52\xa5\xbe\xd8\x88\xe7\x28\xaa\xe1\xb3\x36\ 447 | \xf0\x4f\x17\x8b\x97\x2c\x17\xb7\xde\xfa\xed\x9e\xef\x7e\xf7\xde\ 448 | \x55\xfd\xfd\xfd\xa5\x21\xf7\x38\x08\x70\x6f\x06\xef\xe9\x4c\x3c\ 449 | \x38\x9a\x01\x0e\x0a\xcc\xce\x6c\x9e\x76\xb2\xde\xe8\x67\x59\x3a\ 450 | \x38\x4f\x57\xda\xda\xda\x3a\xb6\x6e\xdd\xea\x34\x35\x35\xd5\x4f\ 451 | \x98\x30\x41\x04\x41\x40\x94\x48\x06\xaa\x0f\x23\x4c\x95\xfa\x86\ 452 | \x4f\xe3\xe6\x2e\xa0\xd2\x75\x3f\x49\xb2\x11\x63\xce\xa2\xae\x3e\ 453 | \x07\x42\x62\x84\xb4\x7b\x5e\x5d\x24\x9e\x78\x72\x0b\xb7\x7c\xfb\ 454 | \x3b\x3b\xe6\xce\x9d\xbb\x59\x6b\x9d\x0e\xd9\xb8\x0f\xae\xe3\xd7\ 455 | \x65\xb3\xed\xe2\xec\xba\xf8\x9f\x00\xf0\xc8\x79\xba\x67\x88\xdd\ 456 | \x19\x14\x18\xa9\xb5\xb6\xbb\x76\xed\xea\x78\xe1\x85\x17\xaa\xd6\ 457 | \xda\xe6\x91\x23\xc7\xca\x42\x71\x01\x49\xdf\x2e\x8a\xf5\x9f\x42\ 458 | \x2a\x41\x39\x12\xd4\xd7\x5f\x4e\x5c\x79\x1c\xc1\x5e\xfc\xfc\x99\ 459 | \x36\x4d\x52\xf1\xe2\x8b\x2b\xc4\x43\x0f\xcd\x8c\x6f\xbc\xe9\xde\ 460 | \x35\xdb\xb6\xbd\xb2\x77\x48\xc9\x32\xc4\xa6\x2c\xcd\xe0\xad\xff\ 461 | \x55\xe3\xd9\xd1\x0a\x70\x70\x9e\xde\x06\xbc\x92\x29\x74\x6b\x36\ 462 | \x83\x1e\xde\x35\xf6\xf7\xf7\xf7\x2d\x5f\xfe\xc2\xa1\x7d\x7b\x77\ 463 | \xe6\xfc\x60\x65\xfe\x84\x13\xbf\x44\x50\x28\xda\xfe\xde\x50\x38\ 464 | \xae\xc5\xf5\x5d\x3c\xef\x1d\x84\xd5\x59\x74\x75\xcf\x14\x8b\x16\ 465 | \x55\xb9\xed\xb6\xdb\x3b\x1f\x7e\x68\xc1\xba\x81\x52\x65\x60\xc8\ 466 | \x64\x31\xd8\xef\xfa\x33\x8f\xf7\x40\x56\xbe\xbf\xd5\xf8\x7d\x03\ 467 | \x1c\xcc\xb8\xce\xcc\x7c\x87\x47\xcc\xd3\x99\xc0\xa4\xc9\x86\x8d\ 468 | \x9b\xda\x5f\x5e\x1b\xa5\x42\x35\x34\x0f\x1f\x36\x42\x8c\x1e\xd3\ 469 | \x8a\x92\x0e\x71\x12\x52\x0d\xb5\xed\xad\x4c\xe1\xd1\x1f\x3c\x69\ 470 | \xaf\xbf\xf1\xe6\x2d\x2f\xbc\xb0\x7e\x5b\xaa\xd3\xc1\x52\xb5\x43\ 471 | \xd6\xf0\x9d\x99\x39\x9e\x09\xf4\xfd\x2e\x6e\xe6\x0f\x01\x70\xe8\ 472 | \x3c\xbd\x31\x53\xeb\x61\xd9\xf1\x81\xfa\xf9\xe3\x83\xbe\x43\x4b\ 473 | \x96\x2c\xed\x1e\x18\xe8\xab\x1f\x3e\xbc\xd9\x6f\x6e\x6e\xc6\x68\ 474 | \x6b\x57\xb5\xad\x14\x77\xde\x79\x57\xf9\xae\x7b\xe7\xae\xdb\xb7\ 475 | \xb7\xab\x7d\x88\x31\x1e\x2c\x59\x93\xb5\x8b\xfb\x80\x67\x7e\x1b\ 476 | \x62\xf1\x07\xfd\x9a\xc3\xeb\x88\x31\xc0\x15\xc0\x85\xd9\xae\xd1\ 477 | \x0c\xc9\x24\x23\x84\x90\x53\xa7\x4e\x3d\xe6\xe3\x1f\xff\xf8\xb1\ 478 | \x85\x42\x81\x07\x1f\x7c\xf0\xd5\x65\x4b\x97\x6d\x4f\x75\x6a\x8e\ 479 | \xc8\x3a\x95\xad\xa2\xe6\x66\x06\x79\xcf\xef\xfa\xc2\x8f\xa6\x2f\ 480 | \x96\xf9\xc0\x05\xc0\x07\x80\x63\x87\x28\xe8\x20\x9c\xa4\xa5\xa5\ 481 | \xa5\xd5\x71\x1c\xb7\xbd\xbd\x7d\x57\x36\x2a\x1e\x79\x1f\x1d\xc0\ 482 | \x4f\x80\x39\x59\x7b\xe0\x8d\x04\x70\xf0\x7a\x4e\x00\x3e\x98\x7d\ 483 | \x02\xaa\x78\x64\x36\x0e\x8a\xcd\xd0\x1d\x64\xb6\xb7\x5b\x99\x4d\ 484 | \x16\xeb\x32\xf3\xfe\x7b\x09\xc5\xd1\x17\x5d\x99\xc0\x94\x86\x08\ 485 | \x8c\x38\x42\x1c\x18\xe2\xef\x7a\xb2\x1d\xde\xf7\xb3\x85\x86\xf9\ 486 | \x7d\x5e\xec\xd1\x08\xf0\xc8\xe3\x83\x42\x76\x7c\xe0\x1d\x01\xce\ 487 | \x66\x9e\xee\xfb\xc0\x4f\xff\xbb\xcb\x80\xff\xad\x00\x07\x41\xb5\ 488 | \x67\xd9\x98\x0e\x39\x9f\x16\x40\x25\x3b\xaf\xb8\x3b\xfb\xbb\xf9\ 489 | \x43\x5d\xe4\xd1\x0c\xf0\xc8\xe3\x83\xbd\xd9\xf4\x52\xa5\xf6\xb5\ 490 | \xac\x87\xa9\x9d\x59\xbf\x19\xbf\x86\xc0\xb4\x64\x99\x78\xd4\xbc\ 491 | \xf1\xff\x01\xa6\xf0\x49\x0d\x94\xc1\x18\xf4\x00\x00\x00\x00\x49\ 492 | \x45\x4e\x44\xae\x42\x60\x82\ 493 | " 494 | 495 | qt_resource_name = "\ 496 | \x00\x07\ 497 | \x07\x3b\xe0\xb3\ 498 | \x00\x70\ 499 | \x00\x6c\x00\x75\x00\x67\x00\x69\x00\x6e\x00\x73\ 500 | \x00\x08\ 501 | \x08\x49\x66\x25\ 502 | \x00\x4f\ 503 | \x00\x53\x00\x4d\x00\x72\x00\x6f\x00\x75\x00\x74\x00\x65\ 504 | \x00\x08\ 505 | \x05\xe2\x59\x27\ 506 | \x00\x6c\ 507 | \x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ 508 | " 509 | 510 | qt_resource_struct = "\ 511 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ 512 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ 513 | \x00\x00\x00\x14\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\ 514 | \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ 515 | " 516 | 517 | def qInitResources(): 518 | QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 519 | 520 | def qCleanupResources(): 521 | QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 522 | 523 | qInitResources() 524 | -------------------------------------------------------------------------------- /resources_rc.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Geolicious/OSMroute/28a96cb266c12d7355b28946e7bfeafb5d508397/resources_rc.pyc --------------------------------------------------------------------------------