molSimplify 1.7.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (651) hide show
  1. docs/source/conf.py +224 -0
  2. molSimplify/Classes/__init__.py +6 -0
  3. molSimplify/Classes/atom3D.py +235 -0
  4. molSimplify/Classes/dft_obs.py +130 -0
  5. molSimplify/Classes/globalvars.py +827 -0
  6. molSimplify/Classes/helpers.py +161 -0
  7. molSimplify/Classes/ligand.py +2330 -0
  8. molSimplify/Classes/mGUI.py +2493 -0
  9. molSimplify/Classes/mWidgets.py +438 -0
  10. molSimplify/Classes/miniGUI.py +41 -0
  11. molSimplify/Classes/mol2D.py +260 -0
  12. molSimplify/Classes/mol3D.py +5846 -0
  13. molSimplify/Classes/monomer3D.py +253 -0
  14. molSimplify/Classes/partialcharges.py +226 -0
  15. molSimplify/Classes/protein3D.py +1178 -0
  16. molSimplify/Classes/rundiag.py +151 -0
  17. molSimplify/Data/ML.dat +212 -0
  18. molSimplify/Data/MLS_FSR_for_inter.dat +23 -0
  19. molSimplify/Data/MLS_FSR_for_inter2.dat +23 -0
  20. molSimplify/Data/MLS_angle_for_click.dat +8 -0
  21. molSimplify/Data/MLS_angle_for_inter.dat +23 -0
  22. molSimplify/Data/MLS_angle_for_inter2.dat +48 -0
  23. molSimplify/Data/MLS_angle_for_intra.dat +10 -0
  24. molSimplify/Data/MLS_angle_for_intra2.dat +6 -0
  25. molSimplify/Data/MLS_angle_for_oa.dat +18 -0
  26. molSimplify/Data/ML_FSR_for_inter.dat +112 -0
  27. molSimplify/Data/ML_FSR_for_inter2.dat +110 -0
  28. molSimplify/Data/ML_bond_for_cat.dat +8 -0
  29. molSimplify/Data/ML_bond_for_click.dat +8 -0
  30. molSimplify/Data/ML_bond_for_inter.dat +48 -0
  31. molSimplify/Data/ML_bond_for_inter2.dat +48 -0
  32. molSimplify/Data/ML_bond_for_intra.dat +10 -0
  33. molSimplify/Data/ML_bond_for_intra2.dat +6 -0
  34. molSimplify/Data/ML_bond_for_oa.dat +18 -0
  35. molSimplify/Data/bp1.dat +21 -0
  36. molSimplify/Data/li.dat +3 -0
  37. molSimplify/Data/no.dat +2 -0
  38. molSimplify/Data/oct.dat +7 -0
  39. molSimplify/Data/pbp.dat +8 -0
  40. molSimplify/Data/spy.dat +6 -0
  41. molSimplify/Data/sqap.dat +9 -0
  42. molSimplify/Data/sqp.dat +5 -0
  43. molSimplify/Data/tbp.dat +6 -0
  44. molSimplify/Data/tdhd.dat +9 -0
  45. molSimplify/Data/thd.dat +5 -0
  46. molSimplify/Data/tpl.dat +4 -0
  47. molSimplify/Data/tpr.dat +7 -0
  48. molSimplify/Informatics/HFXsensitivity/__init__.py +0 -0
  49. molSimplify/Informatics/HFXsensitivity/measure_HFX_sensitivity_oxo_hat_reb_rel.py +443 -0
  50. molSimplify/Informatics/HFXsensitivity/measure_HFX_stable.py +346 -0
  51. molSimplify/Informatics/MOF/Linker_rotation.py +179 -0
  52. molSimplify/Informatics/MOF/MOF_descriptors.py +1299 -0
  53. molSimplify/Informatics/MOF/MOF_descriptors_alternate_functional.py +589 -0
  54. molSimplify/Informatics/MOF/MOF_functionalizer.py +1648 -0
  55. molSimplify/Informatics/MOF/PBC_functions.py +1347 -0
  56. molSimplify/Informatics/MOF/__init__.py +0 -0
  57. molSimplify/Informatics/MOF/atomic.py +267 -0
  58. molSimplify/Informatics/MOF/cluster_extraction.py +388 -0
  59. molSimplify/Informatics/MOF/fragment_MOFs_for_pormake.py +895 -0
  60. molSimplify/Informatics/MOF/monofunctionalized_BDC/index_information.py +10 -0
  61. molSimplify/Informatics/Mol2Parser.py +46 -0
  62. molSimplify/Informatics/RACassemble.py +408 -0
  63. molSimplify/Informatics/__init__.py +0 -0
  64. molSimplify/Informatics/active_learning/__init__.py +0 -0
  65. molSimplify/Informatics/active_learning/expected_improvement.py +269 -0
  66. molSimplify/Informatics/autocorrelation.py +1930 -0
  67. molSimplify/Informatics/clean_autocorrelation.py +778 -0
  68. molSimplify/Informatics/coulomb_analyze.py +67 -0
  69. molSimplify/Informatics/decoration_manager.py +193 -0
  70. molSimplify/Informatics/geo_analyze.py +88 -0
  71. molSimplify/Informatics/geometrics.py +56 -0
  72. molSimplify/Informatics/graph_analyze.py +163 -0
  73. molSimplify/Informatics/graph_racs.py +288 -0
  74. molSimplify/Informatics/jupyter_vis.py +172 -0
  75. molSimplify/Informatics/lacRACAssemble.py +2192 -0
  76. molSimplify/Informatics/lacRACAssemble_bisdithiolenes.py +236 -0
  77. molSimplify/Informatics/misc_descriptors.py +198 -0
  78. molSimplify/Informatics/organic_fingerprints.py +61 -0
  79. molSimplify/Informatics/partialcharges.py +345 -0
  80. molSimplify/Informatics/protein/activesite.py +53 -0
  81. molSimplify/Informatics/protein/pymol_add_hs.py +33 -0
  82. molSimplify/Informatics/rac155_geo.py +48 -0
  83. molSimplify/Ligands/(1_methylbenzimidazol_2_yl)pyridine.xyz +45 -0
  84. molSimplify/Ligands/1-4-dimethyl-1-2-3-triazole.xyz +15 -0
  85. molSimplify/Ligands/12crown4.mol +62 -0
  86. molSimplify/Ligands/Antipyrine.mol +58 -0
  87. molSimplify/Ligands/BPAbipy.mol +106 -0
  88. molSimplify/Ligands/Hpyrrole.mol +26 -0
  89. molSimplify/Ligands/N-quinolinylbutyramidate.xyz +31 -0
  90. molSimplify/Ligands/N-quinolinylmethylmethinylacetamidate.xyz +30 -0
  91. molSimplify/Ligands/NMe2_-1.xyz +11 -0
  92. molSimplify/Ligands/PCy3.mol +111 -0
  93. molSimplify/Ligands/PMe3.xyz +15 -0
  94. molSimplify/Ligands/PPh3.mol +76 -0
  95. molSimplify/Ligands/Propyphenazone.mol +77 -0
  96. molSimplify/Ligands/acac.mol +33 -0
  97. molSimplify/Ligands/acacen.mol +76 -0
  98. molSimplify/Ligands/acetate.smi +1 -0
  99. molSimplify/Ligands/acetate.xyz +9 -0
  100. molSimplify/Ligands/aceticacidbipyridine.mol +70 -0
  101. molSimplify/Ligands/acetonitrile.mol +17 -0
  102. molSimplify/Ligands/alanine.mol +30 -0
  103. molSimplify/Ligands/alphabetizer.py +21 -0
  104. molSimplify/Ligands/amine.mol +11 -0
  105. molSimplify/Ligands/ammonia.mol +12 -0
  106. molSimplify/Ligands/arginine.mol +58 -0
  107. molSimplify/Ligands/asparagine.mol +38 -0
  108. molSimplify/Ligands/aspartic_acid.mol +35 -0
  109. molSimplify/Ligands/azide.mol +11 -0
  110. molSimplify/Ligands/benzene.mol +28 -0
  111. molSimplify/Ligands/benzene_pi.mol +30 -0
  112. molSimplify/Ligands/benzenedithiol.mol +30 -0
  113. molSimplify/Ligands/benzenethiol.mol +30 -0
  114. molSimplify/Ligands/benzylisocy.mol +38 -0
  115. molSimplify/Ligands/bidiazine.mol +42 -0
  116. molSimplify/Ligands/bidiazole.mol +38 -0
  117. molSimplify/Ligands/bifuran.mol +38 -0
  118. molSimplify/Ligands/bihydrodiazine.mol +58 -0
  119. molSimplify/Ligands/bihydrodiazole.mol +46 -0
  120. molSimplify/Ligands/bihydrooxazine.mol +54 -0
  121. molSimplify/Ligands/bihydrooxazole.mol +42 -0
  122. molSimplify/Ligands/bihydrothiazine.mol +54 -0
  123. molSimplify/Ligands/bihydrothiazole.mol +42 -0
  124. molSimplify/Ligands/biimidazole.mol +38 -0
  125. molSimplify/Ligands/bioxazole.mol +34 -0
  126. molSimplify/Ligands/bipy.mol +46 -0
  127. molSimplify/Ligands/bipyrazine.xyz +20 -0
  128. molSimplify/Ligands/bipyrimidine.mol +42 -0
  129. molSimplify/Ligands/bipyrrole.mol +42 -0
  130. molSimplify/Ligands/bisnapthyridylpyridine.mol +111 -0
  131. molSimplify/Ligands/bithiazole.mol +34 -0
  132. molSimplify/Ligands/bromide.mol +7 -0
  133. molSimplify/Ligands/bromide.smi +1 -0
  134. molSimplify/Ligands/c2.mol +9 -0
  135. molSimplify/Ligands/caprolactone.mol +41 -0
  136. molSimplify/Ligands/carbonyl.mol +8 -0
  137. molSimplify/Ligands/carboxyl.mol +13 -0
  138. molSimplify/Ligands/cat.mol +30 -0
  139. molSimplify/Ligands/chloride.mol +7 -0
  140. molSimplify/Ligands/chloride.smi +1 -0
  141. molSimplify/Ligands/chloropyridine.mol +27 -0
  142. molSimplify/Ligands/co2.mol +10 -0
  143. molSimplify/Ligands/corrolazine.mol +72 -0
  144. molSimplify/Ligands/cs.mol +8 -0
  145. molSimplify/Ligands/cyanate.xyz +5 -0
  146. molSimplify/Ligands/cyanide.mol +9 -0
  147. molSimplify/Ligands/cyanoaceticporphyrin.mol +114 -0
  148. molSimplify/Ligands/cyanopyridine.mol +29 -0
  149. molSimplify/Ligands/cyclam.mol +81 -0
  150. molSimplify/Ligands/cyclen.mol +69 -0
  151. molSimplify/Ligands/cyclopentadienyl.mol +26 -0
  152. molSimplify/Ligands/cysteine.mol +32 -0
  153. molSimplify/Ligands/diaminomethyl.mol +19 -0
  154. molSimplify/Ligands/diazine.mol +25 -0
  155. molSimplify/Ligands/diazole.mol +23 -0
  156. molSimplify/Ligands/dicyanamide.mol +15 -0
  157. molSimplify/Ligands/dihydrofuran.mol +27 -0
  158. molSimplify/Ligands/dmap.xyz +35 -0
  159. molSimplify/Ligands/dmf.mol +28 -0
  160. molSimplify/Ligands/dmi.mol +41 -0
  161. molSimplify/Ligands/dmpe.mol +52 -0
  162. molSimplify/Ligands/dpmu.mol +47 -0
  163. molSimplify/Ligands/dppe.mol +112 -0
  164. molSimplify/Ligands/edta.mol +69 -0
  165. molSimplify/Ligands/en.mol +28 -0
  166. molSimplify/Ligands/ethanethiol.mol +21 -0
  167. molSimplify/Ligands/ethanolamine.mol +26 -0
  168. molSimplify/Ligands/ethbipy.mol +70 -0
  169. molSimplify/Ligands/ethyl.mol +19 -0
  170. molSimplify/Ligands/ethylamine.mol +24 -0
  171. molSimplify/Ligands/ethylene.mol +16 -0
  172. molSimplify/Ligands/ethylesteracac.mol +57 -0
  173. molSimplify/Ligands/fluoride.mol +7 -0
  174. molSimplify/Ligands/fluoride.smi +1 -0
  175. molSimplify/Ligands/formaldehyde.mol +12 -0
  176. molSimplify/Ligands/formamidate.xyz +8 -0
  177. molSimplify/Ligands/formate.xyz +6 -0
  178. molSimplify/Ligands/furan.mol +23 -0
  179. molSimplify/Ligands/glutamic_acid.mol +42 -0
  180. molSimplify/Ligands/glutamine.mol +44 -0
  181. molSimplify/Ligands/glycinate.mol +23 -0
  182. molSimplify/Ligands/glycine.mol +24 -0
  183. molSimplify/Ligands/h2s.mol +10 -0
  184. molSimplify/Ligands/helium.mol +6 -0
  185. molSimplify/Ligands/histidine.mol +45 -0
  186. molSimplify/Ligands/hmpa.mol +62 -0
  187. molSimplify/Ligands/hs-.mol +9 -0
  188. molSimplify/Ligands/hydride.mol +7 -0
  189. molSimplify/Ligands/hydrocarboxyacetylide.xyz +8 -0
  190. molSimplify/Ligands/hydrocyanide.mol +10 -0
  191. molSimplify/Ligands/hydrodiazine.mol +33 -0
  192. molSimplify/Ligands/hydrodiazole.mol +27 -0
  193. molSimplify/Ligands/hydrogensulfide.mol +10 -0
  194. molSimplify/Ligands/hydroisocyanide.mol +11 -0
  195. molSimplify/Ligands/hydrooxazine.mol +31 -0
  196. molSimplify/Ligands/hydrooxazole.mol +25 -0
  197. molSimplify/Ligands/hydrothiazine.mol +31 -0
  198. molSimplify/Ligands/hydrothiazole.mol +25 -0
  199. molSimplify/Ligands/hydroxyl.mol +9 -0
  200. molSimplify/Ligands/imidazole.mol +23 -0
  201. molSimplify/Ligands/imidazolidinone.mol +29 -0
  202. molSimplify/Ligands/imine.mol +13 -0
  203. molSimplify/Ligands/iminodiacetic.mol +33 -0
  204. molSimplify/Ligands/iodide.mol +7 -0
  205. molSimplify/Ligands/iodobenzene.xyz +14 -0
  206. molSimplify/Ligands/isoleucine.mol +48 -0
  207. molSimplify/Ligands/isothiocyanate.mol +11 -0
  208. molSimplify/Ligands/leucine.mol +48 -0
  209. molSimplify/Ligands/ligands.dict +257 -0
  210. molSimplify/Ligands/lysine.mol +54 -0
  211. molSimplify/Ligands/mebenzenedithiol.mol +36 -0
  212. molSimplify/Ligands/mebim_py.xyz +29 -0
  213. molSimplify/Ligands/mebim_pz.xyz +28 -0
  214. molSimplify/Ligands/mebipy.mol +58 -0
  215. molSimplify/Ligands/mecat.mol +36 -0
  216. molSimplify/Ligands/methanal.mol +11 -0
  217. molSimplify/Ligands/methanethiol.mol +15 -0
  218. molSimplify/Ligands/methanol.mol +16 -0
  219. molSimplify/Ligands/methionine.mol +44 -0
  220. molSimplify/Ligands/methyl.mol +13 -0
  221. molSimplify/Ligands/methylacetylide.xyz +8 -0
  222. molSimplify/Ligands/methylamine.mol +19 -0
  223. molSimplify/Ligands/methylazide.xyz +9 -0
  224. molSimplify/Ligands/methylisocy.mol +17 -0
  225. molSimplify/Ligands/methylpyridine.mol +33 -0
  226. molSimplify/Ligands/n2.mol +8 -0
  227. molSimplify/Ligands/n4py.xyz +51 -0
  228. molSimplify/Ligands/nch.mol +10 -0
  229. molSimplify/Ligands/nco-.mol +11 -0
  230. molSimplify/Ligands/nethanolamine.mol +26 -0
  231. molSimplify/Ligands/nitrate.mol +14 -0
  232. molSimplify/Ligands/nitrite.mol +11 -0
  233. molSimplify/Ligands/nitro.mol +11 -0
  234. molSimplify/Ligands/nitrobipy.mol +54 -0
  235. molSimplify/Ligands/nitroso.mol +8 -0
  236. molSimplify/Ligands/nme3.mol +30 -0
  237. molSimplify/Ligands/no-.mol +10 -0
  238. molSimplify/Ligands/no2-.mol +11 -0
  239. molSimplify/Ligands/noxygen.mol +8 -0
  240. molSimplify/Ligands/ns-.mol +10 -0
  241. molSimplify/Ligands/o-pyridylbenzene.xyz +23 -0
  242. molSimplify/Ligands/o-pyridylphenylanion.xyz +22 -0
  243. molSimplify/Ligands/o2-.mol +9 -0
  244. molSimplify/Ligands/o2.xyz +4 -0
  245. molSimplify/Ligands/och2.mol +12 -0
  246. molSimplify/Ligands/oethanolamine.mol +26 -0
  247. molSimplify/Ligands/ome2.mol +22 -0
  248. molSimplify/Ligands/ooh.xyz +5 -0
  249. molSimplify/Ligands/oxalate.mol +17 -0
  250. molSimplify/Ligands/oxalate.smi +1 -0
  251. molSimplify/Ligands/oxygen.mol +7 -0
  252. molSimplify/Ligands/pentacyanocyclopentadienide.mol +36 -0
  253. molSimplify/Ligands/ph2-.mol +11 -0
  254. molSimplify/Ligands/ph3.mol +12 -0
  255. molSimplify/Ligands/phen.mol +51 -0
  256. molSimplify/Ligands/phenacac.mol +63 -0
  257. molSimplify/Ligands/phenalalanine.mol +51 -0
  258. molSimplify/Ligands/phendione.mol +51 -0
  259. molSimplify/Ligands/phenphen.mol +75 -0
  260. molSimplify/Ligands/phenylbenzoxazole.mol +54 -0
  261. molSimplify/Ligands/phenylcyc.mol +99 -0
  262. molSimplify/Ligands/phenylenediamine.mol +37 -0
  263. molSimplify/Ligands/phenylisocy.mol +32 -0
  264. molSimplify/Ligands/phosacidbipy.mol +66 -0
  265. molSimplify/Ligands/phosphine.mol +13 -0
  266. molSimplify/Ligands/phosphorine.mol +27 -0
  267. molSimplify/Ligands/phosphorustrifluoride.mol +12 -0
  268. molSimplify/Ligands/phthalocyanine.mol +126 -0
  269. molSimplify/Ligands/pme3o.mol +32 -0
  270. molSimplify/Ligands/porphyrin.mol +82 -0
  271. molSimplify/Ligands/pph3o.mol +77 -0
  272. molSimplify/Ligands/proline.mol +39 -0
  273. molSimplify/Ligands/propdiol.mol +21 -0
  274. molSimplify/Ligands/propylene.mol +23 -0
  275. molSimplify/Ligands/pyridine.mol +27 -0
  276. molSimplify/Ligands/pyrimidone.mol +27 -0
  277. molSimplify/Ligands/pyrrole.mol +24 -0
  278. molSimplify/Ligands/quinoxalinedithiol.mol +39 -0
  279. molSimplify/Ligands/s2-.mol +9 -0
  280. molSimplify/Ligands/salen.mol +75 -0
  281. molSimplify/Ligands/salphen.mol +84 -0
  282. molSimplify/Ligands/serine.mol +32 -0
  283. molSimplify/Ligands/simple_ligands.dict +14 -0
  284. molSimplify/Ligands/sulfacidbipy.mol +63 -0
  285. molSimplify/Ligands/tbucat.mol +54 -0
  286. molSimplify/Ligands/tbuphisocy.mol +56 -0
  287. molSimplify/Ligands/tbutylcyclen.mol +166 -0
  288. molSimplify/Ligands/tbutylisocy.mol +35 -0
  289. molSimplify/Ligands/tbutylthiol.mol +33 -0
  290. molSimplify/Ligands/tcnoet.mol +43 -0
  291. molSimplify/Ligands/tcnoetOH.mol +45 -0
  292. molSimplify/Ligands/terpy.mol +65 -0
  293. molSimplify/Ligands/tetrahydrofuran.mol +31 -0
  294. molSimplify/Ligands/thiane.mol +37 -0
  295. molSimplify/Ligands/thiazole.mol +21 -0
  296. molSimplify/Ligands/thiocyanate.mol +11 -0
  297. molSimplify/Ligands/thiol.mol +9 -0
  298. molSimplify/Ligands/thiophene.mol +23 -0
  299. molSimplify/Ligands/thiopyridine.mol +29 -0
  300. molSimplify/Ligands/threonine.mol +38 -0
  301. molSimplify/Ligands/tpp.mol +165 -0
  302. molSimplify/Ligands/tricyanomethyl.mol +19 -0
  303. molSimplify/Ligands/trifluoromethyl.mol +13 -0
  304. molSimplify/Ligands/tryptophan.mol +60 -0
  305. molSimplify/Ligands/tyrosine.mol +53 -0
  306. molSimplify/Ligands/uthiol.mol +11 -0
  307. molSimplify/Ligands/uthiolme2.mol +23 -0
  308. molSimplify/Ligands/valine.mol +42 -0
  309. molSimplify/Ligands/water.mol +10 -0
  310. molSimplify/Ligands/x.mol +6 -0
  311. molSimplify/Scripts/__init__.py +0 -0
  312. molSimplify/Scripts/addtodb.py +308 -0
  313. molSimplify/Scripts/cellbuilder.py +1592 -0
  314. molSimplify/Scripts/cellbuilder_tools.py +701 -0
  315. molSimplify/Scripts/chains.py +342 -0
  316. molSimplify/Scripts/convert_2to3.py +23 -0
  317. molSimplify/Scripts/dbinteract.py +631 -0
  318. molSimplify/Scripts/distgeom.py +617 -0
  319. molSimplify/Scripts/findcorrelations.py +287 -0
  320. molSimplify/Scripts/generator.py +267 -0
  321. molSimplify/Scripts/geometry.py +1224 -0
  322. molSimplify/Scripts/grabguivars.py +845 -0
  323. molSimplify/Scripts/in_b3lyp_usetc.py +141 -0
  324. molSimplify/Scripts/inparse.py +1673 -0
  325. molSimplify/Scripts/io.py +1149 -0
  326. molSimplify/Scripts/isomers.py +415 -0
  327. molSimplify/Scripts/jobgen.py +247 -0
  328. molSimplify/Scripts/krr_prep.py +1262 -0
  329. molSimplify/Scripts/molSimplify_io.py +18 -0
  330. molSimplify/Scripts/molden2psi4wfn.py +166 -0
  331. molSimplify/Scripts/namegen.py +32 -0
  332. molSimplify/Scripts/nn_prep.py +561 -0
  333. molSimplify/Scripts/oct_check_mols.py +782 -0
  334. molSimplify/Scripts/periodic_QE.py +97 -0
  335. molSimplify/Scripts/postmold.py +304 -0
  336. molSimplify/Scripts/postmwfn.py +709 -0
  337. molSimplify/Scripts/postparse.py +488 -0
  338. molSimplify/Scripts/postproc.py +139 -0
  339. molSimplify/Scripts/qcgen.py +1450 -0
  340. molSimplify/Scripts/rmsd.py +489 -0
  341. molSimplify/Scripts/rungen.py +670 -0
  342. molSimplify/Scripts/structgen.py +3040 -0
  343. molSimplify/Scripts/tf_nn_prep.py +894 -0
  344. molSimplify/Scripts/tsgen.py +295 -0
  345. molSimplify/Scripts/uq_calibration.py +69 -0
  346. molSimplify/__init__.py +0 -0
  347. molSimplify/__main__.py +197 -0
  348. molSimplify/icons/chemdb.png +0 -0
  349. molSimplify/icons/hjklogo.png +0 -0
  350. molSimplify/icons/icon.png +0 -0
  351. molSimplify/icons/logo.png +0 -0
  352. molSimplify/icons/logo_old.png +0 -0
  353. molSimplify/icons/petachem.png +0 -0
  354. molSimplify/icons/petachem2.png +0 -0
  355. molSimplify/icons/petachem_full.png +0 -0
  356. molSimplify/icons/pythonlogo.png +0 -0
  357. molSimplify/icons/sge copy.png +0 -0
  358. molSimplify/icons/sge.png +0 -0
  359. molSimplify/icons/slurm.png +0 -0
  360. molSimplify/icons/wft1.png +0 -0
  361. molSimplify/icons/wft2.png +0 -0
  362. molSimplify/icons/wft3.png +0 -0
  363. molSimplify/ml/__init__.py +0 -0
  364. molSimplify/ml/kernels.py +36 -0
  365. molSimplify/ml/layers.py +29 -0
  366. molSimplify/molscontrol/__init__.py +14 -0
  367. molSimplify/molscontrol/_version.py +521 -0
  368. molSimplify/molscontrol/clf_tools.py +144 -0
  369. molSimplify/molscontrol/data/README.md +21 -0
  370. molSimplify/molscontrol/data/look_and_say.dat +15 -0
  371. molSimplify/molscontrol/dynamic_classifier.py +514 -0
  372. molSimplify/molscontrol/io_tools.py +363 -0
  373. molSimplify/molscontrol/molscontrol.py +49 -0
  374. molSimplify/molscontrol/terachem/jobscript_control.sh +31 -0
  375. molSimplify/molscontrol/terachem/terachem_input +22 -0
  376. molSimplify/python_krr/X_train_TS.csv +535 -0
  377. molSimplify/python_krr/__init__.py +0 -0
  378. molSimplify/python_krr/hat2_X_mean_std.csv +3 -0
  379. molSimplify/python_krr/hat2_feature_names.csv +1 -0
  380. molSimplify/python_krr/hat2_y_mean_std.csv +2 -0
  381. molSimplify/python_krr/hat_X_mean_std.csv +6 -0
  382. molSimplify/python_krr/hat_feature_names.csv +1 -0
  383. molSimplify/python_krr/hat_krr_X_train.csv +5205 -0
  384. molSimplify/python_krr/hat_krr_dual_coef.csv +1 -0
  385. molSimplify/python_krr/hat_y_mean_std.csv +2 -0
  386. molSimplify/python_krr/sklearn_models.py +34 -0
  387. molSimplify/python_krr/y_train_TS.csv +535 -0
  388. molSimplify/python_nn/ANN.py +198 -0
  389. molSimplify/python_nn/__init__.py +0 -0
  390. molSimplify/python_nn/clf_analysis_tool.py +125 -0
  391. molSimplify/python_nn/dictionary_toolbox.py +49 -0
  392. molSimplify/python_nn/ensemble_test.py +309 -0
  393. molSimplify/python_nn/hs_center.csv +26 -0
  394. molSimplify/python_nn/hs_scale.csv +26 -0
  395. molSimplify/python_nn/ls_center.csv +26 -0
  396. molSimplify/python_nn/ls_scale.csv +26 -0
  397. molSimplify/python_nn/ms_hs_b1.csv +50 -0
  398. molSimplify/python_nn/ms_hs_b2.csv +50 -0
  399. molSimplify/python_nn/ms_hs_b3.csv +1 -0
  400. molSimplify/python_nn/ms_hs_w1.csv +50 -0
  401. molSimplify/python_nn/ms_hs_w2.csv +50 -0
  402. molSimplify/python_nn/ms_hs_w3.csv +1 -0
  403. molSimplify/python_nn/ms_ls_b1.csv +50 -0
  404. molSimplify/python_nn/ms_ls_b2.csv +50 -0
  405. molSimplify/python_nn/ms_ls_b3.csv +1 -0
  406. molSimplify/python_nn/ms_ls_w1.csv +50 -0
  407. molSimplify/python_nn/ms_ls_w2.csv +50 -0
  408. molSimplify/python_nn/ms_ls_w3.csv +1 -0
  409. molSimplify/python_nn/ms_slope_b1.csv +50 -0
  410. molSimplify/python_nn/ms_slope_b2.csv +50 -0
  411. molSimplify/python_nn/ms_slope_b3.csv +1 -0
  412. molSimplify/python_nn/ms_slope_w1.csv +50 -0
  413. molSimplify/python_nn/ms_slope_w2.csv +50 -0
  414. molSimplify/python_nn/ms_slope_w3.csv +1 -0
  415. molSimplify/python_nn/ms_split_b1.csv +50 -0
  416. molSimplify/python_nn/ms_split_b2.csv +50 -0
  417. molSimplify/python_nn/ms_split_b3.csv +1 -0
  418. molSimplify/python_nn/ms_split_w1.csv +50 -0
  419. molSimplify/python_nn/ms_split_w2.csv +50 -0
  420. molSimplify/python_nn/ms_split_w3.csv +1 -0
  421. molSimplify/python_nn/slope_center.csv +25 -0
  422. molSimplify/python_nn/slope_scale.csv +25 -0
  423. molSimplify/python_nn/split_center.csv +26 -0
  424. molSimplify/python_nn/split_scale.csv +26 -0
  425. molSimplify/python_nn/tf_ANN.py +762 -0
  426. molSimplify/python_nn/train_data.csv +1211 -0
  427. molSimplify/tf_nn/__init__.py +0 -0
  428. molSimplify/tf_nn/geo_static_clf/geo_static_clf_model.h5 +0 -0
  429. molSimplify/tf_nn/geo_static_clf/geo_static_clf_train_name.csv +1591 -0
  430. molSimplify/tf_nn/geo_static_clf/geo_static_clf_train_x.csv +2790 -0
  431. molSimplify/tf_nn/geo_static_clf/geo_static_clf_train_y.csv +2790 -0
  432. molSimplify/tf_nn/geo_static_clf/geo_static_clf_vars.csv +154 -0
  433. molSimplify/tf_nn/geos/hs_ii_bl_x.csv +1577 -0
  434. molSimplify/tf_nn/geos/hs_ii_bl_y.csv +1577 -0
  435. molSimplify/tf_nn/geos/hs_ii_model.h5 +0 -0
  436. molSimplify/tf_nn/geos/hs_ii_model.json +1 -0
  437. molSimplify/tf_nn/geos/hs_ii_vars.csv +154 -0
  438. molSimplify/tf_nn/geos/hs_iii_bl_x.csv +1659 -0
  439. molSimplify/tf_nn/geos/hs_iii_bl_y.csv +1659 -0
  440. molSimplify/tf_nn/geos/hs_iii_model.h5 +0 -0
  441. molSimplify/tf_nn/geos/hs_iii_model.json +1 -0
  442. molSimplify/tf_nn/geos/hs_iii_vars.csv +154 -0
  443. molSimplify/tf_nn/geos/ls_ii_bl_x.csv +1374 -0
  444. molSimplify/tf_nn/geos/ls_ii_bl_y.csv +1374 -0
  445. molSimplify/tf_nn/geos/ls_ii_model.h5 +0 -0
  446. molSimplify/tf_nn/geos/ls_ii_model.json +1 -0
  447. molSimplify/tf_nn/geos/ls_ii_vars.csv +154 -0
  448. molSimplify/tf_nn/geos/ls_iii_bl_x.csv +1364 -0
  449. molSimplify/tf_nn/geos/ls_iii_bl_y.csv +1364 -0
  450. molSimplify/tf_nn/geos/ls_iii_model.h5 +0 -0
  451. molSimplify/tf_nn/geos/ls_iii_model.json +1 -0
  452. molSimplify/tf_nn/geos/ls_iii_vars.csv +154 -0
  453. molSimplify/tf_nn/homolumo/gap_model.h5 +0 -0
  454. molSimplify/tf_nn/homolumo/gap_model.json +1 -0
  455. molSimplify/tf_nn/homolumo/gap_test_names.csv +175 -0
  456. molSimplify/tf_nn/homolumo/gap_test_x.csv +176 -0
  457. molSimplify/tf_nn/homolumo/gap_test_y.csv +176 -0
  458. molSimplify/tf_nn/homolumo/gap_train_names.csv +699 -0
  459. molSimplify/tf_nn/homolumo/gap_train_x.csv +700 -0
  460. molSimplify/tf_nn/homolumo/gap_train_y.csv +700 -0
  461. molSimplify/tf_nn/homolumo/gap_vars.csv +153 -0
  462. molSimplify/tf_nn/homolumo/homo_model.h5 +0 -0
  463. molSimplify/tf_nn/homolumo/homo_model.json +126 -0
  464. molSimplify/tf_nn/homolumo/homo_test_names.csv +175 -0
  465. molSimplify/tf_nn/homolumo/homo_test_x.csv +176 -0
  466. molSimplify/tf_nn/homolumo/homo_test_y.csv +176 -0
  467. molSimplify/tf_nn/homolumo/homo_train_names.csv +699 -0
  468. molSimplify/tf_nn/homolumo/homo_train_x.csv +700 -0
  469. molSimplify/tf_nn/homolumo/homo_train_y.csv +700 -0
  470. molSimplify/tf_nn/homolumo/homo_vars.csv +153 -0
  471. molSimplify/tf_nn/oxoandhomo/homo_empty_info.json +7 -0
  472. molSimplify/tf_nn/oxoandhomo/homo_empty_model.h5 +0 -0
  473. molSimplify/tf_nn/oxoandhomo/homo_empty_model.json +1 -0
  474. molSimplify/tf_nn/oxoandhomo/homo_empty_test_names.csv +143 -0
  475. molSimplify/tf_nn/oxoandhomo/homo_empty_test_x.csv +144 -0
  476. molSimplify/tf_nn/oxoandhomo/homo_empty_test_y.csv +144 -0
  477. molSimplify/tf_nn/oxoandhomo/homo_empty_train_names.csv +513 -0
  478. molSimplify/tf_nn/oxoandhomo/homo_empty_train_x.csv +514 -0
  479. molSimplify/tf_nn/oxoandhomo/homo_empty_train_y.csv +514 -0
  480. molSimplify/tf_nn/oxoandhomo/homo_empty_val_names.csv +143 -0
  481. molSimplify/tf_nn/oxoandhomo/homo_empty_val_x.csv +58 -0
  482. molSimplify/tf_nn/oxoandhomo/homo_empty_val_y.csv +58 -0
  483. molSimplify/tf_nn/oxoandhomo/homo_empty_vars.csv +155 -0
  484. molSimplify/tf_nn/oxoandhomo/oxo20_info.json +7 -0
  485. molSimplify/tf_nn/oxoandhomo/oxo20_model.h5 +0 -0
  486. molSimplify/tf_nn/oxoandhomo/oxo20_model.json +1 -0
  487. molSimplify/tf_nn/oxoandhomo/oxo20_test_names.csv +143 -0
  488. molSimplify/tf_nn/oxoandhomo/oxo20_test_x.csv +144 -0
  489. molSimplify/tf_nn/oxoandhomo/oxo20_test_y.csv +144 -0
  490. molSimplify/tf_nn/oxoandhomo/oxo20_train_names.csv +513 -0
  491. molSimplify/tf_nn/oxoandhomo/oxo20_train_x.csv +514 -0
  492. molSimplify/tf_nn/oxoandhomo/oxo20_train_y.csv +514 -0
  493. molSimplify/tf_nn/oxoandhomo/oxo20_val_names.csv +143 -0
  494. molSimplify/tf_nn/oxoandhomo/oxo20_val_x.csv +58 -0
  495. molSimplify/tf_nn/oxoandhomo/oxo20_val_y.csv +58 -0
  496. molSimplify/tf_nn/oxoandhomo/oxo20_vars.csv +154 -0
  497. molSimplify/tf_nn/oxocatalysis/hat_model.h5 +0 -0
  498. molSimplify/tf_nn/oxocatalysis/hat_model.json +1 -0
  499. molSimplify/tf_nn/oxocatalysis/hat_test_names.csv +419 -0
  500. molSimplify/tf_nn/oxocatalysis/hat_test_x.csv +420 -0
  501. molSimplify/tf_nn/oxocatalysis/hat_test_y.csv +420 -0
  502. molSimplify/tf_nn/oxocatalysis/hat_train_names.csv +1507 -0
  503. molSimplify/tf_nn/oxocatalysis/hat_train_x.csv +1508 -0
  504. molSimplify/tf_nn/oxocatalysis/hat_train_y.csv +1508 -0
  505. molSimplify/tf_nn/oxocatalysis/hat_val_x.csv +169 -0
  506. molSimplify/tf_nn/oxocatalysis/hat_val_y.csv +169 -0
  507. molSimplify/tf_nn/oxocatalysis/hat_vars.csv +162 -0
  508. molSimplify/tf_nn/oxocatalysis/oxo_model.h5 +0 -0
  509. molSimplify/tf_nn/oxocatalysis/oxo_model.json +1 -0
  510. molSimplify/tf_nn/oxocatalysis/oxo_test_names.csv +527 -0
  511. molSimplify/tf_nn/oxocatalysis/oxo_test_x.csv +528 -0
  512. molSimplify/tf_nn/oxocatalysis/oxo_test_y.csv +528 -0
  513. molSimplify/tf_nn/oxocatalysis/oxo_train_names.csv +1897 -0
  514. molSimplify/tf_nn/oxocatalysis/oxo_train_x.csv +1898 -0
  515. molSimplify/tf_nn/oxocatalysis/oxo_train_y.csv +1898 -0
  516. molSimplify/tf_nn/oxocatalysis/oxo_val_x.csv +212 -0
  517. molSimplify/tf_nn/oxocatalysis/oxo_val_y.csv +212 -0
  518. molSimplify/tf_nn/oxocatalysis/oxo_vars.csv +162 -0
  519. molSimplify/tf_nn/rescaling_data/gap_mean_x.csv +153 -0
  520. molSimplify/tf_nn/rescaling_data/gap_mean_y.csv +1 -0
  521. molSimplify/tf_nn/rescaling_data/gap_var_x.csv +153 -0
  522. molSimplify/tf_nn/rescaling_data/gap_var_y.csv +1 -0
  523. molSimplify/tf_nn/rescaling_data/geo_static_clf_mean_x.csv +154 -0
  524. molSimplify/tf_nn/rescaling_data/geo_static_clf_mean_y.csv +1 -0
  525. molSimplify/tf_nn/rescaling_data/geo_static_clf_var_x.csv +154 -0
  526. molSimplify/tf_nn/rescaling_data/geo_static_clf_var_y.csv +1 -0
  527. molSimplify/tf_nn/rescaling_data/hat_mean_x.csv +162 -0
  528. molSimplify/tf_nn/rescaling_data/hat_mean_y.csv +1 -0
  529. molSimplify/tf_nn/rescaling_data/hat_var_x.csv +162 -0
  530. molSimplify/tf_nn/rescaling_data/hat_var_y.csv +1 -0
  531. molSimplify/tf_nn/rescaling_data/homo_empty_mean_x.csv +155 -0
  532. molSimplify/tf_nn/rescaling_data/homo_empty_mean_y.csv +1 -0
  533. molSimplify/tf_nn/rescaling_data/homo_empty_var_x.csv +155 -0
  534. molSimplify/tf_nn/rescaling_data/homo_empty_var_y.csv +1 -0
  535. molSimplify/tf_nn/rescaling_data/homo_mean_x.csv +153 -0
  536. molSimplify/tf_nn/rescaling_data/homo_mean_y.csv +1 -0
  537. molSimplify/tf_nn/rescaling_data/homo_var_x.csv +153 -0
  538. molSimplify/tf_nn/rescaling_data/homo_var_y.csv +1 -0
  539. molSimplify/tf_nn/rescaling_data/hs_ii_mean_x.csv +154 -0
  540. molSimplify/tf_nn/rescaling_data/hs_ii_mean_y.csv +3 -0
  541. molSimplify/tf_nn/rescaling_data/hs_ii_var_x.csv +154 -0
  542. molSimplify/tf_nn/rescaling_data/hs_ii_var_y.csv +3 -0
  543. molSimplify/tf_nn/rescaling_data/hs_iii_mean_x.csv +154 -0
  544. molSimplify/tf_nn/rescaling_data/hs_iii_mean_y.csv +3 -0
  545. molSimplify/tf_nn/rescaling_data/hs_iii_var_x.csv +154 -0
  546. molSimplify/tf_nn/rescaling_data/hs_iii_var_y.csv +3 -0
  547. molSimplify/tf_nn/rescaling_data/ls_ii_mean_x.csv +154 -0
  548. molSimplify/tf_nn/rescaling_data/ls_ii_mean_y.csv +3 -0
  549. molSimplify/tf_nn/rescaling_data/ls_ii_var_x.csv +154 -0
  550. molSimplify/tf_nn/rescaling_data/ls_ii_var_y.csv +3 -0
  551. molSimplify/tf_nn/rescaling_data/ls_iii_mean_x.csv +154 -0
  552. molSimplify/tf_nn/rescaling_data/ls_iii_mean_y.csv +3 -0
  553. molSimplify/tf_nn/rescaling_data/ls_iii_var_x.csv +154 -0
  554. molSimplify/tf_nn/rescaling_data/ls_iii_var_y.csv +3 -0
  555. molSimplify/tf_nn/rescaling_data/oxo20_mean_x.csv +154 -0
  556. molSimplify/tf_nn/rescaling_data/oxo20_mean_y.csv +1 -0
  557. molSimplify/tf_nn/rescaling_data/oxo20_var_x.csv +154 -0
  558. molSimplify/tf_nn/rescaling_data/oxo20_var_y.csv +1 -0
  559. molSimplify/tf_nn/rescaling_data/oxo_mean_x.csv +162 -0
  560. molSimplify/tf_nn/rescaling_data/oxo_mean_y.csv +1 -0
  561. molSimplify/tf_nn/rescaling_data/oxo_var_x.csv +162 -0
  562. molSimplify/tf_nn/rescaling_data/oxo_var_y.csv +1 -0
  563. molSimplify/tf_nn/rescaling_data/sc_static_clf_mean_x.csv +154 -0
  564. molSimplify/tf_nn/rescaling_data/sc_static_clf_mean_y.csv +1 -0
  565. molSimplify/tf_nn/rescaling_data/sc_static_clf_var_x.csv +154 -0
  566. molSimplify/tf_nn/rescaling_data/sc_static_clf_var_y.csv +1 -0
  567. molSimplify/tf_nn/rescaling_data/split_mean_x.csv +155 -0
  568. molSimplify/tf_nn/rescaling_data/split_mean_y.csv +1 -0
  569. molSimplify/tf_nn/rescaling_data/split_var_x.csv +155 -0
  570. molSimplify/tf_nn/rescaling_data/split_var_y.csv +1 -0
  571. molSimplify/tf_nn/sc_static_clf/sc_static_clf_model.h5 +0 -0
  572. molSimplify/tf_nn/sc_static_clf/sc_static_clf_train_name.csv +1591 -0
  573. molSimplify/tf_nn/sc_static_clf/sc_static_clf_train_x.csv +1592 -0
  574. molSimplify/tf_nn/sc_static_clf/sc_static_clf_train_y.csv +1592 -0
  575. molSimplify/tf_nn/sc_static_clf/sc_static_clf_vars.csv +154 -0
  576. molSimplify/tf_nn/split/split_model.h5 +0 -0
  577. molSimplify/tf_nn/split/split_model.json +1 -0
  578. molSimplify/tf_nn/split/split_vars.csv +155 -0
  579. molSimplify/tf_nn/split/split_x.csv +1902 -0
  580. molSimplify/tf_nn/split/split_y.csv +1902 -0
  581. molSimplify/tf_nn/split/train_names.csv +1901 -0
  582. molSimplify/utils/__init__.py +0 -0
  583. molSimplify/utils/decorators.py +16 -0
  584. molSimplify/utils/metaclasses.py +12 -0
  585. molSimplify/utils/tensorflow.py +23 -0
  586. molSimplify/utils/timer.py +16 -0
  587. molSimplify-1.7.4.dist-info/LICENSE +674 -0
  588. molSimplify-1.7.4.dist-info/METADATA +821 -0
  589. molSimplify-1.7.4.dist-info/RECORD +651 -0
  590. molSimplify-1.7.4.dist-info/WHEEL +5 -0
  591. molSimplify-1.7.4.dist-info/entry_points.txt +3 -0
  592. molSimplify-1.7.4.dist-info/top_level.txt +4 -0
  593. tests/generateTests.py +122 -0
  594. tests/helperFuncs.py +658 -0
  595. tests/informatics/test_MOF_descriptors.py +128 -0
  596. tests/informatics/test_active_learning.py +113 -0
  597. tests/informatics/test_coulomb_analyze.py +24 -0
  598. tests/informatics/test_graph_racs.py +193 -0
  599. tests/ml/test_kernels.py +20 -0
  600. tests/ml/test_layers.py +47 -0
  601. tests/runtest.py +10 -0
  602. tests/test_Mol2D.py +128 -0
  603. tests/test_basic_imports.py +62 -0
  604. tests/test_bidentate.py +25 -0
  605. tests/test_cli.py +20 -0
  606. tests/test_distgeom.py +106 -0
  607. tests/test_example_1.py +29 -0
  608. tests/test_example_3.py +31 -0
  609. tests/test_example_5.py +43 -0
  610. tests/test_example_7.py +28 -0
  611. tests/test_example_8.py +15 -0
  612. tests/test_example_tbp.py +15 -0
  613. tests/test_ff_xtb.py +111 -0
  614. tests/test_geocheck_oct.py +26 -0
  615. tests/test_geocheck_one_empty.py +15 -0
  616. tests/test_geometry.py +44 -0
  617. tests/test_inparse.py +76 -0
  618. tests/test_io.py +84 -0
  619. tests/test_jobgen.py +84 -0
  620. tests/test_joption_pythonic.py +27 -0
  621. tests/test_ligand_assign.py +58 -0
  622. tests/test_ligand_assign_consistent.py +60 -0
  623. tests/test_ligand_class.py +26 -0
  624. tests/test_ligand_from_mol_file.py +35 -0
  625. tests/test_ligands.py +86 -0
  626. tests/test_mol3D.py +337 -0
  627. tests/test_molcas_caspt2.py +15 -0
  628. tests/test_molcas_casscf.py +15 -0
  629. tests/test_old_ANNs.py +68 -0
  630. tests/test_orca_ccsdt.py +15 -0
  631. tests/test_orca_dft.py +15 -0
  632. tests/test_qcgen.py +50 -0
  633. tests/test_racs.py +124 -0
  634. tests/test_rmsd.py +68 -0
  635. tests/test_structgen_functions.py +198 -0
  636. tests/test_tetrahedral.py +29 -0
  637. tests/test_tutorial_10_part_one.py +16 -0
  638. tests/test_tutorial_10_part_two.py +15 -0
  639. tests/test_tutorial_2.py +11 -0
  640. tests/test_tutorial_3.py +15 -0
  641. tests/test_tutorial_4.py +57 -0
  642. tests/test_tutorial_6.py +10 -0
  643. tests/test_tutorial_8.py +29 -0
  644. tests/test_tutorial_9_part_one.py +15 -0
  645. tests/test_tutorial_9_part_two.py +15 -0
  646. tests/test_tutorial_qm9_part_one.py +6 -0
  647. tests/testresources/refs/racs/generate_references.py +85 -0
  648. workflows/NandyJACSAu2022/bridge_functionalizer.py +253 -0
  649. workflows/NandyJACSAu2022/frag_functionalizer.py +242 -0
  650. workflows/NandyJACSAu2022/fragment_classes.py +586 -0
  651. workflows/NandyJACSAu2022/macrocycle_synthesis.py +179 -0
