Debian GNU/Linux 9 syzkaller ttyS0 Warning: Permanently added '10.128.1.23' (ECDSA) to the list of known hosts. 2022/10/21 14:53:52 fuzzer started 2022/10/21 14:53:52 dialing manager at 10.128.0.163:36709 2022/10/21 14:53:53 syscalls: 3546 2022/10/21 14:53:53 code coverage: enabled 2022/10/21 14:53:53 comparison tracing: ioctl(KCOV_TRACE_CMP) failed: invalid argument 2022/10/21 14:53:53 extra coverage: extra coverage is not supported by the kernel 2022/10/21 14:53:53 delay kcov mmap: mmap returned an invalid pointer 2022/10/21 14:53:53 setuid sandbox: enabled 2022/10/21 14:53:53 namespace sandbox: enabled 2022/10/21 14:53:53 Android sandbox: /sys/fs/selinux/policy does not exist 2022/10/21 14:53:53 fault injection: enabled 2022/10/21 14:53:53 leak checking: CONFIG_DEBUG_KMEMLEAK is not enabled 2022/10/21 14:53:53 net packet injection: enabled 2022/10/21 14:53:53 net device setup: enabled 2022/10/21 14:53:53 concurrency sanitizer: /sys/kernel/debug/kcsan does not exist 2022/10/21 14:53:53 devlink PCI setup: PCI device 0000:00:10.0 is not available 2022/10/21 14:53:53 NIC VF setup: PCI device 0000:00:11.0 is not available 2022/10/21 14:53:53 USB emulation: /dev/raw-gadget does not exist 2022/10/21 14:53:53 hci packet injection: enabled 2022/10/21 14:53:53 wifi device emulation: kernel 4.17 required (have 4.14.295-syzkaller) 2022/10/21 14:53:53 802.15.4 emulation: /sys/bus/platform/devices/mac802154_hwsim does not exist 2022/10/21 14:53:53 fetching corpus: 0, signal 0/2000 (executing program) 2022/10/21 14:53:53 fetching corpus: 50, signal 38754/42553 (executing program) 2022/10/21 14:53:53 fetching corpus: 100, signal 69204/74678 (executing program) 2022/10/21 14:53:53 fetching corpus: 150, signal 88948/96050 (executing program) 2022/10/21 14:53:54 fetching corpus: 200, signal 103429/112106 (executing program) 2022/10/21 14:53:54 fetching corpus: 250, signal 116899/127146 (executing program) 2022/10/21 14:53:54 fetching corpus: 300, signal 126712/138499 (executing program) 2022/10/21 14:53:55 fetching corpus: 350, signal 137615/150892 (executing program) 2022/10/21 14:53:55 fetching corpus: 400, signal 146921/161637 (executing program) 2022/10/21 14:53:55 fetching corpus: 450, signal 153934/170158 (executing program) 2022/10/21 14:53:56 fetching corpus: 500, signal 160971/178600 (executing program) 2022/10/21 14:53:56 fetching corpus: 550, signal 169139/188128 (executing program) 2022/10/21 14:53:56 fetching corpus: 600, signal 177114/197418 (executing program) 2022/10/21 14:53:56 fetching corpus: 650, signal 183494/205129 (executing program) 2022/10/21 14:53:57 fetching corpus: 700, signal 189679/212621 (executing program) 2022/10/21 14:53:57 fetching corpus: 750, signal 197321/221489 (executing program) 2022/10/21 14:53:57 fetching corpus: 800, signal 204617/229987 (executing program) 2022/10/21 14:53:58 fetching corpus: 850, signal 210830/237412 (executing program) 2022/10/21 14:53:58 fetching corpus: 900, signal 215945/243788 (executing program) 2022/10/21 14:53:58 fetching corpus: 950, signal 220504/249577 (executing program) 2022/10/21 14:53:58 fetching corpus: 1000, signal 225703/255956 (executing program) 2022/10/21 14:53:59 fetching corpus: 1050, signal 230711/262091 (executing program) 2022/10/21 14:53:59 fetching corpus: 1100, signal 237035/269508 (executing program) 2022/10/21 14:53:59 fetching corpus: 1150, signal 240856/274514 (executing program) 2022/10/21 14:54:00 fetching corpus: 1200, signal 246174/280918 (executing program) 2022/10/21 14:54:00 fetching corpus: 1250, signal 250711/286576 (executing program) 2022/10/21 14:54:00 fetching corpus: 1300, signal 256361/293262 (executing program) 2022/10/21 14:54:01 fetching corpus: 1350, signal 261728/299593 (executing program) 2022/10/21 14:54:01 fetching corpus: 1400, signal 265949/304870 (executing program) 2022/10/21 14:54:02 fetching corpus: 1450, signal 269558/309512 (executing program) 2022/10/21 14:54:02 fetching corpus: 1500, signal 273866/314792 (executing program) 2022/10/21 14:54:02 fetching corpus: 1550, signal 277654/319607 (executing program) 2022/10/21 14:54:02 fetching corpus: 1600, signal 280759/323738 (executing program) 2022/10/21 14:54:03 fetching corpus: 1650, signal 283824/327872 (executing program) 2022/10/21 14:54:03 fetching corpus: 1700, signal 287917/332910 (executing program) 2022/10/21 14:54:03 fetching corpus: 1750, signal 291330/337329 (executing program) 2022/10/21 14:54:03 fetching corpus: 1800, signal 294349/341347 (executing program) 2022/10/21 14:54:04 fetching corpus: 1850, signal 296935/344925 (executing program) 2022/10/21 14:54:04 fetching corpus: 1900, signal 299784/348754 (executing program) 2022/10/21 14:54:04 fetching corpus: 1950, signal 302785/352726 (executing program) 2022/10/21 14:54:05 fetching corpus: 2000, signal 305710/356600 (executing program) 2022/10/21 14:54:05 fetching corpus: 2050, signal 308960/360777 (executing program) 2022/10/21 14:54:05 fetching corpus: 2100, signal 311086/363906 (executing program) 2022/10/21 14:54:05 fetching corpus: 2150, signal 313745/367540 (executing program) 2022/10/21 14:54:06 fetching corpus: 2200, signal 315975/370737 (executing program) 2022/10/21 14:54:06 fetching corpus: 2250, signal 318412/374145 (executing program) 2022/10/21 14:54:06 fetching corpus: 2300, signal 321236/377907 (executing program) 2022/10/21 14:54:07 fetching corpus: 2350, signal 323769/381341 (executing program) 2022/10/21 14:54:07 fetching corpus: 2400, signal 325443/384045 (executing program) 2022/10/21 14:54:07 fetching corpus: 2450, signal 327948/387414 (executing program) 2022/10/21 14:54:07 fetching corpus: 2500, signal 330477/390859 (executing program) 2022/10/21 14:54:08 fetching corpus: 2550, signal 332620/393902 (executing program) 2022/10/21 14:54:08 fetching corpus: 2600, signal 334818/397003 (executing program) 2022/10/21 14:54:08 fetching corpus: 2650, signal 337447/400477 (executing program) 2022/10/21 14:54:08 fetching corpus: 2700, signal 339931/403797 (executing program) 2022/10/21 14:54:09 fetching corpus: 2750, signal 342322/407041 (executing program) 2022/10/21 14:54:09 fetching corpus: 2800, signal 344029/409703 (executing program) 2022/10/21 14:54:09 fetching corpus: 2850, signal 345767/412287 (executing program) 2022/10/21 14:54:09 fetching corpus: 2900, signal 347427/414839 (executing program) 2022/10/21 14:54:10 fetching corpus: 2950, signal 348791/417156 (executing program) 2022/10/21 14:54:10 fetching corpus: 3000, signal 350869/420087 (executing program) 2022/10/21 14:54:10 fetching corpus: 3050, signal 353275/423248 (executing program) 2022/10/21 14:54:10 fetching corpus: 3100, signal 354977/425775 (executing program) 2022/10/21 14:54:11 fetching corpus: 3150, signal 357153/428711 (executing program) 2022/10/21 14:54:11 fetching corpus: 3200, signal 358909/431317 (executing program) 2022/10/21 14:54:11 fetching corpus: 3250, signal 360546/433805 (executing program) 2022/10/21 14:54:12 fetching corpus: 3300, signal 362796/436773 (executing program) 2022/10/21 14:54:12 fetching corpus: 3350, signal 364873/439596 (executing program) 2022/10/21 14:54:12 fetching corpus: 3400, signal 366412/441946 (executing program) 2022/10/21 14:54:12 fetching corpus: 3450, signal 368639/444909 (executing program) 2022/10/21 14:54:13 fetching corpus: 3500, signal 370627/447594 (executing program) 2022/10/21 14:54:13 fetching corpus: 3550, signal 372357/450096 (executing program) 2022/10/21 14:54:13 fetching corpus: 3600, signal 374002/452514 (executing program) 2022/10/21 14:54:13 fetching corpus: 3650, signal 376219/455433 (executing program) 2022/10/21 14:54:13 fetching corpus: 3700, signal 377589/457608 (executing program) 2022/10/21 14:54:14 fetching corpus: 3750, signal 379931/460582 (executing program) 2022/10/21 14:54:14 fetching corpus: 3800, signal 381271/462681 (executing program) 2022/10/21 14:54:14 fetching corpus: 3850, signal 383086/465195 (executing program) 2022/10/21 14:54:15 fetching corpus: 3900, signal 384568/467437 (executing program) 2022/10/21 14:54:15 fetching corpus: 3950, signal 386433/470013 (executing program) 2022/10/21 14:54:15 fetching corpus: 4000, signal 388212/472476 (executing program) 2022/10/21 14:54:15 fetching corpus: 4050, signal 389724/474730 (executing program) 2022/10/21 14:54:16 fetching corpus: 4100, signal 391665/477344 (executing program) 2022/10/21 14:54:16 fetching corpus: 4150, signal 392939/479431 (executing program) 2022/10/21 14:54:16 fetching corpus: 4200, signal 394959/482048 (executing program) 2022/10/21 14:54:17 fetching corpus: 4250, signal 396628/484362 (executing program) 2022/10/21 14:54:17 fetching corpus: 4300, signal 400372/488326 (executing program) 2022/10/21 14:54:17 fetching corpus: 4350, signal 402161/490721 (executing program) 2022/10/21 14:54:17 fetching corpus: 4400, signal 403417/492687 (executing program) 2022/10/21 14:54:18 fetching corpus: 4450, signal 404669/494656 (executing program) 2022/10/21 14:54:18 fetching corpus: 4500, signal 406723/497240 (executing program) 2022/10/21 14:54:18 fetching corpus: 4550, signal 408128/499340 (executing program) 2022/10/21 14:54:19 fetching corpus: 4600, signal 409921/501727 (executing program) 2022/10/21 14:54:19 fetching corpus: 4650, signal 411417/503908 (executing program) 2022/10/21 14:54:19 fetching corpus: 4700, signal 412736/505852 (executing program) 2022/10/21 14:54:19 fetching corpus: 4750, signal 414336/508081 (executing program) 2022/10/21 14:54:20 fetching corpus: 4800, signal 416230/510549 (executing program) 2022/10/21 14:54:20 fetching corpus: 4850, signal 417594/512512 (executing program) 2022/10/21 14:54:20 fetching corpus: 4900, signal 418799/514426 (executing program) 2022/10/21 14:54:21 fetching corpus: 4950, signal 420146/516447 (executing program) 2022/10/21 14:54:21 fetching corpus: 5000, signal 423056/519615 (executing program) 2022/10/21 14:54:21 fetching corpus: 5050, signal 424224/521449 (executing program) 2022/10/21 14:54:21 fetching corpus: 5100, signal 426395/524029 (executing program) 2022/10/21 14:54:22 fetching corpus: 5150, signal 427567/525812 (executing program) 2022/10/21 14:54:22 fetching corpus: 5200, signal 428802/527656 (executing program) 2022/10/21 14:54:22 fetching corpus: 5250, signal 429746/529329 (executing program) 2022/10/21 14:54:22 fetching corpus: 5300, signal 431017/531202 (executing program) 2022/10/21 14:54:23 fetching corpus: 5350, signal 433177/533752 (executing program) 2022/10/21 14:54:23 fetching corpus: 5400, signal 434341/535531 (executing program) 2022/10/21 14:54:24 fetching corpus: 5450, signal 436380/537947 (executing program) 2022/10/21 14:54:24 fetching corpus: 5500, signal 437718/539805 (executing program) 2022/10/21 14:54:24 fetching corpus: 5550, signal 439020/541683 (executing program) 2022/10/21 14:54:24 fetching corpus: 5600, signal 440568/543703 (executing program) 2022/10/21 14:54:25 fetching corpus: 5650, signal 442203/545820 (executing program) 2022/10/21 14:54:25 fetching corpus: 5700, signal 443552/547723 (executing program) 2022/10/21 14:54:25 fetching corpus: 5750, signal 444885/549605 (executing program) 2022/10/21 14:54:26 fetching corpus: 5800, signal 445841/551196 (executing program) 2022/10/21 14:54:26 fetching corpus: 5850, signal 447338/553214 (executing program) 2022/10/21 14:54:26 fetching corpus: 5900, signal 448558/554918 (executing program) 2022/10/21 14:54:27 fetching corpus: 5950, signal 451357/557820 (executing program) 2022/10/21 14:54:27 fetching corpus: 6000, signal 452484/559461 (executing program) 2022/10/21 14:54:27 fetching corpus: 6050, signal 454445/561692 (executing program) 2022/10/21 14:54:27 fetching corpus: 6100, signal 455946/563642 (executing program) 2022/10/21 14:54:28 fetching corpus: 6150, signal 457180/565360 (executing program) 2022/10/21 14:54:28 fetching corpus: 6200, signal 458411/567079 (executing program) 2022/10/21 14:54:28 fetching corpus: 6250, signal 459382/568601 (executing program) 2022/10/21 14:54:28 fetching corpus: 6300, signal 460430/570140 (executing program) 2022/10/21 14:54:29 fetching corpus: 6350, signal 462144/572179 (executing program) 2022/10/21 14:54:29 fetching corpus: 6400, signal 463521/573995 (executing program) 2022/10/21 14:54:29 fetching corpus: 6450, signal 464467/575517 (executing program) 2022/10/21 14:54:30 fetching corpus: 6500, signal 465396/576984 (executing program) 2022/10/21 14:54:30 fetching corpus: 6550, signal 466588/578619 (executing program) 2022/10/21 14:54:30 fetching corpus: 6600, signal 467591/580173 (executing program) 2022/10/21 14:54:31 fetching corpus: 6650, signal 468771/581854 (executing program) 2022/10/21 14:54:31 fetching corpus: 6700, signal 469805/583343 (executing program) 2022/10/21 14:54:31 fetching corpus: 6750, signal 470739/584763 (executing program) 2022/10/21 14:54:31 fetching corpus: 6800, signal 471713/586255 (executing program) 2022/10/21 14:54:32 fetching corpus: 6850, signal 472637/587701 (executing program) 2022/10/21 14:54:32 fetching corpus: 6900, signal 473501/589070 (executing program) 2022/10/21 14:54:32 fetching corpus: 6950, signal 474347/590401 (executing program) 2022/10/21 14:54:33 fetching corpus: 7000, signal 475664/592101 (executing program) 2022/10/21 14:54:33 fetching corpus: 7050, signal 476566/593490 (executing program) 2022/10/21 14:54:33 fetching corpus: 7100, signal 477506/594941 (executing program) 2022/10/21 14:54:33 fetching corpus: 7150, signal 478406/596373 (executing program) 2022/10/21 14:54:34 fetching corpus: 7200, signal 479426/597842 (executing program) 2022/10/21 14:54:34 fetching corpus: 7250, signal 480652/599461 (executing program) 2022/10/21 14:54:34 fetching corpus: 7300, signal 481754/600974 (executing program) 2022/10/21 14:54:34 fetching corpus: 7350, signal 482834/602492 (executing program) 2022/10/21 14:54:34 fetching corpus: 7400, signal 483546/603743 (executing program) 2022/10/21 14:54:35 fetching corpus: 7450, signal 485255/605597 (executing program) 2022/10/21 14:54:35 fetching corpus: 7500, signal 486207/606963 (executing program) 2022/10/21 14:54:35 fetching corpus: 7550, signal 487398/608557 (executing program) 2022/10/21 14:54:36 fetching corpus: 7600, signal 488063/609769 (executing program) 2022/10/21 14:54:36 fetching corpus: 7650, signal 489736/611591 (executing program) 2022/10/21 14:54:36 fetching corpus: 7700, signal 490558/612915 (executing program) 2022/10/21 14:54:37 fetching corpus: 7750, signal 491829/614492 (executing program) 2022/10/21 14:54:37 fetching corpus: 7800, signal 492853/615904 (executing program) 2022/10/21 14:54:37 fetching corpus: 7850, signal 493547/617128 (executing program) 2022/10/21 14:54:37 fetching corpus: 7900, signal 494579/618585 (executing program) 2022/10/21 14:54:38 fetching corpus: 7950, signal 495236/619721 (executing program) 2022/10/21 14:54:38 fetching corpus: 8000, signal 495970/620916 (executing program) 2022/10/21 14:54:38 fetching corpus: 8050, signal 496949/622278 (executing program) 2022/10/21 14:54:38 fetching corpus: 8100, signal 498115/623774 (executing program) 2022/10/21 14:54:39 fetching corpus: 8150, signal 499027/625078 (executing program) 2022/10/21 14:54:39 fetching corpus: 8200, signal 500360/626641 (executing program) 2022/10/21 14:54:39 fetching corpus: 8250, signal 501035/627839 (executing program) 2022/10/21 14:54:39 fetching corpus: 8300, signal 501896/629116 (executing program) 2022/10/21 14:54:40 fetching corpus: 8350, signal 502760/630424 (executing program) 2022/10/21 14:54:40 fetching corpus: 8400, signal 503706/631727 (executing program) 2022/10/21 14:54:40 fetching corpus: 8450, signal 504400/632895 (executing program) 2022/10/21 14:54:40 fetching corpus: 8500, signal 505237/634148 (executing program) 2022/10/21 14:54:41 fetching corpus: 8550, signal 506140/635446 (executing program) 2022/10/21 14:54:41 fetching corpus: 8600, signal 506844/636620 (executing program) 2022/10/21 14:54:41 fetching corpus: 8650, signal 507690/637876 (executing program) 2022/10/21 14:54:41 fetching corpus: 8700, signal 508452/639067 (executing program) 2022/10/21 14:54:42 fetching corpus: 8750, signal 509292/640307 (executing program) 2022/10/21 14:54:42 fetching corpus: 8800, signal 510140/641534 (executing program) 2022/10/21 14:54:43 fetching corpus: 8850, signal 511096/642811 (executing program) 2022/10/21 14:54:43 fetching corpus: 8900, signal 512095/644122 (executing program) 2022/10/21 14:54:43 fetching corpus: 8950, signal 512959/645340 (executing program) 2022/10/21 14:54:43 fetching corpus: 9000, signal 513916/646632 (executing program) 2022/10/21 14:54:44 fetching corpus: 9050, signal 514759/647834 (executing program) 2022/10/21 14:54:44 fetching corpus: 9100, signal 515707/649066 (executing program) 2022/10/21 14:54:44 fetching corpus: 9150, signal 516491/650138 (executing program) 2022/10/21 14:54:44 fetching corpus: 9200, signal 517277/651291 (executing program) 2022/10/21 14:54:45 fetching corpus: 9250, signal 518245/652536 (executing program) 2022/10/21 14:54:45 fetching corpus: 9300, signal 518866/653602 (executing program) 2022/10/21 14:54:45 fetching corpus: 9350, signal 519695/654745 (executing program) 2022/10/21 14:54:45 fetching corpus: 9400, signal 520396/655834 (executing program) 2022/10/21 14:54:46 fetching corpus: 9450, signal 521090/656899 (executing program) 2022/10/21 14:54:46 fetching corpus: 9500, signal 522261/658271 (executing program) 2022/10/21 14:54:46 fetching corpus: 9550, signal 522884/659291 (executing program) 2022/10/21 14:54:47 fetching corpus: 9600, signal 523683/660439 (executing program) 2022/10/21 14:54:47 fetching corpus: 9650, signal 524536/661610 (executing program) 2022/10/21 14:54:47 fetching corpus: 9700, signal 525376/662771 (executing program) 2022/10/21 14:54:47 fetching corpus: 9750, signal 526138/663853 (executing program) 2022/10/21 14:54:48 fetching corpus: 9800, signal 526754/664883 (executing program) 2022/10/21 14:54:48 fetching corpus: 9850, signal 527414/665933 (executing program) 2022/10/21 14:54:48 fetching corpus: 9900, signal 528212/667038 (executing program) 2022/10/21 14:54:48 fetching corpus: 9950, signal 528908/668062 (executing program) 2022/10/21 14:54:49 fetching corpus: 10000, signal 529536/669096 (executing program) 2022/10/21 14:54:49 fetching corpus: 10050, signal 533781/671919 (executing program) 2022/10/21 14:54:50 fetching corpus: 10100, signal 534705/673046 (executing program) 2022/10/21 14:54:50 fetching corpus: 10150, signal 535274/673991 (executing program) 2022/10/21 14:54:50 fetching corpus: 10200, signal 536086/675069 (executing program) 2022/10/21 14:54:51 fetching corpus: 10250, signal 536832/676091 (executing program) 2022/10/21 14:54:51 fetching corpus: 10300, signal 537462/677112 (executing program) 2022/10/21 14:54:51 fetching corpus: 10350, signal 538379/678172 (executing program) 2022/10/21 14:54:51 fetching corpus: 10400, signal 539353/679314 (executing program) 2022/10/21 14:54:52 fetching corpus: 10450, signal 540069/680340 (executing program) 2022/10/21 14:54:52 fetching corpus: 10500, signal 540884/681368 (executing program) 2022/10/21 14:54:53 fetching corpus: 10550, signal 541593/682337 (executing program) 2022/10/21 14:54:53 fetching corpus: 10600, signal 542423/683410 (executing program) 2022/10/21 14:54:53 fetching corpus: 10650, signal 543044/684347 (executing program) 2022/10/21 14:54:53 fetching corpus: 10700, signal 543795/685332 (executing program) 2022/10/21 14:54:53 fetching corpus: 10750, signal 544387/686272 (executing program) 2022/10/21 14:54:54 fetching corpus: 10800, signal 545127/687309 (executing program) 2022/10/21 14:54:54 fetching corpus: 10850, signal 545651/688238 (executing program) 2022/10/21 14:54:55 fetching corpus: 10900, signal 546779/689393 (executing program) 2022/10/21 14:54:55 fetching corpus: 10950, signal 547498/690374 (executing program) 2022/10/21 14:54:55 fetching corpus: 11000, signal 548090/691299 (executing program) 2022/10/21 14:54:56 fetching corpus: 11050, signal 548817/692321 (executing program) 2022/10/21 14:54:56 fetching corpus: 11100, signal 549506/693245 (executing program) 2022/10/21 14:54:56 fetching corpus: 11150, signal 550114/694166 (executing program) 2022/10/21 14:54:56 fetching corpus: 11200, signal 550691/695111 (executing program) 2022/10/21 14:54:57 fetching corpus: 11250, signal 551236/695984 (executing program) 2022/10/21 14:54:57 fetching corpus: 11300, signal 551797/696896 (executing program) 2022/10/21 14:54:57 fetching corpus: 11350, signal 552276/697751 (executing program) 2022/10/21 14:54:57 fetching corpus: 11400, signal 552855/698653 (executing program) 2022/10/21 14:54:58 fetching corpus: 11450, signal 553737/699648 (executing program) 2022/10/21 14:54:58 fetching corpus: 11500, signal 554489/700579 (executing program) 2022/10/21 14:54:58 fetching corpus: 11550, signal 555226/701519 (executing program) 2022/10/21 14:54:58 fetching corpus: 11600, signal 556002/702428 (executing program) 2022/10/21 14:54:59 fetching corpus: 11650, signal 556596/703360 (executing program) 2022/10/21 14:54:59 fetching corpus: 11700, signal 557298/704282 (executing program) 2022/10/21 14:54:59 fetching corpus: 11750, signal 558298/705340 (executing program) 2022/10/21 14:55:00 fetching corpus: 11800, signal 559037/706279 (executing program) 2022/10/21 14:55:00 fetching corpus: 11850, signal 559685/707157 (executing program) 2022/10/21 14:55:00 fetching corpus: 11900, signal 560123/707965 (executing program) 2022/10/21 14:55:00 fetching corpus: 11950, signal 560828/708839 (executing program) 2022/10/21 14:55:01 fetching corpus: 12000, signal 561642/709795 (executing program) 2022/10/21 14:55:01 fetching corpus: 12050, signal 562353/710655 (executing program) 2022/10/21 14:55:01 fetching corpus: 12100, signal 562873/711488 (executing program) 2022/10/21 14:55:01 fetching corpus: 12150, signal 563505/712367 (executing program) 2022/10/21 14:55:02 fetching corpus: 12200, signal 564297/713280 (executing program) 2022/10/21 14:55:02 fetching corpus: 12250, signal 564844/714138 (executing program) 2022/10/21 14:55:02 fetching corpus: 12300, signal 565447/715006 (executing program) 2022/10/21 14:55:03 fetching corpus: 12350, signal 566065/715827 (executing program) 2022/10/21 14:55:03 fetching corpus: 12400, signal 566844/716732 (executing program) 2022/10/21 14:55:03 fetching corpus: 12450, signal 567524/717612 (executing program) 2022/10/21 14:55:03 fetching corpus: 12500, signal 568020/718393 (executing program) 2022/10/21 14:55:04 fetching corpus: 12550, signal 568796/719323 (executing program) 2022/10/21 14:55:04 fetching corpus: 12600, signal 569411/720174 (executing program) 2022/10/21 14:55:04 fetching corpus: 12650, signal 570146/721026 (executing program) 2022/10/21 14:55:04 fetching corpus: 12700, signal 570743/721859 (executing program) 2022/10/21 14:55:04 fetching corpus: 12750, signal 571353/722667 (executing program) 2022/10/21 14:55:05 fetching corpus: 12800, signal 571885/723429 (executing program) 2022/10/21 14:55:05 fetching corpus: 12850, signal 572343/724172 (executing program) 2022/10/21 14:55:06 fetching corpus: 12900, signal 573038/725046 (executing program) 2022/10/21 14:55:06 fetching corpus: 12950, signal 573528/725785 (executing program) 2022/10/21 14:55:07 fetching corpus: 13000, signal 574356/726642 (executing program) 2022/10/21 14:55:07 fetching corpus: 13050, signal 575227/727546 (executing program) 2022/10/21 14:55:07 fetching corpus: 13100, signal 575913/728385 (executing program) 2022/10/21 14:55:08 fetching corpus: 13150, signal 576498/729132 (executing program) 2022/10/21 14:55:08 fetching corpus: 13200, signal 577168/729919 (executing program) 2022/10/21 14:55:08 fetching corpus: 13250, signal 577906/730753 (executing program) 2022/10/21 14:55:08 fetching corpus: 13300, signal 578364/731453 (executing program) 2022/10/21 14:55:09 fetching corpus: 13350, signal 578899/732193 (executing program) 2022/10/21 14:55:09 fetching corpus: 13400, signal 581109/733509 (executing program) 2022/10/21 14:55:09 fetching corpus: 13450, signal 581799/734314 (executing program) 2022/10/21 14:55:09 fetching corpus: 13500, signal 582572/735098 (executing program) 2022/10/21 14:55:10 fetching corpus: 13550, signal 583315/735869 (executing program) 2022/10/21 14:55:10 fetching corpus: 13600, signal 583880/736576 (executing program) 2022/10/21 14:55:10 fetching corpus: 13650, signal 584426/737285 (executing program) 2022/10/21 14:55:10 fetching corpus: 13700, signal 585161/738097 (executing program) 2022/10/21 14:55:11 fetching corpus: 13750, signal 585699/738821 (executing program) 2022/10/21 14:55:11 fetching corpus: 13800, signal 586291/739572 (executing program) 2022/10/21 14:55:11 fetching corpus: 13850, signal 586962/740323 (executing program) 2022/10/21 14:55:12 fetching corpus: 13900, signal 587497/741047 (executing program) 2022/10/21 14:55:12 fetching corpus: 13950, signal 587984/741737 (executing program) 2022/10/21 14:55:12 fetching corpus: 14000, signal 588589/742460 (executing program) 2022/10/21 14:55:13 fetching corpus: 14050, signal 589172/743220 (executing program) 2022/10/21 14:55:13 fetching corpus: 14100, signal 589724/743926 (executing program) 2022/10/21 14:55:13 fetching corpus: 14150, signal 590217/744666 (executing program) 2022/10/21 14:55:13 fetching corpus: 14200, signal 590550/745327 (executing program) 2022/10/21 14:55:14 fetching corpus: 14250, signal 591240/746105 (executing program) 2022/10/21 14:55:14 fetching corpus: 14300, signal 591906/746840 (executing program) 2022/10/21 14:55:14 fetching corpus: 14350, signal 592479/747547 (executing program) 2022/10/21 14:55:14 fetching corpus: 14400, signal 593290/748285 (executing program) 2022/10/21 14:55:15 fetching corpus: 14450, signal 594003/749033 (executing program) 2022/10/21 14:55:15 fetching corpus: 14500, signal 594456/749701 (executing program) 2022/10/21 14:55:15 fetching corpus: 14550, signal 595170/750442 (executing program) 2022/10/21 14:55:15 fetching corpus: 14600, signal 595699/751121 (executing program) 2022/10/21 14:55:16 fetching corpus: 14650, signal 596473/751840 (executing program) 2022/10/21 14:55:16 fetching corpus: 14700, signal 597012/752515 (executing program) 2022/10/21 14:55:16 fetching corpus: 14750, signal 597546/753189 (executing program) 2022/10/21 14:55:16 fetching corpus: 14800, signal 598200/753895 (executing program) 2022/10/21 14:55:17 fetching corpus: 14850, signal 598678/754566 (executing program) 2022/10/21 14:55:17 fetching corpus: 14900, signal 599151/755229 (executing program) 2022/10/21 14:55:17 fetching corpus: 14950, signal 599714/755911 (executing program) 2022/10/21 14:55:18 fetching corpus: 15000, signal 600371/756575 (executing program) 2022/10/21 14:55:18 fetching corpus: 15050, signal 601043/757288 (executing program) 2022/10/21 14:55:18 fetching corpus: 15100, signal 601626/757905 (executing program) 2022/10/21 14:55:19 fetching corpus: 15150, signal 602763/758718 (executing program) 2022/10/21 14:55:19 fetching corpus: 15200, signal 603291/759347 (executing program) 2022/10/21 14:55:19 fetching corpus: 15250, signal 603837/759981 (executing program) 2022/10/21 14:55:19 fetching corpus: 15300, signal 604333/760642 (executing program) 2022/10/21 14:55:20 fetching corpus: 15350, signal 604833/761275 (executing program) 2022/10/21 14:55:20 fetching corpus: 15400, signal 605314/761886 (executing program) 2022/10/21 14:55:20 fetching corpus: 15450, signal 605775/762552 (executing program) 2022/10/21 14:55:20 fetching corpus: 15500, signal 606343/763167 (executing program) 2022/10/21 14:55:21 fetching corpus: 15550, signal 606930/763798 (executing program) 2022/10/21 14:55:21 fetching corpus: 15600, signal 607408/764427 (executing program) 2022/10/21 14:55:21 fetching corpus: 15650, signal 607950/765061 (executing program) 2022/10/21 14:55:21 fetching corpus: 15700, signal 608508/765716 (executing program) 2022/10/21 14:55:22 fetching corpus: 15750, signal 608943/766281 (executing program) 2022/10/21 14:55:22 fetching corpus: 15800, signal 609528/766880 (executing program) 2022/10/21 14:55:22 fetching corpus: 15850, signal 609993/767439 (executing program) 2022/10/21 14:55:23 fetching corpus: 15900, signal 610422/768022 (executing program) 2022/10/21 14:55:23 fetching corpus: 15950, signal 610830/768600 (executing program) 2022/10/21 14:55:23 fetching corpus: 16000, signal 611522/769261 (executing program) 2022/10/21 14:55:23 fetching corpus: 16050, signal 612009/769862 (executing program) 2022/10/21 14:55:24 fetching corpus: 16100, signal 612724/770472 (executing program) 2022/10/21 14:55:24 fetching corpus: 16150, signal 613351/771065 (executing program) 2022/10/21 14:55:24 fetching corpus: 16200, signal 613772/771671 (executing program) 2022/10/21 14:55:24 fetching corpus: 16250, signal 614275/772245 (executing program) 2022/10/21 14:55:25 fetching corpus: 16300, signal 614743/772854 (executing program) 2022/10/21 14:55:25 fetching corpus: 16350, signal 615273/773454 (executing program) 2022/10/21 14:55:25 fetching corpus: 16400, signal 615962/774064 (executing program) 2022/10/21 14:55:26 fetching corpus: 16450, signal 616453/774623 (executing program) 2022/10/21 14:55:26 fetching corpus: 16500, signal 616876/775186 (executing program) 2022/10/21 14:55:26 fetching corpus: 16550, signal 617230/775715 (executing program) 2022/10/21 14:55:27 fetching corpus: 16600, signal 617702/776230 (executing program) 2022/10/21 14:55:27 fetching corpus: 16650, signal 618130/776803 (executing program) 2022/10/21 14:55:27 fetching corpus: 16700, signal 618755/777392 (executing program) 2022/10/21 14:55:28 fetching corpus: 16750, signal 619464/777990 (executing program) 2022/10/21 14:55:28 fetching corpus: 16800, signal 619998/778534 (executing program) 2022/10/21 14:55:28 fetching corpus: 16850, signal 620544/779117 (executing program) 2022/10/21 14:55:28 fetching corpus: 16900, signal 621006/779660 (executing program) 2022/10/21 14:55:29 fetching corpus: 16950, signal 621546/780245 (executing program) 2022/10/21 14:55:29 fetching corpus: 17000, signal 622098/780805 (executing program) 2022/10/21 14:55:29 fetching corpus: 17050, signal 622499/781318 (executing program) 2022/10/21 14:55:30 fetching corpus: 17100, signal 622924/781887 (executing program) 2022/10/21 14:55:30 fetching corpus: 17150, signal 623423/782427 (executing program) 2022/10/21 14:55:30 fetching corpus: 17200, signal 623840/782950 (executing program) 2022/10/21 14:55:30 fetching corpus: 17250, signal 624232/783487 (executing program) 2022/10/21 14:55:31 fetching corpus: 17300, signal 624576/784034 (executing program) 2022/10/21 14:55:31 fetching corpus: 17350, signal 625052/784566 (executing program) 2022/10/21 14:55:31 fetching corpus: 17400, signal 625638/785146 (executing program) 2022/10/21 14:55:32 fetching corpus: 17450, signal 626032/785639 (executing program) 2022/10/21 14:55:32 fetching corpus: 17500, signal 626464/786132 (executing program) 2022/10/21 14:55:32 fetching corpus: 17550, signal 626949/786650 (executing program) 2022/10/21 14:55:32 fetching corpus: 17600, signal 627380/787135 (executing program) 2022/10/21 14:55:33 fetching corpus: 17650, signal 627887/787675 (executing program) 2022/10/21 14:55:33 fetching corpus: 17700, signal 628321/788194 (executing program) 2022/10/21 14:55:33 fetching corpus: 17750, signal 628831/788730 (executing program) 2022/10/21 14:55:34 fetching corpus: 17800, signal 629365/789267 (executing program) 2022/10/21 14:55:34 fetching corpus: 17850, signal 629916/789796 (executing program) 2022/10/21 14:55:34 fetching corpus: 17900, signal 630271/790276 (executing program) 2022/10/21 14:55:35 fetching corpus: 17950, signal 631157/790784 (executing program) 2022/10/21 14:55:35 fetching corpus: 18000, signal 631560/791264 (executing program) 2022/10/21 14:55:35 fetching corpus: 18050, signal 631968/791736 (executing program) 2022/10/21 14:55:35 fetching corpus: 18100, signal 632765/792273 (executing program) 2022/10/21 14:55:36 fetching corpus: 18150, signal 633313/792823 (executing program) 2022/10/21 14:55:36 fetching corpus: 18200, signal 633850/793285 (executing program) 2022/10/21 14:55:36 fetching corpus: 18250, signal 634230/793771 (executing program) 2022/10/21 14:55:37 fetching corpus: 18300, signal 634713/794247 (executing program) 2022/10/21 14:55:37 fetching corpus: 18350, signal 635049/794715 (executing program) 2022/10/21 14:55:37 fetching corpus: 18400, signal 635594/795192 (executing program) 2022/10/21 14:55:37 fetching corpus: 18450, signal 635939/795600 (executing program) 2022/10/21 14:55:38 fetching corpus: 18500, signal 636440/796089 (executing program) 2022/10/21 14:55:38 fetching corpus: 18550, signal 636810/796542 (executing program) 2022/10/21 14:55:38 fetching corpus: 18600, signal 637459/796996 (executing program) 2022/10/21 14:55:39 fetching corpus: 18650, signal 638000/797451 (executing program) 2022/10/21 14:55:39 fetching corpus: 18700, signal 638605/797925 (executing program) 2022/10/21 14:55:39 fetching corpus: 18750, signal 639120/798418 (executing program) 2022/10/21 14:55:39 fetching corpus: 18800, signal 639477/798881 (executing program) 2022/10/21 14:55:40 fetching corpus: 18850, signal 639762/799336 (executing program) 2022/10/21 14:55:40 fetching corpus: 18900, signal 640204/799792 (executing program) 2022/10/21 14:55:40 fetching corpus: 18950, signal 640635/800199 (executing program) 2022/10/21 14:55:41 fetching corpus: 19000, signal 641203/800652 (executing program) 2022/10/21 14:55:41 fetching corpus: 19050, signal 641652/801082 (executing program) 2022/10/21 14:55:41 fetching corpus: 19100, signal 642258/801566 (executing program) 2022/10/21 14:55:42 fetching corpus: 19150, signal 642632/801992 (executing program) 2022/10/21 14:55:42 fetching corpus: 19200, signal 643032/802398 (executing program) 2022/10/21 14:55:42 fetching corpus: 19250, signal 643477/802830 (executing program) 2022/10/21 14:55:43 fetching corpus: 19300, signal 644279/803249 (executing program) 2022/10/21 14:55:43 fetching corpus: 19350, signal 645205/803681 (executing program) 2022/10/21 14:55:43 fetching corpus: 19400, signal 645618/804062 (executing program) 2022/10/21 14:55:43 fetching corpus: 19450, signal 646076/804480 (executing program) 2022/10/21 14:55:44 fetching corpus: 19500, signal 646680/804922 (executing program) 2022/10/21 14:55:44 fetching corpus: 19550, signal 647198/805372 (executing program) 2022/10/21 14:55:44 fetching corpus: 19600, signal 647573/805795 (executing program) 2022/10/21 14:55:45 fetching corpus: 19650, signal 647949/806221 (executing program) 2022/10/21 14:55:45 fetching corpus: 19700, signal 648454/806641 (executing program) 2022/10/21 14:55:45 fetching corpus: 19750, signal 648926/807042 (executing program) 2022/10/21 14:55:45 fetching corpus: 19800, signal 649466/807421 (executing program) 2022/10/21 14:55:46 fetching corpus: 19850, signal 649870/807832 (executing program) 2022/10/21 14:55:46 fetching corpus: 19900, signal 650292/808253 (executing program) 2022/10/21 14:55:46 fetching corpus: 19950, signal 650888/808648 (executing program) 2022/10/21 14:55:46 fetching corpus: 20000, signal 651205/809032 (executing program) 2022/10/21 14:55:47 fetching corpus: 20050, signal 651686/809439 (executing program) 2022/10/21 14:55:47 fetching corpus: 20100, signal 652099/809816 (executing program) 2022/10/21 14:55:47 fetching corpus: 20150, signal 652650/810247 (executing program) 2022/10/21 14:55:48 fetching corpus: 20200, signal 653103/810488 (executing program) 2022/10/21 14:55:48 fetching corpus: 20250, signal 653502/810488 (executing program) 2022/10/21 14:55:48 fetching corpus: 20300, signal 653880/810488 (executing program) 2022/10/21 14:55:48 fetching corpus: 20350, signal 654214/810488 (executing program) 2022/10/21 14:55:49 fetching corpus: 20400, signal 654606/810493 (executing program) 2022/10/21 14:55:49 fetching corpus: 20450, signal 655055/810494 (executing program) 2022/10/21 14:55:49 fetching corpus: 20500, signal 655545/810501 (executing program) 2022/10/21 14:55:50 fetching corpus: 20550, signal 657721/810511 (executing program) 2022/10/21 14:55:50 fetching corpus: 20600, signal 658330/810511 (executing program) 2022/10/21 14:55:50 fetching corpus: 20650, signal 658729/810514 (executing program) 2022/10/21 14:55:50 fetching corpus: 20700, signal 659099/810514 (executing program) 2022/10/21 14:55:51 fetching corpus: 20750, signal 659415/810514 (executing program) 2022/10/21 14:55:51 fetching corpus: 20800, signal 659848/810514 (executing program) 2022/10/21 14:55:51 fetching corpus: 20850, signal 660309/810514 (executing program) 2022/10/21 14:55:51 fetching corpus: 20900, signal 660785/810518 (executing program) 2022/10/21 14:55:52 fetching corpus: 20950, signal 661199/810521 (executing program) 2022/10/21 14:55:52 fetching corpus: 21000, signal 662574/810521 (executing program) 2022/10/21 14:55:52 fetching corpus: 21050, signal 662923/810521 (executing program) 2022/10/21 14:55:53 fetching corpus: 21100, signal 663391/810521 (executing program) 2022/10/21 14:55:53 fetching corpus: 21150, signal 663718/810521 (executing program) 2022/10/21 14:55:54 fetching corpus: 21200, signal 664014/810522 (executing program) 2022/10/21 14:55:54 fetching corpus: 21250, signal 664414/810522 (executing program) 2022/10/21 14:55:54 fetching corpus: 21300, signal 664736/810522 (executing program) 2022/10/21 14:55:54 fetching corpus: 21350, signal 665130/810526 (executing program) 2022/10/21 14:55:55 fetching corpus: 21400, signal 665515/810526 (executing program) 2022/10/21 14:55:55 fetching corpus: 21450, signal 665999/810526 (executing program) 2022/10/21 14:55:55 fetching corpus: 21500, signal 666566/810530 (executing program) 2022/10/21 14:55:55 fetching corpus: 21550, signal 667008/810532 (executing program) 2022/10/21 14:55:56 fetching corpus: 21600, signal 667331/810532 (executing program) 2022/10/21 14:55:56 fetching corpus: 21650, signal 667976/810534 (executing program) 2022/10/21 14:55:56 fetching corpus: 21700, signal 668445/810553 (executing program) 2022/10/21 14:55:57 fetching corpus: 21750, signal 668882/810558 (executing program) 2022/10/21 14:55:57 fetching corpus: 21800, signal 669238/810558 (executing program) 2022/10/21 14:55:58 fetching corpus: 21850, signal 669659/810565 (executing program) 2022/10/21 14:55:58 fetching corpus: 21900, signal 670016/810565 (executing program) 2022/10/21 14:55:58 fetching corpus: 21950, signal 670440/810565 (executing program) 2022/10/21 14:55:58 fetching corpus: 22000, signal 670992/810569 (executing program) 2022/10/21 14:55:59 fetching corpus: 22050, signal 671518/810569 (executing program) 2022/10/21 14:55:59 fetching corpus: 22100, signal 672023/810570 (executing program) 2022/10/21 14:55:59 fetching corpus: 22150, signal 672400/810573 (executing program) 2022/10/21 14:55:59 fetching corpus: 22200, signal 672915/810577 (executing program) 2022/10/21 14:55:59 fetching corpus: 22250, signal 673307/810577 (executing program) 2022/10/21 14:56:00 fetching corpus: 22300, signal 673638/810577 (executing program) 2022/10/21 14:56:00 fetching corpus: 22350, signal 674038/810577 (executing program) 2022/10/21 14:56:00 fetching corpus: 22400, signal 674425/810581 (executing program) 2022/10/21 14:56:01 fetching corpus: 22450, signal 674773/810581 (executing program) 2022/10/21 14:56:01 fetching corpus: 22500, signal 675082/810581 (executing program) 2022/10/21 14:56:01 fetching corpus: 22550, signal 675460/810581 (executing program) 2022/10/21 14:56:01 fetching corpus: 22600, signal 675713/810581 (executing program) 2022/10/21 14:56:02 fetching corpus: 22650, signal 676126/810581 (executing program) 2022/10/21 14:56:02 fetching corpus: 22700, signal 676592/810584 (executing program) 2022/10/21 14:56:02 fetching corpus: 22750, signal 676967/810584 (executing program) 2022/10/21 14:56:03 fetching corpus: 22800, signal 677282/810587 (executing program) 2022/10/21 14:56:03 fetching corpus: 22850, signal 677723/810592 (executing program) 2022/10/21 14:56:03 fetching corpus: 22900, signal 678048/810597 (executing program) 2022/10/21 14:56:03 fetching corpus: 22950, signal 678434/810599 (executing program) 2022/10/21 14:56:04 fetching corpus: 23000, signal 678998/810599 (executing program) 2022/10/21 14:56:04 fetching corpus: 23050, signal 679399/810600 (executing program) 2022/10/21 14:56:04 fetching corpus: 23100, signal 679804/810614 (executing program) 2022/10/21 14:56:04 fetching corpus: 23150, signal 680238/810615 (executing program) 2022/10/21 14:56:05 fetching corpus: 23200, signal 680688/810615 (executing program) 2022/10/21 14:56:05 fetching corpus: 23250, signal 681057/810634 (executing program) 2022/10/21 14:56:05 fetching corpus: 23300, signal 681441/810638 (executing program) 2022/10/21 14:56:05 fetching corpus: 23350, signal 681837/810645 (executing program) 2022/10/21 14:56:06 fetching corpus: 23400, signal 682293/810646 (executing program) 2022/10/21 14:56:06 fetching corpus: 23450, signal 682587/810646 (executing program) 2022/10/21 14:56:06 fetching corpus: 23500, signal 682829/810646 (executing program) 2022/10/21 14:56:07 fetching corpus: 23550, signal 683208/810647 (executing program) 2022/10/21 14:56:07 fetching corpus: 23600, signal 683598/810647 (executing program) 2022/10/21 14:56:07 fetching corpus: 23650, signal 683929/810664 (executing program) 2022/10/21 14:56:07 fetching corpus: 23700, signal 684187/810664 (executing program) 2022/10/21 14:56:07 fetching corpus: 23750, signal 684710/810664 (executing program) 2022/10/21 14:56:08 fetching corpus: 23800, signal 685130/810665 (executing program) 2022/10/21 14:56:08 fetching corpus: 23850, signal 685543/810667 (executing program) 2022/10/21 14:56:08 fetching corpus: 23900, signal 685975/810668 (executing program) 2022/10/21 14:56:09 fetching corpus: 23950, signal 686327/810669 (executing program) 2022/10/21 14:56:09 fetching corpus: 24000, signal 686652/810671 (executing program) 2022/10/21 14:56:09 fetching corpus: 24050, signal 686982/810671 (executing program) 2022/10/21 14:56:09 fetching corpus: 24100, signal 687398/810679 (executing program) 2022/10/21 14:56:09 fetching corpus: 24150, signal 687688/810679 (executing program) 2022/10/21 14:56:10 fetching corpus: 24200, signal 687986/810684 (executing program) 2022/10/21 14:56:10 fetching corpus: 24250, signal 688358/810690 (executing program) 2022/10/21 14:56:10 fetching corpus: 24300, signal 688649/810697 (executing program) 2022/10/21 14:56:10 fetching corpus: 24350, signal 689020/810716 (executing program) 2022/10/21 14:56:11 fetching corpus: 24400, signal 689874/810721 (executing program) 2022/10/21 14:56:11 fetching corpus: 24450, signal 690178/810722 (executing program) 2022/10/21 14:56:11 fetching corpus: 24500, signal 690525/810723 (executing program) 2022/10/21 14:56:11 fetching corpus: 24550, signal 690985/810724 (executing program) 2022/10/21 14:56:12 fetching corpus: 24600, signal 691355/810724 (executing program) 2022/10/21 14:56:12 fetching corpus: 24650, signal 691716/810724 (executing program) 2022/10/21 14:56:12 fetching corpus: 24700, signal 692168/810725 (executing program) 2022/10/21 14:56:13 fetching corpus: 24750, signal 692461/810732 (executing program) 2022/10/21 14:56:13 fetching corpus: 24800, signal 692950/810732 (executing program) 2022/10/21 14:56:13 fetching corpus: 24850, signal 693366/810732 (executing program) 2022/10/21 14:56:14 fetching corpus: 24900, signal 693800/810735 (executing program) 2022/10/21 14:56:14 fetching corpus: 24950, signal 694176/810736 (executing program) 2022/10/21 14:56:14 fetching corpus: 25000, signal 694501/810736 (executing program) 2022/10/21 14:56:14 fetching corpus: 25050, signal 694771/810736 (executing program) 2022/10/21 14:56:15 fetching corpus: 25100, signal 695184/810737 (executing program) 2022/10/21 14:56:15 fetching corpus: 25150, signal 695665/810739 (executing program) 2022/10/21 14:56:15 fetching corpus: 25200, signal 696091/810744 (executing program) 2022/10/21 14:56:15 fetching corpus: 25250, signal 696417/810744 (executing program) 2022/10/21 14:56:16 fetching corpus: 25300, signal 696671/810744 (executing program) 2022/10/21 14:56:16 fetching corpus: 25350, signal 697000/810746 (executing program) 2022/10/21 14:56:16 fetching corpus: 25400, signal 697475/810746 (executing program) 2022/10/21 14:56:16 fetching corpus: 25450, signal 697878/810747 (executing program) 2022/10/21 14:56:17 fetching corpus: 25500, signal 698323/810751 (executing program) 2022/10/21 14:56:17 fetching corpus: 25550, signal 698833/810751 (executing program) 2022/10/21 14:56:17 fetching corpus: 25600, signal 699049/810751 (executing program) 2022/10/21 14:56:17 fetching corpus: 25650, signal 699397/810752 (executing program) 2022/10/21 14:56:17 fetching corpus: 25700, signal 699749/810759 (executing program) 2022/10/21 14:56:18 fetching corpus: 25750, signal 700131/810759 (executing program) 2022/10/21 14:56:18 fetching corpus: 25800, signal 700537/810760 (executing program) 2022/10/21 14:56:18 fetching corpus: 25850, signal 700805/810762 (executing program) 2022/10/21 14:56:19 fetching corpus: 25900, signal 701138/810762 (executing program) 2022/10/21 14:56:19 fetching corpus: 25950, signal 701415/810768 (executing program) 2022/10/21 14:56:19 fetching corpus: 26000, signal 701696/810768 (executing program) 2022/10/21 14:56:20 fetching corpus: 26050, signal 702173/810778 (executing program) 2022/10/21 14:56:20 fetching corpus: 26100, signal 702394/810779 (executing program) 2022/10/21 14:56:20 fetching corpus: 26150, signal 702695/810779 (executing program) 2022/10/21 14:56:20 fetching corpus: 26200, signal 703020/810779 (executing program) 2022/10/21 14:56:21 fetching corpus: 26250, signal 703329/810779 (executing program) 2022/10/21 14:56:21 fetching corpus: 26299, signal 703585/810779 (executing program) 2022/10/21 14:56:21 fetching corpus: 26349, signal 703869/810782 (executing program) 2022/10/21 14:56:22 fetching corpus: 26399, signal 704290/810783 (executing program) 2022/10/21 14:56:22 fetching corpus: 26449, signal 704564/810784 (executing program) 2022/10/21 14:56:22 fetching corpus: 26499, signal 704972/810785 (executing program) 2022/10/21 14:56:23 fetching corpus: 26549, signal 705297/810793 (executing program) 2022/10/21 14:56:23 fetching corpus: 26599, signal 705614/810817 (executing program) 2022/10/21 14:56:23 fetching corpus: 26649, signal 705969/810817 (executing program) 2022/10/21 14:56:23 fetching corpus: 26699, signal 706301/810819 (executing program) 2022/10/21 14:56:24 fetching corpus: 26749, signal 706587/810823 (executing program) 2022/10/21 14:56:24 fetching corpus: 26799, signal 706847/810823 (executing program) 2022/10/21 14:56:24 fetching corpus: 26849, signal 707467/810823 (executing program) 2022/10/21 14:56:25 fetching corpus: 26899, signal 707798/810823 (executing program) 2022/10/21 14:56:25 fetching corpus: 26949, signal 708136/810823 (executing program) 2022/10/21 14:56:25 fetching corpus: 26999, signal 708546/810823 (executing program) 2022/10/21 14:56:25 fetching corpus: 27049, signal 708798/810823 (executing program) 2022/10/21 14:56:26 fetching corpus: 27099, signal 709107/810823 (executing program) 2022/10/21 14:56:26 fetching corpus: 27149, signal 709551/810823 (executing program) 2022/10/21 14:56:26 fetching corpus: 27199, signal 709941/810823 (executing program) 2022/10/21 14:56:27 fetching corpus: 27249, signal 710318/810824 (executing program) 2022/10/21 14:56:27 fetching corpus: 27299, signal 710716/810828 (executing program) 2022/10/21 14:56:27 fetching corpus: 27349, signal 711164/810828 (executing program) 2022/10/21 14:56:28 fetching corpus: 27399, signal 711595/810828 (executing program) 2022/10/21 14:56:28 fetching corpus: 27449, signal 712039/810828 (executing program) 2022/10/21 14:56:28 fetching corpus: 27499, signal 712536/810831 (executing program) 2022/10/21 14:56:28 fetching corpus: 27549, signal 712854/810842 (executing program) 2022/10/21 14:56:29 fetching corpus: 27599, signal 713222/810842 (executing program) 2022/10/21 14:56:29 fetching corpus: 27649, signal 713537/810845 (executing program) 2022/10/21 14:56:29 fetching corpus: 27699, signal 714062/810846 (executing program) 2022/10/21 14:56:30 fetching corpus: 27749, signal 714365/810846 (executing program) 2022/10/21 14:56:30 fetching corpus: 27799, signal 715263/810862 (executing program) 2022/10/21 14:56:30 fetching corpus: 27849, signal 715632/810863 (executing program) 2022/10/21 14:56:30 fetching corpus: 27899, signal 716034/810863 (executing program) 2022/10/21 14:56:31 fetching corpus: 27949, signal 716838/810864 (executing program) 2022/10/21 14:56:31 fetching corpus: 27999, signal 717394/810865 (executing program) 2022/10/21 14:56:31 fetching corpus: 28049, signal 717665/810867 (executing program) 2022/10/21 14:56:32 fetching corpus: 28099, signal 718086/810867 (executing program) 2022/10/21 14:56:32 fetching corpus: 28149, signal 718312/810867 (executing program) 2022/10/21 14:56:32 fetching corpus: 28199, signal 718572/810869 (executing program) 2022/10/21 14:56:33 fetching corpus: 28249, signal 718922/810869 (executing program) 2022/10/21 14:56:33 fetching corpus: 28299, signal 719464/810877 (executing program) 2022/10/21 14:56:33 fetching corpus: 28349, signal 719751/810877 (executing program) 2022/10/21 14:56:34 fetching corpus: 28399, signal 720130/810877 (executing program) 2022/10/21 14:56:34 fetching corpus: 28449, signal 720568/810877 (executing program) 2022/10/21 14:56:34 fetching corpus: 28499, signal 720842/810878 (executing program) 2022/10/21 14:56:35 fetching corpus: 28549, signal 721072/810878 (executing program) 2022/10/21 14:56:35 fetching corpus: 28599, signal 721335/810880 (executing program) 2022/10/21 14:56:35 fetching corpus: 28649, signal 721638/810880 (executing program) 2022/10/21 14:56:35 fetching corpus: 28699, signal 721877/810883 (executing program) 2022/10/21 14:56:36 fetching corpus: 28749, signal 722117/810883 (executing program) 2022/10/21 14:56:36 fetching corpus: 28799, signal 722409/810884 (executing program) 2022/10/21 14:56:36 fetching corpus: 28849, signal 722680/810884 (executing program) 2022/10/21 14:56:36 fetching corpus: 28899, signal 722988/810884 (executing program) 2022/10/21 14:56:37 fetching corpus: 28949, signal 723493/810902 (executing program) 2022/10/21 14:56:37 fetching corpus: 28999, signal 723794/810902 (executing program) 2022/10/21 14:56:37 fetching corpus: 29049, signal 724198/810903 (executing program) 2022/10/21 14:56:37 fetching corpus: 29099, signal 724497/810903 (executing program) 2022/10/21 14:56:38 fetching corpus: 29149, signal 724767/810904 (executing program) 2022/10/21 14:56:38 fetching corpus: 29199, signal 725093/810904 (executing program) 2022/10/21 14:56:38 fetching corpus: 29249, signal 725378/810904 (executing program) 2022/10/21 14:56:38 fetching corpus: 29299, signal 725737/810904 (executing program) 2022/10/21 14:56:38 fetching corpus: 29349, signal 726114/810904 (executing program) 2022/10/21 14:56:39 fetching corpus: 29399, signal 726461/810904 (executing program) 2022/10/21 14:56:39 fetching corpus: 29449, signal 726798/810904 (executing program) 2022/10/21 14:56:39 fetching corpus: 29499, signal 727124/810905 (executing program) 2022/10/21 14:56:39 fetching corpus: 29549, signal 727363/810905 (executing program) 2022/10/21 14:56:40 fetching corpus: 29599, signal 727594/810911 (executing program) 2022/10/21 14:56:40 fetching corpus: 29649, signal 727880/810912 (executing program) 2022/10/21 14:56:40 fetching corpus: 29699, signal 728135/810921 (executing program) 2022/10/21 14:56:40 fetching corpus: 29749, signal 728403/810921 (executing program) 2022/10/21 14:56:41 fetching corpus: 29799, signal 728712/810921 (executing program) 2022/10/21 14:56:41 fetching corpus: 29849, signal 729013/810921 (executing program) 2022/10/21 14:56:41 fetching corpus: 29899, signal 729281/810921 (executing program) 2022/10/21 14:56:41 fetching corpus: 29949, signal 729678/810922 (executing program) 2022/10/21 14:56:42 fetching corpus: 29999, signal 729990/810928 (executing program) 2022/10/21 14:56:42 fetching corpus: 30049, signal 730311/810928 (executing program) 2022/10/21 14:56:42 fetching corpus: 30099, signal 730624/810932 (executing program) 2022/10/21 14:56:42 fetching corpus: 30149, signal 730938/810935 (executing program) 2022/10/21 14:56:42 fetching corpus: 30199, signal 731266/810935 (executing program) 2022/10/21 14:56:43 fetching corpus: 30249, signal 731653/810935 (executing program) 2022/10/21 14:56:43 fetching corpus: 30299, signal 732255/810935 (executing program) 2022/10/21 14:56:43 fetching corpus: 30349, signal 732529/810935 (executing program) 2022/10/21 14:56:43 fetching corpus: 30399, signal 732875/810935 (executing program) 2022/10/21 14:56:44 fetching corpus: 30449, signal 733110/810935 (executing program) 2022/10/21 14:56:44 fetching corpus: 30499, signal 733402/810937 (executing program) 2022/10/21 14:56:44 fetching corpus: 30549, signal 733674/810938 (executing program) 2022/10/21 14:56:44 fetching corpus: 30599, signal 733979/810938 (executing program) 2022/10/21 14:56:45 fetching corpus: 30649, signal 734237/810938 (executing program) 2022/10/21 14:56:45 fetching corpus: 30699, signal 734576/810938 (executing program) 2022/10/21 14:56:45 fetching corpus: 30749, signal 734907/810939 (executing program) 2022/10/21 14:56:45 fetching corpus: 30799, signal 735268/810939 (executing program) 2022/10/21 14:56:46 fetching corpus: 30849, signal 735556/810940 (executing program) 2022/10/21 14:56:46 fetching corpus: 30899, signal 735772/810940 (executing program) 2022/10/21 14:56:46 fetching corpus: 30949, signal 736086/810940 (executing program) 2022/10/21 14:56:46 fetching corpus: 30999, signal 736353/810942 (executing program) 2022/10/21 14:56:47 fetching corpus: 31049, signal 737154/810947 (executing program) 2022/10/21 14:56:47 fetching corpus: 31099, signal 737391/810947 (executing program) 2022/10/21 14:56:47 fetching corpus: 31149, signal 737754/810947 (executing program) 2022/10/21 14:56:47 fetching corpus: 31199, signal 738022/810947 (executing program) 2022/10/21 14:56:49 fetching corpus: 31249, signal 741697/810947 (executing program) 2022/10/21 14:56:49 fetching corpus: 31299, signal 742031/810947 (executing program) 2022/10/21 14:56:49 fetching corpus: 31349, signal 742352/810953 (executing program) 2022/10/21 14:56:49 fetching corpus: 31399, signal 742640/810953 (executing program) 2022/10/21 14:56:50 fetching corpus: 31449, signal 742908/810954 (executing program) 2022/10/21 14:56:50 fetching corpus: 31499, signal 743206/810954 (executing program) 2022/10/21 14:56:50 fetching corpus: 31549, signal 743588/810954 (executing program) 2022/10/21 14:56:50 fetching corpus: 31599, signal 744434/810956 (executing program) 2022/10/21 14:56:51 fetching corpus: 31649, signal 744748/810967 (executing program) 2022/10/21 14:56:51 fetching corpus: 31699, signal 745064/810967 (executing program) 2022/10/21 14:56:51 fetching corpus: 31749, signal 745342/810972 (executing program) 2022/10/21 14:56:51 fetching corpus: 31799, signal 745597/810972 (executing program) 2022/10/21 14:56:52 fetching corpus: 31849, signal 745925/810972 (executing program) 2022/10/21 14:56:52 fetching corpus: 31899, signal 746223/810985 (executing program) 2022/10/21 14:56:52 fetching corpus: 31949, signal 746539/810990 (executing program) 2022/10/21 14:56:53 fetching corpus: 31999, signal 746923/810990 (executing program) 2022/10/21 14:56:53 fetching corpus: 32049, signal 747224/810990 (executing program) 2022/10/21 14:56:54 fetching corpus: 32099, signal 747585/810993 (executing program) 2022/10/21 14:56:54 fetching corpus: 32149, signal 747804/810993 (executing program) 2022/10/21 14:56:55 fetching corpus: 32199, signal 748673/810994 (executing program) 2022/10/21 14:56:55 fetching corpus: 32249, signal 748925/810995 (executing program) 2022/10/21 14:56:55 fetching corpus: 32299, signal 749243/810995 (executing program) 2022/10/21 14:56:56 fetching corpus: 32349, signal 749597/810995 (executing program) 2022/10/21 14:56:56 fetching corpus: 32399, signal 749807/810995 (executing program) 2022/10/21 14:56:56 fetching corpus: 32449, signal 750072/810996 (executing program) 2022/10/21 14:56:57 fetching corpus: 32499, signal 750379/810996 (executing program) 2022/10/21 14:56:57 fetching corpus: 32549, signal 750794/811000 (executing program) 2022/10/21 14:56:57 fetching corpus: 32599, signal 751032/811001 (executing program) 2022/10/21 14:56:58 fetching corpus: 32649, signal 751377/811001 (executing program) 2022/10/21 14:56:58 fetching corpus: 32699, signal 751589/811013 (executing program) 2022/10/21 14:56:58 fetching corpus: 32749, signal 751806/811013 (executing program) 2022/10/21 14:56:58 fetching corpus: 32799, signal 752058/811013 (executing program) 2022/10/21 14:56:59 fetching corpus: 32849, signal 752358/811013 (executing program) 2022/10/21 14:56:59 fetching corpus: 32899, signal 752600/811013 (executing program) 2022/10/21 14:56:59 fetching corpus: 32949, signal 752876/811013 (executing program) 2022/10/21 14:56:59 fetching corpus: 32999, signal 753120/811013 (executing program) 2022/10/21 14:57:00 fetching corpus: 33049, signal 753475/811016 (executing program) 2022/10/21 14:57:00 fetching corpus: 33099, signal 753687/811016 (executing program) 2022/10/21 14:57:00 fetching corpus: 33149, signal 753980/811016 (executing program) 2022/10/21 14:57:00 fetching corpus: 33199, signal 754341/811016 (executing program) 2022/10/21 14:57:01 fetching corpus: 33249, signal 754642/811016 (executing program) 2022/10/21 14:57:01 fetching corpus: 33299, signal 754977/811016 (executing program) 2022/10/21 14:57:01 fetching corpus: 33349, signal 755266/811016 (executing program) 2022/10/21 14:57:01 fetching corpus: 33399, signal 755524/811017 (executing program) 2022/10/21 14:57:02 fetching corpus: 33449, signal 755908/811017 (executing program) 2022/10/21 14:57:02 fetching corpus: 33499, signal 756325/811017 (executing program) 2022/10/21 14:57:02 fetching corpus: 33549, signal 756508/811020 (executing program) 2022/10/21 14:57:02 fetching corpus: 33599, signal 756799/811020 (executing program) 2022/10/21 14:57:02 fetching corpus: 33649, signal 756975/811020 (executing program) 2022/10/21 14:57:03 fetching corpus: 33699, signal 757174/811020 (executing program) 2022/10/21 14:57:03 fetching corpus: 33749, signal 757472/811020 (executing program) 2022/10/21 14:57:03 fetching corpus: 33799, signal 757798/811048 (executing program) 2022/10/21 14:57:03 fetching corpus: 33849, signal 758071/811048 (executing program) 2022/10/21 14:57:04 fetching corpus: 33899, signal 758339/811049 (executing program) 2022/10/21 14:57:04 fetching corpus: 33949, signal 758609/811049 (executing program) 2022/10/21 14:57:04 fetching corpus: 33999, signal 758850/811049 (executing program) 2022/10/21 14:57:05 fetching corpus: 34049, signal 759072/811049 (executing program) 2022/10/21 14:57:05 fetching corpus: 34099, signal 759530/811050 (executing program) 2022/10/21 14:57:05 fetching corpus: 34149, signal 759833/811052 (executing program) 2022/10/21 14:57:06 fetching corpus: 34199, signal 760085/811052 (executing program) 2022/10/21 14:57:06 fetching corpus: 34249, signal 760388/811053 (executing program) 2022/10/21 14:57:06 fetching corpus: 34299, signal 760610/811053 (executing program) 2022/10/21 14:57:06 fetching corpus: 34349, signal 760811/811053 (executing program) 2022/10/21 14:57:06 fetching corpus: 34399, signal 761116/811053 (executing program) 2022/10/21 14:57:07 fetching corpus: 34449, signal 761601/811053 (executing program) 2022/10/21 14:57:07 fetching corpus: 34499, signal 762327/811053 (executing program) 2022/10/21 14:57:07 fetching corpus: 34549, signal 762557/811053 (executing program) 2022/10/21 14:57:07 fetching corpus: 34599, signal 762786/811053 (executing program) 2022/10/21 14:57:07 fetching corpus: 34649, signal 763043/811054 (executing program) 2022/10/21 14:57:08 fetching corpus: 34699, signal 763313/811054 (executing program) 2022/10/21 14:57:08 fetching corpus: 34749, signal 764448/811054 (executing program) 2022/10/21 14:57:08 fetching corpus: 34799, signal 764680/811054 (executing program) 2022/10/21 14:57:08 fetching corpus: 34849, signal 764938/811054 (executing program) 2022/10/21 14:57:09 fetching corpus: 34899, signal 765169/811054 (executing program) 2022/10/21 14:57:09 fetching corpus: 34949, signal 765351/811054 (executing program) 2022/10/21 14:57:09 fetching corpus: 34999, signal 765541/811054 (executing program) 2022/10/21 14:57:10 fetching corpus: 35049, signal 765796/811054 (executing program) 2022/10/21 14:57:10 fetching corpus: 35099, signal 766037/811054 (executing program) 2022/10/21 14:57:10 fetching corpus: 35149, signal 766372/811054 (executing program) 2022/10/21 14:57:10 fetching corpus: 35199, signal 766630/811054 (executing program) 2022/10/21 14:57:11 fetching corpus: 35249, signal 766907/811056 (executing program) 2022/10/21 14:57:11 fetching corpus: 35299, signal 767125/811056 (executing program) 2022/10/21 14:57:11 fetching corpus: 35349, signal 767391/811056 (executing program) 2022/10/21 14:57:11 fetching corpus: 35399, signal 767601/811056 (executing program) 2022/10/21 14:57:12 fetching corpus: 35449, signal 767828/811060 (executing program) 2022/10/21 14:57:12 fetching corpus: 35499, signal 768073/811060 (executing program) 2022/10/21 14:57:12 fetching corpus: 35549, signal 768304/811063 (executing program) 2022/10/21 14:57:12 fetching corpus: 35599, signal 768578/811063 (executing program) 2022/10/21 14:57:13 fetching corpus: 35649, signal 768816/811065 (executing program) 2022/10/21 14:57:13 fetching corpus: 35699, signal 769091/811065 (executing program) 2022/10/21 14:57:13 fetching corpus: 35749, signal 769299/811065 (executing program) 2022/10/21 14:57:13 fetching corpus: 35799, signal 769484/811065 (executing program) 2022/10/21 14:57:13 fetching corpus: 35849, signal 769865/811065 (executing program) 2022/10/21 14:57:14 fetching corpus: 35899, signal 770113/811065 (executing program) 2022/10/21 14:57:14 fetching corpus: 35949, signal 770302/811065 (executing program) 2022/10/21 14:57:14 fetching corpus: 35999, signal 770496/811065 (executing program) 2022/10/21 14:57:14 fetching corpus: 36049, signal 770747/811065 (executing program) 2022/10/21 14:57:14 fetching corpus: 36099, signal 771104/811065 (executing program) 2022/10/21 14:57:15 fetching corpus: 36149, signal 771396/811068 (executing program) 2022/10/21 14:57:15 fetching corpus: 36199, signal 771604/811068 (executing program) 2022/10/21 14:57:15 fetching corpus: 36249, signal 771863/811069 (executing program) 2022/10/21 14:57:15 fetching corpus: 36299, signal 772111/811075 (executing program) 2022/10/21 14:57:16 fetching corpus: 36349, signal 772378/811079 (executing program) 2022/10/21 14:57:16 fetching corpus: 36399, signal 772663/811096 (executing program) 2022/10/21 14:57:16 fetching corpus: 36449, signal 772870/811096 (executing program) 2022/10/21 14:57:16 fetching corpus: 36499, signal 773052/811096 (executing program) 2022/10/21 14:57:16 fetching corpus: 36549, signal 773430/811096 (executing program) 2022/10/21 14:57:17 fetching corpus: 36599, signal 773844/811107 (executing program) 2022/10/21 14:57:17 fetching corpus: 36649, signal 774059/811107 (executing program) 2022/10/21 14:57:17 fetching corpus: 36699, signal 774329/811107 (executing program) 2022/10/21 14:57:17 fetching corpus: 36749, signal 774582/811107 (executing program) 2022/10/21 14:57:18 fetching corpus: 36799, signal 774829/811109 (executing program) 2022/10/21 14:57:18 fetching corpus: 36849, signal 774992/811109 (executing program) 2022/10/21 14:57:18 fetching corpus: 36899, signal 775210/811109 (executing program) 2022/10/21 14:57:18 fetching corpus: 36949, signal 775456/811109 (executing program) 2022/10/21 14:57:19 fetching corpus: 36999, signal 775670/811109 (executing program) 2022/10/21 14:57:19 fetching corpus: 37049, signal 775915/811109 (executing program) 2022/10/21 14:57:19 fetching corpus: 37099, signal 776192/811109 (executing program) 2022/10/21 14:57:19 fetching corpus: 37149, signal 776465/811110 (executing program) 2022/10/21 14:57:20 fetching corpus: 37199, signal 776729/811111 (executing program) 2022/10/21 14:57:20 fetching corpus: 37249, signal 777040/811121 (executing program) 2022/10/21 14:57:21 fetching corpus: 37299, signal 777250/811121 (executing program) 2022/10/21 14:57:21 fetching corpus: 37349, signal 777439/811121 (executing program) 2022/10/21 14:57:21 fetching corpus: 37399, signal 777687/811121 (executing program) 2022/10/21 14:57:21 fetching corpus: 37449, signal 777879/811123 (executing program) 2022/10/21 14:57:22 fetching corpus: 37499, signal 778060/811130 (executing program) 2022/10/21 14:57:22 fetching corpus: 37549, signal 778307/811130 (executing program) 2022/10/21 14:57:22 fetching corpus: 37599, signal 778509/811132 (executing program) 2022/10/21 14:57:22 fetching corpus: 37649, signal 778721/811132 (executing program) 2022/10/21 14:57:23 fetching corpus: 37699, signal 778955/811134 (executing program) 2022/10/21 14:57:23 fetching corpus: 37749, signal 779183/811136 (executing program) 2022/10/21 14:57:23 fetching corpus: 37799, signal 779393/811136 (executing program) 2022/10/21 14:57:23 fetching corpus: 37849, signal 779555/811137 (executing program) 2022/10/21 14:57:24 fetching corpus: 37899, signal 779828/811137 (executing program) 2022/10/21 14:57:24 fetching corpus: 37949, signal 780021/811137 (executing program) 2022/10/21 14:57:24 fetching corpus: 37999, signal 780330/811144 (executing program) 2022/10/21 14:57:24 fetching corpus: 38049, signal 780524/811144 (executing program) 2022/10/21 14:57:25 fetching corpus: 38099, signal 780873/811145 (executing program) 2022/10/21 14:57:25 fetching corpus: 38149, signal 781164/811145 (executing program) 2022/10/21 14:57:25 fetching corpus: 38199, signal 781460/811145 (executing program) 2022/10/21 14:57:25 fetching corpus: 38249, signal 781804/811145 (executing program) 2022/10/21 14:57:26 fetching corpus: 38299, signal 782072/811145 (executing program) 2022/10/21 14:57:26 fetching corpus: 38349, signal 782290/811146 (executing program) 2022/10/21 14:57:26 fetching corpus: 38399, signal 782568/811148 (executing program) 2022/10/21 14:57:27 fetching corpus: 38449, signal 782726/811148 (executing program) 2022/10/21 14:57:27 fetching corpus: 38499, signal 783066/811163 (executing program) 2022/10/21 14:57:27 fetching corpus: 38549, signal 783424/811163 (executing program) 2022/10/21 14:57:27 fetching corpus: 38599, signal 783685/811163 (executing program) 2022/10/21 14:57:27 fetching corpus: 38649, signal 783890/811163 (executing program) 2022/10/21 14:57:28 fetching corpus: 38699, signal 784085/811163 (executing program) 2022/10/21 14:57:28 fetching corpus: 38749, signal 784289/811163 (executing program) 2022/10/21 14:57:28 fetching corpus: 38799, signal 784497/811163 (executing program) 2022/10/21 14:57:28 fetching corpus: 38849, signal 784739/811168 (executing program) 2022/10/21 14:57:29 fetching corpus: 38899, signal 784943/811169 (executing program) 2022/10/21 14:57:29 fetching corpus: 38949, signal 785146/811172 (executing program) 2022/10/21 14:57:29 fetching corpus: 38999, signal 785360/811174 (executing program) 2022/10/21 14:57:29 fetching corpus: 39049, signal 785659/811174 (executing program) 2022/10/21 14:57:30 fetching corpus: 39099, signal 786627/811174 (executing program) 2022/10/21 14:57:30 fetching corpus: 39149, signal 786913/811176 (executing program) 2022/10/21 14:57:30 fetching corpus: 39199, signal 787101/811176 (executing program) 2022/10/21 14:57:30 fetching corpus: 39249, signal 787348/811176 (executing program) 2022/10/21 14:57:31 fetching corpus: 39299, signal 787617/811182 (executing program) 2022/10/21 14:57:31 fetching corpus: 39349, signal 787885/811182 (executing program) 2022/10/21 14:57:31 fetching corpus: 39399, signal 788105/811185 (executing program) 2022/10/21 14:57:32 fetching corpus: 39449, signal 788330/811185 (executing program) 2022/10/21 14:57:32 fetching corpus: 39499, signal 788531/811186 (executing program) 2022/10/21 14:57:32 fetching corpus: 39549, signal 788800/811186 (executing program) 2022/10/21 14:57:32 fetching corpus: 39599, signal 789083/811186 (executing program) 2022/10/21 14:57:32 fetching corpus: 39649, signal 789286/811186 (executing program) 2022/10/21 14:57:33 fetching corpus: 39699, signal 789494/811189 (executing program) 2022/10/21 14:57:33 fetching corpus: 39749, signal 790940/811189 (executing program) 2022/10/21 14:57:33 fetching corpus: 39799, signal 791196/811193 (executing program) 2022/10/21 14:57:34 fetching corpus: 39849, signal 791396/811197 (executing program) 2022/10/21 14:57:34 fetching corpus: 39899, signal 791582/811197 (executing program) 2022/10/21 14:57:34 fetching corpus: 39949, signal 791816/811197 (executing program) 2022/10/21 14:57:34 fetching corpus: 39999, signal 792143/811234 (executing program) 2022/10/21 14:57:34 fetching corpus: 40049, signal 792366/811234 (executing program) 2022/10/21 14:57:35 fetching corpus: 40099, signal 792552/811234 (executing program) 2022/10/21 14:57:35 fetching corpus: 40149, signal 792778/811235 (executing program) 2022/10/21 14:57:35 fetching corpus: 40199, signal 793045/811237 (executing program) 2022/10/21 14:57:35 fetching corpus: 40249, signal 793272/811237 (executing program) 2022/10/21 14:57:35 fetching corpus: 40299, signal 793480/811238 (executing program) 2022/10/21 14:57:36 fetching corpus: 40349, signal 793729/811238 (executing program) 2022/10/21 14:57:36 fetching corpus: 40399, signal 794007/811240 (executing program) 2022/10/21 14:57:36 fetching corpus: 40449, signal 794233/811240 (executing program) 2022/10/21 14:57:37 fetching corpus: 40499, signal 794455/811244 (executing program) 2022/10/21 14:57:37 fetching corpus: 40549, signal 794622/811244 (executing program) 2022/10/21 14:57:37 fetching corpus: 40599, signal 794864/811244 (executing program) 2022/10/21 14:57:37 fetching corpus: 40649, signal 795108/811245 (executing program) 2022/10/21 14:57:38 fetching corpus: 40699, signal 795305/811246 (executing program) 2022/10/21 14:57:38 fetching corpus: 40749, signal 795856/811246 (executing program) 2022/10/21 14:57:38 fetching corpus: 40799, signal 796044/811246 (executing program) 2022/10/21 14:57:38 fetching corpus: 40840, signal 796263/811246 (executing program) 2022/10/21 14:57:38 fetching corpus: 40840, signal 796263/811246 (executing program) 2022/10/21 14:57:40 starting 6 fuzzer processes 14:57:40 executing program 0: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x10, 0x3, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) r3 = socket(0x10, 0x803, 0x0) r4 = openat(0xffffffffffffff9c, &(0x7f0000002040)='./bus\x00', 0x0, 0x0) syz_fuse_handle_req(r4, &(0x7f0000002080)="3326441e88da8211dc57507528e5d6888ac2aab68f96b7ec25d3f06bae1ee2579ad6fbe43293349db00709dfb82afd62f401c25a3ac0bcadce53a9e96d57d667836575f0c24febef1b5a788b46015ecf6d21efb9a0df4f19045f8039d75348bc1da2a2f4b94b2a325ddf49c921bac9986eed0b915e2c8ec25d98df9cf6e3221435f331d460546208b668f4a44a9654453d4d55dc76f497420ea24676a2c283e15f44685cf81f0898a7481c3386f5ba13838e7512e56280c3f2f4397916d8005b0a7d80cd2fe4c285e44adb56216d7bdd7fb164bc15ae47f449796322f5071b53e4469d9a21f74d7bdec0dcfabe9ad0147e43d3ab87523f275b76c047aeadbbe2a48f7a42d8c96fb5594d0e623aa5330ff4511b6ec162d062e332339d00c421027623454ee354eaf9369a81fece373aa8ed1935e44b77c77a69e64b13fb953569f8435059a748df1e4bd5c49967327c207bc14b35ff5211a18a751b8e45aba91493c2d1e0824cee90ba2cf32f13a073c3205312b83f36f7a7e663c348ac22142dcb6a14f016cfe7350c6756e31cbf90d792fad0efa17d571b99e78d08276c231e7a4238e49ed3db5bf9d6c27ddfc7cf3e136c36312f0e8a9b0100c812c52e1ba50f0200c95dd0b6abae7bed1495430973a67f37ff8ee2ecaed936c5b5723f438a1cd20aaed4091707eff692f8d386b5b3fb0c85d742b0892dd375159bcd17d01c59ce247916e382e3dccef4a37bc04e6208b6b6711a2de900ad0a3474d4c560e78cf5e9346468a04044e971b580385cb24842646cde6739ad6f460ccb682c6d35c54b80b3ca28e391f57bb5f52100e5fc5e3851c3975ffd7bc67746c958ba1eb047bfdfd30f8163edf9daeb43731c3434d73d79617739381364ab98a14ef5f80d9a1b38454b74d3a7aef0437b72a984092e8ec54fb0d37db589b651c33af327143c07ea923f8d6d73751272d40a853c913f6afbd8c4edecdfba790f9ad02884ece1b661ef7c5940e77a4acae9cc8fc789931b935ff6eb9313448d17e3f7b8583e67d7549853f0eaa217ceda104bc68481d771ae80a26c4b26a9366d34ba576714f864697ef64a493175efa99c90882a53abcfe00adb96a775d816470a7c7b1b58e08883e555dcb3ce4b886156e14fa2df99f1b2ffe2ab5de9baa80c67bd9c8c41f9e6dd85642ce3186e4c40cb663840ec7899f607060a503f07b6c363a2dce28a8cd97b298c061457c9d5da806f8bca1301632da136e0e4471f2c78eb08951fab581c8b5db561336eaee5aa67d8899de627d0ff83bc13ef3d8efa033f11a7137c4d7fe76c9790f2c98b4d50b9f6b614a2d5883de9e4502ff7e990a0b880b49ad053114a7d25b27ea70caea9223a43eca440f46ea1257400264b3d92760be1bd92f4a70ba92fde21a07b9a7034a3888fea3937c7f615ab0b8389a4d6027d6fe4ffc30f564d537ec744fc6cb34dfc8a967b812e95988c81e54a323e026fcaab2e3a55ab993ddb924255f0c62add4d85efc2d8188812c8418a8c05113dd39525d9beb2a39f8608fab34de04ca0dfed724f874e7ebd1f36ee59b78d84e70ee236559aba9c120deb89ed2c0dfb593e24f13feb40424b95577607c162fe49ae45cf735709eb979209d721293191e2f824654768edbc896ac5ef0fa3b5bbb1129346be6331a783caaca0a4e4b943f0243ff6a472b59e437ecc950bb941d217a87415665b61b55c4d6b483d28d2d4d413d5b4e8720dcd72c2b75dc6e252a44ff717325186bf7939ba15f91caf178fb905208febec20b9f7bc7dac93aa56cd5eaa28cb9dccf223c90684821e8096fc78e188ba002469bfe81a3a405e82be0b06837580767732e31e12f1cd686094fc27cffe9235c155e90b8f296ea686e208a92296a5c4569a2db0db02b2e3a25ae022889a1aa7b030602342f353205c834e815b37558748ebb7fcb46a7f1fcfa7362078970d8a00699ba6eda392fec6435506d6ba404a1f74c428a1720a45534ac3542bfde8af0c48bbea7a3d66c0dcd13df99f94b0a6404ecb42ed96a8077deff586174bd43236fc28af8ad4fce0ac9a7ca792002281304c30c7cf85e0ecd48e1b5287343e2868bf8f56932e50905d554ac0dca9f55f408f992a2823ebcc74c7fc0b2880b5197856bffcf6ce0436aaaa1acecaac340c386b08268e4c6f751ff8a68755613c6d7254300dae56b37a081136b4f895228a5435b43d0dcdb8e76a30672e41c76124b76ba1844386f2f4b49d277333b0bc242a6961923a6d4a0e2221523d4dab2590fd8d6123c5870e366d4631e29ff77f1a6bc087ae77c1bb981dc9369b7de5cdd10977814f89354fca520da9a5eb23c547e0ac03d98180e5e8ee8c6e33545ba9022237fcd6f0e3fd974a648897ea50d7a762b0e842f274f0b3a129721de712e438f4bf0bea78dbf05f9401d704694ea06eecd30f359a13c229eda7f4bbcb843f0ec17397c61f468ca24ed2d8c99857a895325356215f6a5079c1ef3743e442f15d4dfd1804ef17328f8130790e9e6e3e184a20da8aa99773e9f0ed9a3e0dc150a6c1d6ae87f2245828b7f10f4efb6ac798cf28b17e79f794dc4cdce54a8aad7e959821a876f56b939a3a0e805f467419e8e430a55c9a3da2a10b43572c93c39ba845e3601e0fe701f464ef80fd651848f283215668a748a68ecc69bf136b5af8a3832aa8a1e8b71f3d5728cfba10fd5c4504ec959340569db05e4e3478a47d59879dc9b89202f0266ccaf73690c9f920ff9d4fe8d8d9a3c79ff22b87103105f887d7c3d32b3546954d37efaace543c9a2d24abbcc055f8fbbf06ca214f9b77d9a1d88779fcd92d11886c43aeca750bce5f82859c3939298ce0ed122703c78007b5deed3ed15fc62b2c4affe8d7d895e831ab193f059b981eaf7f77b6915973a0751573cf645fa67720846c942d3f304281f2f29e7e0cd3102cb7d2449783399330575f7e44acc988f131979cc2f37f0dbf24324bd099e13707623619a8dffb8d913ea32d9b2b9f744d4c251122d9c8cfd4144d0aef6a7f5d21ec0b76d55ea186bb47b32e05bf5bc2aea0031db8a98ee54cd83868b66fa19f896ebe571082722213b1a571d91a334a524d86c2682960a283f1ff5cf2004cfe488e1d34833bef8a1d8cfe73ad5fe7da34e6240e2708b11f63475f714becf0dfb2166e8b28b3220ea3a4a5fb45f5a4c24dccb0700d7361bfba4ddb60fb7cbf150014da7602261e0ef1977e5c8c1c37c0d74575a912549e286965c7303146507acc55bd1ccfe9bdcdddf1b703b7e18bf8b3b1567c20dffae28d4824a96a7722cf64c8782860b17f3e04f58ab9bdc599765eff8f9cddee2bcfc584ae80deaefc4249e169da8104e5dd5bbc3c373be7cc70b937dc45b8161e14d7b2192dd6339e88643ae6641fe32a6e91abc3d4fd13c2a71412fc5a7240263955e3f831a8fc53370f8b854da86527237e6d80ae5d21023cd998ee1e9d849b5b064457020b16bdd55595a5b2562bc509e767511d6cda024163380e1a9a9c84e10d3fe3671af60576a79da53779810154a38df00159030c2e36dbe6289c261067128f39393c9c9355219c0128148acce85c83066e63eba32ce0f74b6b3ffc461eab417f563530e3d7b202cc86db184c26002c39f36577db9eb1bc008b700c83eaf189ad7758b0dd4bff7ed3a51797b99bbb15c221829789aa3ca876439d6c80dec08991c3f3e6517963702693635df5e0aeb3c27fe0a5d9298d48ca40b316ed178974fc42d2d3067cef31ee6d9f2bb794294b817d8d7daabe0cd0cf13a35026ab61844942e1d024ef5fe65794ddabd45691b5623cde71844569a62847412873e747b0b951483e590a9f10b197fe99112d99aa71f32daa8a0a217ba6c78b1efa991e35724188ec37232e6eaee4793b223f29c16ee92676b9b416aabb5ee007674d2ddbf6a670fba3959df532f6ab0e482419b80113536fe6e5a3a75e6952752d50d95ce0f96fafeaebbafd2ccea72f8664aaaab42db61c0a17bdd710f38f8c37af6d5f9d84df56578eb41f47293f931a278e9684f26dfd722b17afeee018795673e99675be9d41ad89bf171e7869bc7a71753fe61ee02aa728bed91a39e701855e4575e3f3c6301fa67f4b659a2a70e3ca084178b4245eccb92d45ad0f4d990e45dd4ef4ebf5af4c0e8785f830c4228e2aa1ec3d07087b4683eeee823482087b99da3f3540eadbb4ce26d381a94b2605cea384e8f53815ae13427b556aae1daee9dfb3d84826cb33ee4507dfc6aab58d8c45e20a6f554a934b362bc820259f75782322f316e57aadc83f9bf863c4082ae5bbad8a53c772377c2d8c13d07b47694e6870ba0c2910443c7a4859b495177f14b72b794dd371f14d23c917c66b2b1094a38e11cf23bc93b1b5630e897590e0db3d5e60f687ec858e699a48e44f4ffb2db6c8cfc08e005293c719d8026be562b3f7ef05d9a9406d8d810a825e74afda26b3f5951b4fc3015a2b8a5ff5513427868a7e68486ba1ced16280d6d6a6ad5bd454b5b8d16401a9cb3700ebc5a60635c95a9f6f77837e5a89b7fdc8969c45014fb432b031ee59f4aaf41581e69278e9294d9dbf16e6c4054217f11335c0383d8f43a0c7bac93f919e4431e8f49666b1d835613165c5d08a40bf141a8216d161ef108f24eb3f793af3328dbfa6ccf9f6072d855ed1886abf176f67e2398b37ef729675fed292217dd68cdf23116a8d7403f8d963e7b7b41b66b7210fe5d28fb19d4a296d01390a9420bcd2ad91028d6b3a5511773845dc70a95c70c1ef91dcdd0eb73404d0f12a8122839c91f3f3977314e5b8db233075e5f53b26832a7898353b0fd7e97488932c288baed9298dfb1485d168224c3859dbbf313b7eee8289e395e52703489fc32f83f1aaa91569c1d4e96bd8a825ced62cc17a26e0033efd7a1f60d05d0db931081aa0d575315217b7778e9a51905b9682b3830e4e69e718d72e9e30908546056a848d7c8b3da5a30345d0bb54eb1895f8bee4f240358ea4ab8f262a4c261412df11c6b845dfa5a5fb02db4e962d6786fc28e1b5c242af4793d14663c649ac3c38e6ebf1102e60910693f77e6a37e74134bf51e249d12e187654b7d02289b3eba3606d96e7ba9b601bf67f5499c24ccd56cb4b85f3d33178068e5c48275db2f3a5af4454d386f7bbc199bb4187cc4329a7afaf966c0d3a5ce6dc849fc4053475b1603e95db1841f7aded678925bce67ae150f1a37444559e8fb714e2384508cb0b912340c5f37f636421f3451e8b342451991e398ef86564ee8bb23b993726216af4da53284ce8a0b1710f65a9074e27bf8a252234eae12c3d6a6c24b6a0545df0ad3ee3049f9d0f9e61ad0779fc2715d7cd05635231eb017857fb898cb8edc16030bfcfb7e73cc36d062e95a1d0a56e9b960f8e4ee124a7f4af358b7f85875b31f03e639b54ba9870e06e067aac0db27f50d7fe26d1679d204a33be39337679df79f13ad6e038e0f1abb5e836e7593d2c62758819fe8bfc4f2b85a440d83b86c088580a2cc0cc287f3414bb1ab0c7710b1517278e5fbde72e570eba1419edc0ff348fd2a8d79aaf60dfb6e7877cb94fdb69814d7aaea8f394f716d48a5ec67a9a9e229f3476d2c0d8e4c98b1b7e2279756801e52f56d05d711b55f81610b5b647d435b02d8190d878d4438d5ecaad0b17a61b5e7da1e41ddcc149f8da329b7a504a38fe4cc1e5f6b20ed38f70eefa301d22e9bcd2862981a58389b05018bf5798c877ae79bbf3c0ebe330a4ae5b8f1a82db569fd2f6e5b6e3ced78ca25b02ad883b6b84c0a0f8db1e8249871bda1b090eb4fe8ccc836d91c60f10ff8cc0b278360ccc623ccc746be3f00587aa51c86f37c36b316f6484e36f17d6020e4afa384ff21aba68bea386ff2a791cd1a75f37afa23e1b4ddb085ff9c597db04c7ec0058f6062856eef1c47a26d678f2fc5b22805016d9a4d6f0100418b0d8703a675caf48ff6908150ec4e9144bb096d72b1c45e624167366efd94f352df1e9cd71c828b9bcd56b271291f62d5cddc559395d66f66ba2bd68de77b5fd740892923f5f6b563bf677bf98910a444a6eb4c0ad7dca41edac43a15f75adc6f10bd578ba06c14062aeb051e98da298c9a83b843d10f0b70206a7de20e24c9d1ec9dcd57dfa0e5d2e7fecbb979628f2348194f082c137ad5e9f6fa2cd36468ba7002870380cb74d98032c69930bf374178afcb3d689453c701f9428cdedc3df7992409713299ff7922319ac28f2ea9ead77d2b3b995ce5e80699b8d66973635b6f8a158039028ed05d9700773793f68cc118712796c5030f52df9be8c110eaee50fac69753a9b718aedb9dcb6e1bcb900e6c0ca7893be24d1186793125df06eb98b88d25deca59ef150d63f8e6e0d63f047a1b03f7ddd40e14a35290e40e904e871f7b21a3892f5c9137957183f566be4fb844ce21ac8eda3b5a51fb22d892118d4cd7b3b481bede122231662385a76510c89f7f12f6ec225920480ae5ba9f891dfb8f13b84e52567308838b798b68f2b7d9489e095a02abcab20d0d9745772eb0eb3306bd20c6facaa6154988044191a17ef22a0552ea1096a8955ea388f7c2467a3bc0a6f52bceaeadb88e8b9d1f38428eecfb19604f697651afe630cc0c12b50d3d56141d13ae3410a9469851a80bdd2d3bc621245277ad25ddd993988506858d23a8ab0791d9232f96e296f021435906075d8adfe06a3fa523dc026f892bb0e31ba03c885d9df3ad70b1a12886a8a8b33e80a0d8ee3ba3e2bde9e8734a53ef40e8eb19874e368383826ed8967bf7dda6d52d59b89a8ce6dea69681c5706435536eba89263c756accbb3e39b41d4d1afacf898812e4003548812efb16d87683bdafbc01ae92a9890b91612a48806d55639f14fa17b50c8249867af6c952b98bd10d3e84cebdc21336ab962e3b8a1e0a0cf61ad3614fa1cef4cc0c946463525f090a9296195904fbabb73e38dd1582460ebe0cdfa2654c392c8fb6a3456efbd60fd6ccac0f432758320b1948bfff442bf41569698ef2fda52e3d7caaf10c280e5420bc81a5fdd2aa63bf0e98cae9fda640ba9c4cfece93d275ac75bec4f7ca77627749e78a4902abca77b30abc4a60a8ec2ea50d12606427ac73ea350483e632ce4367932fa93bd2a459e57def000b7c60787fa01c86a1061f6c438fc374cce2943e28d700d1496874aa14b25d657ed0420ae7f67b735e0be3fde11d40afb605a8109e43d201f90da941681fc155dcf09eb19799d5bcb75cdb9c857fba97077cd09542ae1964464417cb1a706d77a261c0af2eeb0398f92c6531de6eb05d176ad1b0ba9c923f61c4005aff923bc9842aee882d99724bb22543a69ce8c856238dd522665b2208d844cca809421c4816d51e9de016beab0de9654f926ecfdea03f6efac28a2089bda3ba77c570ec92bd96f08e260f7bb6947b4fc26287808d3077e211518168cd7d418b043802ce0d3a49546d90aa26f3bf644ba0a87f16ceff6dd63232c210c0a484c0f30c3bed0051036e84648be5974651a08ded8e02f58588a019237731f5b9c0ad020343a116ddc2f9f1c908b77b10fe8c50bc743b892661ebf23760541966fb8c95af09a3e958693438c177221da5dbbb9339eb5a15452dd979cb1ed80c303aef4a752bfbb274ae41fdef0b48a65b24fabe4cdff0d1bd05d08b28451788f3b5d7a37b828c0d78022a6b48dd709274ba553f56166ab24d31caaa89dc3c2bc4bdc6b4c0e57925bb972cfa1c7e003e8b21db47aed2a4c5c3f7d24d22aec470ce4494fb7ddde8ede8bd3589ce23d9c258b27fc70c29e44ee1b6a193143f6870b230327dfb3fad12d33f25fee103f6a50699d141a78d71c9d34a201109afed5e4be17f64f9686e6afae3733fabc1b51e75c2b24d9e0d48051ea5342b161a79c831ba10bf16b868009bd6433c562245d5c82f7d22b0d84b6b8e304a33d95341ba16db763f6b68beac32129090ff59d0b831136f66caa38d8a1c16acabcbe1106de05a35a11118eb5591b5a65929e7a589125fa732ca4890c8a518ec7ac4ffdc920edfcf1f609a457fa1ff00b871a3b86594e7b3c8c0bc3232032022c8bf2adf79901e0bcd4f176c47a2ebf362345f88e388a05a5c348b8c70929c2c7fa825e25682a2ece5b80c4a4727849701282647cd9d2376635a3e3b0058ca6de01660634b96690d6f6947f36869d04edf3c967b1aa5f5e6cf66b395c0a0a8519c4a030cdee9c341da83b3c5989ef1d81037c85aeb47b12111d3c9471eaa69ee45c9cc5b62b2203a87ce8aaff5ac0f235a3a81c10e43717c7346a74598788de7a4cdbeefb3175333b5357ed585b4e2adeaee0046f12e628c1ebe7237be0a0854d353001a754d02067b92a7b3de9d7aab1127b18866cf90d8232f140e70ee31cec9d05bdd5f49cf61aa867b5f7e9b9f0ab5738c6afd909b308b83ac136bd19df13828d5bd2f51117d52c264959aab4758e43fe13885555ba135a8993cb1658c55be811c6bc92e67eadf78203df12ed49a0b7ae0dc3d7b7d5129c5a8de075d081fcf564faf3b7374d6f1f5e63bb3027335b6bd96f2d805eb985375c3fa40aa347ac8ab68c24fd87cbab7b4dfd95167dda27e1a5a4197f0c51af0ad38799980714efabf0c39193fdcacaeffcca73fcbdfe3bc69a39ea41521f746a1a2c981bc4d9247999302734e75ff67b2e3ca18d7ae7cc8a8b463f64cf894db32b738b8cfe503a79adb6e92e29dd785872ced22a18d47f095081e80480f5f9478dabcc283c1a5c12ba179ca10d04feedb9724aa57217e24ec1631a58ec6f21282c1e6edbed5d2d408b54681c906da9be44248457e722ee082099dee32c08848065feea1a157e314d5505f18df8afcb24e93fece670be57fa626958e28c59aa51808f8d30a1b4f6efb5782db1d4a9cc1c40b1880065db091631eb54413273d97ae28184ed3354be4d19d0092e601a8e77ae20bad2c9da6bf18344c4ae032c8ff3331407bed844d4aa40ca0d43aedaac2fcf78fa11e27727720f6c9d64ca64006dd2accfffa39c00a1cccff250d2281509e951b3361fb2cdede14bdb8792535562b48b46ac1394ac6dbb5834dc99ec3289f084fd7aaa7f53b6fe5c6a64413afab5ede4b879c8fc311cce07ad0b082871e2f18d058d1a72bd042fcbfbd4b9d538686212fad283ec63bd3dbc948f8b28c37816847abc05cc0c0d45fb664f45525891e1c00525dc34581f0ac8edaf0393c2affca3e8c2c5c691ad65dc71ea9b7be2bd65d14dd0035d5c5db8375ef4d8a7021106787847204c0c2eb664513764dc6106de776fa2df795e967103e1655908a0ffc43b2b3962c198bd60a2255fe97375170b7a37129824c27cb740d7ab2cb02312f71227f50779fb83b703a2c518c17707bdb0edca93de6d8b6d0323d5b139835ed08dddf732fe08d911f94f510a586072498e5b577ecb3d8379054962533dcfa3604aa1c3873a765112d4d8402d48f70511891c048f9a2b437a90ef672f0b2af67f60e1757703c3cc56b949ff2b7d928c0f8aa9ca673fec573457ffe233b05066a403a075ba5077ef037c216418d8dceeeca211780d4045b9c32e29902cbeabca5fb4ea1dfa5c3ea8a1f3cc6da4fddb4f5ac9cb25dd21d94bc4017e7fef9a699b2faf76bfe7e5ab1dc0d28f4b64facf2e2f745366a54e8d97821e80e2a40d9aa62b63ce57c5ce827e2f50e60d6edd8905feaf5641b8940feec252301e0fb5975e56f761a8d1ef1f25e50f236305d601a4a18543c8a9fd69b0fbe5b4766ee4ddb8b946b053a69cf59e77c14556488ab466e0557b104cf14c22a91b28af6b98d00f9303602431e9bdc0c83eb34c8ee23102b7670879075be4b61c1f17861bd978c77d0c9bff7cb60c3bb018f4b9cb3078fca24f5f841277a58f9b480a1b2840867cddc2c1c97c342ccda310df9236891305f1ebb0b30966be32483858bb504b62cc72e91cbbf861f643152e936bcb267398ae172db2192c780cb04effd59516dfcddd6056e6989b260816bfd637552703cbae2a82faac4aa3e8da55621a732872e6b3a9315832b15cd292e86dc634fc9f7c663089ab8b1ded8d471c00eaa1308d85a9e7721c07494174ca333dcb9af172fd2fa4c864052d4dd75c4304fc0b07e8081c19cc6414b52c1f144d1c1952cfebbb2f28e890cc053267a258279e5fe98978a10c8eddd2e5aeacc4cf7a1123e0b0db89ca16f849f46675019fe9dffcb2f52915de5c10f203de9cbabee4304792e036776bd72edde9417a3ed3eda5f34f8e498a7f4792831a51b689eb9a147489b3d00a391a3f95b9b7a6d2ec7232d0052c734f92af38ed7fb8d10720798503485073558feeab5523a571d30495c376f51cf3f8908da5b6dcf9cec6f94e2a5228a2ee57872abe2584f35b5f16a20ae8a58da8cf4e9f3c4b2439a765fcb97bf34f165f88c4223e98776b2001bc789a84dfc7ff30504d8407c9c68e801389a4e77d80e74f740c4f3de095067649b32c65038ca2aca664af4ab14b0daaec8f69f6db35187d707f72b2a24dae3e9530c127ed76161ffd7fad5e4e8461b78966957ce8ef8827f84d4672e1d370fef4ee89c6bb3f07d2ea73e8e868194b852502eeb6fe5696ae58a7060e5bb3da816f345315254a997c27be7ecad388b83b842a3630a7b56f9e05909484cf3cfbd2b29a05ad449846d46b5e4b28527a7fe4863801150107e4db580cb793d235d4f11fa7945f7c0fce7ff18e6b62625e5589c8be61f3eff1bf425814a01d5b6c9417d015776bd9a580b11850a7f25252966b3ea8d893fbab7f938001a8a20a5681dfbeb70ac6551c8949a5801a9f8fbb804e942743c0f77876175e0367b07fd676dd7fe81ebac64a5d48a55ba5ea63e9acc64c81085368ce3bcc2fa010faee9926630c07029169c1e9c2aec9b2240e74e096ac5c65bdc669dd47a8a80bca4bdbcb7eb77308c5096e986f9a145490b4569ea43bc0887b39b86eab9a4f78153540758f8a210df59f0673af7bbcbbbc3a7bc8289e88872301e17ac264b78b83fd3a2b116323891fb920577b2ce36279327c01ca4cc4bee65d1f2111eb63a73f8ec87c1fce6535b30a2b1cc33769ffba726eef93d650ef2740b2863a571f6c55a3dc9d28766db1b182387c3f8aeb98bb6e12f67fb1e589001ea9afbacb58e560aaf92483dd7179dec06efb1243b8ef285adb5ea25943bb5216c872183751d63e44018f85e4579e38ddea7006a403b944a94e9d6f2caa3b475db5a2e572648029ddbe49c2685669aee1109d896b6beb343495ff221c87fa52a8c849aee5ed622a8f2f769c0f46e04585c59a2d942cb0d490da5cdf075c5a8545f1bd0d7be9523525bacce75767258b08db64140f4a99296143ea621ff318e82bb883e42fed6e5e0ae8b95e585faf7499180077421215da085ff1b478f89f720e42484fc87356444da37bf5b9d68b792565f20b84d34b1059da4da122bd1c330aa1d9756a3e775b6e4df05fc729651472da2eaef8d5ea3fdd5c182253ac9e5966f1d681cf1f6f68f869e4a81ab792cd98647d1b18178038db2adeaabbde877ae6a549541efa4bc15e", 0x2000, &(0x7f0000000c80)={&(0x7f0000000040)={0x50, 0x0, 0x0, {0x7, 0x24, 0x6, 0x4000}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f00000003c0)=ANY=[], &(0x7f0000000400)={0x20, 0x0, 0x8e0}, &(0x7f0000000440)={0x78, 0x0, 0x9, {0x7, 0x3, 0x0, {0x6, 0x0, 0x1, 0x5, 0x7fffffffffffffff, 0xc383, 0x101, 0x0, 0x1, 0xc000, 0x0, 0xffffffffffffffff, 0xee01, 0x793, 0x10000}}}, &(0x7f00000004c0)={0x90, 0x0, 0x0, {0x6, 0x3, 0x5, 0x5, 0x3ff, 0x0, {0x0, 0x1ff, 0x1, 0x0, 0x401, 0x7fff, 0x9, 0x9, 0x5, 0x4000, 0x3, 0x0, 0xee00, 0x0, 0x2}}}, &(0x7f0000000640)={0x148, 0x0, 0x7, [{0x4, 0x2, 0x6, 0x7fffffff, '^\xd9\'%$-'}, {0x6, 0x1, 0xba, 0x8, '&E\x8a\xa1\x14\xfd\x917\xf6\xc6z\xf1\x12\xb8O\x96\v$^hJM`\xd1\x88s\xf3\xb5\b\x97\xc1\xcc\n\xb7\xa4\x95`\xad\x86\xe1\x8a\xb8\xe1lY_\x18Z\xb8 ,\xfdL\xd9>c\x91>\x9c+\x1b\x061\xce:\xcc\xbddw%\xc3*\x10\xfd)=\x11c\xf5\xf1#\xc6\x9c\x17\x81iw\x06\x0f$\xaa-\xd1\x81\xa6\x16\x8bE\x00\x00\x00\x00[\xdc@ \xd9\xda!7t6\xd5\x81\xf4%\xca1\xc1\xa1\xf4\"\xcf\xb9\\\x9a\xd24\xc6\xc9\xd5n\x025o]\xc2\v\x8e\xc0\xe0\xbd\xea\xb1;9\xe8\xec\xbab\xf1G\xf8\x1d\xd8\xc0Y\x94\xd8\x8aa\x18\x01\x89\x10\x84\x1d;\xb24F&\xb8\nh\xb9=\fB\xb2\xc4\x91\r\x98\xdc\x1a'}, {0x3, 0x1f, 0x1, 0x8, '\x00'}, {0x6, 0x1, 0x1, 0x5, '\x00'}]}, &(0x7f0000001600)=ANY=[@ANYBLOB="f80100000000000000800000000000000100000000000000000000000000000025f15570000000006100000000000000ff7f0000070000000100000000000000030000000000000000000000000000000400000000000000569d000000000000050000000000000001000000010000000600000000a0000003000000", @ANYRES32=0x0, @ANYRES32=0x0, @ANYBLOB="0600000000000000000000000300000000000000080000000000000003000000010000005b2f7b0000000000010000000000000003000000000000000500000000000000ec000000000000005d070000010000000400000000000000000000800000000006000000000000000000000000000000660900000000000001000100000000000200000054000000080000000080000062090000", @ANYRES32, @ANYBLOB="0300000002000000000000000500000000000000070000000000000001000000070000000000000000000000050000000000000002000000000000007f000000000000001f000000000000000d0c0000590e000003000000000000002000000000000000010000000000000005000000000000008100000000000000f3", @ANYRES32, @ANYRES32, @ANYBLOB="00000000010000800000001f000000000000000005000000000000000a000000ff0100007f2d5c267b7d215b5b2f000000000000514509bdd2a73aadab8ac360837852f5ff930cf2a61082e8b4fd54cc947b9da7d75f7d49852e239ae31663437c97d704795fe2916c03d4d4fbf85b241f773f5a13d3db5b84fd573807d681961ec3af24e2f7c7a98b44d996f3868dbb82c5f8bedf40ffffa911acc7dcbb54e3983c21b32751635f70b8a2541cacfc669dbfe0daee0ed58ad710f48ae26f3fd6cbbe099c0452067aa75e00e43278652acc95bb780d2733fb4e203127f251afd88d4b8fda8d7c971979f4"], &(0x7f0000000b80)={0xa0, 0x0, 0x8, {{0x2, 0x0, 0x6, 0x0, 0x0, 0x70a, {0x1, 0x10001, 0x0, 0x8, 0x0, 0x2, 0x5, 0x0, 0xcf, 0xc000, 0xfffffffc, 0xffffffffffffffff, 0x0, 0x80, 0x73}}, {0x0, 0x18}}}, &(0x7f0000000c40)={0x20, 0x0, 0xfffffffffffffffe, {0x900000, 0x0, 0xd56, 0x3}}}) sendmsg$nl_route(r4, &(0x7f0000000280)={&(0x7f00000001c0)={0x10, 0x0, 0x0, 0x10000}, 0xc, &(0x7f0000000240)={&(0x7f0000000200)=@delnexthop={0x38, 0x69, 0x30, 0x70bd28, 0x25dfdbfe, {}, [{0x8}, {0x8, 0x1, 0x2}, {0x8, 0x1, 0x2}, {0x8}]}, 0x38}}, 0x4000800) syz_genetlink_get_family_id$mptcp(&(0x7f00000000c0), r3) getsockname$packet(r3, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000080)=0x14) sendmsg$nl_route(r2, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000040)=ANY=[@ANYBLOB="3c0000001000010400eeffff11ffffffff000000", @ANYRES32=r5, @ANYBLOB="01000000010000001c0012000c000100627269646765"], 0x3c}}, 0x0) sendmsg$nl_route_sched(r1, &(0x7f0000005840)={0x0, 0x0, &(0x7f00000005c0)={&(0x7f0000001240)=@newqdisc={0x78, 0x24, 0x5820a61ca228651, 0x0, 0x0, {0x0, 0x0, 0x0, r5, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_sfq={{0x8}, {0x4c}}]}, 0x78}}, 0x0) sendmsg$nl_route_sched(r0, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000600)=@newtfilter={0x3c, 0x2c, 0xd27, 0x0, 0x0, {0x0, 0x0, 0x0, r5, {}, {}, {0xc}}, [@filter_kind_options=@f_matchall={{0xd}, {0x8, 0x2, [@TCA_MATCHALL_ACT={0x4}]}}]}, 0x3c}}, 0x0) 14:57:40 executing program 5: syz_clone(0xe0140100, 0x0, 0x8, 0x0, 0x0, 0x0) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, 0x0, 0x0) 14:57:40 executing program 1: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="18010000000000000000000000000000850000007d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000180)={&(0x7f0000000040)='sys_enter\x00', r0}, 0x10) fchownat(0xffffffffffffffff, 0x0, 0x0, 0xee01, 0x0) 14:57:40 executing program 2: r0 = memfd_create(&(0x7f0000000200)='\x103q}2\x9a\xce\xaf\x03\xdfy[\xd9\xffR8\xf4\x1c\bi\xe4^\xd5\xfd\xa9\r\xac7A\x94\xa0\x00\x00\x00\x90k\xd6\x05\r\x84\x87\x1c\b\x8c`\xea\x13A\x90m\xb6&\xd0\x9d\x00\x00\xc5\xb8,\f\xd4s\xb2\x99/\xc0\x9a\xf2O\xdb\x00\x00\x00\x00\x00\x00\r\x1b\xd3\xff0x0]}, &(0x7f0000000200)=0xb) setsockopt$inet_sctp_SCTP_ADD_STREAMS(r0, 0x84, 0x903, &(0x7f0000000040)={r3}, 0x8) 14:57:51 executing program 1: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) r1 = dup2(r0, r0) getsockopt$inet_sctp_SCTP_MAX_BURST(r1, 0x84, 0x19, &(0x7f0000000240), &(0x7f0000000280)=0x8) 14:57:51 executing program 3: bind$inet(0xffffffffffffffff, 0x0, 0x0) 14:57:51 executing program 2: r0 = socket$inet_sctp(0x2, 0x5, 0x84) setsockopt$inet_sctp_SCTP_PEER_ADDR_PARAMS(r0, 0x84, 0xa, &(0x7f0000000080)={0x0, @in, 0x0, 0x0, 0x11}, 0x98) 14:57:51 executing program 2: r0 = socket$inet6_sctp(0x1c, 0x1, 0x84) r1 = dup2(r0, r0) sendmsg$inet_sctp(r1, &(0x7f0000000440)={&(0x7f0000000080)=@in6={0x1c, 0x1c, 0x1}, 0x1c, &(0x7f00000002c0)=[{&(0x7f00000000c0)="1e", 0x1}], 0x1, &(0x7f00000003c0)=[@dstaddrv4={0x10, 0x84, 0x9, @remote={0xac, 0x14, 0x0}}, @sndrcv={0x2c}, @prinfo={0x14}], 0x50}, 0x0) 14:57:51 executing program 1: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) r1 = dup2(r0, r0) getsockopt$inet_sctp_SCTP_MAX_BURST(r1, 0x84, 0x19, &(0x7f0000000240), &(0x7f0000000280)=0x8) 14:57:51 executing program 1: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) r1 = dup2(r0, r0) getsockopt$inet_sctp_SCTP_MAX_BURST(r1, 0x84, 0x19, &(0x7f0000000240), &(0x7f0000000280)=0x8) 14:57:51 executing program 3: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_ENUM_FREQ_BANDS(r0, 0xc0405665, &(0x7f0000000000)={0x0, 0x5}) 14:57:51 executing program 4: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_REQBUFS(r0, 0xc0145608, &(0x7f0000000000)={0x0, 0xb, 0x2}) 14:57:51 executing program 5: r0 = syz_open_dev$tty1(0xc, 0x4, 0x1) ioctl$PIO_UNIMAP(r0, 0x4b67, &(0x7f0000000100)={0x1, &(0x7f0000000080)=[{0x0, 0xfff}]}) 14:57:51 executing program 2: r0 = syz_init_net_socket$ax25(0x3, 0x5, 0x0) ioctl$SIOCAX25ADDUID(r0, 0x89e2, &(0x7f0000000040)={0x3, @bcast}) 14:57:51 executing program 3: r0 = socket$inet_udplite(0x2, 0x2, 0x88) ioctl$sock_ipv6_tunnel_SIOCGET6RD(r0, 0x89f8, &(0x7f0000000680)={'syztnl2\x00', 0x0}) 14:57:51 executing program 0: r0 = openat$binderfs(0xffffffffffffff9c, &(0x7f0000000000)='./binderfs/binder1\x00', 0x0, 0x0) ioctl$BINDER_SET_CONTEXT_MGR_EXT(r0, 0x4018620d, 0x0) 14:57:51 executing program 2: r0 = socket$packet(0x11, 0x2, 0x300) r1 = socket$nl_route(0x10, 0x3, 0x0) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(r1, 0x8933, &(0x7f00000001c0)={'batadv0\x00', 0x0}) sendto$packet(r0, &(0x7f0000000040)="00000806d096e40e4c5ea8aa51d4b9e3768dd455ada8", 0x16, 0x0, &(0x7f0000000000)={0x11, 0x8100, r2, 0x1, 0x0, 0x6, @remote}, 0x14) 14:57:51 executing program 5: syz_emit_ethernet(0x3e, &(0x7f0000000180)={@local, @random="1bc302e9884b", @void, {@ipv6={0x86dd, @generic={0x0, 0x6, "7e3814", 0x8, 0x0, 0x0, @remote, @initdev={0xfe, 0x88, '\x00', 0x0, 0x0}, {[@routing]}}}}}, 0x0) 14:57:51 executing program 4: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) fsetxattr$trusted_overlay_redirect(r0, &(0x7f0000000000), 0x0, 0x0, 0x0) 14:57:51 executing program 0: prctl$PR_SET_TAGGED_ADDR_CTRL(0x37, 0x1) openat$vnet(0xffffffffffffff9c, 0x0, 0x2, 0x0) ioctl$int_in(0xffffffffffffffff, 0x40000000af01, 0x0) r0 = openat$6lowpan_enable(0xffffffffffffff9c, &(0x7f0000000000), 0x2, 0x0) r1 = openat$dsp1(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) r2 = fcntl$dupfd(r0, 0x406, r1) r3 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000300), 0x2, 0x0) ioctl$int_in(r3, 0x40000000af01, 0x0) ioctl$VHOST_SET_VRING_ERR(r3, 0x4008af22, &(0x7f0000000080)={0x0, r2}) 14:57:51 executing program 1: r0 = openat$fb0(0xffffffffffffff9c, &(0x7f0000000340), 0x0, 0x0) ioctl$FBIOPUTCMAP(r0, 0x4605, &(0x7f0000000600)={0x0, 0x5, &(0x7f0000000500)=[0x0, 0x0, 0x0, 0x0, 0x0], &(0x7f0000000540), &(0x7f0000000580), &(0x7f00000005c0)}) 14:57:51 executing program 5: r0 = socket$packet(0x11, 0x2, 0x300) r1 = socket$nl_route(0x10, 0x3, 0x0) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(r1, 0x8933, &(0x7f00000001c0)={'batadv0\x00', 0x0}) sendto$packet(r0, &(0x7f0000000040)="00008100d096e40e", 0x8, 0x0, &(0x7f0000000000)={0x11, 0x8100, r2, 0x1, 0x0, 0x6, @remote}, 0x14) 14:57:51 executing program 1: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$NFT_BATCH(0xffffffffffffffff, &(0x7f00000000c0)={0x0, 0x0, 0x0}, 0x0) sendmsg$NFT_BATCH(r0, &(0x7f0000000540)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000100)={{0x3c}, [@NFT_MSG_DELSET={0x14}], {0x14}}, 0x3c}}, 0x0) 14:57:51 executing program 2: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) fsetxattr$trusted_overlay_opaque(r0, &(0x7f0000000140), 0x0, 0x0, 0x3) 14:57:51 executing program 4: r0 = syz_init_net_socket$bt_l2cap(0x1f, 0x1, 0x0) bind(r0, &(0x7f0000000080)=@hci={0x1f, 0x1}, 0x80) 14:57:51 executing program 3: syz_init_net_socket$ax25(0x3, 0x5, 0xca) 14:57:51 executing program 0: prctl$PR_SET_TAGGED_ADDR_CTRL(0x37, 0x1) openat$vnet(0xffffffffffffff9c, 0x0, 0x2, 0x0) ioctl$int_in(0xffffffffffffffff, 0x40000000af01, 0x0) r0 = openat$6lowpan_enable(0xffffffffffffff9c, &(0x7f0000000000), 0x2, 0x0) r1 = openat$dsp1(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) r2 = fcntl$dupfd(r0, 0x406, r1) r3 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000300), 0x2, 0x0) ioctl$int_in(r3, 0x40000000af01, 0x0) ioctl$VHOST_SET_VRING_ERR(r3, 0x4008af22, &(0x7f0000000080)={0x0, r2}) 14:57:51 executing program 2: r0 = syz_open_procfs(0x0, &(0x7f0000002100)='net/nf_conntrack_expect\x00') pread64(r0, &(0x7f0000000180)=""/195, 0xc3, 0x0) pread64(r0, &(0x7f0000000000)=""/118, 0x76, 0x10001) 14:57:51 executing program 4: r0 = syz_init_net_socket$ax25(0x3, 0x5, 0x0) ioctl$SIOCAX25GETUID(r0, 0x89e0, &(0x7f0000000000)={0x3, @netrom={0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x0, 0x0}}) 14:57:51 executing program 5: request_key(&(0x7f0000000040)='asymmetric\x00', &(0x7f0000001ffb)={'syz', 0x1, 0x8}, &(0x7f0000001fee)='\x02\tr*st\xe3cusgrV%x:De', 0x0) 14:57:51 executing program 1: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000240)='memory.current\x00', 0x275a, 0x0) syz_emit_ethernet(0x36, &(0x7f0000000100)=ANY=[@ANYBLOB="db278d9a8408350df740fc950339e29e00df2700000000000494787f", @ANYRES32=0x41424344, @ANYRES32=0x41424344], 0x0) write$binfmt_script(r2, &(0x7f0000000100)=ANY=[@ANYBLOB="41323f70cd370f30"], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r2, 0x0) preadv(r2, &(0x7f00000015c0)=[{&(0x7f0000000080)=""/124, 0xffffff23}], 0x1, 0x0, 0x0) ioctl$KVM_SET_USER_MEMORY_REGION(r1, 0x4020ae46, &(0x7f0000000400)={0x0, 0x0, 0x0, 0x20002000, &(0x7f0000000000/0x2000)=nil}) r3 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r3, &(0x7f0000000000/0x18000)=nil, &(0x7f0000000140)=[@text64={0x40, 0x0}], 0x1, 0x0, 0x0, 0x0) connect$can_bcm(0xffffffffffffffff, &(0x7f0000000000), 0x10) ioctl$KVM_RUN(r3, 0xae80, 0x0) 14:57:51 executing program 3: r0 = shmget$private(0x0, 0x4000, 0x54001800, &(0x7f0000000000/0x4000)=nil) shmctl$SHM_LOCK(r0, 0xb) 14:57:51 executing program 4: r0 = syz_init_net_socket$ax25(0x3, 0x5, 0x0) ioctl$SIOCAX25GETUID(r0, 0x89e0, &(0x7f0000000000)={0x3, @netrom={0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x0, 0x0}}) 14:57:51 executing program 3: r0 = add_key$keyring(&(0x7f00000000c0), &(0x7f0000000100)={'syz', 0x3}, 0x0, 0x0, 0xffffffffffffffff) r1 = add_key$keyring(&(0x7f0000000300), &(0x7f0000000340)={'syz', 0x2}, 0x0, 0x0, r0) add_key$keyring(&(0x7f00000000c0), &(0x7f0000000100)={'syz', 0x3}, 0x0, 0x0, 0xffffffffffffffff) keyctl$restrict_keyring(0x7, r1, 0x0, 0x0) 14:57:51 executing program 5: r0 = socket$inet(0x2, 0x2, 0x0) bind(r0, &(0x7f0000000080)=@in={0x2, 0x4e20}, 0x7c) sendto$inet(r0, 0x0, 0x0, 0x24008000, &(0x7f0000000280)={0x2, 0x8004e20}, 0x10) readv(r0, &(0x7f0000000b00)=[{&(0x7f0000002880)=""/199, 0xfdef}], 0x1) write$binfmt_elf64(r0, &(0x7f0000000180)=ANY=[], 0x79) 14:57:51 executing program 2: syz_mount_image$ntfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x6000000, 0x18, &(0x7f0000000200)=[{&(0x7f0000010000)="eb52904e5446532020202000020800000001000000f8000000000000000000000000000080008000ff0f0000000000000400000000000000ff00000000000000f6000000010000003daaf55af9830909000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0}, {&(0x7f0000010100)="00000000000000000000400000000040000000000000000000000000000055aa", 0x20, 0x1e0}, {&(0x7f0000010200)="ffff0007000000003f00"/32, 0x20, 0x2000}, {&(0x7f0000010300)="46494c4530000300000000000000000001000100380001009801000000040000000000000000000004000000000000000800000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010070000000000000006c0000000000000600000000000000040324004d0046005400000000000000800000004800000001004000000001000000000000000000120000000000000040000000000000000030010000000000001801000000000000180100000000001113040000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000000000010000000000000001101020000000000ffffffff00"/416, 0x1a0, 0x4000}, {&(0x7f0000010500)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x41e0}, {&(0x7f0000010600)="000000000000000000000000000000000000000000000000000000000000080046494c4530000300000000000000000001000100380001005801000000040000000000000000000003000000010000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000000100000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000001000000000000000100000000000002101ff0000000000ffffffff00"/384, 0x180, 0x43e0}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x45e0}, {&(0x7f00000006c0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000002000100380001005801000000040000000000000000000003000000020000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140000100000000ffffffff0000000000000000000000005c4acfc76019f85a7d9a5eeac96d07bd912910cc1aed8bc47f0be8174423c22ebc7d630a5f53b5eb656d3c3e2c7da87a7752768840fb748495d515879a81dd93d9d0925115ca52bc14b21297bf70efed2ced79ee719e3e1dfabc82cd866cb6de605f9081de8c4450f243c61d514bf866ab9c2980ea4143cb01bee81d7fe9310f", 0x200, 0x47e0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x49e0}, {&(0x7f0000010c00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e001000000040000000000000000000006000000030000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000200", 0x220, 0x4be0}, {&(0x7f0000010f00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000400010038000100c001000000040000000000000000000004000000040000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a00000000000000e9b093500000001101460000000000ffffffff00000000", 0x1e0, 0x4fe0}, {&(0x7f0000011100)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x51e0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000005000100380003000002000000040000000000000000000006000000050000000700000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601bbc80700c88dd601bbc80700c88dd601006f95ffc78dd601260000000000000000000000000000003000000060000000000018000000010044000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a000000050000000010440000000050000000000000000000000000000000000480000000000000000100000000000000010000000000000001000000000000024004900330030001101450000000000b0000000280000000004180000000400080000002000000024004900330030000100000000000000ffffffff00000700", 0x220, 0x53e0}, {&(0x7f0000011500)="000000000000000000000000000000000000000000000000000000000000070046494c4530000300000000000000000006000100380001005001000000040000000000000000000003000000060000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000020050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000040000000000000000600000000000000070324004200690074006d0061007000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000400000000000000040000000000000001101470000000000ffffffff00"/384, 0x180, 0x57e0}, {&(0x7f0000011700)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x59e0}, {&(0x7f0000001580)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000700010038000100b801000000040000000000000000000004000000070000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60106000000000000000000000000000000300000006800000000001800000002004c000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010020000000000000002000000000000006000000000000000503240042006f006f007400000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000010000000000000040000000000000000020000000000000002000000000000000200000000000001102000000000000ffffffff00"/480, 0x1e0, 0x5be0}, {&(0x7f0000011a00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5de0}, {&(0x7f0000011b00)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000008000100380001007801000000040000000000000000000004000000080000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000030052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff010000000000ffffffff00"/416, 0x1a0, 0x5fe0}, {&(0x7f0000011d00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x61e0}, {&(0x7f0000011e00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000900010038000900a802000000040000000000000000000005000000090000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000200000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000fc00040000000000fc000400000000002400530044005300114148000000000090000000b00000000004180000000300900000002000000024005300440048000000000012000000001000000100000010000000800000008000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000f01203f800010000f01203f80001000000000000000000007c000000490049000000000000000000100000000200020090000000a000000000041800000004008000000020000000240053004900490000000000100000000010000001000000100000007000000070000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c00000000000000000000001000000002000000ffffffff00"/736, 0x2e0, 0x63e0}, {&(0x7f0000000480)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000030050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f000000000000004000000000000000080002009403eedacac6d05c0000000000000200000000002120890000000000800000004800000000051800000002002000000028000000240049006e0066006f0000000000000020000000000000000c691b6b777edcda00000000000000000000000000000000ffffffff00000000000000000000000033110cf2560f1e4e2c494438702fb6808a5e86f9b557628655aed880833c98a420003f6fd822fe98a3fcc580f546a49feec0eeea25dd1a6ab0455a9a760f8244", 0x200, 0x67e0}, {&(0x7f0000000040)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x69e0}, {&(0x7f0000012400)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000b0001003800030080020000000400000000000000000000030000000b0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000010000000000703240045007800740065006e00640090000000780100000004180000000200580100002000000024004900330030003000000001000000001000000100000010000000480100004801000000000000190000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000000000000000000000000000000002600002000000000060324004f0062006a00490064000000180000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000006032400510075006f007400610002001a0000000000010068005200000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000008032400520065007000610072007300650000000000000000000000000000001000000002000000ffffffff00000000", 0x2a0, 0x6be0}, {&(0x7f0000012700)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x6fe0}], 0x0, &(0x7f000007dc00), 0x0) 14:57:51 executing program 0: prctl$PR_SET_TAGGED_ADDR_CTRL(0x37, 0x1) openat$vnet(0xffffffffffffff9c, 0x0, 0x2, 0x0) ioctl$int_in(0xffffffffffffffff, 0x40000000af01, 0x0) r0 = openat$6lowpan_enable(0xffffffffffffff9c, &(0x7f0000000000), 0x2, 0x0) r1 = openat$dsp1(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) r2 = fcntl$dupfd(r0, 0x406, r1) r3 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000300), 0x2, 0x0) ioctl$int_in(r3, 0x40000000af01, 0x0) ioctl$VHOST_SET_VRING_ERR(r3, 0x4008af22, &(0x7f0000000080)={0x0, r2}) [ 267.601981] L1TF CPU bug present and SMT on, data leak possible. See CVE-2018-3646 and https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/l1tf.html for details. 14:57:51 executing program 4: r0 = syz_init_net_socket$ax25(0x3, 0x5, 0x0) ioctl$SIOCAX25GETUID(r0, 0x89e0, &(0x7f0000000000)={0x3, @netrom={0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x0, 0x0}}) 14:57:51 executing program 3: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_REQBUFS(r0, 0xc0585611, &(0x7f0000001a00)={0x0, 0xb}) 14:57:52 executing program 3: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_ENUM_FMT(r0, 0xc0585609, &(0x7f0000000040)={0x0, 0xd, 0x0, "2c2cd983d613efbb2173817f19f54e081120ffd5147f3685e8fb1b72751bec0c"}) 14:57:52 executing program 0: prctl$PR_SET_TAGGED_ADDR_CTRL(0x37, 0x1) openat$vnet(0xffffffffffffff9c, 0x0, 0x2, 0x0) ioctl$int_in(0xffffffffffffffff, 0x40000000af01, 0x0) r0 = openat$6lowpan_enable(0xffffffffffffff9c, &(0x7f0000000000), 0x2, 0x0) r1 = openat$dsp1(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) r2 = fcntl$dupfd(r0, 0x406, r1) r3 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000300), 0x2, 0x0) ioctl$int_in(r3, 0x40000000af01, 0x0) ioctl$VHOST_SET_VRING_ERR(r3, 0x4008af22, &(0x7f0000000080)={0x0, r2}) 14:57:52 executing program 4: r0 = syz_init_net_socket$ax25(0x3, 0x5, 0x0) ioctl$SIOCAX25GETUID(r0, 0x89e0, &(0x7f0000000000)={0x3, @netrom={0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x0, 0x0}}) [ 267.697408] ntfs: (device loop2): read_ntfs_boot_sector(): Primary boot sector is invalid. [ 267.734303] ntfs: (device loop2): read_ntfs_boot_sector(): Mount option errors=recover not used. Aborting without trying to recover. [ 267.799383] ntfs: (device loop2): ntfs_fill_super(): Not an NTFS volume. [ 267.803834] kvm [9664]: vcpu0, guest rIP: 0x9186 disabled perfctr wrmsr: 0xc2 data 0x62fff23e06 [ 267.823679] kvm [9664]: vcpu0, guest rIP: 0x9286 disabled perfctr wrmsr: 0xc2 data 0x62fff20b02 [ 267.865217] kvm [9664]: vcpu0, guest rIP: 0x9186 disabled perfctr wrmsr: 0x187 data 0xc6fff23f04 [ 267.875910] kvm [9664]: vcpu0, guest rIP: 0x9286 disabled perfctr wrmsr: 0x187 data 0xc6fff2060e 14:57:52 executing program 1: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$NFT_BATCH(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000009c0)={{0x14}, [@NFT_MSG_NEWTABLE={0x20, 0x0, 0xa, 0x101, 0x0, 0x0, {0x1}, [@NFTA_TABLE_NAME={0x9, 0x1, 'syz0\x00'}]}, @NFT_MSG_NEWSET={0x3c, 0x9, 0xa, 0x401, 0x0, 0x0, {0x1}, [@NFTA_SET_ID={0x8}, @NFTA_SET_NAME={0x9, 0x2, 'syz2\x00'}, @NFTA_SET_TABLE={0x9, 0x1, 'syz0\x00'}, @NFTA_SET_KEY_LEN={0x8, 0x5, 0x1, 0x0, 0x16}]}], {0x14, 0x10}}, 0x84}}, 0x0) sendmsg$NFT_BATCH(r0, &(0x7f0000000540)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000100)={{0x14}, [@NFT_MSG_DELSET={0x14}], {0x14}}, 0x3c}}, 0x0) 14:57:52 executing program 5: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$IPCTNL_MSG_CT_NEW(r0, &(0x7f0000000300)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000000)={0x38, 0x0, 0x1, 0x401, 0x0, 0x0, {0x2}, [@CTA_TUPLE_REPLY={0x24, 0x2, 0x0, 0x1, [@CTA_TUPLE_IP={0x14, 0x1, 0x0, 0x1, @ipv4={{0x8, 0x1, @empty}, {0x8, 0x2, @dev}}}, @CTA_TUPLE_PROTO={0xc, 0x2, 0x0, 0x1, {0x5}}]}]}, 0x38}}, 0x0) 14:57:52 executing program 3: prctl$PR_SET_TAGGED_ADDR_CTRL(0x37, 0x1) r0 = socket$inet6_sctp(0xa, 0x1, 0x84) r1 = socket$inet6_sctp(0xa, 0x5, 0x84) shutdown(r1, 0x0) getsockopt$inet_sctp6_SCTP_SOCKOPT_CONNECTX3(r1, 0x84, 0x6f, &(0x7f0000000000)={0x0, 0x10, &(0x7f00000002c0)=[@in={0x2, 0x0, @initdev={0xac, 0x1e, 0x0, 0x0}}]}, &(0x7f0000000140)=0x10) r2 = socket$inet(0x2, 0x80001, 0x84) getsockopt$inet_sctp_SCTP_MAX_BURST(r2, 0x84, 0x14, &(0x7f0000000000)=@assoc_value={0x0}, &(0x7f0000000300)=0x8) getsockopt$inet_sctp6_SCTP_GET_LOCAL_ADDRS(r0, 0x84, 0x6d, &(0x7f0000000100)={r3}, &(0x7f00000001c0)=0x8) 14:57:52 executing program 4: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_REQBUFS(r0, 0xc0585611, &(0x7f0000001a00)={0x0, 0x8}) 14:57:52 executing program 0: r0 = syz_open_procfs(0x0, &(0x7f0000004080)='net/netstat\x00') read$FUSE(r0, &(0x7f0000000680)={0x2020}, 0x2020) 14:57:52 executing program 2: syz_mount_image$ntfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x6fff, 0x18, &(0x7f0000000200)=[{&(0x7f0000010000)="eb52904e5446532020202000020800000000000000f8000000000000000000000000000080008000ff0f0000000000000400000000000000ff00000000000000f6000000010000003daaf55af9830909000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0}, {&(0x7f0000010100)="00000000000000000000400000000040000000000000000000000000000055aa", 0x20, 0x1e0}, {&(0x7f0000010200)="ffff0007000000003f00"/32, 0x20, 0x2000}, {&(0x7f0000010300)="46494c4530000300000000000000000001000100380001009801000000040000000000000000000004000000000000000800000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010070000000000000006c0000000000000600000000000000040324004d0046005400000000000000800000004800000001004000000001000000000000000000120000000000000040000000000000000030010000000000001801000000000000180100000000001113040000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000000000010000000000000001101020000000000ffffffff00"/416, 0x1a0, 0x4000}, {&(0x7f0000010500)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x41e0}, {&(0x7f0000010600)="000000000000000000000000000000000000000000000000000000000000080046494c4530000300000000000000000001000100380001005801000000040000000000000000000003000000010000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000000100000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000001000000000000000100000000000002101ff0000000000ffffffff00"/384, 0x180, 0x43e0}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x45e0}, {&(0x7f00000006c0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000002000100380001005801000000040000000000000000000003000000020000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140000100000000ffffffff0000000000000000000000005c4acfc76019f85a7d9a5eeac96d07bd912910cc1aed8bc47f0be8174423c22ebc7d630a5f53b5eb656d3c3e2c7da87a7752768840fb748495d515879a81dd93d9d0925115ca52bc14b21297bf70efed2ced79ee719e3e1dfabc82cd866cb6de605f9081de8c4450f243c61d514bf866ab9c2980ea4143cb01bee81d7fe9310f", 0x200, 0x47e0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x49e0}, {&(0x7f0000010c00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e001000000040000000000000000000006000000030000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000200", 0x220, 0x4be0}, {&(0x7f0000010f00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000400010038000100c001000000040000000000000000000004000000040000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a00000000000000e9b093500000001101460000000000ffffffff00000000", 0x1e0, 0x4fe0}, {&(0x7f0000011100)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x51e0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000005000100380003000002000000040000000000000000000006000000050000000700000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601bbc80700c88dd601bbc80700c88dd601006f95ffc78dd601260000000000000000000000000000003000000060000000000018000000010044000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a000000050000000010440000000050000000000000000000000000000000000480000000000000000100000000000000010000000000000001000000000000024004900330030001101450000000000b0000000280000000004180000000400080000002000000024004900330030000100000000000000ffffffff00000700", 0x220, 0x53e0}, {&(0x7f0000011500)="000000000000000000000000000000000000000000000000000000000000070046494c4530000300000000000000000006000100380001005001000000040000000000000000000003000000060000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000020050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000040000000000000000600000000000000070324004200690074006d0061007000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000400000000000000040000000000000001101470000000000ffffffff00"/384, 0x180, 0x57e0}, {&(0x7f0000011700)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x59e0}, {&(0x7f0000001580)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000700010038000100b801000000040000000000000000000004000000070000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60106000000000000000000000000000000300000006800000000001800000002004c000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010020000000000000002000000000000006000000000000000503240042006f006f007400000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000010000000000000040000000000000000020000000000000002000000000000000200000000000001102000000000000ffffffff00"/480, 0x1e0, 0x5be0}, {&(0x7f0000011a00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5de0}, {&(0x7f0000011b00)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000008000100380001007801000000040000000000000000000004000000080000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000030052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff010000000000ffffffff00"/416, 0x1a0, 0x5fe0}, {&(0x7f0000011d00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x61e0}, {&(0x7f0000011e00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000900010038000900a802000000040000000000000000000005000000090000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000200000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000fc00040000000000fc000400000000002400530044005300114148000000000090000000b00000000004180000000300900000002000000024005300440048000000000012000000001000000100000010000000800000008000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000f01203f800010000f01203f80001000000000000000000007c000000490049000000000000000000100000000200020090000000a000000000041800000004008000000020000000240053004900490000000000100000000010000001000000100000007000000070000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c00000000000000000000001000000002000000ffffffff00"/736, 0x2e0, 0x63e0}, {&(0x7f0000000480)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000030050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f000000000000004000000000000000080002009403eedacac6d05c0000000000000200000000002120890000000000800000004800000000051800000002002000000028000000240049006e0066006f0000000000000020000000000000000c691b6b777edcda00000000000000000000000000000000ffffffff00000000000000000000000033110cf2560f1e4e2c494438702fb6808a5e86f9b557628655aed880833c98a420003f6fd822fe98a3fcc580f546a49feec0eeea25dd1a6ab0455a9a760f8244", 0x200, 0x67e0}, {&(0x7f0000000040)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x69e0}, {&(0x7f0000012400)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000b0001003800030080020000000400000000000000000000030000000b0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000010000000000703240045007800740065006e00640090000000780100000004180000000200580100002000000024004900330030003000000001000000001000000100000010000000480100004801000000000000190000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000000000000000000000000000000002600002000000000060324004f0062006a00490064000000180000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000006032400510075006f007400610002001a0000000000010068005200000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000008032400520065007000610072007300650000000000000000000000000000001000000002000000ffffffff00000000", 0x2a0, 0x6be0}, {&(0x7f0000012700)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x6fe0}], 0x0, &(0x7f000007dc00), 0x0) 14:57:52 executing program 0: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_REQBUFS(r0, 0xc0145608, &(0x7f0000001a00)={0x0, 0x3}) 14:57:52 executing program 5: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) fsetxattr$trusted_overlay_opaque(r0, &(0x7f0000000140), 0x0, 0x0, 0x0) 14:57:52 executing program 4: r0 = syz_init_net_socket$ax25(0x3, 0x5, 0x0) r1 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r1, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0}, &(0x7f0000cab000)=0xc) setresuid(0x0, r2, 0xee00) bind$ax25(r0, &(0x7f0000000080)={{0x3, @remote={0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x1}}, [@rose={0xbb, 0xbb, 0xbb, 0x1, 0x0}, @default, @default, @netrom={0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x0, 0x0}, @bcast, @bcast, @rose={0xbb, 0xbb, 0xbb, 0x1, 0x0}, @null]}, 0x48) 14:57:52 executing program 3: r0 = syz_genetlink_get_family_id$nl802154(&(0x7f0000000100), 0xffffffffffffffff) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NL802154_CMD_SET_MAX_FRAME_RETRIES(r1, &(0x7f00000005c0)={0x0, 0x0, &(0x7f0000000580)={&(0x7f0000000540)={0x20, r0, 0x821, 0x0, 0x0, {}, [@NL802154_ATTR_WPAN_DEV={0xc, 0x6, 0x300000003}]}, 0x20}}, 0x0) 14:57:52 executing program 5: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_QUERY_EXT_CTRL(r0, 0xc0e85667, &(0x7f0000000100)={0x40000000, 0x0, "bf9fe18a99290fe4877af3f322d5e4c7ea42ab90c003921ef8cd786eeaeb7f53"}) [ 267.976898] attempt to access beyond end of device [ 267.993244] loop2: rw=0, want=2041, limit=55 14:57:52 executing program 4: r0 = syz_open_dev$tty1(0xc, 0x4, 0x1) ioctl$TCSETS2(r0, 0x402c542b, &(0x7f0000000500)={0x53af, 0x0, 0x0, 0xf316, 0x0, "130fed3dd5f87e805045edc9adbcb8d5d33b76"}) ioctl$TIOCL_PASTESEL(r0, 0x541c, &(0x7f0000000580)) 14:57:52 executing program 1: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_REQBUFS(r0, 0xc0145608, &(0x7f0000001a00)={0x0, 0xe}) 14:57:52 executing program 0: r0 = syz_open_procfs(0x0, &(0x7f0000000300)='mounts\x00') preadv(r0, &(0x7f0000000080)=[{&(0x7f00000001c0)=""/73, 0x49}], 0x1, 0x3fffe, 0x0) 14:57:52 executing program 5: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_QUERY_EXT_CTRL(r0, 0xc0e85667, &(0x7f0000000100)={0x40000000, 0x0, "bf9fe18a99290fe4877af3f322d5e4c7ea42ab90c003921ef8cd786eeaeb7f53"}) 14:57:52 executing program 3: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_ENUM_FMT(r0, 0xc058560f, &(0x7f0000000040)={0x0, 0xb, 0x0, "2c2cd983d613efbb2173817f19f54e081120ffd5147f3685e8fb1b72751bec0c"}) [ 268.038056] ntfs: (device loop2): ntfs_end_buffer_async_read(): Buffer I/O error, logical block 0x7f8. [ 268.077000] attempt to access beyond end of device 14:57:52 executing program 4: r0 = syz_open_dev$loop(&(0x7f00000020c0), 0x0, 0x0) ioctl$LOOP_CHANGE_FD(r0, 0x127b, 0xffffffffffffffff) [ 268.137670] loop2: rw=0, want=2042, limit=55 [ 268.187122] ntfs: (device loop2): ntfs_end_buffer_async_read(): Buffer I/O error, logical block 0x7f9. [ 268.217923] attempt to access beyond end of device [ 268.227689] loop2: rw=0, want=2043, limit=55 [ 268.232905] ntfs: (device loop2): ntfs_end_buffer_async_read(): Buffer I/O error, logical block 0x7fa. [ 268.242632] attempt to access beyond end of device [ 268.247642] loop2: rw=0, want=2044, limit=55 [ 268.252476] ntfs: (device loop2): ntfs_end_buffer_async_read(): Buffer I/O error, logical block 0x7fb. [ 268.262355] attempt to access beyond end of device [ 268.267318] loop2: rw=0, want=2045, limit=55 [ 268.272244] ntfs: (device loop2): ntfs_end_buffer_async_read(): Buffer I/O error, logical block 0x7fc. [ 268.282049] attempt to access beyond end of device [ 268.287016] loop2: rw=0, want=2046, limit=55 [ 268.291520] ntfs: (device loop2): ntfs_end_buffer_async_read(): Buffer I/O error, logical block 0x7fd. [ 268.301111] attempt to access beyond end of device [ 268.306069] loop2: rw=0, want=2047, limit=55 [ 268.310624] ntfs: (device loop2): ntfs_end_buffer_async_read(): Buffer I/O error, logical block 0x7fe. [ 268.320178] attempt to access beyond end of device [ 268.325118] loop2: rw=0, want=2048, limit=55 [ 268.330464] attempt to access beyond end of device [ 268.335386] loop2: rw=0, want=56, limit=55 [ 268.341364] attempt to access beyond end of device [ 268.346286] loop2: rw=0, want=561, limit=55 [ 268.351894] attempt to access beyond end of device [ 268.356819] loop2: rw=0, want=562, limit=55 [ 268.361203] attempt to access beyond end of device [ 268.366123] loop2: rw=0, want=563, limit=55 [ 268.370508] attempt to access beyond end of device [ 268.375422] loop2: rw=0, want=564, limit=55 [ 268.379792] attempt to access beyond end of device [ 268.384706] loop2: rw=0, want=565, limit=55 14:57:52 executing program 2: syz_mount_image$ntfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x6fff, 0x18, &(0x7f0000000200)=[{&(0x7f0000010000)="eb52904e5446532020202000020800000000000000f8000000000000000000000000000080008000ff0f0000000000000400000000000000ff00000000000000f6000000010000003daaf55af9830909000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0}, {&(0x7f0000010100)="00000000000000000000400000000040000000000000000000000000000055aa", 0x20, 0x1e0}, {&(0x7f0000010200)="ffff0007000000003f00"/32, 0x20, 0x2000}, {&(0x7f0000010300)="46494c4530000300000000000000000001000100380001009801000000040000000000000000000004000000000000000800000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010070000000000000006c0000000000000600000000000000040324004d0046005400000000000000800000004800000001004000000001000000000000000000120000000000000040000000000000000030010000000000001801000000000000180100000000001113040000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000000000010000000000000001101020000000000ffffffff00"/416, 0x1a0, 0x4000}, {&(0x7f0000010500)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x41e0}, {&(0x7f0000010600)="000000000000000000000000000000000000000000000000000000000000080046494c4530000300000000000000000001000100380001005801000000040000000000000000000003000000010000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000000100000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000001000000000000000100000000000002101ff0000000000ffffffff00"/384, 0x180, 0x43e0}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x45e0}, {&(0x7f00000006c0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000002000100380001005801000000040000000000000000000003000000020000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140000100000000ffffffff0000000000000000000000005c4acfc76019f85a7d9a5eeac96d07bd912910cc1aed8bc47f0be8174423c22ebc7d630a5f53b5eb656d3c3e2c7da87a7752768840fb748495d515879a81dd93d9d0925115ca52bc14b21297bf70efed2ced79ee719e3e1dfabc82cd866cb6de605f9081de8c4450f243c61d514bf866ab9c2980ea4143cb01bee81d7fe9310f", 0x200, 0x47e0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x49e0}, {&(0x7f0000010c00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e001000000040000000000000000000006000000030000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000200", 0x220, 0x4be0}, {&(0x7f0000010f00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000400010038000100c001000000040000000000000000000004000000040000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a00000000000000e9b093500000001101460000000000ffffffff00000000", 0x1e0, 0x4fe0}, {&(0x7f0000011100)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x51e0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000005000100380003000002000000040000000000000000000006000000050000000700000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601bbc80700c88dd601bbc80700c88dd601006f95ffc78dd601260000000000000000000000000000003000000060000000000018000000010044000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a000000050000000010440000000050000000000000000000000000000000000480000000000000000100000000000000010000000000000001000000000000024004900330030001101450000000000b0000000280000000004180000000400080000002000000024004900330030000100000000000000ffffffff00000700", 0x220, 0x53e0}, {&(0x7f0000011500)="000000000000000000000000000000000000000000000000000000000000070046494c4530000300000000000000000006000100380001005001000000040000000000000000000003000000060000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000020050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000040000000000000000600000000000000070324004200690074006d0061007000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000400000000000000040000000000000001101470000000000ffffffff00"/384, 0x180, 0x57e0}, {&(0x7f0000011700)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x59e0}, {&(0x7f0000001580)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000700010038000100b801000000040000000000000000000004000000070000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60106000000000000000000000000000000300000006800000000001800000002004c000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010020000000000000002000000000000006000000000000000503240042006f006f007400000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000010000000000000040000000000000000020000000000000002000000000000000200000000000001102000000000000ffffffff00"/480, 0x1e0, 0x5be0}, {&(0x7f0000011a00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5de0}, {&(0x7f0000011b00)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000008000100380001007801000000040000000000000000000004000000080000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000030052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff010000000000ffffffff00"/416, 0x1a0, 0x5fe0}, {&(0x7f0000011d00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x61e0}, {&(0x7f0000011e00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000900010038000900a802000000040000000000000000000005000000090000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000200000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000fc00040000000000fc000400000000002400530044005300114148000000000090000000b00000000004180000000300900000002000000024005300440048000000000012000000001000000100000010000000800000008000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000f01203f800010000f01203f80001000000000000000000007c000000490049000000000000000000100000000200020090000000a000000000041800000004008000000020000000240053004900490000000000100000000010000001000000100000007000000070000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c00000000000000000000001000000002000000ffffffff00"/736, 0x2e0, 0x63e0}, {&(0x7f0000000480)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000030050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f000000000000004000000000000000080002009403eedacac6d05c0000000000000200000000002120890000000000800000004800000000051800000002002000000028000000240049006e0066006f0000000000000020000000000000000c691b6b777edcda00000000000000000000000000000000ffffffff00000000000000000000000033110cf2560f1e4e2c494438702fb6808a5e86f9b557628655aed880833c98a420003f6fd822fe98a3fcc580f546a49feec0eeea25dd1a6ab0455a9a760f8244", 0x200, 0x67e0}, {&(0x7f0000000040)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x69e0}, {&(0x7f0000012400)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000b0001003800030080020000000400000000000000000000030000000b0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000010000000000703240045007800740065006e00640090000000780100000004180000000200580100002000000024004900330030003000000001000000001000000100000010000000480100004801000000000000190000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000000000000000000000000000000002600002000000000060324004f0062006a00490064000000180000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000006032400510075006f007400610002001a0000000000010068005200000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000008032400520065007000610072007300650000000000000000000000000000001000000002000000ffffffff00000000", 0x2a0, 0x6be0}, {&(0x7f0000012700)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x6fe0}], 0x0, &(0x7f000007dc00), 0x0) 14:57:52 executing program 0: syz_read_part_table(0x0, 0x2, &(0x7f0000002300)=[{&(0x7f0000000040)='\"', 0x1, 0x10001}, {&(0x7f00000011c0)="160154b7fd1aba8cf254c987d5f6b47bc29581315316131b1f217d7bfb283ad38203988af270e11a0531d59dcbe4705f9c01b07cf9179769f9eb57c9dfd13e51cbcc62bebaa9a44492428f55ba5b24fde0230893f72de28543471a41cb755f5a1713653858343d5beaf20d17b562e6a52a9be247a2dc3a5f979f888e729175fa1394c7ed84781b14ff82799973f2d4fdade71898d6800e1258cbe8253c2b25e8fc66427036b409a7ccf8867f0dfcb3e2ca2e12a15da25c2f0297241c32e18f99a17f5d80862c12b3d80ea27d2b7b91511b47dfa9a4c303ef7c9dea45d986172c122eeec28737fe5d19c7a17c4d1d0514d3c29cbc16003fefd1c08a5430dcb87a083d4dd08fafa3fe4d1c9468974c9aa4316edf897cab9707e69b0faae68bf16725bfa9596b60a9112a76c4cb169f3d58433cfb6e41d3fd53e0a6bf0a5c546d5d619454785c3f4c0a789618419cfd6dbcd1706b5c2e26c8cb7cc876171bc9c7c755808d63e05d10337990c7ed6acbcd5111729705780b2f8b0748d0f9c14d06c84f0ff76d1ca85a2d5d1779be21672181a34ad9c42cc57dfb9e612c125df6f6abc9b8fcae9e32e019e286ef5259b03347ed1812f52ac14edb8c349bf9ef1495b1", 0x1c0, 0x7}]) 14:57:52 executing program 4: mkdirat$binderfs(0xffffffffffffff9c, &(0x7f0000000040)='./binderfs2\x00', 0x1ff) r0 = openat$binderfs(0xffffffffffffff9c, &(0x7f0000000480)='./binderfs2/custom1\x00', 0xf0, 0x0) ioctl$EXT4_IOC_GET_ES_CACHE(r0, 0xc0506617, &(0x7f0000000180)) 14:57:52 executing program 3: r0 = syz_open_procfs(0x0, &(0x7f0000000000)='net/netstat\x00') read$dsp(r0, &(0x7f0000000080)=""/44, 0x2c) 14:57:52 executing program 5: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_QUERY_EXT_CTRL(r0, 0xc0e85667, &(0x7f0000000100)={0x40000000, 0x0, "bf9fe18a99290fe4877af3f322d5e4c7ea42ab90c003921ef8cd786eeaeb7f53"}) 14:57:52 executing program 1: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) fchown(r0, 0x0, 0x0) 14:57:52 executing program 4: syz_mount_image$ntfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x6000000, 0x18, &(0x7f0000000200)=[{&(0x7f0000010000)="eb52904e54465320202020000a0800000000000000f8000000000000000000000000000080008000ff0f0000000000000400000000000000ff00000000000000f6000000010000003daaf55af9830909000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0}, {&(0x7f0000010100)="00000000000000000000400000000040000000000000000000000000000055aa", 0x20, 0x1e0}, {&(0x7f0000010200)="ffff0007000000003f00"/32, 0x20, 0x2000}, {&(0x7f0000010300)="46494c4530000300000000000000000001000100380001009801000000040000000000000000000004000000000000000800000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010070000000000000006c0000000000000600000000000000040324004d0046005400000000000000800000004800000001004000000001000000000000000000120000000000000040000000000000000030010000000000001801000000000000180100000000001113040000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000000000010000000000000001101020000000000ffffffff00"/416, 0x1a0, 0x4000}, {&(0x7f0000010500)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x41e0}, {&(0x7f0000010600)="000000000000000000000000000000000000000000000000000000000000080046494c4530000300000000000000000001000100380001005801000000040000000000000000000003000000010000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000000100000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000001000000000000000100000000000002101ff0000000000ffffffff00"/384, 0x180, 0x43e0}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x45e0}, {&(0x7f00000006c0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000002000100380001005801000000040000000000000000000003000000020000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140000100000000ffffffff0000000000000000000000005c4acfc76019f85a7d9a5eeac96d07bd912910cc1aed8bc47f0be8174423c22ebc7d630a5f53b5eb656d3c3e2c7da87a7752768840fb748495d515879a81dd93d9d0925115ca52bc14b21297bf70efed2ced79ee719e3e1dfabc82cd866cb6de605f9081de8c4450f243c61d514bf866ab9c2980ea4143cb01bee81d7fe9310f", 0x200, 0x47e0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x49e0}, {&(0x7f0000010c00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e001000000040000000000000000000006000000030000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000200", 0x220, 0x4be0}, {&(0x7f0000010f00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000400010038000100c001000000040000000000000000000004000000040000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a00000000000000e9b093500000001101460000000000ffffffff00000000", 0x1e0, 0x4fe0}, {&(0x7f0000011100)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x51e0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000005000100380003000002000000040000000000000000000006000000050000000700000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601bbc80700c88dd601bbc80700c88dd601006f95ffc78dd601260000000000000000000000000000003000000060000000000018000000010044000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a000000050000000010440000000050000000000000000000000000000000000480000000000000000100000000000000010000000000000001000000000000024004900330030001101450000000000b0000000280000000004180000000400080000002000000024004900330030000100000000000000ffffffff00000700", 0x220, 0x53e0}, {&(0x7f0000011500)="000000000000000000000000000000000000000000000000000000000000070046494c4530000300000000000000000006000100380001005001000000040000000000000000000003000000060000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000020050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000040000000000000000600000000000000070324004200690074006d0061007000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000400000000000000040000000000000001101470000000000ffffffff00"/384, 0x180, 0x57e0}, {&(0x7f0000011700)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x59e0}, {&(0x7f0000001580)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000700010038000100b801000000040000000000000000000004000000070000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60106000000000000000000000000000000300000006800000000001800000002004c000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010020000000000000002000000000000006000000000000000503240042006f006f007400000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000010000000000000040000000000000000020000000000000002000000000000000200000000000001102000000000000ffffffff00"/480, 0x1e0, 0x5be0}, {&(0x7f0000011a00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5de0}, {&(0x7f0000011b00)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000008000100380001007801000000040000000000000000000004000000080000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000030052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff010000000000ffffffff00"/416, 0x1a0, 0x5fe0}, {&(0x7f0000011d00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x61e0}, {&(0x7f0000011e00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000900010038000900a802000000040000000000000000000005000000090000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000200000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000fc00040000000000fc000400000000002400530044005300114148000000000090000000b00000000004180000000300900000002000000024005300440048000000000012000000001000000100000010000000800000008000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000f01203f800010000f01203f80001000000000000000000007c000000490049000000000000000000100000000200020090000000a000000000041800000004008000000020000000240053004900490000000000100000000010000001000000100000007000000070000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c00000000000000000000001000000002000000ffffffff00"/736, 0x2e0, 0x63e0}, {&(0x7f0000000480)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000030050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f000000000000004000000000000000080002009403eedacac6d05c0000000000000200000000002120890000000000800000004800000000051800000002002000000028000000240049006e0066006f0000000000000020000000000000000c691b6b777edcda00000000000000000000000000000000ffffffff00000000000000000000000033110cf2560f1e4e2c494438702fb6808a5e86f9b557628655aed880833c98a420003f6fd822fe98a3fcc580f546a49feec0eeea25dd1a6ab0455a9a760f8244", 0x200, 0x67e0}, {&(0x7f0000000040)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x69e0}, {&(0x7f0000012400)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000b0001003800030080020000000400000000000000000000030000000b0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000010000000000703240045007800740065006e00640090000000780100000004180000000200580100002000000024004900330030003000000001000000001000000100000010000000480100004801000000000000190000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000000000000000000000000000000002600002000000000060324004f0062006a00490064000000180000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000006032400510075006f007400610002001a0000000000010068005200000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000008032400520065007000610072007300650000000000000000000000000000001000000002000000ffffffff00000000", 0x2a0, 0x6be0}, {&(0x7f0000012700)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x6fe0}], 0x0, &(0x7f000007dc00), 0x0) 14:57:52 executing program 3: r0 = syz_open_procfs$namespace(0xffffffffffffffff, &(0x7f0000000040)='ns/pid_for_children\x00') r1 = openat$rfkill(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) ppoll(&(0x7f0000000140)=[{r0, 0x4}, {r1}], 0x2, 0x0, 0x0, 0x0) 14:57:52 executing program 5: r0 = syz_open_dev$swradio(&(0x7f00000000c0), 0xffffffffffffffff, 0x2) ioctl$VIDIOC_QUERY_EXT_CTRL(r0, 0xc0e85667, &(0x7f0000000100)={0x40000000, 0x0, "bf9fe18a99290fe4877af3f322d5e4c7ea42ab90c003921ef8cd786eeaeb7f53"}) 14:57:52 executing program 1: r0 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='stat\x00') read$dsp(r0, &(0x7f0000000080)=""/44, 0x2c) [ 268.494101] attempt to access beyond end of device 14:57:52 executing program 3: openat$vmci(0xffffffffffffff9c, &(0x7f0000000100), 0x2, 0x0) pselect6(0x40, &(0x7f00000000c0), &(0x7f0000000140)={0x7}, &(0x7f0000000180)={0x8}, 0x0, 0x0) 14:57:52 executing program 1: pselect6(0x40, &(0x7f0000002580), &(0x7f00000025c0), &(0x7f0000002600)={0xffffffff}, 0x0, &(0x7f0000002700)={&(0x7f00000026c0), 0x8}) [ 268.531648] loop2: rw=0, want=2041, limit=55 [ 268.561536] print_req_error: I/O error, dev loop0, sector 56 [ 268.562543] attempt to access beyond end of device [ 268.587695] loop2: rw=0, want=2042, limit=55 [ 268.601875] attempt to access beyond end of device [ 268.616409] loop2: rw=0, want=2043, limit=55 [ 268.624886] attempt to access beyond end of device [ 268.639774] loop2: rw=0, want=2044, limit=55 [ 268.644239] attempt to access beyond end of device [ 268.653086] loop2: rw=0, want=2045, limit=55 [ 268.657529] attempt to access beyond end of device [ 268.673743] loop2: rw=0, want=2046, limit=55 [ 268.681592] attempt to access beyond end of device [ 268.686830] loop2: rw=0, want=2047, limit=55 [ 268.693683] attempt to access beyond end of device [ 268.706539] loop2: rw=0, want=2048, limit=55 [ 268.717604] attempt to access beyond end of device [ 268.723353] loop2: rw=0, want=56, limit=55 [ 268.729842] attempt to access beyond end of device [ 268.734760] loop2: rw=0, want=561, limit=55 [ 268.739717] attempt to access beyond end of device [ 268.744631] loop2: rw=0, want=562, limit=55 [ 268.750418] attempt to access beyond end of device [ 268.755357] loop2: rw=0, want=563, limit=55 [ 268.760538] attempt to access beyond end of device [ 268.765457] loop2: rw=0, want=564, limit=55 [ 268.770411] attempt to access beyond end of device [ 268.775325] loop2: rw=0, want=565, limit=55 14:57:53 executing program 2: syz_mount_image$ntfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x6fff, 0x18, &(0x7f0000000200)=[{&(0x7f0000010000)="eb52904e5446532020202000020800000000000000f8000000000000000000000000000080008000ff0f0000000000000400000000000000ff00000000000000f6000000010000003daaf55af9830909000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0}, {&(0x7f0000010100)="00000000000000000000400000000040000000000000000000000000000055aa", 0x20, 0x1e0}, {&(0x7f0000010200)="ffff0007000000003f00"/32, 0x20, 0x2000}, {&(0x7f0000010300)="46494c4530000300000000000000000001000100380001009801000000040000000000000000000004000000000000000800000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010070000000000000006c0000000000000600000000000000040324004d0046005400000000000000800000004800000001004000000001000000000000000000120000000000000040000000000000000030010000000000001801000000000000180100000000001113040000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000000000010000000000000001101020000000000ffffffff00"/416, 0x1a0, 0x4000}, {&(0x7f0000010500)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x41e0}, {&(0x7f0000010600)="000000000000000000000000000000000000000000000000000000000000080046494c4530000300000000000000000001000100380001005801000000040000000000000000000003000000010000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000000100000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000001000000000000000100000000000002101ff0000000000ffffffff00"/384, 0x180, 0x43e0}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x45e0}, {&(0x7f00000006c0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000002000100380001005801000000040000000000000000000003000000020000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140000100000000ffffffff0000000000000000000000005c4acfc76019f85a7d9a5eeac96d07bd912910cc1aed8bc47f0be8174423c22ebc7d630a5f53b5eb656d3c3e2c7da87a7752768840fb748495d515879a81dd93d9d0925115ca52bc14b21297bf70efed2ced79ee719e3e1dfabc82cd866cb6de605f9081de8c4450f243c61d514bf866ab9c2980ea4143cb01bee81d7fe9310f", 0x200, 0x47e0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x49e0}, {&(0x7f0000010c00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e001000000040000000000000000000006000000030000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000200", 0x220, 0x4be0}, {&(0x7f0000010f00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000400010038000100c001000000040000000000000000000004000000040000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a00000000000000e9b093500000001101460000000000ffffffff00000000", 0x1e0, 0x4fe0}, {&(0x7f0000011100)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x51e0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000005000100380003000002000000040000000000000000000006000000050000000700000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601bbc80700c88dd601bbc80700c88dd601006f95ffc78dd601260000000000000000000000000000003000000060000000000018000000010044000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a000000050000000010440000000050000000000000000000000000000000000480000000000000000100000000000000010000000000000001000000000000024004900330030001101450000000000b0000000280000000004180000000400080000002000000024004900330030000100000000000000ffffffff00000700", 0x220, 0x53e0}, {&(0x7f0000011500)="000000000000000000000000000000000000000000000000000000000000070046494c4530000300000000000000000006000100380001005001000000040000000000000000000003000000060000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000020050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000040000000000000000600000000000000070324004200690074006d0061007000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000400000000000000040000000000000001101470000000000ffffffff00"/384, 0x180, 0x57e0}, {&(0x7f0000011700)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x59e0}, {&(0x7f0000001580)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000700010038000100b801000000040000000000000000000004000000070000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60106000000000000000000000000000000300000006800000000001800000002004c000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010020000000000000002000000000000006000000000000000503240042006f006f007400000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000010000000000000040000000000000000020000000000000002000000000000000200000000000001102000000000000ffffffff00"/480, 0x1e0, 0x5be0}, {&(0x7f0000011a00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5de0}, {&(0x7f0000011b00)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000008000100380001007801000000040000000000000000000004000000080000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000030052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff010000000000ffffffff00"/416, 0x1a0, 0x5fe0}, {&(0x7f0000011d00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x61e0}, {&(0x7f0000011e00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000900010038000900a802000000040000000000000000000005000000090000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000200000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000fc00040000000000fc000400000000002400530044005300114148000000000090000000b00000000004180000000300900000002000000024005300440048000000000012000000001000000100000010000000800000008000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000f01203f800010000f01203f80001000000000000000000007c000000490049000000000000000000100000000200020090000000a000000000041800000004008000000020000000240053004900490000000000100000000010000001000000100000007000000070000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c00000000000000000000001000000002000000ffffffff00"/736, 0x2e0, 0x63e0}, {&(0x7f0000000480)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000030050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f000000000000004000000000000000080002009403eedacac6d05c0000000000000200000000002120890000000000800000004800000000051800000002002000000028000000240049006e0066006f0000000000000020000000000000000c691b6b777edcda00000000000000000000000000000000ffffffff00000000000000000000000033110cf2560f1e4e2c494438702fb6808a5e86f9b557628655aed880833c98a420003f6fd822fe98a3fcc580f546a49feec0eeea25dd1a6ab0455a9a760f8244", 0x200, 0x67e0}, {&(0x7f0000000040)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x69e0}, {&(0x7f0000012400)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000b0001003800030080020000000400000000000000000000030000000b0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000010000000000703240045007800740065006e00640090000000780100000004180000000200580100002000000024004900330030003000000001000000001000000100000010000000480100004801000000000000190000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000000000000000000000000000000002600002000000000060324004f0062006a00490064000000180000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000006032400510075006f007400610002001a0000000000010068005200000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000008032400520065007000610072007300650000000000000000000000000000001000000002000000ffffffff00000000", 0x2a0, 0x6be0}, {&(0x7f0000012700)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x6fe0}], 0x0, &(0x7f000007dc00), 0x0) 14:57:53 executing program 5: openat(0xffffffffffffff9c, &(0x7f0000000280)='./file0\x00', 0x40, 0x0) 14:57:53 executing program 0: faccessat(0xffffffffffffffff, &(0x7f0000002700)='./file0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\x00', 0x0) 14:57:53 executing program 3: mkdirat$binderfs(0xffffffffffffff9c, &(0x7f0000000040)='./binderfs2\x00', 0x1ff) r0 = openat$binderfs(0xffffffffffffff9c, &(0x7f0000000480)='./binderfs2/custom1\x00', 0xf0, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r0, 0xc0406619, 0x0) 14:57:53 executing program 4: r0 = openat$ubi_ctrl(0xffffffffffffff9c, &(0x7f0000000180), 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(r0, 0x541b, 0x0) 14:57:53 executing program 1: mknod$loop(&(0x7f0000000200)='./file0\x00', 0x6000, 0x1) r0 = openat(0xffffffffffffff9c, &(0x7f0000000240)='./file0\x00', 0x0, 0x0) ioctl$BTRFS_IOC_TREE_SEARCH_V2(r0, 0x4c06, 0x0) 14:57:53 executing program 5: r0 = openat$autofs(0xffffffffffffff9c, &(0x7f0000000340), 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_EXPIRE(r0, 0x5451, 0x0) 14:57:53 executing program 3: newfstatat(0xffffffffffffff9c, &(0x7f0000000240)='\x00', &(0x7f0000000280), 0x1000) 14:57:53 executing program 4: r0 = openat(0xffffffffffffff9c, &(0x7f0000000240)='./file0\x00', 0x84840, 0x0) mount$fuse(0x0, &(0x7f0000000040)='./file0\x00', &(0x7f0000000080), 0x0, &(0x7f0000000340)={{'fd', 0x3d, r0}, 0x2c, {}, 0x2c, {'user_id', 0x3d, 0xee00}, 0x2c, {'group_id', 0x3d, 0xffffffffffffffff}}) 14:57:53 executing program 0: r0 = openat$autofs(0xffffffffffffff9c, &(0x7f0000000340), 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_EXPIRE(r0, 0xc020660b, 0x0) 14:57:53 executing program 1: r0 = epoll_create1(0x0) r1 = openat$vhost_vsock(0xffffffffffffff9c, &(0x7f0000000000), 0x2, 0x0) epoll_ctl$EPOLL_CTL_ADD(r0, 0x1, r1, &(0x7f0000000080)={0x10000000}) [ 268.881618] attempt to access beyond end of device [ 268.897519] loop2: rw=0, want=2041, limit=55 14:57:53 executing program 5: mknod$loop(&(0x7f0000000200)='./file0\x00', 0x0, 0x1) mount$bind(0x0, &(0x7f0000000040)='./file0\x00', &(0x7f0000000080), 0x19, 0x0) [ 268.932326] attempt to access beyond end of device [ 268.956834] loop2: rw=0, want=2042, limit=55 [ 268.975453] attempt to access beyond end of device [ 268.987603] loop2: rw=0, want=2043, limit=55 [ 268.993776] attempt to access beyond end of device [ 268.999208] loop2: rw=0, want=2044, limit=55 [ 269.003689] attempt to access beyond end of device [ 269.010159] loop2: rw=0, want=2045, limit=55 [ 269.014811] attempt to access beyond end of device [ 269.020797] loop2: rw=0, want=2046, limit=55 [ 269.025327] attempt to access beyond end of device [ 269.031405] loop2: rw=0, want=2047, limit=55 [ 269.035915] attempt to access beyond end of device [ 269.044238] loop2: rw=0, want=2048, limit=55 [ 269.053257] attempt to access beyond end of device [ 269.060634] loop2: rw=0, want=56, limit=55 [ 269.066104] attempt to access beyond end of device [ 269.075674] loop2: rw=0, want=561, limit=55 [ 269.080855] attempt to access beyond end of device [ 269.085835] loop2: rw=0, want=562, limit=55 [ 269.091353] attempt to access beyond end of device [ 269.096335] loop2: rw=0, want=563, limit=55 [ 269.100881] attempt to access beyond end of device [ 269.105809] loop2: rw=0, want=564, limit=55 [ 269.110373] attempt to access beyond end of device [ 269.115301] loop2: rw=0, want=565, limit=55 14:57:53 executing program 2: syz_mount_image$ntfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x6fff, 0x18, &(0x7f0000000200)=[{&(0x7f0000010000)="eb52904e5446532020202000020800000000000000f8000000000000000000000000000080008000ff0f0000000000000400000000000000ff00000000000000f6000000010000003daaf55af9830909000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0}, {&(0x7f0000010100)="00000000000000000000400000000040000000000000000000000000000055aa", 0x20, 0x1e0}, {&(0x7f0000010200)="ffff0007000000003f00"/32, 0x20, 0x2000}, {&(0x7f0000010300)="46494c4530000300000000000000000001000100380001009801000000040000000000000000000004000000000000000800000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010070000000000000006c0000000000000600000000000000040324004d0046005400000000000000800000004800000001004000000001000000000000000000120000000000000040000000000000000030010000000000001801000000000000180100000000001113040000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000000000010000000000000001101020000000000ffffffff00"/416, 0x1a0, 0x4000}, {&(0x7f0000010500)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x41e0}, {&(0x7f0000010600)="000000000000000000000000000000000000000000000000000000000000080046494c4530000300000000000000000001000100380001005801000000040000000000000000000003000000010000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000000100000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000001000000000000000100000000000002101ff0000000000ffffffff00"/384, 0x180, 0x43e0}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x45e0}, {&(0x7f00000006c0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000002000100380001005801000000040000000000000000000003000000020000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140000100000000ffffffff0000000000000000000000005c4acfc76019f85a7d9a5eeac96d07bd912910cc1aed8bc47f0be8174423c22ebc7d630a5f53b5eb656d3c3e2c7da87a7752768840fb748495d515879a81dd93d9d0925115ca52bc14b21297bf70efed2ced79ee719e3e1dfabc82cd866cb6de605f9081de8c4450f243c61d514bf866ab9c2980ea4143cb01bee81d7fe9310f", 0x200, 0x47e0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x49e0}, {&(0x7f0000010c00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e001000000040000000000000000000006000000030000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000200", 0x220, 0x4be0}, {&(0x7f0000010f00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000400010038000100c001000000040000000000000000000004000000040000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a00000000000000e9b093500000001101460000000000ffffffff00000000", 0x1e0, 0x4fe0}, {&(0x7f0000011100)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x51e0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000005000100380003000002000000040000000000000000000006000000050000000700000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601bbc80700c88dd601bbc80700c88dd601006f95ffc78dd601260000000000000000000000000000003000000060000000000018000000010044000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a000000050000000010440000000050000000000000000000000000000000000480000000000000000100000000000000010000000000000001000000000000024004900330030001101450000000000b0000000280000000004180000000400080000002000000024004900330030000100000000000000ffffffff00000700", 0x220, 0x53e0}, {&(0x7f0000011500)="000000000000000000000000000000000000000000000000000000000000070046494c4530000300000000000000000006000100380001005001000000040000000000000000000003000000060000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000020050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000040000000000000000600000000000000070324004200690074006d0061007000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000400000000000000040000000000000001101470000000000ffffffff00"/384, 0x180, 0x57e0}, {&(0x7f0000011700)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x59e0}, {&(0x7f0000001580)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000700010038000100b801000000040000000000000000000004000000070000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60106000000000000000000000000000000300000006800000000001800000002004c000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010020000000000000002000000000000006000000000000000503240042006f006f007400000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000010000000000000040000000000000000020000000000000002000000000000000200000000000001102000000000000ffffffff00"/480, 0x1e0, 0x5be0}, {&(0x7f0000011a00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5de0}, {&(0x7f0000011b00)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000008000100380001007801000000040000000000000000000004000000080000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000030052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff010000000000ffffffff00"/416, 0x1a0, 0x5fe0}, {&(0x7f0000011d00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x61e0}, {&(0x7f0000011e00)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000900010038000900a802000000040000000000000000000005000000090000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000200000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000fc00040000000000fc000400000000002400530044005300114148000000000090000000b00000000004180000000300900000002000000024005300440048000000000012000000001000000100000010000000800000008000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000f01203f800010000f01203f80001000000000000000000007c000000490049000000000000000000100000000200020090000000a000000000041800000004008000000020000000240053004900490000000000100000000010000001000000100000007000000070000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c00000000000000000000001000000002000000ffffffff00"/736, 0x2e0, 0x63e0}, {&(0x7f0000000480)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000068000000000018000000030050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f000000000000004000000000000000080002009403eedacac6d05c0000000000000200000000002120890000000000800000004800000000051800000002002000000028000000240049006e0066006f0000000000000020000000000000000c691b6b777edcda00000000000000000000000000000000ffffffff00000000000000000000000033110cf2560f1e4e2c494438702fb6808a5e86f9b557628655aed880833c98a420003f6fd822fe98a3fcc580f546a49feec0eeea25dd1a6ab0455a9a760f8244", 0x200, 0x67e0}, {&(0x7f0000000040)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x69e0}, {&(0x7f0000012400)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000b0001003800030080020000000400000000000000000000030000000b0000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000001010000000000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000010000000000703240045007800740065006e00640090000000780100000004180000000200580100002000000024004900330030003000000001000000001000000100000010000000480100004801000000000000190000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000000000000000000000000000000002600002000000000060324004f0062006a00490064000000180000000000010060004e00000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000006032400510075006f007400610002001a0000000000010068005200000000000b00000000000b00006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd60100000000000000000000000000000000260000200000000008032400520065007000610072007300650000000000000000000000000000001000000002000000ffffffff00000000", 0x2a0, 0x6be0}, {&(0x7f0000012700)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x6fe0}], 0x0, &(0x7f000007dc00), 0x0) 14:57:53 executing program 3: r0 = openat$incfs(0xffffffffffffff9c, &(0x7f00000020c0)='.log\x00', 0xaa243, 0x0) ioctl$FS_IOC_REMOVE_ENCRYPTION_KEY(r0, 0xc080661a, &(0x7f0000000000)={@id={0x2, 0x0, @b}}) 14:57:53 executing program 4: mkdirat$binderfs(0xffffffffffffff9c, &(0x7f0000000040)='./binderfs2\x00', 0x1ff) r0 = openat$binderfs(0xffffffffffffff9c, &(0x7f0000000480)='./binderfs2/custom1\x00', 0xf0, 0x0) ioctl$EXT4_IOC_GET_ES_CACHE(r0, 0x80086601, &(0x7f0000000180)) 14:57:53 executing program 0: r0 = openat$sysctl(0xffffffffffffff9c, &(0x7f00000002c0)='/proc/sys/net/ipv4/tcp_syncookies\x00', 0x1, 0x0) write$sysctl(r0, 0x0, 0x0) 14:57:53 executing program 1: r0 = openat$ptp0(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$BTRFS_IOC_SNAP_DESTROY_V2(r0, 0x5000943f, 0x0) 14:57:53 executing program 5: name_to_handle_at(0xffffffffffffff9c, 0x0, 0x0, 0x0, 0x1400) 14:57:53 executing program 5: r0 = openat$khugepaged_scan(0xffffffffffffff9c, &(0x7f0000000040), 0x1, 0x0) poll(&(0x7f0000000200)=[{r0}], 0x1, 0x62) 14:57:53 executing program 0: openat$ppp(0xffffffffffffff9c, &(0x7f0000000000), 0x20001, 0x0) 14:57:53 executing program 3: ioctl$BTRFS_IOC_TREE_SEARCH(0xffffffffffffffff, 0xd0009411, &(0x7f00000001c0)={{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3f}}) openat$sndseq(0xffffffffffffff9c, 0x0, 0x0) clock_gettime(0x0, &(0x7f0000000140)={0x0, 0x0}) ppoll(&(0x7f0000000180)=[{}, {}, {}], 0x11, &(0x7f0000000080)={0x0, r0+10000000}, 0x0, 0x0) 14:57:53 executing program 1: r0 = openat$cuse(0xffffffffffffff9c, &(0x7f0000000000), 0x2, 0x0) read$FUSE(r0, &(0x7f00000002c0)={0x2020, 0x0, 0x0}, 0x2020) write$FUSE_WRITE(r0, &(0x7f0000000040)={0x18, 0x0, r1}, 0x18) 14:57:53 executing program 4: r0 = openat$thread_pidfd(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) fstat(r0, &(0x7f0000000000)) 14:57:53 executing program 3: openat$random(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) pselect6(0x40, &(0x7f00000000c0), &(0x7f0000000140)={0x7}, &(0x7f0000000180)={0x8}, 0x0, 0x0) [ 269.260118] attempt to access beyond end of device [ 269.278481] loop2: rw=0, want=2041, limit=55 [ 269.292373] attempt to access beyond end of device [ 269.317931] loop2: rw=0, want=2042, limit=55 [ 269.334723] attempt to access beyond end of device [ 269.354637] loop2: rw=0, want=2043, limit=55 [ 269.361120] attempt to access beyond end of device [ 269.366370] loop2: rw=0, want=2044, limit=55 [ 269.373091] attempt to access beyond end of device [ 269.380647] loop2: rw=0, want=2045, limit=55 [ 269.385334] attempt to access beyond end of device [ 269.394446] loop2: rw=0, want=2046, limit=55 [ 269.401111] attempt to access beyond end of device [ 269.406171] loop2: rw=0, want=2047, limit=55 [ 269.411007] attempt to access beyond end of device [ 269.415928] loop2: rw=0, want=2048, limit=55 [ 269.421192] attempt to access beyond end of device [ 269.426123] loop2: rw=0, want=56, limit=55 [ 269.431300] attempt to access beyond end of device [ 269.436222] loop2: rw=0, want=561, limit=55 [ 269.440586] attempt to access beyond end of device [ 269.445495] loop2: rw=0, want=562, limit=55 [ 269.449892] attempt to access beyond end of device [ 269.454805] loop2: rw=0, want=563, limit=55 [ 269.459173] attempt to access beyond end of device [ 269.464082] loop2: rw=0, want=564, limit=55 [ 269.468503] attempt to access beyond end of device [ 269.473424] loop2: rw=0, want=565, limit=55 14:57:53 executing program 3: r0 = openat$autofs(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) r1 = openat$mixer(0xffffffffffffff9c, &(0x7f00000002c0), 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(r0, 0xc0189375, &(0x7f0000000300)={{0x1, 0x1, 0x18, r1}, './file0\x00'}) openat$ptp0(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(r0, 0xc0189375, &(0x7f00000000c0)={{0x1, 0x1, 0x18, r2}, './file1\x00'}) 14:57:53 executing program 4: openat$vcsa(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) pselect6(0x40, &(0x7f0000000040), &(0x7f0000000080)={0x8}, 0x0, 0x0, 0x0) 14:57:53 executing program 5: r0 = eventfd2(0x0, 0x0) read$eventfd(r0, &(0x7f0000000540), 0x8) write$eventfd(r0, &(0x7f0000000040)=0x8000000000000001, 0x8) 14:57:53 executing program 0: statx(0xffffffffffffff9c, &(0x7f00000000c0)='\x00', 0x1000, 0x0, &(0x7f0000000180)) 14:57:53 executing program 1: r0 = open(&(0x7f0000000140)='./file0\x00', 0x14b042, 0x0) write$RDMA_USER_CM_CMD_BIND(r0, &(0x7f0000000200)={0x14, 0xfffffffffffffd53, 0xfa00, {0xffffffffffffffff, 0x0, 0x0, @in={0x2, 0x0, @private}}}, 0xfffffdef) lchown(&(0x7f00000000c0)='./file0\x00', 0x0, 0xee01) 14:57:53 executing program 0: r0 = openat$autofs(0xffffffffffffff9c, &(0x7f0000000340), 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(r0, 0xc0189375, &(0x7f0000000040)={{0x1, 0x1, 0x18}, './file0\x00'}) 14:57:53 executing program 3: syz_open_procfs(0xffffffffffffffff, &(0x7f0000001ec0)='net/packet\x00') 14:57:53 executing program 4: r0 = openat$pfkey(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) r1 = openat$vmci(0xffffffffffffff9c, &(0x7f0000000040), 0x2, 0x0) dup2(r1, r0) 14:57:53 executing program 5: r0 = openat$6lowpan_enable(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) write$6lowpan_enable(r0, &(0x7f0000000200)='0', 0x1) 14:57:53 executing program 0: syz_mount_image$ntfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x123004, 0x90, &(0x7f0000000200)=[{&(0x7f0000010000)="eb52904e5446532020202000100100000000000000f8000000000000000000000000000080008000ff010000000000000400000000000000ff000000000000000100000001000000aa1cb4684d356101000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0}, {&(0x7f00000100e0)="00000000000000000000000000000000000000000000000000000000000055aa", 0x20, 0x1e0}, {&(0x7f0000010100)="ffff0007000000003f00"/32, 0x20, 0x2000}, {&(0x7f0000010120)="46494c453000090000000000000000000100010048000100a80100000010000000000000000000000400000000000000080000000000000000000000000000000000000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a0000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100b001000000000000b00100000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000004a00000000000000400000000000000000b004000000000000600400000000000060040000000000113f04210c3f0100b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000001000010000004000000001101020000000000ffffffff00"/448, 0x1c0, 0x4000}, {&(0x7f00000102e0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x41e0}, {&(0x7f0000010300)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x43e0}, {&(0x7f0000010320)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x45e0}, {&(0x7f0000010340)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x47e0}, {&(0x7f0000010360)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x49e0}, {&(0x7f0000010380)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x4be0}, {&(0x7f00000103a0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x4de0}, {&(0x7f0000000f80)="000000000000000000000000000000000000000000000000000000000000080046494c4530000900000000000000000001000100480001006801000000100000000000000000000003000000010000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d800000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214be3108cb08041214b9fc6d8018041214b9fc6d8018041214b9fc6d801004000000000000000400000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000030000000000000040000000000000000040000000000000004000000000000000400000000000002104ff0000000000ff302c202cd77f9293c5eae9cfffffff00000000000000000000000000000000000000000000000000000000e93ca3b6fc0527168621252914d5d05df9aed933fdd2f2228e89900b35e7f45300e092f02c40efe06ea6cc475d615798a56c0713742fcfde2e838de95ef972570c416c379b629f154c06ef9c0b5cfee6638fab932d4871871913170dfef006147e2e1add", 0x200, 0x4fe0}, {&(0x7f0000010560)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x51e0}, {&(0x7f0000010580)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x53e0}, {&(0x7f00000105a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x55e0}, {&(0x7f00000105c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x57e0}, {&(0x7f00000105e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x59e0}, {&(0x7f0000010600)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5be0}, {&(0x7f0000010620)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5de0}, {&(0x7f0000010640)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000002000100480001006801000000100000000000000000000003000000020000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140030100000000ffffffff00"/416, 0x1a0, 0x5fe0}, {&(0x7f00000107e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x61e0}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x63e0}, {&(0x7f0000010820)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x65e0}, {&(0x7f0000010840)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x67e0}, {&(0x7f0000010860)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x69e0}, {&(0x7f0000010880)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x6be0}, {&(0x7f00000108a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x6de0}, {&(0x7f00000108c0)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000300010048000100f001000000100000000000000000000006000000030000000200000000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff0000000000000000000000000000000000000200", 0x220, 0x6fe0}, {&(0x7f0000010ae0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x73e0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x75e0}, {&(0x7f0000010b20)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x77e0}, {&(0x7f0000010b40)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x79e0}, {&(0x7f0000010b60)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x7be0}, {&(0x7f0000010b80)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x7de0}, {&(0x7f0000010ba0)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000400010048000100a00b000000100000000000000000000004000000040000000200000000005400000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000a000000000000000a0000000000000600000000000000080324004100740074007200440065006600000000000000500000008000000000001800000003006400000018000000010004804800000054000000000000001400000002003400020000000000140089001200010100000000000512000000000018008900120001020000000000052000000020020000010100000000000512000000010200000000000520000000200200000000000080000000180a00000000180000000100000a00001800000024005300540041004e0044004100520044005f0049004e0046004f0052004d004100540049004f004e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000100000000000000000000000400000003000000000000000480000000000000024004100540054005200490042005500540045005f004c00490053005400"/640, 0x280, 0x7fe0}, {&(0x7f0000010e20)="000000000000000000000000000000000000000000000000200000000000000000000000800000000000000000000000ffffffffffffffff2400460049004c0045005f004e0041004d004500"/96, 0x60, 0x82a0}, {&(0x7f0000010e80)="000000000000000000000000000000000000000000000000300000000000000000000000420000004400000000000000420200000000000024004f0042004a004500430054005f0049004400"/96, 0x60, 0x8340}, {&(0x7f0000010ee0)="00000000000000000000000000000000000000000000000040000000000002000000000040000000000000000000000000010000000000002400530045004300550052004900540059005f00440045005300430052004900500054004f005200", 0x60, 0x83e0}, {&(0x7f0000010f40)="000000000000000000000000000000000000000000000000500000000000000000000000800000000000000000000000ffffffffffffffff240056004f004c0055004d0045005f004e0041004d004500"/96, 0x60, 0x8480}, {&(0x7f0000010fa0)="0000000000000000000000000000000000000000000000006000000000000000000000004000000002000000000000000001000000000000240056004f004c0055004d0045005f0049004e0046004f0052004d004100540049004f004e000000", 0x60, 0x8520}, {&(0x7f0000011000)="000000000000000000000000000000000000000000000000700000000000000000000000400000000c000000000000000c0000000000000024004400410002004100"/96, 0x60, 0x85c0}, {&(0x7f0000011060)="000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000ffffffffffffffff240049004e004400450058005f0052004f004f005400"/96, 0x60, 0x8660}, {&(0x7f00000110c0)="000000000000000000000000000000000000000000000000900000000000000000000000400000000000000000000000ffffffffffffffff240049004e004400450058005f0041004c004c004f0043004100540049004f004e00000000000000", 0x60, 0x86fd}, {&(0x7f0000011120)="000000000000000000000000000000000000000000000000a00000000000000000000000800000000000000000000000ffffffffffffffff24004200490054004d00410050000000000000000000000000000000000000000000000000000200", 0x60, 0x87a0}, {&(0x7f0000011180)="000000000000000000000000000000000000000000000000b00000000000000000000000800000000000000000000000ffffffffffffffff240052004500500041005200530045005f0050004f0049004e005400"/96, 0x60, 0x8840}, {&(0x7f00000111e0)="000000000000000000000000000000000000000000000000c0000000000000000000000080000000000000000000000000400000000000002400450041005f0049004e0046004f0052004d004100540049004f004e00"/96, 0x60, 0x88e0}, {&(0x7f0000011240)="000000000000000000000000000000000000000000000000d0000000000000000000000040000000080000000000000008000000000000002400450041000000", 0x40, 0x8980}, {&(0x7f0000011280)="00000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000001000000000024004c004f0047004700450044005f005500540049004c004900540059005f00530054005200450041004d00"/192, 0xc0, 0x89e0}, {&(0x7f0000011340)="00000000000000000000000000000000000000000000000000010000000000000000000080000000000000000000000000000100"/64, 0x40, 0x8ac0}, {&(0x7f0000000080)="000000000000000000000000000000000000000000000000ffffffff00000000", 0x20, 0x8b80}, {&(0x7f00000113a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x8be0}, {&(0x7f00000113c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x8de0}, {&(0x7f00000113e0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000005000100480003001002000000100000000000000000000006000000050000000700300000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d801abc4234c9fc6d801abc4234c9fc6d8018041214b9fc6d8012620000000000000000000000000000030000000600000000000180000000100440000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a000000050000000010440000000050000000000000000000000000000000000480000000000000000100000000000000010000000000000001000000000000024004900330030001101450000000000b0000000280000000004180000000400080000002000000024004900330007000100000000000000ffffffff00"/576, 0x240, 0x8fe0}, {&(0x7f0000011620)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x93e0}, {&(0x7f0000011640)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x95e0}, {&(0x7f0000011660)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x97e0}, {&(0x7f0000011680)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x99e0}, {&(0x7f00000116a0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x9be0}, {&(0x7f00000116c0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x9de0}, {&(0x7f00000116e0)="000000000000000000000000000000000000000000000000000000000000070046494c4530000900000000000000000006000100480001006001000000100000000000000000000003000000060000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000680000000000180000000200500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000400000000000000040000000000000001101460000000000ffffffff00000000", 0x180, 0x9fe0}, {&(0x7f0000011860)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa1e0}, {&(0x7f0000011880)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa3e0}, {&(0x7f00000118a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa5e0}, {&(0x7f00000118c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa7e0}, {&(0x7f00000118e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa9e0}, {&(0x7f0000011900)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xabe0}, {&(0x7f0000011920)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xade0}, {&(0x7f0000011940)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000700010048000100c801000000100000000000000000000004000000070000000200000000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80106000000000000000000000000000000300000006800000000001800000002004c0000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010020000000000000002000000000000006000000000000000503240042006f006f007400000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000010000000000000040000000000000000020000000000000002000000000000000200000000000001102000000000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200", 0x220, 0xafe0}, {&(0x7f0000011b60)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb3e0}, {&(0x7f0000011b80)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb5e0}, {&(0x7f0000011ba0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb7e0}, {&(0x7f0000011bc0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb9e0}, {&(0x7f0000011be0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xbbe0}, {&(0x7f0000011c00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xbde0}, {&(0x7f0000011c20)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000008000100480001008801000000100000000000000000000004000000080000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000300520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff010000000000ffffffff00"/448, 0x1c0, 0xbfe0}, {&(0x7f0000011de0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc1e0}, {&(0x7f0000011e00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc3e0}, {&(0x7f0000011e20)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc5e0}, {&(0x7f0000011e40)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc7e0}, {&(0x7f0000011e60)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc9e0}, {&(0x7f0000011e80)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xcbe0}, {&(0x7f0000011ea0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xcde0}, {&(0x7f0000011ec0)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000900010048000900b802000000100000000000000000000005000000090000000200490000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600002000000000000000000000000000000000010100000000000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000fc00040000000000fc000400000000002400530044005300114147000000000090000000b00000000004180000000300900000002000000024005300440048000000000012000000001000000100000010000000800000008000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000f01203f800010000f01203f80001000000000000000000007c000000490002000000000000000000100000000200000090000000a000000000041800000004008000000020000000240053004900490000000000100000000010000001000000100000007000000070000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c00000000000000000000001000000002000000ffffffff00"/736, 0x2e0, 0xcfe0}, {&(0x7f00000121a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd3e0}, {&(0x7f00000121c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd5e0}, {&(0x7f00000121e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd7e0}, {&(0x7f0000012200)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd9e0}, {&(0x7f0000012220)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xdbe0}, {&(0x7f0000012240)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xdde0}, {&(0x7f0000012260)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000a00010048000100a8010000001000000000000000000000040000000a0000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000680000000000180000000300500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f0000000000000040000000000000000000020000000000000002000000000000000200000000002120880000000000800000004800000000051800000002002000000028000000240049006e0066006f0000000000000020000000000000000c691b6b777edcda00000000000000000000000000000000ffffffff00"/480, 0x1e0, 0xdfe0}, {&(0x7f0000012440)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe1e0}, {&(0x7f0000012460)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe3e0}, {&(0x7f0000012480)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe5e0}, {&(0x7f00000124a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe7e0}, {&(0x7f00000124c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe9e0}, {&(0x7f00000124e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xebe0}, {&(0x7f0000012500)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xede0}, {&(0x7f0000012520)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000b0001004800030090020000001000000000000000000000030000000b0000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000010100000000000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000010000000000703240045007800740065006e00640090000000780100000004180000000200580100002000000024004900330030003000000001000000001000000100000010000000480100004801000000000000190000000000010060004e00000000000b00000000000b008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000000000000000000000000000000002600002000000000060324004f0062006a00490064000000180000000000010060004e00000000000b00000000000b008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000260000200000020006032400510075006f007400610000001a0000000000010068005200000000000b00000000000b008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000260000200000000008032400520065007000610072007300650000000000000000000000000000001000000002000000ffffffff00"/704, 0x2c0, 0xefe0}, {&(0x7f00000127e0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf3e0}, {&(0x7f0000012800)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf5e0}, {&(0x7f0000012820)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf7e0}, {&(0x7f0000012840)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf9e0}, {&(0x7f0000012860)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xfbe0}, {&(0x7f0000012880)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xfde0}, {&(0x7f00000128a0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xffe0}, {&(0x7f00000179c0)="494e4458280009000000000000000000000000000000000028000000b8060000e80f0000000000001800d80100000000000000000000000000000000000000000400000000000400680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000a000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000001000800000000000800680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000803240042006100640043006c00750073000000000007000600000000000600600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000070000000000070060004c000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010020000000000000002000000000000006000000000000000503240042006f006f00740069006c000b00000000000b00600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc618008041214b9fc6d8010000000000000000000000000000000006000010000000000703240045007800740065006e0064000200000000000200680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c006500000000000100000000000000010060004a000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100b001000000000000b00100000000000600000000000000040324004d00460054000000000000000100000000000100680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801004000000000000000400000000000000600000000000000080324004d00460054004d006900720072000000020000000900000000000900600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000000000000000000000000000000000600002000000000070324005300650063007500720065000a00000000000a00600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000002000000180000000200000000000600000000000000070324005500700043006100730065000300000000000300600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d0065000500000000000500580044000000000005000000000005008041214b9fc6d801abc4234c9fc6d801abc4234c9fc6d8018041214b9fc6d80100000000000000000000000000000000262000100000000001032e00000000004500000000000100680054000000000005000000000005005cc4234c9fc6d801fbc9234c9fc6d801fbc9234c9fc6d8015cc4234c9fc6d8016800000000000000640000000000000020000000000000000900660069006c0065002e0063006f006c00640000000000400000000000010060004c00000000000500000000000500c375234c9fc6d8014792234c9fc6d8014792234c9fc6d801c375234c9fc6d8010000000000000000000000000000000020000010000000000500660069006c006500300000000000430000000000010060004c00000000000500000000000500c29c234c9fc6d8011ca3234c9fc6d801fca8234c9fc6d801c29c234c9fc6d80110000000000000000a0000000000000020000000000000000500660069006c0065003100000018", 0x5ff, 0x45000}, {&(0x7f00000180a0)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x457e0}, {&(0x7f00000180c0)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x459e0}, {&(0x7f00000180e0)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x45be0}, {&(0x7f0000018100)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x45de0}, {&(0x7f0000018120)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x45fe0}, {&(0x7f0000018380)="00000100020003000400050006000700080009000a000b000c000d000e000f0010001100120013001400150016001700180019001a001b001c001d001e001f0020002100220023002400250026002700280029002a002b002c002d002e002f0030003100320033003400350036003700380039003a003b003c003d003e003f0040004100420043004400450046004700480049004a004b004c004d004e004f", 0x9f, 0x88000}, {&(0x7f0000038380)="46494c453000090000000000000000000100010048000100a80100000010000000000000000000000400000000000000080000000000000000000000000000000000000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a0000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100b001000000000000b00100000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000004a00000000000000400000000000000000b004000000000000600400000000000060040000000000113f04210c3f0100b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000000000010000000000000001101020000000000ffffffff", 0x1a4, 0xff000}, {&(0x7f0000038540)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff1e0}, {&(0x7f0000038560)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff3e0}, {&(0x7f0000038580)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff5e0}, {&(0x7f00000385a0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff7e0}, {&(0x7f00000385c0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0xff9e0}, {&(0x7f00000385e0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xffbe0}, {&(0x7f0000038600)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xffde0}, {&(0x7f0000038620)="000000000000000000000000000000000000000000000000000000000000080046494c4530000900000000000000000001000100480001006801000000100000000000000000000003000000010000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801004000000000000000400000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000030000000000000040000000000000000040000000000000004000000000000000400000000000002104ff0000000000ffffffff0000", 0x186, 0xfffe0}, {&(0x7f00000387c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1001e0}, {&(0x7f00000387e0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1003e0}, {&(0x7f0000038800)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1005e0}, {&(0x7f0000038820)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1007e0}, {&(0x7f0000038840)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1009e0}, {&(0x7f0000038860)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x100be0}, {&(0x7f0000038880)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x100de0}, {&(0x7f00000388a0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000002000100480001006801000000100000000000000000000003000000020000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140030100000000ffffffff", 0x184, 0x100fe0}, {&(0x7f0000038a40)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1011e0}, {&(0x7f0000038a60)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1013e0}, {&(0x7f0000038a80)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1015e0}, {&(0x7f0000038aa0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1017e0}, {&(0x7f0000038ac0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1019e0}, {&(0x7f0000038ae0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x101be0}, {&(0x7f0000038b00)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x101de0}, {&(0x7f0000038b20)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000300010048000100f001000000100000000000000000000006000000030000000200000000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff00000000000000000000000000000000000002", 0x21f, 0x101fe0}, {&(0x7f0000038d40)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1023e0}, {&(0x7f0000038d60)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1025e0}, {&(0x7f0000038d80)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1027e0}, {&(0x7f0000038da0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1029e0}, {&(0x7f0000038dc0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x102be0}, {&(0x7f0000038de0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x102de0}, {&(0x7f0000038e00)="0000000000000000000000000000000000000000000000000000000000000200ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0x102fe0}], 0x0, &(0x7f000007a5e0), 0x1) 14:57:53 executing program 3: r0 = epoll_create1(0x0) r1 = openat$vim2m(0xffffffffffffff9c, &(0x7f0000000180), 0x2, 0x0) r2 = openat$khugepaged_scan(0xffffffffffffff9c, &(0x7f0000000040), 0x1, 0x0) epoll_ctl$EPOLL_CTL_ADD(r0, 0x1, r2, &(0x7f0000000000)) epoll_ctl$EPOLL_CTL_DEL(r0, 0x2, r1) 14:57:53 executing program 2: r0 = openat$autofs(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) r1 = openat$mixer(0xffffffffffffff9c, &(0x7f00000002c0), 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(r0, 0xc0189375, &(0x7f0000000300)={{0x1, 0x1, 0x18, r1}, './file0\x00'}) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(r0, 0xc0189375, &(0x7f00000000c0)={{0x1, 0x1, 0x18, r2}, './file1\x00'}) 14:57:53 executing program 4: mkdirat$binderfs(0xffffffffffffff9c, &(0x7f0000000040)='./binderfs2\x00', 0x1ff) r0 = openat$binderfs(0xffffffffffffff9c, &(0x7f0000000480)='./binderfs2/custom1\x00', 0xf0, 0x0) ioctl$EXT4_IOC_GET_ES_CACHE(r0, 0xc0c0583b, &(0x7f0000000180)) 14:57:53 executing program 5: r0 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='mounts\x00') close(r0) 14:57:54 executing program 3: mknod$loop(&(0x7f0000000200)='./file0\x00', 0x6000, 0x1) r0 = openat(0xffffffffffffff9c, &(0x7f0000000240)='./file0\x00', 0x0, 0x0) ioctl$BTRFS_IOC_TREE_SEARCH_V2(r0, 0x4c02, 0x0) 14:57:54 executing program 4: mknod$loop(&(0x7f0000000200)='./file0\x00', 0x6000, 0x1) r0 = openat(0xffffffffffffff9c, &(0x7f0000000240)='./file0\x00', 0x0, 0x0) ioctl$BTRFS_IOC_TREE_SEARCH_V2(r0, 0x4c03, 0x0) [ 269.738950] ================================================================== [ 269.746340] BUG: KASAN: use-after-free in ntfs_attr_find+0xacd/0xc20 [ 269.752827] Read of size 2 at addr ffff8880472d90ca by task syz-executor.0/9929 [ 269.760259] [ 269.761883] CPU: 1 PID: 9929 Comm: syz-executor.0 Not tainted 4.14.295-syzkaller #0 [ 269.769704] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022 [ 269.779051] Call Trace: [ 269.781639] dump_stack+0x1b2/0x281 [ 269.785272] print_address_description.cold+0x54/0x1d3 [ 269.790557] kasan_report_error.cold+0x8a/0x191 [ 269.795225] ? ntfs_attr_find+0xacd/0xc20 [ 269.799369] __asan_report_load_n_noabort+0x6b/0x80 [ 269.804384] ? ntfs_attr_find+0xacd/0xc20 [ 269.808528] ntfs_attr_find+0xacd/0xc20 [ 269.812501] ntfs_attr_lookup+0xeca/0x1f30 [ 269.816734] ? alloc_pages_current+0x15d/0x260 [ 269.821310] ? do_read_cache_page+0xcd/0xc10 [ 269.825710] ? should_fail+0x327/0x3f0 [ 269.829592] ? ntfs_end_buffer_async_read+0x10a0/0x10a0 [ 269.834952] ? check_preemption_disabled+0x35/0x240 [ 269.839964] ? ntfs_attr_reinit_search_ctx+0x3c0/0x3c0 [ 269.845233] ? kmem_cache_alloc+0x2f8/0x3c0 [ 269.849553] ntfs_read_locked_inode+0xa8d/0x51b0 [ 269.854315] ? _raw_spin_unlock+0x29/0x40 [ 269.858466] ? iget5_locked+0x129/0x450 [ 269.862432] ? ntfs_index_lookup+0x2780/0x2780 [ 269.867008] ntfs_iget+0xfa/0x130 [ 269.870456] ? ntfs_read_locked_inode+0x51b0/0x51b0 [ 269.875466] ntfs_fill_super+0xa5a/0x7170 [ 269.879614] ? vsnprintf+0x260/0x1340 [ 269.883407] ? pointer+0x9e0/0x9e0 [ 269.886941] ? lock_downgrade+0x740/0x740 [ 269.891082] ? ntfs_big_inode_init_once+0x20/0x20 [ 269.895923] ? snprintf+0xa5/0xd0 [ 269.899373] ? vsprintf+0x30/0x30 [ 269.902819] ? ns_test_super+0x50/0x50 [ 269.906705] ? set_blocksize+0x125/0x380 [ 269.910758] mount_bdev+0x2b3/0x360 [ 269.914378] ? ntfs_big_inode_init_once+0x20/0x20 [ 269.919212] mount_fs+0x92/0x2a0 [ 269.922581] vfs_kern_mount.part.0+0x5b/0x470 [ 269.927072] do_mount+0xe65/0x2a30 [ 269.930606] ? __do_page_fault+0x159/0xad0 [ 269.934834] ? retint_kernel+0x2d/0x2d [ 269.938713] ? copy_mount_string+0x40/0x40 [ 269.942938] ? memset+0x20/0x40 [ 269.946209] ? copy_mount_options+0x1fa/0x2f0 [ 269.950695] ? copy_mnt_ns+0xa30/0xa30 [ 269.954576] SyS_mount+0xa8/0x120 [ 269.958020] ? copy_mnt_ns+0xa30/0xa30 [ 269.961899] do_syscall_64+0x1d5/0x640 [ 269.965782] entry_SYSCALL_64_after_hwframe+0x46/0xbb [ 269.971052] RIP: 0033:0x7fbed7447ada [ 269.974748] RSP: 002b:00007fbed5db8f88 EFLAGS: 00000202 ORIG_RAX: 00000000000000a5 [ 269.982444] RAX: ffffffffffffffda RBX: 0000000020000200 RCX: 00007fbed7447ada [ 269.989699] RDX: 0000000020000000 RSI: 0000000020000100 RDI: 00007fbed5db8fe0 [ 269.996963] RBP: 00007fbed5db9020 R08: 00007fbed5db9020 R09: 0000000020000000 [ 270.004223] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000020000000 [ 270.011484] R13: 0000000020000100 R14: 00007fbed5db8fe0 R15: 000000002007a5e0 [ 270.018751] [ 270.020362] The buggy address belongs to the page: [ 270.025282] page:ffffea00011cb640 count:0 mapcount:0 mapping: (null) index:0x1 [ 270.033412] flags: 0xfff00000000000() [ 270.037194] raw: 00fff00000000000 0000000000000000 0000000000000001 00000000ffffffff [ 270.045055] raw: ffffea00011cb6a0 ffffea00011cb620 0000000000000000 0000000000000000 [ 270.052924] page dumped because: kasan: bad access detected [ 270.058610] [ 270.060214] Memory state around the buggy address: [ 270.065119] ffff8880472d8f80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [ 270.072455] ffff8880472d9000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [ 270.079790] >ffff8880472d9080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [ 270.087133] ^ [ 270.092826] ffff8880472d9100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [ 270.100171] ffff8880472d9180: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [ 270.107505] ================================================================== [ 270.114852] Disabling lock debugging due to kernel taint [ 270.142436] Kernel panic - not syncing: panic_on_warn set ... [ 270.142436] [ 270.149822] CPU: 1 PID: 9929 Comm: syz-executor.0 Tainted: G B 4.14.295-syzkaller #0 [ 270.158821] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022 [ 270.168167] Call Trace: [ 270.170760] dump_stack+0x1b2/0x281 [ 270.174473] panic+0x1f9/0x42d [ 270.177656] ? add_taint.cold+0x16/0x16 [ 270.181650] ? ___preempt_schedule+0x16/0x18 [ 270.186054] kasan_end_report+0x43/0x49 [ 270.190023] kasan_report_error.cold+0xa7/0x191 [ 270.194774] ? ntfs_attr_find+0xacd/0xc20 [ 270.198907] __asan_report_load_n_noabort+0x6b/0x80 [ 270.203921] ? ntfs_attr_find+0xacd/0xc20 [ 270.208049] ntfs_attr_find+0xacd/0xc20 [ 270.212002] ntfs_attr_lookup+0xeca/0x1f30 [ 270.216223] ? alloc_pages_current+0x15d/0x260 [ 270.220786] ? do_read_cache_page+0xcd/0xc10 [ 270.225176] ? should_fail+0x327/0x3f0 [ 270.229041] ? ntfs_end_buffer_async_read+0x10a0/0x10a0 [ 270.234381] ? check_preemption_disabled+0x35/0x240 [ 270.239443] ? ntfs_attr_reinit_search_ctx+0x3c0/0x3c0 [ 270.244709] ? kmem_cache_alloc+0x2f8/0x3c0 [ 270.249007] ntfs_read_locked_inode+0xa8d/0x51b0 [ 270.253739] ? _raw_spin_unlock+0x29/0x40 [ 270.257872] ? iget5_locked+0x129/0x450 [ 270.261823] ? ntfs_index_lookup+0x2780/0x2780 [ 270.266378] ntfs_iget+0xfa/0x130 [ 270.269816] ? ntfs_read_locked_inode+0x51b0/0x51b0 [ 270.274808] ntfs_fill_super+0xa5a/0x7170 [ 270.278940] ? vsnprintf+0x260/0x1340 [ 270.282726] ? pointer+0x9e0/0x9e0 [ 270.286251] ? lock_downgrade+0x740/0x740 [ 270.290372] ? ntfs_big_inode_init_once+0x20/0x20 [ 270.295186] ? snprintf+0xa5/0xd0 [ 270.298619] ? vsprintf+0x30/0x30 [ 270.302053] ? ns_test_super+0x50/0x50 [ 270.305918] ? set_blocksize+0x125/0x380 [ 270.309953] mount_bdev+0x2b3/0x360 [ 270.313555] ? ntfs_big_inode_init_once+0x20/0x20 [ 270.318375] mount_fs+0x92/0x2a0 [ 270.321750] vfs_kern_mount.part.0+0x5b/0x470 [ 270.326219] do_mount+0xe65/0x2a30 [ 270.329736] ? __do_page_fault+0x159/0xad0 [ 270.333945] ? retint_kernel+0x2d/0x2d [ 270.337808] ? copy_mount_string+0x40/0x40 [ 270.342026] ? memset+0x20/0x40 [ 270.345278] ? copy_mount_options+0x1fa/0x2f0 [ 270.349758] ? copy_mnt_ns+0xa30/0xa30 [ 270.353652] SyS_mount+0xa8/0x120 [ 270.357092] ? copy_mnt_ns+0xa30/0xa30 [ 270.360968] do_syscall_64+0x1d5/0x640 [ 270.364833] entry_SYSCALL_64_after_hwframe+0x46/0xbb [ 270.369996] RIP: 0033:0x7fbed7447ada [ 270.373771] RSP: 002b:00007fbed5db8f88 EFLAGS: 00000202 ORIG_RAX: 00000000000000a5 [ 270.381458] RAX: ffffffffffffffda RBX: 0000000020000200 RCX: 00007fbed7447ada [ 270.388711] RDX: 0000000020000000 RSI: 0000000020000100 RDI: 00007fbed5db8fe0 [ 270.395961] RBP: 00007fbed5db9020 R08: 00007fbed5db9020 R09: 0000000020000000 [ 270.403209] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000020000000 [ 270.410457] R13: 0000000020000100 R14: 00007fbed5db8fe0 R15: 000000002007a5e0 [ 270.417926] Kernel Offset: disabled [ 270.421533] Rebooting in 86400 seconds..