├── .github └── FUNDING.yml ├── LICENSE ├── README.md ├── input ├── chameleon_edges.csv ├── chameleon_target.csv ├── cora_edges.csv └── cora_target.csv ├── output ├── chameleon_embedding.csv ├── chameleon_personas.json ├── cora_embedding.csv └── cora_personas.json ├── splitter.gif ├── splitter.jpg ├── src ├── ego_splitting.py ├── main.py ├── param_parser.py ├── splitter.py ├── utils.py └── walkers.py └── www2019splitter.pdf /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [benedekrozemberczki] 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Splitter [![Arxiv](https://img.shields.io/badge/ArXiv-1905.02138-orange.svg)](https://arxiv.org/pdf/1905.02138.pdf) [![repo size](https://img.shields.io/github/repo-size/benedekrozemberczki/Splitter.svg)](https://github.com/benedekrozemberczki/Splitter/archive/master.zip) [![benedekrozemberczki](https://img.shields.io/twitter/follow/benrozemberczki?style=social&logo=twitter)](https://twitter.com/intent/follow?screen_name=benrozemberczki) 2 | ====================== 3 | A **PyTorch** implementation of **Splitter: Learning Node Representations that Capture Multiple Social Contexts (WWW 2019).** 4 |

5 | 6 |

7 | 8 | ### Abstract 9 |

10 | Recent interest in graph embedding methods has focused on learning a single representation for each node in the graph. But can nodes really be best described by a single vector representation? In this work, we propose a method for learning multiple representations of the nodes in a graph (e.g., the users of a social network). Based on a principled decomposition of the ego-network, each representation encodes the role of the node in a different local community in which the nodes participate. These representations allow for improved reconstruction of the nuanced relationships that occur in the graph a phenomenon that we illustrate through state-of-the-art results on link prediction tasks on a variety of graphs, reducing the error by up to 90%. In addition, we show that these embeddings allow for effective visual analysis of the learned community structure.

11 | 12 | This repository provides a PyTorch implementation of Splitter as described in the paper: 13 | 14 | > Splitter: Learning Node Representations that Capture Multiple Social Contexts. 15 | > Alessandro Epasto and Bryan Perozzi. 16 | > WWW, 2019. 17 | > [[Paper]](http://epasto.org/papers/www2019splitter.pdf) 18 | 19 | 20 | The original Tensorflow implementation is available [[here]](https://github.com/google-research/google-research/tree/master/graph_embedding/persona). 21 | 22 | ### Requirements 23 | The codebase is implemented in Python 3.5.2. package versions used for development are just below. 24 | ``` 25 | networkx 1.11 26 | tqdm 4.28.1 27 | numpy 1.15.4 28 | pandas 0.23.4 29 | texttable 1.5.0 30 | scipy 1.1.0 31 | argparse 1.1.0 32 | torch 1.1.0 33 | gensim 3.6.0 34 | ``` 35 | ### Datasets 36 |

37 | The code takes the **edge list** of the graph in a csv file. Every row indicates an edge between two nodes separated by a comma. The first row is a header. Nodes should be indexed starting with 0. A sample graph for `Cora` is included in the `input/` directory.

38 | 39 | ### Outputs 40 |

41 | The embeddings are saved in the `input/` directory. Each embedding has a header and a column with the node IDs. Finally, the node embedding is sorted by the node ID column.

42 | 43 | ### Options 44 |

45 | The training of a Splitter embedding is handled by the `src/main.py` script which provides the following command line arguments.

46 | 47 | #### Input and output options 48 | ``` 49 | --edge-path STR Edge list csv. Default is `input/chameleon_edges.csv`. 50 | --embedding-output-path STR Embedding output csv. Default is `output/chameleon_embedding.csv`. 51 | --persona-output-path STR Persona mapping JSON. Default is `output/chameleon_personas.json`. 52 | ``` 53 | #### Model options 54 | ``` 55 | --seed INT Random seed. Default is 42. 56 | --number of walks INT Number of random walks per node. Default is 10. 57 | --window-size INT Skip-gram window size. Default is 5. 58 | --negative-samples INT Number of negative samples. Default is 5. 59 | --walk-length INT Random walk length. Default is 40. 60 | --lambd FLOAT Regularization parameter. Default is 0.1 61 | --dimensions INT Number of embedding dimensions. Default is 128. 62 | --workers INT Number of cores for pre-training. Default is 4. 63 | --learning-rate FLOAT SGD learning rate. Default is 0.025 64 | ``` 65 | 66 | 67 | -------------------------------------------------------------------------------- 68 | 69 | 70 | ### Examples 71 |

72 | The following commands learn an embedding and save it with the persona map. Training a model on the default dataset.

73 | 74 | ``` 75 | python src/main.py 76 | ``` 77 |

78 | 79 |

80 | 81 | Training a Splitter model with 32 dimensions. 82 | ``` 83 | python src/main.py --dimensions 32 84 | ``` 85 | Increasing the number of walks and the walk length. 86 | ``` 87 | python src/main.py --number-of-walks 20 --walk-length 80 88 | ``` 89 | 90 | -------------------------------------------------------------------------------- 91 | 92 | **License** 93 | 94 | - [GNU License](https://github.com/benedekrozemberczki/Splitter/blob/master/LICENSE) 95 | 96 | -------------------------------------------------------------------------------- 97 | -------------------------------------------------------------------------------- /input/chameleon_target.csv: -------------------------------------------------------------------------------- 1 | id,target 2 | 0,171 3 | 1,8089 4 | 2,8568 5 | 3,47178 6 | 4,3634 7 | 5,215 8 | 6,1054 9 | 7,1106 10 | 8,109 11 | 9,3863 12 | 10,590 13 | 11,175 14 | 12,1399 15 | 13,39 16 | 14,444 17 | 15,64492 18 | 16,62284 19 | 17,154527 20 | 18,673 21 | 19,33 22 | 20,14480 23 | 21,176 24 | 22,1131 25 | 23,270 26 | 24,439 27 | 25,621 28 | 26,2211 29 | 27,11465 30 | 28,1308 31 | 29,2102 32 | 30,1461 33 | 31,322 34 | 32,1112 35 | 33,1106 36 | 34,14480 37 | 35,749 38 | 36,298200 39 | 37,276 40 | 38,550 41 | 39,13321 42 | 40,6503 43 | 41,121 44 | 42,33 45 | 43,14480 46 | 44,11495 47 | 45,17497 48 | 46,11852 49 | 47,3863 50 | 48,1054 51 | 49,3863 52 | 50,30954 53 | 51,550 54 | 52,6672 55 | 53,2828 56 | 54,6029 57 | 55,992 58 | 56,564 59 | 57,15764 60 | 58,6503 61 | 59,439 62 | 60,5755 63 | 61,33 64 | 62,844 65 | 63,2717 66 | 64,14480 67 | 65,439 68 | 66,54 69 | 67,2712 70 | 68,433 71 | 69,607 72 | 70,165 73 | 71,131 74 | 72,607 75 | 73,5164 76 | 74,14600 77 | 75,121 78 | 76,60667 79 | 77,2784 80 | 78,2756 81 | 79,121 82 | 80,31446 83 | 81,15196 84 | 82,760 85 | 83,321881 86 | 84,3651 87 | 85,2306 88 | 86,172 89 | 87,1668 90 | 88,5855 91 | 89,2201 92 | 90,50291 93 | 91,23383 94 | 92,882 95 | 93,1779 96 | 94,749 97 | 95,435 98 | 96,445 99 | 97,6700 100 | 98,607 101 | 99,3800 102 | 100,69062 103 | 101,121 104 | 102,1072 105 | 103,14480 106 | 104,88 107 | 105,329354 108 | 106,2237 109 | 107,5328 110 | 108,5749 111 | 109,464 112 | 110,145903 113 | 111,1199 114 | 112,607 115 | 113,238 116 | 114,44 117 | 115,6080 118 | 116,439 119 | 117,31 120 | 118,8568 121 | 119,62508 122 | 120,5307 123 | 121,296235 124 | 122,343 125 | 123,2754 126 | 124,31525 127 | 125,206753 128 | 126,1469 129 | 127,4453 130 | 128,59 131 | 129,239 132 | 130,778 133 | 131,30327 134 | 132,14480 135 | 133,433 136 | 134,121 137 | 135,3835 138 | 136,48979 139 | 137,904 140 | 138,243701 141 | 139,14480 142 | 140,4132 143 | 141,21845 144 | 142,3651 145 | 143,778 146 | 144,439 147 | 145,2716 148 | 146,42374 149 | 147,12481 150 | 148,16763 151 | 149,78503 152 | 150,772 153 | 151,2003 154 | 152,1712 155 | 153,1087 156 | 154,839 157 | 155,14480 158 | 156,14480 159 | 157,249 160 | 158,1461 161 | 159,992 162 | 160,4524 163 | 161,1430 164 | 162,4883 165 | 163,14480 166 | 164,218 167 | 165,69062 168 | 166,14480 169 | 167,4360 170 | 168,9009 171 | 169,11768 172 | 170,67 173 | 171,10051 174 | 172,3835 175 | 173,15196 176 | 174,1814 177 | 175,42374 178 | 176,2003 179 | 177,607 180 | 178,618 181 | 179,1399 182 | 180,772 183 | 181,11718 184 | 182,2651 185 | 183,30327 186 | 184,42 187 | 185,992 188 | 186,275 189 | 187,1374 190 | 188,185158 191 | 189,511 192 | 190,51748 193 | 191,385 194 | 192,33 195 | 193,28960 196 | 194,65 197 | 195,356 198 | 196,1127 199 | 197,4146 200 | 198,236 201 | 199,439 202 | 200,14480 203 | 201,14480 204 | 202,14480 205 | 203,1780 206 | 204,413 207 | 205,2741 208 | 206,439 209 | 207,39 210 | 208,167955 211 | 209,4220 212 | 210,13302 213 | 211,10672 214 | 212,719 215 | 213,439 216 | 214,296235 217 | 215,69 218 | 216,14480 219 | 217,11718 220 | 218,60667 221 | 219,22226 222 | 220,11382 223 | 221,1199 224 | 222,11495 225 | 223,1299 226 | 224,672 227 | 225,7599 228 | 226,291 229 | 227,7812 230 | 228,16086 231 | 229,2952 232 | 230,8568 233 | 231,439 234 | 232,20868 235 | 233,809 236 | 234,47178 237 | 235,322 238 | 236,10544 239 | 237,517 240 | 238,119647 241 | 239,95909 242 | 240,20868 243 | 241,719 244 | 242,11495 245 | 243,113157 246 | 244,12481 247 | 245,33 248 | 246,297 249 | 247,12486 250 | 248,15269 251 | 249,403 252 | 250,809 253 | 251,5643 254 | 252,618 255 | 253,2571 256 | 254,1267 257 | 255,35821 258 | 256,33 259 | 257,2003 260 | 258,30327 261 | 259,14480 262 | 260,6029 263 | 261,1054 264 | 262,961 265 | 263,29913 266 | 264,352 267 | 265,3521 268 | 266,97499 269 | 267,39 270 | 268,37706 271 | 269,2003 272 | 270,2349 273 | 271,433 274 | 272,36 275 | 273,155 276 | 274,1054 277 | 275,59 278 | 276,312 279 | 277,50666 280 | 278,11465 281 | 279,22971 282 | 280,50666 283 | 281,31446 284 | 282,69 285 | 283,14480 286 | 284,97499 287 | 285,146 288 | 286,98265 289 | 287,46 290 | 288,58 291 | 289,132 292 | 290,11469 293 | 291,607 294 | 292,607 295 | 293,42374 296 | 294,433 297 | 295,154527 298 | 296,302 299 | 297,1199 300 | 298,15196 301 | 299,445 302 | 300,618 303 | 301,62508 304 | 302,2046 305 | 303,14480 306 | 304,439 307 | 305,11718 308 | 306,31525 309 | 307,11718 310 | 308,920 311 | 309,5328 312 | 310,7847 313 | 311,618 314 | 312,16125 315 | 313,1054 316 | 314,1780 317 | 315,1430 318 | 316,11469 319 | 317,5397 320 | 318,253 321 | 319,2828 322 | 320,951 323 | 321,6685 324 | 322,291 325 | 323,6503 326 | 324,322 327 | 325,70 328 | 326,11718 329 | 327,139 330 | 328,2340 331 | 329,30327 332 | 330,5818 333 | 331,206753 334 | 332,11718 335 | 333,2555 336 | 334,121 337 | 335,721 338 | 336,2571 339 | 337,995 340 | 338,448 341 | 339,303 342 | 340,47293 343 | 341,607 344 | 342,121 345 | 343,4514 346 | 344,592 347 | 345,453 348 | 346,178682 349 | 347,618 350 | 348,283 351 | 349,7864 352 | 350,176 353 | 351,423 354 | 352,373 355 | 353,14329 356 | 354,9122 357 | 355,2251 358 | 356,834 359 | 357,13302 360 | 358,51748 361 | 359,59 362 | 360,1299 363 | 361,20868 364 | 362,10672 365 | 363,265 366 | 364,140 367 | 365,992 368 | 366,1091 369 | 367,426 370 | 368,2848 371 | 369,159 372 | 370,148 373 | 371,356 374 | 372,602 375 | 373,970 376 | 374,1377 377 | 375,775 378 | 376,992 379 | 377,2828 380 | 378,22 381 | 379,340 382 | 380,992 383 | 381,607 384 | 382,1537 385 | 383,56270 386 | 384,607 387 | 385,6520 388 | 386,296235 389 | 387,628 390 | 388,40350 391 | 389,2146 392 | 390,11469 393 | 391,474 394 | 392,6029 395 | 393,11353 396 | 394,16288 397 | 395,11465 398 | 396,882 399 | 397,22971 400 | 398,14480 401 | 399,778 402 | 400,453 403 | 401,15251 404 | 402,995 405 | 403,23383 406 | 404,11476 407 | 405,88 408 | 406,719 409 | 407,39 410 | 408,7714 411 | 409,33 412 | 410,439 413 | 411,329354 414 | 412,1384 415 | 413,1551 416 | 414,180 417 | 415,37311 418 | 416,80 419 | 417,1054 420 | 418,439 421 | 419,1069 422 | 420,8695 423 | 421,120484 424 | 422,866 425 | 423,9139 426 | 424,747 427 | 425,12481 428 | 426,464 429 | 427,256558 430 | 428,180 431 | 429,242 432 | 430,2426 433 | 431,377 434 | 432,44 435 | 433,29694 436 | 434,775 437 | 435,4294 438 | 436,1712 439 | 437,2551 440 | 438,2003 441 | 439,809 442 | 440,618 443 | 441,11495 444 | 442,4407 445 | 443,291 446 | 444,336 447 | 445,33 448 | 446,4220 449 | 447,329354 450 | 448,15764 451 | 449,49 452 | 450,2426 453 | 451,607 454 | 452,1054 455 | 453,13691 456 | 454,265 457 | 455,207 458 | 456,327 459 | 457,3863 460 | 458,11465 461 | 459,64 462 | 460,184 463 | 461,464 464 | 462,98265 465 | 463,1054 466 | 464,11465 467 | 465,1754 468 | 466,4728 469 | 467,39 470 | 468,1780 471 | 469,34 472 | 470,2330 473 | 471,45734 474 | 472,171 475 | 473,33 476 | 474,133 477 | 475,2712 478 | 476,85 479 | 477,439 480 | 478,168 481 | 479,2886 482 | 480,20656 483 | 481,698 484 | 482,265 485 | 483,80 486 | 484,11495 487 | 485,174 488 | 486,33 489 | 487,9730 490 | 488,811 491 | 489,698 492 | 490,29 493 | 491,298200 494 | 492,453 495 | 493,1054 496 | 494,595 497 | 495,19279 498 | 496,2948 499 | 497,1641 500 | 498,2395 501 | 499,14480 502 | 500,2003 503 | 501,121 504 | 502,14480 505 | 503,747 506 | 504,641 507 | 505,919 508 | 506,78503 509 | 507,16125 510 | 508,607 511 | 509,1082 512 | 510,10051 513 | 511,2709 514 | 512,12767 515 | 513,607 516 | 514,15763 517 | 515,1085 518 | 516,16086 519 | 517,3863 520 | 518,1712 521 | 519,50 522 | 520,1430 523 | 521,1054 524 | 522,369 525 | 523,1054 526 | 524,11718 527 | 525,121 528 | 526,97499 529 | 527,1996 530 | 528,775 531 | 529,8568 532 | 530,439 533 | 531,60667 534 | 532,121 535 | 533,42374 536 | 534,7080 537 | 535,27 538 | 536,1706 539 | 537,249 540 | 538,13922 541 | 539,2340 542 | 540,6269 543 | 541,17497 544 | 542,33 545 | 543,6480 546 | 544,140 547 | 545,14480 548 | 546,48 549 | 547,12486 550 | 548,618 551 | 549,7889 552 | 550,11469 553 | 551,3993 554 | 552,19045 555 | 553,1054 556 | 554,14480 557 | 555,31446 558 | 556,245091 559 | 557,11469 560 | 558,618 561 | 559,34 562 | 560,992 563 | 561,2952 564 | 562,384 565 | 563,1054 566 | 564,2003 567 | 565,4437 568 | 566,14480 569 | 567,8567 570 | 568,17229 571 | 569,113157 572 | 570,33 573 | 571,595 574 | 572,543 575 | 573,1054 576 | 574,7599 577 | 575,154527 578 | 576,5669 579 | 577,2551 580 | 578,20868 581 | 579,78503 582 | 580,274 583 | 581,1494 584 | 582,2678 585 | 583,121 586 | 584,5307 587 | 585,14714 588 | 586,439 589 | 587,749 590 | 588,464 591 | 589,56270 592 | 590,1054 593 | 591,45 594 | 592,4728 595 | 593,206753 596 | 594,14480 597 | 595,399 598 | 596,672 599 | 597,2003 600 | 598,618 601 | 599,121 602 | 600,699 603 | 601,5985 604 | 602,64492 605 | 603,31575 606 | 604,492 607 | 605,13057 608 | 606,2252 609 | 607,464 610 | 608,2237 611 | 609,64492 612 | 610,212549 613 | 611,33 614 | 612,174 615 | 613,172 616 | 614,69 617 | 615,1461 618 | 616,5463 619 | 617,439 620 | 618,721 621 | 619,296235 622 | 620,518 623 | 621,47019 624 | 622,27 625 | 623,524 626 | 624,2606 627 | 625,439 628 | 626,32 629 | 627,121 630 | 628,131 631 | 629,15764 632 | 630,38168 633 | 631,844 634 | 632,48 635 | 633,85 636 | 634,1780 637 | 635,2606 638 | 636,16288 639 | 637,2525 640 | 638,452 641 | 639,2003 642 | 640,550 643 | 641,2716 644 | 642,992 645 | 643,1789 646 | 644,433 647 | 645,31525 648 | 646,15196 649 | 647,5312 650 | 648,11718 651 | 649,152 652 | 650,1751 653 | 651,11465 654 | 652,24234 655 | 653,194 656 | 654,433 657 | 655,2222 658 | 656,7864 659 | 657,37311 660 | 658,267 661 | 659,33 662 | 660,5501 663 | 661,2678 664 | 662,537 665 | 663,11465 666 | 664,6029 667 | 665,3515 668 | 666,13993 669 | 667,121 670 | 668,389 671 | 669,16721 672 | 670,618 673 | 671,7539 674 | 672,618 675 | 673,14480 676 | 674,69 677 | 675,3173 678 | 676,1545 679 | 677,934 680 | 678,37 681 | 679,597 682 | 680,433 683 | 681,14480 684 | 682,14600 685 | 683,26 686 | 684,119 687 | 685,14480 688 | 686,33 689 | 687,42 690 | 688,121 691 | 689,41 692 | 690,11718 693 | 691,11469 694 | 692,15188 695 | 693,369 696 | 694,11495 697 | 695,16125 698 | 696,14480 699 | 697,622 700 | 698,992 701 | 699,234 702 | 700,31 703 | 701,6685 704 | 702,43 705 | 703,9742 706 | 704,1054 707 | 705,992 708 | 706,2237 709 | 707,31575 710 | 708,3993 711 | 709,12162 712 | 710,1198 713 | 711,68 714 | 712,1054 715 | 713,3173 716 | 714,121 717 | 715,14480 718 | 716,97499 719 | 717,203 720 | 718,439 721 | 719,184 722 | 720,28780 723 | 721,329354 724 | 722,607 725 | 723,6503 726 | 724,2551 727 | 725,377 728 | 726,4967 729 | 727,3138 730 | 728,5660 731 | 729,16125 732 | 730,15196 733 | 731,2717 734 | 732,121 735 | 733,98265 736 | 734,249 737 | 735,13321 738 | 736,1603 739 | 737,445 740 | 738,43 741 | 739,595 742 | 740,439 743 | 741,39 744 | 742,3835 745 | 743,433 746 | 744,324 747 | 745,373 748 | 746,2953 749 | 747,20868 750 | 748,8695 751 | 749,15196 752 | 750,1188 753 | 751,241 754 | 752,1054 755 | 753,167955 756 | 754,1603 757 | 755,755 758 | 756,747 759 | 757,809 760 | 758,4640 761 | 759,3223 762 | 760,9139 763 | 761,45645 764 | 762,439 765 | 763,68548 766 | 764,4967 767 | 765,439 768 | 766,2132 769 | 767,2430 770 | 768,133 771 | 769,95909 772 | 770,11465 773 | 771,1096 774 | 772,453 775 | 773,1054 776 | 774,13384 777 | 775,1800 778 | 776,185158 779 | 777,154527 780 | 778,15763 781 | 779,4553 782 | 780,1712 783 | 781,78503 784 | 782,28722 785 | 783,3316 786 | 784,249 787 | 785,607 788 | 786,11795 789 | 787,8568 790 | 788,830 791 | 789,121 792 | 790,33 793 | 791,4028 794 | 792,747 795 | 793,121 796 | 794,12767 797 | 795,8567 798 | 796,20868 799 | 797,1230 800 | 798,2306 801 | 799,3173 802 | 800,97499 803 | 801,1054 804 | 802,14480 805 | 803,747 806 | 804,615 807 | 805,14480 808 | 806,121 809 | 807,7599 810 | 808,167 811 | 809,30 812 | 810,1812 813 | 811,62508 814 | 812,14480 815 | 813,56 816 | 814,6030 817 | 815,377 818 | 816,74 819 | 817,13656 820 | 818,62508 821 | 819,747 822 | 820,2756 823 | 821,383 824 | 822,29053 825 | 823,121 826 | 824,14480 827 | 825,607 828 | 826,51 829 | 827,9484 830 | 828,11718 831 | 829,1029 832 | 830,121 833 | 831,992 834 | 832,4147 835 | 833,340 836 | 834,2368 837 | 835,2848 838 | 836,3210 839 | 837,4294 840 | 838,19069 841 | 839,15764 842 | 840,433 843 | 841,179 844 | 842,242 845 | 843,121 846 | 844,433 847 | 845,6029 848 | 846,464 849 | 847,16125 850 | 848,166 851 | 849,2368 852 | 850,68 853 | 851,33 854 | 852,1508 855 | 853,174 856 | 854,8568 857 | 855,71 858 | 856,1012 859 | 857,154527 860 | 858,1198 861 | 859,607 862 | 860,22898 863 | 861,2051 864 | 862,384 865 | 863,11469 866 | 864,33 867 | 865,31525 868 | 866,37 869 | 867,41746 870 | 868,3863 871 | 869,1812 872 | 870,11768 873 | 871,14480 874 | 872,778 875 | 873,78503 876 | 874,33 877 | 875,439 878 | 876,140 879 | 877,439 880 | 878,22898 881 | 879,2578 882 | 880,1241 883 | 881,3265 884 | 882,295 885 | 883,3142 886 | 884,14480 887 | 885,6775 888 | 886,7821 889 | 887,10768 890 | 888,691 891 | 889,6029 892 | 890,20551 893 | 891,5855 894 | 892,934 895 | 893,3454 896 | 894,811 897 | 895,4718 898 | 896,42813 899 | 897,116 900 | 898,2234 901 | 899,651 902 | 900,21426 903 | 901,91 904 | 902,11465 905 | 903,2395 906 | 904,16288 907 | 905,2551 908 | 906,43 909 | 907,618 910 | 908,190 911 | 909,10051 912 | 910,57 913 | 911,14480 914 | 912,2003 915 | 913,31 916 | 914,3049 917 | 915,13497 918 | 916,3521 919 | 917,15 920 | 918,3173 921 | 919,10672 922 | 920,11469 923 | 921,265 924 | 922,920 925 | 923,354 926 | 924,6108 927 | 925,778 928 | 926,276 929 | 927,296235 930 | 928,25701 931 | 929,11465 932 | 930,4724 933 | 931,2076 934 | 932,10768 935 | 933,1988 936 | 934,172 937 | 935,23509 938 | 936,19279 939 | 937,13922 940 | 938,13321 941 | 939,88 942 | 940,6029 943 | 941,453 944 | 942,15196 945 | 943,34 946 | 944,31390 947 | 945,1528 948 | 946,52727 949 | 947,79 950 | 948,9239 951 | 949,2741 952 | 950,453 953 | 951,3800 954 | 952,28722 955 | 953,439 956 | 954,57 957 | 955,36745 958 | 956,46961 959 | 957,1712 960 | 958,5818 961 | 959,70 962 | 960,12576 963 | 961,439 964 | 962,960 965 | 963,439 966 | 964,132 967 | 965,323 968 | 966,78503 969 | 967,31 970 | 968,14480 971 | 969,778 972 | 970,66 973 | 971,36745 974 | 972,445 975 | 973,45734 976 | 974,79 977 | 975,9516 978 | 976,11469 979 | 977,56 980 | 978,11495 981 | 979,1772 982 | 980,15764 983 | 981,11718 984 | 982,3173 985 | 983,439 986 | 984,13922 987 | 985,7539 988 | 986,2003 989 | 987,1812 990 | 988,1033 991 | 989,453 992 | 990,276 993 | 991,35 994 | 992,13827 995 | 993,13221 996 | 994,146 997 | 995,10051 998 | 996,5818 999 | 997,1054 1000 | 998,2003 1001 | 999,28 1002 | 1000,245091 1003 | 1001,11718 1004 | 1002,11469 1005 | 1003,433 1006 | 1004,1733 1007 | 1005,9164 1008 | 1006,1054 1009 | 1007,16125 1010 | 1008,39 1011 | 1009,1461 1012 | 1010,4718 1013 | 1011,5669 1014 | 1012,283 1015 | 1013,148 1016 | 1014,585 1017 | 1015,121 1018 | 1016,6994 1019 | 1017,13691 1020 | 1018,9122 1021 | 1019,2237 1022 | 1020,1659 1023 | 1021,82 1024 | 1022,14480 1025 | 1023,835 1026 | 1024,98265 1027 | 1025,6029 1028 | 1026,121 1029 | 1027,8535 1030 | 1028,1054 1031 | 1029,8568 1032 | 1030,2678 1033 | 1031,85983 1034 | 1032,42 1035 | 1033,4104 1036 | 1034,4360 1037 | 1035,15078 1038 | 1036,33 1039 | 1037,9742 1040 | 1038,69062 1041 | 1039,4544 1042 | 1040,10672 1043 | 1041,2003 1044 | 1042,1054 1045 | 1043,775 1046 | 1044,38 1047 | 1045,1378 1048 | 1046,38168 1049 | 1047,69062 1050 | 1048,14480 1051 | 1049,7080 1052 | 1050,121 1053 | 1051,33 1054 | 1052,1641 1055 | 1053,22971 1056 | 1054,444 1057 | 1055,992 1058 | 1056,11768 1059 | 1057,439 1060 | 1058,607 1061 | 1059,66 1062 | 1060,3173 1063 | 1061,231 1064 | 1062,72 1065 | 1063,164 1066 | 1064,22971 1067 | 1065,6029 1068 | 1066,2918 1069 | 1067,69062 1070 | 1068,579 1071 | 1069,33 1072 | 1070,1198 1073 | 1071,69062 1074 | 1072,485 1075 | 1073,4853 1076 | 1074,509 1077 | 1075,139 1078 | 1076,14480 1079 | 1077,56 1080 | 1078,17229 1081 | 1079,6029 1082 | 1080,6029 1083 | 1081,215 1084 | 1082,14480 1085 | 1083,6685 1086 | 1084,18766 1087 | 1085,1538 1088 | 1086,29109 1089 | 1087,3521 1090 | 1088,121 1091 | 1089,9122 1092 | 1090,3838 1093 | 1091,52727 1094 | 1092,321881 1095 | 1093,439 1096 | 1094,10199 1097 | 1095,904 1098 | 1096,56 1099 | 1097,30327 1100 | 1098,446 1101 | 1099,4731 1102 | 1100,1054 1103 | 1101,464 1104 | 1102,995 1105 | 1103,641 1106 | 1104,651 1107 | 1105,336 1108 | 1106,9312 1109 | 1107,11718 1110 | 1108,607 1111 | 1109,1641 1112 | 1110,121 1113 | 1111,4015 1114 | 1112,385 1115 | 1113,2513 1116 | 1114,18488 1117 | 1115,48 1118 | 1116,65323 1119 | 1117,6425 1120 | 1118,4350 1121 | 1119,14480 1122 | 1120,12486 1123 | 1121,276 1124 | 1122,5146 1125 | 1123,249 1126 | 1124,5451 1127 | 1125,377 1128 | 1126,69062 1129 | 1127,360 1130 | 1128,439 1131 | 1129,607 1132 | 1130,223 1133 | 1131,22971 1134 | 1132,38 1135 | 1133,3863 1136 | 1134,13922 1137 | 1135,249 1138 | 1136,239 1139 | 1137,309 1140 | 1138,996 1141 | 1139,2003 1142 | 1140,212549 1143 | 1141,3552 1144 | 1142,140 1145 | 1143,2848 1146 | 1144,1661 1147 | 1145,1710 1148 | 1146,11718 1149 | 1147,66 1150 | 1148,14480 1151 | 1149,3188 1152 | 1150,10051 1153 | 1151,19439 1154 | 1152,9023 1155 | 1153,8568 1156 | 1154,49 1157 | 1155,618 1158 | 1156,1907 1159 | 1157,439 1160 | 1158,15251 1161 | 1159,11469 1162 | 1160,69062 1163 | 1161,951 1164 | 1162,5546 1165 | 1163,1464 1166 | 1164,21505 1167 | 1165,830 1168 | 1166,904 1169 | 1167,30327 1170 | 1168,7622 1171 | 1169,16086 1172 | 1170,784 1173 | 1171,698 1174 | 1172,3173 1175 | 1173,294 1176 | 1174,5818 1177 | 1175,645 1178 | 1176,492 1179 | 1177,2294 1180 | 1178,11768 1181 | 1179,2051 1182 | 1180,15764 1183 | 1181,59 1184 | 1182,14480 1185 | 1183,12481 1186 | 1184,5522 1187 | 1185,13980 1188 | 1186,341 1189 | 1187,15269 1190 | 1188,29109 1191 | 1189,13321 1192 | 1190,992 1193 | 1191,52727 1194 | 1192,50666 1195 | 1193,607 1196 | 1194,105304 1197 | 1195,15764 1198 | 1196,1199 1199 | 1197,778 1200 | 1198,369 1201 | 1199,29053 1202 | 1200,486 1203 | 1201,47293 1204 | 1202,241 1205 | 1203,36268 1206 | 1204,3569 1207 | 1205,234304 1208 | 1206,28722 1209 | 1207,4437 1210 | 1208,1054 1211 | 1209,175 1212 | 1210,3863 1213 | 1211,11469 1214 | 1212,4147 1215 | 1213,17882 1216 | 1214,6503 1217 | 1215,163 1218 | 1216,69062 1219 | 1217,14480 1220 | 1218,82 1221 | 1219,139 1222 | 1220,9122 1223 | 1221,15500 1224 | 1222,3305 1225 | 1223,42813 1226 | 1224,276 1227 | 1225,1712 1228 | 1226,276 1229 | 1227,5603 1230 | 1228,14480 1231 | 1229,11465 1232 | 1230,7165 1233 | 1231,63 1234 | 1232,960 1235 | 1233,607 1236 | 1234,62 1237 | 1235,385 1238 | 1236,433 1239 | 1237,749 1240 | 1238,2948 1241 | 1239,747 1242 | 1240,685 1243 | 1241,12767 1244 | 1242,9742 1245 | 1243,1054 1246 | 1244,31525 1247 | 1245,11210 1248 | 1246,607 1249 | 1247,4986 1250 | 1248,123 1251 | 1249,8568 1252 | 1250,6029 1253 | 1251,1033 1254 | 1252,44 1255 | 1253,37706 1256 | 1254,622 1257 | 1255,166 1258 | 1256,329354 1259 | 1257,6882 1260 | 1258,439 1261 | 1259,123 1262 | 1260,1054 1263 | 1261,453 1264 | 1262,1144 1265 | 1263,3051 1266 | 1264,14480 1267 | 1265,5463 1268 | 1266,238 1269 | 1267,14480 1270 | 1268,315 1271 | 1269,12481 1272 | 1270,175 1273 | 1271,775 1274 | 1272,17229 1275 | 1273,1012 1276 | 1274,139 1277 | 1275,4342 1278 | 1276,7165 1279 | 1277,2149 1280 | 1278,20868 1281 | 1279,14480 1282 | 1280,6965 1283 | 1281,4350 1284 | 1282,7080 1285 | 1283,464 1286 | 1284,1641 1287 | 1285,2473 1288 | 1286,275 1289 | 1287,607 1290 | 1288,245091 1291 | 1289,672 1292 | 1290,10611 1293 | 1291,3800 1294 | 1292,607 1295 | 1293,31418 1296 | 1294,7300 1297 | 1295,867 1298 | 1296,7599 1299 | 1297,2366 1300 | 1298,97499 1301 | 1299,2753 1302 | 1300,2952 1303 | 1301,485 1304 | 1302,179 1305 | 1303,2222 1306 | 1304,2974 1307 | 1305,385 1308 | 1306,2555 1309 | 1307,131 1310 | 1308,20264 1311 | 1309,166 1312 | 1310,243 1313 | 1311,618 1314 | 1312,279 1315 | 1313,44 1316 | 1314,607 1317 | 1315,30 1318 | 1316,439 1319 | 1317,3863 1320 | 1318,445 1321 | 1319,439 1322 | 1320,354 1323 | 1321,248 1324 | 1322,20868 1325 | 1323,33 1326 | 1324,483 1327 | 1325,14480 1328 | 1326,1222 1329 | 1327,18657 1330 | 1328,607 1331 | 1329,119 1332 | 1330,1188 1333 | 1331,1780 1334 | 1332,36268 1335 | 1333,882 1336 | 1334,16721 1337 | 1335,747 1338 | 1336,14480 1339 | 1337,7080 1340 | 1338,28722 1341 | 1339,15763 1342 | 1340,6703 1343 | 1341,11745 1344 | 1342,305 1345 | 1343,42813 1346 | 1344,2285 1347 | 1345,56 1348 | 1346,48 1349 | 1347,1324 1350 | 1348,11718 1351 | 1349,811 1352 | 1350,39103 1353 | 1351,3090 1354 | 1352,121 1355 | 1353,1054 1356 | 1354,28282 1357 | 1355,859 1358 | 1356,3188 1359 | 1357,14329 1360 | 1358,809 1361 | 1359,99 1362 | 1360,6685 1363 | 1361,11465 1364 | 1362,13656 1365 | 1363,8568 1366 | 1364,373 1367 | 1365,433 1368 | 1366,618 1369 | 1367,50 1370 | 1368,14480 1371 | 1369,452 1372 | 1370,438 1373 | 1371,970 1374 | 1372,1916 1375 | 1373,3863 1376 | 1374,51748 1377 | 1375,2395 1378 | 1376,13057 1379 | 1377,74 1380 | 1378,14480 1381 | 1379,607 1382 | 1380,51748 1383 | 1381,6499 1384 | 1382,5818 1385 | 1383,1134 1386 | 1384,1641 1387 | 1385,607 1388 | 1386,859 1389 | 1387,141 1390 | 1388,45291 1391 | 1389,35821 1392 | 1390,520 1393 | 1391,75 1394 | 1392,5203 1395 | 1393,3173 1396 | 1394,685 1397 | 1395,747 1398 | 1396,52 1399 | 1397,1631 1400 | 1398,114 1401 | 1399,16086 1402 | 1400,58 1403 | 1401,4724 1404 | 1402,159 1405 | 1403,14714 1406 | 1404,172 1407 | 1405,5397 1408 | 1406,104 1409 | 1407,350 1410 | 1408,350 1411 | 1409,145 1412 | 1410,4436 1413 | 1411,30327 1414 | 1412,3388 1415 | 1413,33 1416 | 1414,10790 1417 | 1415,444 1418 | 1416,206753 1419 | 1417,50666 1420 | 1418,163 1421 | 1419,9030 1422 | 1420,121 1423 | 1421,11469 1424 | 1422,775 1425 | 1423,1199 1426 | 1424,389 1427 | 1425,452 1428 | 1426,2357 1429 | 1427,8935 1430 | 1428,377 1431 | 1429,65 1432 | 1430,1012 1433 | 1431,45291 1434 | 1432,1012 1435 | 1433,14480 1436 | 1434,12481 1437 | 1435,371 1438 | 1436,11718 1439 | 1437,439 1440 | 1438,11469 1441 | 1439,561 1442 | 1440,11469 1443 | 1441,33 1444 | 1442,37 1445 | 1443,6030 1446 | 1444,464 1447 | 1445,45291 1448 | 1446,607 1449 | 1447,32 1450 | 1448,8695 1451 | 1449,3863 1452 | 1450,809 1453 | 1451,707 1454 | 1452,474 1455 | 1453,439 1456 | 1454,1082 1457 | 1455,13321 1458 | 1456,637 1459 | 1457,29053 1460 | 1458,39 1461 | 1459,17351 1462 | 1460,14600 1463 | 1461,14480 1464 | 1462,621 1465 | 1463,2712 1466 | 1464,69062 1467 | 1465,453 1468 | 1466,1160 1469 | 1467,4553 1470 | 1468,433 1471 | 1469,152 1472 | 1470,14480 1473 | 1471,15843 1474 | 1472,249 1475 | 1473,849 1476 | 1474,1612 1477 | 1475,2395 1478 | 1476,8935 1479 | 1477,158 1480 | 1478,811 1481 | 1479,379 1482 | 1480,1733 1483 | 1481,14480 1484 | 1482,685 1485 | 1483,14480 1486 | 1484,2952 1487 | 1485,1378 1488 | 1486,14553 1489 | 1487,61 1490 | 1488,168 1491 | 1489,92184 1492 | 1490,252 1493 | 1491,3863 1494 | 1492,1267 1495 | 1493,236 1496 | 1494,439 1497 | 1495,167 1498 | 1496,2003 1499 | 1497,182 1500 | 1498,230815 1501 | 1499,3311 1502 | 1500,359 1503 | 1501,2368 1504 | 1502,445 1505 | 1503,8568 1506 | 1504,7714 1507 | 1505,4294 1508 | 1506,33 1509 | 1507,691 1510 | 1508,180 1511 | 1509,14480 1512 | 1510,29109 1513 | 1511,163 1514 | 1512,1399 1515 | 1513,1054 1516 | 1514,17229 1517 | 1515,62 1518 | 1516,4437 1519 | 1517,4728 1520 | 1518,70 1521 | 1519,33 1522 | 1520,1242 1523 | 1521,1054 1524 | 1522,8567 1525 | 1523,10672 1526 | 1524,453 1527 | 1525,16086 1528 | 1526,45291 1529 | 1527,3239 1530 | 1528,5824 1531 | 1529,126 1532 | 1530,651 1533 | 1531,618 1534 | 1532,8116 1535 | 1533,775 1536 | 1534,1198 1537 | 1535,7889 1538 | 1536,4360 1539 | 1537,6503 1540 | 1538,3051 1541 | 1539,183 1542 | 1540,14480 1543 | 1541,1054 1544 | 1542,69062 1545 | 1543,14553 1546 | 1544,1704 1547 | 1545,47178 1548 | 1546,2003 1549 | 1547,2828 1550 | 1548,3863 1551 | 1549,919 1552 | 1550,121 1553 | 1551,11718 1554 | 1552,859 1555 | 1553,99 1556 | 1554,379 1557 | 1555,30 1558 | 1556,2340 1559 | 1557,9821 1560 | 1558,566 1561 | 1559,97499 1562 | 1560,607 1563 | 1561,2294 1564 | 1562,33 1565 | 1563,17497 1566 | 1564,121 1567 | 1565,524 1568 | 1566,3863 1569 | 1567,10544 1570 | 1568,19 1571 | 1569,3051 1572 | 1570,322 1573 | 1571,11465 1574 | 1572,70 1575 | 1573,11687 1576 | 1574,2183 1577 | 1575,6269 1578 | 1576,15764 1579 | 1577,341 1580 | 1578,146 1581 | 1579,961 1582 | 1580,453 1583 | 1581,2132 1584 | 1582,4553 1585 | 1583,5203 1586 | 1584,254 1587 | 1585,11469 1588 | 1586,492 1589 | 1587,1054 1590 | 1588,11718 1591 | 1589,353 1592 | 1590,11495 1593 | 1591,98265 1594 | 1592,104 1595 | 1593,36745 1596 | 1594,48 1597 | 1595,607 1598 | 1596,3286 1599 | 1597,180 1600 | 1598,15959 1601 | 1599,2651 1602 | 1600,51 1603 | 1601,95909 1604 | 1602,385 1605 | 1603,34117 1606 | 1604,8695 1607 | 1605,3863 1608 | 1606,149 1609 | 1607,166 1610 | 1608,69062 1611 | 1609,7080 1612 | 1610,1019 1613 | 1611,171 1614 | 1612,880 1615 | 1613,6425 1616 | 1614,35821 1617 | 1615,4713 1618 | 1616,155 1619 | 1617,50 1620 | 1618,1033 1621 | 1619,16086 1622 | 1620,59 1623 | 1621,4514 1624 | 1622,719 1625 | 1623,52727 1626 | 1624,52727 1627 | 1625,29694 1628 | 1626,13656 1629 | 1627,14480 1630 | 1628,3688 1631 | 1629,11465 1632 | 1630,614 1633 | 1631,57 1634 | 1632,6262 1635 | 1633,4883 1636 | 1634,10257 1637 | 1635,6030 1638 | 1636,13321 1639 | 1637,14480 1640 | 1638,747 1641 | 1639,2132 1642 | 1640,37706 1643 | 1641,1384 1644 | 1642,14480 1645 | 1643,508957 1646 | 1644,13321 1647 | 1645,14480 1648 | 1646,403 1649 | 1647,439 1650 | 1648,6029 1651 | 1649,4553 1652 | 1650,1054 1653 | 1651,15251 1654 | 1652,772 1655 | 1653,747 1656 | 1654,530 1657 | 1655,31418 1658 | 1656,28780 1659 | 1657,439 1660 | 1658,595 1661 | 1659,33 1662 | 1660,146 1663 | 1661,622 1664 | 1662,1112 1665 | 1663,2201 1666 | 1664,486 1667 | 1665,13321 1668 | 1666,4524 1669 | 1667,128 1670 | 1668,485 1671 | 1669,38168 1672 | 1670,48979 1673 | 1671,376 1674 | 1672,69062 1675 | 1673,10770 1676 | 1674,155 1677 | 1675,7080 1678 | 1676,1659 1679 | 1677,3173 1680 | 1678,58 1681 | 1679,6685 1682 | 1680,425 1683 | 1681,14480 1684 | 1682,7300 1685 | 1683,13384 1686 | 1684,124 1687 | 1685,15196 1688 | 1686,70 1689 | 1687,385 1690 | 1688,74 1691 | 1689,439 1692 | 1690,2368 1693 | 1691,13057 1694 | 1692,50291 1695 | 1693,17351 1696 | 1694,234304 1697 | 1695,607 1698 | 1696,33 1699 | 1697,48979 1700 | 1698,930 1701 | 1699,4553 1702 | 1700,34 1703 | 1701,11718 1704 | 1702,2513 1705 | 1703,15078 1706 | 1704,4728 1707 | 1705,439 1708 | 1706,2709 1709 | 1707,276 1710 | 1708,357739 1711 | 1709,20868 1712 | 1710,3863 1713 | 1711,6454 1714 | 1712,11768 1715 | 1713,1112 1716 | 1714,56270 1717 | 1715,166 1718 | 1716,8428 1719 | 1717,175 1720 | 1718,698 1721 | 1719,14480 1722 | 1720,19077 1723 | 1721,494 1724 | 1722,5603 1725 | 1723,1054 1726 | 1724,10611 1727 | 1725,6882 1728 | 1726,834 1729 | 1727,624 1730 | 1728,11465 1731 | 1729,775 1732 | 1730,618 1733 | 1731,118 1734 | 1732,614 1735 | 1733,866 1736 | 1734,433 1737 | 1735,33 1738 | 1736,607 1739 | 1737,2306 1740 | 1738,107 1741 | 1739,9122 1742 | 1740,97499 1743 | 1741,206753 1744 | 1742,17497 1745 | 1743,1906 1746 | 1744,14142 1747 | 1745,14390 1748 | 1746,14480 1749 | 1747,811 1750 | 1748,5397 1751 | 1749,403 1752 | 1750,9821 1753 | 1751,7080 1754 | 1752,5603 1755 | 1753,44 1756 | 1754,2804 1757 | 1755,16086 1758 | 1756,721 1759 | 1757,439 1760 | 1758,322 1761 | 1759,2868 1762 | 1760,29 1763 | 1761,1919 1764 | 1762,590 1765 | 1763,3651 1766 | 1764,145903 1767 | 1765,383 1768 | 1766,1054 1769 | 1767,3863 1770 | 1768,11718 1771 | 1769,70 1772 | 1770,439 1773 | 1771,49 1774 | 1772,385 1775 | 1773,464 1776 | 1774,1127 1777 | 1775,442 1778 | 1776,243 1779 | 1777,8567 1780 | 1778,2480 1781 | 1779,2952 1782 | 1780,2003 1783 | 1781,775 1784 | 1782,439 1785 | 1783,1054 1786 | 1784,6685 1787 | 1785,12481 1788 | 1786,163 1789 | 1787,607 1790 | 1788,940 1791 | 1789,36268 1792 | 1790,22226 1793 | 1791,3863 1794 | 1792,7599 1795 | 1793,252 1796 | 1794,226 1797 | 1795,7599 1798 | 1796,69062 1799 | 1797,607 1800 | 1798,433 1801 | 1799,163 1802 | 1800,778 1803 | 1801,6520 1804 | 1802,778 1805 | 1803,4640 1806 | 1804,1812 1807 | 1805,915 1808 | 1806,385 1809 | 1807,14480 1810 | 1808,809 1811 | 1809,9742 1812 | 1810,33 1813 | 1811,121 1814 | 1812,4444 1815 | 1813,2513 1816 | 1814,30327 1817 | 1815,1779 1818 | 1816,464 1819 | 1817,272 1820 | 1818,6454 1821 | 1819,69062 1822 | 1820,69062 1823 | 1821,14480 1824 | 1822,618 1825 | 1823,121 1826 | 1824,15763 1827 | 1825,14480 1828 | 1826,33 1829 | 1827,51789 1830 | 1828,22971 1831 | 1829,36745 1832 | 1830,462 1833 | 1831,52727 1834 | 1832,106 1835 | 1833,433 1836 | 1834,2513 1837 | 1835,52 1838 | 1836,59 1839 | 1837,1988 1840 | 1838,48 1841 | 1839,48 1842 | 1840,169 1843 | 1841,5146 1844 | 1842,1054 1845 | 1843,29053 1846 | 1844,34 1847 | 1845,1603 1848 | 1846,15958 1849 | 1847,34117 1850 | 1848,13922 1851 | 1849,383 1852 | 1850,121 1853 | 1851,389 1854 | 1852,11718 1855 | 1853,3895 1856 | 1854,45645 1857 | 1855,33 1858 | 1856,2948 1859 | 1857,2003 1860 | 1858,10672 1861 | 1859,1295 1862 | 1860,1384 1863 | 1861,652 1864 | 1862,3078 1865 | 1863,4508 1866 | 1864,3634 1867 | 1865,3651 1868 | 1866,10672 1869 | 1867,105304 1870 | 1868,119647 1871 | 1869,6030 1872 | 1870,11469 1873 | 1871,179 1874 | 1872,80 1875 | 1873,14480 1876 | 1874,276 1877 | 1875,1733 1878 | 1876,5388 1879 | 1877,1795 1880 | 1878,59 1881 | 1879,614 1882 | 1880,11469 1883 | 1881,433 1884 | 1882,15764 1885 | 1883,453 1886 | 1884,31 1887 | 1885,1790 1888 | 1886,51 1889 | 1887,1096 1890 | 1888,439 1891 | 1889,174 1892 | 1890,453 1893 | 1891,16086 1894 | 1892,2641 1895 | 1893,14480 1896 | 1894,2368 1897 | 1895,641 1898 | 1896,14480 1899 | 1897,6076 1900 | 1898,867 1901 | 1899,5855 1902 | 1900,7080 1903 | 1901,17229 1904 | 1902,1134 1905 | 1903,88677 1906 | 1904,33 1907 | 1905,8031 1908 | 1906,607 1909 | 1907,31575 1910 | 1908,607 1911 | 1909,164 1912 | 1910,14480 1913 | 1911,329354 1914 | 1912,20656 1915 | 1913,645 1916 | 1914,59 1917 | 1915,78503 1918 | 1916,2952 1919 | 1917,775 1920 | 1918,1377 1921 | 1919,33374 1922 | 1920,10836 1923 | 1921,1069 1924 | 1922,453 1925 | 1923,296235 1926 | 1924,1661 1927 | 1925,8116 1928 | 1926,4147 1929 | 1927,11718 1930 | 1928,614 1931 | 1929,22898 1932 | 1930,6480 1933 | 1931,17497 1934 | 1932,13922 1935 | 1933,6965 1936 | 1934,1054 1937 | 1935,12486 1938 | 1936,1509 1939 | 1937,485 1940 | 1938,1054 1941 | 1939,52727 1942 | 1940,32846 1943 | 1941,121 1944 | 1942,179 1945 | 1943,253 1946 | 1944,15196 1947 | 1945,54 1948 | 1946,41 1949 | 1947,1054 1950 | 1948,29694 1951 | 1949,12114 1952 | 1950,397 1953 | 1951,41 1954 | 1952,445 1955 | 1953,3651 1956 | 1954,34 1957 | 1955,31418 1958 | 1956,453 1959 | 1957,12486 1960 | 1958,27085 1961 | 1959,5203 1962 | 1960,223 1963 | 1961,8505 1964 | 1962,6503 1965 | 1963,1054 1966 | 1964,14600 1967 | 1965,1012 1968 | 1966,298 1969 | 1967,18488 1970 | 1968,1765 1971 | 1969,14480 1972 | 1970,3626 1973 | 1971,9742 1974 | 1972,121 1975 | 1973,3863 1976 | 1974,6030 1977 | 1975,445 1978 | 1976,64492 1979 | 1977,492 1980 | 1978,33 1981 | 1979,336 1982 | 1980,9712 1983 | 1981,14480 1984 | 1982,1033 1985 | 1983,809 1986 | 1984,2641 1987 | 1985,37 1988 | 1986,775 1989 | 1987,10051 1990 | 1988,1760 1991 | 1989,356 1992 | 1990,1631 1993 | 1991,59 1994 | 1992,778 1995 | 1993,276 1996 | 1994,14480 1997 | 1995,439 1998 | 1996,433 1999 | 1997,992 2000 | 1998,6269 2001 | 1999,114 2002 | 2000,2368 2003 | 2001,2848 2004 | 2002,464 2005 | 2003,1399 2006 | 2004,1418 2007 | 2005,14480 2008 | 2006,29694 2009 | 2007,15764 2010 | 2008,38 2011 | 2009,996 2012 | 2010,14480 2013 | 2011,607 2014 | 2012,11495 2015 | 2013,189 2016 | 2014,2606 2017 | 2015,3096 2018 | 2016,15764 2019 | 2017,15764 2020 | 2018,120484 2021 | 2019,309 2022 | 2020,11495 2023 | 2021,1461 2024 | 2022,73 2025 | 2023,439 2026 | 2024,439 2027 | 2025,8568 2028 | 2026,51748 2029 | 2027,16721 2030 | 2028,39 2031 | 2029,1180 2032 | 2030,27906 2033 | 2031,607 2034 | 2032,2368 2035 | 2033,15764 2036 | 2034,69062 2037 | 2035,2395 2038 | 2036,992 2039 | 2037,46 2040 | 2038,28722 2041 | 2039,707 2042 | 2040,14480 2043 | 2041,1454 2044 | 2042,11745 2045 | 2043,566 2046 | 2044,249 2047 | 2045,2764 2048 | 2046,1302 2049 | 2047,74 2050 | 2048,69062 2051 | 2049,3863 2052 | 2050,11465 2053 | 2051,6029 2054 | 2052,33 2055 | 2053,830 2056 | 2054,397 2057 | 2055,691 2058 | 2056,14480 2059 | 2057,14045 2060 | 2058,15763 2061 | 2059,778 2062 | 2060,652 2063 | 2061,673 2064 | 2062,597 2065 | 2063,1054 2066 | 2064,5996 2067 | 2065,14073 2068 | 2066,43 2069 | 2067,298 2070 | 2068,4718 2071 | 2069,466 2072 | 2070,1033 2073 | 2071,7599 2074 | 2072,4436 2075 | 2073,747 2076 | 2074,992 2077 | 2075,915 2078 | 2076,6685 2079 | 2077,413 2080 | 2078,1072 2081 | 2079,13321 2082 | 2080,285 2083 | 2081,48979 2084 | 2082,11465 2085 | 2083,11718 2086 | 2084,691 2087 | 2085,11465 2088 | 2086,11718 2089 | 2087,4553 2090 | 2088,707 2091 | 2089,132 2092 | 2090,8568 2093 | 2091,14480 2094 | 2092,3250 2095 | 2093,2146 2096 | 2094,41 2097 | 2095,8428 2098 | 2096,203 2099 | 2097,24 2100 | 2098,145903 2101 | 2099,62 2102 | 2100,3863 2103 | 2101,2839 2104 | 2102,433 2105 | 2103,11718 2106 | 2104,618 2107 | 2105,127 2108 | 2106,45734 2109 | 2107,992 2110 | 2108,33 2111 | 2109,724 2112 | 2110,4553 2113 | 2111,2678 2114 | 2112,95909 2115 | 2113,427 2116 | 2114,778 2117 | 2115,532 2118 | 2116,70214 2119 | 2117,14480 2120 | 2118,12205 2121 | 2119,3311 2122 | 2120,33 2123 | 2121,13057 2124 | 2122,1124 2125 | 2123,7864 2126 | 2124,14480 2127 | 2125,14480 2128 | 2126,376 2129 | 2127,6029 2130 | 2128,121 2131 | 2129,4010 2132 | 2130,126 2133 | 2131,52910 2134 | 2132,4294 2135 | 2133,69 2136 | 2134,9122 2137 | 2135,439 2138 | 2136,6029 2139 | 2137,1812 2140 | 2138,2480 2141 | 2139,35821 2142 | 2140,119647 2143 | 2141,3438 2144 | 2142,37 2145 | 2143,1221 2146 | 2144,6503 2147 | 2145,6029 2148 | 2146,747 2149 | 2147,50666 2150 | 2148,692 2151 | 2149,444 2152 | 2150,5855 2153 | 2151,1508 2154 | 2152,31525 2155 | 2153,13057 2156 | 2154,29 2157 | 2155,33 2158 | 2156,377 2159 | 2157,121 2160 | 2158,15188 2161 | 2159,29 2162 | 2160,14480 2163 | 2161,3223 2164 | 2162,618 2165 | 2163,293 2166 | 2164,3521 2167 | 2165,7889 2168 | 2166,934 2169 | 2167,2368 2170 | 2168,9742 2171 | 2169,7084 2172 | 2170,11718 2173 | 2171,5643 2174 | 2172,6424 2175 | 2173,11718 2176 | 2174,42374 2177 | 2175,20868 2178 | 2176,11718 2179 | 2177,51789 2180 | 2178,1054 2181 | 2179,16721 2182 | 2180,16086 2183 | 2181,88 2184 | 2182,778 2185 | 2183,4713 2186 | 2184,49 2187 | 2185,637 2188 | 2186,28722 2189 | 2187,373 2190 | 2188,6503 2191 | 2189,14480 2192 | 2190,176 2193 | 2191,14229 2194 | 2192,40350 2195 | 2193,721 2196 | 2194,145903 2197 | 2195,2003 2198 | 2196,992 2199 | 2197,1391 2200 | 2198,166469 2201 | 2199,1033 2202 | 2200,3651 2203 | 2201,5855 2204 | 2202,439 2205 | 2203,747 2206 | 2204,2804 2207 | 2205,2057 2208 | 2206,33 2209 | 2207,1392 2210 | 2208,212549 2211 | 2209,15764 2212 | 2210,166 2213 | 2211,50 2214 | 2212,439 2215 | 2213,43 2216 | 2214,16763 2217 | 2215,564 2218 | 2216,69062 2219 | 2217,97499 2220 | 2218,721 2221 | 2219,48 2222 | 2220,2201 2223 | 2221,11495 2224 | 2222,14480 2225 | 2223,901 2226 | 2224,11718 2227 | 2225,3993 2228 | 2226,11720 2229 | 2227,57 2230 | 2228,2754 2231 | 2229,5982 2232 | 2230,37311 2233 | 2231,271 2234 | 2232,354 2235 | 2233,295 2236 | 2234,3239 2237 | 2235,539 2238 | 2236,637 2239 | 2237,992 2240 | 2238,14480 2241 | 2239,1054 2242 | 2240,8695 2243 | 2241,14480 2244 | 2242,2578 2245 | 2243,3863 2246 | 2244,14480 2247 | 2245,385 2248 | 2246,69062 2249 | 2247,139 2250 | 2248,276 2251 | 2249,154527 2252 | 2250,201 2253 | 2251,672 2254 | 2252,82 2255 | 2253,106 2256 | 2254,7165 2257 | 2255,101871 2258 | 2256,433 2259 | 2257,8526 2260 | 2258,114 2261 | 2259,11718 2262 | 2260,992 2263 | 2261,50666 2264 | 2262,2426 2265 | 2263,14480 2266 | 2264,6882 2267 | 2265,5388 2268 | 2266,778 2269 | 2267,35836 2270 | 2268,1012 2271 | 2269,101871 2272 | 2270,373 2273 | 2271,672 2274 | 2272,31418 2275 | 2273,2716 2276 | 2274,99 2277 | 2275,22898 2278 | 2276,276 2279 | -------------------------------------------------------------------------------- /input/cora_target.csv: -------------------------------------------------------------------------------- 1 | id,target 2 | 0,3 3 | 1,4 4 | 2,4 5 | 3,0 6 | 4,3 7 | 5,2 8 | 6,0 9 | 7,3 10 | 8,3 11 | 9,2 12 | 10,0 13 | 11,0 14 | 12,4 15 | 13,3 16 | 14,3 17 | 15,3 18 | 16,2 19 | 17,3 20 | 18,1 21 | 19,3 22 | 20,5 23 | 21,3 24 | 22,4 25 | 23,6 26 | 24,3 27 | 25,3 28 | 26,6 29 | 27,3 30 | 28,2 31 | 29,4 32 | 30,3 33 | 31,6 34 | 32,0 35 | 33,4 36 | 34,2 37 | 35,0 38 | 36,1 39 | 37,5 40 | 38,4 41 | 39,4 42 | 40,3 43 | 41,6 44 | 42,6 45 | 43,4 46 | 44,3 47 | 45,3 48 | 46,2 49 | 47,5 50 | 48,3 51 | 49,4 52 | 50,5 53 | 51,3 54 | 52,0 55 | 53,2 56 | 54,1 57 | 55,4 58 | 56,6 59 | 57,3 60 | 58,2 61 | 59,2 62 | 60,0 63 | 61,0 64 | 62,0 65 | 63,4 66 | 64,2 67 | 65,0 68 | 66,4 69 | 67,5 70 | 68,2 71 | 69,6 72 | 70,5 73 | 71,2 74 | 72,2 75 | 73,2 76 | 74,0 77 | 75,4 78 | 76,5 79 | 77,6 80 | 78,4 81 | 79,0 82 | 80,0 83 | 81,0 84 | 82,4 85 | 83,2 86 | 84,4 87 | 85,1 88 | 86,4 89 | 87,6 90 | 88,0 91 | 89,4 92 | 90,2 93 | 91,4 94 | 92,6 95 | 93,6 96 | 94,0 97 | 95,0 98 | 96,6 99 | 97,5 100 | 98,0 101 | 99,6 102 | 100,0 103 | 101,2 104 | 102,1 105 | 103,1 106 | 104,1 107 | 105,2 108 | 106,6 109 | 107,5 110 | 108,6 111 | 109,1 112 | 110,2 113 | 111,2 114 | 112,1 115 | 113,5 116 | 114,5 117 | 115,5 118 | 116,6 119 | 117,5 120 | 118,6 121 | 119,5 122 | 120,5 123 | 121,1 124 | 122,6 125 | 123,6 126 | 124,1 127 | 125,5 128 | 126,1 129 | 127,6 130 | 128,5 131 | 129,5 132 | 130,5 133 | 131,1 134 | 132,5 135 | 133,1 136 | 134,1 137 | 135,1 138 | 136,1 139 | 137,1 140 | 138,1 141 | 139,1 142 | 140,4 143 | 141,3 144 | 142,0 145 | 143,3 146 | 144,6 147 | 145,6 148 | 146,0 149 | 147,3 150 | 148,4 151 | 149,0 152 | 150,3 153 | 151,4 154 | 152,4 155 | 153,1 156 | 154,2 157 | 155,2 158 | 156,2 159 | 157,3 160 | 158,3 161 | 159,3 162 | 160,3 163 | 161,0 164 | 162,4 165 | 163,5 166 | 164,0 167 | 165,3 168 | 166,4 169 | 167,3 170 | 168,3 171 | 169,3 172 | 170,2 173 | 171,3 174 | 172,3 175 | 173,2 176 | 174,2 177 | 175,6 178 | 176,1 179 | 177,4 180 | 178,3 181 | 179,3 182 | 180,3 183 | 181,6 184 | 182,3 185 | 183,3 186 | 184,3 187 | 185,3 188 | 186,0 189 | 187,4 190 | 188,2 191 | 189,2 192 | 190,6 193 | 191,5 194 | 192,3 195 | 193,5 196 | 194,4 197 | 195,0 198 | 196,4 199 | 197,3 200 | 198,4 201 | 199,4 202 | 200,3 203 | 201,3 204 | 202,2 205 | 203,4 206 | 204,0 207 | 205,3 208 | 206,2 209 | 207,3 210 | 208,3 211 | 209,4 212 | 210,4 213 | 211,0 214 | 212,3 215 | 213,6 216 | 214,0 217 | 215,3 218 | 216,3 219 | 217,4 220 | 218,3 221 | 219,3 222 | 220,5 223 | 221,2 224 | 222,3 225 | 223,2 226 | 224,4 227 | 225,1 228 | 226,3 229 | 227,2 230 | 228,2 231 | 229,3 232 | 230,3 233 | 231,3 234 | 232,3 235 | 233,5 236 | 234,1 237 | 235,3 238 | 236,1 239 | 237,3 240 | 238,5 241 | 239,0 242 | 240,3 243 | 241,5 244 | 242,0 245 | 243,4 246 | 244,2 247 | 245,4 248 | 246,2 249 | 247,4 250 | 248,4 251 | 249,5 252 | 250,4 253 | 251,3 254 | 252,5 255 | 253,3 256 | 254,3 257 | 255,4 258 | 256,3 259 | 257,0 260 | 258,4 261 | 259,5 262 | 260,0 263 | 261,3 264 | 262,6 265 | 263,2 266 | 264,5 267 | 265,5 268 | 266,5 269 | 267,3 270 | 268,2 271 | 269,3 272 | 270,0 273 | 271,4 274 | 272,5 275 | 273,3 276 | 274,0 277 | 275,4 278 | 276,0 279 | 277,3 280 | 278,3 281 | 279,0 282 | 280,0 283 | 281,3 284 | 282,5 285 | 283,4 286 | 284,4 287 | 285,3 288 | 286,4 289 | 287,3 290 | 288,3 291 | 289,2 292 | 290,2 293 | 291,3 294 | 292,0 295 | 293,3 296 | 294,1 297 | 295,3 298 | 296,2 299 | 297,3 300 | 298,3 301 | 299,4 302 | 300,5 303 | 301,2 304 | 302,1 305 | 303,1 306 | 304,0 307 | 305,0 308 | 306,1 309 | 307,6 310 | 308,1 311 | 309,3 312 | 310,3 313 | 311,3 314 | 312,2 315 | 313,3 316 | 314,3 317 | 315,0 318 | 316,3 319 | 317,4 320 | 318,1 321 | 319,3 322 | 320,4 323 | 321,3 324 | 322,2 325 | 323,0 326 | 324,0 327 | 325,4 328 | 326,2 329 | 327,3 330 | 328,2 331 | 329,1 332 | 330,4 333 | 331,6 334 | 332,3 335 | 333,2 336 | 334,0 337 | 335,3 338 | 336,3 339 | 337,2 340 | 338,3 341 | 339,4 342 | 340,4 343 | 341,2 344 | 342,1 345 | 343,3 346 | 344,5 347 | 345,3 348 | 346,2 349 | 347,0 350 | 348,4 351 | 349,5 352 | 350,1 353 | 351,3 354 | 352,3 355 | 353,2 356 | 354,0 357 | 355,2 358 | 356,4 359 | 357,2 360 | 358,2 361 | 359,2 362 | 360,5 363 | 361,4 364 | 362,4 365 | 363,2 366 | 364,2 367 | 365,0 368 | 366,3 369 | 367,2 370 | 368,4 371 | 369,4 372 | 370,5 373 | 371,5 374 | 372,1 375 | 373,0 376 | 374,3 377 | 375,4 378 | 376,5 379 | 377,3 380 | 378,4 381 | 379,5 382 | 380,3 383 | 381,4 384 | 382,3 385 | 383,3 386 | 384,1 387 | 385,4 388 | 386,3 389 | 387,3 390 | 388,5 391 | 389,2 392 | 390,3 393 | 391,2 394 | 392,5 395 | 393,5 396 | 394,4 397 | 395,3 398 | 396,3 399 | 397,3 400 | 398,3 401 | 399,1 402 | 400,5 403 | 401,3 404 | 402,3 405 | 403,2 406 | 404,6 407 | 405,0 408 | 406,1 409 | 407,3 410 | 408,0 411 | 409,1 412 | 410,5 413 | 411,3 414 | 412,6 415 | 413,3 416 | 414,6 417 | 415,0 418 | 416,3 419 | 417,3 420 | 418,3 421 | 419,5 422 | 420,4 423 | 421,3 424 | 422,4 425 | 423,0 426 | 424,5 427 | 425,2 428 | 426,1 429 | 427,2 430 | 428,4 431 | 429,4 432 | 430,4 433 | 431,4 434 | 432,3 435 | 433,3 436 | 434,0 437 | 435,4 438 | 436,3 439 | 437,0 440 | 438,5 441 | 439,2 442 | 440,0 443 | 441,5 444 | 442,4 445 | 443,4 446 | 444,4 447 | 445,3 448 | 446,0 449 | 447,6 450 | 448,5 451 | 449,2 452 | 450,4 453 | 451,5 454 | 452,1 455 | 453,3 456 | 454,5 457 | 455,3 458 | 456,0 459 | 457,3 460 | 458,5 461 | 459,1 462 | 460,1 463 | 461,0 464 | 462,3 465 | 463,4 466 | 464,2 467 | 465,6 468 | 466,2 469 | 467,0 470 | 468,5 471 | 469,3 472 | 470,4 473 | 471,6 474 | 472,5 475 | 473,3 476 | 474,5 477 | 475,0 478 | 476,1 479 | 477,3 480 | 478,0 481 | 479,5 482 | 480,2 483 | 481,2 484 | 482,3 485 | 483,5 486 | 484,1 487 | 485,0 488 | 486,3 489 | 487,1 490 | 488,4 491 | 489,2 492 | 490,5 493 | 491,6 494 | 492,4 495 | 493,2 496 | 494,2 497 | 495,6 498 | 496,0 499 | 497,0 500 | 498,4 501 | 499,6 502 | 500,3 503 | 501,2 504 | 502,0 505 | 503,3 506 | 504,6 507 | 505,1 508 | 506,6 509 | 507,3 510 | 508,1 511 | 509,3 512 | 510,3 513 | 511,3 514 | 512,3 515 | 513,2 516 | 514,5 517 | 515,4 518 | 516,5 519 | 517,5 520 | 518,3 521 | 519,1 522 | 520,3 523 | 521,3 524 | 522,4 525 | 523,4 526 | 524,2 527 | 525,0 528 | 526,2 529 | 527,0 530 | 528,5 531 | 529,4 532 | 530,0 533 | 531,0 534 | 532,3 535 | 533,2 536 | 534,2 537 | 535,2 538 | 536,2 539 | 537,6 540 | 538,4 541 | 539,6 542 | 540,5 543 | 541,5 544 | 542,1 545 | 543,0 546 | 544,0 547 | 545,4 548 | 546,3 549 | 547,3 550 | 548,1 551 | 549,3 552 | 550,6 553 | 551,6 554 | 552,2 555 | 553,3 556 | 554,3 557 | 555,3 558 | 556,1 559 | 557,2 560 | 558,2 561 | 559,5 562 | 560,4 563 | 561,3 564 | 562,2 565 | 563,1 566 | 564,2 567 | 565,2 568 | 566,3 569 | 567,2 570 | 568,3 571 | 569,2 572 | 570,3 573 | 571,3 574 | 572,0 575 | 573,5 576 | 574,3 577 | 575,3 578 | 576,3 579 | 577,4 580 | 578,5 581 | 579,3 582 | 580,2 583 | 581,1 584 | 582,4 585 | 583,4 586 | 584,4 587 | 585,4 588 | 586,0 589 | 587,5 590 | 588,4 591 | 589,1 592 | 590,3 593 | 591,0 594 | 592,3 595 | 593,4 596 | 594,6 597 | 595,3 598 | 596,6 599 | 597,3 600 | 598,3 601 | 599,3 602 | 600,6 603 | 601,3 604 | 602,4 605 | 603,3 606 | 604,6 607 | 605,3 608 | 606,0 609 | 607,3 610 | 608,1 611 | 609,2 612 | 610,5 613 | 611,6 614 | 612,5 615 | 613,2 616 | 614,0 617 | 615,2 618 | 616,2 619 | 617,3 620 | 618,3 621 | 619,0 622 | 620,3 623 | 621,5 624 | 622,3 625 | 623,4 626 | 624,0 627 | 625,3 628 | 626,2 629 | 627,4 630 | 628,5 631 | 629,2 632 | 630,3 633 | 631,2 634 | 632,2 635 | 633,3 636 | 634,5 637 | 635,2 638 | 636,0 639 | 637,3 640 | 638,4 641 | 639,3 642 | 640,3 643 | 641,3 644 | 642,0 645 | 643,5 646 | 644,5 647 | 645,5 648 | 646,5 649 | 647,5 650 | 648,5 651 | 649,3 652 | 650,2 653 | 651,0 654 | 652,4 655 | 653,3 656 | 654,4 657 | 655,1 658 | 656,1 659 | 657,2 660 | 658,3 661 | 659,0 662 | 660,1 663 | 661,5 664 | 662,3 665 | 663,6 666 | 664,3 667 | 665,4 668 | 666,0 669 | 667,0 670 | 668,5 671 | 669,3 672 | 670,3 673 | 671,5 674 | 672,2 675 | 673,3 676 | 674,3 677 | 675,4 678 | 676,5 679 | 677,4 680 | 678,3 681 | 679,0 682 | 680,0 683 | 681,3 684 | 682,6 685 | 683,1 686 | 684,2 687 | 685,1 688 | 686,2 689 | 687,2 690 | 688,4 691 | 689,2 692 | 690,3 693 | 691,4 694 | 692,3 695 | 693,0 696 | 694,5 697 | 695,3 698 | 696,3 699 | 697,3 700 | 698,4 701 | 699,3 702 | 700,3 703 | 701,5 704 | 702,6 705 | 703,5 706 | 704,2 707 | 705,4 708 | 706,4 709 | 707,0 710 | 708,3 711 | 709,5 712 | 710,3 713 | 711,0 714 | 712,6 715 | 713,3 716 | 714,4 717 | 715,4 718 | 716,3 719 | 717,0 720 | 718,0 721 | 719,1 722 | 720,5 723 | 721,2 724 | 722,3 725 | 723,2 726 | 724,6 727 | 725,0 728 | 726,4 729 | 727,3 730 | 728,5 731 | 729,3 732 | 730,0 733 | 731,0 734 | 732,2 735 | 733,0 736 | 734,0 737 | 735,5 738 | 736,0 739 | 737,5 740 | 738,0 741 | 739,5 742 | 740,4 743 | 741,1 744 | 742,2 745 | 743,3 746 | 744,2 747 | 745,3 748 | 746,3 749 | 747,5 750 | 748,2 751 | 749,4 752 | 750,5 753 | 751,0 754 | 752,2 755 | 753,0 756 | 754,2 757 | 755,5 758 | 756,3 759 | 757,2 760 | 758,2 761 | 759,4 762 | 760,2 763 | 761,4 764 | 762,2 765 | 763,0 766 | 764,2 767 | 765,3 768 | 766,3 769 | 767,0 770 | 768,3 771 | 769,0 772 | 770,3 773 | 771,0 774 | 772,6 775 | 773,1 776 | 774,4 777 | 775,3 778 | 776,4 779 | 777,0 780 | 778,6 781 | 779,6 782 | 780,4 783 | 781,3 784 | 782,4 785 | 783,4 786 | 784,3 787 | 785,3 788 | 786,4 789 | 787,4 790 | 788,3 791 | 789,4 792 | 790,3 793 | 791,3 794 | 792,3 795 | 793,5 796 | 794,0 797 | 795,3 798 | 796,2 799 | 797,2 800 | 798,4 801 | 799,3 802 | 800,2 803 | 801,5 804 | 802,4 805 | 803,5 806 | 804,4 807 | 805,4 808 | 806,2 809 | 807,5 810 | 808,4 811 | 809,0 812 | 810,4 813 | 811,3 814 | 812,3 815 | 813,4 816 | 814,4 817 | 815,0 818 | 816,5 819 | 817,2 820 | 818,3 821 | 819,2 822 | 820,2 823 | 821,3 824 | 822,5 825 | 823,2 826 | 824,2 827 | 825,2 828 | 826,5 829 | 827,3 830 | 828,4 831 | 829,1 832 | 830,6 833 | 831,1 834 | 832,3 835 | 833,3 836 | 834,1 837 | 835,3 838 | 836,3 839 | 837,4 840 | 838,0 841 | 839,0 842 | 840,5 843 | 841,3 844 | 842,0 845 | 843,3 846 | 844,5 847 | 845,3 848 | 846,3 849 | 847,6 850 | 848,2 851 | 849,4 852 | 850,6 853 | 851,0 854 | 852,0 855 | 853,2 856 | 854,4 857 | 855,3 858 | 856,4 859 | 857,4 860 | 858,0 861 | 859,2 862 | 860,2 863 | 861,0 864 | 862,4 865 | 863,0 866 | 864,1 867 | 865,3 868 | 866,3 869 | 867,2 870 | 868,3 871 | 869,3 872 | 870,3 873 | 871,2 874 | 872,4 875 | 873,0 876 | 874,3 877 | 875,3 878 | 876,1 879 | 877,3 880 | 878,5 881 | 879,3 882 | 880,0 883 | 881,2 884 | 882,2 885 | 883,2 886 | 884,4 887 | 885,5 888 | 886,3 889 | 887,1 890 | 888,0 891 | 889,2 892 | 890,5 893 | 891,6 894 | 892,3 895 | 893,4 896 | 894,3 897 | 895,0 898 | 896,5 899 | 897,0 900 | 898,6 901 | 899,3 902 | 900,3 903 | 901,0 904 | 902,2 905 | 903,5 906 | 904,5 907 | 905,2 908 | 906,4 909 | 907,6 910 | 908,6 911 | 909,3 912 | 910,1 913 | 911,4 914 | 912,4 915 | 913,5 916 | 914,3 917 | 915,2 918 | 916,3 919 | 917,0 920 | 918,3 921 | 919,2 922 | 920,3 923 | 921,6 924 | 922,4 925 | 923,3 926 | 924,4 927 | 925,5 928 | 926,3 929 | 927,3 930 | 928,3 931 | 929,2 932 | 930,3 933 | 931,2 934 | 932,3 935 | 933,2 936 | 934,4 937 | 935,5 938 | 936,2 939 | 937,1 940 | 938,3 941 | 939,6 942 | 940,5 943 | 941,5 944 | 942,3 945 | 943,4 946 | 944,3 947 | 945,1 948 | 946,4 949 | 947,4 950 | 948,0 951 | 949,4 952 | 950,6 953 | 951,2 954 | 952,3 955 | 953,3 956 | 954,4 957 | 955,6 958 | 956,4 959 | 957,2 960 | 958,1 961 | 959,3 962 | 960,3 963 | 961,3 964 | 962,3 965 | 963,4 966 | 964,0 967 | 965,0 968 | 966,0 969 | 967,3 970 | 968,1 971 | 969,2 972 | 970,2 973 | 971,5 974 | 972,3 975 | 973,5 976 | 974,3 977 | 975,0 978 | 976,2 979 | 977,2 980 | 978,2 981 | 979,3 982 | 980,1 983 | 981,3 984 | 982,3 985 | 983,4 986 | 984,4 987 | 985,2 988 | 986,3 989 | 987,3 990 | 988,3 991 | 989,0 992 | 990,3 993 | 991,6 994 | 992,0 995 | 993,6 996 | 994,3 997 | 995,5 998 | 996,4 999 | 997,3 1000 | 998,2 1001 | 999,2 1002 | 1000,3 1003 | 1001,4 1004 | 1002,3 1005 | 1003,2 1006 | 1004,3 1007 | 1005,3 1008 | 1006,0 1009 | 1007,2 1010 | 1008,0 1011 | 1009,1 1012 | 1010,4 1013 | 1011,1 1014 | 1012,4 1015 | 1013,0 1016 | 1014,3 1017 | 1015,4 1018 | 1016,3 1019 | 1017,3 1020 | 1018,4 1021 | 1019,3 1022 | 1020,3 1023 | 1021,4 1024 | 1022,5 1025 | 1023,3 1026 | 1024,3 1027 | 1025,0 1028 | 1026,3 1029 | 1027,6 1030 | 1028,5 1031 | 1029,5 1032 | 1030,2 1033 | 1031,3 1034 | 1032,5 1035 | 1033,2 1036 | 1034,2 1037 | 1035,2 1038 | 1036,0 1039 | 1037,2 1040 | 1038,2 1041 | 1039,5 1042 | 1040,2 1043 | 1041,2 1044 | 1042,0 1045 | 1043,5 1046 | 1044,3 1047 | 1045,1 1048 | 1046,4 1049 | 1047,0 1050 | 1048,3 1051 | 1049,3 1052 | 1050,4 1053 | 1051,4 1054 | 1052,3 1055 | 1053,3 1056 | 1054,3 1057 | 1055,3 1058 | 1056,3 1059 | 1057,3 1060 | 1058,0 1061 | 1059,3 1062 | 1060,5 1063 | 1061,4 1064 | 1062,3 1065 | 1063,4 1066 | 1064,4 1067 | 1065,3 1068 | 1066,3 1069 | 1067,2 1070 | 1068,4 1071 | 1069,0 1072 | 1070,2 1073 | 1071,4 1074 | 1072,2 1075 | 1073,3 1076 | 1074,6 1077 | 1075,3 1078 | 1076,6 1079 | 1077,5 1080 | 1078,0 1081 | 1079,0 1082 | 1080,3 1083 | 1081,4 1084 | 1082,4 1085 | 1083,0 1086 | 1084,3 1087 | 1085,6 1088 | 1086,3 1089 | 1087,4 1090 | 1088,1 1091 | 1089,1 1092 | 1090,3 1093 | 1091,3 1094 | 1092,3 1095 | 1093,3 1096 | 1094,4 1097 | 1095,3 1098 | 1096,3 1099 | 1097,4 1100 | 1098,3 1101 | 1099,3 1102 | 1100,3 1103 | 1101,3 1104 | 1102,4 1105 | 1103,2 1106 | 1104,0 1107 | 1105,5 1108 | 1106,3 1109 | 1107,3 1110 | 1108,3 1111 | 1109,4 1112 | 1110,0 1113 | 1111,4 1114 | 1112,4 1115 | 1113,5 1116 | 1114,2 1117 | 1115,4 1118 | 1116,3 1119 | 1117,0 1120 | 1118,0 1121 | 1119,3 1122 | 1120,0 1123 | 1121,3 1124 | 1122,5 1125 | 1123,2 1126 | 1124,3 1127 | 1125,0 1128 | 1126,3 1129 | 1127,3 1130 | 1128,5 1131 | 1129,4 1132 | 1130,3 1133 | 1131,3 1134 | 1132,3 1135 | 1133,5 1136 | 1134,3 1137 | 1135,4 1138 | 1136,2 1139 | 1137,0 1140 | 1138,4 1141 | 1139,0 1142 | 1140,1 1143 | 1141,4 1144 | 1142,1 1145 | 1143,4 1146 | 1144,1 1147 | 1145,2 1148 | 1146,1 1149 | 1147,3 1150 | 1148,2 1151 | 1149,2 1152 | 1150,2 1153 | 1151,3 1154 | 1152,0 1155 | 1153,4 1156 | 1154,2 1157 | 1155,2 1158 | 1156,0 1159 | 1157,4 1160 | 1158,1 1161 | 1159,3 1162 | 1160,3 1163 | 1161,2 1164 | 1162,4 1165 | 1163,6 1166 | 1164,2 1167 | 1165,6 1168 | 1166,3 1169 | 1167,5 1170 | 1168,5 1171 | 1169,2 1172 | 1170,6 1173 | 1171,3 1174 | 1172,0 1175 | 1173,2 1176 | 1174,0 1177 | 1175,3 1178 | 1176,3 1179 | 1177,3 1180 | 1178,4 1181 | 1179,5 1182 | 1180,1 1183 | 1181,5 1184 | 1182,5 1185 | 1183,5 1186 | 1184,5 1187 | 1185,3 1188 | 1186,3 1189 | 1187,0 1190 | 1188,0 1191 | 1189,2 1192 | 1190,5 1193 | 1191,3 1194 | 1192,3 1195 | 1193,1 1196 | 1194,4 1197 | 1195,0 1198 | 1196,4 1199 | 1197,1 1200 | 1198,0 1201 | 1199,2 1202 | 1200,3 1203 | 1201,3 1204 | 1202,4 1205 | 1203,0 1206 | 1204,1 1207 | 1205,2 1208 | 1206,4 1209 | 1207,4 1210 | 1208,4 1211 | 1209,2 1212 | 1210,2 1213 | 1211,3 1214 | 1212,3 1215 | 1213,3 1216 | 1214,2 1217 | 1215,6 1218 | 1216,2 1219 | 1217,3 1220 | 1218,0 1221 | 1219,3 1222 | 1220,0 1223 | 1221,3 1224 | 1222,5 1225 | 1223,3 1226 | 1224,0 1227 | 1225,3 1228 | 1226,5 1229 | 1227,5 1230 | 1228,0 1231 | 1229,2 1232 | 1230,4 1233 | 1231,3 1234 | 1232,0 1235 | 1233,2 1236 | 1234,4 1237 | 1235,4 1238 | 1236,6 1239 | 1237,5 1240 | 1238,2 1241 | 1239,3 1242 | 1240,4 1243 | 1241,3 1244 | 1242,3 1245 | 1243,2 1246 | 1244,1 1247 | 1245,1 1248 | 1246,4 1249 | 1247,3 1250 | 1248,1 1251 | 1249,2 1252 | 1250,2 1253 | 1251,1 1254 | 1252,2 1255 | 1253,1 1256 | 1254,2 1257 | 1255,4 1258 | 1256,3 1259 | 1257,4 1260 | 1258,1 1261 | 1259,0 1262 | 1260,4 1263 | 1261,4 1264 | 1262,2 1265 | 1263,2 1266 | 1264,4 1267 | 1265,4 1268 | 1266,4 1269 | 1267,5 1270 | 1268,0 1271 | 1269,5 1272 | 1270,3 1273 | 1271,3 1274 | 1272,3 1275 | 1273,3 1276 | 1274,3 1277 | 1275,0 1278 | 1276,5 1279 | 1277,3 1280 | 1278,3 1281 | 1279,0 1282 | 1280,2 1283 | 1281,2 1284 | 1282,2 1285 | 1283,1 1286 | 1284,2 1287 | 1285,0 1288 | 1286,4 1289 | 1287,2 1290 | 1288,6 1291 | 1289,3 1292 | 1290,3 1293 | 1291,6 1294 | 1292,2 1295 | 1293,0 1296 | 1294,3 1297 | 1295,3 1298 | 1296,0 1299 | 1297,3 1300 | 1298,3 1301 | 1299,3 1302 | 1300,3 1303 | 1301,3 1304 | 1302,0 1305 | 1303,3 1306 | 1304,1 1307 | 1305,2 1308 | 1306,2 1309 | 1307,4 1310 | 1308,2 1311 | 1309,5 1312 | 1310,3 1313 | 1311,5 1314 | 1312,5 1315 | 1313,5 1316 | 1314,5 1317 | 1315,3 1318 | 1316,3 1319 | 1317,2 1320 | 1318,4 1321 | 1319,3 1322 | 1320,4 1323 | 1321,3 1324 | 1322,4 1325 | 1323,3 1326 | 1324,5 1327 | 1325,3 1328 | 1326,3 1329 | 1327,6 1330 | 1328,6 1331 | 1329,3 1332 | 1330,0 1333 | 1331,3 1334 | 1332,0 1335 | 1333,6 1336 | 1334,3 1337 | 1335,1 1338 | 1336,4 1339 | 1337,1 1340 | 1338,5 1341 | 1339,2 1342 | 1340,3 1343 | 1341,0 1344 | 1342,4 1345 | 1343,4 1346 | 1344,3 1347 | 1345,2 1348 | 1346,1 1349 | 1347,3 1350 | 1348,3 1351 | 1349,4 1352 | 1350,4 1353 | 1351,6 1354 | 1352,0 1355 | 1353,5 1356 | 1354,5 1357 | 1355,3 1358 | 1356,3 1359 | 1357,0 1360 | 1358,2 1361 | 1359,6 1362 | 1360,5 1363 | 1361,2 1364 | 1362,6 1365 | 1363,3 1366 | 1364,3 1367 | 1365,3 1368 | 1366,4 1369 | 1367,1 1370 | 1368,5 1371 | 1369,4 1372 | 1370,6 1373 | 1371,3 1374 | 1372,6 1375 | 1373,2 1376 | 1374,0 1377 | 1375,5 1378 | 1376,0 1379 | 1377,5 1380 | 1378,2 1381 | 1379,4 1382 | 1380,4 1383 | 1381,4 1384 | 1382,3 1385 | 1383,2 1386 | 1384,2 1387 | 1385,4 1388 | 1386,3 1389 | 1387,6 1390 | 1388,0 1391 | 1389,2 1392 | 1390,4 1393 | 1391,0 1394 | 1392,3 1395 | 1393,3 1396 | 1394,5 1397 | 1395,0 1398 | 1396,6 1399 | 1397,0 1400 | 1398,2 1401 | 1399,6 1402 | 1400,3 1403 | 1401,4 1404 | 1402,6 1405 | 1403,3 1406 | 1404,5 1407 | 1405,3 1408 | 1406,4 1409 | 1407,2 1410 | 1408,5 1411 | 1409,5 1412 | 1410,0 1413 | 1411,3 1414 | 1412,2 1415 | 1413,3 1416 | 1414,5 1417 | 1415,5 1418 | 1416,0 1419 | 1417,4 1420 | 1418,4 1421 | 1419,4 1422 | 1420,6 1423 | 1421,6 1424 | 1422,4 1425 | 1423,3 1426 | 1424,3 1427 | 1425,4 1428 | 1426,2 1429 | 1427,2 1430 | 1428,4 1431 | 1429,4 1432 | 1430,2 1433 | 1431,2 1434 | 1432,3 1435 | 1433,2 1436 | 1434,3 1437 | 1435,0 1438 | 1436,5 1439 | 1437,4 1440 | 1438,3 1441 | 1439,3 1442 | 1440,3 1443 | 1441,5 1444 | 1442,3 1445 | 1443,4 1446 | 1444,2 1447 | 1445,3 1448 | 1446,3 1449 | 1447,3 1450 | 1448,1 1451 | 1449,4 1452 | 1450,3 1453 | 1451,4 1454 | 1452,4 1455 | 1453,3 1456 | 1454,4 1457 | 1455,5 1458 | 1456,3 1459 | 1457,3 1460 | 1458,3 1461 | 1459,1 1462 | 1460,3 1463 | 1461,4 1464 | 1462,3 1465 | 1463,3 1466 | 1464,6 1467 | 1465,3 1468 | 1466,2 1469 | 1467,0 1470 | 1468,0 1471 | 1469,3 1472 | 1470,5 1473 | 1471,2 1474 | 1472,3 1475 | 1473,3 1476 | 1474,4 1477 | 1475,0 1478 | 1476,6 1479 | 1477,3 1480 | 1478,5 1481 | 1479,3 1482 | 1480,2 1483 | 1481,4 1484 | 1482,6 1485 | 1483,2 1486 | 1484,4 1487 | 1485,6 1488 | 1486,2 1489 | 1487,6 1490 | 1488,3 1491 | 1489,2 1492 | 1490,1 1493 | 1491,4 1494 | 1492,2 1495 | 1493,4 1496 | 1494,5 1497 | 1495,6 1498 | 1496,3 1499 | 1497,3 1500 | 1498,3 1501 | 1499,2 1502 | 1500,5 1503 | 1501,6 1504 | 1502,3 1505 | 1503,3 1506 | 1504,6 1507 | 1505,1 1508 | 1506,2 1509 | 1507,0 1510 | 1508,3 1511 | 1509,2 1512 | 1510,4 1513 | 1511,3 1514 | 1512,5 1515 | 1513,2 1516 | 1514,3 1517 | 1515,0 1518 | 1516,2 1519 | 1517,0 1520 | 1518,4 1521 | 1519,4 1522 | 1520,2 1523 | 1521,0 1524 | 1522,4 1525 | 1523,0 1526 | 1524,0 1527 | 1525,6 1528 | 1526,0 1529 | 1527,0 1530 | 1528,2 1531 | 1529,4 1532 | 1530,4 1533 | 1531,4 1534 | 1532,4 1535 | 1533,4 1536 | 1534,4 1537 | 1535,0 1538 | 1536,0 1539 | 1537,5 1540 | 1538,5 1541 | 1539,6 1542 | 1540,0 1543 | 1541,3 1544 | 1542,3 1545 | 1543,5 1546 | 1544,5 1547 | 1545,4 1548 | 1546,2 1549 | 1547,1 1550 | 1548,3 1551 | 1549,5 1552 | 1550,2 1553 | 1551,1 1554 | 1552,1 1555 | 1553,5 1556 | 1554,3 1557 | 1555,5 1558 | 1556,0 1559 | 1557,2 1560 | 1558,3 1561 | 1559,4 1562 | 1560,1 1563 | 1561,1 1564 | 1562,2 1565 | 1563,3 1566 | 1564,1 1567 | 1565,2 1568 | 1566,2 1569 | 1567,3 1570 | 1568,2 1571 | 1569,4 1572 | 1570,3 1573 | 1571,1 1574 | 1572,1 1575 | 1573,3 1576 | 1574,3 1577 | 1575,3 1578 | 1576,3 1579 | 1577,3 1580 | 1578,5 1581 | 1579,5 1582 | 1580,0 1583 | 1581,3 1584 | 1582,3 1585 | 1583,0 1586 | 1584,1 1587 | 1585,4 1588 | 1586,2 1589 | 1587,6 1590 | 1588,0 1591 | 1589,2 1592 | 1590,3 1593 | 1591,3 1594 | 1592,6 1595 | 1593,6 1596 | 1594,5 1597 | 1595,3 1598 | 1596,2 1599 | 1597,3 1600 | 1598,3 1601 | 1599,2 1602 | 1600,3 1603 | 1601,2 1604 | 1602,0 1605 | 1603,3 1606 | 1604,2 1607 | 1605,3 1608 | 1606,2 1609 | 1607,3 1610 | 1608,3 1611 | 1609,1 1612 | 1610,2 1613 | 1611,3 1614 | 1612,2 1615 | 1613,3 1616 | 1614,3 1617 | 1615,3 1618 | 1616,6 1619 | 1617,2 1620 | 1618,4 1621 | 1619,5 1622 | 1620,1 1623 | 1621,3 1624 | 1622,3 1625 | 1623,1 1626 | 1624,1 1627 | 1625,2 1628 | 1626,4 1629 | 1627,2 1630 | 1628,0 1631 | 1629,2 1632 | 1630,5 1633 | 1631,0 1634 | 1632,2 1635 | 1633,3 1636 | 1634,4 1637 | 1635,4 1638 | 1636,3 1639 | 1637,0 1640 | 1638,1 1641 | 1639,4 1642 | 1640,1 1643 | 1641,3 1644 | 1642,2 1645 | 1643,4 1646 | 1644,0 1647 | 1645,3 1648 | 1646,2 1649 | 1647,6 1650 | 1648,2 1651 | 1649,4 1652 | 1650,5 1653 | 1651,1 1654 | 1652,0 1655 | 1653,4 1656 | 1654,3 1657 | 1655,0 1658 | 1656,1 1659 | 1657,3 1660 | 1658,0 1661 | 1659,2 1662 | 1660,6 1663 | 1661,5 1664 | 1662,3 1665 | 1663,3 1666 | 1664,3 1667 | 1665,3 1668 | 1666,3 1669 | 1667,4 1670 | 1668,2 1671 | 1669,0 1672 | 1670,1 1673 | 1671,4 1674 | 1672,0 1675 | 1673,3 1676 | 1674,6 1677 | 1675,6 1678 | 1676,6 1679 | 1677,5 1680 | 1678,3 1681 | 1679,3 1682 | 1680,0 1683 | 1681,3 1684 | 1682,0 1685 | 1683,6 1686 | 1684,3 1687 | 1685,2 1688 | 1686,4 1689 | 1687,2 1690 | 1688,4 1691 | 1689,2 1692 | 1690,5 1693 | 1691,3 1694 | 1692,3 1695 | 1693,0 1696 | 1694,2 1697 | 1695,0 1698 | 1696,0 1699 | 1697,3 1700 | 1698,6 1701 | 1699,1 1702 | 1700,5 1703 | 1701,3 1704 | 1702,4 1705 | 1703,4 1706 | 1704,3 1707 | 1705,1 1708 | 1706,2 1709 | 1707,5 1710 | 1708,3 1711 | 1709,2 1712 | 1710,2 1713 | 1711,2 1714 | 1712,2 1715 | 1713,0 1716 | 1714,2 1717 | 1715,2 1718 | 1716,2 1719 | 1717,2 1720 | 1718,2 1721 | 1719,2 1722 | 1720,2 1723 | 1721,2 1724 | 1722,2 1725 | 1723,2 1726 | 1724,2 1727 | 1725,2 1728 | 1726,2 1729 | 1727,2 1730 | 1728,3 1731 | 1729,2 1732 | 1730,2 1733 | 1731,2 1734 | 1732,2 1735 | 1733,2 1736 | 1734,2 1737 | 1735,1 1738 | 1736,2 1739 | 1737,2 1740 | 1738,2 1741 | 1739,2 1742 | 1740,2 1743 | 1741,3 1744 | 1742,2 1745 | 1743,2 1746 | 1744,2 1747 | 1745,2 1748 | 1746,2 1749 | 1747,2 1750 | 1748,2 1751 | 1749,2 1752 | 1750,2 1753 | 1751,2 1754 | 1752,2 1755 | 1753,2 1756 | 1754,2 1757 | 1755,2 1758 | 1756,2 1759 | 1757,2 1760 | 1758,2 1761 | 1759,2 1762 | 1760,2 1763 | 1761,2 1764 | 1762,2 1765 | 1763,2 1766 | 1764,5 1767 | 1765,2 1768 | 1766,2 1769 | 1767,1 1770 | 1768,1 1771 | 1769,1 1772 | 1770,1 1773 | 1771,1 1774 | 1772,1 1775 | 1773,1 1776 | 1774,4 1777 | 1775,1 1778 | 1776,1 1779 | 1777,1 1780 | 1778,1 1781 | 1779,1 1782 | 1780,1 1783 | 1781,1 1784 | 1782,1 1785 | 1783,1 1786 | 1784,1 1787 | 1785,4 1788 | 1786,1 1789 | 1787,1 1790 | 1788,1 1791 | 1789,1 1792 | 1790,1 1793 | 1791,1 1794 | 1792,3 1795 | 1793,4 1796 | 1794,4 1797 | 1795,4 1798 | 1796,4 1799 | 1797,1 1800 | 1798,1 1801 | 1799,3 1802 | 1800,1 1803 | 1801,0 1804 | 1802,3 1805 | 1803,0 1806 | 1804,2 1807 | 1805,1 1808 | 1806,3 1809 | 1807,3 1810 | 1808,3 1811 | 1809,3 1812 | 1810,3 1813 | 1811,3 1814 | 1812,3 1815 | 1813,3 1816 | 1814,3 1817 | 1815,3 1818 | 1816,3 1819 | 1817,3 1820 | 1818,3 1821 | 1819,3 1822 | 1820,3 1823 | 1821,3 1824 | 1822,3 1825 | 1823,3 1826 | 1824,5 1827 | 1825,5 1828 | 1826,5 1829 | 1827,5 1830 | 1828,5 1831 | 1829,5 1832 | 1830,2 1833 | 1831,2 1834 | 1832,2 1835 | 1833,2 1836 | 1834,1 1837 | 1835,6 1838 | 1836,6 1839 | 1837,3 1840 | 1838,0 1841 | 1839,0 1842 | 1840,5 1843 | 1841,0 1844 | 1842,5 1845 | 1843,0 1846 | 1844,3 1847 | 1845,5 1848 | 1846,3 1849 | 1847,0 1850 | 1848,0 1851 | 1849,6 1852 | 1850,0 1853 | 1851,6 1854 | 1852,3 1855 | 1853,3 1856 | 1854,1 1857 | 1855,3 1858 | 1856,1 1859 | 1857,3 1860 | 1858,3 1861 | 1859,3 1862 | 1860,3 1863 | 1861,3 1864 | 1862,3 1865 | 1863,3 1866 | 1864,3 1867 | 1865,3 1868 | 1866,3 1869 | 1867,3 1870 | 1868,3 1871 | 1869,3 1872 | 1870,3 1873 | 1871,3 1874 | 1872,3 1875 | 1873,3 1876 | 1874,3 1877 | 1875,3 1878 | 1876,3 1879 | 1877,3 1880 | 1878,5 1881 | 1879,5 1882 | 1880,5 1883 | 1881,5 1884 | 1882,5 1885 | 1883,5 1886 | 1884,5 1887 | 1885,5 1888 | 1886,2 1889 | 1887,2 1890 | 1888,2 1891 | 1889,4 1892 | 1890,4 1893 | 1891,4 1894 | 1892,0 1895 | 1893,3 1896 | 1894,3 1897 | 1895,2 1898 | 1896,5 1899 | 1897,5 1900 | 1898,5 1901 | 1899,5 1902 | 1900,6 1903 | 1901,5 1904 | 1902,5 1905 | 1903,5 1906 | 1904,5 1907 | 1905,0 1908 | 1906,4 1909 | 1907,4 1910 | 1908,4 1911 | 1909,0 1912 | 1910,0 1913 | 1911,5 1914 | 1912,0 1915 | 1913,0 1916 | 1914,6 1917 | 1915,6 1918 | 1916,6 1919 | 1917,6 1920 | 1918,6 1921 | 1919,6 1922 | 1920,0 1923 | 1921,0 1924 | 1922,0 1925 | 1923,0 1926 | 1924,3 1927 | 1925,0 1928 | 1926,0 1929 | 1927,0 1930 | 1928,3 1931 | 1929,3 1932 | 1930,0 1933 | 1931,3 1934 | 1932,3 1935 | 1933,3 1936 | 1934,3 1937 | 1935,3 1938 | 1936,3 1939 | 1937,3 1940 | 1938,3 1941 | 1939,3 1942 | 1940,3 1943 | 1941,3 1944 | 1942,3 1945 | 1943,3 1946 | 1944,3 1947 | 1945,3 1948 | 1946,3 1949 | 1947,3 1950 | 1948,3 1951 | 1949,3 1952 | 1950,3 1953 | 1951,3 1954 | 1952,3 1955 | 1953,5 1956 | 1954,5 1957 | 1955,5 1958 | 1956,5 1959 | 1957,3 1960 | 1958,5 1961 | 1959,5 1962 | 1960,5 1963 | 1961,5 1964 | 1962,5 1965 | 1963,5 1966 | 1964,4 1967 | 1965,4 1968 | 1966,4 1969 | 1967,4 1970 | 1968,4 1971 | 1969,4 1972 | 1970,4 1973 | 1971,4 1974 | 1972,6 1975 | 1973,6 1976 | 1974,5 1977 | 1975,6 1978 | 1976,6 1979 | 1977,3 1980 | 1978,5 1981 | 1979,5 1982 | 1980,5 1983 | 1981,0 1984 | 1982,5 1985 | 1983,0 1986 | 1984,4 1987 | 1985,4 1988 | 1986,3 1989 | 1987,3 1990 | 1988,3 1991 | 1989,2 1992 | 1990,2 1993 | 1991,1 1994 | 1992,3 1995 | 1993,3 1996 | 1994,3 1997 | 1995,3 1998 | 1996,3 1999 | 1997,3 2000 | 1998,5 2001 | 1999,3 2002 | 2000,3 2003 | 2001,4 2004 | 2002,4 2005 | 2003,3 2006 | 2004,3 2007 | 2005,3 2008 | 2006,3 2009 | 2007,3 2010 | 2008,3 2011 | 2009,3 2012 | 2010,0 2013 | 2011,3 2014 | 2012,3 2015 | 2013,6 2016 | 2014,3 2017 | 2015,6 2018 | 2016,0 2019 | 2017,5 2020 | 2018,0 2021 | 2019,0 2022 | 2020,4 2023 | 2021,0 2024 | 2022,6 2025 | 2023,5 2026 | 2024,5 2027 | 2025,0 2028 | 2026,1 2029 | 2027,3 2030 | 2028,3 2031 | 2029,5 2032 | 2030,6 2033 | 2031,5 2034 | 2032,3 2035 | 2033,3 2036 | 2034,4 2037 | 2035,3 2038 | 2036,3 2039 | 2037,3 2040 | 2038,3 2041 | 2039,3 2042 | 2040,4 2043 | 2041,3 2044 | 2042,3 2045 | 2043,4 2046 | 2044,3 2047 | 2045,1 2048 | 2046,1 2049 | 2047,0 2050 | 2048,1 2051 | 2049,0 2052 | 2050,6 2053 | 2051,0 2054 | 2052,0 2055 | 2053,0 2056 | 2054,0 2057 | 2055,0 2058 | 2056,0 2059 | 2057,0 2060 | 2058,5 2061 | 2059,0 2062 | 2060,5 2063 | 2061,5 2064 | 2062,5 2065 | 2063,3 2066 | 2064,3 2067 | 2065,3 2068 | 2066,3 2069 | 2067,3 2070 | 2068,0 2071 | 2069,0 2072 | 2070,0 2073 | 2071,2 2074 | 2072,0 2075 | 2073,0 2076 | 2074,0 2077 | 2075,3 2078 | 2076,3 2079 | 2077,3 2080 | 2078,3 2081 | 2079,1 2082 | 2080,1 2083 | 2081,1 2084 | 2082,1 2085 | 2083,2 2086 | 2084,1 2087 | 2085,1 2088 | 2086,1 2089 | 2087,1 2090 | 2088,1 2091 | 2089,0 2092 | 2090,1 2093 | 2091,3 2094 | 2092,1 2095 | 2093,1 2096 | 2094,1 2097 | 2095,1 2098 | 2096,1 2099 | 2097,0 2100 | 2098,0 2101 | 2099,0 2102 | 2100,5 2103 | 2101,5 2104 | 2102,5 2105 | 2103,5 2106 | 2104,3 2107 | 2105,5 2108 | 2106,1 2109 | 2107,1 2110 | 2108,3 2111 | 2109,6 2112 | 2110,6 2113 | 2111,5 2114 | 2112,6 2115 | 2113,2 2116 | 2114,3 2117 | 2115,3 2118 | 2116,0 2119 | 2117,3 2120 | 2118,3 2121 | 2119,3 2122 | 2120,4 2123 | 2121,4 2124 | 2122,4 2125 | 2123,4 2126 | 2124,3 2127 | 2125,3 2128 | 2126,3 2129 | 2127,4 2130 | 2128,3 2131 | 2129,3 2132 | 2130,4 2133 | 2131,0 2134 | 2132,6 2135 | 2133,0 2136 | 2134,6 2137 | 2135,6 2138 | 2136,0 2139 | 2137,0 2140 | 2138,3 2141 | 2139,3 2142 | 2140,3 2143 | 2141,3 2144 | 2142,3 2145 | 2143,1 2146 | 2144,1 2147 | 2145,1 2148 | 2146,3 2149 | 2147,3 2150 | 2148,3 2151 | 2149,3 2152 | 2150,5 2153 | 2151,6 2154 | 2152,3 2155 | 2153,4 2156 | 2154,6 2157 | 2155,0 2158 | 2156,0 2159 | 2157,6 2160 | 2158,6 2161 | 2159,6 2162 | 2160,6 2163 | 2161,6 2164 | 2162,3 2165 | 2163,3 2166 | 2164,6 2167 | 2165,6 2168 | 2166,5 2169 | 2167,2 2170 | 2168,1 2171 | 2169,2 2172 | 2170,1 2173 | 2171,0 2174 | 2172,0 2175 | 2173,6 2176 | 2174,6 2177 | 2175,2 2178 | 2176,3 2179 | 2177,3 2180 | 2178,5 2181 | 2179,0 2182 | 2180,0 2183 | 2181,0 2184 | 2182,0 2185 | 2183,0 2186 | 2184,5 2187 | 2185,5 2188 | 2186,0 2189 | 2187,3 2190 | 2188,5 2191 | 2189,0 2192 | 2190,6 2193 | 2191,3 2194 | 2192,6 2195 | 2193,0 2196 | 2194,0 2197 | 2195,0 2198 | 2196,0 2199 | 2197,0 2200 | 2198,0 2201 | 2199,0 2202 | 2200,0 2203 | 2201,0 2204 | 2202,0 2205 | 2203,0 2206 | 2204,3 2207 | 2205,3 2208 | 2206,3 2209 | 2207,3 2210 | 2208,1 2211 | 2209,6 2212 | 2210,1 2213 | 2211,0 2214 | 2212,3 2215 | 2213,3 2216 | 2214,3 2217 | 2215,3 2218 | 2216,3 2219 | 2217,6 2220 | 2218,1 2221 | 2219,0 2222 | 2220,2 2223 | 2221,2 2224 | 2222,4 2225 | 2223,4 2226 | 2224,4 2227 | 2225,4 2228 | 2226,4 2229 | 2227,5 2230 | 2228,6 2231 | 2229,3 2232 | 2230,3 2233 | 2231,0 2234 | 2232,0 2235 | 2233,0 2236 | 2234,0 2237 | 2235,5 2238 | 2236,4 2239 | 2237,4 2240 | 2238,4 2241 | 2239,4 2242 | 2240,4 2243 | 2241,3 2244 | 2242,3 2245 | 2243,3 2246 | 2244,3 2247 | 2245,3 2248 | 2246,0 2249 | 2247,3 2250 | 2248,4 2251 | 2249,4 2252 | 2250,4 2253 | 2251,1 2254 | 2252,1 2255 | 2253,3 2256 | 2254,1 2257 | 2255,1 2258 | 2256,5 2259 | 2257,1 2260 | 2258,3 2261 | 2259,4 2262 | 2260,4 2263 | 2261,4 2264 | 2262,4 2265 | 2263,4 2266 | 2264,4 2267 | 2265,4 2268 | 2266,0 2269 | 2267,0 2270 | 2268,0 2271 | 2269,5 2272 | 2270,5 2273 | 2271,5 2274 | 2272,5 2275 | 2273,5 2276 | 2274,0 2277 | 2275,5 2278 | 2276,3 2279 | 2277,0 2280 | 2278,6 2281 | 2279,2 2282 | 2280,0 2283 | 2281,5 2284 | 2282,3 2285 | 2283,3 2286 | 2284,5 2287 | 2285,5 2288 | 2286,5 2289 | 2287,5 2290 | 2288,5 2291 | 2289,4 2292 | 2290,4 2293 | 2291,0 2294 | 2292,4 2295 | 2293,0 2296 | 2294,4 2297 | 2295,0 2298 | 2296,3 2299 | 2297,4 2300 | 2298,4 2301 | 2299,4 2302 | 2300,1 2303 | 2301,3 2304 | 2302,3 2305 | 2303,3 2306 | 2304,3 2307 | 2305,3 2308 | 2306,4 2309 | 2307,2 2310 | 2308,3 2311 | 2309,3 2312 | 2310,3 2313 | 2311,0 2314 | 2312,0 2315 | 2313,2 2316 | 2314,3 2317 | 2315,3 2318 | 2316,3 2319 | 2317,3 2320 | 2318,1 2321 | 2319,1 2322 | 2320,3 2323 | 2321,0 2324 | 2322,1 2325 | 2323,4 2326 | 2324,1 2327 | 2325,1 2328 | 2326,1 2329 | 2327,1 2330 | 2328,1 2331 | 2329,1 2332 | 2330,0 2333 | 2331,1 2334 | 2332,0 2335 | 2333,0 2336 | 2334,2 2337 | 2335,4 2338 | 2336,4 2339 | 2337,4 2340 | 2338,3 2341 | 2339,3 2342 | 2340,3 2343 | 2341,4 2344 | 2342,0 2345 | 2343,3 2346 | 2344,3 2347 | 2345,3 2348 | 2346,3 2349 | 2347,0 2350 | 2348,3 2351 | 2349,3 2352 | 2350,4 2353 | 2351,4 2354 | 2352,4 2355 | 2353,4 2356 | 2354,4 2357 | 2355,4 2358 | 2356,0 2359 | 2357,4 2360 | 2358,3 2361 | 2359,2 2362 | 2360,0 2363 | 2361,3 2364 | 2362,4 2365 | 2363,5 2366 | 2364,0 2367 | 2365,2 2368 | 2366,2 2369 | 2367,3 2370 | 2368,3 2371 | 2369,3 2372 | 2370,3 2373 | 2371,3 2374 | 2372,2 2375 | 2373,3 2376 | 2374,5 2377 | 2375,5 2378 | 2376,4 2379 | 2377,1 2380 | 2378,4 2381 | 2379,4 2382 | 2380,4 2383 | 2381,3 2384 | 2382,4 2385 | 2383,4 2386 | 2384,0 2387 | 2385,4 2388 | 2386,4 2389 | 2387,4 2390 | 2388,5 2391 | 2389,2 2392 | 2390,2 2393 | 2391,2 2394 | 2392,2 2395 | 2393,4 2396 | 2394,6 2397 | 2395,6 2398 | 2396,6 2399 | 2397,6 2400 | 2398,3 2401 | 2399,4 2402 | 2400,4 2403 | 2401,4 2404 | 2402,1 2405 | 2403,3 2406 | 2404,0 2407 | 2405,3 2408 | 2406,3 2409 | 2407,5 2410 | 2408,0 2411 | 2409,2 2412 | 2410,3 2413 | 2411,3 2414 | 2412,3 2415 | 2413,3 2416 | 2414,3 2417 | 2415,2 2418 | 2416,4 2419 | 2417,4 2420 | 2418,0 2421 | 2419,0 2422 | 2420,3 2423 | 2421,2 2424 | 2422,6 2425 | 2423,6 2426 | 2424,0 2427 | 2425,3 2428 | 2426,3 2429 | 2427,3 2430 | 2428,5 2431 | 2429,1 2432 | 2430,3 2433 | 2431,4 2434 | 2432,4 2435 | 2433,2 2436 | 2434,4 2437 | 2435,4 2438 | 2436,4 2439 | 2437,3 2440 | 2438,3 2441 | 2439,2 2442 | 2440,2 2443 | 2441,2 2444 | 2442,2 2445 | 2443,2 2446 | 2444,2 2447 | 2445,2 2448 | 2446,2 2449 | 2447,2 2450 | 2448,2 2451 | 2449,0 2452 | 2450,2 2453 | 2451,2 2454 | 2452,2 2455 | 2453,0 2456 | 2454,6 2457 | 2455,6 2458 | 2456,5 2459 | 2457,6 2460 | 2458,6 2461 | 2459,3 2462 | 2460,2 2463 | 2461,6 2464 | 2462,3 2465 | 2463,4 2466 | 2464,4 2467 | 2465,4 2468 | 2466,2 2469 | 2467,6 2470 | 2468,6 2471 | 2469,0 2472 | 2470,0 2473 | 2471,3 2474 | 2472,0 2475 | 2473,4 2476 | 2474,4 2477 | 2475,3 2478 | 2476,2 2479 | 2477,3 2480 | 2478,1 2481 | 2479,6 2482 | 2480,6 2483 | 2481,5 2484 | 2482,3 2485 | 2483,4 2486 | 2484,3 2487 | 2485,5 2488 | 2486,3 2489 | 2487,1 2490 | 2488,1 2491 | 2489,3 2492 | 2490,4 2493 | 2491,5 2494 | 2492,2 2495 | 2493,3 2496 | 2494,3 2497 | 2495,3 2498 | 2496,4 2499 | 2497,5 2500 | 2498,4 2501 | 2499,0 2502 | 2500,3 2503 | 2501,3 2504 | 2502,0 2505 | 2503,2 2506 | 2504,1 2507 | 2505,1 2508 | 2506,5 2509 | 2507,2 2510 | 2508,3 2511 | 2509,3 2512 | 2510,5 2513 | 2511,0 2514 | 2512,2 2515 | 2513,3 2516 | 2514,2 2517 | 2515,2 2518 | 2516,5 2519 | 2517,5 2520 | 2518,4 2521 | 2519,3 2522 | 2520,4 2523 | 2521,3 2524 | 2522,2 2525 | 2523,2 2526 | 2524,4 2527 | 2525,2 2528 | 2526,4 2529 | 2527,5 2530 | 2528,5 2531 | 2529,3 2532 | 2530,2 2533 | 2531,3 2534 | 2532,1 2535 | 2533,0 2536 | 2534,3 2537 | 2535,3 2538 | 2536,4 2539 | 2537,5 2540 | 2538,4 2541 | 2539,3 2542 | 2540,3 2543 | 2541,3 2544 | 2542,3 2545 | 2543,3 2546 | 2544,0 2547 | 2545,1 2548 | 2546,2 2549 | 2547,4 2550 | 2548,4 2551 | 2549,4 2552 | 2550,3 2553 | 2551,3 2554 | 2552,3 2555 | 2553,5 2556 | 2554,2 2557 | 2555,3 2558 | 2556,2 2559 | 2557,2 2560 | 2558,2 2561 | 2559,3 2562 | 2560,2 2563 | 2561,2 2564 | 2562,0 2565 | 2563,4 2566 | 2564,4 2567 | 2565,3 2568 | 2566,3 2569 | 2567,3 2570 | 2568,3 2571 | 2569,3 2572 | 2570,3 2573 | 2571,3 2574 | 2572,3 2575 | 2573,3 2576 | 2574,3 2577 | 2575,0 2578 | 2576,0 2579 | 2577,3 2580 | 2578,0 2581 | 2579,3 2582 | 2580,0 2583 | 2581,2 2584 | 2582,3 2585 | 2583,4 2586 | 2584,1 2587 | 2585,2 2588 | 2586,5 2589 | 2587,4 2590 | 2588,3 2591 | 2589,3 2592 | 2590,3 2593 | 2591,1 2594 | 2592,5 2595 | 2593,3 2596 | 2594,4 2597 | 2595,3 2598 | 2596,2 2599 | 2597,2 2600 | 2598,1 2601 | 2599,3 2602 | 2600,3 2603 | 2601,3 2604 | 2602,3 2605 | 2603,3 2606 | 2604,6 2607 | 2605,3 2608 | 2606,3 2609 | 2607,3 2610 | 2608,6 2611 | 2609,3 2612 | 2610,3 2613 | 2611,3 2614 | 2612,2 2615 | 2613,3 2616 | 2614,2 2617 | 2615,4 2618 | 2616,2 2619 | 2617,4 2620 | 2618,2 2621 | 2619,2 2622 | 2620,1 2623 | 2621,5 2624 | 2622,6 2625 | 2623,4 2626 | 2624,3 2627 | 2625,3 2628 | 2626,3 2629 | 2627,2 2630 | 2628,5 2631 | 2629,3 2632 | 2630,3 2633 | 2631,4 2634 | 2632,3 2635 | 2633,3 2636 | 2634,3 2637 | 2635,3 2638 | 2636,3 2639 | 2637,4 2640 | 2638,6 2641 | 2639,0 2642 | 2640,3 2643 | 2641,2 2644 | 2642,2 2645 | 2643,2 2646 | 2644,5 2647 | 2645,4 2648 | 2646,4 2649 | 2647,4 2650 | 2648,4 2651 | 2649,6 2652 | 2650,3 2653 | 2651,2 2654 | 2652,2 2655 | 2653,0 2656 | 2654,2 2657 | 2655,2 2658 | 2656,2 2659 | 2657,2 2660 | 2658,2 2661 | 2659,3 2662 | 2660,4 2663 | 2661,4 2664 | 2662,4 2665 | 2663,3 2666 | 2664,3 2667 | 2665,4 2668 | 2666,4 2669 | 2667,3 2670 | 2668,3 2671 | 2669,3 2672 | 2670,4 2673 | 2671,4 2674 | 2672,4 2675 | 2673,4 2676 | 2674,4 2677 | 2675,4 2678 | 2676,3 2679 | 2677,4 2680 | 2678,4 2681 | 2679,4 2682 | 2680,4 2683 | 2681,4 2684 | 2682,4 2685 | 2683,4 2686 | 2684,4 2687 | 2685,2 2688 | 2686,3 2689 | 2687,3 2690 | 2688,3 2691 | 2689,2 2692 | 2690,6 2693 | 2691,2 2694 | 2692,3 2695 | 2693,3 2696 | 2694,4 2697 | 2695,4 2698 | 2696,3 2699 | 2697,3 2700 | 2698,3 2701 | 2699,3 2702 | 2700,3 2703 | 2701,3 2704 | 2702,0 2705 | 2703,3 2706 | 2704,3 2707 | 2705,3 2708 | 2706,3 2709 | 2707,3 2710 | -------------------------------------------------------------------------------- /output/chameleon_personas.json: -------------------------------------------------------------------------------- 1 | {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 8, "10": 9, "11": 9, "12": 10, "13": 11, "14": 12, "15": 13, "16": 14, "17": 15, "18": 16, "19": 16, "20": 17, "21": 18, "22": 18, "23": 18, "24": 19, "25": 20, "26": 21, "27": 22, "28": 23, "29": 24, "30": 25, "31": 25, "32": 26, "33": 26, "34": 27, "35": 27, "36": 28, "37": 29, "38": 29, "39": 29, "40": 29, "41": 30, "42": 31, "43": 31, "44": 32, "45": 33, "46": 34, "47": 35, "48": 36, "49": 36, "50": 37, "51": 38, "52": 38, "53": 38, "54": 39, "55": 39, "56": 39, "57": 39, "58": 39, "59": 39, "60": 40, "61": 41, "62": 42, "63": 43, "64": 44, "65": 45, "66": 46, "67": 47, "68": 47, "69": 48, "70": 49, "71": 49, "72": 50, "73": 51, "74": 51, "75": 51, "76": 52, "77": 53, "78": 54, "79": 55, "80": 56, "81": 57, "82": 58, "83": 59, "84": 60, "85": 61, "86": 62, "87": 62, "88": 63, "89": 64, "90": 65, "91": 66, "92": 66, "93": 67, "94": 68, "95": 68, "96": 69, "97": 70, "98": 71, "99": 72, "100": 72, "101": 72, "102": 72, "103": 72, "104": 73, "105": 74, "106": 75, "107": 76, "108": 76, "109": 77, "110": 77, "111": 77, "112": 78, "113": 79, "114": 80, "115": 81, "116": 82, "117": 83, "118": 83, "119": 84, "120": 85, "121": 86, "122": 87, "123": 88, "124": 88, "125": 88, "126": 89, "127": 90, "128": 90, "129": 91, "130": 92, "131": 92, "132": 93, "133": 94, "134": 95, "135": 96, "136": 97, "137": 97, "138": 98, "139": 98, "140": 98, "141": 98, "142": 98, "143": 99, "144": 100, "145": 101, "146": 102, "147": 103, "148": 104, "149": 104, "150": 105, "151": 106, "152": 106, "153": 106, "154": 106, "155": 107, "156": 108, "157": 108, "158": 108, "159": 109, "160": 109, "161": 109, "162": 109, "163": 109, "164": 110, "165": 110, "166": 111, "167": 112, "168": 112, "169": 112, "170": 112, "171": 112, "172": 113, "173": 114, "174": 115, "175": 115, "176": 115, "177": 115, "178": 115, "179": 115, "180": 115, "181": 116, "182": 117, "183": 117, "184": 117, "185": 117, "186": 117, "187": 118, "188": 119, "189": 119, "190": 120, "191": 121, "192": 122, "193": 123, "194": 124, "195": 125, "196": 126, "197": 127, "198": 128, "199": 128, "200": 129, "201": 130, "202": 131, "203": 132, "204": 133, "205": 133, "206": 134, "207": 135, "208": 136, "209": 137, "210": 137, "211": 138, "212": 138, "213": 139, "214": 140, "215": 141, "216": 142, "217": 143, "218": 144, "219": 145, "220": 146, "221": 147, "222": 148, "223": 149, "224": 149, "225": 149, "226": 150, "227": 150, "228": 151, "229": 152, "230": 153, "231": 153, "232": 153, "233": 154, "234": 155, "235": 156, "236": 157, "237": 158, "238": 159, "239": 160, "240": 161, "241": 162, "242": 163, "243": 164, "244": 165, "245": 166, "246": 167, "247": 168, "248": 169, "249": 170, "250": 170, "251": 171, "252": 171, "253": 171, "254": 171, "255": 172, "256": 173, "257": 174, "258": 175, "259": 176, "260": 177, "261": 177, "262": 177, "263": 177, "264": 177, "265": 178, "266": 179, "267": 180, "268": 180, "269": 181, "270": 181, "271": 181, "272": 182, "273": 183, "274": 184, "275": 185, "276": 186, "277": 187, "278": 188, "279": 189, "280": 190, "281": 191, "282": 191, "283": 191, "284": 192, "285": 193, "286": 194, "287": 194, "288": 195, "289": 196, "290": 197, "291": 198, "292": 199, "293": 200, "294": 201, "295": 202, "296": 203, "297": 204, "298": 205, "299": 206, "300": 207, "301": 207, "302": 208, "303": 208, "304": 209, "305": 210, "306": 210, "307": 211, "308": 212, "309": 212, "310": 213, "311": 214, "312": 215, "313": 216, "314": 217, "315": 217, "316": 217, "317": 218, "318": 218, "319": 219, "320": 220, "321": 220, "322": 220, "323": 221, "324": 222, "325": 223, "326": 224, "327": 225, "328": 226, "329": 227, "330": 228, "331": 229, "332": 230, "333": 231, "334": 232, "335": 232, "336": 233, "337": 234, "338": 235, "339": 235, "340": 236, "341": 237, "342": 238, "343": 239, "344": 239, "345": 239, "346": 240, "347": 240, "348": 241, "349": 241, "350": 242, "351": 243, "352": 244, "353": 245, "354": 246, "355": 247, "356": 248, "357": 249, "358": 250, "359": 251, "360": 252, "361": 253, "362": 253, "363": 254, "364": 255, "365": 256, "366": 257, "367": 258, "368": 259, "369": 260, "370": 261, "371": 262, "372": 262, "373": 263, "374": 263, "375": 264, "376": 265, "377": 265, "378": 265, "379": 265, "380": 265, "381": 265, "382": 265, "383": 266, "384": 267, "385": 268, "386": 269, "387": 270, "388": 271, "389": 271, "390": 272, "391": 273, "392": 274, "393": 275, "394": 275, "395": 276, "396": 276, "397": 277, "398": 278, "399": 278, "400": 279, "401": 280, "402": 281, "403": 282, "404": 282, "405": 283, "406": 284, "407": 285, "408": 286, "409": 287, "410": 288, "411": 288, "412": 289, "413": 290, "414": 291, "415": 291, "416": 291, "417": 291, "418": 291, "419": 292, "420": 292, "421": 292, "422": 292, "423": 292, "424": 293, "425": 294, "426": 294, "427": 295, "428": 296, "429": 297, "430": 298, "431": 299, "432": 300, "433": 301, "434": 301, "435": 302, "436": 303, "437": 304, "438": 305, "439": 305, "440": 305, "441": 306, "442": 307, "443": 307, "444": 307, "445": 308, "446": 309, "447": 310, "448": 311, "449": 312, "450": 313, "451": 314, "452": 315, "453": 316, "454": 317, "455": 318, "456": 319, "457": 320, "458": 320, "459": 321, "460": 321, "461": 322, "462": 323, "463": 324, "464": 325, "465": 326, "466": 326, "467": 326, "468": 327, "469": 328, "470": 328, "471": 329, "472": 330, "473": 331, "474": 332, "475": 332, "476": 332, "477": 333, "478": 334, "479": 335, "480": 336, "481": 336, "482": 336, "483": 336, "484": 336, "485": 336, "486": 336, "487": 337, "488": 338, "489": 338, "490": 339, "491": 340, "492": 340, "493": 340, "494": 340, "495": 340, "496": 341, "497": 341, "498": 341, "499": 341, "500": 341, "501": 342, "502": 343, "503": 344, "504": 344, "505": 345, "506": 346, "507": 346, "508": 346, "509": 346, "510": 347, "511": 348, "512": 349, "513": 349, "514": 350, "515": 351, "516": 352, "517": 353, "518": 353, "519": 354, "520": 355, "521": 356, "522": 356, "523": 357, "524": 357, "525": 358, "526": 359, "527": 359, "528": 360, "529": 361, "530": 361, "531": 362, "532": 363, "533": 364, "534": 364, "535": 365, "536": 366, "537": 367, "538": 367, "539": 368, "540": 369, "541": 370, "542": 371, "543": 372, "544": 373, "545": 374, "546": 375, "547": 376, "548": 377, "549": 378, "550": 378, "551": 379, "552": 379, "553": 380, "554": 381, "555": 381, "556": 381, "557": 381, "558": 381, "559": 382, "560": 383, "561": 383, "562": 384, "563": 384, "564": 384, "565": 384, "566": 384, "567": 385, "568": 386, "569": 387, "570": 388, "571": 389, "572": 390, "573": 391, "574": 392, "575": 393, "576": 394, "577": 395, "578": 395, "579": 396, "580": 396, "581": 397, "582": 398, "583": 399, "584": 400, "585": 401, "586": 401, "587": 402, "588": 403, "589": 404, "590": 404, "591": 405, "592": 406, "593": 406, "594": 407, "595": 408, "596": 408, "597": 409, "598": 410, "599": 411, "600": 412, "601": 412, "602": 413, "603": 414, "604": 414, "605": 415, "606": 416, "607": 417, "608": 418, "609": 419, "610": 420, "611": 421, "612": 422, "613": 423, "614": 424, "615": 425, "616": 426, "617": 426, "618": 426, "619": 426, "620": 426, "621": 427, "622": 427, "623": 427, "624": 427, "625": 427, "626": 428, "627": 428, "628": 429, "629": 430, "630": 431, "631": 432, "632": 432, "633": 433, "634": 434, "635": 435, "636": 436, "637": 437, "638": 438, "639": 439, "640": 440, "641": 441, "642": 442, "643": 443, "644": 444, "645": 445, "646": 446, "647": 447, "648": 448, "649": 449, "650": 450, "651": 451, "652": 451, "653": 451, "654": 451, "655": 451, "656": 452, "657": 453, "658": 454, "659": 455, "660": 456, "661": 457, "662": 457, "663": 458, "664": 458, "665": 459, "666": 459, "667": 460, "668": 460, "669": 461, "670": 461, "671": 461, "672": 461, "673": 461, "674": 462, "675": 463, "676": 464, "677": 464, "678": 465, "679": 466, "680": 467, "681": 468, "682": 469, "683": 470, "684": 470, "685": 471, "686": 472, "687": 473, "688": 474, "689": 475, "690": 475, "691": 476, "692": 477, "693": 478, "694": 478, "695": 478, "696": 479, "697": 480, "698": 481, "699": 482, "700": 483, "701": 484, "702": 485, "703": 486, "704": 487, "705": 487, "706": 487, "707": 488, "708": 488, "709": 489, "710": 490, "711": 491, "712": 491, "713": 492, "714": 493, "715": 494, "716": 495, "717": 495, "718": 496, "719": 497, "720": 498, "721": 499, "722": 500, "723": 501, "724": 502, "725": 503, "726": 504, "727": 505, "728": 506, "729": 506, "730": 506, "731": 507, "732": 508, "733": 508, "734": 508, "735": 508, "736": 508, "737": 509, "738": 510, "739": 510, "740": 510, "741": 510, "742": 511, "743": 511, "744": 512, "745": 512, "746": 513, "747": 513, "748": 513, "749": 513, "750": 513, "751": 514, "752": 515, "753": 516, "754": 517, "755": 517, "756": 518, "757": 519, "758": 520, "759": 521, "760": 522, "761": 523, "762": 524, "763": 524, "764": 524, "765": 525, "766": 526, "767": 527, "768": 528, "769": 529, "770": 530, "771": 531, "772": 531, "773": 532, "774": 533, "775": 534, "776": 535, "777": 536, "778": 537, "779": 538, "780": 539, "781": 539, "782": 540, "783": 540, "784": 541, "785": 542, "786": 543, "787": 544, "788": 544, "789": 545, "790": 546, "791": 547, "792": 548, "793": 549, "794": 550, "795": 551, "796": 552, "797": 552, "798": 552, "799": 552, "800": 552, "801": 552, "802": 552, "803": 552, "804": 553, "805": 554, "806": 555, "807": 556, "808": 556, "809": 556, "810": 557, "811": 558, "812": 559, "813": 560, "814": 561, "815": 562, "816": 562, "817": 563, "818": 564, "819": 565, "820": 566, "821": 567, "822": 568, "823": 569, "824": 570, "825": 571, "826": 572, "827": 573, "828": 574, "829": 575, "830": 576, "831": 576, "832": 577, "833": 578, "834": 578, "835": 579, "836": 579, "837": 579, "838": 580, "839": 580, "840": 581, "841": 582, "842": 583, "843": 584, "844": 585, "845": 585, "846": 585, "847": 586, "848": 587, "849": 588, "850": 588, "851": 588, "852": 588, "853": 588, "854": 589, "855": 589, "856": 590, "857": 591, "858": 591, "859": 592, "860": 593, "861": 594, "862": 595, "863": 596, "864": 597, "865": 598, "866": 599, "867": 600, "868": 601, "869": 602, "870": 603, "871": 604, "872": 605, "873": 606, "874": 607, "875": 607, "876": 607, "877": 607, "878": 607, "879": 608, "880": 608, "881": 608, "882": 608, "883": 609, "884": 610, "885": 611, "886": 612, "887": 613, "888": 614, "889": 614, "890": 615, "891": 616, "892": 617, "893": 618, "894": 619, "895": 620, "896": 620, "897": 621, "898": 622, "899": 622, "900": 623, "901": 624, "902": 625, "903": 626, "904": 626, "905": 627, "906": 628, "907": 629, "908": 630, "909": 631, "910": 631, "911": 632, "912": 632, "913": 633, "914": 633, "915": 634, "916": 635, "917": 636, "918": 637, "919": 638, "920": 639, "921": 640, "922": 640, "923": 640, "924": 641, "925": 642, "926": 643, "927": 643, "928": 643, "929": 643, "930": 643, "931": 643, "932": 643, "933": 643, "934": 643, "935": 643, "936": 644, "937": 644, "938": 645, "939": 646, "940": 647, "941": 647, "942": 647, "943": 648, "944": 648, "945": 648, "946": 649, "947": 650, "948": 651, "949": 651, "950": 652, "951": 652, "952": 652, "953": 652, "954": 653, "955": 654, "956": 654, "957": 655, "958": 656, "959": 656, "960": 657, "961": 658, "962": 659, "963": 660, "964": 661, "965": 662, "966": 663, "967": 663, "968": 664, "969": 665, "970": 666, "971": 666, "972": 667, "973": 668, "974": 669, "975": 670, "976": 671, "977": 671, "978": 672, "979": 673, "980": 674, "981": 675, "982": 675, "983": 676, "984": 677, "985": 678, "986": 679, "987": 680, "988": 680, "989": 681, "990": 682, "991": 683, "992": 683, "993": 684, "994": 685, "995": 686, "996": 687, "997": 687, "998": 688, "999": 689, "1000": 690, "1001": 690, "1002": 690, "1003": 691, "1004": 692, "1005": 693, "1006": 694, "1007": 695, "1008": 696, "1009": 697, "1010": 698, "1011": 699, "1012": 700, "1013": 700, "1014": 701, "1015": 701, "1016": 702, "1017": 703, "1018": 703, "1019": 703, "1020": 704, "1021": 705, "1022": 706, "1023": 706, "1024": 706, "1025": 706, "1026": 707, "1027": 708, "1028": 709, "1029": 709, "1030": 709, "1031": 710, "1032": 711, "1033": 711, "1034": 712, "1035": 713, "1036": 713, "1037": 714, "1038": 715, "1039": 716, "1040": 717, "1041": 717, "1042": 718, "1043": 719, "1044": 720, "1045": 721, "1046": 722, "1047": 722, "1048": 722, "1049": 722, "1050": 722, "1051": 723, "1052": 724, "1053": 725, "1054": 726, "1055": 726, "1056": 726, "1057": 726, "1058": 727, "1059": 727, "1060": 727, "1061": 727, "1062": 727, "1063": 727, "1064": 727, "1065": 727, "1066": 727, "1067": 728, "1068": 729, "1069": 730, "1070": 731, "1071": 732, "1072": 733, "1073": 734, "1074": 735, "1075": 735, "1076": 736, "1077": 737, "1078": 738, "1079": 739, "1080": 740, "1081": 741, "1082": 742, "1083": 743, "1084": 743, "1085": 744, "1086": 745, "1087": 746, "1088": 747, "1089": 747, "1090": 748, "1091": 749, "1092": 750, "1093": 751, "1094": 752, "1095": 753, "1096": 753, "1097": 754, "1098": 755, "1099": 756, "1100": 757, "1101": 758, "1102": 759, "1103": 760, "1104": 761, "1105": 761, "1106": 762, "1107": 763, "1108": 764, "1109": 765, "1110": 766, "1111": 767, "1112": 768, "1113": 769, "1114": 769, "1115": 769, "1116": 770, "1117": 770, "1118": 771, "1119": 772, "1120": 773, "1121": 774, "1122": 775, "1123": 775, "1124": 775, "1125": 775, "1126": 775, "1127": 775, "1128": 775, "1129": 775, "1130": 775, "1131": 776, "1132": 776, "1133": 776, "1134": 776, "1135": 776, "1136": 776, "1137": 776, "1138": 776, "1139": 776, "1140": 776, "1141": 776, "1142": 776, "1143": 776, "1144": 777, "1145": 778, "1146": 779, "1147": 779, "1148": 780, "1149": 781, "1150": 781, "1151": 781, "1152": 782, "1153": 783, "1154": 783, "1155": 784, "1156": 785, "1157": 785, "1158": 785, "1159": 785, "1160": 785, "1161": 786, "1162": 787, "1163": 788, "1164": 789, "1165": 790, "1166": 791, "1167": 792, "1168": 793, "1169": 794, "1170": 794, "1171": 795, "1172": 796, "1173": 796, "1174": 797, "1175": 798, "1176": 799, "1177": 799, "1178": 800, "1179": 801, "1180": 802, "1181": 803, "1182": 804, "1183": 805, "1184": 806, "1185": 806, "1186": 806, "1187": 806, "1188": 806, "1189": 806, "1190": 806, "1191": 806, "1192": 806, "1193": 806, "1194": 806, "1195": 806, "1196": 807, "1197": 808, "1198": 809, "1199": 810, "1200": 811, "1201": 811, "1202": 812, "1203": 813, "1204": 813, "1205": 814, "1206": 815, "1207": 816, "1208": 817, "1209": 818, "1210": 818, "1211": 819, "1212": 820, "1213": 821, "1214": 821, "1215": 822, "1216": 823, "1217": 824, "1218": 825, "1219": 825, "1220": 825, "1221": 825, "1222": 825, "1223": 826, "1224": 826, "1225": 826, "1226": 827, "1227": 827, "1228": 827, "1229": 827, "1230": 828, "1231": 828, "1232": 828, "1233": 829, "1234": 830, "1235": 831, "1236": 832, "1237": 833, "1238": 833, "1239": 834, "1240": 835, "1241": 836, "1242": 836, "1243": 837, "1244": 838, "1245": 839, "1246": 840, "1247": 840, "1248": 841, "1249": 842, "1250": 843, "1251": 844, "1252": 844, "1253": 845, "1254": 846, "1255": 846, "1256": 846, "1257": 846, "1258": 846, "1259": 847, "1260": 848, "1261": 848, "1262": 849, "1263": 850, "1264": 851, "1265": 852, "1266": 853, "1267": 854, "1268": 855, "1269": 856, "1270": 856, "1271": 857, "1272": 858, "1273": 859, "1274": 859, "1275": 859, "1276": 859, "1277": 859, "1278": 860, "1279": 860, "1280": 861, "1281": 862, "1282": 862, "1283": 862, "1284": 863, "1285": 864, "1286": 865, "1287": 866, "1288": 867, "1289": 867, "1290": 868, "1291": 868, "1292": 869, "1293": 870, "1294": 871, "1295": 872, "1296": 873, "1297": 873, "1298": 873, "1299": 874, "1300": 875, "1301": 876, "1302": 876, "1303": 877, "1304": 878, "1305": 878, "1306": 879, "1307": 879, "1308": 880, "1309": 881, "1310": 882, "1311": 882, "1312": 883, "1313": 883, "1314": 883, "1315": 883, "1316": 883, "1317": 884, "1318": 885, "1319": 885, "1320": 885, "1321": 885, "1322": 885, "1323": 885, "1324": 886, "1325": 887, "1326": 888, "1327": 889, "1328": 890, "1329": 891, "1330": 891, "1331": 891, "1332": 892, "1333": 893, "1334": 894, "1335": 894, "1336": 895, "1337": 896, "1338": 897, "1339": 898, "1340": 899, "1341": 900, "1342": 900, "1343": 900, "1344": 900, "1345": 900, "1346": 900, "1347": 900, "1348": 901, "1349": 902, "1350": 902, "1351": 903, "1352": 904, "1353": 905, "1354": 906, "1355": 907, "1356": 908, "1357": 908, "1358": 908, "1359": 909, "1360": 909, "1361": 909, "1362": 909, "1363": 910, "1364": 911, "1365": 912, "1366": 913, "1367": 914, "1368": 915, "1369": 915, "1370": 915, "1371": 915, "1372": 915, "1373": 915, "1374": 915, "1375": 916, "1376": 917, "1377": 917, "1378": 918, "1379": 918, "1380": 919, "1381": 920, "1382": 921, "1383": 922, "1384": 923, "1385": 924, "1386": 924, "1387": 925, "1388": 926, "1389": 927, "1390": 928, "1391": 928, "1392": 929, "1393": 929, "1394": 930, "1395": 931, "1396": 932, "1397": 933, "1398": 933, "1399": 934, "1400": 935, "1401": 935, "1402": 935, "1403": 935, "1404": 935, "1405": 935, "1406": 935, "1407": 935, "1408": 935, "1409": 935, "1410": 936, "1411": 936, "1412": 937, "1413": 938, "1414": 938, "1415": 938, "1416": 938, "1417": 938, "1418": 938, "1419": 939, "1420": 939, "1421": 939, "1422": 940, "1423": 941, "1424": 942, "1425": 943, "1426": 943, "1427": 944, "1428": 945, "1429": 946, "1430": 947, "1431": 948, "1432": 949, "1433": 950, "1434": 951, "1435": 952, "1436": 953, "1437": 954, "1438": 955, "1439": 955, "1440": 956, "1441": 956, "1442": 956, "1443": 957, "1444": 958, "1445": 959, "1446": 960, "1447": 961, "1448": 962, "1449": 963, "1450": 964, "1451": 964, "1452": 964, "1453": 964, "1454": 964, "1455": 964, "1456": 964, "1457": 964, "1458": 964, "1459": 964, "1460": 964, "1461": 964, "1462": 964, "1463": 964, "1464": 964, "1465": 964, "1466": 964, "1467": 964, "1468": 964, "1469": 964, "1470": 964, "1471": 964, "1472": 964, "1473": 964, "1474": 964, "1475": 964, "1476": 964, "1477": 964, "1478": 964, "1479": 964, "1480": 964, "1481": 964, "1482": 964, "1483": 964, "1484": 964, "1485": 964, "1486": 964, "1487": 964, "1488": 964, "1489": 965, "1490": 965, "1491": 966, "1492": 966, "1493": 966, "1494": 967, "1495": 968, "1496": 969, "1497": 970, "1498": 971, "1499": 971, "1500": 972, "1501": 973, "1502": 974, "1503": 975, "1504": 975, "1505": 975, "1506": 975, "1507": 976, "1508": 977, "1509": 977, "1510": 978, "1511": 979, "1512": 980, "1513": 981, "1514": 981, "1515": 981, "1516": 982, "1517": 982, "1518": 983, "1519": 984, "1520": 985, "1521": 985, "1522": 986, "1523": 987, "1524": 988, "1525": 989, "1526": 990, "1527": 991, "1528": 991, "1529": 991, "1530": 992, "1531": 992, "1532": 992, "1533": 992, "1534": 992, "1535": 992, "1536": 993, "1537": 993, "1538": 993, "1539": 993, "1540": 993, "1541": 993, "1542": 993, "1543": 993, "1544": 993, "1545": 993, "1546": 994, "1547": 995, "1548": 995, "1549": 995, "1550": 995, "1551": 996, "1552": 997, "1553": 998, "1554": 999, "1555": 999, "1556": 1000, "1557": 1000, "1558": 1000, "1559": 1001, "1560": 1001, "1561": 1001, "1562": 1002, "1563": 1003, "1564": 1003, "1565": 1004, "1566": 1005, "1567": 1005, "1568": 1005, "1569": 1005, "1570": 1006, "1571": 1007, "1572": 1007, "1573": 1007, "1574": 1007, "1575": 1007, "1576": 1007, "1577": 1007, "1578": 1007, "1579": 1007, "1580": 1007, "1581": 1007, "1582": 1008, "1583": 1008, "1584": 1008, "1585": 1008, "1586": 1008, "1587": 1008, "1588": 1008, "1589": 1008, "1590": 1008, "1591": 1008, "1592": 1008, "1593": 1008, "1594": 1008, "1595": 1008, "1596": 1008, "1597": 1008, "1598": 1008, "1599": 1008, "1600": 1008, "1601": 1008, "1602": 1008, "1603": 1008, "1604": 1008, "1605": 1008, "1606": 1008, "1607": 1008, "1608": 1008, "1609": 1008, "1610": 1008, "1611": 1008, "1612": 1008, "1613": 1008, "1614": 1008, "1615": 1008, "1616": 1008, "1617": 1008, "1618": 1008, "1619": 1008, "1620": 1009, "1621": 1010, "1622": 1011, "1623": 1011, "1624": 1012, "1625": 1013, "1626": 1014, "1627": 1015, "1628": 1016, "1629": 1016, "1630": 1017, "1631": 1018, "1632": 1019, "1633": 1019, "1634": 1019, "1635": 1019, "1636": 1020, "1637": 1020, "1638": 1021, "1639": 1021, "1640": 1022, "1641": 1023, "1642": 1024, "1643": 1025, "1644": 1026, "1645": 1027, "1646": 1027, "1647": 1027, "1648": 1027, "1649": 1027, "1650": 1028, "1651": 1029, "1652": 1030, "1653": 1031, "1654": 1032, "1655": 1033, "1656": 1034, "1657": 1035, "1658": 1036, "1659": 1037, "1660": 1037, "1661": 1037, "1662": 1038, "1663": 1039, "1664": 1040, "1665": 1041, "1666": 1042, "1667": 1043, "1668": 1044, "1669": 1045, "1670": 1045, "1671": 1045, "1672": 1046, "1673": 1047, "1674": 1048, "1675": 1049, "1676": 1050, "1677": 1051, "1678": 1052, "1679": 1053, "1680": 1054, "1681": 1054, "1682": 1054, "1683": 1054, "1684": 1054, "1685": 1054, "1686": 1054, "1687": 1054, "1688": 1054, "1689": 1054, "1690": 1054, "1691": 1054, "1692": 1054, "1693": 1054, "1694": 1054, "1695": 1054, "1696": 1054, "1697": 1054, "1698": 1054, "1699": 1054, "1700": 1054, "1701": 1054, "1702": 1054, "1703": 1054, "1704": 1054, "1705": 1054, "1706": 1054, "1707": 1054, "1708": 1054, "1709": 1054, "1710": 1054, "1711": 1054, "1712": 1054, "1713": 1054, "1714": 1054, "1715": 1054, "1716": 1054, "1717": 1054, "1718": 1054, "1719": 1054, "1720": 1054, "1721": 1054, "1722": 1054, "1723": 1054, "1724": 1054, "1725": 1054, "1726": 1054, "1727": 1054, "1728": 1054, "1729": 1054, "1730": 1054, "1731": 1054, "1732": 1054, "1733": 1054, "1734": 1054, "1735": 1054, "1736": 1054, "1737": 1054, "1738": 1054, "1739": 1054, "1740": 1055, "1741": 1056, "1742": 1057, "1743": 1058, "1744": 1058, "1745": 1058, "1746": 1058, "1747": 1058, "1748": 1059, "1749": 1060, "1750": 1060, "1751": 1061, "1752": 1062, "1753": 1062, "1754": 1062, "1755": 1063, "1756": 1064, "1757": 1065, "1758": 1066, "1759": 1067, "1760": 1068, "1761": 1068, "1762": 1069, "1763": 1070, "1764": 1071, "1765": 1072, "1766": 1073, "1767": 1074, "1768": 1075, "1769": 1076, "1770": 1077, "1771": 1077, "1772": 1078, "1773": 1079, "1774": 1080, "1775": 1081, "1776": 1082, "1777": 1083, "1778": 1083, "1779": 1084, "1780": 1084, "1781": 1085, "1782": 1086, "1783": 1086, "1784": 1086, "1785": 1087, "1786": 1088, "1787": 1089, "1788": 1090, "1789": 1091, "1790": 1092, "1791": 1092, "1792": 1093, "1793": 1094, "1794": 1094, "1795": 1095, "1796": 1095, "1797": 1096, "1798": 1096, "1799": 1097, "1800": 1098, "1801": 1098, "1802": 1099, "1803": 1099, "1804": 1100, "1805": 1101, "1806": 1101, "1807": 1101, "1808": 1101, "1809": 1101, "1810": 1102, "1811": 1103, "1812": 1104, "1813": 1104, "1814": 1105, "1815": 1106, "1816": 1106, "1817": 1107, "1818": 1107, "1819": 1107, "1820": 1108, "1821": 1108, "1822": 1108, "1823": 1108, "1824": 1108, "1825": 1109, "1826": 1110, "1827": 1111, "1828": 1111, "1829": 1112, "1830": 1112, "1831": 1112, "1832": 1113, "1833": 1114, "1834": 1114, "1835": 1114, "1836": 1115, "1837": 1116, "1838": 1116, "1839": 1116, "1840": 1117, "1841": 1118, "1842": 1118, "1843": 1119, "1844": 1120, "1845": 1121, "1846": 1122, "1847": 1123, "1848": 1124, "1849": 1125, "1850": 1126, "1851": 1127, "1852": 1128, "1853": 1129, "1854": 1129, "1855": 1129, "1856": 1129, "1857": 1129, "1858": 1130, "1859": 1131, "1860": 1132, "1861": 1133, "1862": 1133, "1863": 1134, "1864": 1135, "1865": 1136, "1866": 1137, "1867": 1138, "1868": 1139, "1869": 1140, "1870": 1141, "1871": 1141, "1872": 1141, "1873": 1142, "1874": 1142, "1875": 1143, "1876": 1144, "1877": 1145, "1878": 1146, "1879": 1146, "1880": 1146, "1881": 1147, "1882": 1148, "1883": 1149, "1884": 1150, "1885": 1150, "1886": 1150, "1887": 1150, "1888": 1151, "1889": 1151, "1890": 1151, "1891": 1151, "1892": 1152, "1893": 1153, "1894": 1154, "1895": 1155, "1896": 1156, "1897": 1157, "1898": 1158, "1899": 1158, "1900": 1159, "1901": 1160, "1902": 1161, "1903": 1161, "1904": 1162, "1905": 1163, "1906": 1163, "1907": 1163, "1908": 1163, "1909": 1164, "1910": 1164, "1911": 1164, "1912": 1164, "1913": 1164, "1914": 1164, "1915": 1164, "1916": 1164, "1917": 1164, "1918": 1165, "1919": 1166, "1920": 1166, "1921": 1166, "1922": 1167, "1923": 1168, "1924": 1169, "1925": 1170, "1926": 1171, "1927": 1172, "1928": 1172, "1929": 1173, "1930": 1174, "1931": 1175, "1932": 1176, "1933": 1177, "1934": 1178, "1935": 1179, "1936": 1180, "1937": 1181, "1938": 1181, "1939": 1182, "1940": 1183, "1941": 1184, "1942": 1185, "1943": 1186, "1944": 1187, "1945": 1188, "1946": 1188, "1947": 1188, "1948": 1189, "1949": 1189, "1950": 1190, "1951": 1191, "1952": 1192, "1953": 1193, "1954": 1193, "1955": 1193, "1956": 1193, "1957": 1193, "1958": 1194, "1959": 1195, "1960": 1196, "1961": 1197, "1962": 1198, "1963": 1199, "1964": 1200, "1965": 1201, "1966": 1201, "1967": 1201, "1968": 1201, "1969": 1201, "1970": 1201, "1971": 1202, "1972": 1203, "1973": 1204, "1974": 1204, "1975": 1204, "1976": 1205, "1977": 1206, "1978": 1207, "1979": 1208, "1980": 1209, "1981": 1210, "1982": 1210, "1983": 1211, "1984": 1212, "1985": 1213, "1986": 1213, "1987": 1214, "1988": 1215, "1989": 1216, "1990": 1217, "1991": 1218, "1992": 1218, "1993": 1219, "1994": 1220, "1995": 1221, "1996": 1221, "1997": 1222, "1998": 1223, "1999": 1224, "2000": 1225, "2001": 1226, "2002": 1227, "2003": 1228, "2004": 1229, "2005": 1229, "2006": 1230, "2007": 1231, "2008": 1231, "2009": 1231, "2010": 1231, "2011": 1231, "2012": 1231, "2013": 1231, "2014": 1231, "2015": 1231, "2016": 1231, "2017": 1231, "2018": 1231, "2019": 1231, "2020": 1231, "2021": 1231, "2022": 1232, "2023": 1233, "2024": 1234, "2025": 1234, "2026": 1235, "2027": 1235, "2028": 1235, "2029": 1236, "2030": 1236, "2031": 1237, "2032": 1238, "2033": 1239, "2034": 1240, "2035": 1240, "2036": 1241, "2037": 1241, "2038": 1242, "2039": 1242, "2040": 1242, "2041": 1243, "2042": 1244, "2043": 1245, "2044": 1246, "2045": 1246, "2046": 1246, "2047": 1246, "2048": 1246, "2049": 1247, "2050": 1248, "2051": 1249, "2052": 1250, "2053": 1251, "2054": 1252, "2055": 1252, "2056": 1253, "2057": 1254, "2058": 1255, "2059": 1255, "2060": 1256, "2061": 1257, "2062": 1258, "2063": 1259, "2064": 1260, "2065": 1261, "2066": 1262, "2067": 1262, "2068": 1263, "2069": 1264, "2070": 1265, "2071": 1266, "2072": 1267, "2073": 1268, "2074": 1269, "2075": 1270, "2076": 1271, "2077": 1272, "2078": 1273, "2079": 1273, "2080": 1274, "2081": 1275, "2082": 1276, "2083": 1277, "2084": 1278, "2085": 1278, "2086": 1279, "2087": 1280, "2088": 1280, "2089": 1280, "2090": 1281, "2091": 1281, "2092": 1282, "2093": 1283, "2094": 1283, "2095": 1283, "2096": 1283, "2097": 1283, "2098": 1284, "2099": 1285, "2100": 1286, "2101": 1286, "2102": 1287, "2103": 1287, "2104": 1287, "2105": 1287, "2106": 1287, "2107": 1288, "2108": 1288, "2109": 1289, "2110": 1290, "2111": 1291, "2112": 1292, "2113": 1292, "2114": 1292, "2115": 1292, "2116": 1292, "2117": 1293, "2118": 1294, "2119": 1295, "2120": 1296, "2121": 1297, "2122": 1298, "2123": 1299, "2124": 1300, "2125": 1301, "2126": 1302, "2127": 1303, "2128": 1304, "2129": 1305, "2130": 1305, "2131": 1305, "2132": 1306, "2133": 1306, "2134": 1307, "2135": 1308, "2136": 1308, "2137": 1308, "2138": 1308, "2139": 1309, "2140": 1309, "2141": 1310, "2142": 1311, "2143": 1312, "2144": 1312, "2145": 1313, "2146": 1314, "2147": 1314, "2148": 1314, "2149": 1314, "2150": 1314, "2151": 1315, "2152": 1315, "2153": 1315, "2154": 1316, "2155": 1317, "2156": 1317, "2157": 1318, "2158": 1319, "2159": 1320, "2160": 1321, "2161": 1322, "2162": 1322, "2163": 1323, "2164": 1324, "2165": 1324, "2166": 1324, "2167": 1324, "2168": 1325, "2169": 1326, "2170": 1326, "2171": 1327, "2172": 1328, "2173": 1328, "2174": 1328, "2175": 1328, "2176": 1328, "2177": 1329, "2178": 1330, "2179": 1331, "2180": 1332, "2181": 1333, "2182": 1334, "2183": 1335, "2184": 1336, "2185": 1337, "2186": 1338, "2187": 1339, "2188": 1340, "2189": 1341, "2190": 1341, "2191": 1342, "2192": 1343, "2193": 1343, "2194": 1343, "2195": 1344, "2196": 1345, "2197": 1345, "2198": 1346, "2199": 1346, "2200": 1347, "2201": 1348, "2202": 1348, "2203": 1348, "2204": 1349, "2205": 1349, "2206": 1350, "2207": 1350, "2208": 1351, "2209": 1352, "2210": 1353, "2211": 1354, "2212": 1354, "2213": 1355, "2214": 1355, "2215": 1355, "2216": 1356, "2217": 1356, "2218": 1356, "2219": 1357, "2220": 1357, "2221": 1357, "2222": 1358, "2223": 1359, "2224": 1360, "2225": 1360, "2226": 1361, "2227": 1361, "2228": 1362, "2229": 1363, "2230": 1364, "2231": 1365, "2232": 1365, "2233": 1366, "2234": 1367, "2235": 1367, "2236": 1368, "2237": 1369, "2238": 1370, "2239": 1371, "2240": 1372, "2241": 1373, "2242": 1373, "2243": 1374, "2244": 1375, "2245": 1376, "2246": 1377, "2247": 1378, "2248": 1379, "2249": 1379, "2250": 1379, "2251": 1379, "2252": 1379, "2253": 1380, "2254": 1381, "2255": 1382, "2256": 1383, "2257": 1384, "2258": 1384, "2259": 1385, "2260": 1385, "2261": 1385, "2262": 1385, "2263": 1385, "2264": 1386, "2265": 1386, "2266": 1386, "2267": 1387, "2268": 1387, "2269": 1387, "2270": 1387, "2271": 1387, "2272": 1387, "2273": 1387, "2274": 1387, "2275": 1387, "2276": 1387, "2277": 1387, "2278": 1387, "2279": 1387, "2280": 1387, "2281": 1387, "2282": 1387, "2283": 1387, "2284": 1387, "2285": 1387, "2286": 1387, "2287": 1387, "2288": 1387, "2289": 1387, "2290": 1387, "2291": 1387, "2292": 1387, "2293": 1387, "2294": 1387, "2295": 1387, "2296": 1387, "2297": 1387, "2298": 1387, "2299": 1387, "2300": 1387, "2301": 1387, "2302": 1387, "2303": 1387, "2304": 1387, "2305": 1388, "2306": 1389, "2307": 1390, "2308": 1391, "2309": 1392, "2310": 1392, "2311": 1392, "2312": 1392, "2313": 1392, "2314": 1393, "2315": 1393, "2316": 1394, "2317": 1394, "2318": 1395, "2319": 1396, "2320": 1397, "2321": 1398, "2322": 1399, "2323": 1400, "2324": 1400, "2325": 1401, "2326": 1402, "2327": 1403, "2328": 1403, "2329": 1403, "2330": 1404, "2331": 1405, "2332": 1406, "2333": 1406, "2334": 1407, "2335": 1408, "2336": 1408, "2337": 1409, "2338": 1410, "2339": 1411, "2340": 1412, "2341": 1412, "2342": 1412, "2343": 1413, "2344": 1414, "2345": 1414, "2346": 1414, "2347": 1414, "2348": 1414, "2349": 1414, "2350": 1415, "2351": 1416, "2352": 1417, "2353": 1418, "2354": 1419, "2355": 1419, "2356": 1419, "2357": 1419, "2358": 1420, "2359": 1421, "2360": 1422, "2361": 1423, "2362": 1424, "2363": 1425, "2364": 1425, "2365": 1426, "2366": 1426, "2367": 1427, "2368": 1428, "2369": 1429, "2370": 1429, "2371": 1430, "2372": 1430, "2373": 1431, "2374": 1432, "2375": 1432, "2376": 1433, "2377": 1434, "2378": 1435, "2379": 1436, "2380": 1436, "2381": 1436, "2382": 1437, "2383": 1438, "2384": 1439, "2385": 1439, "2386": 1440, "2387": 1441, "2388": 1442, "2389": 1443, "2390": 1444, "2391": 1444, "2392": 1444, "2393": 1444, "2394": 1444, "2395": 1445, "2396": 1446, "2397": 1446, "2398": 1446, "2399": 1446, "2400": 1446, "2401": 1447, "2402": 1447, "2403": 1448, "2404": 1449, "2405": 1449, "2406": 1450, "2407": 1451, "2408": 1452, "2409": 1453, "2410": 1454, "2411": 1455, "2412": 1455, "2413": 1456, "2414": 1456, "2415": 1456, "2416": 1457, "2417": 1458, "2418": 1459, "2419": 1459, "2420": 1460, "2421": 1461, "2422": 1462, "2423": 1462, "2424": 1463, "2425": 1464, "2426": 1465, "2427": 1466, "2428": 1467, "2429": 1467, "2430": 1468, "2431": 1468, "2432": 1469, "2433": 1470, "2434": 1471, "2435": 1471, "2436": 1472, "2437": 1473, "2438": 1474, "2439": 1475, "2440": 1476, "2441": 1477, "2442": 1477, "2443": 1477, "2444": 1477, "2445": 1477, "2446": 1478, "2447": 1478, "2448": 1479, "2449": 1480, "2450": 1481, "2451": 1482, "2452": 1483, "2453": 1484, "2454": 1485, "2455": 1485, "2456": 1486, "2457": 1486, "2458": 1487, "2459": 1488, "2460": 1488, "2461": 1488, "2462": 1489, "2463": 1490, "2464": 1491, "2465": 1491, "2466": 1492, "2467": 1492, "2468": 1493, "2469": 1494, "2470": 1495, "2471": 1496, "2472": 1497, "2473": 1498, "2474": 1499, "2475": 1500, "2476": 1501, "2477": 1502, "2478": 1503, "2479": 1504, "2480": 1504, "2481": 1504, "2482": 1505, "2483": 1506, "2484": 1507, "2485": 1508, "2486": 1508, "2487": 1509, "2488": 1510, "2489": 1510, "2490": 1510, "2491": 1511, "2492": 1512, "2493": 1513, "2494": 1514, "2495": 1515, "2496": 1515, "2497": 1516, "2498": 1517, "2499": 1518, "2500": 1519, "2501": 1520, "2502": 1521, "2503": 1522, "2504": 1523, "2505": 1524, "2506": 1525, "2507": 1526, "2508": 1526, "2509": 1527, "2510": 1528, "2511": 1529, "2512": 1530, "2513": 1530, "2514": 1531, "2515": 1532, "2516": 1532, "2517": 1533, "2518": 1534, "2519": 1535, "2520": 1536, "2521": 1536, "2522": 1536, "2523": 1537, "2524": 1538, "2525": 1539, "2526": 1540, "2527": 1541, "2528": 1542, "2529": 1543, "2530": 1543, "2531": 1544, "2532": 1545, "2533": 1545, "2534": 1546, "2535": 1547, "2536": 1548, "2537": 1548, "2538": 1549, "2539": 1549, "2540": 1550, "2541": 1551, "2542": 1551, "2543": 1551, "2544": 1552, "2545": 1552, "2546": 1552, "2547": 1553, "2548": 1554, "2549": 1555, "2550": 1555, "2551": 1556, "2552": 1556, "2553": 1557, "2554": 1558, "2555": 1559, "2556": 1560, "2557": 1560, "2558": 1560, "2559": 1560, "2560": 1560, "2561": 1561, "2562": 1562, "2563": 1563, "2564": 1564, "2565": 1565, "2566": 1566, "2567": 1566, "2568": 1567, "2569": 1568, "2570": 1568, "2571": 1569, "2572": 1570, "2573": 1570, "2574": 1571, "2575": 1571, "2576": 1572, "2577": 1573, "2578": 1574, "2579": 1575, "2580": 1575, "2581": 1576, "2582": 1577, "2583": 1577, "2584": 1577, "2585": 1578, "2586": 1579, "2587": 1579, "2588": 1580, "2589": 1581, "2590": 1582, "2591": 1582, "2592": 1583, "2593": 1583, "2594": 1583, "2595": 1583, "2596": 1583, "2597": 1584, "2598": 1584, "2599": 1585, "2600": 1586, "2601": 1587, "2602": 1588, "2603": 1588, "2604": 1588, "2605": 1589, "2606": 1589, "2607": 1589, "2608": 1590, "2609": 1591, "2610": 1591, "2611": 1592, "2612": 1593, "2613": 1593, "2614": 1594, "2615": 1595, "2616": 1595, "2617": 1595, "2618": 1595, "2619": 1595, "2620": 1596, "2621": 1596, "2622": 1596, "2623": 1597, "2624": 1597, "2625": 1597, "2626": 1597, "2627": 1598, "2628": 1598, "2629": 1599, "2630": 1600, "2631": 1601, "2632": 1601, "2633": 1601, "2634": 1602, "2635": 1602, "2636": 1602, "2637": 1603, "2638": 1604, "2639": 1605, "2640": 1605, "2641": 1606, "2642": 1607, "2643": 1607, "2644": 1608, "2645": 1609, "2646": 1610, "2647": 1611, "2648": 1612, "2649": 1612, "2650": 1613, "2651": 1614, "2652": 1615, "2653": 1616, "2654": 1617, "2655": 1618, "2656": 1619, "2657": 1620, "2658": 1620, "2659": 1621, "2660": 1622, "2661": 1622, "2662": 1623, "2663": 1624, "2664": 1625, "2665": 1626, "2666": 1626, "2667": 1626, "2668": 1626, "2669": 1626, "2670": 1626, "2671": 1627, "2672": 1628, "2673": 1628, "2674": 1629, "2675": 1629, "2676": 1630, "2677": 1631, "2678": 1632, "2679": 1633, "2680": 1634, "2681": 1634, "2682": 1635, "2683": 1636, "2684": 1636, "2685": 1637, "2686": 1638, "2687": 1639, "2688": 1640, "2689": 1641, "2690": 1641, "2691": 1642, "2692": 1643, "2693": 1643, "2694": 1643, "2695": 1643, "2696": 1644, "2697": 1644, "2698": 1645, "2699": 1646, "2700": 1647, "2701": 1648, "2702": 1649, "2703": 1649, "2704": 1650, "2705": 1651, "2706": 1651, "2707": 1651, "2708": 1651, "2709": 1651, "2710": 1651, "2711": 1652, "2712": 1652, "2713": 1653, "2714": 1654, "2715": 1655, "2716": 1656, "2717": 1656, "2718": 1656, "2719": 1656, "2720": 1656, "2721": 1657, "2722": 1658, "2723": 1659, "2724": 1660, "2725": 1661, "2726": 1662, "2727": 1663, "2728": 1664, "2729": 1665, "2730": 1665, "2731": 1665, "2732": 1666, "2733": 1667, "2734": 1668, "2735": 1669, "2736": 1669, "2737": 1669, "2738": 1670, "2739": 1671, "2740": 1671, "2741": 1672, "2742": 1673, "2743": 1674, "2744": 1675, "2745": 1676, "2746": 1676, "2747": 1677, "2748": 1677, "2749": 1677, "2750": 1677, "2751": 1678, "2752": 1678, "2753": 1679, "2754": 1679, "2755": 1680, "2756": 1680, "2757": 1680, "2758": 1681, "2759": 1682, "2760": 1682, "2761": 1682, "2762": 1682, "2763": 1682, "2764": 1683, "2765": 1684, "2766": 1685, "2767": 1686, "2768": 1686, "2769": 1687, "2770": 1687, "2771": 1687, "2772": 1688, "2773": 1689, "2774": 1690, "2775": 1691, "2776": 1692, "2777": 1692, "2778": 1692, "2779": 1693, "2780": 1693, "2781": 1694, "2782": 1694, "2783": 1695, "2784": 1695, "2785": 1695, "2786": 1695, "2787": 1695, "2788": 1696, "2789": 1697, "2790": 1698, "2791": 1698, "2792": 1698, "2793": 1699, "2794": 1699, "2795": 1700, "2796": 1700, "2797": 1701, "2798": 1701, "2799": 1701, "2800": 1702, "2801": 1703, "2802": 1703, "2803": 1703, "2804": 1704, "2805": 1705, "2806": 1706, "2807": 1707, "2808": 1708, "2809": 1708, "2810": 1709, "2811": 1709, "2812": 1710, "2813": 1710, "2814": 1711, "2815": 1712, "2816": 1713, "2817": 1713, "2818": 1714, "2819": 1715, "2820": 1715, "2821": 1716, "2822": 1717, "2823": 1717, "2824": 1717, "2825": 1718, "2826": 1719, "2827": 1720, "2828": 1721, "2829": 1721, "2830": 1721, "2831": 1721, "2832": 1722, "2833": 1723, "2834": 1724, "2835": 1724, "2836": 1724, "2837": 1724, "2838": 1724, "2839": 1724, "2840": 1725, "2841": 1726, "2842": 1726, "2843": 1727, "2844": 1728, "2845": 1728, "2846": 1729, "2847": 1730, "2848": 1731, "2849": 1731, "2850": 1731, "2851": 1732, "2852": 1732, "2853": 1733, "2854": 1734, "2855": 1734, "2856": 1735, "2857": 1736, "2858": 1736, "2859": 1736, "2860": 1736, "2861": 1736, "2862": 1737, "2863": 1738, "2864": 1739, "2865": 1740, "2866": 1741, "2867": 1741, "2868": 1741, "2869": 1741, "2870": 1741, "2871": 1741, "2872": 1741, "2873": 1742, "2874": 1743, "2875": 1743, "2876": 1743, "2877": 1744, "2878": 1744, "2879": 1744, "2880": 1745, "2881": 1746, "2882": 1747, "2883": 1747, "2884": 1747, "2885": 1748, "2886": 1749, "2887": 1750, "2888": 1751, "2889": 1752, "2890": 1752, "2891": 1752, "2892": 1752, "2893": 1753, "2894": 1753, "2895": 1753, "2896": 1754, "2897": 1754, "2898": 1755, "2899": 1756, "2900": 1757, "2901": 1758, "2902": 1758, "2903": 1759, "2904": 1760, "2905": 1761, "2906": 1761, "2907": 1762, "2908": 1763, "2909": 1764, "2910": 1764, "2911": 1765, "2912": 1765, "2913": 1766, "2914": 1767, "2915": 1767, "2916": 1768, "2917": 1768, "2918": 1768, "2919": 1769, "2920": 1770, "2921": 1771, "2922": 1772, "2923": 1772, "2924": 1772, "2925": 1773, "2926": 1773, "2927": 1773, "2928": 1773, "2929": 1773, "2930": 1774, "2931": 1775, "2932": 1775, "2933": 1776, "2934": 1777, "2935": 1778, "2936": 1779, "2937": 1780, "2938": 1781, "2939": 1782, "2940": 1783, "2941": 1784, "2942": 1784, "2943": 1785, "2944": 1786, "2945": 1787, "2946": 1787, "2947": 1787, "2948": 1787, "2949": 1787, "2950": 1788, "2951": 1789, "2952": 1789, "2953": 1790, "2954": 1791, "2955": 1791, "2956": 1792, "2957": 1793, "2958": 1794, "2959": 1795, "2960": 1796, "2961": 1797, "2962": 1797, "2963": 1797, "2964": 1797, "2965": 1797, "2966": 1798, "2967": 1798, "2968": 1799, "2969": 1800, "2970": 1801, "2971": 1802, "2972": 1803, "2973": 1804, "2974": 1805, "2975": 1806, "2976": 1806, "2977": 1806, "2978": 1807, "2979": 1808, "2980": 1809, "2981": 1809, "2982": 1809, "2983": 1810, "2984": 1811, "2985": 1812, "2986": 1812, "2987": 1812, "2988": 1813, "2989": 1814, "2990": 1815, "2991": 1816, "2992": 1816, "2993": 1816, "2994": 1816, "2995": 1816, "2996": 1817, "2997": 1818, "2998": 1819, "2999": 1820, "3000": 1821, "3001": 1822, "3002": 1823, "3003": 1824, "3004": 1825, "3005": 1826, "3006": 1827, "3007": 1828, "3008": 1829, "3009": 1829, "3010": 1830, "3011": 1831, "3012": 1832, "3013": 1833, "3014": 1833, "3015": 1834, "3016": 1834, "3017": 1835, "3018": 1835, "3019": 1836, "3020": 1837, "3021": 1837, "3022": 1838, "3023": 1838, "3024": 1839, "3025": 1840, "3026": 1840, "3027": 1841, "3028": 1842, "3029": 1843, "3030": 1844, "3031": 1845, "3032": 1846, "3033": 1847, "3034": 1848, "3035": 1849, "3036": 1850, "3037": 1851, "3038": 1852, "3039": 1852, "3040": 1852, "3041": 1853, "3042": 1854, "3043": 1854, "3044": 1855, "3045": 1856, "3046": 1857, "3047": 1858, "3048": 1859, "3049": 1859, "3050": 1860, "3051": 1860, "3052": 1860, "3053": 1861, "3054": 1862, "3055": 1863, "3056": 1864, "3057": 1864, "3058": 1864, "3059": 1865, "3060": 1866, "3061": 1866, "3062": 1866, "3063": 1867, "3064": 1867, "3065": 1867, "3066": 1867, "3067": 1867, "3068": 1867, "3069": 1868, "3070": 1869, "3071": 1870, "3072": 1871, "3073": 1872, "3074": 1873, "3075": 1874, "3076": 1875, "3077": 1876, "3078": 1877, "3079": 1878, "3080": 1878, "3081": 1879, "3082": 1879, "3083": 1880, "3084": 1881, "3085": 1881, "3086": 1882, "3087": 1883, "3088": 1884, "3089": 1885, "3090": 1886, "3091": 1886, "3092": 1886, "3093": 1886, "3094": 1886, "3095": 1886, "3096": 1886, "3097": 1886, "3098": 1886, "3099": 1886, "3100": 1886, "3101": 1886, "3102": 1886, "3103": 1886, "3104": 1886, "3105": 1886, "3106": 1886, "3107": 1886, "3108": 1886, "3109": 1886, "3110": 1886, "3111": 1887, "3112": 1888, "3113": 1889, "3114": 1890, "3115": 1891, "3116": 1892, "3117": 1893, "3118": 1894, "3119": 1895, "3120": 1895, "3121": 1896, "3122": 1897, "3123": 1897, "3124": 1898, "3125": 1899, "3126": 1899, "3127": 1899, "3128": 1900, "3129": 1901, "3130": 1902, "3131": 1903, "3132": 1904, "3133": 1905, "3134": 1906, "3135": 1906, "3136": 1906, "3137": 1906, "3138": 1906, "3139": 1907, "3140": 1908, "3141": 1908, "3142": 1908, "3143": 1908, "3144": 1908, "3145": 1909, "3146": 1910, "3147": 1911, "3148": 1911, "3149": 1911, "3150": 1911, "3151": 1911, "3152": 1912, "3153": 1913, "3154": 1914, "3155": 1914, "3156": 1915, "3157": 1915, "3158": 1915, "3159": 1915, "3160": 1916, "3161": 1916, "3162": 1916, "3163": 1916, "3164": 1916, "3165": 1916, "3166": 1916, "3167": 1916, "3168": 1916, "3169": 1917, "3170": 1918, "3171": 1919, "3172": 1919, "3173": 1920, "3174": 1920, "3175": 1920, "3176": 1920, "3177": 1920, "3178": 1920, "3179": 1920, "3180": 1920, "3181": 1920, "3182": 1920, "3183": 1920, "3184": 1920, "3185": 1920, "3186": 1920, "3187": 1920, "3188": 1920, "3189": 1920, "3190": 1920, "3191": 1920, "3192": 1921, "3193": 1922, "3194": 1923, "3195": 1923, "3196": 1924, "3197": 1925, "3198": 1925, "3199": 1926, "3200": 1927, "3201": 1927, "3202": 1927, "3203": 1928, "3204": 1928, "3205": 1929, "3206": 1929, "3207": 1930, "3208": 1931, "3209": 1932, "3210": 1933, "3211": 1933, "3212": 1933, "3213": 1934, "3214": 1935, "3215": 1936, "3216": 1937, "3217": 1938, "3218": 1939, "3219": 1939, "3220": 1939, "3221": 1939, "3222": 1939, "3223": 1939, "3224": 1939, "3225": 1939, "3226": 1939, "3227": 1939, "3228": 1939, "3229": 1939, "3230": 1939, "3231": 1939, "3232": 1939, "3233": 1939, "3234": 1939, "3235": 1939, "3236": 1939, "3237": 1939, "3238": 1939, "3239": 1939, "3240": 1939, "3241": 1939, "3242": 1939, "3243": 1939, "3244": 1939, "3245": 1939, "3246": 1939, "3247": 1939, "3248": 1939, "3249": 1939, "3250": 1939, "3251": 1939, "3252": 1939, "3253": 1939, "3254": 1939, "3255": 1939, "3256": 1939, "3257": 1939, "3258": 1939, "3259": 1939, "3260": 1940, "3261": 1940, "3262": 1940, "3263": 1940, "3264": 1940, "3265": 1940, "3266": 1940, "3267": 1940, "3268": 1941, "3269": 1942, "3270": 1942, "3271": 1943, "3272": 1943, "3273": 1944, "3274": 1945, "3275": 1946, "3276": 1947, "3277": 1948, "3278": 1949, "3279": 1950, "3280": 1951, "3281": 1952, "3282": 1953, "3283": 1954, "3284": 1954, "3285": 1955, "3286": 1956, "3287": 1957, "3288": 1957, "3289": 1957, "3290": 1957, "3291": 1957, "3292": 1957, "3293": 1957, "3294": 1957, "3295": 1957, "3296": 1957, "3297": 1957, "3298": 1957, "3299": 1957, "3300": 1958, "3301": 1958, "3302": 1958, "3303": 1958, "3304": 1958, "3305": 1959, "3306": 1959, "3307": 1959, "3308": 1959, "3309": 1959, "3310": 1959, "3311": 1959, "3312": 1960, "3313": 1961, "3314": 1961, "3315": 1962, "3316": 1963, "3317": 1964, "3318": 1964, "3319": 1965, "3320": 1965, "3321": 1966, "3322": 1967, "3323": 1967, "3324": 1967, "3325": 1967, "3326": 1968, "3327": 1969, "3328": 1970, "3329": 1971, "3330": 1971, "3331": 1971, "3332": 1972, "3333": 1973, "3334": 1973, "3335": 1974, "3336": 1975, "3337": 1976, "3338": 1976, "3339": 1976, "3340": 1976, "3341": 1976, "3342": 1976, "3343": 1976, "3344": 1976, "3345": 1976, "3346": 1976, "3347": 1976, "3348": 1976, "3349": 1976, "3350": 1976, "3351": 1976, "3352": 1976, "3353": 1976, "3354": 1976, "3355": 1976, "3356": 1976, "3357": 1976, "3358": 1976, "3359": 1976, "3360": 1976, "3361": 1976, "3362": 1976, "3363": 1976, "3364": 1976, "3365": 1976, "3366": 1976, "3367": 1976, "3368": 1976, "3369": 1976, "3370": 1976, "3371": 1976, "3372": 1976, "3373": 1976, "3374": 1976, "3375": 1976, "3376": 1976, "3377": 1976, "3378": 1976, "3379": 1976, "3380": 1976, "3381": 1976, "3382": 1977, "3383": 1978, "3384": 1979, "3385": 1980, "3386": 1981, "3387": 1982, "3388": 1983, "3389": 1984, "3390": 1985, "3391": 1985, "3392": 1986, "3393": 1987, "3394": 1987, "3395": 1987, "3396": 1987, "3397": 1988, "3398": 1989, "3399": 1990, "3400": 1991, "3401": 1991, "3402": 1992, "3403": 1993, "3404": 1994, "3405": 1995, "3406": 1996, "3407": 1996, "3408": 1997, "3409": 1998, "3410": 1998, "3411": 1999, "3412": 2000, "3413": 2001, "3414": 2002, "3415": 2002, "3416": 2002, "3417": 2002, "3418": 2002, "3419": 2002, "3420": 2002, "3421": 2002, "3422": 2003, "3423": 2004, "3424": 2005, "3425": 2006, "3426": 2007, "3427": 2008, "3428": 2008, "3429": 2009, "3430": 2010, "3431": 2011, "3432": 2011, "3433": 2011, "3434": 2011, "3435": 2011, "3436": 2012, "3437": 2013, "3438": 2014, "3439": 2015, "3440": 2015, "3441": 2015, "3442": 2015, "3443": 2016, "3444": 2017, "3445": 2018, "3446": 2018, "3447": 2019, "3448": 2020, "3449": 2020, "3450": 2020, "3451": 2020, "3452": 2021, "3453": 2022, "3454": 2023, "3455": 2024, "3456": 2025, "3457": 2026, "3458": 2027, "3459": 2028, "3460": 2029, "3461": 2030, "3462": 2030, "3463": 2031, "3464": 2031, "3465": 2031, "3466": 2031, "3467": 2031, "3468": 2032, "3469": 2033, "3470": 2034, "3471": 2035, "3472": 2035, "3473": 2036, "3474": 2037, "3475": 2038, "3476": 2039, "3477": 2040, "3478": 2041, "3479": 2042, "3480": 2042, "3481": 2042, "3482": 2043, "3483": 2044, "3484": 2045, "3485": 2046, "3486": 2047, "3487": 2047, "3488": 2048, "3489": 2049, "3490": 2049, "3491": 2050, "3492": 2050, "3493": 2051, "3494": 2052, "3495": 2053, "3496": 2054, "3497": 2055, "3498": 2056, "3499": 2057, "3500": 2058, "3501": 2059, "3502": 2060, "3503": 2061, "3504": 2061, "3505": 2061, "3506": 2062, "3507": 2062, "3508": 2062, "3509": 2063, "3510": 2064, "3511": 2065, "3512": 2065, "3513": 2066, "3514": 2067, "3515": 2068, "3516": 2069, "3517": 2070, "3518": 2071, "3519": 2071, "3520": 2072, "3521": 2073, "3522": 2074, "3523": 2075, "3524": 2076, "3525": 2076, "3526": 2077, "3527": 2077, "3528": 2078, "3529": 2078, "3530": 2079, "3531": 2079, "3532": 2079, "3533": 2079, "3534": 2079, "3535": 2079, "3536": 2079, "3537": 2079, "3538": 2079, "3539": 2079, "3540": 2079, "3541": 2079, "3542": 2079, "3543": 2079, "3544": 2079, "3545": 2080, "3546": 2081, "3547": 2082, "3548": 2082, "3549": 2083, "3550": 2083, "3551": 2083, "3552": 2084, "3553": 2085, "3554": 2085, "3555": 2086, "3556": 2086, "3557": 2086, "3558": 2087, "3559": 2087, "3560": 2088, "3561": 2089, "3562": 2089, "3563": 2089, "3564": 2090, "3565": 2091, "3566": 2092, "3567": 2093, "3568": 2094, "3569": 2094, "3570": 2095, "3571": 2096, "3572": 2096, "3573": 2096, "3574": 2096, "3575": 2096, "3576": 2096, "3577": 2096, "3578": 2096, "3579": 2096, "3580": 2096, "3581": 2096, "3582": 2096, "3583": 2096, "3584": 2097, "3585": 2097, "3586": 2098, "3587": 2098, "3588": 2099, "3589": 2099, "3590": 2099, "3591": 2099, "3592": 2099, "3593": 2099, "3594": 2099, "3595": 2099, "3596": 2099, "3597": 2099, "3598": 2099, "3599": 2099, "3600": 2099, "3601": 2100, "3602": 2100, "3603": 2101, "3604": 2101, "3605": 2102, "3606": 2102, "3607": 2103, "3608": 2103, "3609": 2103, "3610": 2104, "3611": 2105, "3612": 2106, "3613": 2106, "3614": 2107, "3615": 2108, "3616": 2109, "3617": 2110, "3618": 2110, "3619": 2110, "3620": 2110, "3621": 2110, "3622": 2110, "3623": 2110, "3624": 2111, "3625": 2112, "3626": 2112, "3627": 2112, "3628": 2113, "3629": 2114, "3630": 2115, "3631": 2116, "3632": 2117, "3633": 2118, "3634": 2118, "3635": 2118, "3636": 2118, "3637": 2118, "3638": 2118, "3639": 2118, "3640": 2119, "3641": 2120, "3642": 2121, "3643": 2122, "3644": 2123, "3645": 2123, "3646": 2124, "3647": 2125, "3648": 2126, "3649": 2126, "3650": 2126, "3651": 2127, "3652": 2128, "3653": 2129, "3654": 2130, "3655": 2131, "3656": 2131, "3657": 2131, "3658": 2132, "3659": 2133, "3660": 2133, "3661": 2134, "3662": 2134, "3663": 2134, "3664": 2135, "3665": 2136, "3666": 2137, "3667": 2138, "3668": 2139, "3669": 2139, "3670": 2139, "3671": 2139, "3672": 2140, "3673": 2140, "3674": 2140, "3675": 2140, "3676": 2140, "3677": 2140, "3678": 2140, "3679": 2140, "3680": 2140, "3681": 2140, "3682": 2140, "3683": 2140, "3684": 2140, "3685": 2140, "3686": 2141, "3687": 2142, "3688": 2143, "3689": 2144, "3690": 2145, "3691": 2146, "3692": 2147, "3693": 2148, "3694": 2149, "3695": 2150, "3696": 2150, "3697": 2150, "3698": 2151, "3699": 2152, "3700": 2153, "3701": 2154, "3702": 2155, "3703": 2156, "3704": 2157, "3705": 2158, "3706": 2159, "3707": 2159, "3708": 2160, "3709": 2161, "3710": 2162, "3711": 2163, "3712": 2163, "3713": 2163, "3714": 2163, "3715": 2163, "3716": 2163, "3717": 2163, "3718": 2163, "3719": 2163, "3720": 2164, "3721": 2164, "3722": 2165, "3723": 2166, "3724": 2167, "3725": 2168, "3726": 2168, "3727": 2168, "3728": 2169, "3729": 2169, "3730": 2170, "3731": 2170, "3732": 2170, "3733": 2171, "3734": 2172, "3735": 2173, "3736": 2173, "3737": 2173, "3738": 2174, "3739": 2174, "3740": 2175, "3741": 2175, "3742": 2175, "3743": 2176, "3744": 2176, "3745": 2176, "3746": 2177, "3747": 2178, "3748": 2179, "3749": 2180, "3750": 2180, "3751": 2180, "3752": 2180, "3753": 2181, "3754": 2182, "3755": 2183, "3756": 2184, "3757": 2185, "3758": 2186, "3759": 2186, "3760": 2187, "3761": 2188, "3762": 2189, "3763": 2190, "3764": 2190, "3765": 2191, "3766": 2192, "3767": 2193, "3768": 2194, "3769": 2194, "3770": 2194, "3771": 2194, "3772": 2195, "3773": 2196, "3774": 2197, "3775": 2198, "3776": 2198, "3777": 2198, "3778": 2198, "3779": 2199, "3780": 2200, "3781": 2200, "3782": 2200, "3783": 2200, "3784": 2200, "3785": 2200, "3786": 2201, "3787": 2201, "3788": 2201, "3789": 2201, "3790": 2201, "3791": 2201, "3792": 2202, "3793": 2203, "3794": 2204, "3795": 2204, "3796": 2205, "3797": 2206, "3798": 2207, "3799": 2207, "3800": 2207, "3801": 2208, "3802": 2208, "3803": 2208, "3804": 2208, "3805": 2208, "3806": 2208, "3807": 2208, "3808": 2209, "3809": 2210, "3810": 2211, "3811": 2211, "3812": 2212, "3813": 2213, "3814": 2213, "3815": 2214, "3816": 2214, "3817": 2215, "3818": 2216, "3819": 2217, "3820": 2217, "3821": 2218, "3822": 2219, "3823": 2220, "3824": 2221, "3825": 2222, "3826": 2223, "3827": 2224, "3828": 2224, "3829": 2224, "3830": 2225, "3831": 2226, "3832": 2227, "3833": 2228, "3834": 2229, "3835": 2229, "3836": 2230, "3837": 2231, "3838": 2231, "3839": 2231, "3840": 2231, "3841": 2231, "3842": 2232, "3843": 2233, "3844": 2233, "3845": 2233, "3846": 2233, "3847": 2233, "3848": 2233, "3849": 2233, "3850": 2233, "3851": 2233, "3852": 2233, "3853": 2233, "3854": 2233, "3855": 2234, "3856": 2235, "3857": 2236, "3858": 2237, "3859": 2238, "3860": 2239, "3861": 2240, "3862": 2241, "3863": 2242, "3864": 2242, "3865": 2243, "3866": 2243, "3867": 2243, "3868": 2244, "3869": 2245, "3870": 2245, "3871": 2246, "3872": 2246, "3873": 2246, "3874": 2246, "3875": 2246, "3876": 2246, "3877": 2246, "3878": 2246, "3879": 2246, "3880": 2246, "3881": 2246, "3882": 2246, "3883": 2246, "3884": 2247, "3885": 2248, "3886": 2249, "3887": 2249, "3888": 2249, "3889": 2249, "3890": 2249, "3891": 2249, "3892": 2249, "3893": 2249, "3894": 2249, "3895": 2249, "3896": 2249, "3897": 2249, "3898": 2249, "3899": 2249, "3900": 2249, "3901": 2249, "3902": 2249, "3903": 2249, "3904": 2249, "3905": 2249, "3906": 2249, "3907": 2249, "3908": 2249, "3909": 2249, "3910": 2249, "3911": 2249, "3912": 2249, "3913": 2249, "3914": 2249, "3915": 2249, "3916": 2249, "3917": 2249, "3918": 2249, "3919": 2249, "3920": 2249, "3921": 2249, "3922": 2250, "3923": 2251, "3924": 2252, "3925": 2252, "3926": 2252, "3927": 2253, "3928": 2254, "3929": 2255, "3930": 2255, "3931": 2255, "3932": 2256, "3933": 2256, "3934": 2257, "3935": 2258, "3936": 2259, "3937": 2259, "3938": 2259, "3939": 2260, "3940": 2261, "3941": 2262, "3942": 2263, "3943": 2264, "3944": 2264, "3945": 2264, "3946": 2264, "3947": 2264, "3948": 2264, "3949": 2264, "3950": 2264, "3951": 2264, "3952": 2264, "3953": 2265, "3954": 2266, "3955": 2267, "3956": 2267, "3957": 2268, "3958": 2268, "3959": 2269, "3960": 2269, "3961": 2269, "3962": 2270, "3963": 2271, "3964": 2272, "3965": 2273, "3966": 2274, "3967": 2274, "3968": 2274, "3969": 2274, "3970": 2274, "3971": 2274, "3972": 2274, "3973": 2274, "3974": 2274, "3975": 2274, "3976": 2275, "3977": 2275, "3978": 2276} -------------------------------------------------------------------------------- /splitter.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benedekrozemberczki/Splitter/2d53bbdbfe7ba99fe92d39ee7c1bf7c48ce96003/splitter.gif -------------------------------------------------------------------------------- /splitter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benedekrozemberczki/Splitter/2d53bbdbfe7ba99fe92d39ee7c1bf7c48ce96003/splitter.jpg -------------------------------------------------------------------------------- /src/ego_splitting.py: -------------------------------------------------------------------------------- 1 | """Ego-Splitter class""" 2 | 3 | import community 4 | import networkx as nx 5 | from tqdm import tqdm 6 | 7 | 8 | class EgoNetSplitter(object): 9 | """An implementation of `"Ego-Splitting" see: 10 | https://www.eecs.yorku.ca/course_archive/2017-18/F/6412/reading/kdd17p145.pdf 11 | From the KDD '17 paper "Ego-Splitting Framework: from Non-Overlapping to Overlapping Clusters". 12 | The tool first creates the egonets of nodes. 13 | A persona-graph is created which is clustered by the Louvain method. 14 | The resulting overlapping cluster memberships are stored as a dictionary. 15 | Args: 16 | resolution (float): Resolution parameter of Python Louvain. Default 1.0. 17 | """ 18 | def __init__(self, resolution=1.0): 19 | self.resolution = resolution 20 | 21 | def _create_egonet(self, node): 22 | """ 23 | Creating an ego net, extracting personas and partitioning it. 24 | Args: 25 | node: Node ID for egonet (ego node). 26 | """ 27 | ego_net_minus_ego = self.graph.subgraph(self.graph.neighbors(node)) 28 | components = {i: n for i, n in enumerate(nx.connected_components(ego_net_minus_ego))} 29 | new_mapping = {} 30 | personalities = [] 31 | for k, v in components.items(): 32 | personalities.append(self.index) 33 | for other_node in v: 34 | new_mapping[other_node] = self.index 35 | self.index = self.index+1 36 | self.components[node] = new_mapping 37 | self.personalities[node] = personalities 38 | 39 | def _create_egonets(self): 40 | """ 41 | Creating an egonet for each node. 42 | """ 43 | self.components = {} 44 | self.personalities = {} 45 | self.index = 0 46 | print("Creating egonets.") 47 | for node in tqdm(self.graph.nodes()): 48 | self._create_egonet(node) 49 | 50 | def _map_personalities(self): 51 | """ 52 | Mapping the personas to new nodes. 53 | """ 54 | self.personality_map = {p: n for n in self.graph.nodes() for p in self.personalities[n]} 55 | 56 | def _get_new_edge_ids(self, edge): 57 | """ 58 | Getting the new edge identifiers. 59 | Args: 60 | edge: Edge being mapped to the new identifiers. 61 | """ 62 | return (self.components[edge[0]][edge[1]], self.components[edge[1]][edge[0]]) 63 | 64 | def _create_persona_graph(self): 65 | """ 66 | Create a persona graph using the egonet components. 67 | """ 68 | print("Creating the persona graph.") 69 | self.persona_graph_edges = [self._get_new_edge_ids(e) for e in tqdm(self.graph.edges())] 70 | self.persona_graph = nx.from_edgelist(self.persona_graph_edges) 71 | 72 | def _create_partitions(self): 73 | """ 74 | Creating a non-overlapping clustering of nodes in the persona graph. 75 | """ 76 | print("Clustering the persona graph.") 77 | self.partitions = community.best_partition(self.persona_graph, resolution=self.resolution) 78 | self.overlapping_partitions = {node: [] for node in self.graph.nodes()} 79 | for node, membership in self.partitions.items(): 80 | self.overlapping_partitions[self.personality_map[node]].append(membership) 81 | 82 | def fit(self, graph): 83 | """ 84 | Fitting an Ego-Splitter clustering model. 85 | Arg types: 86 | * **graph** *(NetworkX graph)* - The graph to be clustered. 87 | """ 88 | self.graph = graph 89 | self._create_egonets() 90 | self._map_personalities() 91 | self._create_persona_graph() 92 | self._create_partitions() 93 | 94 | def get_memberships(self): 95 | r"""Getting the cluster membership of nodes. 96 | Return types: 97 | * **memberships** *(dictionary of lists)* - Cluster memberships. 98 | """ 99 | return self.overlapping_partitions 100 | -------------------------------------------------------------------------------- /src/main.py: -------------------------------------------------------------------------------- 1 | """Running the Splitter.""" 2 | 3 | import torch 4 | from param_parser import parameter_parser 5 | from splitter import SplitterTrainer 6 | from utils import tab_printer, graph_reader 7 | 8 | def main(): 9 | """ 10 | Parsing command line parameters. 11 | Reading data, embedding base graph, creating persona graph and learning a splitter. 12 | Saving the persona mapping and the embedding. 13 | """ 14 | args = parameter_parser() 15 | torch.manual_seed(args.seed) 16 | tab_printer(args) 17 | graph = graph_reader(args.edge_path) 18 | trainer = SplitterTrainer(graph, args) 19 | trainer.fit() 20 | trainer.save_embedding() 21 | trainer.save_persona_graph_mapping() 22 | 23 | if __name__ == "__main__": 24 | main() 25 | -------------------------------------------------------------------------------- /src/param_parser.py: -------------------------------------------------------------------------------- 1 | """Parameter parsing.""" 2 | 3 | import argparse 4 | 5 | def parameter_parser(): 6 | """ 7 | A method to parse up command line parameters. 8 | By default it trains on the Chameleons dataset. 9 | The default hyperparameters give a good quality representation without grid search. 10 | """ 11 | parser = argparse.ArgumentParser(description="Run Splitter.") 12 | 13 | parser.add_argument("--edge-path", 14 | nargs="?", 15 | default="./input/chameleon_edges.csv", 16 | help="Edge list csv.") 17 | 18 | parser.add_argument("--embedding-output-path", 19 | nargs="?", 20 | default="./output/chameleon_embedding.csv", 21 | help="Embedding output path.") 22 | 23 | parser.add_argument("--persona-output-path", 24 | nargs="?", 25 | default="./output/chameleon_personas.json", 26 | help="Persona output path.") 27 | 28 | parser.add_argument("--number-of-walks", 29 | type=int, 30 | default=10, 31 | help="Number of random walks per source node. Default is 10.") 32 | 33 | parser.add_argument("--window-size", 34 | type=int, 35 | default=5, 36 | help="Skip-gram window size. Default is 5.") 37 | 38 | parser.add_argument("--negative-samples", 39 | type=int, 40 | default=5, 41 | help="Negative sample number. Default is 5.") 42 | 43 | parser.add_argument("--walk-length", 44 | type=int, 45 | default=40, 46 | help="Truncated random walk length. Default is 40.") 47 | 48 | parser.add_argument("--seed", 49 | type=int, 50 | default=42, 51 | help="Random seed for PyTorch. Default is 42.") 52 | 53 | parser.add_argument("--learning-rate", 54 | type=float, 55 | default=0.025, 56 | help="Learning rate. Default is 0.025.") 57 | 58 | parser.add_argument("--lambd", 59 | type=float, 60 | default=0.1, 61 | help="Regularization parameter. Default is 0.1.") 62 | 63 | parser.add_argument("--dimensions", 64 | type=int, 65 | default=128, 66 | help="Embedding dimensions. Default is 128.") 67 | 68 | parser.add_argument('--workers', 69 | type=int, 70 | default=4, 71 | help='Number of parallel workers. Default is 4.') 72 | 73 | return parser.parse_args() 74 | -------------------------------------------------------------------------------- /src/splitter.py: -------------------------------------------------------------------------------- 1 | """Splitter Class.""" 2 | 3 | import json 4 | import torch 5 | import random 6 | import numpy as np 7 | import pandas as pd 8 | from tqdm import trange 9 | from walkers import DeepWalker 10 | from ego_splitting import EgoNetSplitter 11 | 12 | class Splitter(torch.nn.Module): 13 | """ 14 | An implementation of "Splitter: Learning Node Representations 15 | that Capture Multiple Social Contexts" (WWW 2019). 16 | Paper: http://epasto.org/papers/www2019splitter.pdf 17 | """ 18 | def __init__(self, args, base_node_count, node_count): 19 | """ 20 | Splitter set up. 21 | :param args: Arguments object. 22 | :param base_node_count: Number of nodes in the source graph. 23 | :param node_count: Number of nodes in the persona graph. 24 | """ 25 | super(Splitter, self).__init__() 26 | self.args = args 27 | self.base_node_count = base_node_count 28 | self.node_count = node_count 29 | 30 | def create_weights(self): 31 | """ 32 | Creating weights for embedding. 33 | """ 34 | self.base_node_embedding = torch.nn.Embedding(self.base_node_count, 35 | self.args.dimensions, 36 | padding_idx=0) 37 | 38 | self.node_embedding = torch.nn.Embedding(self.node_count, 39 | self.args.dimensions, 40 | padding_idx=0) 41 | 42 | self.node_noise_embedding = torch.nn.Embedding(self.node_count, 43 | self.args.dimensions, 44 | padding_idx=0) 45 | 46 | def initialize_weights(self, base_node_embedding, mapping): 47 | """ 48 | Using the base embedding and the persona mapping for initializing the embeddings. 49 | :param base_node_embedding: Node embedding of the source graph. 50 | :param mapping: Mapping of personas to nodes. 51 | """ 52 | persona_embedding = np.array([base_node_embedding[n] for _, n in mapping.items()]) 53 | self.node_embedding.weight.data = torch.nn.Parameter(torch.Tensor(persona_embedding)) 54 | self.node_noise_embedding.weight.data = torch.nn.Parameter(torch.Tensor(persona_embedding)) 55 | self.base_node_embedding.weight.data = torch.nn.Parameter(torch.Tensor(base_node_embedding), 56 | requires_grad=False) 57 | 58 | def calculate_main_loss(self, sources, contexts, targets): 59 | """ 60 | Calculating the main embedding loss. 61 | :param sources: Source node vector. 62 | :param contexts: Context node vector. 63 | :param targets: Binary target vector. 64 | :return main_loss: Loss value. 65 | """ 66 | node_f = self.node_embedding(sources) 67 | node_f = torch.nn.functional.normalize(node_f, p=2, dim=1) 68 | feature_f = self.node_noise_embedding(contexts) 69 | feature_f = torch.nn.functional.normalize(feature_f, p=2, dim=1) 70 | scores = torch.sum(node_f*feature_f, dim=1) 71 | scores = torch.sigmoid(scores) 72 | main_loss = targets*torch.log(scores)+(1-targets)*torch.log(1-scores) 73 | main_loss = -torch.mean(main_loss) 74 | return main_loss 75 | 76 | def calculate_regularization(self, pure_sources, personas): 77 | """ 78 | Calculating the regularization loss. 79 | :param pure_sources: Source nodes in persona graph. 80 | :param personas: Context node vector. 81 | :return regularization_loss: Loss value. 82 | """ 83 | source_f = self.node_embedding(pure_sources) 84 | original_f = self.base_node_embedding(personas) 85 | scores = torch.clamp(torch.sum(source_f*original_f, dim=1), -15, 15) 86 | scores = torch.sigmoid(scores) 87 | regularization_loss = -torch.mean(torch.log(scores)) 88 | return regularization_loss 89 | 90 | def forward(self, sources, contexts, targets, personas, pure_sources): 91 | """ 92 | Doing a forward pass. 93 | :param sources: Source node vector. 94 | :param contexts: Context node vector. 95 | :param targets: Binary target vector. 96 | :param pure_sources: Source nodes in persona graph. 97 | :param personas: Context node vector. 98 | :return loss: Loss value. 99 | """ 100 | main_loss = self.calculate_main_loss(sources, contexts, targets) 101 | regularization_loss = self.calculate_regularization(pure_sources, personas) 102 | loss = main_loss + self.args.lambd*regularization_loss 103 | return loss 104 | 105 | class SplitterTrainer(object): 106 | """ 107 | Class for training a Splitter. 108 | """ 109 | def __init__(self, graph, args): 110 | """ 111 | :param graph: NetworkX graph object. 112 | :param args: Arguments object. 113 | """ 114 | self.graph = graph 115 | self.args = args 116 | self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') 117 | 118 | def create_noises(self): 119 | """ 120 | Creating node noise distribution for negative sampling. 121 | """ 122 | self.downsampled_degrees = {} 123 | for n in self.egonet_splitter.persona_graph.nodes(): 124 | self.downsampled_degrees[n] = int(1+self.egonet_splitter.persona_graph.degree(n)**0.75) 125 | self.noises = [k for k, v in self.downsampled_degrees.items() for i in range(v)] 126 | 127 | def base_model_fit(self): 128 | """ 129 | Fitting DeepWalk on base model. 130 | """ 131 | self.base_walker = DeepWalker(self.graph, self.args) 132 | print("\nDoing base random walks.\n") 133 | self.base_walker.create_features() 134 | print("\nLearning the base model.\n") 135 | self.base_node_embedding = self.base_walker.learn_base_embedding() 136 | print("\nDeleting the base walker.\n") 137 | del self.base_walker 138 | 139 | def create_split(self): 140 | """ 141 | Creating an EgoNetSplitter. 142 | """ 143 | self.egonet_splitter = EgoNetSplitter() 144 | self.egonet_splitter.fit(self.graph) 145 | self.persona_walker = DeepWalker(self.egonet_splitter.persona_graph, self.args) 146 | print("\nDoing persona random walks.\n") 147 | self.persona_walker.create_features() 148 | self.create_noises() 149 | 150 | def setup_model(self): 151 | """ 152 | Creating a model and doing a transfer to GPU. 153 | """ 154 | base_node_count = self.graph.number_of_nodes() 155 | persona_node_count = self.egonet_splitter.persona_graph.number_of_nodes() 156 | self.model = Splitter(self.args, base_node_count, persona_node_count) 157 | self.model.create_weights() 158 | self.model.initialize_weights(self.base_node_embedding, 159 | self.egonet_splitter.personality_map) 160 | self.model = self.model.to(self.device) 161 | 162 | def transfer_batch(self, source_nodes, context_nodes, targets, persona_nodes, pure_source_nodes): 163 | """ 164 | Transfering the batch to GPU. 165 | """ 166 | self.sources = torch.LongTensor(source_nodes).to(self.device) 167 | self.contexts = torch.LongTensor(context_nodes).to(self.device) 168 | self.targets = torch.FloatTensor(targets).to(self.device) 169 | self.personas = torch.LongTensor(persona_nodes).to(self.device) 170 | self.pure_sources = torch.LongTensor(pure_source_nodes).to(self.device) 171 | 172 | def optimize(self): 173 | """ 174 | Doing a weight update. 175 | """ 176 | loss = self.model(self.sources, self.contexts, 177 | self.targets, self.personas, self.pure_sources) 178 | loss.backward() 179 | self.optimizer.step() 180 | self.optimizer.zero_grad() 181 | return loss.item() 182 | 183 | def process_walk(self, walk): 184 | """ 185 | Process random walk (source, context) pairs. 186 | Sample negative instances and create persona node list. 187 | :param walk: Random walk sequence. 188 | """ 189 | left_nodes = [walk[i] for i in range(len(walk)-self.args.window_size) for j in range(1, self.args.window_size+1)] 190 | right_nodes = [walk[i+j] for i in range(len(walk)-self.args.window_size) for j in range(1, self.args.window_size+1)] 191 | node_pair_count = len(left_nodes) 192 | source_nodes = left_nodes + right_nodes 193 | context_nodes = right_nodes + left_nodes 194 | persona_nodes = np.array([self.egonet_splitter.personality_map[source_node] for source_node in source_nodes]) 195 | pure_source_nodes = np.array(source_nodes) 196 | source_nodes = np.array((self.args.negative_samples+1)*source_nodes) 197 | noises = np.random.choice(self.noises, node_pair_count*2*self.args.negative_samples) 198 | context_nodes = np.concatenate((np.array(context_nodes), noises)) 199 | positives = [1.0 for node in range(node_pair_count*2)] 200 | negatives = [0.0 for node in range(node_pair_count*self.args.negative_samples*2)] 201 | targets = np.array(positives + negatives) 202 | self.transfer_batch(source_nodes, context_nodes, targets, persona_nodes, pure_source_nodes) 203 | 204 | def update_average_loss(self, loss_score): 205 | """ 206 | Updating the average loss and the description of the time remains bar. 207 | :param loss_score: Loss on the sample. 208 | """ 209 | self.cummulative_loss = self.cummulative_loss + loss_score 210 | self.steps = self.steps + 1 211 | average_loss = self.cummulative_loss/self.steps 212 | self.walk_steps.set_description("Splitter (Loss=%g)" % round(average_loss, 4)) 213 | 214 | def reset_average_loss(self, step): 215 | """ 216 | Doing a reset on the average loss. 217 | :param step: Current number of walks processed. 218 | """ 219 | if step % 100 == 0: 220 | self.cummulative_loss = 0 221 | self.steps = 0 222 | 223 | def fit(self): 224 | """ 225 | Fitting a model. 226 | """ 227 | self.base_model_fit() 228 | self.create_split() 229 | self.setup_model() 230 | self.model.train() 231 | self.optimizer = torch.optim.Adam(self.model.parameters(), lr=self.args.learning_rate) 232 | self.optimizer.zero_grad() 233 | print("\nLearning the joint model.\n") 234 | random.shuffle(self.persona_walker.paths) 235 | self.walk_steps = trange(len(self.persona_walker.paths), desc="Loss") 236 | for step in self.walk_steps: 237 | self.reset_average_loss(step) 238 | walk = self.persona_walker.paths[step] 239 | self.process_walk(walk) 240 | loss_score = self.optimize() 241 | self.update_average_loss(loss_score) 242 | 243 | def save_embedding(self): 244 | """ 245 | Saving the node embedding. 246 | """ 247 | print("\n\nSaving the model.\n") 248 | nodes = [node for node in self.egonet_splitter.persona_graph.nodes()] 249 | nodes.sort() 250 | nodes = torch.LongTensor(nodes).to(self.device) 251 | embedding = self.model.node_embedding(nodes).cpu().detach().numpy() 252 | embedding_header = ["id"] + ["x_" + str(x) for x in range(self.args.dimensions)] 253 | embedding = [np.array(range(embedding.shape[0])).reshape(-1, 1), embedding] 254 | embedding = np.concatenate(embedding, axis=1) 255 | embedding = pd.DataFrame(embedding, columns=embedding_header) 256 | embedding.to_csv(self.args.embedding_output_path, index=None) 257 | 258 | def save_persona_graph_mapping(self): 259 | """ 260 | Saving the persona map. 261 | """ 262 | with open(self.args.persona_output_path, "w") as f: 263 | json.dump(self.egonet_splitter.personality_map, f) 264 | -------------------------------------------------------------------------------- /src/utils.py: -------------------------------------------------------------------------------- 1 | """Data reading and printing utils.""" 2 | 3 | import pandas as pd 4 | import networkx as nx 5 | from texttable import Texttable 6 | 7 | def tab_printer(args): 8 | """ 9 | Function to print the logs in a nice tabular format. 10 | :param args: Parameters used for the model. 11 | """ 12 | args = vars(args) 13 | keys = sorted(args.keys()) 14 | t = Texttable() 15 | t.add_rows([["Parameter", "Value"]]) 16 | t.add_rows([[k.replace("_", " ").capitalize(), args[k]] for k in keys]) 17 | print(t.draw()) 18 | 19 | def graph_reader(path): 20 | """ 21 | Function to read the graph from the path. 22 | :param path: Path to the edge list. 23 | :return graph: NetworkX object returned. 24 | """ 25 | graph = nx.from_edgelist(pd.read_csv(path).values.tolist()) 26 | graph.remove_edges_from(nx.selfloop_edges(graph)) 27 | return graph 28 | -------------------------------------------------------------------------------- /src/walkers.py: -------------------------------------------------------------------------------- 1 | """DeepWalker class.""" 2 | 3 | import random 4 | import numpy as np 5 | from tqdm import tqdm 6 | import networkx as nx 7 | from gensim.models import Word2Vec 8 | 9 | class DeepWalker(object): 10 | """ 11 | DeepWalk node embedding learner object. 12 | A barebones implementation of "DeepWalk: Online Learning of Social Representations". 13 | Paper: https://arxiv.org/abs/1403.6652 14 | Video: https://www.youtube.com/watch?v=aZNtHJwfIVg 15 | """ 16 | def __init__(self, graph, args): 17 | """ 18 | :param graph: NetworkX graph. 19 | :param args: Arguments object. 20 | """ 21 | self.graph = graph 22 | self.args = args 23 | 24 | def do_walk(self, node): 25 | """ 26 | Doing a single truncated random walk from a source node. 27 | :param node: Source node of the truncated random walk. 28 | :return walk: A single random walk. 29 | """ 30 | walk = [node] 31 | while len(walk) < self.args.walk_length: 32 | nebs = [n for n in nx.neighbors(self.graph, walk[-1])] 33 | if len(nebs) == 0: 34 | break 35 | walk.append(random.choice(nebs)) 36 | return walk 37 | 38 | def create_features(self): 39 | """ 40 | Creating random walks from each node. 41 | """ 42 | self.paths = [] 43 | for node in tqdm(self.graph.nodes()): 44 | for _ in range(self.args.number_of_walks): 45 | walk = self.do_walk(node) 46 | self.paths.append(walk) 47 | 48 | def learn_base_embedding(self): 49 | """ 50 | Learning an embedding of nodes in the base graph. 51 | :return self.embedding: Embedding of nodes in the latent space. 52 | """ 53 | self.paths = [[str(node) for node in walk] for walk in self.paths] 54 | 55 | model = Word2Vec(self.paths, 56 | vector_size=self.args.dimensions, 57 | window=self.args.window_size, 58 | min_count=1, 59 | sg=1, 60 | workers=self.args.workers, 61 | iter=1) 62 | 63 | self.embedding = np.array([list(model[str(n)]) for n in self.graph.nodes()]) 64 | return self.embedding 65 | -------------------------------------------------------------------------------- /www2019splitter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benedekrozemberczki/Splitter/2d53bbdbfe7ba99fe92d39ee7c1bf7c48ce96003/www2019splitter.pdf --------------------------------------------------------------------------------