@@ -0,0 +1,2790 @@
1
+ geo_flag
2
+ 1
3
+ 1
4
+ 1
5
+ 0
6
+ 0
7
+ 0
8
+ 1
9
+ 0
10
+ 0
11
+ 1
12
+ 1
13
+ 0
14
+ 1
15
+ 0
16
+ 0
17
+ 0
18
+ 1
19
+ 0
20
+ 0
21
+ 0
22
+ 1
23
+ 0
24
+ 1
25
+ 0
26
+ 1
27
+ 0
28
+ 1
29
+ 0
30
+ 0
31
+ 0
32
+ 0
33
+ 1
34
+ 1
35
+ 1
36
+ 1
37
+ 1
38
+ 1
39
+ 0
40
+ 0
41
+ 1
42
+ 0
43
+ 0
44
+ 1
45
+ 1
46
+ 1
47
+ 0
48
+ 1
49
+ 1
50
+ 1
51
+ 0
52
+ 1
53
+ 1
54
+ 1
55
+ 0
56
+ 1
57
+ 0
58
+ 1
59
+ 1
60
+ 0
61
+ 1
62
+ 1
63
+ 1
64
+ 0
65
+ 1
66
+ 0
67
+ 0
68
+ 1
69
+ 0
70
+ 0
71
+ 1
72
+ 0
73
+ 1
74
+ 0
75
+ 0
76
+ 0
77
+ 0
78
+ 0
79
+ 0
80
+ 0
81
+ 1
82
+ 0
83
+ 0
84
+ 0
85
+ 1
86
+ 1
87
+ 0
88
+ 1
89
+ 1
90
+ 0
91
+ 0
92
+ 0
93
+ 0
94
+ 1
95
+ 1
96
+ 0
97
+ 1
98
+ 1
99
+ 0
100
+ 0
101
+ 1
102
+ 0
103
+ 1
104
+ 0
105
+ 1
106
+ 1
107
+ 1
108
+ 1
109
+ 1
110
+ 1
111
+ 1
112
+ 1
113
+ 0
114
+ 0
115
+ 0
116
+ 1
117
+ 0
118
+ 0
119
+ 0
120
+ 1
121
+ 0
122
+ 1
123
+ 0
124
+ 1
125
+ 0
126
+ 0
127
+ 0
128
+ 1
129
+ 0
130
+ 0
131
+ 0
132
+ 1
133
+ 1
134
+ 1
135
+ 0
136
+ 1
137
+ 1
138
+ 1
139
+ 1
140
+ 1
141
+ 0
142
+ 1
143
+ 1
144
+ 0
145
+ 1
146
+ 0
147
+ 0
148
+ 1
149
+ 0
150
+ 0
151
+ 0
152
+ 1
153
+ 0
154
+ 1
155
+ 1
156
+ 0
157
+ 0
158
+ 1
159
+ 0
160
+ 1
161
+ 0
162
+ 0
163
+ 1
164
+ 0
165
+ 0
166
+ 0
167
+ 0
168
+ 0
169
+ 0
170
+ 0
171
+ 1
172
+ 1
173
+ 1
174
+ 1
175
+ 1
176
+ 1
177
+ 0
178
+ 1
179
+ 0
180
+ 1
181
+ 1
182
+ 1
183
+ 0
184
+ 1
185
+ 1
186
+ 0
187
+ 1
188
+ 1
189
+ 1
190
+ 0
191
+ 0
192
+ 1
193
+ 1
194
+ 0
195
+ 1
196
+ 0
197
+ 1
198
+ 0
199
+ 1
200
+ 1
201
+ 0
202
+ 0
203
+ 0
204
+ 0
205
+ 0
206
+ 1
207
+ 1
208
+ 1
209
+ 1
210
+ 1
211
+ 0
212
+ 1
213
+ 0
214
+ 0
215
+ 0
216
+ 1
217
+ 0
218
+ 1
219
+ 1
220
+ 1
221
+ 0
222
+ 1
223
+ 0
224
+ 1
225
+ 0
226
+ 1
227
+ 0
228
+ 1
229
+ 1
230
+ 0
231
+ 1
232
+ 1
233
+ 1
234
+ 1
235
+ 0
236
+ 0
237
+ 0
238
+ 0
239
+ 0
240
+ 0
241
+ 0
242
+ 1
243
+ 1
244
+ 0
245
+ 0
246
+ 1
247
+ 0
248
+ 1
249
+ 0
250
+ 1
251
+ 1
252
+ 0
253
+ 1
254
+ 0
255
+ 1
256
+ 0
257
+ 1
258
+ 0
259
+ 1
260
+ 1
261
+ 0
262
+ 0
263
+ 1
264
+ 1
265
+ 0
266
+ 0
267
+ 1
268
+ 1
269
+ 0
270
+ 0
271
+ 1
272
+ 0
273
+ 1
274
+ 0
275
+ 0
276
+ 1
277
+ 1
278
+ 0
279
+ 0
280
+ 1
281
+ 0
282
+ 0
283
+ 1
284
+ 0
285
+ 1
286
+ 1
287
+ 0
288
+ 0
289
+ 1
290
+ 1
291
+ 0
292
+ 1
293
+ 1
294
+ 1
295
+ 1
296
+ 1
297
+ 0
298
+ 1
299
+ 0
300
+ 1
301
+ 0
302
+ 0
303
+ 0
304
+ 0
305
+ 1
306
+ 1
307
+ 0
308
+ 0
309
+ 0
310
+ 0
311
+ 1
312
+ 0
313
+ 1
314
+ 1
315
+ 1
316
+ 0
317
+ 0
318
+ 0
319
+ 0
320
+ 1
321
+ 0
322
+ 1
323
+ 0
324
+ 0
325
+ 0
326
+ 1
327
+ 1
328
+ 0
329
+ 1
330
+ 1
331
+ 1
332
+ 0
333
+ 0
334
+ 0
335
+ 1
336
+ 0
337
+ 0
338
+ 0
339
+ 1
340
+ 0
341
+ 0
342
+ 0
343
+ 1
344
+ 1
345
+ 1
346
+ 0
347
+ 0
348
+ 1
349
+ 1
350
+ 1
351
+ 0
352
+ 0
353
+ 1
354
+ 1
355
+ 1
356
+ 0
357
+ 0
358
+ 1
359
+ 1
360
+ 1
361
+ 0
362
+ 1
363
+ 0
364
+ 0
365
+ 0
366
+ 0
367
+ 0
368
+ 0
369
+ 0
370
+ 0
371
+ 0
372
+ 1
373
+ 1
374
+ 1
375
+ 0
376
+ 1
377
+ 0
378
+ 0
379
+ 1
380
+ 0
381
+ 1
382
+ 1
383
+ 1
384
+ 1
385
+ 0
386
+ 0
387
+ 1
388
+ 0
389
+ 0
390
+ 0
391
+ 1
392
+ 0
393
+ 1
394
+ 1
395
+ 0
396
+ 0
397
+ 0
398
+ 1
399
+ 1
400
+ 0
401
+ 0
402
+ 1
403
+ 1
404
+ 0
405
+ 0
406
+ 0
407
+ 0
408
+ 1
409
+ 1
410
+ 1
411
+ 0
412
+ 0
413
+ 1
414
+ 1
415
+ 1
416
+ 1
417
+ 0
418
+ 1
419
+ 0
420
+ 0
421
+ 0
422
+ 0
423
+ 0
424
+ 1
425
+ 1
426
+ 0
427
+ 1
428
+ 0
429
+ 0
430
+ 1
431
+ 1
432
+ 0
433
+ 0
434
+ 1
435
+ 1
436
+ 1
437
+ 1
438
+ 1
439
+ 1
440
+ 1
441
+ 1
442
+ 1
443
+ 0
444
+ 1
445
+ 0
446
+ 1
447
+ 0
448
+ 1
449
+ 0
450
+ 0
451
+ 0
452
+ 1
453
+ 1
454
+ 0
455
+ 1
456
+ 1
457
+ 1
458
+ 0
459
+ 0
460
+ 1
461
+ 1
462
+ 1
463
+ 1
464
+ 0
465
+ 0
466
+ 1
467
+ 0
468
+ 1
469
+ 1
470
+ 0
471
+ 0
472
+ 0
473
+ 1
474
+ 1
475
+ 0
476
+ 1
477
+ 0
478
+ 0
479
+ 1
480
+ 0
481
+ 0
482
+ 1
483
+ 0
484
+ 0
485
+ 0
486
+ 1
487
+ 0
488
+ 1
489
+ 0
490
+ 1
491
+ 0
492
+ 1
493
+ 1
494
+ 1
495
+ 0
496
+ 1
497
+ 1
498
+ 1
499
+ 1
500
+ 1
501
+ 0
502
+ 1
503
+ 0
504
+ 1
505
+ 0
506
+ 0
507
+ 1
508
+ 1
509
+ 1
510
+ 0
511
+ 0
512
+ 0
513
+ 0
514
+ 0
515
+ 0
516
+ 1
517
+ 1
518
+ 1
519
+ 1
520
+ 0
521
+ 1
522
+ 1
523
+ 0
524
+ 0
525
+ 1
526
+ 0
527
+ 1
528
+ 1
529
+ 1
530
+ 0
531
+ 0
532
+ 0
533
+ 0
534
+ 1
535
+ 0
536
+ 1
537
+ 0
538
+ 1
539
+ 0
540
+ 1
541
+ 1
542
+ 1
543
+ 0
544
+ 0
545
+ 1
546
+ 0
547
+ 1
548
+ 0
549
+ 0
550
+ 1
551
+ 0
552
+ 0
553
+ 1
554
+ 0
555
+ 0
556
+ 0
557
+ 0
558
+ 0
559
+ 1
560
+ 1
561
+ 0
562
+ 1
563
+ 1
564
+ 1
565
+ 1
566
+ 1
567
+ 0
568
+ 0
569
+ 1
570
+ 1
571
+ 1
572
+ 0
573
+ 0
574
+ 1
575
+ 1
576
+ 0
577
+ 0
578
+ 1
579
+ 1
580
+ 1
581
+ 1
582
+ 0
583
+ 1
584
+ 0
585
+ 0
586
+ 0
587
+ 0
588
+ 1
589
+ 0
590
+ 1
591
+ 1
592
+ 0
593
+ 1
594
+ 1
595
+ 0
596
+ 1
597
+ 1
598
+ 1
599
+ 0
600
+ 1
601
+ 0
602
+ 0
603
+ 0
604
+ 1
605
+ 1
606
+ 0
607
+ 0
608
+ 0
609
+ 1
610
+ 1
611
+ 0
612
+ 1
613
+ 1
614
+ 1
615
+ 0
616
+ 0
617
+ 0
618
+ 1
619
+ 0
620
+ 0
621
+ 1
622
+ 1
623
+ 1
624
+ 0
625
+ 1
626
+ 0
627
+ 0
628
+ 1
629
+ 1
630
+ 1
631
+ 1
632
+ 0
633
+ 0
634
+ 1
635
+ 0
636
+ 0
637
+ 0
638
+ 0
639
+ 0
640
+ 1
641
+ 1
642
+ 1
643
+ 0
644
+ 1
645
+ 1
646
+ 0
647
+ 1
648
+ 1
649
+ 1
650
+ 0
651
+ 1
652
+ 1
653
+ 0
654
+ 0
655
+ 1
656
+ 1
657
+ 1
658
+ 0
659
+ 0
660
+ 0
661
+ 1
662
+ 1
663
+ 1
664
+ 1
665
+ 1
666
+ 0
667
+ 0
668
+ 1
669
+ 1
670
+ 1
671
+ 1
672
+ 1
673
+ 1
674
+ 0
675
+ 1
676
+ 0
677
+ 1
678
+ 0
679
+ 1
680
+ 1
681
+ 1
682
+ 0
683
+ 1
684
+ 1
685
+ 1
686
+ 1
687
+ 0
688
+ 0
689
+ 0
690
+ 1
691
+ 0
692
+ 0
693
+ 0
694
+ 1
695
+ 1
696
+ 0
697
+ 1
698
+ 1
699
+ 1
700
+ 1
701
+ 1
702
+ 0
703
+ 0
704
+ 1
705
+ 1
706
+ 0
707
+ 0
708
+ 0
709
+ 1
710
+ 1
711
+ 1
712
+ 0
713
+ 0
714
+ 0
715
+ 0
716
+ 0
717
+ 0
718
+ 1
719
+ 1
720
+ 1
721
+ 1
722
+ 0
723
+ 1
724
+ 1
725
+ 1
726
+ 1
727
+ 0
728
+ 0
729
+ 0
730
+ 0
731
+ 0
732
+ 0
733
+ 1
734
+ 0
735
+ 0
736
+ 1
737
+ 1
738
+ 0
739
+ 1
740
+ 1
741
+ 1
742
+ 0
743
+ 1
744
+ 0
745
+ 0
746
+ 1
747
+ 0
748
+ 0
749
+ 1
750
+ 1
751
+ 1
752
+ 0
753
+ 0
754
+ 1
755
+ 1
756
+ 1
757
+ 0
758
+ 1
759
+ 1
760
+ 1
761
+ 0
762
+ 1
763
+ 1
764
+ 0
765
+ 0
766
+ 1
767
+ 0
768
+ 0
769
+ 1
770
+ 1
771
+ 1
772
+ 0
773
+ 1
774
+ 1
775
+ 1
776
+ 0
777
+ 0
778
+ 1
779
+ 0
780
+ 1
781
+ 0
782
+ 0
783
+ 0
784
+ 0
785
+ 1
786
+ 1
787
+ 1
788
+ 0
789
+ 0
790
+ 1
791
+ 0
792
+ 0
793
+ 0
794
+ 1
795
+ 0
796
+ 0
797
+ 0
798
+ 1
799
+ 0
800
+ 0
801
+ 1
802
+ 0
803
+ 0
804
+ 1
805
+ 1
806
+ 0
807
+ 0
808
+ 1
809
+ 1
810
+ 1
811
+ 1
812
+ 0
813
+ 1
814
+ 0
815
+ 1
816
+ 0
817
+ 0
818
+ 1
819
+ 1
820
+ 0
821
+ 1
822
+ 0
823
+ 1
824
+ 1
825
+ 0
826
+ 1
827
+ 1
828
+ 1
829
+ 0
830
+ 0
831
+ 1
832
+ 1
833
+ 0
834
+ 1
835
+ 0
836
+ 0
837
+ 0
838
+ 0
839
+ 1
840
+ 1
841
+ 0
842
+ 1
843
+ 1
844
+ 0
845
+ 0
846
+ 1
847
+ 1
848
+ 1
849
+ 1
850
+ 0
851
+ 0
852
+ 1
853
+ 1
854
+ 0
855
+ 1
856
+ 1
857
+ 1
858
+ 1
859
+ 1
860
+ 1
861
+ 0
862
+ 0
863
+ 0
864
+ 1
865
+ 1
866
+ 0
867
+ 1
868
+ 1
869
+ 1
870
+ 1
871
+ 0
872
+ 0
873
+ 1
874
+ 1
875
+ 1
876
+ 1
877
+ 0
878
+ 0
879
+ 0
880
+ 1
881
+ 0
882
+ 1
883
+ 0
884
+ 0
885
+ 0
886
+ 0
887
+ 1
888
+ 0
889
+ 1
890
+ 1
891
+ 1
892
+ 0
893
+ 1
894
+ 0
895
+ 1
896
+ 0
897
+ 1
898
+ 0
899
+ 0
900
+ 1
901
+ 0
902
+ 1
903
+ 0
904
+ 1
905
+ 1
906
+ 0
907
+ 0
908
+ 0
909
+ 1
910
+ 1
911
+ 0
912
+ 0
913
+ 1
914
+ 0
915
+ 0
916
+ 1
917
+ 0
918
+ 0
919
+ 0
920
+ 0
921
+ 0
922
+ 1
923
+ 1
924
+ 0
925
+ 1
926
+ 0
927
+ 0
928
+ 0
929
+ 1
930
+ 0
931
+ 0
932
+ 0
933
+ 0
934
+ 1
935
+ 0
936
+ 0
937
+ 1
938
+ 1
939
+ 0
940
+ 0
941
+ 1
942
+ 0
943
+ 0
944
+ 1
945
+ 1
946
+ 0
947
+ 0
948
+ 0
949
+ 0
950
+ 0
951
+ 0
952
+ 0
953
+ 1
954
+ 1
955
+ 1
956
+ 1
957
+ 1
958
+ 0
959
+ 1
960
+ 1
961
+ 0
962
+ 0
963
+ 0
964
+ 0
965
+ 0
966
+ 0
967
+ 0
968
+ 0
969
+ 0
970
+ 0
971
+ 1
972
+ 0
973
+ 0
974
+ 0
975
+ 0
976
+ 1
977
+ 1
978
+ 1
979
+ 0
980
+ 0
981
+ 0
982
+ 0
983
+ 0
984
+ 0
985
+ 1
986
+ 1
987
+ 0
988
+ 0
989
+ 1
990
+ 0
991
+ 0
992
+ 0
993
+ 1
994
+ 1
995
+ 0
996
+ 1
997
+ 1
998
+ 0
999
+ 1
1000
+ 0
1001
+ 1
1002
+ 0
1003
+ 0
1004
+ 0
1005
+ 1
1006
+ 0
1007
+ 0
1008
+ 1
1009
+ 0
1010
+ 0
1011
+ 0
1012
+ 1
1013
+ 1
1014
+ 1
1015
+ 1
1016
+ 1
1017
+ 0
1018
+ 0
1019
+ 0
1020
+ 0
1021
+ 1
1022
+ 1
1023
+ 1
1024
+ 1
1025
+ 0
1026
+ 0
1027
+ 1
1028
+ 0
1029
+ 1
1030
+ 0
1031
+ 1
1032
+ 0
1033
+ 1
1034
+ 1
1035
+ 1
1036
+ 0
1037
+ 1
1038
+ 0
1039
+ 0
1040
+ 0
1041
+ 1
1042
+ 1
1043
+ 1
1044
+ 1
1045
+ 0
1046
+ 1
1047
+ 0
1048
+ 1
1049
+ 1
1050
+ 0
1051
+ 1
1052
+ 0
1053
+ 1
1054
+ 0
1055
+ 0
1056
+ 1
1057
+ 0
1058
+ 0
1059
+ 1
1060
+ 0
1061
+ 1
1062
+ 0
1063
+ 0
1064
+ 1
1065
+ 0
1066
+ 1
1067
+ 0
1068
+ 1
1069
+ 1
1070
+ 1
1071
+ 0
1072
+ 1
1073
+ 0
1074
+ 1
1075
+ 1
1076
+ 1
1077
+ 1
1078
+ 0
1079
+ 0
1080
+ 0
1081
+ 0
1082
+ 1
1083
+ 0
1084
+ 0
1085
+ 0
1086
+ 1
1087
+ 0
1088
+ 1
1089
+ 0
1090
+ 1
1091
+ 1
1092
+ 1
1093
+ 1
1094
+ 1
1095
+ 1
1096
+ 1
1097
+ 1
1098
+ 1
1099
+ 1
1100
+ 1
1101
+ 1
1102
+ 1
1103
+ 0
1104
+ 0
1105
+ 0
1106
+ 0
1107
+ 1
1108
+ 0
1109
+ 1
1110
+ 0
1111
+ 0
1112
+ 1
1113
+ 0
1114
+ 0
1115
+ 1
1116
+ 1
1117
+ 0
1118
+ 1
1119
+ 0
1120
+ 1
1121
+ 1
1122
+ 1
1123
+ 1
1124
+ 1
1125
+ 0
1126
+ 1
1127
+ 1
1128
+ 0
1129
+ 0
1130
+ 0
1131
+ 1
1132
+ 0
1133
+ 0
1134
+ 0
1135
+ 0
1136
+ 1
1137
+ 0
1138
+ 1
1139
+ 0
1140
+ 1
1141
+ 0
1142
+ 1
1143
+ 0
1144
+ 0
1145
+ 0
1146
+ 0
1147
+ 1
1148
+ 1
1149
+ 1
1150
+ 1
1151
+ 0
1152
+ 0
1153
+ 0
1154
+ 0
1155
+ 1
1156
+ 1
1157
+ 1
1158
+ 1
1159
+ 0
1160
+ 1
1161
+ 1
1162
+ 1
1163
+ 1
1164
+ 1
1165
+ 0
1166
+ 1
1167
+ 0
1168
+ 0
1169
+ 0
1170
+ 0
1171
+ 1
1172
+ 1
1173
+ 0
1174
+ 1
1175
+ 0
1176
+ 0
1177
+ 0
1178
+ 0
1179
+ 0
1180
+ 1
1181
+ 1
1182
+ 0
1183
+ 1
1184
+ 1
1185
+ 1
1186
+ 1
1187
+ 0
1188
+ 0
1189
+ 0
1190
+ 0
1191
+ 1
1192
+ 0
1193
+ 0
1194
+ 0
1195
+ 0
1196
+ 1
1197
+ 1
1198
+ 1
1199
+ 0
1200
+ 1
1201
+ 0
1202
+ 0
1203
+ 0
1204
+ 1
1205
+ 0
1206
+ 0
1207
+ 1
1208
+ 0
1209
+ 1
1210
+ 0
1211
+ 1
1212
+ 1
1213
+ 1
1214
+ 1
1215
+ 1
1216
+ 0
1217
+ 0
1218
+ 1
1219
+ 1
1220
+ 1
1221
+ 1
1222
+ 1
1223
+ 0
1224
+ 0
1225
+ 0
1226
+ 0
1227
+ 0
1228
+ 0
1229
+ 1
1230
+ 0
1231
+ 1
1232
+ 0
1233
+ 1
1234
+ 1
1235
+ 0
1236
+ 1
1237
+ 0
1238
+ 1
1239
+ 0
1240
+ 1
1241
+ 0
1242
+ 0
1243
+ 1
1244
+ 1
1245
+ 1
1246
+ 0
1247
+ 1
1248
+ 1
1249
+ 1
1250
+ 0
1251
+ 0
1252
+ 0
1253
+ 1
1254
+ 1
1255
+ 1
1256
+ 0
1257
+ 1
1258
+ 0
1259
+ 0
1260
+ 1
1261
+ 1
1262
+ 0
1263
+ 0
1264
+ 0
1265
+ 1
1266
+ 1
1267
+ 0
1268
+ 0
1269
+ 1
1270
+ 1
1271
+ 0
1272
+ 0
1273
+ 0
1274
+ 0
1275
+ 0
1276
+ 1
1277
+ 1
1278
+ 1
1279
+ 0
1280
+ 1
1281
+ 1
1282
+ 0
1283
+ 1
1284
+ 1
1285
+ 0
1286
+ 0
1287
+ 1
1288
+ 1
1289
+ 1
1290
+ 1
1291
+ 0
1292
+ 0
1293
+ 0
1294
+ 1
1295
+ 0
1296
+ 1
1297
+ 0
1298
+ 1
1299
+ 1
1300
+ 0
1301
+ 0
1302
+ 1
1303
+ 1
1304
+ 0
1305
+ 0
1306
+ 0
1307
+ 0
1308
+ 0
1309
+ 1
1310
+ 1
1311
+ 1
1312
+ 0
1313
+ 1
1314
+ 0
1315
+ 1
1316
+ 1
1317
+ 0
1318
+ 0
1319
+ 1
1320
+ 1
1321
+ 0
1322
+ 1
1323
+ 0
1324
+ 0
1325
+ 0
1326
+ 0
1327
+ 0
1328
+ 0
1329
+ 0
1330
+ 1
1331
+ 0
1332
+ 1
1333
+ 1
1334
+ 0
1335
+ 0
1336
+ 0
1337
+ 0
1338
+ 0
1339
+ 0
1340
+ 1
1341
+ 1
1342
+ 1
1343
+ 1
1344
+ 1
1345
+ 1
1346
+ 1
1347
+ 0
1348
+ 1
1349
+ 0
1350
+ 1
1351
+ 1
1352
+ 0
1353
+ 1
1354
+ 0
1355
+ 1
1356
+ 1
1357
+ 0
1358
+ 1
1359
+ 0
1360
+ 0
1361
+ 1
1362
+ 0
1363
+ 1
1364
+ 1
1365
+ 1
1366
+ 1
1367
+ 0
1368
+ 0
1369
+ 1
1370
+ 1
1371
+ 0
1372
+ 0
1373
+ 1
1374
+ 0
1375
+ 1
1376
+ 1
1377
+ 0
1378
+ 1
1379
+ 1
1380
+ 1
1381
+ 0
1382
+ 1
1383
+ 0
1384
+ 0
1385
+ 1
1386
+ 0
1387
+ 1
1388
+ 0
1389
+ 1
1390
+ 0
1391
+ 0
1392
+ 1
1393
+ 1
1394
+ 0
1395
+ 1
1396
+ 1
1397
+ 0
1398
+ 1
1399
+ 0
1400
+ 1
1401
+ 1
1402
+ 1
1403
+ 0
1404
+ 0
1405
+ 0
1406
+ 0
1407
+ 1
1408
+ 0
1409
+ 0
1410
+ 0
1411
+ 1
1412
+ 0
1413
+ 0
1414
+ 1
1415
+ 0
1416
+ 0
1417
+ 0
1418
+ 0
1419
+ 0
1420
+ 1
1421
+ 0
1422
+ 1
1423
+ 1
1424
+ 0
1425
+ 1
1426
+ 0
1427
+ 0
1428
+ 0
1429
+ 0
1430
+ 1
1431
+ 1
1432
+ 1
1433
+ 0
1434
+ 0
1435
+ 0
1436
+ 0
1437
+ 0
1438
+ 1
1439
+ 1
1440
+ 1
1441
+ 0
1442
+ 1
1443
+ 1
1444
+ 1
1445
+ 1
1446
+ 1
1447
+ 1
1448
+ 0
1449
+ 1
1450
+ 0
1451
+ 1
1452
+ 0
1453
+ 1
1454
+ 1
1455
+ 1
1456
+ 1
1457
+ 0
1458
+ 0
1459
+ 0
1460
+ 1
1461
+ 1
1462
+ 1
1463
+ 1
1464
+ 0
1465
+ 1
1466
+ 0
1467
+ 0
1468
+ 0
1469
+ 1
1470
+ 1
1471
+ 1
1472
+ 1
1473
+ 0
1474
+ 1
1475
+ 1
1476
+ 1
1477
+ 0
1478
+ 0
1479
+ 1
1480
+ 0
1481
+ 1
1482
+ 0
1483
+ 1
1484
+ 0
1485
+ 0
1486
+ 1
1487
+ 0
1488
+ 1
1489
+ 0
1490
+ 1
1491
+ 0
1492
+ 1
1493
+ 0
1494
+ 1
1495
+ 1
1496
+ 0
1497
+ 1
1498
+ 0
1499
+ 1
1500
+ 0
1501
+ 1
1502
+ 1
1503
+ 1
1504
+ 0
1505
+ 1
1506
+ 1
1507
+ 0
1508
+ 0
1509
+ 1
1510
+ 1
1511
+ 0
1512
+ 1
1513
+ 0
1514
+ 1
1515
+ 0
1516
+ 0
1517
+ 0
1518
+ 1
1519
+ 1
1520
+ 0
1521
+ 1
1522
+ 0
1523
+ 1
1524
+ 0
1525
+ 0
1526
+ 1
1527
+ 1
1528
+ 0
1529
+ 0
1530
+ 0
1531
+ 1
1532
+ 0
1533
+ 1
1534
+ 1
1535
+ 1
1536
+ 0
1537
+ 0
1538
+ 0
1539
+ 1
1540
+ 1
1541
+ 0
1542
+ 0
1543
+ 1
1544
+ 1
1545
+ 0
1546
+ 1
1547
+ 1
1548
+ 0
1549
+ 1
1550
+ 1
1551
+ 0
1552
+ 0
1553
+ 0
1554
+ 1
1555
+ 0
1556
+ 0
1557
+ 0
1558
+ 1
1559
+ 0
1560
+ 1
1561
+ 0
1562
+ 0
1563
+ 0
1564
+ 1
1565
+ 0
1566
+ 0
1567
+ 0
1568
+ 0
1569
+ 1
1570
+ 0
1571
+ 1
1572
+ 0
1573
+ 0
1574
+ 0
1575
+ 0
1576
+ 0
1577
+ 0
1578
+ 1
1579
+ 0
1580
+ 0
1581
+ 0
1582
+ 0
1583
+ 0
1584
+ 1
1585
+ 0
1586
+ 0
1587
+ 1
1588
+ 1
1589
+ 0
1590
+ 0
1591
+ 1
1592
+ 1
1593
+ 0
1594
+ 0
1595
+ 0
1596
+ 0
1597
+ 0
1598
+ 1
1599
+ 1
1600
+ 0
1601
+ 1
1602
+ 0
1603
+ 1
1604
+ 0
1605
+ 1
1606
+ 1
1607
+ 0
1608
+ 1
1609
+ 1
1610
+ 0
1611
+ 0
1612
+ 1
1613
+ 1
1614
+ 0
1615
+ 0
1616
+ 0
1617
+ 0
1618
+ 1
1619
+ 1
1620
+ 0
1621
+ 0
1622
+ 0
1623
+ 1
1624
+ 1
1625
+ 0
1626
+ 0
1627
+ 1
1628
+ 1
1629
+ 0
1630
+ 1
1631
+ 1
1632
+ 0
1633
+ 0
1634
+ 1
1635
+ 0
1636
+ 0
1637
+ 0
1638
+ 0
1639
+ 0
1640
+ 1
1641
+ 1
1642
+ 1
1643
+ 1
1644
+ 1
1645
+ 0
1646
+ 1
1647
+ 1
1648
+ 0
1649
+ 1
1650
+ 1
1651
+ 1
1652
+ 1
1653
+ 0
1654
+ 1
1655
+ 0
1656
+ 0
1657
+ 1
1658
+ 1
1659
+ 1
1660
+ 1
1661
+ 1
1662
+ 1
1663
+ 1
1664
+ 0
1665
+ 0
1666
+ 0
1667
+ 0
1668
+ 0
1669
+ 1
1670
+ 0
1671
+ 1
1672
+ 0
1673
+ 1
1674
+ 1
1675
+ 1
1676
+ 1
1677
+ 0
1678
+ 0
1679
+ 1
1680
+ 1
1681
+ 0
1682
+ 0
1683
+ 1
1684
+ 0
1685
+ 0
1686
+ 1
1687
+ 0
1688
+ 1
1689
+ 1
1690
+ 0
1691
+ 0
1692
+ 1
1693
+ 1
1694
+ 0
1695
+ 0
1696
+ 0
1697
+ 1
1698
+ 1
1699
+ 1
1700
+ 1
1701
+ 1
1702
+ 0
1703
+ 0
1704
+ 0
1705
+ 1
1706
+ 1
1707
+ 0
1708
+ 0
1709
+ 1
1710
+ 1
1711
+ 0
1712
+ 1
1713
+ 1
1714
+ 1
1715
+ 0
1716
+ 1
1717
+ 0
1718
+ 1
1719
+ 0
1720
+ 0
1721
+ 0
1722
+ 0
1723
+ 1
1724
+ 0
1725
+ 1
1726
+ 0
1727
+ 0
1728
+ 1
1729
+ 1
1730
+ 1
1731
+ 0
1732
+ 1
1733
+ 1
1734
+ 1
1735
+ 1
1736
+ 0
1737
+ 1
1738
+ 0
1739
+ 1
1740
+ 1
1741
+ 1
1742
+ 0
1743
+ 0
1744
+ 0
1745
+ 0
1746
+ 1
1747
+ 1
1748
+ 0
1749
+ 0
1750
+ 0
1751
+ 0
1752
+ 0
1753
+ 1
1754
+ 1
1755
+ 0
1756
+ 0
1757
+ 1
1758
+ 1
1759
+ 0
1760
+ 0
1761
+ 1
1762
+ 1
1763
+ 0
1764
+ 0
1765
+ 1
1766
+ 0
1767
+ 0
1768
+ 0
1769
+ 1
1770
+ 1
1771
+ 1
1772
+ 1
1773
+ 0
1774
+ 1
1775
+ 0
1776
+ 1
1777
+ 1
1778
+ 0
1779
+ 1
1780
+ 0
1781
+ 1
1782
+ 1
1783
+ 0
1784
+ 1
1785
+ 0
1786
+ 1
1787
+ 1
1788
+ 0
1789
+ 0
1790
+ 1
1791
+ 1
1792
+ 0
1793
+ 0
1794
+ 0
1795
+ 1
1796
+ 0
1797
+ 0
1798
+ 1
1799
+ 0
1800
+ 1
1801
+ 1
1802
+ 1
1803
+ 0
1804
+ 1
1805
+ 0
1806
+ 0
1807
+ 1
1808
+ 1
1809
+ 0
1810
+ 0
1811
+ 0
1812
+ 1
1813
+ 1
1814
+ 0
1815
+ 1
1816
+ 0
1817
+ 0
1818
+ 0
1819
+ 0
1820
+ 0
1821
+ 1
1822
+ 0
1823
+ 1
1824
+ 1
1825
+ 0
1826
+ 0
1827
+ 0
1828
+ 1
1829
+ 0
1830
+ 1
1831
+ 1
1832
+ 0
1833
+ 1
1834
+ 1
1835
+ 1
1836
+ 0
1837
+ 0
1838
+ 1
1839
+ 1
1840
+ 0
1841
+ 1
1842
+ 1
1843
+ 0
1844
+ 1
1845
+ 1
1846
+ 1
1847
+ 1
1848
+ 1
1849
+ 1
1850
+ 1
1851
+ 0
1852
+ 1
1853
+ 1
1854
+ 0
1855
+ 0
1856
+ 0
1857
+ 1
1858
+ 1
1859
+ 1
1860
+ 1
1861
+ 1
1862
+ 1
1863
+ 1
1864
+ 0
1865
+ 1
1866
+ 1
1867
+ 0
1868
+ 1
1869
+ 1
1870
+ 1
1871
+ 0
1872
+ 1
1873
+ 1
1874
+ 0
1875
+ 0
1876
+ 1
1877
+ 1
1878
+ 1
1879
+ 1
1880
+ 1
1881
+ 1
1882
+ 0
1883
+ 1
1884
+ 0
1885
+ 1
1886
+ 0
1887
+ 0
1888
+ 1
1889
+ 0
1890
+ 1
1891
+ 0
1892
+ 1
1893
+ 0
1894
+ 1
1895
+ 0
1896
+ 1
1897
+ 1
1898
+ 0
1899
+ 0
1900
+ 0
1901
+ 1
1902
+ 1
1903
+ 0
1904
+ 0
1905
+ 0
1906
+ 1
1907
+ 0
1908
+ 0
1909
+ 0
1910
+ 1
1911
+ 1
1912
+ 0
1913
+ 0
1914
+ 0
1915
+ 1
1916
+ 1
1917
+ 1
1918
+ 1
1919
+ 0
1920
+ 1
1921
+ 1
1922
+ 1
1923
+ 1
1924
+ 0
1925
+ 1
1926
+ 0
1927
+ 1
1928
+ 1
1929
+ 0
1930
+ 0
1931
+ 0
1932
+ 0
1933
+ 1
1934
+ 0
1935
+ 1
1936
+ 1
1937
+ 1
1938
+ 0
1939
+ 1
1940
+ 1
1941
+ 1
1942
+ 0
1943
+ 1
1944
+ 0
1945
+ 0
1946
+ 1
1947
+ 1
1948
+ 1
1949
+ 1
1950
+ 1
1951
+ 0
1952
+ 0
1953
+ 1
1954
+ 1
1955
+ 1
1956
+ 0
1957
+ 0
1958
+ 1
1959
+ 1
1960
+ 0
1961
+ 0
1962
+ 1
1963
+ 1
1964
+ 0
1965
+ 0
1966
+ 0
1967
+ 0
1968
+ 1
1969
+ 0
1970
+ 0
1971
+ 1
1972
+ 1
1973
+ 0
1974
+ 1
1975
+ 1
1976
+ 0
1977
+ 1
1978
+ 0
1979
+ 0
1980
+ 1
1981
+ 0
1982
+ 0
1983
+ 1
1984
+ 0
1985
+ 0
1986
+ 1
1987
+ 0
1988
+ 1
1989
+ 0
1990
+ 1
1991
+ 0
1992
+ 1
1993
+ 0
1994
+ 1
1995
+ 0
1996
+ 0
1997
+ 1
1998
+ 1
1999
+ 0
2000
+ 1
2001
+ 0
2002
+ 0
2003
+ 1
2004
+ 1
2005
+ 1
2006
+ 0
2007
+ 1
2008
+ 1
2009
+ 1
2010
+ 0
2011
+ 1
2012
+ 1
2013
+ 0
2014
+ 1
2015
+ 1
2016
+ 1
2017
+ 0
2018
+ 0
2019
+ 0
2020
+ 0
2021
+ 0
2022
+ 0
2023
+ 1
2024
+ 0
2025
+ 0
2026
+ 1
2027
+ 0
2028
+ 1
2029
+ 1
2030
+ 1
2031
+ 0
2032
+ 1
2033
+ 0
2034
+ 0
2035
+ 0
2036
+ 0
2037
+ 1
2038
+ 1
2039
+ 0
2040
+ 1
2041
+ 1
2042
+ 1
2043
+ 0
2044
+ 1
2045
+ 0
2046
+ 1
2047
+ 0
2048
+ 1
2049
+ 0
2050
+ 1
2051
+ 0
2052
+ 1
2053
+ 0
2054
+ 1
2055
+ 0
2056
+ 1
2057
+ 1
2058
+ 0
2059
+ 1
2060
+ 0
2061
+ 0
2062
+ 1
2063
+ 1
2064
+ 1
2065
+ 1
2066
+ 0
2067
+ 1
2068
+ 1
2069
+ 0
2070
+ 1
2071
+ 1
2072
+ 0
2073
+ 0
2074
+ 1
2075
+ 1
2076
+ 0
2077
+ 1
2078
+ 0
2079
+ 1
2080
+ 1
2081
+ 0
2082
+ 0
2083
+ 1
2084
+ 1
2085
+ 0
2086
+ 0
2087
+ 0
2088
+ 0
2089
+ 1
2090
+ 1
2091
+ 0
2092
+ 1
2093
+ 1
2094
+ 0
2095
+ 1
2096
+ 0
2097
+ 0
2098
+ 1
2099
+ 0
2100
+ 1
2101
+ 1
2102
+ 0
2103
+ 0
2104
+ 1
2105
+ 1
2106
+ 0
2107
+ 1
2108
+ 1
2109
+ 0
2110
+ 0
2111
+ 1
2112
+ 0
2113
+ 1
2114
+ 1
2115
+ 0
2116
+ 0
2117
+ 1
2118
+ 0
2119
+ 0
2120
+ 0
2121
+ 1
2122
+ 1
2123
+ 0
2124
+ 1
2125
+ 1
2126
+ 1
2127
+ 1
2128
+ 1
2129
+ 1
2130
+ 1
2131
+ 1
2132
+ 1
2133
+ 1
2134
+ 1
2135
+ 1
2136
+ 0
2137
+ 0
2138
+ 1
2139
+ 1
2140
+ 0
2141
+ 0
2142
+ 0
2143
+ 1
2144
+ 0
2145
+ 1
2146
+ 1
2147
+ 0
2148
+ 1
2149
+ 1
2150
+ 0
2151
+ 1
2152
+ 1
2153
+ 1
2154
+ 0
2155
+ 1
2156
+ 1
2157
+ 0
2158
+ 0
2159
+ 0
2160
+ 0
2161
+ 0
2162
+ 0
2163
+ 1
2164
+ 0
2165
+ 0
2166
+ 1
2167
+ 1
2168
+ 1
2169
+ 0
2170
+ 1
2171
+ 0
2172
+ 1
2173
+ 1
2174
+ 0
2175
+ 0
2176
+ 0
2177
+ 0
2178
+ 1
2179
+ 1
2180
+ 1
2181
+ 0
2182
+ 1
2183
+ 1
2184
+ 1
2185
+ 1
2186
+ 0
2187
+ 1
2188
+ 1
2189
+ 0
2190
+ 1
2191
+ 1
2192
+ 1
2193
+ 0
2194
+ 1
2195
+ 0
2196
+ 0
2197
+ 1
2198
+ 1
2199
+ 1
2200
+ 1
2201
+ 0
2202
+ 1
2203
+ 1
2204
+ 1
2205
+ 1
2206
+ 1
2207
+ 0
2208
+ 0
2209
+ 0
2210
+ 1
2211
+ 0
2212
+ 1
2213
+ 1
2214
+ 0
2215
+ 0
2216
+ 0
2217
+ 1
2218
+ 0
2219
+ 1
2220
+ 0
2221
+ 0
2222
+ 1
2223
+ 0
2224
+ 0
2225
+ 1
2226
+ 1
2227
+ 1
2228
+ 1
2229
+ 0
2230
+ 0
2231
+ 1
2232
+ 1
2233
+ 1
2234
+ 0
2235
+ 0
2236
+ 1
2237
+ 1
2238
+ 1
2239
+ 1
2240
+ 0
2241
+ 1
2242
+ 1
2243
+ 1
2244
+ 1
2245
+ 1
2246
+ 0
2247
+ 1
2248
+ 1
2249
+ 1
2250
+ 1
2251
+ 0
2252
+ 1
2253
+ 1
2254
+ 0
2255
+ 0
2256
+ 0
2257
+ 0
2258
+ 1
2259
+ 1
2260
+ 0
2261
+ 1
2262
+ 0
2263
+ 0
2264
+ 0
2265
+ 1
2266
+ 1
2267
+ 0
2268
+ 1
2269
+ 0
2270
+ 1
2271
+ 0
2272
+ 0
2273
+ 0
2274
+ 1
2275
+ 1
2276
+ 0
2277
+ 0
2278
+ 1
2279
+ 1
2280
+ 0
2281
+ 1
2282
+ 1
2283
+ 0
2284
+ 1
2285
+ 0
2286
+ 0
2287
+ 1
2288
+ 0
2289
+ 1
2290
+ 0
2291
+ 0
2292
+ 1
2293
+ 0
2294
+ 0
2295
+ 1
2296
+ 0
2297
+ 0
2298
+ 0
2299
+ 0
2300
+ 1
2301
+ 0
2302
+ 1
2303
+ 1
2304
+ 1
2305
+ 1
2306
+ 0
2307
+ 1
2308
+ 0
2309
+ 1
2310
+ 1
2311
+ 0
2312
+ 0
2313
+ 1
2314
+ 0
2315
+ 0
2316
+ 1
2317
+ 1
2318
+ 1
2319
+ 0
2320
+ 0
2321
+ 0
2322
+ 0
2323
+ 0
2324
+ 0
2325
+ 0
2326
+ 0
2327
+ 1
2328
+ 0
2329
+ 1
2330
+ 1
2331
+ 0
2332
+ 1
2333
+ 0
2334
+ 0
2335
+ 0
2336
+ 1
2337
+ 0
2338
+ 0
2339
+ 1
2340
+ 0
2341
+ 1
2342
+ 1
2343
+ 1
2344
+ 1
2345
+ 1
2346
+ 1
2347
+ 1
2348
+ 0
2349
+ 0
2350
+ 1
2351
+ 1
2352
+ 1
2353
+ 0
2354
+ 0
2355
+ 1
2356
+ 0
2357
+ 0
2358
+ 1
2359
+ 1
2360
+ 1
2361
+ 1
2362
+ 1
2363
+ 1
2364
+ 0
2365
+ 0
2366
+ 1
2367
+ 0
2368
+ 1
2369
+ 0
2370
+ 0
2371
+ 0
2372
+ 0
2373
+ 1
2374
+ 0
2375
+ 1
2376
+ 0
2377
+ 1
2378
+ 0
2379
+ 0
2380
+ 0
2381
+ 0
2382
+ 0
2383
+ 0
2384
+ 0
2385
+ 1
2386
+ 1
2387
+ 1
2388
+ 1
2389
+ 1
2390
+ 0
2391
+ 1
2392
+ 1
2393
+ 0
2394
+ 1
2395
+ 1
2396
+ 0
2397
+ 1
2398
+ 1
2399
+ 1
2400
+ 0
2401
+ 0
2402
+ 1
2403
+ 0
2404
+ 0
2405
+ 0
2406
+ 0
2407
+ 0
2408
+ 1
2409
+ 0
2410
+ 1
2411
+ 0
2412
+ 0
2413
+ 0
2414
+ 0
2415
+ 0
2416
+ 0
2417
+ 1
2418
+ 0
2419
+ 1
2420
+ 0
2421
+ 0
2422
+ 1
2423
+ 0
2424
+ 1
2425
+ 0
2426
+ 0
2427
+ 0
2428
+ 0
2429
+ 0
2430
+ 0
2431
+ 0
2432
+ 1
2433
+ 0
2434
+ 0
2435
+ 0
2436
+ 1
2437
+ 0
2438
+ 0
2439
+ 1
2440
+ 1
2441
+ 1
2442
+ 0
2443
+ 1
2444
+ 1
2445
+ 1
2446
+ 1
2447
+ 1
2448
+ 1
2449
+ 1
2450
+ 0
2451
+ 0
2452
+ 0
2453
+ 1
2454
+ 0
2455
+ 0
2456
+ 1
2457
+ 0
2458
+ 1
2459
+ 0
2460
+ 0
2461
+ 0
2462
+ 1
2463
+ 1
2464
+ 0
2465
+ 0
2466
+ 1
2467
+ 1
2468
+ 1
2469
+ 0
2470
+ 0
2471
+ 0
2472
+ 0
2473
+ 1
2474
+ 0
2475
+ 0
2476
+ 1
2477
+ 1
2478
+ 0
2479
+ 0
2480
+ 0
2481
+ 0
2482
+ 0
2483
+ 0
2484
+ 1
2485
+ 1
2486
+ 0
2487
+ 1
2488
+ 0
2489
+ 1
2490
+ 1
2491
+ 0
2492
+ 0
2493
+ 1
2494
+ 1
2495
+ 1
2496
+ 0
2497
+ 1
2498
+ 1
2499
+ 1
2500
+ 1
2501
+ 1
2502
+ 1
2503
+ 0
2504
+ 1
2505
+ 1
2506
+ 1
2507
+ 1
2508
+ 1
2509
+ 1
2510
+ 0
2511
+ 1
2512
+ 1
2513
+ 0
2514
+ 0
2515
+ 0
2516
+ 1
2517
+ 0
2518
+ 0
2519
+ 1
2520
+ 0
2521
+ 1
2522
+ 0
2523
+ 1
2524
+ 1
2525
+ 1
2526
+ 0
2527
+ 0
2528
+ 1
2529
+ 0
2530
+ 1
2531
+ 1
2532
+ 1
2533
+ 0
2534
+ 1
2535
+ 0
2536
+ 0
2537
+ 1
2538
+ 1
2539
+ 0
2540
+ 0
2541
+ 1
2542
+ 1
2543
+ 1
2544
+ 1
2545
+ 1
2546
+ 1
2547
+ 0
2548
+ 1
2549
+ 1
2550
+ 1
2551
+ 1
2552
+ 1
2553
+ 0
2554
+ 1
2555
+ 1
2556
+ 0
2557
+ 1
2558
+ 0
2559
+ 1
2560
+ 1
2561
+ 0
2562
+ 0
2563
+ 1
2564
+ 1
2565
+ 0
2566
+ 1
2567
+ 1
2568
+ 0
2569
+ 0
2570
+ 1
2571
+ 0
2572
+ 1
2573
+ 0
2574
+ 0
2575
+ 1
2576
+ 0
2577
+ 0
2578
+ 1
2579
+ 0
2580
+ 1
2581
+ 0
2582
+ 0
2583
+ 1
2584
+ 1
2585
+ 0
2586
+ 0
2587
+ 0
2588
+ 0
2589
+ 0
2590
+ 1
2591
+ 0
2592
+ 0
2593
+ 0
2594
+ 1
2595
+ 0
2596
+ 0
2597
+ 1
2598
+ 1
2599
+ 0
2600
+ 1
2601
+ 0
2602
+ 0
2603
+ 1
2604
+ 1
2605
+ 1
2606
+ 1
2607
+ 1
2608
+ 1
2609
+ 1
2610
+ 1
2611
+ 0
2612
+ 0
2613
+ 0
2614
+ 1
2615
+ 0
2616
+ 0
2617
+ 0
2618
+ 1
2619
+ 0
2620
+ 1
2621
+ 1
2622
+ 1
2623
+ 0
2624
+ 0
2625
+ 0
2626
+ 0
2627
+ 0
2628
+ 0
2629
+ 1
2630
+ 1
2631
+ 0
2632
+ 0
2633
+ 1
2634
+ 0
2635
+ 0
2636
+ 0
2637
+ 0
2638
+ 0
2639
+ 0
2640
+ 1
2641
+ 0
2642
+ 0
2643
+ 0
2644
+ 1
2645
+ 0
2646
+ 1
2647
+ 0
2648
+ 1
2649
+ 1
2650
+ 1
2651
+ 1
2652
+ 0
2653
+ 1
2654
+ 0
2655
+ 1
2656
+ 0
2657
+ 0
2658
+ 1
2659
+ 1
2660
+ 0
2661
+ 0
2662
+ 0
2663
+ 0
2664
+ 0
2665
+ 1
2666
+ 1
2667
+ 1
2668
+ 0
2669
+ 0
2670
+ 1
2671
+ 1
2672
+ 1
2673
+ 0
2674
+ 1
2675
+ 0
2676
+ 1
2677
+ 1
2678
+ 0
2679
+ 1
2680
+ 0
2681
+ 0
2682
+ 1
2683
+ 0
2684
+ 0
2685
+ 1
2686
+ 1
2687
+ 1
2688
+ 1
2689
+ 0
2690
+ 1
2691
+ 1
2692
+ 1
2693
+ 1
2694
+ 0
2695
+ 0
2696
+ 1
2697
+ 0
2698
+ 0
2699
+ 0
2700
+ 0
2701
+ 1
2702
+ 0
2703
+ 1
2704
+ 1
2705
+ 0
2706
+ 0
2707
+ 0
2708
+ 0
2709
+ 1
2710
+ 1
2711
+ 1
2712
+ 1
2713
+ 0
2714
+ 1
2715
+ 1
2716
+ 1
2717
+ 0
2718
+ 1
2719
+ 0
2720
+ 1
2721
+ 0
2722
+ 0
2723
+ 0
2724
+ 1
2725
+ 0
2726
+ 0
2727
+ 1
2728
+ 1
2729
+ 0
2730
+ 1
2731
+ 0
2732
+ 1
2733
+ 1
2734
+ 1
2735
+ 1
2736
+ 1
2737
+ 1
2738
+ 0
2739
+ 0
2740
+ 0
2741
+ 0
2742
+ 0
2743
+ 0
2744
+ 0
2745
+ 1
2746
+ 0
2747
+ 0
2748
+ 1
2749
+ 0
2750
+ 1
2751
+ 0
2752
+ 0
2753
+ 1
2754
+ 1
2755
+ 1
2756
+ 0
2757
+ 1
2758
+ 1
2759
+ 1
2760
+ 0
2761
+ 0
2762
+ 0
2763
+ 0
2764
+ 0
2765
+ 0
2766
+ 0
2767
+ 0
2768
+ 1
2769
+ 0
2770
+ 1
2771
+ 0
2772
+ 1
2773
+ 1
2774
+ 0
2775
+ 0
2776
+ 0
2777
+ 0
2778
+ 0
2779
+ 0
2780
+ 0
2781
+ 0
2782
+ 0
2783
+ 0
2784
+ 0
2785
+ 0
2786
+ 0
2787
+ 0
2788
+ 0
2789
+ 0
2790
+ 0